faucet-server-app 0.0.4 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -15,6 +15,55 @@ export declare function getAPI<CustomEnv extends Env>(options: ServerOptions<Cus
15
15
  status: import("hono/utils/http-status").ContentfulStatusCode;
16
16
  };
17
17
  };
18
+ } & {
19
+ "/chain/:chainId": {
20
+ $get: {
21
+ input: {
22
+ param: {
23
+ chainId: string;
24
+ };
25
+ };
26
+ output: {
27
+ error: string;
28
+ };
29
+ outputFormat: "json";
30
+ status: 400;
31
+ } | {
32
+ input: {
33
+ param: {
34
+ chainId: string;
35
+ };
36
+ };
37
+ output: {
38
+ error: string;
39
+ };
40
+ outputFormat: "json";
41
+ status: 404;
42
+ } | {
43
+ input: {
44
+ param: {
45
+ chainId: string;
46
+ };
47
+ };
48
+ output: {
49
+ error: string;
50
+ };
51
+ outputFormat: "json";
52
+ status: 500;
53
+ } | {
54
+ input: {
55
+ param: {
56
+ chainId: string;
57
+ };
58
+ };
59
+ output: {
60
+ rpcUrl: string;
61
+ chainId: number;
62
+ };
63
+ outputFormat: "json";
64
+ status: import("hono/utils/http-status").ContentfulStatusCode;
65
+ };
66
+ };
18
67
  } & {
19
68
  "/claim": {
20
69
  $post: {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,aAAa,EAAC,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAC,GAAG,EAAC,MAAM,WAAW,CAAC;AA6D9B,wBAAgB,MAAM,CAAC,SAAS,SAAS,GAAG,EAC3C,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC;cAED,SAAS;;cAAT,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAqHzC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,aAAa,EAAC,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAC,GAAG,EAAC,MAAM,WAAW,CAAC;AA6D9B,wBAAgB,MAAM,CAAC,SAAS,SAAS,GAAG,EAC3C,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC;cAED,SAAS;;cAAT,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAqJzC"}
@@ -39,6 +39,27 @@ export function getAPI(options) {
39
39
  const env = config.env;
40
40
  const captchaDisabled = env.DISABLE_CAPTCHA === 'true';
41
41
  return c.json({ captchaDisabled });
42
+ })
43
+ .get('/chain/:chainId', async (c) => {
44
+ const config = c.get('config');
45
+ const env = config.env;
46
+ const chainId = c.req.param('chainId');
47
+ // Validate chainId
48
+ const chainIdNum = parseInt(chainId, 10);
49
+ if (isNaN(chainIdNum) || chainIdNum <= 0) {
50
+ return c.json({ error: 'Invalid chainId' }, 400);
51
+ }
52
+ // Check for chain-specific config
53
+ const chainConfigKey = `CHAIN_${chainId}`;
54
+ const chainConfigValue = env[chainConfigKey];
55
+ if (!chainConfigValue) {
56
+ return c.json({ error: `Faucet not configured for chain ${chainId}` }, 404);
57
+ }
58
+ const chainConfig = parseChainConfig(chainConfigValue);
59
+ if (!chainConfig) {
60
+ return c.json({ error: `Invalid chain config for chain ${chainId}` }, 500);
61
+ }
62
+ return c.json({ rpcUrl: chainConfig.rpcUrl, chainId: chainIdNum });
42
63
  })
43
64
  .post('/claim', async (c) => {
44
65
  const config = c.get('config');
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/index.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,55 @@ export declare function createServer<CustomEnv extends Env>(options: ServerOptio
17
17
  status: import("hono/utils/http-status").ContentfulStatusCode;
18
18
  };
19
19
  };
20
+ } & {
21
+ "/chain/:chainId": {
22
+ $get: {
23
+ input: {
24
+ param: {
25
+ chainId: string;
26
+ };
27
+ };
28
+ output: {
29
+ error: string;
30
+ };
31
+ outputFormat: "json";
32
+ status: 400;
33
+ } | {
34
+ input: {
35
+ param: {
36
+ chainId: string;
37
+ };
38
+ };
39
+ output: {
40
+ error: string;
41
+ };
42
+ outputFormat: "json";
43
+ status: 404;
44
+ } | {
45
+ input: {
46
+ param: {
47
+ chainId: string;
48
+ };
49
+ };
50
+ output: {
51
+ error: string;
52
+ };
53
+ outputFormat: "json";
54
+ status: 500;
55
+ } | {
56
+ input: {
57
+ param: {
58
+ chainId: string;
59
+ };
60
+ };
61
+ output: {
62
+ rpcUrl: string;
63
+ chainId: number;
64
+ };
65
+ outputFormat: "json";
66
+ status: import("hono/utils/http-status").ContentfulStatusCode;
67
+ };
68
+ };
20
69
  } & {
21
70
  "/claim": {
22
71
  $post: {
@@ -65,6 +114,59 @@ declare const client: {
65
114
  };
66
115
  }>;
67
116
  };
117
+ } & {
118
+ api: {
119
+ chain: {
120
+ ":chainId": import("hono/client").ClientRequest<string, "/api/chain/:chainId", {
121
+ $get: {
122
+ input: {
123
+ param: {
124
+ chainId: string;
125
+ };
126
+ };
127
+ output: {
128
+ error: string;
129
+ };
130
+ outputFormat: "json";
131
+ status: 400;
132
+ } | {
133
+ input: {
134
+ param: {
135
+ chainId: string;
136
+ };
137
+ };
138
+ output: {
139
+ error: string;
140
+ };
141
+ outputFormat: "json";
142
+ status: 404;
143
+ } | {
144
+ input: {
145
+ param: {
146
+ chainId: string;
147
+ };
148
+ };
149
+ output: {
150
+ error: string;
151
+ };
152
+ outputFormat: "json";
153
+ status: 500;
154
+ } | {
155
+ input: {
156
+ param: {
157
+ chainId: string;
158
+ };
159
+ };
160
+ output: {
161
+ rpcUrl: string;
162
+ chainId: number;
163
+ };
164
+ outputFormat: "json";
165
+ status: import("hono/utils/http-status").ContentfulStatusCode;
166
+ };
167
+ }>;
168
+ };
169
+ };
68
170
  } & {
69
171
  api: {
70
172
  claim: import("hono/client").ClientRequest<string, "/api/claim", {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,aAAa,EAAC,MAAM,YAAY,CAAC;AACzC,OAAO,EAAC,EAAE,EAAC,MAAM,aAAa,CAAC;AAE/B,OAAO,EAAC,GAAG,EAAC,MAAM,UAAU,CAAC;AAG7B,YAAY,EAAC,GAAG,EAAC,CAAC;AAkBlB,wBAAgB,YAAY,CAAC,SAAS,SAAS,GAAG,EACjD,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC;cAED,SAAS;;cAAT,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAkCzC;AAED,MAAM,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;AAGlD,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAc,CAAC;AAC3B,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC;AACnC,eAAO,MAAM,YAAY,GAAI,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,CAAC,KAAG,MAC7C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,aAAa,EAAC,MAAM,YAAY,CAAC;AACzC,OAAO,EAAC,EAAE,EAAC,MAAM,aAAa,CAAC;AAE/B,OAAO,EAAC,GAAG,EAAC,MAAM,UAAU,CAAC;AAG7B,YAAY,EAAC,GAAG,EAAC,CAAC;AAkBlB,wBAAgB,YAAY,CAAC,SAAS,SAAS,GAAG,EACjD,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC;cAED,SAAS;;cAAT,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAkCzC;AAED,MAAM,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;AAGlD,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAc,CAAC;AAC3B,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC;AACnC,eAAO,MAAM,YAAY,GAAI,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,CAAC,KAAG,MAC7C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "faucet-server-app",
3
- "version": "0.0.4",
3
+ "version": "0.0.5",
4
4
  "description": "server app",
5
5
  "license": "MIT",
6
6
  "publishConfig": {
package/src/api/index.ts CHANGED
@@ -73,6 +73,38 @@ export function getAPI<CustomEnv extends Env>(
73
73
  const captchaDisabled = env.DISABLE_CAPTCHA === 'true';
74
74
  return c.json({captchaDisabled});
75
75
  })
76
+ .get('/chain/:chainId', async (c) => {
77
+ const config = c.get('config');
78
+ const env = config.env;
79
+ const chainId = c.req.param('chainId');
80
+
81
+ // Validate chainId
82
+ const chainIdNum = parseInt(chainId, 10);
83
+ if (isNaN(chainIdNum) || chainIdNum <= 0) {
84
+ return c.json({error: 'Invalid chainId'}, 400);
85
+ }
86
+
87
+ // Check for chain-specific config
88
+ const chainConfigKey = `CHAIN_${chainId}` as `CHAIN_${string}`;
89
+ const chainConfigValue = env[chainConfigKey];
90
+
91
+ if (!chainConfigValue) {
92
+ return c.json(
93
+ {error: `Faucet not configured for chain ${chainId}`},
94
+ 404,
95
+ );
96
+ }
97
+
98
+ const chainConfig = parseChainConfig(chainConfigValue);
99
+ if (!chainConfig) {
100
+ return c.json(
101
+ {error: `Invalid chain config for chain ${chainId}`},
102
+ 500,
103
+ );
104
+ }
105
+
106
+ return c.json({rpcUrl: chainConfig.rpcUrl, chainId: chainIdNum});
107
+ })
76
108
  .post('/claim', async (c) => {
77
109
  const config = c.get('config');
78
110
  const env = config.env;