@@ -18,51 +18,47 @@ const stargate_1 = require("@cosmjs/stargate");
1818const helpers_1 = require ( "./helpers" ) ;
1919const express_1 = __importDefault ( require ( "express" ) ) ;
2020const cors_1 = __importDefault ( require ( "cors" ) ) ;
21- const fs_1 = __importDefault ( require ( "fs" ) ) ;
2221const dotenv_1 = require ( "dotenv" ) ;
2322( 0 , dotenv_1 . config ) ( ) ;
24- const { API_PORT , FAUCET_MNEMONIC } = process . env ;
23+ const { API_PORT , FAUCET_MNEMONIC , RPC_URL , PREFIX , DENOM , AMOUNT_TO_SEND , GAS_PRICE , GAS_AMOUNT , COOLDOWN_SECONDS } = process . env ;
2524const app = ( 0 , express_1 . default ) ( ) ;
2625app . use ( ( 0 , cors_1 . default ) ( ) ) ;
2726app . use ( express_1 . default . json ( ) ) ;
2827app . use ( express_1 . default . urlencoded ( { extended : true } ) ) ;
2928let cooldown_map = new Map ( ) ;
30- function get_chain ( chain_id ) {
31- if ( chain_id === undefined ) {
32- return {
33- error : 'Chain not found'
34- } ;
35- }
36- let chains = JSON . parse ( fs_1 . default . readFileSync ( 'chains.json' , 'utf8' ) ) ;
37- let chain_keys = Object . keys ( chains ) ;
38- let chain = chains [ chain_id ] ;
39- if ( chain === undefined ) {
40- return {
41- error : 'Chain not found' ,
42- chains : chain_keys
43- } ;
44- }
29+ function get_chain ( ) {
30+ var rpc_url = RPC_URL || '' ;
31+ var prefix = PREFIX || '' ;
32+ var denom = DENOM || '' ;
33+ var amount_to_send = AMOUNT_TO_SEND || 0 ;
34+ var gas_price = GAS_PRICE || 0 ;
35+ var gas_amount = GAS_AMOUNT || 0 ;
36+ var cooldown_seconds = COOLDOWN_SECONDS || 0 ;
37+ let chain = {
38+ rpc_url : rpc_url ,
39+ prefix : prefix ,
40+ denom : denom ,
41+ amount_to_send : Number ( amount_to_send ) ,
42+ gas_price : Number ( gas_price ) ,
43+ gas_amount : Number ( gas_amount ) ,
44+ cooldown_seconds : Number ( cooldown_seconds )
45+ } ;
4546 return chain ;
4647}
4748// === endpoints ===
4849app . get ( '/' , ( req , res ) => {
4950 const base_url = req . protocol + '://' + req . get ( 'host' ) + req . originalUrl ;
51+ const chains = get_chain ( ) ;
5052 res . json ( {
5153 endpoints : [
52- `Get Faucet Info: ${ base_url } <chain_id> ` ,
54+ `Get Faucet Info: ${ base_url } faucet ` ,
5355 `Requests Funds (~6 second wait): ${ base_url } <chain_id>/<address>`
5456 ] ,
55- chains : Object . keys ( JSON . parse ( fs_1 . default . readFileSync ( ' chains.json' , 'utf8' ) ) )
57+ chains : chains ,
5658 } ) ;
5759} ) ;
58- app . get ( '/:chain_id' , ( req , res ) => __awaiter ( void 0 , void 0 , void 0 , function * ( ) {
59- const { chain_id } = req . params ;
60- let chain = get_chain ( chain_id ) ;
61- if ( ! chain || chain . error ) {
62- res . status ( 400 ) . json ( chain ) ;
63- return ;
64- }
65- chain = chain ;
60+ app . get ( '/faucet' , ( req , res ) => __awaiter ( void 0 , void 0 , void 0 , function * ( ) {
61+ let chain = get_chain ( ) ;
6662 try {
6763 const payment_account = yield ( 0 , helpers_1 . getAccountFromMnemonic ) ( FAUCET_MNEMONIC , chain . prefix ) ;
6864 const client = yield cosmwasm_1 . CosmWasmClient . connect ( chain . rpc_url ) ;
@@ -78,28 +74,16 @@ app.get('/:chain_id', (req, res) => __awaiter(void 0, void 0, void 0, function*
7874 } ) ;
7975 }
8076} ) ) ;
81- app . get ( '/:chain_id/:address' , ( req , res ) => __awaiter ( void 0 , void 0 , void 0 , function * ( ) {
82- const { chain_id, address } = req . params ;
83- // ensure address is only alphanumeric
84- // if (!address.match(/^[a-zA-Z0-9]+$/)) {
85- // res.status(400).json({
86- // error: 'Address is not valid'
87- // })
88- // return;
89- // }
90- let chain = get_chain ( chain_id ) ;
91- if ( ! chain || chain . error ) {
92- res . status ( 400 ) . json ( chain ) ;
93- return ;
94- }
95- chain = chain ;
77+ app . get ( '/faucet/:address' , ( req , res ) => __awaiter ( void 0 , void 0 , void 0 , function * ( ) {
78+ const { address } = req . params ;
79+ let chain = get_chain ( ) ;
9680 // ensure address is valid and starts with prefix
9781 if ( ! address . startsWith ( chain . prefix ) ) {
9882 res . status ( 400 ) . json ( {
9983 error : 'Address is not valid'
10084 } ) ;
10185 }
102- const map_key = `${ chain_id } -${ address } ` ;
86+ const map_key = `ojo -${ address } ` ;
10387 if ( cooldown_map . has ( map_key ) ) {
10488 let cooldown = cooldown_map . get ( map_key ) ;
10589 let seconds_until_then = ( cooldown - Date . now ( ) ) / 1000 ;
@@ -118,7 +102,6 @@ app.get('/:chain_id/:address', (req, res) => __awaiter(void 0, void 0, void 0, f
118102 return ;
119103 }
120104 const config = {
121- chainId : chain_id ,
122105 rpcEndpoint : chain . rpc_url ,
123106 prefix : chain . prefix ,
124107 } ;
0 commit comments