Faucet Server and Client for Subnets.

Overview

Faucet Server and Client

This repository has both server and client that are required to host a faucet for your EVM subnet. We have used the ReactJS client for interacting with the Node.js Faucet Server.

Requirements

Installation

Clone this repository at your preferred location.

git clone https://github.com/ava-labs/avalanche-faucet

Client Side Configurations

We need to configure our application with the server API endpoints and Captcha site keys. All the client-side configurations are there in the client/src/config.json file. Since there are no secrets on the client-side, we do not need any environment variables. Update the config files according to your need.

{
    "banner": "/banner.png",
    "apiBaseEndpointProduction": "/api/",
    "apiBaseEndpointDevelopment": "http://localhost:8000/api/",
    "apiTimeout": 10000,
    "CAPTCHA": {
        "siteKey": "6LcNScYfAAAAAJH8fauA-okTZrmAxYqfF9gOmujf",
        "action": "faucetdrip"
    }
}

Put the Google's ReCaptcha site-key without which the faucet client can't send the necessary captcha response to the server. This key is not a secret and could be public.

In the above file, there are 2 base endpoints for the faucet server apiBaseEndpointProduction and apiBaseEndpointDevelopment. Since in production mode, the client-side will be served as static content, it will be served over the server's endpoint, and hence we do not have to provide the server's IP address or domain. It should be a valid URL where the server's APIs are hosted. If the endpoints for API have a leading /v1/api and the server is running on localhost at port 3000, then you should use http://localhost:3000/v1/api or /v1/api/ depending on whether it is production or development.

Server-Side Configuration

On the server-side, we need to configure 2 files - .env for secret keys and config.json for chain and API's rate limiting configurations.

Setup Environment Variables

Setup the environment variable with your private key and ReCaptcha secret. Make a .env file in your preferred location with the following credentials, as this fill will not be committed to the repository. The faucet server can handle multiple EVM chains, and therefore requires private keys for addresses with funds on each of the chains.

If you have funds on the same address on every chain, then you can just use the PK variable. But if you have funds on different addresses on different chains, then you can provide each of the private keys against their chain name, as shown below.

C="C chain private key"
WAGMI="Wagmi chain private key"
PK="Sender Private Key with Funds in it"
CAPTCHA_SECRET="Google ReCaptcha Secret"

Setup EVM Chain Configurations

You can create a faucet server for any EVM chain by making changes in the config.json file. Add your chain configuration as shown below in the evmchains object. Configuration for Fuji's C-Chain and WAGMI chain is shown below for example.

"evmchains": [
    {
        "ID": "C",
        "NAME": "Avalanche C Chain",
        "TOKEN": "AVAX",
        "RPC": "https://api.avax-test.network/ext/C/rpc",
        "CHAINID": 43113,
        "EXPLORER": "https://testnet.snowtrace.io/",
        "IMAGE": "https://notify.avax.network/favicon.svg",
        "MAX_PRIORITY_FEE": "2000000000",
        "MAX_FEE": "100000000000",
        "DRIP_AMOUNT": 10000000000,
        "RECALIBRATE": 30,
        "RATELIMIT": {
            "MAX_LIMIT": 1,
            "WINDOW_SIZE": 60
        }
    },
    {
        "ID": "WAGMI",
        "NAME": "WAGMI Chain",
        "TOKEN": "WGM",
        "RPC": "https://subnets.avax.network/wagmi/wagmi-chain-testnet/rpc",
        "CHAINID": 11111,
        "EXPLORER": "https://subnets.avax.network/wagmi/wagmi-chain-testnet/explorer/",
        "IMAGE": "https://raw.githubusercontent.com/ava-labs/subnet-evm/master/imgs/wagmi.png",
        "MAX_PRIORITY_FEE": "2000000000",
        "MAX_FEE": "100000000000",
        "DRIP_AMOUNT": 10000000,
        "RATELIMIT": {
            "MAX_LIMIT": 2,
            "WINDOW_SIZE": 60
        }
    }
]

In the above configuration drip amount is in nAVAX or gwei, whereas fees are in wei. For example, with the above configurations, the faucet will send 1 AVAX with maximum fees per gas being 100 nAVAX and priority fee as 2 nAVAX.

The rate limiter for C Chain will only accept 1 request in 60 minutes for a particular API and 2 requests in 60 minutes for the WAGMI chain. Though it will skip any failed requests so that users can request tokens again, even if there is some internal error in the application. On the other hand, the global rate limiter will allow 15 requests per minute on every API. This time failed requests will also get counted so that no one can abuse the APIs.

Setting up with Docker

Follow the steps to run this application in a Docker container.

Build Docker Image

Docker images can be served as the built versions of our application, that can be used to deploy on Docker container.

docker build . -t faucet-image

Starting Application inside Docker Container

Now we can create any number of containers using the above faucet image. We also have to supply the .env file or the environment variables with the secret keys to create the container. Once the container is created, these variables and configurations will be persisted and can be easily started or stopped with a single command.

docker run -p 3000:8000 --name faucet-container --env-file ../.env faucet-image

The server will run on port 8000, and our Docker will also expose this port for the outer world to interact. We have exposed this port in the Dockerfile. But we cannot directly interact with the container port, so we had to bind this container port to our host port. For the host port, we have chosen 3000. This flag -p 3000:8000 achieves the same.

This will start our faucet application in a Docker container at port 3000 (port 8000 on the container). You can interact with the application by visiting http://localhost:3000 in your browser.

Stopping the Container

You can easily stop the container using the following command

docker stop faucet-container

Restarting the Container

To restart the container, use the following command

docker start faucet-container

API Endpoints

This server will expose the following APIs

Health API

The /health API will always return a response with a 200 status code. This endpoint can be used to know the health of the server.

curl http://localhost:8000/health

Response

Server healthy

Get Drop Size

This API will be used for fetching the drop amount that the faucet server is providing per request.

curl http://localhost:8000/api/getDripAmount

It will give the following response

{
    "dripAmount": 10
}

Send Token

This API endpoint will handle token requests from users. It will return the transaction hash as a receipt of the faucet drip.

curl -d '{
        "address": "0x3EA53fA26b41885cB9149B62f0b7c0BAf76C78D4"
        "chain": "C"
}' -H 'Content-Type: application/json' http://localhost:8000/api/sendToken

Send token API requires a Captcha response token that is generated using the Captcha site key on the client-side. Since we can't generate and pass this token while making a curl request, we have to disable the captcha verification for testing purposes. You can find the steps to disable it in the next sections. The response is shown below

{
    "message": "Transaction successful on Avalanche C Chain!",
    "txHash": "0x3d1f1c3facf59c5cd7d6937b3b727d047a1e664f52834daf20b0555e89fc8317"
}

Rate Limiters

The rate limiters are applied on the global (all endpoints) as well as on the /api/sendToken API. These can be configured from the config.json file. Rate limiting parameters for chains are passed in the chain configuration as shown above.

"GLOBAL_RL": {
    "REVERSE_PROXIES": 2,
    "MAX_LIMIT": 15,
    "WINDOW_SIZE": 1,
    "PATH": "/",
    "SKIP_FAILED_REQUESTS": false
}

Captcha Verification

Captcha is required to prove the user is a human and not a bot. For this purpose, we will use Google's Recaptcha. The server side will require CAPTCHA_SECRET that should not be exposed.

You can disable these Captcha verifications and rate limiters for testing the purpose, by tweaking in the server.ts file.

Disabling Rate Limiters

Comment or remove these 2 lines from the server.ts file

new RateLimiter(app, [GLOBAL_RL]);
new RateLimiter(app, evmchains);

Disabling Captcha Verification

Remove the captcha.middleware from sendToken API.

Starting the Faucet

Follow the below commands to start your local faucet.

Installing Dependencies

This will concurrently install dependencies for both client and server.

npm install

If ports have a default configuration, then the client will start at port 3000 and the server will start at port 8000 while in development mode.

Starting in Development Mode

This will concurrently start the server and client in development mode.

npm run dev

Building for Production

The following command will build server and client at build/ and build/client directories.

npm run build

Starting in Production Mode

This command should only be run after successfully building the client and server-side code.

npm start
Comments
  • add PirateVerse faucet

    add PirateVerse faucet

    This pull request is for PirateVerse subnet. We are a new gamefi project and have just launched our own PirateVerse Subnet. Project info can be found on https://pirateverse.finance/

    opened by khaihkd 5
  • Adding ERC20 tokens to fuji faucet

    Adding ERC20 tokens to fuji faucet

    Hello,

    I see that there is the option to make a PR to add a subnet to the faucet.

    Wondering if the team is allowing people to add to the ERC20 coin options for the fuji c-chain?

    opened by 0xju1ie 3
  • Heroes of Nft - Hero Testnet configuration update

    Heroes of Nft - Hero Testnet configuration update

    Hello Ava Labs !

    We're (Heroes of Nft - heroesofnft.com) running our testnet for quite sometime for private community tests. We'd like to start public community tests, for that we'd like to use Avalanche faucet. We've 13k organic transactions so far https://testnet.avascan.info/blockchain/hero/txs , no bot is deployed.

    Thank you

    opened by defikintaro 2
  • Bump minimatch and recursive-readdir in /client

    Bump minimatch and recursive-readdir in /client

    Bumps minimatch and recursive-readdir. These dependencies needed to be updated together. Updates minimatch from 3.0.4 to 3.1.2

    Commits

    Updates recursive-readdir from 2.2.2 to 2.2.3

    Changelog

    Sourced from recursive-readdir's changelog.

    v2.2.3 - Mon, 19 Sep 2016 21:55:22 GMT

    v2.1.0 - Mon, 19 Sep 2016 21:55:22 GMT

    v2.0.0 - Wed, 06 Apr 2016 04:31:02 GMT

    v1.3.0 - Wed, 14 Oct 2015 14:35:55 GMT

    v1.2.1 - Wed, 14 Jan 2015 16:49:55 GMT

    Commits
    Maintainer changes

    This version was pushed to npm by bnb, a new releaser for recursive-readdir since your current version.


    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • Bump loader-utils from 2.0.2 to 2.0.3 in /client

    Bump loader-utils from 2.0.2 to 2.0.3 in /client

    Bumps loader-utils from 2.0.2 to 2.0.3.

    Release notes

    Sourced from loader-utils's releases.

    v2.0.3

    2.0.3 (2022-10-20)

    Bug Fixes

    • security: prototype pollution exploit (#217) (a93cf6f)
    Changelog

    Sourced from loader-utils's changelog.

    2.0.3 (2022-10-20)

    Bug Fixes

    • security: prototype pollution exploit (#217) (a93cf6f)
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • WAGMI faucet runs out of token

    WAGMI faucet runs out of token

    Hi all,

    I wanna faucet some WGM tokens from the faucet, but it seems like the WAGMI faucet is drained (the faucet balance is "1 WGM"). I'm not sure if this problem will be solved soon? Where else can I get some WGM tokens?

    Thanks.

    image

    opened by anhskrttt 1
  • Bump got from 7.1.0 to 12.1.0

    Bump got from 7.1.0 to 12.1.0

    Bumps got from 7.1.0 to 12.1.0.

    Release notes

    Sourced from got's releases.

    v12.1.0

    Improvements

    Fixes

    https://github.com/sindresorhus/got/compare/v12.0.4...v12.1.0

    v12.0.4

    • Remove stream lock - unreliable since Node 17.3.0 bb8eca924c338ca12d5b90d6a26aa28dbddb42ee

    v12.0.3

    • Allow more types in the json option (#2015) eb045bf

    https://github.com/sindresorhus/got/compare/v12.0.2...v12.0.3

    v12.0.2

    • Fix encoding option with {responseType: 'json'} (#1996) 0703318

    https://github.com/sindresorhus/got/compare/v12.0.1...v12.0.2

    v12.0.1

    • Fix nock compatibility (#1959) bf39d2c
    • Fix missing export of Request TypeScript type (#1940) 0f9f2b8

    https://github.com/sindresorhus/got/compare/v12.0.0...v12.0.1

    v12.0.0

    Introducing Got v12.0.0 :tada:

    Long time no see! The latest Got version (v11.8.2) was released just in February ❄️ We have been working hard on squashing bugs and improving overall experience.

    If you find Got useful, you might want to sponsor the Got maintainers.

    This package is now pure ESM

    Please read this. Also see sindresorhus/got#1789.

    • Please don't open issues about [ERR_REQUIRE_ESM] and Must use import to load ES Module errors. This is a problem with your setup, not Got.
    • Please don't open issues about using Got with Jest. Jest does not fully support ESM.
    • Pretty much any problem with loading this package is a problem with your bundler, test framework, etc, not Got.
    • If you use TypeScript, you will want to stay on Got v11 until TypeScript 4.6 is out. Why.
    • If you use a bundler, make sure it supports ESM and that you have correctly configured it for ESM.

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • Bump terser from 5.14.0 to 5.14.2 in /client

    Bump terser from 5.14.0 to 5.14.2 in /client

    Bumps terser from 5.14.0 to 5.14.2.

    Changelog

    Sourced from terser's changelog.

    v5.14.2

    • Security fix for RegExps that should not be evaluated (regexp DDOS)
    • Source maps improvements (#1211)
    • Performance improvements in long property access evaluation (#1213)

    v5.14.1

    • keep_numbers option added to TypeScript defs (#1208)
    • Fixed parsing of nested template strings (#1204)
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • Bump loader-utils from 2.0.2 to 2.0.4 in /client

    Bump loader-utils from 2.0.2 to 2.0.4 in /client

    Bumps loader-utils from 2.0.2 to 2.0.4.

    Release notes

    Sourced from loader-utils's releases.

    v2.0.4

    2.0.4 (2022-11-11)

    Bug Fixes

    v2.0.3

    2.0.3 (2022-10-20)

    Bug Fixes

    • security: prototype pollution exploit (#217) (a93cf6f)
    Changelog

    Sourced from loader-utils's changelog.

    2.0.4 (2022-11-11)

    Bug Fixes

    2.0.3 (2022-10-20)

    Bug Fixes

    • security: prototype pollution exploit (#217) (a93cf6f)
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump decode-uri-component from 0.2.0 to 0.2.2 in /client

    Bump decode-uri-component from 0.2.0 to 0.2.2 in /client

    Bumps decode-uri-component from 0.2.0 to 0.2.2.

    Release notes

    Sourced from decode-uri-component's releases.

    v0.2.2

    • Prevent overwriting previously decoded tokens 980e0bf

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.1...v0.2.2

    v0.2.1

    • Switch to GitHub workflows 76abc93
    • Fix issue where decode throws - fixes #6 746ca5d
    • Update license (#1) 486d7e2
    • Tidelift tasks a650457
    • Meta tweaks 66e1c28

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.0...v0.2.1

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump decode-uri-component from 0.2.0 to 0.2.2

    Bump decode-uri-component from 0.2.0 to 0.2.2

    Bumps decode-uri-component from 0.2.0 to 0.2.2.

    Release notes

    Sourced from decode-uri-component's releases.

    v0.2.2

    • Prevent overwriting previously decoded tokens 980e0bf

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.1...v0.2.2

    v0.2.1

    • Switch to GitHub workflows 76abc93
    • Fix issue where decode throws - fixes #6 746ca5d
    • Update license (#1) 486d7e2
    • Tidelift tasks a650457
    • Meta tweaks 66e1c28

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.0...v0.2.1

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
Releases(1.1.20)
  • 1.1.20(Nov 22, 2022)

    What's Changed

    • Added logging to Recaptcha by @truemiller in https://github.com/ava-labs/avalanche-faucet/pull/77

    Full Changelog: https://github.com/ava-labs/avalanche-faucet/compare/1.1.19...1.1.20

    Source code(tar.gz)
    Source code(zip)
  • 1.1.19(Nov 21, 2022)

    What's Changed

    • Bump loader-utils from 2.0.2 to 2.0.4 in /client by @dependabot in https://github.com/ava-labs/avalanche-faucet/pull/71
    • Fixed widget render for v2 captcha by @rajranjan0608 in https://github.com/ava-labs/avalanche-faucet/pull/76
    • fix: v2 recaptcha by @truemiller in https://github.com/ava-labs/avalanche-faucet/pull/75

    New Contributors

    • @dependabot made their first contribution in https://github.com/ava-labs/avalanche-faucet/pull/71
    • @truemiller made their first contribution in https://github.com/ava-labs/avalanche-faucet/pull/75

    Full Changelog: https://github.com/ava-labs/avalanche-faucet/compare/1.1.18...1.1.19

    Source code(tar.gz)
    Source code(zip)
  • 1.1.18(Nov 8, 2022)

    What's Changed

    • Remove Portal Fantasy by @rajranjan0608 in https://github.com/ava-labs/avalanche-faucet/pull/68

    Full Changelog: https://github.com/ava-labs/avalanche-faucet/compare/1.1.17...1.1.18

    Source code(tar.gz)
    Source code(zip)
  • 1.1.17(Sep 29, 2022)

    What's Changed

    • USDC support on Fuji C-Chain by @rajranjan0608 in https://github.com/ava-labs/avalanche-faucet/pull/63
    • Bug fixes by @rajranjan0608 in https://github.com/ava-labs/avalanche-faucet/pull/64

    Full Changelog: https://github.com/ava-labs/avalanche-faucet/compare/1.1.16...1.1.17

    Source code(tar.gz)
    Source code(zip)
  • 1.1.16(Sep 21, 2022)

    What's Changed

    • Add highrise testnet native faucet by @mculinovic in https://github.com/ava-labs/avalanche-faucet/pull/62

    New Contributors

    • @mculinovic made their first contribution in https://github.com/ava-labs/avalanche-faucet/pull/62

    Full Changelog: https://github.com/ava-labs/avalanche-faucet/compare/1.1.15...1.1.16

    Source code(tar.gz)
    Source code(zip)
  • 1.1.15(Sep 14, 2022)

    What's Changed

    • Add Numbers Testnet by @bafu in https://github.com/ava-labs/avalanche-faucet/pull/59

    New Contributors

    • @bafu made their first contribution in https://github.com/ava-labs/avalanche-faucet/pull/59

    Full Changelog: https://github.com/ava-labs/avalanche-faucet/compare/1.1.14...1.1.15

    Source code(tar.gz)
    Source code(zip)
  • 1.1.14(Sep 12, 2022)

    What's Changed

    • feat(docker-images): add flow for community-faucet by @adutchak in https://github.com/ava-labs/avalanche-faucet/pull/47
    • fix(GHA): rename workflows by @adutchak in https://github.com/ava-labs/avalanche-faucet/pull/49
    • fix(CI): add community-faucet branch for checks by @adutchak in https://github.com/ava-labs/avalanche-faucet/pull/51
    • Asset URL changes by @rajranjan0608 in https://github.com/ava-labs/avalanche-faucet/pull/55

    Full Changelog: https://github.com/ava-labs/avalanche-faucet/compare/1.1.13...1.1.14

    Source code(tar.gz)
    Source code(zip)
  • 1.1.13(Aug 24, 2022)

    What's Changed

    • Rate Limiting Address by @rajranjan0608 in https://github.com/ava-labs/avalanche-faucet/pull/46

    Full Changelog: https://github.com/ava-labs/avalanche-faucet/compare/1.1.11...1.1.13

    Source code(tar.gz)
    Source code(zip)
  • 1.1.12(Aug 22, 2022)

  • 1.1.11(Aug 22, 2022)

    What's Changed

    • Update config.json by @rajranjan0608 in https://github.com/ava-labs/avalanche-faucet/pull/45

    Full Changelog: https://github.com/ava-labs/avalanche-faucet/compare/1.1.10...1.1.11

    Source code(tar.gz)
    Source code(zip)
  • 1.1.9(Aug 1, 2022)

    What's Changed

    • Portal Fantasy Subnet added by @rajranjan0608 in https://github.com/ava-labs/avalanche-faucet/pull/43

    Full Changelog: https://github.com/ava-labs/avalanche-faucet/compare/1.1.8...1.1.9

    Source code(tar.gz)
    Source code(zip)
  • 1.1.8(Jul 25, 2022)

    What's Changed

    • Connect Account (Metamask) by @rajranjan0608 in https://github.com/ava-labs/avalanche-faucet/pull/40
    • 1.1.8 by @rajranjan0608 in https://github.com/ava-labs/avalanche-faucet/pull/41

    Full Changelog: https://github.com/ava-labs/avalanche-faucet/compare/1.1.7...1.1.8

    Source code(tar.gz)
    Source code(zip)
  • 1.1.7(Jul 14, 2022)

    What's Changed

    • swimmer testnet logo URL update by @connorch in https://github.com/ava-labs/avalanche-faucet/pull/38

    Full Changelog: https://github.com/ava-labs/avalanche-faucet/compare/1.1.6...1.1.7

    Source code(tar.gz)
    Source code(zip)
  • 1.1.6(Jul 14, 2022)

    What's Changed

    • fix swimmer-testnet-max-fee by @patrick-ogrady in https://github.com/ava-labs/avalanche-faucet/pull/36
    • Rise of the Warbots subnet by @patrick-ogrady in https://github.com/ava-labs/avalanche-faucet/pull/37

    New Contributors

    • @patrick-ogrady made their first contribution in https://github.com/ava-labs/avalanche-faucet/pull/36

    Full Changelog: https://github.com/ava-labs/avalanche-faucet/compare/1.1.5...1.1.6

    Source code(tar.gz)
    Source code(zip)
  • 1.1.5(Jul 14, 2022)

    What's Changed

    • swimmer chain ID by @rajranjan0608 in https://github.com/ava-labs/avalanche-faucet/pull/34

    Full Changelog: https://github.com/ava-labs/avalanche-faucet/compare/1.1.4...1.1.5

    Source code(tar.gz)
    Source code(zip)
  • 1.1.4(Jul 6, 2022)

  • 1.1.3(Jun 24, 2022)

  • 1.1.2(Jun 22, 2022)

  • 1.1.1(Jun 20, 2022)

  • 1.1.0(Jun 15, 2022)

  • 1.0.4(Jun 1, 2022)

  • 1.0.3(May 25, 2022)

  • 1.0.0(May 23, 2022)

  • 0.1.6(May 23, 2022)

  • 0.1.4(May 23, 2022)

Grupprojekt för kurserna 'Javascript med Ramverk' och 'Agil Utveckling'

JavaScript-med-Ramverk-Laboration-3 Grupprojektet för kurserna Javascript med Ramverk och Agil Utveckling. Utvecklingsguide För information om hur utv

Svante Jonsson IT-Högskolan 3 May 18, 2022
Hemsida för personer i Sverige som kan och vill erbjuda boende till människor på flykt

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

null 4 May 3, 2022
Kurs-repo för kursen Webbserver och Databaser

Webbserver och databaser This repository is meant for CME students to access exercises and codealongs that happen throughout the course. I hope you wi

null 14 Jan 3, 2023
A remote nodejs Cache Server, for you to have your perfect MAP Cache Saved and useable remotely. Easy Server and Client Creations, fast, stores the Cache before stopping and restores it again!

remote-map-cache A remote nodejs Cache Server, for you to have your perfect MAP Cache Saved and useable remotely. Easy Server and Client Creations, fa

Tomato6966 8 Oct 31, 2022
A project for experimenting with Server Sent Events (SSE), a way of communication going from server to client.

A project for experimenting with Server Sent Events (SSE), a way of communication going from server to client.

Italo Menezes 4 May 16, 2022
Monolithic repo for api server, image server, web server

Onsecondary Market Deployed at https://market.onsecondary.com Monolithic repo for api server, image server, web server TODO -use a script to cull expi

Admazzola 2 Jan 11, 2022
Unofficial API client for the Tidbyt API. Use this client to control Tidbyt devices and integrate with other services.

Tidbyt Client for Node.js Unofficial API client for the Tidbyt API. Use this client to control Tidbyt devices and integrate with other services. Insta

Nicholas Penree 19 Dec 17, 2022
Fast and minimal JS server-side writer and client-side manager.

unihead Fast and minimal JS <head> server-side writer and client-side manager. Nearly every SSR framework out there relies on server-side components t

Jonas Galvez 24 Sep 4, 2022
Easy server-side and client-side validation for FormData, URLSearchParams and JSON data in your Fresh app 🍋

Fresh Validation ??     Easily validate FormData, URLSearchParams and JSON data in your Fresh app server-side or client-side! Validation Fresh Validat

Steven Yung 20 Dec 23, 2022
Basic Express methood solution with mongodb and Client & Server site code example

Express with MongoDB Tutorial (Basic) React Tutorial React Inastallation React Fundamental Concepts React Advanced concepts let start Express Starter

Md. Nazmul Islam 28 Oct 28, 2022
It shows how to escape cross-origin issues for web client and API server using CloudFront routing.

AWS CloudFront의 URL Routing을 이용한 Web Client 및 API Server 구현 여기서는 CliendFront의 URL Routing을 이용하여 Web Client와 API Server를 구현하고자 합니다. Web Client는 Amazon

John Park 4 Nov 20, 2022
RPC-like client, contract, and server implementation for a pure REST API

ts-rest RPC-like client and server helpers for a magical end to end typed experience Introduction ts-rest provides an RPC-like client side interface o

tREST 215 Dec 30, 2022
Free, open-source client or server-side APIs to "lint" user input.

passbird Free, open-source client or server-side APIs to lint user input. Right now, you can check type for an email address i.e., either of disposabl

Vaibhav Pandey 1 Dec 26, 2021
WebVM is a server-less virtual Linux environment running fully client-side in HTML5/WebAssembly.

WebVM This repository hosts the source code of the https://webvm.io live demo page. WebVM is a server-less virtual Linux environment running fully cli

Leaning Technologies Ltd 1.7k Jan 8, 2023
This is email scheduler made using MERN. This repo contains server code, client repo is linked in readme.

Email Scheduler Client This is an email scheduler server (client in different repository). It is made using node.js/express.js. Overview User can sign

Sai Charan 2 Dec 3, 2022
This is an email scheduler made using MERN stack. This repo contains client, server side is linked in readme

Email Scheduler Client This is an email scheduler client (server in different repository). It is made using react. Overview User can sign-up/sign-in,

Sai Charan 3 Dec 3, 2022
A Node.js client & server implementation of the WAMP-like RPC-over-websocket system defined in the OCPP-J protcols.

OCPP-RPC A client & server implementation of the WAMP-like RPC-over-websocket system defined in the OCPP-J protcols (e.g. OCPP1.6J and OCPP2.0.1J). Re

Mikuso 14 Dec 30, 2022
TikTokLive-Widget: A socket client/server program that exposes a widget with alerts (such as gifts, followers ...) for a specific user streaming on Tik Tok Live platform

TikTokLive-Widget: A socket client/server program that exposes a widget with alerts (such as gifts, followers ...) for a specific user streaming on Tik Tok Live platform

null 3 Dec 3, 2022
Proof of concept: support immutable trpc servers using lambdas to ensure client/server compatibility

auto-versioned-trpc-aws-lambda Proof of concept to support an automatically versioned AWS Lambda running tRPC to ensure a somewhat graceful and automa

Kenneth Skovhus 5 Aug 30, 2022