@latticexyz/faucet 2.2.18-ebe1aea8d4afb690ce1c7c2bcb42dc0f1faf6e77 → 2.2.18

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.
@@ -1,8 +1,68 @@
1
1
  #!/usr/bin/env node
2
- import{a as s}from"../chunk-LVBDKFIB.js";import"dotenv/config";import d from"fastify";import{fastifyTRPCPlugin as u}from"@trpc/server/adapters/fastify";import{http as R,createClient as g}from"viem";import{privateKeyToAccount as h}from"viem/accounts";import{isHex as m,parseEther as f}from"viem";import{z as e,ZodError as T}from"zod";var c=e.object({HOST:e.string().default("0.0.0.0"),PORT:e.coerce.number().positive().default(3002),RPC_HTTP_URL:e.string(),FAUCET_PRIVATE_KEY:e.string().refine(m),DRIP_AMOUNT_ETHER:e.string().default("1").transform(r=>f(r))});function a(r){let n=r!==void 0?e.intersection(c,r):c;try{return n.parse(process.env)}catch(i){if(i instanceof T){let{...p}=i.format();console.error(`
2
+ import {
3
+ createAppRouter
4
+ } from "../chunk-N527JXGJ.js";
5
+
6
+ // src/bin/faucet-server.ts
7
+ import "dotenv/config";
8
+ import fastify from "fastify";
9
+ import { fastifyTRPCPlugin } from "@trpc/server/adapters/fastify";
10
+ import { http, createClient } from "viem";
11
+ import { privateKeyToAccount } from "viem/accounts";
12
+
13
+ // src/bin/parseEnv.ts
14
+ import { isHex, parseEther } from "viem";
15
+ import { z, ZodError } from "zod";
16
+ var commonSchema = z.object({
17
+ HOST: z.string().default("0.0.0.0"),
18
+ PORT: z.coerce.number().positive().default(3002),
19
+ RPC_HTTP_URL: z.string(),
20
+ FAUCET_PRIVATE_KEY: z.string().refine(isHex),
21
+ DRIP_AMOUNT_ETHER: z.string().default("1").transform((ether) => parseEther(ether))
22
+ });
23
+ function parseEnv(schema) {
24
+ const envSchema = schema !== void 0 ? z.intersection(commonSchema, schema) : commonSchema;
25
+ try {
26
+ return envSchema.parse(process.env);
27
+ } catch (error) {
28
+ if (error instanceof ZodError) {
29
+ const { ...invalidEnvVars } = error.format();
30
+ console.error(`
3
31
  Missing or invalid environment variables:
4
32
 
5
- ${Object.keys(p).join(`
6
- `)}
7
- `),process.exit(1)}throw i}}var t=a(),l=g({transport:R(t.RPC_HTTP_URL)}),v=h(t.FAUCET_PRIVATE_KEY),o=d({maxParamLength:5e3,logger:!0});await o.register(import("@fastify/compress"));await o.register(import("@fastify/cors"));o.get("/healthz",(r,n)=>n.code(200).send());o.get("/readyz",(r,n)=>n.code(200).send());o.register(u,{prefix:"/trpc",trpcOptions:{router:s(),createContext:async()=>({client:l,faucetAccount:v,dripAmount:t.DRIP_AMOUNT_ETHER})}});await o.listen({host:t.HOST,port:t.PORT});console.log(`faucet server listening on http://${t.HOST}:${t.PORT}`);
33
+ ${Object.keys(invalidEnvVars).join("\n ")}
34
+ `);
35
+ process.exit(1);
36
+ }
37
+ throw error;
38
+ }
39
+ }
40
+
41
+ // src/bin/faucet-server.ts
42
+ var env = parseEnv();
43
+ var client = createClient({
44
+ transport: http(env.RPC_HTTP_URL)
45
+ });
46
+ var faucetAccount = privateKeyToAccount(env.FAUCET_PRIVATE_KEY);
47
+ var server = fastify({
48
+ maxParamLength: 5e3,
49
+ logger: true
50
+ });
51
+ await server.register(import("@fastify/compress"));
52
+ await server.register(import("@fastify/cors"));
53
+ server.get("/healthz", (req, res) => res.code(200).send());
54
+ server.get("/readyz", (req, res) => res.code(200).send());
55
+ server.register(fastifyTRPCPlugin, {
56
+ prefix: "/trpc",
57
+ trpcOptions: {
58
+ router: createAppRouter(),
59
+ createContext: async () => ({
60
+ client,
61
+ faucetAccount,
62
+ dripAmount: env.DRIP_AMOUNT_ETHER
63
+ })
64
+ }
65
+ });
66
+ await server.listen({ host: env.HOST, port: env.PORT });
67
+ console.log(`faucet server listening on http://${env.HOST}:${env.PORT}`);
8
68
  //# sourceMappingURL=faucet-server.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/bin/faucet-server.ts","../../src/bin/parseEnv.ts"],"sourcesContent":["#!/usr/bin/env node\nimport \"dotenv/config\";\nimport fastify from \"fastify\";\nimport { fastifyTRPCPlugin } from \"@trpc/server/adapters/fastify\";\nimport { http, createClient } from \"viem\";\nimport { privateKeyToAccount } from \"viem/accounts\";\nimport { AppRouter, createAppRouter } from \"../createAppRouter\";\nimport { parseEnv } from \"./parseEnv\";\n\nconst env = parseEnv();\n\nconst client = createClient({\n transport: http(env.RPC_HTTP_URL),\n});\n\nconst faucetAccount = privateKeyToAccount(env.FAUCET_PRIVATE_KEY);\n\n// @see https://fastify.dev/docs/latest/\nconst server = fastify({\n maxParamLength: 5000,\n logger: true,\n});\n\nawait server.register(import(\"@fastify/compress\"));\nawait server.register(import(\"@fastify/cors\"));\n\n// k8s healthchecks\nserver.get(\"/healthz\", (req, res) => res.code(200).send());\nserver.get(\"/readyz\", (req, res) => res.code(200).send());\n\n// @see https://trpc.io/docs/server/adapters/fastify\nserver.register(fastifyTRPCPlugin<AppRouter>, {\n prefix: \"/trpc\",\n trpcOptions: {\n router: createAppRouter(),\n createContext: async () => ({\n client,\n faucetAccount,\n dripAmount: env.DRIP_AMOUNT_ETHER,\n }),\n },\n});\n\nawait server.listen({ host: env.HOST, port: env.PORT });\nconsole.log(`faucet server listening on http://${env.HOST}:${env.PORT}`);\n","import { isHex, parseEther } from \"viem\";\nimport { z, ZodError, ZodIntersection, ZodTypeAny } from \"zod\";\n\nconst commonSchema = z.object({\n HOST: z.string().default(\"0.0.0.0\"),\n PORT: z.coerce.number().positive().default(3002),\n RPC_HTTP_URL: z.string(),\n FAUCET_PRIVATE_KEY: z.string().refine(isHex),\n DRIP_AMOUNT_ETHER: z\n .string()\n .default(\"1\")\n .transform((ether) => parseEther(ether)),\n});\n\nexport function parseEnv<TSchema extends ZodTypeAny | undefined = undefined>(\n schema?: TSchema,\n): z.infer<TSchema extends ZodTypeAny ? ZodIntersection<typeof commonSchema, TSchema> : typeof commonSchema> {\n const envSchema = schema !== undefined ? z.intersection(commonSchema, schema) : commonSchema;\n try {\n return envSchema.parse(process.env);\n } catch (error) {\n if (error instanceof ZodError) {\n const { ...invalidEnvVars } = error.format();\n console.error(`\\nMissing or invalid environment variables:\\n\\n ${Object.keys(invalidEnvVars).join(\"\\n \")}\\n`);\n process.exit(1);\n }\n throw error;\n }\n}\n"],"mappings":";yCACA,MAAO,gBACP,OAAOA,MAAa,UACpB,OAAS,qBAAAC,MAAyB,gCAClC,OAAS,QAAAC,EAAM,gBAAAC,MAAoB,OACnC,OAAS,uBAAAC,MAA2B,gBCLpC,OAAS,SAAAC,EAAO,cAAAC,MAAkB,OAClC,OAAS,KAAAC,EAAG,YAAAC,MAA6C,MAEzD,IAAMC,EAAeF,EAAE,OAAO,CAC5B,KAAMA,EAAE,OAAO,EAAE,QAAQ,SAAS,EAClC,KAAMA,EAAE,OAAO,OAAO,EAAE,SAAS,EAAE,QAAQ,IAAI,EAC/C,aAAcA,EAAE,OAAO,EACvB,mBAAoBA,EAAE,OAAO,EAAE,OAAOF,CAAK,EAC3C,kBAAmBE,EAChB,OAAO,EACP,QAAQ,GAAG,EACX,UAAWG,GAAUJ,EAAWI,CAAK,CAAC,CAC3C,CAAC,EAEM,SAASC,EACdC,EAC2G,CAC3G,IAAMC,EAAYD,IAAW,OAAYL,EAAE,aAAaE,EAAcG,CAAM,EAAIH,EAChF,GAAI,CACF,OAAOI,EAAU,MAAM,QAAQ,GAAG,CACpC,OAASC,EAAO,CACd,GAAIA,aAAiBN,EAAU,CAC7B,GAAM,CAAE,GAAGO,CAAe,EAAID,EAAM,OAAO,EAC3C,QAAQ,MAAM;AAAA;AAAA;AAAA,IAAoD,OAAO,KAAKC,CAAc,EAAE,KAAK;AAAA,GAAM,CAAC;AAAA,CAAI,EAC9G,QAAQ,KAAK,CAAC,CAChB,CACA,MAAMD,CACR,CACF,CDnBA,IAAME,EAAMC,EAAS,EAEfC,EAASC,EAAa,CAC1B,UAAWC,EAAKJ,EAAI,YAAY,CAClC,CAAC,EAEKK,EAAgBC,EAAoBN,EAAI,kBAAkB,EAG1DO,EAASC,EAAQ,CACrB,eAAgB,IAChB,OAAQ,EACV,CAAC,EAED,MAAMD,EAAO,SAAS,OAAO,mBAAmB,CAAC,EACjD,MAAMA,EAAO,SAAS,OAAO,eAAe,CAAC,EAG7CA,EAAO,IAAI,WAAY,CAACE,EAAKC,IAAQA,EAAI,KAAK,GAAG,EAAE,KAAK,CAAC,EACzDH,EAAO,IAAI,UAAW,CAACE,EAAKC,IAAQA,EAAI,KAAK,GAAG,EAAE,KAAK,CAAC,EAGxDH,EAAO,SAASI,EAA8B,CAC5C,OAAQ,QACR,YAAa,CACX,OAAQC,EAAgB,EACxB,cAAe,UAAa,CAC1B,OAAAV,EACA,cAAAG,EACA,WAAYL,EAAI,iBAClB,EACF,CACF,CAAC,EAED,MAAMO,EAAO,OAAO,CAAE,KAAMP,EAAI,KAAM,KAAMA,EAAI,IAAK,CAAC,EACtD,QAAQ,IAAI,qCAAqCA,EAAI,IAAI,IAAIA,EAAI,IAAI,EAAE","names":["fastify","fastifyTRPCPlugin","http","createClient","privateKeyToAccount","isHex","parseEther","z","ZodError","commonSchema","ether","parseEnv","schema","envSchema","error","invalidEnvVars","env","parseEnv","client","createClient","http","faucetAccount","privateKeyToAccount","server","fastify","req","res","fastifyTRPCPlugin","createAppRouter"]}
1
+ {"version":3,"sources":["../../src/bin/faucet-server.ts","../../src/bin/parseEnv.ts"],"sourcesContent":["#!/usr/bin/env node\nimport \"dotenv/config\";\nimport fastify from \"fastify\";\nimport { fastifyTRPCPlugin } from \"@trpc/server/adapters/fastify\";\nimport { http, createClient } from \"viem\";\nimport { privateKeyToAccount } from \"viem/accounts\";\nimport { AppRouter, createAppRouter } from \"../createAppRouter\";\nimport { parseEnv } from \"./parseEnv\";\n\nconst env = parseEnv();\n\nconst client = createClient({\n transport: http(env.RPC_HTTP_URL),\n});\n\nconst faucetAccount = privateKeyToAccount(env.FAUCET_PRIVATE_KEY);\n\n// @see https://fastify.dev/docs/latest/\nconst server = fastify({\n maxParamLength: 5000,\n logger: true,\n});\n\nawait server.register(import(\"@fastify/compress\"));\nawait server.register(import(\"@fastify/cors\"));\n\n// k8s healthchecks\nserver.get(\"/healthz\", (req, res) => res.code(200).send());\nserver.get(\"/readyz\", (req, res) => res.code(200).send());\n\n// @see https://trpc.io/docs/server/adapters/fastify\nserver.register(fastifyTRPCPlugin<AppRouter>, {\n prefix: \"/trpc\",\n trpcOptions: {\n router: createAppRouter(),\n createContext: async () => ({\n client,\n faucetAccount,\n dripAmount: env.DRIP_AMOUNT_ETHER,\n }),\n },\n});\n\nawait server.listen({ host: env.HOST, port: env.PORT });\nconsole.log(`faucet server listening on http://${env.HOST}:${env.PORT}`);\n","import { isHex, parseEther } from \"viem\";\nimport { z, ZodError, ZodIntersection, ZodTypeAny } from \"zod\";\n\nconst commonSchema = z.object({\n HOST: z.string().default(\"0.0.0.0\"),\n PORT: z.coerce.number().positive().default(3002),\n RPC_HTTP_URL: z.string(),\n FAUCET_PRIVATE_KEY: z.string().refine(isHex),\n DRIP_AMOUNT_ETHER: z\n .string()\n .default(\"1\")\n .transform((ether) => parseEther(ether)),\n});\n\nexport function parseEnv<TSchema extends ZodTypeAny | undefined = undefined>(\n schema?: TSchema,\n): z.infer<TSchema extends ZodTypeAny ? ZodIntersection<typeof commonSchema, TSchema> : typeof commonSchema> {\n const envSchema = schema !== undefined ? z.intersection(commonSchema, schema) : commonSchema;\n try {\n return envSchema.parse(process.env);\n } catch (error) {\n if (error instanceof ZodError) {\n const { ...invalidEnvVars } = error.format();\n console.error(`\\nMissing or invalid environment variables:\\n\\n ${Object.keys(invalidEnvVars).join(\"\\n \")}\\n`);\n process.exit(1);\n }\n throw error;\n }\n}\n"],"mappings":";;;;;;AACA,OAAO;AACP,OAAO,aAAa;AACpB,SAAS,yBAAyB;AAClC,SAAS,MAAM,oBAAoB;AACnC,SAAS,2BAA2B;;;ACLpC,SAAS,OAAO,kBAAkB;AAClC,SAAS,GAAG,gBAA6C;AAEzD,IAAM,eAAe,EAAE,OAAO;AAAA,EAC5B,MAAM,EAAE,OAAO,EAAE,QAAQ,SAAS;AAAA,EAClC,MAAM,EAAE,OAAO,OAAO,EAAE,SAAS,EAAE,QAAQ,IAAI;AAAA,EAC/C,cAAc,EAAE,OAAO;AAAA,EACvB,oBAAoB,EAAE,OAAO,EAAE,OAAO,KAAK;AAAA,EAC3C,mBAAmB,EAChB,OAAO,EACP,QAAQ,GAAG,EACX,UAAU,CAAC,UAAU,WAAW,KAAK,CAAC;AAC3C,CAAC;AAEM,SAAS,SACd,QAC2G;AAC3G,QAAM,YAAY,WAAW,SAAY,EAAE,aAAa,cAAc,MAAM,IAAI;AAChF,MAAI;AACF,WAAO,UAAU,MAAM,QAAQ,GAAG;AAAA,EACpC,SAAS,OAAO;AACd,QAAI,iBAAiB,UAAU;AAC7B,YAAM,EAAE,GAAG,eAAe,IAAI,MAAM,OAAO;AAC3C,cAAQ,MAAM;AAAA;AAAA;AAAA,IAAoD,OAAO,KAAK,cAAc,EAAE,KAAK,MAAM,CAAC;AAAA,CAAI;AAC9G,cAAQ,KAAK,CAAC;AAAA,IAChB;AACA,UAAM;AAAA,EACR;AACF;;;ADnBA,IAAM,MAAM,SAAS;AAErB,IAAM,SAAS,aAAa;AAAA,EAC1B,WAAW,KAAK,IAAI,YAAY;AAClC,CAAC;AAED,IAAM,gBAAgB,oBAAoB,IAAI,kBAAkB;AAGhE,IAAM,SAAS,QAAQ;AAAA,EACrB,gBAAgB;AAAA,EAChB,QAAQ;AACV,CAAC;AAED,MAAM,OAAO,SAAS,OAAO,mBAAmB,CAAC;AACjD,MAAM,OAAO,SAAS,OAAO,eAAe,CAAC;AAG7C,OAAO,IAAI,YAAY,CAAC,KAAK,QAAQ,IAAI,KAAK,GAAG,EAAE,KAAK,CAAC;AACzD,OAAO,IAAI,WAAW,CAAC,KAAK,QAAQ,IAAI,KAAK,GAAG,EAAE,KAAK,CAAC;AAGxD,OAAO,SAAS,mBAA8B;AAAA,EAC5C,QAAQ;AAAA,EACR,aAAa;AAAA,IACX,QAAQ,gBAAgB;AAAA,IACxB,eAAe,aAAa;AAAA,MAC1B;AAAA,MACA;AAAA,MACA,YAAY,IAAI;AAAA,IAClB;AAAA,EACF;AACF,CAAC;AAED,MAAM,OAAO,OAAO,EAAE,MAAM,IAAI,MAAM,MAAM,IAAI,KAAK,CAAC;AACtD,QAAQ,IAAI,qCAAqC,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE;","names":[]}
@@ -0,0 +1,40 @@
1
+ // src/createAppRouter.ts
2
+ import { z } from "zod";
3
+ import { initTRPC } from "@trpc/server";
4
+ import { formatEther, isHex } from "viem";
5
+ import { sendTransaction } from "@latticexyz/common";
6
+
7
+ // src/debug.ts
8
+ import createDebug from "debug";
9
+ var debug = createDebug("mud:faucet");
10
+ var error = createDebug("mud:faucet");
11
+ debug.log = console.debug.bind(console);
12
+ error.log = console.error.bind(console);
13
+
14
+ // src/createAppRouter.ts
15
+ function createAppRouter() {
16
+ const t = initTRPC.context().create();
17
+ return t.router({
18
+ drip: t.procedure.input(
19
+ z.object({
20
+ address: z.string().refine(isHex)
21
+ })
22
+ ).mutation(async (opts) => {
23
+ const { client, faucetAccount, dripAmount } = opts.ctx;
24
+ const { address } = opts.input;
25
+ const tx = await sendTransaction(client, {
26
+ chain: null,
27
+ account: faucetAccount,
28
+ to: address,
29
+ value: dripAmount
30
+ });
31
+ debug(`Dripped ${formatEther(dripAmount)} ETH from ${faucetAccount.address} to ${address} (tx ${tx})`);
32
+ return tx;
33
+ })
34
+ });
35
+ }
36
+
37
+ export {
38
+ createAppRouter
39
+ };
40
+ //# sourceMappingURL=chunk-N527JXGJ.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/createAppRouter.ts","../src/debug.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { initTRPC } from \"@trpc/server\";\nimport { Client, Hex, LocalAccount, formatEther, isHex } from \"viem\";\nimport { sendTransaction } from \"@latticexyz/common\";\nimport { debug } from \"./debug\";\n\nexport type AppContext = {\n client: Client;\n faucetAccount: LocalAccount<string>;\n dripAmount: bigint;\n};\n\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nexport function createAppRouter() {\n const t = initTRPC.context<AppContext>().create();\n\n return t.router({\n drip: t.procedure\n .input(\n z.object({\n address: z.string().refine(isHex),\n }),\n )\n .mutation(async (opts): Promise<Hex> => {\n const { client, faucetAccount, dripAmount } = opts.ctx;\n\n const { address } = opts.input;\n const tx = await sendTransaction(client, {\n chain: null,\n account: faucetAccount,\n to: address,\n value: dripAmount,\n });\n\n debug(`Dripped ${formatEther(dripAmount)} ETH from ${faucetAccount.address} to ${address} (tx ${tx})`);\n\n return tx;\n }),\n });\n}\n\nexport type AppRouter = ReturnType<typeof createAppRouter>;\n","import createDebug from \"debug\";\n\nexport const debug = createDebug(\"mud:faucet\");\nexport const error = createDebug(\"mud:faucet\");\n\n// Pipe debug output to stdout instead of stderr\ndebug.log = console.debug.bind(console);\n\n// Pipe error output to stderr\nerror.log = console.error.bind(console);\n"],"mappings":"AAAA,OAAS,KAAAA,MAAS,MAClB,OAAS,YAAAC,MAAgB,eACzB,OAAoC,eAAAC,EAAa,SAAAC,MAAa,OAC9D,OAAS,mBAAAC,MAAuB,qBCHhC,OAAOC,MAAiB,QAEjB,IAAMC,EAAQD,EAAY,YAAY,EAChCE,EAAQF,EAAY,YAAY,EAG7CC,EAAM,IAAM,QAAQ,MAAM,KAAK,OAAO,EAGtCC,EAAM,IAAM,QAAQ,MAAM,KAAK,OAAO,EDI/B,SAASC,GAAkB,CAChC,IAAMC,EAAIC,EAAS,QAAoB,EAAE,OAAO,EAEhD,OAAOD,EAAE,OAAO,CACd,KAAMA,EAAE,UACL,MACCE,EAAE,OAAO,CACP,QAASA,EAAE,OAAO,EAAE,OAAOC,CAAK,CAClC,CAAC,CACH,EACC,SAAS,MAAOC,GAAuB,CACtC,GAAM,CAAE,OAAAC,EAAQ,cAAAC,EAAe,WAAAC,CAAW,EAAIH,EAAK,IAE7C,CAAE,QAAAI,CAAQ,EAAIJ,EAAK,MACnBK,EAAK,MAAMC,EAAgBL,EAAQ,CACvC,MAAO,KACP,QAASC,EACT,GAAIE,EACJ,MAAOD,CACT,CAAC,EAED,OAAAI,EAAM,WAAWC,EAAYL,CAAU,CAAC,aAAaD,EAAc,OAAO,OAAOE,CAAO,QAAQC,CAAE,GAAG,EAE9FA,CACT,CAAC,CACL,CAAC,CACH","names":["z","initTRPC","formatEther","isHex","sendTransaction","createDebug","debug","error","createAppRouter","t","initTRPC","z","isHex","opts","client","faucetAccount","dripAmount","address","tx","sendTransaction","debug","formatEther"]}
1
+ {"version":3,"sources":["../src/createAppRouter.ts","../src/debug.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { initTRPC } from \"@trpc/server\";\nimport { Client, Hex, LocalAccount, formatEther, isHex } from \"viem\";\nimport { sendTransaction } from \"@latticexyz/common\";\nimport { debug } from \"./debug\";\n\nexport type AppContext = {\n client: Client;\n faucetAccount: LocalAccount<string>;\n dripAmount: bigint;\n};\n\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nexport function createAppRouter() {\n const t = initTRPC.context<AppContext>().create();\n\n return t.router({\n drip: t.procedure\n .input(\n z.object({\n address: z.string().refine(isHex),\n }),\n )\n .mutation(async (opts): Promise<Hex> => {\n const { client, faucetAccount, dripAmount } = opts.ctx;\n\n const { address } = opts.input;\n const tx = await sendTransaction(client, {\n chain: null,\n account: faucetAccount,\n to: address,\n value: dripAmount,\n });\n\n debug(`Dripped ${formatEther(dripAmount)} ETH from ${faucetAccount.address} to ${address} (tx ${tx})`);\n\n return tx;\n }),\n });\n}\n\nexport type AppRouter = ReturnType<typeof createAppRouter>;\n","import createDebug from \"debug\";\n\nexport const debug = createDebug(\"mud:faucet\");\nexport const error = createDebug(\"mud:faucet\");\n\n// Pipe debug output to stdout instead of stderr\ndebug.log = console.debug.bind(console);\n\n// Pipe error output to stderr\nerror.log = console.error.bind(console);\n"],"mappings":";AAAA,SAAS,SAAS;AAClB,SAAS,gBAAgB;AACzB,SAAoC,aAAa,aAAa;AAC9D,SAAS,uBAAuB;;;ACHhC,OAAO,iBAAiB;AAEjB,IAAM,QAAQ,YAAY,YAAY;AACtC,IAAM,QAAQ,YAAY,YAAY;AAG7C,MAAM,MAAM,QAAQ,MAAM,KAAK,OAAO;AAGtC,MAAM,MAAM,QAAQ,MAAM,KAAK,OAAO;;;ADI/B,SAAS,kBAAkB;AAChC,QAAM,IAAI,SAAS,QAAoB,EAAE,OAAO;AAEhD,SAAO,EAAE,OAAO;AAAA,IACd,MAAM,EAAE,UACL;AAAA,MACC,EAAE,OAAO;AAAA,QACP,SAAS,EAAE,OAAO,EAAE,OAAO,KAAK;AAAA,MAClC,CAAC;AAAA,IACH,EACC,SAAS,OAAO,SAAuB;AACtC,YAAM,EAAE,QAAQ,eAAe,WAAW,IAAI,KAAK;AAEnD,YAAM,EAAE,QAAQ,IAAI,KAAK;AACzB,YAAM,KAAK,MAAM,gBAAgB,QAAQ;AAAA,QACvC,OAAO;AAAA,QACP,SAAS;AAAA,QACT,IAAI;AAAA,QACJ,OAAO;AAAA,MACT,CAAC;AAED,YAAM,WAAW,YAAY,UAAU,CAAC,aAAa,cAAc,OAAO,OAAO,OAAO,QAAQ,EAAE,GAAG;AAErG,aAAO;AAAA,IACT,CAAC;AAAA,EACL,CAAC;AACH;","names":[]}
package/dist/index.js CHANGED
@@ -1,2 +1,16 @@
1
- import{a as o}from"./chunk-LVBDKFIB.js";import{createTRPCProxyClient as e,httpBatchLink as r}from"@trpc/client";function n({url:t}){return e({links:[r({url:t})]})}export{o as createAppRouter,n as createClient};
1
+ import {
2
+ createAppRouter
3
+ } from "./chunk-N527JXGJ.js";
4
+
5
+ // src/createClient.ts
6
+ import { createTRPCProxyClient, httpBatchLink } from "@trpc/client";
7
+ function createClient({ url }) {
8
+ return createTRPCProxyClient({
9
+ links: [httpBatchLink({ url })]
10
+ });
11
+ }
12
+ export {
13
+ createAppRouter,
14
+ createClient
15
+ };
2
16
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/createClient.ts"],"sourcesContent":["import { createTRPCProxyClient, httpBatchLink, CreateTRPCProxyClient } from \"@trpc/client\";\nimport type { AppRouter } from \"./createAppRouter\";\n\ntype CreateClientOptions = {\n /**\n * tRPC endpoint URL like `https://faucet.dev.linfra.xyz/trpc`.\n */\n url: string;\n};\n\n/**\n * Creates a tRPC client to talk to a MUD faucet.\n *\n * @param {CreateClientOptions} options See `CreateClientOptions`.\n * @returns {CreateTRPCProxyClient<AppRouter>} A typed tRPC client.\n */\nexport function createClient({ url }: CreateClientOptions): CreateTRPCProxyClient<AppRouter> {\n return createTRPCProxyClient<AppRouter>({\n links: [httpBatchLink({ url })],\n });\n}\n"],"mappings":"wCAAA,OAAS,yBAAAA,EAAuB,iBAAAC,MAA4C,eAgBrE,SAASC,EAAa,CAAE,IAAAC,CAAI,EAA0D,CAC3F,OAAOH,EAAiC,CACtC,MAAO,CAACC,EAAc,CAAE,IAAAE,CAAI,CAAC,CAAC,CAChC,CAAC,CACH","names":["createTRPCProxyClient","httpBatchLink","createClient","url"]}
1
+ {"version":3,"sources":["../src/createClient.ts"],"sourcesContent":["import { createTRPCProxyClient, httpBatchLink, CreateTRPCProxyClient } from \"@trpc/client\";\nimport type { AppRouter } from \"./createAppRouter\";\n\ntype CreateClientOptions = {\n /**\n * tRPC endpoint URL like `https://faucet.dev.linfra.xyz/trpc`.\n */\n url: string;\n};\n\n/**\n * Creates a tRPC client to talk to a MUD faucet.\n *\n * @param {CreateClientOptions} options See `CreateClientOptions`.\n * @returns {CreateTRPCProxyClient<AppRouter>} A typed tRPC client.\n */\nexport function createClient({ url }: CreateClientOptions): CreateTRPCProxyClient<AppRouter> {\n return createTRPCProxyClient<AppRouter>({\n links: [httpBatchLink({ url })],\n });\n}\n"],"mappings":";;;;;AAAA,SAAS,uBAAuB,qBAA4C;AAgBrE,SAAS,aAAa,EAAE,IAAI,GAA0D;AAC3F,SAAO,sBAAiC;AAAA,IACtC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;AAAA,EAChC,CAAC;AACH;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@latticexyz/faucet",
3
- "version": "2.2.18-ebe1aea8d4afb690ce1c7c2bcb42dc0f1faf6e77",
3
+ "version": "2.2.18",
4
4
  "description": "Faucet API for Lattice testnet",
5
5
  "repository": {
6
6
  "type": "git",
@@ -35,12 +35,11 @@
35
35
  "dotenv": "^16.0.3",
36
36
  "fastify": "^4.21.0",
37
37
  "zod": "3.23.8",
38
- "@latticexyz/common": "2.2.18-ebe1aea8d4afb690ce1c7c2bcb42dc0f1faf6e77"
38
+ "@latticexyz/common": "2.2.18"
39
39
  },
40
40
  "devDependencies": {
41
41
  "@types/debug": "^4.1.7",
42
- "viem": "2.21.19",
43
- "vitest": "0.34.6"
42
+ "viem": "2.21.19"
44
43
  },
45
44
  "peerDependencies": {
46
45
  "viem": "2.x"
@@ -1,2 +0,0 @@
1
- import{z as u}from"zod";import{initTRPC as m}from"@trpc/server";import{formatEther as d,isHex as f}from"viem";import{sendTransaction as l}from"@latticexyz/common";import p from"debug";var t=p("mud:faucet"),s=p("mud:faucet");t.log=console.debug.bind(console);s.log=console.error.bind(console);function h(){let e=m.context().create();return e.router({drip:e.procedure.input(u.object({address:u.string().refine(f)})).mutation(async o=>{let{client:a,faucetAccount:r,dripAmount:n}=o.ctx,{address:c}=o.input,i=await l(a,{chain:null,account:r,to:c,value:n});return t(`Dripped ${d(n)} ETH from ${r.address} to ${c} (tx ${i})`),i})})}export{h as a};
2
- //# sourceMappingURL=chunk-LVBDKFIB.js.map