Skip to content

Commit c943562

Browse files
committed
kill chains.json
1 parent 16c14d7 commit c943562

File tree

5 files changed

+56
-116
lines changed

5 files changed

+56
-116
lines changed

chains.json

Lines changed: 0 additions & 11 deletions
This file was deleted.

dist/chains.json

Lines changed: 0 additions & 11 deletions
This file was deleted.

dist/index.js

Lines changed: 27 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -18,51 +18,47 @@ const stargate_1 = require("@cosmjs/stargate");
1818
const helpers_1 = require("./helpers");
1919
const express_1 = __importDefault(require("express"));
2020
const cors_1 = __importDefault(require("cors"));
21-
const fs_1 = __importDefault(require("fs"));
2221
const 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;
2524
const app = (0, express_1.default)();
2625
app.use((0, cors_1.default)());
2726
app.use(express_1.default.json());
2827
app.use(express_1.default.urlencoded({ extended: true }));
2928
let 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 ===
4849
app.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
};

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"main": "src/index.ts",
66
"scripts": {
77
"start": "nodemon src/index.ts",
8-
"build": "rimraf dist && tsc && cp chains.json dist/chains.json",
8+
"build": "rimraf dist && tsc",
99
"ts.check": "tsc --project tsconfig.json",
1010
"add-build": "git add dist"
1111
},

src/index.ts

Lines changed: 28 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,9 @@ import cors from 'cors';
1111
import fs from 'fs';
1212

1313
import { config } from 'dotenv';
14+
import { get } from "http";
1415
config();
15-
const { API_PORT, FAUCET_MNEMONIC } = process.env;
16+
const { API_PORT, FAUCET_MNEMONIC, RPC_URL, PREFIX, DENOM, AMOUNT_TO_SEND, GAS_PRICE, GAS_AMOUNT, COOLDOWN_SECONDS } = process.env;
1617

1718

1819
const app = express();
@@ -34,22 +35,23 @@ interface ChainInfo {
3435
error?: string;
3536
}
3637

37-
function get_chain(chain_id: string) {
38-
if (chain_id === undefined) {
39-
return {
40-
error: 'Chain not found'
41-
}
42-
}
43-
44-
let chains = JSON.parse(fs.readFileSync('chains.json', 'utf8'));
45-
let chain_keys = Object.keys(chains);
46-
let chain = chains[chain_id];
47-
48-
if (chain === undefined) {
49-
return {
50-
error: 'Chain not found',
51-
chains: chain_keys
52-
}
38+
function get_chain() {
39+
var rpc_url = RPC_URL || '';
40+
var prefix = PREFIX || '';
41+
var denom = DENOM || '';
42+
var amount_to_send = AMOUNT_TO_SEND || 0;
43+
var gas_price = GAS_PRICE || 0;
44+
var gas_amount = GAS_AMOUNT || 0;
45+
var cooldown_seconds = COOLDOWN_SECONDS || 0;
46+
47+
let chain: ChainInfo = {
48+
rpc_url: rpc_url,
49+
prefix: prefix,
50+
denom: denom,
51+
amount_to_send: Number(amount_to_send),
52+
gas_price: Number(gas_price),
53+
gas_amount: Number(gas_amount),
54+
cooldown_seconds: Number(cooldown_seconds)
5355
}
5456

5557
return chain;
@@ -60,26 +62,19 @@ function get_chain(chain_id: string) {
6062

6163
app.get('/', (req, res) => {
6264
const base_url = req.protocol + '://' + req.get('host') + req.originalUrl;
65+
const chains = get_chain();
6366
res.json({
6467
endpoints: [
65-
`Get Faucet Info: ${base_url}<chain_id>`,
68+
`Get Faucet Info: ${base_url}faucet`,
6669
`Requests Funds (~6 second wait): ${base_url}<chain_id>/<address>`
6770
],
68-
chains: Object.keys(JSON.parse(fs.readFileSync('chains.json', 'utf8')))
71+
chains: chains,
6972
})
7073
})
7174

7275

73-
app.get('/:chain_id', async (req, res) => {
74-
const { chain_id } = req.params;
75-
76-
let chain = get_chain(chain_id);
77-
if (!chain || chain.error) {
78-
res.status(400).json(chain);
79-
return;
80-
}
81-
82-
chain = chain as ChainInfo;
76+
app.get('/faucet', async (req, res) => {
77+
let chain = get_chain();
8378

8479
try {
8580
const payment_account = await getAccountFromMnemonic(FAUCET_MNEMONIC, chain.prefix);
@@ -101,26 +96,11 @@ app.get('/:chain_id', async (req, res) => {
10196
})
10297

10398

104-
app.get('/:chain_id/:address', async (req, res) => {
105-
const { chain_id, address } = req.params;
106-
107-
// ensure address is only alphanumeric
108-
// if (!address.match(/^[a-zA-Z0-9]+$/)) {
109-
// res.status(400).json({
110-
// error: 'Address is not valid'
111-
// })
112-
// return;
113-
// }
114-
99+
app.get('/faucet/:address', async (req, res) => {
100+
const { address } = req.params;
115101

116102

117-
let chain = get_chain(chain_id);
118-
if (!chain || chain.error) {
119-
res.status(400).json(chain);
120-
return;
121-
}
122-
123-
chain = chain as ChainInfo;
103+
let chain = get_chain();
124104

125105
// ensure address is valid and starts with prefix
126106
if (!address.startsWith(chain.prefix)) {
@@ -129,7 +109,7 @@ app.get('/:chain_id/:address', async (req, res) => {
129109
})
130110
}
131111

132-
const map_key = `${chain_id}-${address}`;
112+
const map_key = `ojo-${address}`;
133113
if (cooldown_map.has(map_key)) {
134114
let cooldown = cooldown_map.get(map_key);
135115
let seconds_until_then = (cooldown - Date.now()) / 1000;
@@ -150,7 +130,6 @@ app.get('/:chain_id/:address', async (req, res) => {
150130
}
151131

152132
const config = {
153-
chainId: chain_id,
154133
rpcEndpoint: chain.rpc_url,
155134
prefix: chain.prefix,
156135
}

0 commit comments

Comments
 (0)