@pimlico/mock-paymaster 0.0.2 → 0.0.3

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.
Files changed (57) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/_cjs/constants.js +61 -0
  3. package/_cjs/constants.js.map +1 -0
  4. package/_cjs/helpers/abi.js +728 -727
  5. package/_cjs/helpers/abi.js.map +1 -1
  6. package/_cjs/helpers/erc20-utils.js +15 -14
  7. package/_cjs/helpers/erc20-utils.js.map +1 -1
  8. package/_cjs/helpers/schema.js +39 -6
  9. package/_cjs/helpers/schema.js.map +1 -1
  10. package/_cjs/helpers/utils.js +29 -7
  11. package/_cjs/helpers/utils.js.map +1 -1
  12. package/_cjs/index.js +10 -9
  13. package/_cjs/index.js.map +1 -1
  14. package/_cjs/relay.js +92 -100
  15. package/_cjs/relay.js.map +1 -1
  16. package/_cjs/singletonPaymasters.js +161 -207
  17. package/_cjs/singletonPaymasters.js.map +1 -1
  18. package/_esm/constants.js +55 -0
  19. package/_esm/constants.js.map +1 -0
  20. package/_esm/helpers/abi.js +727 -726
  21. package/_esm/helpers/abi.js.map +1 -1
  22. package/_esm/helpers/erc20-utils.js +14 -13
  23. package/_esm/helpers/erc20-utils.js.map +1 -1
  24. package/_esm/helpers/schema.js +39 -6
  25. package/_esm/helpers/schema.js.map +1 -1
  26. package/_esm/helpers/utils.js +29 -8
  27. package/_esm/helpers/utils.js.map +1 -1
  28. package/_esm/index.js +12 -11
  29. package/_esm/index.js.map +1 -1
  30. package/_esm/relay.js +98 -103
  31. package/_esm/relay.js.map +1 -1
  32. package/_esm/singletonPaymasters.js +171 -213
  33. package/_esm/singletonPaymasters.js.map +1 -1
  34. package/_types/constants.d.ts +18 -0
  35. package/_types/constants.d.ts.map +1 -0
  36. package/_types/helpers/abi.d.ts +917 -435
  37. package/_types/helpers/abi.d.ts.map +1 -1
  38. package/_types/helpers/erc20-utils.d.ts +1 -1
  39. package/_types/helpers/erc20-utils.d.ts.map +1 -1
  40. package/_types/helpers/schema.d.ts +1716 -68
  41. package/_types/helpers/schema.d.ts.map +1 -1
  42. package/_types/helpers/utils.d.ts +3 -2
  43. package/_types/helpers/utils.d.ts.map +1 -1
  44. package/_types/index.d.ts.map +1 -1
  45. package/_types/relay.d.ts +38 -27
  46. package/_types/relay.d.ts.map +1 -1
  47. package/_types/singletonPaymasters.d.ts +25 -93259
  48. package/_types/singletonPaymasters.d.ts.map +1 -1
  49. package/constants.ts +84 -0
  50. package/helpers/abi.ts +728 -726
  51. package/helpers/erc20-utils.ts +16 -15
  52. package/helpers/schema.ts +41 -6
  53. package/helpers/utils.ts +38 -13
  54. package/index.ts +11 -24
  55. package/package.json +4 -4
  56. package/relay.ts +164 -192
  57. package/singletonPaymasters.ts +218 -280
package/_cjs/relay.js CHANGED
@@ -5,14 +5,16 @@ const util = require("node:util");
5
5
  const viem_1 = require("viem");
6
6
  const account_abstraction_1 = require("viem/account-abstraction");
7
7
  const zod_validation_error_1 = require("zod-validation-error");
8
+ const constants_js_1 = require("./constants.js");
8
9
  const erc20_utils_js_1 = require("./helpers/erc20-utils.js");
9
10
  const schema_js_1 = require("./helpers/schema.js");
10
11
  const utils_js_1 = require("./helpers/utils.js");
11
12
  const singletonPaymasters_js_1 = require("./singletonPaymasters.js");
12
- const handleMethodV06 = async (userOperation, paymasterMode, bundler, singletonPaymasterV06, estimateGas) => {
13
- let op = {
13
+ const handlePmSponsor = async ({ entryPoint, userOperation, paymasterMode, bundler, paymaster, publicClient, paymasterSigner, estimateGas }) => {
14
+ const is06 = entryPoint === account_abstraction_1.entryPoint06Address;
15
+ let sponsoredUserOp = {
14
16
  ...userOperation,
15
- ...(0, singletonPaymasters_js_1.getDummyPaymasterData)(true, singletonPaymasterV06.singletonPaymaster.address, paymasterMode)
17
+ ...(0, singletonPaymasters_js_1.getDummyPaymasterData)({ is06, paymaster, paymasterMode })
16
18
  };
17
19
  const callGasLimit = userOperation.callGasLimit;
18
20
  const verificationGasLimit = userOperation.verificationGasLimit;
@@ -20,15 +22,16 @@ const handleMethodV06 = async (userOperation, paymasterMode, bundler, singletonP
20
22
  if (estimateGas) {
21
23
  try {
22
24
  const gasEstimates = await bundler.estimateUserOperationGas({
23
- ...op
25
+ ...sponsoredUserOp,
26
+ entryPointAddress: entryPoint
24
27
  });
25
- op = {
26
- ...op,
28
+ sponsoredUserOp = {
29
+ ...sponsoredUserOp,
27
30
  ...gasEstimates
28
31
  };
29
- op.callGasLimit = (0, utils_js_1.maxBigInt)(op.callGasLimit, callGasLimit);
30
- op.preVerificationGas = (0, utils_js_1.maxBigInt)(op.preVerificationGas, preVerificationGas);
31
- op.verificationGasLimit = (0, utils_js_1.maxBigInt)(op.verificationGasLimit, verificationGasLimit);
32
+ sponsoredUserOp.callGasLimit = (0, utils_js_1.maxBigInt)(gasEstimates.callGasLimit, callGasLimit);
33
+ sponsoredUserOp.preVerificationGas = (0, utils_js_1.maxBigInt)(gasEstimates.preVerificationGas, preVerificationGas);
34
+ sponsoredUserOp.verificationGasLimit = (0, utils_js_1.maxBigInt)(gasEstimates.verificationGasLimit, verificationGasLimit);
32
35
  }
33
36
  catch (e) {
34
37
  if (!(e instanceof viem_1.BaseError))
@@ -43,70 +46,56 @@ const handleMethodV06 = async (userOperation, paymasterMode, bundler, singletonP
43
46
  throw new schema_js_1.RpcError("Gas Limit values (preVerificationGas, verificationGasLimit, callGasLimit) must be set", schema_js_1.ValidationErrors.InvalidFields);
44
47
  }
45
48
  const result = {
46
- preVerificationGas: (0, viem_1.toHex)(op.preVerificationGas),
47
- callGasLimit: (0, viem_1.toHex)(op.callGasLimit),
48
- verificationGasLimit: (0, viem_1.toHex)(op.verificationGasLimit || 0),
49
- ...(await singletonPaymasterV06.encodePaymasterData(op, paymasterMode))
49
+ preVerificationGas: (0, viem_1.toHex)(sponsoredUserOp.preVerificationGas),
50
+ callGasLimit: (0, viem_1.toHex)(sponsoredUserOp.callGasLimit),
51
+ paymasterVerificationGasLimit: (0, viem_1.toHex)(sponsoredUserOp.paymasterVerificationGasLimit || 0),
52
+ paymasterPostOpGasLimit: (0, viem_1.toHex)(sponsoredUserOp.paymasterPostOpGasLimit || 0),
53
+ verificationGasLimit: (0, viem_1.toHex)(sponsoredUserOp.verificationGasLimit || 0),
54
+ ...(await (0, singletonPaymasters_js_1.getSignedPaymasterData)({
55
+ publicClient,
56
+ signer: paymasterSigner,
57
+ userOp: sponsoredUserOp,
58
+ paymaster,
59
+ paymasterMode
60
+ }))
50
61
  };
51
62
  return result;
52
63
  };
53
- const handleMethodV07 = async (userOperation, paymasterMode, bundler, singletonPaymasterV07, estimateGas) => {
54
- let op = {
55
- ...userOperation,
56
- ...singletonPaymasterV07.getDummyPaymasterData(paymasterMode)
57
- };
58
- const callGasLimit = userOperation.callGasLimit;
59
- const verificationGasLimit = userOperation.verificationGasLimit;
60
- const preVerificationGas = userOperation.preVerificationGas;
61
- if (estimateGas) {
62
- try {
63
- const gasEstimates = await bundler.estimateUserOperationGas({
64
- ...op
65
- });
66
- op = {
67
- ...op,
68
- ...gasEstimates
69
- };
70
- op.callGasLimit = (0, utils_js_1.maxBigInt)(op.callGasLimit, callGasLimit);
71
- op.preVerificationGas = (0, utils_js_1.maxBigInt)(op.preVerificationGas, preVerificationGas);
72
- op.verificationGasLimit = (0, utils_js_1.maxBigInt)(op.verificationGasLimit, verificationGasLimit);
73
- }
74
- catch (e) {
75
- if (!(e instanceof viem_1.BaseError))
76
- throw new schema_js_1.InternalBundlerError();
77
- const err = e.walk();
78
- throw err;
79
- }
80
- }
81
- else if (userOperation.preVerificationGas === 1n ||
82
- userOperation.verificationGasLimit === 1n ||
83
- userOperation.callGasLimit === 1n) {
84
- throw new schema_js_1.RpcError("Gas Limit values (preVerificationGas, verificationGasLimit, callGasLimit) must be set", schema_js_1.ValidationErrors.InvalidFields);
64
+ const validateEntryPoint = (entryPoint) => {
65
+ if (entryPoint !== account_abstraction_1.entryPoint06Address &&
66
+ entryPoint !== account_abstraction_1.entryPoint07Address &&
67
+ entryPoint !== account_abstraction_1.entryPoint08Address) {
68
+ throw new schema_js_1.RpcError("EntryPoint not supported", schema_js_1.ValidationErrors.InvalidFields);
85
69
  }
86
- const result = {
87
- preVerificationGas: (0, viem_1.toHex)(op.preVerificationGas),
88
- callGasLimit: (0, viem_1.toHex)(op.callGasLimit),
89
- paymasterVerificationGasLimit: (0, viem_1.toHex)(op.paymasterVerificationGasLimit || 0),
90
- paymasterPostOpGasLimit: (0, viem_1.toHex)(op.paymasterPostOpGasLimit || 0),
91
- verificationGasLimit: (0, viem_1.toHex)(op.verificationGasLimit || 0),
92
- ...(await singletonPaymasterV07.encodePaymasterData(op, paymasterMode))
93
- };
94
- return result;
95
70
  };
96
- const handleMethod = async (bundler, singletonPaymasterV07, singletonPaymasterV06, parsedBody) => {
71
+ const handleMethod = async ({ parsedBody, paymasterSigner, publicClient, bundler }) => {
72
+ const [paymaster06, paymaster07, paymaster08] = [
73
+ (0, constants_js_1.getSingletonPaymaster06Address)(paymasterSigner.account.address),
74
+ (0, constants_js_1.getSingletonPaymaster07Address)(paymasterSigner.account.address),
75
+ (0, constants_js_1.getSingletonPaymaster08Address)(paymasterSigner.account.address)
76
+ ];
77
+ const epToPaymaster = {
78
+ [account_abstraction_1.entryPoint06Address]: paymaster06,
79
+ [account_abstraction_1.entryPoint07Address]: paymaster07,
80
+ [account_abstraction_1.entryPoint08Address]: paymaster08
81
+ };
97
82
  if (parsedBody.method === "pm_sponsorUserOperation") {
98
83
  const params = schema_js_1.pmSponsorUserOperationParamsSchema.safeParse(parsedBody.params);
99
84
  if (!params.success) {
100
85
  throw new schema_js_1.RpcError((0, zod_validation_error_1.fromZodError)(params.error).message, schema_js_1.ValidationErrors.InvalidFields);
101
86
  }
102
87
  const [userOperation, entryPoint] = params.data;
103
- if (entryPoint === account_abstraction_1.entryPoint07Address) {
104
- return await handleMethodV07(userOperation, { mode: "verifying" }, bundler, singletonPaymasterV07, true);
105
- }
106
- if (entryPoint === account_abstraction_1.entryPoint06Address) {
107
- return await handleMethodV06(userOperation, { mode: "verifying" }, bundler, singletonPaymasterV06, true);
108
- }
109
- throw new schema_js_1.RpcError("EntryPoint not supported", schema_js_1.ValidationErrors.InvalidFields);
88
+ validateEntryPoint(entryPoint);
89
+ return await handlePmSponsor({
90
+ entryPoint,
91
+ userOperation,
92
+ paymasterMode: { mode: "verifying" },
93
+ bundler,
94
+ paymaster: epToPaymaster[entryPoint],
95
+ publicClient,
96
+ paymasterSigner,
97
+ estimateGas: true
98
+ });
110
99
  }
111
100
  if (parsedBody.method === "pm_getPaymasterStubData") {
112
101
  const params = schema_js_1.pmGetPaymasterStubDataParamsSchema.safeParse(parsedBody.params);
@@ -114,28 +103,29 @@ const handleMethod = async (bundler, singletonPaymasterV07, singletonPaymasterV0
114
103
  throw new schema_js_1.RpcError((0, zod_validation_error_1.fromZodError)(params.error).message, schema_js_1.ValidationErrors.InvalidFields);
115
104
  }
116
105
  const [, entryPoint, , data] = params.data;
106
+ validateEntryPoint(entryPoint);
117
107
  const paymasterMode = getPaymasterMode(data);
118
108
  const sponsorData = {
119
109
  name: "Pimlico",
120
- icon: "data:image/jpeg;base64,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"
110
+ icon: constants_js_1.sponsorshipIcon
121
111
  };
122
- if (entryPoint === account_abstraction_1.entryPoint07Address) {
123
- return {
124
- ...singletonPaymasterV07.getDummyPaymasterData(paymasterMode),
112
+ const is06 = entryPoint === account_abstraction_1.entryPoint06Address;
113
+ const dummyPaymasterGas = is06
114
+ ? {}
115
+ : {
125
116
  paymasterVerificationGasLimit: (0, viem_1.toHex)(50000n),
126
- paymasterPostOpGasLimit: (0, viem_1.toHex)(100000n),
127
- sponsor: sponsorData,
128
- isFinal: false
129
- };
130
- }
131
- if (entryPoint === account_abstraction_1.entryPoint06Address) {
132
- return {
133
- ...singletonPaymasterV06.getDummyPaymasterData(paymasterMode),
134
- sponsor: sponsorData,
135
- isFinal: false
117
+ paymasterPostOpGasLimit: (0, viem_1.toHex)(100000n)
136
118
  };
137
- }
138
- throw new schema_js_1.RpcError("EntryPoint not supported", schema_js_1.ValidationErrors.InvalidFields);
119
+ return {
120
+ ...(0, singletonPaymasters_js_1.getDummyPaymasterData)({
121
+ is06,
122
+ paymaster: epToPaymaster[entryPoint],
123
+ paymasterMode
124
+ }),
125
+ ...dummyPaymasterGas,
126
+ sponsor: sponsorData,
127
+ isFinal: false
128
+ };
139
129
  }
140
130
  if (parsedBody.method === "pm_getPaymasterData") {
141
131
  const params = schema_js_1.pmGetPaymasterData.safeParse(parsedBody.params);
@@ -143,16 +133,14 @@ const handleMethod = async (bundler, singletonPaymasterV07, singletonPaymasterV0
143
133
  throw new schema_js_1.RpcError((0, zod_validation_error_1.fromZodError)(params.error).message, schema_js_1.ValidationErrors.InvalidFields);
144
134
  }
145
135
  const [userOperation, entryPoint, , data] = params.data;
146
- const paymasterMode = getPaymasterMode(data);
147
- if (entryPoint === account_abstraction_1.entryPoint07Address) {
148
- const { paymaster, paymasterData } = await handleMethodV07(userOperation, paymasterMode, bundler, singletonPaymasterV07, false);
149
- return { paymaster, paymasterData };
150
- }
151
- if (entryPoint === account_abstraction_1.entryPoint06Address) {
152
- const { paymasterAndData } = await handleMethodV06(userOperation, paymasterMode, bundler, singletonPaymasterV06, false);
153
- return { paymasterAndData };
154
- }
155
- throw new schema_js_1.RpcError("EntryPoint not supported", schema_js_1.ValidationErrors.InvalidFields);
136
+ validateEntryPoint(entryPoint);
137
+ return await (0, singletonPaymasters_js_1.getSignedPaymasterData)({
138
+ signer: paymasterSigner,
139
+ userOp: userOperation,
140
+ paymasterMode: getPaymasterMode(data),
141
+ paymaster: epToPaymaster[entryPoint],
142
+ publicClient
143
+ });
156
144
  }
157
145
  if (parsedBody.method === "pm_validateSponsorshipPolicies") {
158
146
  return [
@@ -161,12 +149,18 @@ const handleMethod = async (bundler, singletonPaymasterV07, singletonPaymasterV0
161
149
  data: {
162
150
  name: "Free ops for devs",
163
151
  author: "foo",
164
- icon: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==",
152
+ icon: constants_js_1.sponsorshipIcon,
165
153
  description: "Free userOps :)"
166
154
  }
167
155
  }
168
156
  ];
169
157
  }
158
+ if (parsedBody.method === "pimlico_getUserOperationGasPrice") {
159
+ return await bundler.request({
160
+ method: "pimlico_getUserOperationGasPrice",
161
+ params: []
162
+ });
163
+ }
170
164
  if (parsedBody.method === "pimlico_getTokenQuotes") {
171
165
  const params = schema_js_1.pimlicoGetTokenQuotesSchema.safeParse(parsedBody.params);
172
166
  if (!params.success) {
@@ -182,7 +176,7 @@ const handleMethod = async (bundler, singletonPaymasterV07, singletonPaymasterV0
182
176
  allowanceSlot: "0x1",
183
177
  postOpGas: "0x1a2b3c"
184
178
  },
185
- [erc20_utils_js_1.ERC20_ADDRESS]: {
179
+ [erc20_utils_js_1.erc20Address]: {
186
180
  exchangeRateNativeToUsd: "0x5cc717fbb3450c0000000",
187
181
  exchangeRate: "0x5cc717fbb3450c0000",
188
182
  balanceSlot: "0x5",
@@ -190,26 +184,19 @@ const handleMethod = async (bundler, singletonPaymasterV07, singletonPaymasterV0
190
184
  postOpGas: "0xc350"
191
185
  }
192
186
  };
193
- let paymaster;
194
- if (entryPoint === account_abstraction_1.entryPoint07Address) {
195
- paymaster = singletonPaymasterV07.singletonPaymaster.address;
196
- }
197
- else {
198
- paymaster = singletonPaymasterV06.singletonPaymaster.address;
199
- }
200
187
  return {
201
188
  quotes: tokens
202
189
  .filter((t) => quotes[t])
203
190
  .map((token) => ({
204
191
  ...quotes[token],
205
- paymaster,
192
+ paymaster: epToPaymaster[entryPoint],
206
193
  token
207
194
  }))
208
195
  };
209
196
  }
210
197
  throw new schema_js_1.RpcError(`Attempted to call an unknown method ${parsedBody.method}`, schema_js_1.ValidationErrors.InvalidFields);
211
198
  };
212
- const createRpcHandler = (bundler, singletonPaymasterV07, singletonPaymasterV06) => {
199
+ const createRpcHandler = ({ bundler, publicClient, paymasterSigner }) => {
213
200
  return async (request, _reply) => {
214
201
  const body = request.body;
215
202
  const parsedBody = schema_js_1.jsonRpcSchema.safeParse(body);
@@ -217,7 +204,12 @@ const createRpcHandler = (bundler, singletonPaymasterV07, singletonPaymasterV06)
217
204
  throw new schema_js_1.RpcError((0, zod_validation_error_1.fromZodError)(parsedBody.error).message, schema_js_1.ValidationErrors.InvalidFields);
218
205
  }
219
206
  try {
220
- const result = await handleMethod(bundler, singletonPaymasterV07, singletonPaymasterV06, parsedBody.data);
207
+ const result = await handleMethod({
208
+ bundler,
209
+ paymasterSigner,
210
+ parsedBody: parsedBody.data,
211
+ publicClient
212
+ });
221
213
  return {
222
214
  jsonrpc: "2.0",
223
215
  id: parsedBody.data.id,
package/_cjs/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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"}