How 1227cwx/hdupay works
HDupay is a stablecoin payment platform: a payer receives an EVM deposit address, pays a USDC/USDT order, and sees on-chain confirmation progress. Merchants can create and check orders through OpenAPI or the EasyPay-compatible entry point; administrators manage wallets, networks, RPC, rates, and collections. The graph preserves these documented capabilities while showing only wiring supported by the sampled controllers and README; several subsystem links are documented rather than verified in unsampled service code.
Main entry points: DepositService.php Deposit orders · service Admin business services · model Business data models · FiatRateService.php Fiat conversion
Components 28
User and API entry points
- Payment UI
web/src/pages/Pay.vue - OpenAPI endpoint
app/controller/OpenApiController.php - EasyPay endpoint
app/controller/EasyPayController.php - Deposit endpoint
app/controller/DepositController.php
Payments and orders
- Deposit orders
app/service/DepositService.php - EasyPay compatibility
app/service/EasyPayService.php - Fiat conversion
app/service/FiatRateService.php - API authentication
app/service/OpenApiService.php - Order and deposit state
app/model/DepositOrder.php
Wallet and chain operations
- Address allocation
app/service/AddressPoolService.php - HD wallet operations
app/service/WalletService.php - EVM log monitoring
app/service/EvmMonitorService.php - RPC configuration and calls
app/service/EvmRpcService.php - Asset collection
app/service/CollectionService.php
Administration
- Admin dashboard UI
web/src/pages - Admin endpoints
app/controller - Admin business services
app/service - Business data models
app/model
Background runtime
- Deposit monitor process
app/process/EvmDepositMonitor.php - Task queue worker
app/process/EvmTaskQueueWorker.php - Rate refresh process
app/process/RateRefreshWorker.php
Other components
- Payer
- Merchant client
- Administrator
- EVM RPC provider
- CoinGecko
- MySQL
- Merchant callback receiver
Connections 35
- Payer → Payment UI: opens payment
- Payment UI → Deposit endpoint: requests payment data
- Deposit endpoint → Deposit orders: creates or queries
- Deposit orders → Fiat conversion: converts fiat
- Deposit orders → Address allocation: allocates address
- Deposit orders → Order and deposit state: records order
- Merchant client → OpenAPI endpoint: calls API
- OpenAPI endpoint → API authentication: authenticates and handles
- API authentication → Deposit orders: creates or checks
- Merchant client → EasyPay endpoint: submits payment
- EasyPay endpoint → EasyPay compatibility: handles request
- EasyPay compatibility → Deposit orders: creates order
- EasyPay compatibility → Payment UI: returns payment link
- Deposit monitor process → EVM log monitoring: runs scans
- EVM log monitoring → RPC configuration and calls: requests chain logs
- RPC configuration and calls → EVM RPC provider: sends RPC requests
- EVM log monitoring → Order and deposit state: updates confirmations
- Task queue worker → Asset collection: processes tasks
- Asset collection → RPC configuration and calls: uses chain access
- Rate refresh process → Fiat conversion: refreshes rates
- Fiat conversion → CoinGecko: fetches prices
- Administrator → Admin dashboard UI: uses dashboard
- Admin dashboard UI → Admin endpoints: calls management APIs
- Admin endpoints → Admin business services: delegates operations
- Admin business services → HD wallet operations: manages wallets
- Admin business services → Asset collection: manages collections
- Admin business services → RPC configuration and calls: configures RPC
- Admin business services → Fiat conversion: manages rates
- Admin business services → Business data models: reads and writes
- Deposit orders → Business data models: reads and writes
- EVM log monitoring → Business data models: reads and writes
- Asset collection → Business data models: reads and writes
- RPC configuration and calls → Business data models: reads configuration
- Fiat conversion → Business data models: reads and writes
- API authentication → Merchant callback receiver: dispatches callbacks