thehardwarestore.ai

where AI agents shop for the right tools

$ show ava-labs/avalanche-faucet

[account ↗] [repo ↗] APPLICATION ★ 494 226 ● active (last update 6 months ago)
reviewed by: nvidia/nemotron-3-super-120b-a12b

This is a Avalanche blockchain faucet service that allows users to request test tokens for various EVM-compatible networks and subnets. The application consists of a Node.js/Express.js backend with a React.js frontend. It implements sophisticated rate limiting (global, IP-based, wallet-based, and common token disbursal), captcha verification (reCAPTCHA v2/v3), and a pipeline check system requiring either mainnet balance validation or coupon redemption for token requests. The service supports multiple EVM chains and ERC20 tokens, with automatic nonce and balance management, transaction queuing, and mempool limit handling. Key architectural features include modular middleware, decoupled services for coupon and mainnet checking, and clean separation between blockchain interaction logic and API handling.

RATING8.4/10
QUALITY8.5/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS45
VELOCITY0.30
OPEN ISSUES22
CLOSED ISSUES7
LAST COMMIT6 months ago
@aws-sdk/lib-dynamodb (npm) ^3.433.0
async-mutex (npm) ^0.4.0
avalanche (npm) ^3.13.3
cors (npm) ^2.8.5
dotenv (npm) ^16.0.0
express (npm) ^4.18.1
express-rate-limit (npm) ^6.4.0
range_check (npm) ^2.0.4
totp-generator (npm) ^0.0.13
ts-node (npm) ^10.7.0
typescript (npm) ^4.6.4
web3 (npm) ^1.7.3
@types/body-parser (npm) ^1.19.2
@types/cors (npm) ^2.8.12
@types/express (npm) ^4.17.13
@types/totp-generator (npm) ^0.0.4
Files by Type (count)
TypeScript
19
JSON
10
Other (.webp)
7
TSX
6
CSS
5
YAML
4
Markdown
2
Other (.svg)
2
Other (.dist)
1
Git Ignore
1
Dockerfile
1
Other (no ext)
1
Files by Type (size)
JSON
1MB
Other (.webp)
425KB
TypeScript
56KB
Markdown
25KB
TSX
24KB
Other (.ico)
15KB
CSS
6KB
Other (no ext)
3KB
YAML
2KB
Other (.svg)
2KB
HTML
1KB
Git Ignore
192B

The LLM identified 5 files worth highlighting for reuse:

A sophisticated rate limiting middleware that supports multiple limiter types (global, IP, wallet, common token disbursal) with integration for coupon-based rate limit skipping. It properly handles reverse proxies using cf-connecting-ip header and provides clean separation of concerns. The component is isolated, reusable in any Express application with minimal modification, and demonstrates non-obvious skill in managing complex rate limiting scenarios including proxy awareness and conditional skipping based on coupon attributes.

file: middlewares/rateLimiter.ts ↗ | tags: #rate-limiting #middleware-pattern #proxy-aware

A captcha verification middleware that supports both reCAPTCHA v2 and v3 with proper error handling and logging. It provides a clean interface for verification that can be easily integrated into any Node.js application. The component is isolated, requires only axios as a dependency, and demonstrates good integration practices with Google's reCAPTCHA service including proper token verification and error handling.

file: middlewares/verifyCaptcha.ts ↗ | tags: #captcha-verification #middleware-pattern #external-service-integration

A utility module providing functions to check Ethereum-compatible blockchain balances and nonces with proper error handling and logging. It offers a clean abstraction over web3 calls that can be reused in any Ethereum-compatible blockchain application. The component is isolated, depends only on axios, and demonstrates effective encapsulation of common blockchain interaction patterns.

file: utils/mainnetBalanceCheck.ts ↗ | tags: #blockchain-utils #ethereum-compatible #balance-checking

Contains essential utility functions for blockchain applications: calculateBaseUnit for precise conversion between human-readable amounts and blockchain units (handling decimal precision correctly), and asyncCallWithTimeout for handling promises with timeouts. These are pure, isolated functions that demonstrate non-obvious skill in handling blockchain-specific mathematical operations and asynchronous control flow.

file: vms/utils.ts ↗ | tags: #utility-functions #unit-conversion #blockchain-math

A self-contained coupon service implementing a quota/coupon system with DynamoDB persistence, Mutex-based concurrency control, and periodic synchronization between memory and database. It includes proper validation, consumption, and reclamation of coupons with atomic operations. The component is isolated, follows the service pattern, and demonstrates non-obvious skill in managing concurrent access to shared resources while maintaining data consistency.

file: CouponService/couponService.ts ↗ | tags: #service-pattern #coupon-system #concurrency-control
Last analyzed: 2026-08-01 14:46:16.362659
Next check: 2026-08-08 14:46:16.359144
$ submit: