@pimlico/mock-paymaster 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.
package/_esm/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,eAAe,CAAA;AAChC,OAAO,OAAO,MAAM,SAAS,CAAA;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAA;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAE3D,MAAM,CAAC,MAAM,SAAS,GAAG,cAAc,CACnC,CAAC,EACG,QAAQ,EACR,IAAI,EAAE,KAAK,EACX,OAAO,EAC2C,EAAE,EAAE;IACtD,MAAM,GAAG,GAAG,OAAO,CAAC,EAAE,CAAC,CAAA;IAEvB,OAAO;QACH,SAAS,EAAE,EAAE;QACb,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,gBAAgB;QACtB,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,GAAG,KAAK,EAAE,EAAE,EAAE;YAC9B,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAA;YACtC,MAAM,YAAY,GAAG,MAAM,oBAAoB,CAAC;gBAC5C,QAAQ;gBACR,YAAY,EAAE,CAAC;aAClB,CAAC,CAAA;YACF,MAAM,YAAY,GAAG,kBAAkB,CAAC;gBACpC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC;gBACzB,KAAK;aACR,CAAC,CAAA;YACF,MAAM,OAAO,GAAG,mBAAmB,CAAC;gBAChC,KAAK;gBACL,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC;aAC3B,CAAC,CAAA;YAEF,MAAM,gBAAgB,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC,CAAA;YACtD,MAAM,gBAAgB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAA;YAElD,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE;gBACf,MAAM,EAAE,GAAG;gBACX,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC;aACtC,CAAC,CAAA;YAEF,MAAM,UAAU,GAAG,gBAAgB,CAAC;gBAChC,OAAO;gBACP,YAAY;gBACZ,eAAe,EAAE,YAAY;aAChC,CAAC,CAAA;YACF,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,UAAU,CAAC,CAAA;YAE7B,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE;gBACvC,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;YACpD,CAAC,CAAC,CAAA;YAEF,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAA;QACjD,CAAC;QACD,IAAI,EAAE,KAAK,IAAI,EAAE;YACb,GAAG,CAAC,KAAK,EAAE,CAAA;QACf,CAAC;KACJ,CAAA;AACL,CAAC,CACJ,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,eAAe,CAAA;AAChC,OAAO,OAAO,MAAM,SAAS,CAAA;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAA;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,EACH,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACjB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAE3D,MAAM,CAAC,MAAM,SAAS,GAAG,cAAc,CACnC,CAAC,EACG,QAAQ,EACR,OAAO,EACP,IAAI,EAAE,KAAK,EACX,IAAI,EAAE,KAAK,GAAG,WAAW,EACwC,EAAE,EAAE;IACrE,MAAM,GAAG,GAAG,OAAO,CAAC,EAAE,CAAC,CAAA;IAEvB,OAAO;QACH,SAAS,EAAE,EAAE;QACb,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,gBAAgB;QACtB,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,GAAG,KAAK,EAAE,EAAE,EAAE;YAC9B,MAAM,eAAe,GAAG,kBAAkB,CAAC;gBACvC,KAAK,EAAE,MAAM,QAAQ,CAAC,QAAQ,CAAC;gBAC/B,OAAO,EAAE,mBAAmB,CACxB,oEAAoE,CACvE;gBACD,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC;aAC5B,CAAC,CAAA;YAEF,MAAM,gBAAgB,CAAC;gBACnB,QAAQ;gBACR,eAAe,EAAE,eAAe,CAAC,OAAO,CAAC,OAAO;aACnD,CAAC,CAAA;YACF,MAAM,gBAAgB,CAAC,QAAQ,CAAC,CAAA;YAEhC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE;gBACf,MAAM,EAAE,GAAG;gBACX,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC;aACtC,CAAC,CAAA;YAEF,MAAM,UAAU,GAAG,gBAAgB,CAAC;gBAChC,OAAO;gBACP,QAAQ;gBACR,eAAe;aAClB,CAAC,CAAA;YACF,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,UAAU,CAAC,CAAA;YAE7B,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE;gBACvC,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;YACpD,CAAC,CAAC,CAAA;YAEF,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QAC3C,CAAC;QACD,IAAI,EAAE,KAAK,IAAI,EAAE;YACb,GAAG,CAAC,KAAK,EAAE,CAAA;QACf,CAAC;KACJ,CAAA;AACL,CAAC,CACJ,CAAA;AAED,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,CAAA"}
package/_esm/relay.js CHANGED
@@ -1,11 +1,11 @@
1
1
  import * as util from "node:util";
2
- import { BaseError, getAddress, toHex } from "viem";
3
- import { entryPoint06Address, entryPoint07Address, entryPoint08Address } from "viem/account-abstraction";
2
+ import { http, BaseError, getAddress, toHex } from "viem";
3
+ import { createBundlerClient, entryPoint06Address, entryPoint07Address, entryPoint08Address } from "viem/account-abstraction";
4
4
  import { fromZodError } from "zod-validation-error";
5
5
  import { getSingletonPaymaster06Address, getSingletonPaymaster07Address, getSingletonPaymaster08Address, sponsorshipIcon } from "./constants.js";
6
6
  import { erc20Address } from "./helpers/erc20-utils.js";
7
7
  import { InternalBundlerError, RpcError, ValidationErrors, jsonRpcSchema, pimlicoGetTokenQuotesSchema, pmGetPaymasterData, pmGetPaymasterStubDataParamsSchema, pmSponsorUserOperationParamsSchema } from "./helpers/schema.js";
8
- import { isTokenSupported, maxBigInt } from "./helpers/utils.js";
8
+ import { getChain, getPublicClient, isTokenSupported, maxBigInt } from "./helpers/utils.js";
9
9
  import { getDummyPaymasterData, getSignedPaymasterData } from "./singletonPaymasters.js";
10
10
  const handlePmSponsor = async ({ entryPoint, userOperation, paymasterMode, bundler, paymaster, publicClient, paymasterSigner, estimateGas }) => {
11
11
  const is06 = entryPoint === entryPoint06Address;
@@ -66,7 +66,7 @@ const validateEntryPoint = (entryPoint) => {
66
66
  throw new RpcError("EntryPoint not supported", ValidationErrors.InvalidFields);
67
67
  }
68
68
  };
69
- const handleMethod = async ({ parsedBody, paymasterSigner, publicClient, bundler }) => {
69
+ const handleMethod = async ({ parsedBody, paymasterSigner, publicClient, bundlerClient }) => {
70
70
  const [paymaster06, paymaster07, paymaster08] = [
71
71
  getSingletonPaymaster06Address(paymasterSigner.account.address),
72
72
  getSingletonPaymaster07Address(paymasterSigner.account.address),
@@ -88,7 +88,7 @@ const handleMethod = async ({ parsedBody, paymasterSigner, publicClient, bundler
88
88
  entryPoint,
89
89
  userOperation,
90
90
  paymasterMode: { mode: "verifying" },
91
- bundler,
91
+ bundler: bundlerClient,
92
92
  paymaster: epToPaymaster[entryPoint],
93
93
  publicClient,
94
94
  paymasterSigner,
@@ -154,7 +154,7 @@ const handleMethod = async ({ parsedBody, paymasterSigner, publicClient, bundler
154
154
  ];
155
155
  }
156
156
  if (parsedBody.method === "pimlico_getUserOperationGasPrice") {
157
- return await bundler.request({
157
+ return await bundlerClient.request({
158
158
  // @ts-ignore
159
159
  method: "pimlico_getUserOperationGasPrice",
160
160
  // @ts-ignore
@@ -196,8 +196,13 @@ const handleMethod = async ({ parsedBody, paymasterSigner, publicClient, bundler
196
196
  }
197
197
  throw new RpcError(`Attempted to call an unknown method ${parsedBody.method}`, ValidationErrors.InvalidFields);
198
198
  };
199
- export const createRpcHandler = ({ bundler, publicClient, paymasterSigner }) => {
199
+ export const createRpcHandler = ({ altoRpc, anvilRpc, paymasterSigner }) => {
200
200
  return async (request, _reply) => {
201
+ const publicClient = await getPublicClient(anvilRpc);
202
+ const bundlerClient = createBundlerClient({
203
+ chain: await getChain(anvilRpc),
204
+ transport: http(altoRpc)
205
+ });
201
206
  const body = request.body;
202
207
  const parsedBody = jsonRpcSchema.safeParse(body);
203
208
  if (!parsedBody.success) {
@@ -205,7 +210,7 @@ export const createRpcHandler = ({ bundler, publicClient, paymasterSigner }) =>
205
210
  }
206
211
  try {
207
212
  const result = await handleMethod({
208
- bundler,
213
+ bundlerClient,
209
214
  paymasterSigner,
210
215
  parsedBody: parsedBody.data,
211
216
  publicClient
package/_esm/relay.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"relay.js","sourceRoot":"","sources":["../relay.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relay.js","sourceRoot":"","sources":["../relay.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,8 @@ import { concat, encodePacked, getContract, parseEther, toBytes } from "viem";
2
2
  import { toPackedUserOperation } from "viem/account-abstraction";
3
3
  import { constants, getSingletonPaymaster06Address, getSingletonPaymaster06InitCode, getSingletonPaymaster07Address, getSingletonPaymaster07InitCode, getSingletonPaymaster08Address, getSingletonPaymaster08InitCode } from "./constants.js";
4
4
  import { singletonPaymaster06Abi, singletonPaymaster07Abi, singletonPaymaster08Abi } from "./helpers/abi.js";
5
+ import { getPaymasterUtilityWallet } from "./helpers/erc20-utils.js";
6
+ import { getPublicClient } from "./helpers/utils.js";
5
7
  export const getDummyPaymasterData = ({ is06, paymaster, paymasterMode }) => {
6
8
  let encodedDummyData;
7
9
  const validUntil = 0;
@@ -154,8 +156,9 @@ export const getSignedPaymasterData = async ({ publicClient, signer, userOp, pay
154
156
  paymasterData
155
157
  };
156
158
  };
157
- export const deployPaymasters = async ({ walletClient, publicClient }) => {
158
- const owner = walletClient.account.address;
159
+ export const deployPaymasters = async ({ anvilRpc, paymasterSigner }) => {
160
+ const walletClient = await getPaymasterUtilityWallet(anvilRpc);
161
+ const publicClient = await getPublicClient(anvilRpc);
159
162
  let nonce = await publicClient.getTransactionCount({
160
163
  address: walletClient.account.address
161
164
  });
@@ -164,7 +167,7 @@ export const deployPaymasters = async ({ walletClient, publicClient }) => {
164
167
  to: constants.deterministicDeployer,
165
168
  data: concat([
166
169
  constants.create2Salt,
167
- getSingletonPaymaster06InitCode(walletClient.account.address)
170
+ getSingletonPaymaster06InitCode(paymasterSigner)
168
171
  ]),
169
172
  nonce: nonce++
170
173
  });
@@ -173,7 +176,7 @@ export const deployPaymasters = async ({ walletClient, publicClient }) => {
173
176
  to: constants.deterministicDeployer,
174
177
  data: concat([
175
178
  constants.create2Salt,
176
- getSingletonPaymaster07InitCode(walletClient.account.address)
179
+ getSingletonPaymaster07InitCode(paymasterSigner)
177
180
  ]),
178
181
  nonce: nonce++
179
182
  });
@@ -182,24 +185,24 @@ export const deployPaymasters = async ({ walletClient, publicClient }) => {
182
185
  to: constants.deterministicDeployer,
183
186
  data: concat([
184
187
  constants.create2Salt,
185
- getSingletonPaymaster08InitCode(walletClient.account.address)
188
+ getSingletonPaymaster08InitCode(paymasterSigner)
186
189
  ]),
187
190
  nonce: nonce++
188
191
  });
189
192
  // Initialize contract instances.
190
193
  const [singletonPaymaster06, singletonPaymaster07, singletonPaymaster08] = [
191
194
  getContract({
192
- address: getSingletonPaymaster06Address(owner),
195
+ address: getSingletonPaymaster06Address(paymasterSigner),
193
196
  abi: singletonPaymaster06Abi,
194
197
  client: walletClient
195
198
  }),
196
199
  getContract({
197
- address: getSingletonPaymaster07Address(owner),
200
+ address: getSingletonPaymaster07Address(paymasterSigner),
198
201
  abi: singletonPaymaster07Abi,
199
202
  client: walletClient
200
203
  }),
201
204
  getContract({
202
- address: getSingletonPaymaster08Address(owner),
205
+ address: getSingletonPaymaster08Address(paymasterSigner),
203
206
  abi: singletonPaymaster08Abi,
204
207
  client: walletClient
205
208
  })
@@ -1 +1 @@
1
- {"version":3,"file":"singletonPaymasters.js","sourceRoot":"","sources":["../singletonPaymasters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"singletonPaymasters.js","sourceRoot":"","sources":["../singletonPaymasters.ts"],"names":[],"mappings":"AAAA,OAAO,EAQH,MAAM,EACN,YAAY,EACZ,WAAW,EACX,UAAU,EACV,OAAO,EACV,MAAM,MAAM,CAAA;AACb,OAAO,EAEH,qBAAqB,EACxB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EACH,SAAS,EACT,8BAA8B,EAC9B,+BAA+B,EAC/B,8BAA8B,EAC9B,+BAA+B,EAC/B,8BAA8B,EAC9B,+BAA+B,EAClC,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACH,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EAC1B,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAA;AACpE,OAAO,EAAsB,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAExE,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,EAClC,IAAI,EACJ,SAAS,EACT,aAAa,EACqD,EAEtC,EAAE;IAC9B,IAAI,gBAAqB,CAAA;IAEzB,MAAM,UAAU,GAAG,CAAC,CAAA;IACpB,MAAM,UAAU,GAAG,CAAC,CAAA;IACpB,MAAM,2BAA2B,GAAG,EAAE,CAAA;IACtC,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAEvD,MAAM,gBAAgB,GAAG,IAAI,CAAA;IAC7B,MAAM,oBAAoB,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAErE,IAAI,aAAa,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QACrC,gBAAgB,GAAG,YAAY,CAC3B;YACI,OAAO,EAAE,2BAA2B;YACpC,QAAQ,EAAE,aAAa;YACvB,QAAQ,EAAE,aAAa;YACvB,OAAO,CAAC,YAAY;SACvB,EACD;YACI,oBAAoB;YACpB,UAAU;YACV,UAAU;YACV,SAAS,CAAC,cAAc;SAC3B,CACJ,CAAA;IACL,CAAC;SAAM,CAAC;QACJ,gBAAgB,GAAG,YAAY,CAC3B;YACI,OAAO,EAAE,4CAA4C;YACrD,OAAO,EAAE,+IAA+I;YACxJ,QAAQ,EAAE,aAAa;YACvB,QAAQ,EAAE,aAAa;YACvB,SAAS,EAAE,gBAAgB;YAC3B,SAAS,EAAE,YAAY;YACvB,SAAS,EAAE,eAAe;YAC1B,SAAS,EAAE,8BAA8B;YACzC,SAAS,CAAC,WAAW;SACxB,EACD;YACI,oBAAoB;YACpB,CAAC;YACD,UAAU;YACV,UAAU;YACV,aAAa,CAAC,KAAK;YACnB,SAAS,CAAC,iBAAiB;YAC3B,SAAS,CAAC,YAAY;YACtB,2BAA2B;YAC3B,SAAS,CAAC,QAAQ;SACrB,CACJ,CAAA;QAED,gBAAgB,GAAG,YAAY,CAC3B,CAAC,OAAO,EAAE,OAAO,CAAC,EAClB,CAAC,gBAAgB,EAAE,SAAS,CAAC,cAAc,CAAC,CAC/C,CAAA;IACL,CAAC;IAED,IAAI,IAAI,EAAE,CAAC;QACP,OAAO;YACH,gBAAgB,EAAE,MAAM,CAAC,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;SAC1D,CAAA;IACL,CAAC;IAED,OAAO;QACH,SAAS;QACT,aAAa,EAAE,gBAAgB;KAClC,CAAA;AACL,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EAAE,EACzC,YAAY,EACZ,MAAM,EACN,MAAM,EACN,SAAS,EACT,aAAa,EAOhB,EAAE,EAAE;IACD,IAAI,aAAkB,CAAA;IAEtB,MAAM,UAAU,GAAG,CAAC,CAAA;IACpB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC,eAAe,CAAA;IAE5E,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACvD,MAAM,gBAAgB,GAAG,IAAI,CAAA;IAC7B,MAAM,oBAAoB,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAErE,IAAI,aAAa,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QACrC,aAAa,GAAG,YAAY,CACxB;YACI,OAAO,EAAE,2BAA2B;YACpC,QAAQ,EAAE,aAAa;YACvB,QAAQ,CAAC,aAAa;SACzB,EACD,CAAC,oBAAoB,EAAE,UAAU,EAAE,UAAU,CAAC,CACjD,CAAA;IACL,CAAC;SAAM,CAAC;QACJ,MAAM,2BAA2B,GAAG,EAAE,CAAA;QAEtC,MAAM,kBAAkB,GAAG,KAAK,CAAA;QAChC,MAAM,gBAAgB,GAAG,KAAK,CAAA;QAC9B,MAAM,cAAc,GAAG,KAAK,CAAA;QAE5B,MAAM,iCAAiC,GACnC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACjC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAEhC,aAAa,GAAG,YAAY,CACxB;YACI,OAAO,EAAE,4CAA4C;YACrD,OAAO,EAAE,+IAA+I;YACxJ,QAAQ,EAAE,aAAa;YACvB,QAAQ,EAAE,aAAa;YACvB,SAAS,EAAE,gBAAgB;YAC3B,SAAS,EAAE,YAAY;YACvB,SAAS,EAAE,eAAe;YAC1B,SAAS,EAAE,8BAA8B;YACzC,SAAS,CAAC,WAAW;SACxB,EACD;YACI,oBAAoB;YACpB,iCAAiC;YACjC,UAAU;YACV,UAAU;YACV,aAAa,CAAC,KAAK;YACnB,SAAS,CAAC,iBAAiB;YAC3B,SAAS,CAAC,YAAY;YACtB,2BAA2B;YAC3B,SAAS,CAAC,QAAQ;SACrB,CACJ,CAAA;IACL,CAAC;IAED,IAAI,UAAU,IAAI,MAAM,IAAI,kBAAkB,IAAI,MAAM,EAAE,CAAC;QACvD,MAAM,kBAAkB,GAAG,WAAW,CAAC;YACnC,OAAO,EAAE,SAAS;YAClB,GAAG,EAAE,uBAAuB;YAC5B,MAAM,EAAE,YAAY;SACvB,CAAC,CAAA;QAEF,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC;YAC/C,IAAI;YACJ;gBACI,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,IAAI;gBACjC,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;gBACjD,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;gBAC7C,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;gBACjD,gBAAgB,EAAE,MAAM,CAAC,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;gBACpD,SAAS,EAAE,MAAM,CAAC,SAAS;aAC9B;SACJ,CAAC,CAAA;QAEF,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC;YACjC,OAAO,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE;SAClC,CAAC,CAAA;QAEF,OAAO;YACH,gBAAgB,EAAE,MAAM,CAAC,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;SAC5D,CAAA;IACL,CAAC;IAED,uBAAuB;IACvB,MAAM,kBAAkB,GAAG,WAAW,CAAC;QACnC,OAAO,EAAE,SAAS;QAClB,GAAG,EAAE,uBAAuB;QAC5B,MAAM,EAAE,YAAY;KACvB,CAAC,CAAA;IAEF,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC;QAC/C,IAAI;QACJ,yEAAyE;QACzE,qBAAqB,CAAC;YAClB,GAAG,MAAM;YACT,SAAS;YACT,aAAa;SACC,CAAC;KACtB,CAAC,CAAA;IAEF,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC;QACjC,OAAO,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE;KAClC,CAAC,CAAA;IAEF,aAAa,GAAG,YAAY,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,CAAA;IAEtE,OAAO;QACH,SAAS;QACT,aAAa;KAChB,CAAA;AACL,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EAAE,EACnC,QAAQ,EACR,eAAe,EAIlB,EAAE,EAAE;IACD,MAAM,YAAY,GAAG,MAAM,yBAAyB,CAAC,QAAQ,CAAC,CAAA;IAC9D,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAA;IAEpD,IAAI,KAAK,GAAG,MAAM,YAAY,CAAC,mBAAmB,CAAC;QAC/C,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,OAAO;KACxC,CAAC,CAAA;IAEF,iCAAiC;IACjC,MAAM,YAAY,CAAC,eAAe,CAAC;QAC/B,EAAE,EAAE,SAAS,CAAC,qBAAqB;QACnC,IAAI,EAAE,MAAM,CAAC;YACT,SAAS,CAAC,WAAW;YACrB,+BAA+B,CAAC,eAAe,CAAC;SACnD,CAAC;QACF,KAAK,EAAE,KAAK,EAAE;KACjB,CAAC,CAAA;IAEF,iCAAiC;IACjC,MAAM,YAAY,CAAC,eAAe,CAAC;QAC/B,EAAE,EAAE,SAAS,CAAC,qBAAqB;QACnC,IAAI,EAAE,MAAM,CAAC;YACT,SAAS,CAAC,WAAW;YACrB,+BAA+B,CAAC,eAAe,CAAC;SACnD,CAAC;QACF,KAAK,EAAE,KAAK,EAAE;KACjB,CAAC,CAAA;IAEF,iCAAiC;IACjC,MAAM,YAAY,CAAC,eAAe,CAAC;QAC/B,EAAE,EAAE,SAAS,CAAC,qBAAqB;QACnC,IAAI,EAAE,MAAM,CAAC;YACT,SAAS,CAAC,WAAW;YACrB,+BAA+B,CAAC,eAAe,CAAC;SACnD,CAAC;QACF,KAAK,EAAE,KAAK,EAAE;KACjB,CAAC,CAAA;IAEF,iCAAiC;IACjC,MAAM,CAAC,oBAAoB,EAAE,oBAAoB,EAAE,oBAAoB,CAAC,GAAG;QACvE,WAAW,CAAC;YACR,OAAO,EAAE,8BAA8B,CAAC,eAAe,CAAC;YACxD,GAAG,EAAE,uBAAuB;YAC5B,MAAM,EAAE,YAAY;SACvB,CAAC;QACF,WAAW,CAAC;YACR,OAAO,EAAE,8BAA8B,CAAC,eAAe,CAAC;YACxD,GAAG,EAAE,uBAAuB;YAC5B,MAAM,EAAE,YAAY;SACvB,CAAC;QACF,WAAW,CAAC;YACR,OAAO,EAAE,8BAA8B,CAAC,eAAe,CAAC;YACxD,GAAG,EAAE,uBAAuB;YAC5B,MAAM,EAAE,YAAY;SACvB,CAAC;KACL,CAAA;IAED,uBAAuB;IACvB,MAAM,oBAAoB,CAAC,KAAK,CAAC,OAAO,CAAC;QACrC,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC;QACvB,KAAK,EAAE,KAAK,EAAE;KACjB,CAAC,CAAA;IAEF,MAAM,oBAAoB,CAAC,KAAK,CAAC,OAAO,CAAC;QACrC,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC;QACvB,KAAK,EAAE,KAAK,EAAE;KACjB,CAAC,CAAA;IAEF,MAAM,oBAAoB,CAAC,KAAK,CAAC,OAAO,CAAC;QACrC,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC;QACvB,KAAK,EAAE,KAAK,EAAE;KACjB,CAAC,CAAA;AACN,CAAC,CAAA"}
@@ -1,5 +1,6 @@
1
- import { type Account, type Address, type Chain, type PublicClient, type Transport, type WalletClient } from "viem";
2
- export declare const deployErc20Token: (walletClient: WalletClient<Transport, Chain, Account>, publicClient: PublicClient) => Promise<void>;
1
+ import { type Account, type Address, type Chain, type Transport, type WalletClient } from "viem";
2
+ export declare const getPaymasterUtilityWallet: (anvilRpc: string) => Promise<WalletClient<Transport, Chain, Account>>;
3
+ export declare const deployErc20Token: (anvilRpc: string) => Promise<void>;
3
4
  export declare const tokenBalanceOf: (holder: Address, anvilRpc: string) => Promise<bigint>;
4
5
  export declare const sudoMintTokens: ({ amount, to, anvilRpc }: {
5
6
  amount: bigint;
@@ -1 +1 @@
1
- {"version":3,"file":"erc20-utils.d.ts","sourceRoot":"","sources":["../../helpers/erc20-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,OAAO,EACZ,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,YAAY,EAQpB,MAAM,MAAM,CAAA;AAWb,eAAO,MAAM,gBAAgB,GACzB,cAAc,YAAY,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,EACrD,cAAc,YAAY,kBAQ7B,CAAA;AAED,eAAO,MAAM,cAAc,GAAU,QAAQ,OAAO,EAAE,UAAU,MAAM,oBAarE,CAAA;AAED,eAAO,MAAM,cAAc,GAAU,0BAIlC;IACC,MAAM,EAAE,MAAM,CAAA;IACd,EAAE,EAAE,OAAO,CAAA;IACX,QAAQ,EAAE,MAAM,CAAA;CACnB,kBAcA,CAAA;AAED,eAAO,MAAM,YAAY,eAIvB,CAAA"}
1
+ {"version":3,"file":"erc20-utils.d.ts","sourceRoot":"","sources":["../../helpers/erc20-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,KAAK,OAAO,EACZ,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,SAAS,EACd,KAAK,YAAY,EAWpB,MAAM,MAAM,CAAA;AAYb,eAAO,MAAM,yBAAyB,GAClC,UAAU,MAAM,KACjB,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CA+BjD,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAU,UAAU,MAAM,kBAWtD,CAAA;AAED,eAAO,MAAM,cAAc,GAAU,QAAQ,OAAO,EAAE,UAAU,MAAM,oBAarE,CAAA;AAED,eAAO,MAAM,cAAc,GAAU,0BAIlC;IACC,MAAM,EAAE,MAAM,CAAA;IACd,EAAE,EAAE,OAAO,CAAA;IACX,QAAQ,EAAE,MAAM,CAAA;CACnB,kBAWA,CAAA;AAED,eAAO,MAAM,YAAY,eAIvB,CAAA"}
@@ -1,11 +1,7 @@
1
- import { type Account, type Address, type Chain, type PublicClient, type Transport, type WalletClient } from "viem";
1
+ import { type Address, type Chain, type PublicClient, type Transport } from "viem";
2
2
  export declare const maxBigInt: (a: bigint, b: bigint) => bigint;
3
3
  export declare const getChain: (rpcUrl: string) => Promise<Chain>;
4
4
  export declare const getPublicClient: (anvilRpc: string) => Promise<PublicClient<Transport, Chain>>;
5
- export declare const getAnvilWalletClient: ({ addressIndex, anvilRpc }: {
6
- addressIndex: number;
7
- anvilRpc: string;
8
- }) => Promise<WalletClient<Transport, Chain, Account>>;
9
5
  export declare const isTokenSupported: (token: Address) => Promise<void>;
10
6
  export type PaymasterMode = {
11
7
  mode: "verifying";
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../helpers/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,KAAK,OAAO,EACZ,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,YAAY,EAIpB,MAAM,MAAM,CAAA;AAMb,eAAO,MAAM,SAAS,GAAI,GAAG,MAAM,EAAE,GAAG,MAAM,WAE7C,CAAA;AAED,eAAO,MAAM,QAAQ,GAAU,QAAQ,MAAM,KAAG,OAAO,CAAC,KAAK,CAqB5D,CAAA;AAED,eAAO,MAAM,eAAe,GACxB,UAAU,MAAM,KACjB,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAiBxC,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAU,4BAGxC;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,KAAG,OAAO,CACnD,YAAY,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAc1C,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAU,OAAO,OAAO,kBAOpD,CAAA;AAED,MAAM,MAAM,aAAa,GACnB;IACI,IAAI,EAAE,WAAW,CAAA;CACpB,GACD;IACI,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,OAAO,CAAA;CACjB,CAAA"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../helpers/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,YAAY,EACjB,KAAK,SAAS,EAGjB,MAAM,MAAM,CAAA;AAKb,eAAO,MAAM,SAAS,GAAI,GAAG,MAAM,EAAE,GAAG,MAAM,WAE7C,CAAA;AAED,eAAO,MAAM,QAAQ,GAAU,QAAQ,MAAM,KAAG,OAAO,CAAC,KAAK,CAqB5D,CAAA;AAED,eAAO,MAAM,eAAe,GACxB,UAAU,MAAM,KACjB,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAiBxC,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAU,OAAO,OAAO,kBAOpD,CAAA;AAED,MAAM,MAAM,aAAa,GACnB;IACI,IAAI,EAAE,WAAW,CAAA;CACpB,GACD;IACI,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,OAAO,CAAA;CACjB,CAAA"}
package/_types/index.d.ts CHANGED
@@ -1,6 +1,9 @@
1
+ import { erc20Address, sudoMintTokens } from "./helpers/erc20-utils.js";
1
2
  export declare const paymaster: import("prool").DefineInstanceReturnType<{}, {
2
3
  anvilRpc: string;
3
4
  port: number;
4
5
  altoRpc: string;
6
+ host?: string;
5
7
  }>;
8
+ export { erc20Address, sudoMintTokens };
6
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,SAAS;cAKH,MAAM;UAAQ,MAAM;aAAW,MAAM;EAiDvD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAKA,OAAO,EAEH,YAAY,EACZ,cAAc,EACjB,MAAM,0BAA0B,CAAA;AAKjC,eAAO,MAAM,SAAS;cAMH,MAAM;UAAQ,MAAM;aAAW,MAAM;WAAS,MAAM;EA8CtE,CAAA;AAED,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,CAAA"}
package/_types/relay.d.ts CHANGED
@@ -1,9 +1,8 @@
1
1
  import type { FastifyReply, FastifyRequest } from "fastify";
2
- import { type Account, type Address, type Chain, type PublicClient, type Transport, type WalletClient } from "viem";
3
- import { type BundlerClient } from "viem/account-abstraction";
4
- export declare const createRpcHandler: ({ bundler, publicClient, paymasterSigner }: {
5
- bundler: BundlerClient;
6
- publicClient: PublicClient;
2
+ import { type Account, type Address, type Chain, type Transport, type WalletClient } from "viem";
3
+ export declare const createRpcHandler: ({ altoRpc, anvilRpc, paymasterSigner }: {
4
+ altoRpc: string;
5
+ anvilRpc: string;
7
6
  paymasterSigner: WalletClient<Transport, Chain, Account>;
8
7
  }) => (request: FastifyRequest, _reply: FastifyReply) => Promise<{
9
8
  jsonrpc: string;
@@ -1 +1 @@
1
- {"version":3,"file":"relay.d.ts","sourceRoot":"","sources":["../relay.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAC3D,OAAO,EACH,KAAK,OAAO,EACZ,KAAK,OAAO,EAEZ,KAAK,KAAK,EACV,KAAK,YAAY,EAEjB,KAAK,SAAS,EACd,KAAK,YAAY,EAGpB,MAAM,MAAM,CAAA;AACb,OAAO,EACH,KAAK,aAAa,EAKrB,MAAM,0BAA0B,CAAA;AAiUjC,eAAO,MAAM,gBAAgB,GAAI,4CAI9B;IACC,OAAO,EAAE,aAAa,CAAA;IACtB,YAAY,EAAE,YAAY,CAAA;IAC1B,eAAe,EAAE,YAAY,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;CAC3D,MACiB,SAAS,cAAc,EAAE,QAAQ,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0C9D,CAAA"}
1
+ {"version":3,"file":"relay.d.ts","sourceRoot":"","sources":["../relay.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAC3D,OAAO,EAEH,KAAK,OAAO,EACZ,KAAK,OAAO,EAEZ,KAAK,KAAK,EAGV,KAAK,SAAS,EACd,KAAK,YAAY,EAGpB,MAAM,MAAM,CAAA;AA2Ub,eAAO,MAAM,gBAAgB,GAAI,wCAI9B;IACC,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,eAAe,EAAE,YAAY,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;CAC3D,MACiB,SAAS,cAAc,EAAE,QAAQ,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgD9D,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import { type Account, type Address, type Chain, type Hex, type PublicClient, type Transport, type WalletClient } from "viem";
2
2
  import { type UserOperation } from "viem/account-abstraction";
3
- import type { PaymasterMode } from "./helpers/utils.js";
3
+ import { type PaymasterMode } from "./helpers/utils.js";
4
4
  export declare const getDummyPaymasterData: ({ is06, paymaster, paymasterMode }: {
5
5
  is06: boolean;
6
6
  paymaster: Address;
@@ -26,8 +26,8 @@ export declare const getSignedPaymasterData: ({ publicClient, signer, userOp, pa
26
26
  paymasterData: `0x${string}`;
27
27
  paymasterAndData?: undefined;
28
28
  }>;
29
- export declare const deployPaymasters: ({ walletClient, publicClient }: {
30
- walletClient: WalletClient<Transport, Chain, Account>;
31
- publicClient: PublicClient<Transport, Chain>;
29
+ export declare const deployPaymasters: ({ anvilRpc, paymasterSigner }: {
30
+ anvilRpc: string;
31
+ paymasterSigner: Address;
32
32
  }) => Promise<void>;
33
33
  //# sourceMappingURL=singletonPaymasters.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"singletonPaymasters.d.ts","sourceRoot":"","sources":["../singletonPaymasters.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,OAAO,EACZ,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,GAAG,EACR,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,YAAY,EAMpB,MAAM,MAAM,CAAA;AACb,OAAO,EACH,KAAK,aAAa,EAErB,MAAM,0BAA0B,CAAA;AAejC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAEvD,eAAO,MAAM,qBAAqB,GAAI,oCAInC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,aAAa,EAAE,aAAa,CAAA;CAAE,KAChE;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,aAAa,EAAE,GAAG,CAAA;CAAE,GAC1C;IAAE,gBAAgB,EAAE,GAAG,CAAA;CAoE5B,CAAA;AAED,eAAO,MAAM,sBAAsB,GAAU,4DAM1C;IACC,YAAY,EAAE,YAAY,CAAA;IAC1B,MAAM,EAAE,YAAY,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;IAC/C,MAAM,EAAE,aAAa,CAAA;IACrB,SAAS,EAAE,OAAO,CAAA;IAClB,aAAa,EAAE,aAAa,CAAA;CAC/B;;;;;;;;EAqHA,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAU,gCAGpC;IACC,YAAY,EAAE,YAAY,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;IACrD,YAAY,EAAE,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;CAC/C,kBAuEA,CAAA"}
1
+ {"version":3,"file":"singletonPaymasters.d.ts","sourceRoot":"","sources":["../singletonPaymasters.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,OAAO,EACZ,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,GAAG,EACR,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,YAAY,EAMpB,MAAM,MAAM,CAAA;AACb,OAAO,EACH,KAAK,aAAa,EAErB,MAAM,0BAA0B,CAAA;AAgBjC,OAAO,EAAE,KAAK,aAAa,EAAmB,MAAM,oBAAoB,CAAA;AAExE,eAAO,MAAM,qBAAqB,GAAI,oCAInC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,aAAa,EAAE,aAAa,CAAA;CAAE,KAChE;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,aAAa,EAAE,GAAG,CAAA;CAAE,GAC1C;IAAE,gBAAgB,EAAE,GAAG,CAAA;CAoE5B,CAAA;AAED,eAAO,MAAM,sBAAsB,GAAU,4DAM1C;IACC,YAAY,EAAE,YAAY,CAAA;IAC1B,MAAM,EAAE,YAAY,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;IAC/C,MAAM,EAAE,aAAa,CAAA;IACrB,SAAS,EAAE,OAAO,CAAA;IAClB,aAAa,EAAE,aAAa,CAAA;CAC/B;;;;;;;;EAqHA,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAU,+BAGpC;IACC,QAAQ,EAAE,MAAM,CAAA;IAChB,eAAe,EAAE,OAAO,CAAA;CAC3B,kBAwEA,CAAA"}
@@ -1,19 +1,23 @@
1
1
  import {
2
+ http,
2
3
  type Account,
3
4
  type Address,
4
5
  type Chain,
5
- type PublicClient,
6
6
  type Transport,
7
7
  type WalletClient,
8
8
  concat,
9
+ createTestClient,
10
+ createWalletClient,
9
11
  encodeFunctionData,
10
12
  getCreate2Address,
11
13
  hexToBigInt,
12
14
  pad,
13
15
  parseAbi,
16
+ parseEther,
14
17
  toHex
15
18
  } from "viem"
16
- import { getAnvilWalletClient, getPublicClient } from "./utils.js"
19
+ import { privateKeyToAccount } from "viem/accounts"
20
+ import { getChain, getPublicClient } from "./utils.js"
17
21
 
18
22
  const erc20Bytecode = concat([
19
23
  "0x60a060405234801561001057600080fd5b50604051610ff0380380610ff083398101604081905261002f9161022c565b6040518060400160405280600981526020016805465737445524332360bc1b8152506040518060400160405280600381526020016205432360ec1b815250816003908161007c919061034d565b506004610089828261034d565b5050506100a63369d3c21bcecceda10000006100b160201b60201c565b60ff166080526104a3565b6001600160a01b0382166100e457600060405163ec442f0560e01b81526004016100db9190610430565b60405180910390fd5b6100f0600083836100f4565b5050565b6001600160a01b03831661011f5780600260008282546101149190610454565b9091555061017e9050565b6001600160a01b0383166000908152602081905260409020548181101561015f5783818360405163391434e360e21b81526004016100db9392919061046d565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b03821661019a576002805482900390556101b9565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516101fc9190610495565b60405180910390a3505050565b60ff8116811461021857600080fd5b50565b805161022681610209565b92915050565b60006020828403121561024157610241600080fd5b600061024d848461021b565b949350505050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052602260045260246000fd5b60028104600182168061029557607f821691505b6020821081036102a7576102a761026b565b50919050565b60006102266102b98381565b90565b6102c5836102ad565b815460001960089490940293841b1916921b91909117905550565b60006102ed8184846102bc565b505050565b818110156100f0576103056000826102e0565b6001016102f2565b601f8211156102ed576000818152602090206020601f850104810160208510156103345750805b6103466020601f8601048301826102f2565b5050505050565b81516001600160401b0381111561036657610366610255565b6103708254610281565b61037b82828561030d565b6020601f8311600181146103af57600084156103975750858201515b600019600886021c1981166002860217865550610408565b600085815260208120601f198616915b828110156103df57888501518255602094850194600190920191016103bf565b868310156103fb5784890151600019601f89166008021c191682555b6001600288020188555050505b505050505050565b60006001600160a01b038216610226565b61042a81610410565b82525050565b602081016102268284610421565b634e487b7160e01b600052601160045260246000fd5b808201808211156102265761022661043e565b8061042a565b6060810161047b8286610421565b6104886020830185610467565b61024d6040830184610467565b602081016102268284610467565b608051610b326104be60003960006101650152610b326000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c8063313ce56711610081578063a9059cbb1161005b578063a9059cbb146101cf578063dd62ed3e146101e2578063fb4dcefa1461022857600080fd5b8063313ce5671461016357806370a082311461019157806395d89b41146101c757600080fd5b806318160ddd116100b257806318160ddd1461012c57806323b872dd1461013d5780632d688ca81461015057600080fd5b806305ea5c22146100d957806306fdde03146100ee578063095ea7b31461010c575b600080fd5b6100ec6100e7366004610868565b61023b565b005b6100f661024b565b604051610103919061092c565b60405180910390f35b61011f61011a366004610944565b6102dd565b604051610103919061098b565b6002545b604051610103919061099f565b61011f61014b366004610868565b6102f7565b6100ec61015e366004610944565b61031b565b7f000000000000000000000000000000000000000000000000000000000000000060405161010391906109b6565b61013061019f3660046109c4565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6100f6610329565b61011f6101dd366004610944565b610338565b6101306101f03660046109ed565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b6100ec6102363660046109ed565b610346565b61024683838361037c565b505050565b60606003805461025a90610a4f565b80601f016020809104026020016040519081016040528092919081815260200182805461028690610a4f565b80156102d35780601f106102a8576101008083540402835291602001916102d3565b820191906000526020600020905b8154815290600101906020018083116102b657829003601f168201915b5050505050905090565b6000336102eb81858561037c565b60019150505b92915050565b600033610305858285610389565b610310858585610441565b506001949350505050565b61032582826104ec565b5050565b60606004805461025a90610a4f565b6000336102eb818585610441565b61032582826103778573ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b610441565b6102468383836001610548565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461043b578181101561042c578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161042393929190610a84565b60405180910390fd5b61043b84848484036000610548565b50505050565b73ffffffffffffffffffffffffffffffffffffffff83166104915760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016104239190610aac565b73ffffffffffffffffffffffffffffffffffffffff82166104e15760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016104239190610aac565b61024683838361068e565b73ffffffffffffffffffffffffffffffffffffffff821661053c5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016104239190610aac565b6103256000838361068e565b73ffffffffffffffffffffffffffffffffffffffff84166105985760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016104239190610aac565b73ffffffffffffffffffffffffffffffffffffffff83166105e85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016104239190610aac565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160209081526040808320938716835292905220829055801561043b578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610680919061099f565b60405180910390a350505050565b73ffffffffffffffffffffffffffffffffffffffff83166106c65780600260008282546106bb9190610ae9565b909155506107589050565b73ffffffffffffffffffffffffffffffffffffffff83166000908152602081905260409020548181101561072c578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161042393929190610a84565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020819052604090209082900390555b73ffffffffffffffffffffffffffffffffffffffff8216610781576002805482900390556107ad565b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090208054820190555b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161080a919061099f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff82166102f1565b61083e81610817565b811461084957600080fd5b50565b80356102f181610835565b8061083e565b80356102f181610857565b60008060006060848603121561088057610880600080fd5b600061088c868661084c565b935050602061089d8682870161084c565b92505060406108ae8682870161085d565b9150509250925092565b60005b838110156108d35781810151838201526020016108bb565b50506000910152565b60006108e6825190565b8084526020840193506108fd8185602086016108b8565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920192915050565b6020808252810161093d81846108dc565b9392505050565b6000806040838503121561095a5761095a600080fd5b6000610966858561084c565b92505060206109778582860161085d565b9150509250929050565b8015155b82525050565b602081016102f18284610981565b80610985565b602081016102f18284610999565b60ff8116610985565b602081016102f182846109ad565b6000602082840312156109d9576109d9600080fd5b60006109e5848461084c565b949350505050565b60008060408385031215610a0357610a03600080fd5b6000610a0f858561084c565b92505060206109778582860161084c565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600281046001821680610a6357607f821691505b602082108103610a7557610a75610a20565b50919050565b61098581610817565b60608101610a928286610a7b565b610a9f6020830185610999565b6109e56040830184610999565b602081016102f18284610a7b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156102f1576102f1610aba56fea2646970667358221220d40f68e247510ec8b7876d327ac47b949de248d0626aaf2670151c5e84ee6b4a64736f6c634300081a0033",
@@ -23,11 +27,47 @@ const erc20Bytecode = concat([
23
27
  const create2Salt =
24
28
  "0x0000000000000000000000000000000000000000000000000000000000000000"
25
29
 
26
- export const deployErc20Token = async (
27
- walletClient: WalletClient<Transport, Chain, Account>,
28
- publicClient: PublicClient
29
- ) => {
30
+ export const getPaymasterUtilityWallet = async (
31
+ anvilRpc: string
32
+ ): Promise<WalletClient<Transport, Chain, Account>> => {
33
+ const account = privateKeyToAccount(
34
+ "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
35
+ )
36
+
37
+ // Check if account has balance
38
+ const publicClient = await getPublicClient(anvilRpc)
39
+ const balance = await publicClient.getBalance({ address: account.address })
40
+
41
+ // If no balance, set it to 1000 ETH
42
+ if (balance === 0n) {
43
+ // Create test client for setting balance
44
+ const testClient = createTestClient({
45
+ mode: "anvil",
46
+ transport: http(anvilRpc)
47
+ })
48
+
49
+ await testClient.setBalance({
50
+ address: account.address,
51
+ value: parseEther("1000")
52
+ })
53
+ }
54
+
55
+ // Create and return wallet client
56
+ const walletClient = createWalletClient({
57
+ chain: await getChain(anvilRpc),
58
+ account,
59
+ transport: http(anvilRpc)
60
+ })
61
+
62
+ return walletClient
63
+ }
64
+
65
+ export const deployErc20Token = async (anvilRpc: string) => {
66
+ const publicClient = await getPublicClient(anvilRpc)
67
+
30
68
  if ((await publicClient.getCode({ address: erc20Address })) === undefined) {
69
+ const walletClient = await getPaymasterUtilityWallet(anvilRpc)
70
+
31
71
  await walletClient.sendTransaction({
32
72
  to: "0x4e59b44847b379578588920ca78fbf26c0b4956c",
33
73
  data: concat([create2Salt, erc20Bytecode])
@@ -59,10 +99,7 @@ export const sudoMintTokens = async ({
59
99
  to: Address
60
100
  anvilRpc: string
61
101
  }) => {
62
- const walletClient = await getAnvilWalletClient({
63
- addressIndex: 0,
64
- anvilRpc
65
- })
102
+ const walletClient = await getPaymasterUtilityWallet(anvilRpc)
66
103
 
67
104
  await walletClient.sendTransaction({
68
105
  to: erc20Address,
package/helpers/utils.ts CHANGED
@@ -1,16 +1,12 @@
1
1
  import {
2
2
  http,
3
- type Account,
4
3
  type Address,
5
4
  type Chain,
6
5
  type PublicClient,
7
6
  type Transport,
8
- type WalletClient,
9
7
  createPublicClient,
10
- createWalletClient,
11
8
  defineChain
12
9
  } from "viem"
13
- import { mnemonicToAccount } from "viem/accounts"
14
10
  import { erc20Address } from "./erc20-utils.js"
15
11
  import { RpcError, ValidationErrors } from "./schema.js"
16
12
 
@@ -63,26 +59,6 @@ export const getPublicClient = async (
63
59
  })
64
60
  }
65
61
 
66
- export const getAnvilWalletClient = async ({
67
- addressIndex,
68
- anvilRpc
69
- }: { addressIndex: number; anvilRpc: string }): Promise<
70
- WalletClient<Transport, Chain, Account>
71
- > => {
72
- const chain = await getChain(anvilRpc)
73
-
74
- return createWalletClient({
75
- account: mnemonicToAccount(
76
- "test test test test test test test test test test test junk",
77
- {
78
- addressIndex
79
- }
80
- ),
81
- chain,
82
- transport: http(anvilRpc)
83
- })
84
- }
85
-
86
62
  export const isTokenSupported = async (token: Address) => {
87
63
  if (token !== erc20Address) {
88
64
  throw new RpcError(
package/index.ts CHANGED
@@ -1,43 +1,45 @@
1
1
  import cors from "@fastify/cors"
2
2
  import Fastify from "fastify"
3
3
  import { defineInstance } from "prool"
4
- import { http, createPublicClient } from "viem"
5
- import { createBundlerClient } from "viem/account-abstraction"
6
- import { deployErc20Token } from "./helpers/erc20-utils.js"
7
- import { getAnvilWalletClient, getChain } from "./helpers/utils.js"
4
+ import { http, createWalletClient } from "viem"
5
+ import { privateKeyToAccount } from "viem/accounts"
6
+ import {
7
+ deployErc20Token,
8
+ erc20Address,
9
+ sudoMintTokens
10
+ } from "./helpers/erc20-utils.js"
11
+ import { getChain } from "./helpers/utils.js"
8
12
  import { createRpcHandler } from "./relay.js"
9
13
  import { deployPaymasters } from "./singletonPaymasters.js"
10
14
 
11
15
  export const paymaster = defineInstance(
12
16
  ({
13
17
  anvilRpc,
18
+ altoRpc,
14
19
  port: _port,
15
- altoRpc
16
- }: { anvilRpc: string; port: number; altoRpc: string }) => {
20
+ host: _host = "localhost"
21
+ }: { anvilRpc: string; port: number; altoRpc: string; host?: string }) => {
17
22
  const app = Fastify({})
18
23
 
19
24
  return {
20
25
  _internal: {},
21
- host: "localhost",
26
+ host: _host,
22
27
  port: _port,
23
28
  name: "mock-paymaster",
24
29
  start: async ({ port = _port }) => {
25
- const chain = await getChain(anvilRpc)
26
- const walletClient = await getAnvilWalletClient({
27
- anvilRpc,
28
- addressIndex: 1
29
- })
30
- const publicClient = createPublicClient({
31
- transport: http(anvilRpc),
32
- chain
33
- })
34
- const bundler = createBundlerClient({
35
- chain,
36
- transport: http(altoRpc)
30
+ const paymasterSigner = createWalletClient({
31
+ chain: await getChain(anvilRpc),
32
+ account: privateKeyToAccount(
33
+ "0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
34
+ ),
35
+ transport: http(anvilRpc)
37
36
  })
38
37
 
39
- await deployPaymasters({ walletClient, publicClient })
40
- await deployErc20Token(walletClient, publicClient)
38
+ await deployPaymasters({
39
+ anvilRpc,
40
+ paymasterSigner: paymasterSigner.account.address
41
+ })
42
+ await deployErc20Token(anvilRpc)
41
43
 
42
44
  app.register(cors, {
43
45
  origin: "*",
@@ -45,9 +47,9 @@ export const paymaster = defineInstance(
45
47
  })
46
48
 
47
49
  const rpcHandler = createRpcHandler({
48
- bundler,
49
- publicClient,
50
- paymasterSigner: walletClient
50
+ altoRpc,
51
+ anvilRpc,
52
+ paymasterSigner
51
53
  })
52
54
  app.post("/", {}, rpcHandler)
53
55
 
@@ -55,7 +57,7 @@ export const paymaster = defineInstance(
55
57
  return reply.code(200).send({ message: "pong" })
56
58
  })
57
59
 
58
- await app.listen({ host: "localhost", port })
60
+ await app.listen({ host: _host, port })
59
61
  },
60
62
  stop: async () => {
61
63
  app.close()
@@ -63,3 +65,5 @@ export const paymaster = defineInstance(
63
65
  }
64
66
  }
65
67
  )
68
+
69
+ export { erc20Address, sudoMintTokens }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pimlico/mock-paymaster",
3
- "version": "0.0.3",
3
+ "version": "0.0.5",
4
4
  "author": "Pimlico",
5
5
  "homepage": "https://docs.pimlico.io/permissionless",
6
6
  "repository": "github:pimlicolabs/permissionless.js",