@latticexyz/faucet 2.2.18-318924725246340b208d3fbee8793314686f1759 → 2.2.18-4565714f5e9421cc7b2de56fe51db4434c55f5d1
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.
- package/dist/bin/faucet-server.js +4 -64
- package/dist/bin/faucet-server.js.map +1 -1
- package/dist/chunk-LVBDKFIB.js +2 -0
- package/dist/{chunk-N527JXGJ.js.map → chunk-LVBDKFIB.js.map} +1 -1
- package/dist/index.js +1 -15
- package/dist/index.js.map +1 -1
- package/package.json +4 -3
- package/dist/chunk-N527JXGJ.js +0 -40
|
@@ -1,68 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
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(`
|
|
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(`
|
|
31
3
|
Missing or invalid environment variables:
|
|
32
4
|
|
|
33
|
-
${Object.keys(
|
|
34
|
-
`)
|
|
35
|
-
|
|
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}`);
|
|
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}`);
|
|
68
8
|
//# 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":"
|
|
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"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
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
|
|
@@ -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":"
|
|
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"]}
|
package/dist/index.js
CHANGED
|
@@ -1,16 +1,2 @@
|
|
|
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
|
-
};
|
|
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};
|
|
16
2
|
//# 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":"
|
|
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"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@latticexyz/faucet",
|
|
3
|
-
"version": "2.2.18-
|
|
3
|
+
"version": "2.2.18-4565714f5e9421cc7b2de56fe51db4434c55f5d1",
|
|
4
4
|
"description": "Faucet API for Lattice testnet",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -35,11 +35,12 @@
|
|
|
35
35
|
"dotenv": "^16.0.3",
|
|
36
36
|
"fastify": "^4.21.0",
|
|
37
37
|
"zod": "3.23.8",
|
|
38
|
-
"@latticexyz/common": "2.2.18-
|
|
38
|
+
"@latticexyz/common": "2.2.18-4565714f5e9421cc7b2de56fe51db4434c55f5d1"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"@types/debug": "^4.1.7",
|
|
42
|
-
"viem": "2.21.19"
|
|
42
|
+
"viem": "2.21.19",
|
|
43
|
+
"vitest": "0.34.6"
|
|
43
44
|
},
|
|
44
45
|
"peerDependencies": {
|
|
45
46
|
"viem": "2.x"
|
package/dist/chunk-N527JXGJ.js
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
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
|