permissionless 0.2.37 → 0.2.38
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 +6 -0
- package/_cjs/experimental/pimlico/utils/prepareUserOperationForErc20Paymaster.js +26 -11
- package/_cjs/experimental/pimlico/utils/prepareUserOperationForErc20Paymaster.js.map +1 -1
- package/_esm/experimental/pimlico/utils/prepareUserOperationForErc20Paymaster.js +29 -11
- package/_esm/experimental/pimlico/utils/prepareUserOperationForErc20Paymaster.js.map +1 -1
- package/_types/experimental/pimlico/utils/prepareUserOperationForErc20Paymaster.d.ts.map +1 -1
- package/experimental/pimlico/utils/prepareUserOperationForErc20Paymaster.ts +35 -11
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -8,6 +8,7 @@ const actions_2 = require("viem/actions");
|
|
|
8
8
|
const utils_1 = require("viem/utils");
|
|
9
9
|
const pimlico_js_1 = require("../../../actions/pimlico.js");
|
|
10
10
|
const erc20BalanceOverride_js_1 = require("../../../utils/erc20BalanceOverride.js");
|
|
11
|
+
const MAINNET_USDT_ADDRESS = (0, viem_1.getAddress)("0xdAC17F958D2ee523a2206206994597C13D831ec7");
|
|
11
12
|
const prepareUserOperationForErc20Paymaster = (pimlicoClient, { balanceOverride = false, balanceSlot: _balanceSlot } = {}) => async (client, parameters_) => {
|
|
12
13
|
const parameters = parameters_;
|
|
13
14
|
const account_ = client.account;
|
|
@@ -57,6 +58,14 @@ const prepareUserOperationForErc20Paymaster = (pimlicoClient, { balanceOverride
|
|
|
57
58
|
},
|
|
58
59
|
...(calls ? calls : [])
|
|
59
60
|
];
|
|
61
|
+
if (token === MAINNET_USDT_ADDRESS) {
|
|
62
|
+
callsWithDummyApproval.unshift({
|
|
63
|
+
abi: viem_1.erc20Abi,
|
|
64
|
+
functionName: "approve",
|
|
65
|
+
args: [paymasterERC20Address, 0n],
|
|
66
|
+
to: MAINNET_USDT_ADDRESS
|
|
67
|
+
});
|
|
68
|
+
}
|
|
60
69
|
const balanceSlot = _balanceSlot ?? quotes[0].balanceSlot;
|
|
61
70
|
const hasBalanceSlot = balanceSlot !== undefined;
|
|
62
71
|
if (!hasBalanceSlot && balanceOverride) {
|
|
@@ -114,17 +123,23 @@ const prepareUserOperationForErc20Paymaster = (pimlicoClient, { balanceOverride
|
|
|
114
123
|
address: token
|
|
115
124
|
});
|
|
116
125
|
const hasSufficientApproval = allowance >= maxCostInToken;
|
|
117
|
-
const finalCalls =
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
126
|
+
const finalCalls = calls ? [...calls] : [];
|
|
127
|
+
if (!hasSufficientApproval) {
|
|
128
|
+
finalCalls.unshift({
|
|
129
|
+
abi: viem_1.erc20Abi,
|
|
130
|
+
functionName: "approve",
|
|
131
|
+
args: [paymasterERC20Address, maxCostInToken],
|
|
132
|
+
to: paymasterContext.token
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
if (token === MAINNET_USDT_ADDRESS) {
|
|
136
|
+
finalCalls.unshift({
|
|
137
|
+
abi: viem_1.erc20Abi,
|
|
138
|
+
functionName: "approve",
|
|
139
|
+
args: [paymasterERC20Address, 0n],
|
|
140
|
+
to: MAINNET_USDT_ADDRESS
|
|
141
|
+
});
|
|
142
|
+
}
|
|
128
143
|
userOperation.callData = await account.encodeCalls(finalCalls.map((call_) => {
|
|
129
144
|
const call = call_;
|
|
130
145
|
if ("abi" in call)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepareUserOperationForErc20Paymaster.js","sourceRoot":"","sources":["../../../../experimental/pimlico/utils/prepareUserOperationForErc20Paymaster.ts"],"names":[],"mappings":";;;AAAA,+BAYa;AACb,kEAWiC;AACjC,0CAAwD;AACxD,0CAA2C;AAC3C,sCAAoD;AACpD,4DAA4D;AAC5D,oFAA6E;
|
|
1
|
+
{"version":3,"file":"prepareUserOperationForErc20Paymaster.js","sourceRoot":"","sources":["../../../../experimental/pimlico/utils/prepareUserOperationForErc20Paymaster.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ import { readContract } from "viem/actions";
|
|
|
5
5
|
import { getAction, parseAccount } from "viem/utils";
|
|
6
6
|
import { getTokenQuotes } from "../../../actions/pimlico.js";
|
|
7
7
|
import { erc20BalanceOverride } from "../../../utils/erc20BalanceOverride.js";
|
|
8
|
+
const MAINNET_USDT_ADDRESS = getAddress("0xdAC17F958D2ee523a2206206994597C13D831ec7");
|
|
8
9
|
export const prepareUserOperationForErc20Paymaster = (pimlicoClient, { balanceOverride = false, balanceSlot: _balanceSlot } = {}) => async (client, parameters_) => {
|
|
9
10
|
const parameters = parameters_;
|
|
10
11
|
const account_ = client.account;
|
|
@@ -48,6 +49,7 @@ export const prepareUserOperationForErc20Paymaster = (pimlicoClient, { balanceOv
|
|
|
48
49
|
if (parameters.callData && account.decodeCalls) {
|
|
49
50
|
calls = await account.decodeCalls(parameters.callData);
|
|
50
51
|
}
|
|
52
|
+
// Create basic approval call array with max approval
|
|
51
53
|
const callsWithDummyApproval = [
|
|
52
54
|
{
|
|
53
55
|
abi: erc20Abi,
|
|
@@ -57,6 +59,15 @@ export const prepareUserOperationForErc20Paymaster = (pimlicoClient, { balanceOv
|
|
|
57
59
|
},
|
|
58
60
|
...(calls ? calls : [])
|
|
59
61
|
];
|
|
62
|
+
// For USDT on mainnet, add zero approval at the beginning
|
|
63
|
+
if (token === MAINNET_USDT_ADDRESS) {
|
|
64
|
+
callsWithDummyApproval.unshift({
|
|
65
|
+
abi: erc20Abi,
|
|
66
|
+
functionName: "approve",
|
|
67
|
+
args: [paymasterERC20Address, 0n],
|
|
68
|
+
to: MAINNET_USDT_ADDRESS
|
|
69
|
+
});
|
|
70
|
+
}
|
|
60
71
|
////////////////////////////////////////////////////////////////////////////////
|
|
61
72
|
// Call prepareUserOperation
|
|
62
73
|
////////////////////////////////////////////////////////////////////////////////
|
|
@@ -125,17 +136,24 @@ export const prepareUserOperationForErc20Paymaster = (pimlicoClient, { balanceOv
|
|
|
125
136
|
address: token
|
|
126
137
|
});
|
|
127
138
|
const hasSufficientApproval = allowance >= maxCostInToken;
|
|
128
|
-
const finalCalls =
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
+
const finalCalls = calls ? [...calls] : [];
|
|
140
|
+
if (!hasSufficientApproval) {
|
|
141
|
+
finalCalls.unshift({
|
|
142
|
+
abi: erc20Abi,
|
|
143
|
+
functionName: "approve",
|
|
144
|
+
args: [paymasterERC20Address, maxCostInToken],
|
|
145
|
+
to: paymasterContext.token
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
// For USDT on mainnet, add zero approval at the beginning
|
|
149
|
+
if (token === MAINNET_USDT_ADDRESS) {
|
|
150
|
+
finalCalls.unshift({
|
|
151
|
+
abi: erc20Abi,
|
|
152
|
+
functionName: "approve",
|
|
153
|
+
args: [paymasterERC20Address, 0n],
|
|
154
|
+
to: MAINNET_USDT_ADDRESS
|
|
155
|
+
});
|
|
156
|
+
}
|
|
139
157
|
userOperation.callData = await account.encodeCalls(finalCalls.map((call_) => {
|
|
140
158
|
const call = call_;
|
|
141
159
|
if ("abi" in call)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepareUserOperationForErc20Paymaster.js","sourceRoot":"","sources":["../../../../experimental/pimlico/utils/prepareUserOperationForErc20Paymaster.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"prepareUserOperationForErc20Paymaster.js","sourceRoot":"","sources":["../../../../experimental/pimlico/utils/prepareUserOperationForErc20Paymaster.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepareUserOperationForErc20Paymaster.d.ts","sourceRoot":"","sources":["../../../../experimental/pimlico/utils/prepareUserOperationForErc20Paymaster.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,KAAK,KAAK,EACV,KAAK,MAAM,EAIX,KAAK,SAAS,EAKjB,MAAM,MAAM,CAAA;AACb,OAAO,EAIH,KAAK,8BAA8B,EACnC,KAAK,2BAA2B,EAChC,KAAK,8BAA8B,EACnC,KAAK,YAAY,EAIpB,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"prepareUserOperationForErc20Paymaster.d.ts","sourceRoot":"","sources":["../../../../experimental/pimlico/utils/prepareUserOperationForErc20Paymaster.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,KAAK,KAAK,EACV,KAAK,MAAM,EAIX,KAAK,SAAS,EAKjB,MAAM,MAAM,CAAA;AACb,OAAO,EAIH,KAAK,8BAA8B,EACnC,KAAK,2BAA2B,EAChC,KAAK,8BAA8B,EACnC,KAAK,YAAY,EAIpB,MAAM,0BAA0B,CAAA;AAWjC,eAAO,MAAM,qCAAqC,GAE1C,eAAe,MAAM,EACrB,iDAGG;IACC,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,WAAW,CAAC,EAAE,MAAM,CAAA;CAClB,MAGN,OAAO,SAAS,YAAY,GAAG,SAAS,EACxC,KAAK,CAAC,KAAK,SAAS,SAAS,OAAO,EAAE,EACtC,KAAK,CAAC,OAAO,SAAS,2BAA2B,CAC7C,OAAO,EACP,eAAe,EACf,KAAK,CACR,EACD,eAAe,SAAS,YAAY,GAAG,SAAS,GAAG,SAAS,EAE5D,QAAQ,MAAM,CAAC,SAAS,EAAE,KAAK,GAAG,SAAS,EAAE,OAAO,CAAC,EACrD,aAAa,8BAA8B,CACvC,OAAO,EACP,eAAe,EACf,KAAK,EACL,OAAO,CACV,KACF,OAAO,CACN,8BAA8B,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,OAAO,CAAC,CAiT3E,CAAA"}
|
|
@@ -29,6 +29,10 @@ import { getAction, parseAccount } from "viem/utils"
|
|
|
29
29
|
import { getTokenQuotes } from "../../../actions/pimlico.js"
|
|
30
30
|
import { erc20BalanceOverride } from "../../../utils/erc20BalanceOverride.js"
|
|
31
31
|
|
|
32
|
+
const MAINNET_USDT_ADDRESS = getAddress(
|
|
33
|
+
"0xdAC17F958D2ee523a2206206994597C13D831ec7"
|
|
34
|
+
)
|
|
35
|
+
|
|
32
36
|
export const prepareUserOperationForErc20Paymaster =
|
|
33
37
|
(
|
|
34
38
|
pimlicoClient: Client,
|
|
@@ -127,6 +131,7 @@ export const prepareUserOperationForErc20Paymaster =
|
|
|
127
131
|
calls = await account.decodeCalls(parameters.callData)
|
|
128
132
|
}
|
|
129
133
|
|
|
134
|
+
// Create basic approval call array with max approval
|
|
130
135
|
const callsWithDummyApproval = [
|
|
131
136
|
{
|
|
132
137
|
abi: erc20Abi,
|
|
@@ -137,6 +142,16 @@ export const prepareUserOperationForErc20Paymaster =
|
|
|
137
142
|
...(calls ? calls : [])
|
|
138
143
|
]
|
|
139
144
|
|
|
145
|
+
// For USDT on mainnet, add zero approval at the beginning
|
|
146
|
+
if (token === MAINNET_USDT_ADDRESS) {
|
|
147
|
+
callsWithDummyApproval.unshift({
|
|
148
|
+
abi: erc20Abi,
|
|
149
|
+
functionName: "approve",
|
|
150
|
+
args: [paymasterERC20Address, 0n],
|
|
151
|
+
to: MAINNET_USDT_ADDRESS
|
|
152
|
+
})
|
|
153
|
+
}
|
|
154
|
+
|
|
140
155
|
////////////////////////////////////////////////////////////////////////////////
|
|
141
156
|
// Call prepareUserOperation
|
|
142
157
|
////////////////////////////////////////////////////////////////////////////////
|
|
@@ -243,17 +258,26 @@ export const prepareUserOperationForErc20Paymaster =
|
|
|
243
258
|
|
|
244
259
|
const hasSufficientApproval = allowance >= maxCostInToken
|
|
245
260
|
|
|
246
|
-
const finalCalls =
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
261
|
+
const finalCalls: unknown[] = calls ? [...calls] : []
|
|
262
|
+
|
|
263
|
+
if (!hasSufficientApproval) {
|
|
264
|
+
finalCalls.unshift({
|
|
265
|
+
abi: erc20Abi,
|
|
266
|
+
functionName: "approve",
|
|
267
|
+
args: [paymasterERC20Address, maxCostInToken],
|
|
268
|
+
to: paymasterContext.token
|
|
269
|
+
})
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
// For USDT on mainnet, add zero approval at the beginning
|
|
273
|
+
if (token === MAINNET_USDT_ADDRESS) {
|
|
274
|
+
finalCalls.unshift({
|
|
275
|
+
abi: erc20Abi,
|
|
276
|
+
functionName: "approve",
|
|
277
|
+
args: [paymasterERC20Address, 0n],
|
|
278
|
+
to: MAINNET_USDT_ADDRESS
|
|
279
|
+
})
|
|
280
|
+
}
|
|
257
281
|
|
|
258
282
|
userOperation.callData = await account.encodeCalls(
|
|
259
283
|
finalCalls.map((call_) => {
|