@pimlico/mock-paymaster 0.0.2 → 0.0.4
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/CHANGELOG.md +12 -0
- package/_cjs/constants.js +61 -0
- package/_cjs/constants.js.map +1 -0
- package/_cjs/helpers/abi.js +728 -727
- package/_cjs/helpers/abi.js.map +1 -1
- package/_cjs/helpers/erc20-utils.js +15 -14
- package/_cjs/helpers/erc20-utils.js.map +1 -1
- package/_cjs/helpers/schema.js +39 -6
- package/_cjs/helpers/schema.js.map +1 -1
- package/_cjs/helpers/utils.js +29 -7
- package/_cjs/helpers/utils.js.map +1 -1
- package/_cjs/index.js +13 -12
- package/_cjs/index.js.map +1 -1
- package/_cjs/relay.js +92 -100
- package/_cjs/relay.js.map +1 -1
- package/_cjs/singletonPaymasters.js +161 -207
- package/_cjs/singletonPaymasters.js.map +1 -1
- package/_esm/constants.js +55 -0
- package/_esm/constants.js.map +1 -0
- package/_esm/helpers/abi.js +727 -726
- package/_esm/helpers/abi.js.map +1 -1
- package/_esm/helpers/erc20-utils.js +14 -13
- package/_esm/helpers/erc20-utils.js.map +1 -1
- package/_esm/helpers/schema.js +39 -6
- package/_esm/helpers/schema.js.map +1 -1
- package/_esm/helpers/utils.js +29 -8
- package/_esm/helpers/utils.js.map +1 -1
- package/_esm/index.js +15 -14
- package/_esm/index.js.map +1 -1
- package/_esm/relay.js +98 -103
- package/_esm/relay.js.map +1 -1
- package/_esm/singletonPaymasters.js +171 -213
- package/_esm/singletonPaymasters.js.map +1 -1
- package/_types/constants.d.ts +18 -0
- package/_types/constants.d.ts.map +1 -0
- package/_types/helpers/abi.d.ts +917 -435
- package/_types/helpers/abi.d.ts.map +1 -1
- package/_types/helpers/erc20-utils.d.ts +1 -1
- package/_types/helpers/erc20-utils.d.ts.map +1 -1
- package/_types/helpers/schema.d.ts +1716 -68
- package/_types/helpers/schema.d.ts.map +1 -1
- package/_types/helpers/utils.d.ts +3 -2
- package/_types/helpers/utils.d.ts.map +1 -1
- package/_types/index.d.ts +1 -0
- package/_types/index.d.ts.map +1 -1
- package/_types/relay.d.ts +38 -27
- package/_types/relay.d.ts.map +1 -1
- package/_types/singletonPaymasters.d.ts +25 -93259
- package/_types/singletonPaymasters.d.ts.map +1 -1
- package/constants.ts +84 -0
- package/helpers/abi.ts +728 -726
- package/helpers/erc20-utils.ts +16 -15
- package/helpers/schema.ts +41 -6
- package/helpers/utils.ts +38 -13
- package/index.ts +16 -28
- package/package.json +4 -4
- package/relay.ts +164 -192
- 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
|
|
13
|
-
|
|
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)(
|
|
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
|
-
...
|
|
25
|
+
...sponsoredUserOp,
|
|
26
|
+
entryPointAddress: entryPoint
|
|
24
27
|
});
|
|
25
|
-
|
|
26
|
-
...
|
|
28
|
+
sponsoredUserOp = {
|
|
29
|
+
...sponsoredUserOp,
|
|
27
30
|
...gasEstimates
|
|
28
31
|
};
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
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)(
|
|
47
|
-
callGasLimit: (0, viem_1.toHex)(
|
|
48
|
-
|
|
49
|
-
|
|
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
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
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 (
|
|
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
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
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
|
-
|
|
123
|
-
|
|
124
|
-
|
|
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
|
-
|
|
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
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
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:
|
|
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.
|
|
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,
|
|
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(
|
|
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":";;;AAAA,kCAAiC;AAEjC,+
|
|
1
|
+
{"version":3,"file":"relay.js","sourceRoot":"","sources":["../relay.ts"],"names":[],"mappings":"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"}
|