Skip to content

feat: create faucet page#71

Merged
maxwellward merged 16 commits into
mainfrom
custom-faucet
Oct 7, 2025
Merged

feat: create faucet page#71
maxwellward merged 16 commits into
mainfrom
custom-faucet

Conversation

@maxwellward
Copy link
Copy Markdown
Collaborator

@maxwellward maxwellward commented Sep 30, 2025

Deployment link: https://custom-faucet.taquito-dapp-ghostnet.pages.dev/

image

This pull request introduces a new Tezos faucet Cloudflare Worker (src/cloudflare/faucet) with secure rate limiting, environment configuration, and documentation for deployment and usage. The main themes are the implementation of the faucet API, integration of Cloudflare Durable Objects for rate limiting, and improved configuration and documentation for production deployment.

Tezos Faucet Worker Implementation

  • Added a new Tezos faucet Cloudflare Worker in src/cloudflare/faucet/index.ts, providing a /fund API endpoint that securely sends Tez to user addresses, validates input, checks rate limits, and verifies CAPTCHA via Turnstile.
  • Defined strict TypeScript interfaces for requests, responses, environment variables, and Turnstile verification in src/cloudflare/faucet/types.ts.
  • Created a dedicated package.json for the faucet worker with required dependencies (@taquito/taquito, @taquito/signer) and scripts for development and deployment.

Rate Limiting via Durable Objects

  • Implemented a RateLimiter Durable Object in src/cloudflare/faucet/RateLimiter.ts to persistently track and enforce rate limits on faucet requests per IP address.
  • Configured Durable Object bindings and migrations in src/cloudflare/faucet/wrangler.jsonc for Cloudflare deployment.

Configuration & Documentation

  • Added example environment variables to .env.example and updated deployment workflow to support new secrets and configuration for the faucet and Turnstile. [1] [2]
  • Provided comprehensive production deployment instructions in src/cloudflare/faucet/DEPLOYMENT.md and a quick API usage reference in src/cloudflare/faucet/USAGE.md. [1] [2]

Tooling & Dependency Updates

  • Updated eslint.config.ts to ignore generated files for the faucet worker, and added vue-turnstile to the main app dependencies for CAPTCHA integration. [1] [2]

References:
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]

@maxwellward maxwellward requested a review from Copilot September 30, 2025 18:57
@maxwellward maxwellward self-assigned this Sep 30, 2025

This comment was marked as resolved.

@maxwellward maxwellward requested a review from Copilot October 2, 2025 19:35

This comment was marked as resolved.

@maxwellward maxwellward merged commit 1cbfaec into main Oct 7, 2025
3 checks passed
@maxwellward maxwellward deleted the custom-faucet branch October 7, 2025 19:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants