faucet-server-app 0.0.3 → 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.
@@ -5,6 +5,66 @@ export declare function getAPI<CustomEnv extends Env>(options: ServerOptions<Cus
5
5
  } extends infer T ? T extends {
6
6
  Bindings: CustomEnv;
7
7
  } ? T extends import("hono").Env ? import("hono").Env extends T ? {} : T : T : never : never> & {}, {
8
+ "/config": {
9
+ $get: {
10
+ input: {};
11
+ output: {
12
+ captchaDisabled: boolean;
13
+ };
14
+ outputFormat: "json";
15
+ status: import("hono/utils/http-status").ContentfulStatusCode;
16
+ };
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
+ };
67
+ } & {
8
68
  "/claim": {
9
69
  $post: {
10
70
  input: {};
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA+GzC"}
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"}
@@ -34,6 +34,33 @@ function parseChainConfig(configValue) {
34
34
  export function getAPI(options) {
35
35
  const app = new Hono()
36
36
  .use(setup({ serverOptions: options }))
37
+ .get('/config', async (c) => {
38
+ const config = c.get('config');
39
+ const env = config.env;
40
+ const captchaDisabled = env.DISABLE_CAPTCHA === 'true';
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 });
63
+ })
37
64
  .post('/claim', async (c) => {
38
65
  const config = c.get('config');
39
66
  const env = config.env;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,MAAM,CAAC;AAE1B,OAAO,EAAC,KAAK,EAAC,MAAM,aAAa,CAAC;AAElC,OAAO,EACN,kBAAkB,EAClB,IAAI,EACJ,SAAS,GAIT,MAAM,MAAM,CAAC;AACd,OAAO,EAAC,mBAAmB,EAAC,MAAM,eAAe,CAAC;AAElD,MAAM,uBAAuB,GAAG,mCAAmC,CAAC;AAapE,KAAK,UAAU,oBAAoB,CAClC,KAAa,EACb,MAAc;IAEd,MAAM,IAAI,GAAG;QACZ,KAAK;QACL,MAAM;KACN,CAAC;IAEF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,uBAAuB,EAAE;QACrD,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACR,cAAc,EAAE,kBAAkB;SAClC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;KAC1B,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAmB,CAAC;IACzD,OAAO,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC;AACjC,CAAC;AAED,SAAS,gBAAgB,CACxB,WAAmB;IAEnB,kCAAkC;IAClC,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC5C,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACb,CAAC;IACD,MAAM,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;IACrD,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IACb,CAAC;IACD,OAAO,EAAC,MAAM,EAAE,MAAM,EAAC,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,MAAM,CACrB,OAAiC;IAEjC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAyB;SAC3C,GAAG,CAAC,KAAK,CAAC,EAAC,aAAa,EAAE,OAAO,EAAC,CAAC,CAAC;SACpC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC3B,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC/B,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;QAEvB,2DAA2D;QAC3D,MAAM,eAAe,GAAG,GAAG,CAAC,eAAe,KAAK,MAAM,CAAC;QAEvD,gEAAgE;QAChE,MAAM,MAAM,GAAG,GAAG,CAAC,wBAAwB,CAAC;QAC5C,IAAI,CAAC,eAAe,IAAI,CAAC,MAAM,EAAE,CAAC;YACjC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,yCAAyC,EAAC,EAAE,GAAG,CAAC,CAAC;QACxE,CAAC;QAED,8BAA8B;QAC9B,MAAM,gBAAgB,GAAG,GAAG,CAAC,kBAAkB,CAAC;QAChD,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACvB,OAAO,CAAC,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,mCAAmC,EAAC,EAAE,GAAG,CAAC,CAAC;QAClE,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAgB,CAAC;QAC9C,MAAM,EAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAC,GAAG,IAAI,CAAC;QAEvC,2BAA2B;QAC3B,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,OAAO,CAAC,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,eAAe,EAAC,EAAE,GAAG,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,OAAO,CAAC,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,iBAAiB,EAAC,EAAE,GAAG,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,OAAO,CAAC,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,iBAAiB,EAAC,EAAE,GAAG,CAAC,CAAC;QAChD,CAAC;QAED,0BAA0B;QAC1B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,0BAA0B,EAAC,EAAE,GAAG,CAAC,CAAC;QACzD,CAAC;QAED,gBAAgB;QAChB,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACzC,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC;YAC1C,OAAO,CAAC,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,iBAAiB,EAAC,EAAE,GAAG,CAAC,CAAC;QAChD,CAAC;QAED,oEAAoE;QACpE,MAAM,cAAc,GAAG,SAAS,OAAO,EAAuB,CAAC;QAC/D,MAAM,gBAAgB,GAAG,GAAG,CAAC,cAAc,CAAC,CAAC;QAE7C,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACvB,OAAO,CAAC,CAAC,IAAI,CACZ,EAAC,KAAK,EAAE,mCAAmC,OAAO,EAAE,EAAC,EACrD,GAAG,CACH,CAAC;QACH,CAAC;QAED,MAAM,WAAW,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;QACvD,IAAI,CAAC,WAAW,EAAE,CAAC;YAClB,OAAO,CAAC,CAAC,IAAI,CACZ;gBACC,KAAK,EAAE,yCAAyC,OAAO,qCAAqC;aAC5F,EACD,GAAG,CACH,CAAC;QACH,CAAC;QAED,8DAA8D;QAC9D,IAAI,CAAC,eAAe,EAAE,CAAC;YACtB,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,KAAK,EAAE,MAAO,CAAC,CAAC;YAE5D,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACf,OAAO,CAAC,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,6BAA6B,EAAC,EAAE,GAAG,CAAC,CAAC;YAC5D,CAAC;QACF,CAAC;QAED,IAAI,CAAC;YACJ,4CAA4C;YAC5C,MAAM,OAAO,GAAG,mBAAmB,CAAC,gBAAuB,CAAC,CAAC;YAC7D,MAAM,EAAC,MAAM,EAAE,MAAM,EAAC,GAAG,WAAW,CAAC;YAErC,MAAM,YAAY,GAAG,kBAAkB,CAAC;gBACvC,OAAO;gBACP,KAAK,EAAE;oBACN,EAAE,EAAE,UAAU;oBACd,IAAI,EAAE,SAAS,UAAU,EAAE;oBAC3B,cAAc,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAC;oBAC1D,OAAO,EAAE;wBACR,OAAO,EAAE,EAAC,IAAI,EAAE,CAAC,MAAM,CAAC,EAAC;qBACzB;iBACD;gBACD,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC;aACvB,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,eAAe,CAAC;gBACjD,EAAE,EAAE,OAAkB;gBACtB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;aACrB,CAAC,CAAC;YAEH,OAAO,CAAC,CAAC,IAAI,CAAC,EAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAC,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC;YACzC,MAAM,YAAY,GACjB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,oBAAoB,CAAC;YAC3D,OAAO,CAAC,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,YAAY,EAAC,EAAE,GAAG,CAAC,CAAC;QAC3C,CAAC;IACF,CAAC,CAAC,CAAC;IAEJ,OAAO,GAAG,CAAC;AACZ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/index.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,66 @@ export declare function createServer<CustomEnv extends Env>(options: ServerOptio
7
7
  } extends infer T ? T extends {
8
8
  Bindings: CustomEnv;
9
9
  } ? T extends import("hono").Env ? import("hono").Env extends T ? {} : T : T : never : never> & {}, import("hono/types").BlankSchema | import("hono/types").MergeSchemaPath<{
10
+ "/config": {
11
+ $get: {
12
+ input: {};
13
+ output: {
14
+ captchaDisabled: boolean;
15
+ };
16
+ outputFormat: "json";
17
+ status: import("hono/utils/http-status").ContentfulStatusCode;
18
+ };
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
+ };
69
+ } & {
10
70
  "/claim": {
11
71
  $post: {
12
72
  input: {};
@@ -42,6 +102,72 @@ export declare function createServer<CustomEnv extends Env>(options: ServerOptio
42
102
  }, "/api/">, "/", "/api/*">;
43
103
  export type App = ReturnType<typeof createServer>;
44
104
  declare const client: {
105
+ api: {
106
+ config: import("hono/client").ClientRequest<string, "/api/config", {
107
+ $get: {
108
+ input: {};
109
+ output: {
110
+ captchaDisabled: boolean;
111
+ };
112
+ outputFormat: "json";
113
+ status: import("hono/utils/http-status").ContentfulStatusCode;
114
+ };
115
+ }>;
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
+ };
170
+ } & {
45
171
  api: {
46
172
  claim: import("hono/client").ClientRequest<string, "/api/claim", {
47
173
  $post: {
@@ -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.3",
3
+ "version": "0.0.5",
4
4
  "description": "server app",
5
5
  "license": "MIT",
6
6
  "publishConfig": {
package/src/api/index.ts CHANGED
@@ -67,6 +67,44 @@ export function getAPI<CustomEnv extends Env>(
67
67
  ) {
68
68
  const app = new Hono<{Bindings: CustomEnv}>()
69
69
  .use(setup({serverOptions: options}))
70
+ .get('/config', async (c) => {
71
+ const config = c.get('config');
72
+ const env = config.env;
73
+ const captchaDisabled = env.DISABLE_CAPTCHA === 'true';
74
+ return c.json({captchaDisabled});
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
+ })
70
108
  .post('/claim', async (c) => {
71
109
  const config = c.get('config');
72
110
  const env = config.env;