@pimlico/mock-paymaster 0.0.4 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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":"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"}
@@ -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,7 +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;
5
6
  host?: string;
6
7
  }>;
8
+ export { erc20Address, sudoMintTokens };
7
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;cAMH,MAAM;UAAQ,MAAM;aAAW,MAAM;WAAS,MAAM;EAiDtE,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,10 +1,14 @@
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
 
@@ -23,22 +27,19 @@ export const paymaster = defineInstance(
23
27
  port: _port,
24
28
  name: "mock-paymaster",
25
29
  start: async ({ port = _port }) => {
26
- const chain = await getChain(anvilRpc)
27
- const walletClient = await getAnvilWalletClient({
28
- anvilRpc,
29
- addressIndex: 1
30
- })
31
- const publicClient = createPublicClient({
32
- transport: http(anvilRpc),
33
- chain
34
- })
35
- const bundler = createBundlerClient({
36
- chain,
37
- transport: http(altoRpc)
30
+ const paymasterSigner = createWalletClient({
31
+ chain: await getChain(anvilRpc),
32
+ account: privateKeyToAccount(
33
+ "0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
34
+ ),
35
+ transport: http(anvilRpc)
38
36
  })
39
37
 
40
- await deployPaymasters({ walletClient, publicClient })
41
- await deployErc20Token(walletClient, publicClient)
38
+ await deployPaymasters({
39
+ anvilRpc,
40
+ paymasterSigner: paymasterSigner.account.address
41
+ })
42
+ await deployErc20Token(anvilRpc)
42
43
 
43
44
  app.register(cors, {
44
45
  origin: "*",
@@ -46,9 +47,9 @@ export const paymaster = defineInstance(
46
47
  })
47
48
 
48
49
  const rpcHandler = createRpcHandler({
49
- bundler,
50
- publicClient,
51
- paymasterSigner: walletClient
50
+ altoRpc,
51
+ anvilRpc,
52
+ paymasterSigner
52
53
  })
53
54
  app.post("/", {}, rpcHandler)
54
55
 
@@ -64,3 +65,5 @@ export const paymaster = defineInstance(
64
65
  }
65
66
  }
66
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.4",
3
+ "version": "0.0.5",
4
4
  "author": "Pimlico",
5
5
  "homepage": "https://docs.pimlico.io/permissionless",
6
6
  "repository": "github:pimlicolabs/permissionless.js",
package/relay.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import * as util from "node:util"
2
2
  import type { FastifyReply, FastifyRequest } from "fastify"
3
3
  import {
4
+ http,
4
5
  type Account,
5
6
  type Address,
6
7
  BaseError,
@@ -15,6 +16,7 @@ import {
15
16
  import {
16
17
  type BundlerClient,
17
18
  type UserOperation,
19
+ createBundlerClient,
18
20
  entryPoint06Address,
19
21
  entryPoint07Address,
20
22
  entryPoint08Address
@@ -40,6 +42,8 @@ import {
40
42
  } from "./helpers/schema.js"
41
43
  import {
42
44
  type PaymasterMode,
45
+ getChain,
46
+ getPublicClient,
43
47
  isTokenSupported,
44
48
  maxBigInt
45
49
  } from "./helpers/utils.js"
@@ -158,9 +162,9 @@ const handleMethod = async ({
158
162
  parsedBody,
159
163
  paymasterSigner,
160
164
  publicClient,
161
- bundler
165
+ bundlerClient
162
166
  }: {
163
- bundler: BundlerClient
167
+ bundlerClient: BundlerClient
164
168
  paymasterSigner: WalletClient<Transport, Chain, Account>
165
169
  publicClient: PublicClient
166
170
  parsedBody: JsonRpcSchema
@@ -196,7 +200,7 @@ const handleMethod = async ({
196
200
  entryPoint,
197
201
  userOperation,
198
202
  paymasterMode: { mode: "verifying" },
199
- bundler,
203
+ bundler: bundlerClient,
200
204
  paymaster: epToPaymaster[entryPoint],
201
205
  publicClient,
202
206
  paymasterSigner,
@@ -284,7 +288,7 @@ const handleMethod = async ({
284
288
  }
285
289
 
286
290
  if (parsedBody.method === "pimlico_getUserOperationGasPrice") {
287
- return await bundler.request({
291
+ return await bundlerClient.request({
288
292
  // @ts-ignore
289
293
  method: "pimlico_getUserOperationGasPrice",
290
294
  // @ts-ignore
@@ -340,15 +344,21 @@ const handleMethod = async ({
340
344
  }
341
345
 
342
346
  export const createRpcHandler = ({
343
- bundler,
344
- publicClient,
347
+ altoRpc,
348
+ anvilRpc,
345
349
  paymasterSigner
346
350
  }: {
347
- bundler: BundlerClient
348
- publicClient: PublicClient
351
+ altoRpc: string
352
+ anvilRpc: string
349
353
  paymasterSigner: WalletClient<Transport, Chain, Account>
350
354
  }) => {
351
355
  return async (request: FastifyRequest, _reply: FastifyReply) => {
356
+ const publicClient = await getPublicClient(anvilRpc)
357
+ const bundlerClient = createBundlerClient({
358
+ chain: await getChain(anvilRpc),
359
+ transport: http(altoRpc)
360
+ })
361
+
352
362
  const body = request.body
353
363
  const parsedBody = jsonRpcSchema.safeParse(body)
354
364
  if (!parsedBody.success) {
@@ -360,7 +370,7 @@ export const createRpcHandler = ({
360
370
 
361
371
  try {
362
372
  const result = await handleMethod({
363
- bundler,
373
+ bundlerClient,
364
374
  paymasterSigner,
365
375
  parsedBody: parsedBody.data,
366
376
  publicClient