From 19bb2971c0955ca7672b7205b488a3a9d3def21c Mon Sep 17 00:00:00 2001 From: luizstacio Date: Mon, 8 Jan 2024 13:11:25 -0300 Subject: [PATCH] feat: change from redirect url param to use document referrer --- README.md | 38 +++++++++++++++++++++++++------------- static/index.html | 8 ++++---- 2 files changed, 29 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 734503e..5f1ed3a 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ -Faucet App -=== +# Faucet App + [![build](https://github.com/FuelLabs/faucet/actions/workflows/ci.yml/badge.svg)](https://github.com/FuelLabs/faucet/actions/workflows/ci.yml) [![discord](https://img.shields.io/badge/chat%20on-discord-orange?&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/xfpK4Pe) @@ -7,20 +7,21 @@ A simple faucet app for dispensing tokens on a fuel network. It uses Google capt without requiring any social media based identification. ## Configuration + The faucet makes use of environment variables for configuration. -| Environment Variable | Description | -|----------------------|-------------------------------------------------------------------------| -| RUST_LOG | EnvFilter configuration for adjusting logging granularity. | -| HUMAN_LOGGING | If false, logs will be output as machine readable JSON. | -| CAPTCHA_SECRET | The secret key used for enabling Google captcha authentication. | -| CAPTCHA_KEY | The website key used for enabling Google captcha authentication. | -| WALLET_SECRET_KEY | A hex formatted string of the wallet private key that owns some tokens. | -| FUEL_NODE_URL | The GraphQL endpoint for connecting to fuel-core. | +| Environment Variable | Description | +| -------------------- | ----------------------------------------------------------------------------------------------- | +| RUST_LOG | EnvFilter configuration for adjusting logging granularity. | +| HUMAN_LOGGING | If false, logs will be output as machine readable JSON. | +| CAPTCHA_SECRET | The secret key used for enabling Google captcha authentication. | +| CAPTCHA_KEY | The website key used for enabling Google captcha authentication. | +| WALLET_SECRET_KEY | A hex formatted string of the wallet private key that owns some tokens. | +| FUEL_NODE_URL | The GraphQL endpoint for connecting to fuel-core. | | PUBLIC_FUEL_NODE_URL | The public GraphQL endpoint for connecting to fuel-core. Ex.: https://node.fuel.network/graphql | -| SERVICE_PORT | The port the service will listen for http connections on. | -| DISPENSE_AMOUNT | Dispense amount on each faucet | -| MIN_GAS_PRICE | The minimum gas price to use in each transfer | +| SERVICE_PORT | The port the service will listen for http connections on. | +| DISPENSE_AMOUNT | Dispense amount on each faucet | +| MIN_GAS_PRICE | The minimum gas price to use in each transfer | ## Build and Run @@ -29,3 +30,14 @@ To run locally, assuming environment variables have already been set: ```sh cargo run ``` + +## Query Params + +When integrating the faucet you can use the following query params: + +| Name | Type | Description | +| -------- | ------- | ------------------------------------------------------------------------------------------ | +| address | Address | Auto-fill the address field using the provided value | +| redirect | Boolean | If true once the faucet is complete, the user will be redirected back to the referrer page | + +Ex.: `http://localhost:3000/?address=fuel134ddh9pfsspar086htdldwxq2jsr3yvqtj5w456kkrz3s653la5q347kmc&redirect=true` diff --git a/static/index.html b/static/index.html index 5647fd5..1d510bb 100644 --- a/static/index.html +++ b/static/index.html @@ -233,9 +233,9 @@

Test Ether sent to the wallet

const faucetApp = (function () { let providerUrl = "{{ public_node_url }}"; let blockExplorer = "https://fuellabs.github.io/block-explorer-v2"; - let query = params = new URLSearchParams(document.location.search); + let query = new URLSearchParams(document.location.search); let address = query.get('address'); - let redirectUrl = decodeURIComponent(query.get('redirectUrl') || ''); + let shouldRedirect = query.get('redirect') === 'true'; if (address) { let $address = document.getElementById('address'); @@ -298,8 +298,8 @@

Test Ether sent to the wallet

).href = `${blockExplorer}/address/${address}?providerUrl=${encodeURIComponent( providerUrl )}`; - if (redirectUrl) { - location.href = redirectUrl; + if (shouldRedirect && document.referrer) { + location.href = document.referrer; } } else { document.getElementById("response-failure").innerText = data.error;