permissionless 0.1.34 → 0.1.36
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/actions/erc7579/supportsExecutionMode.js +4 -4
- package/_cjs/actions/erc7579/supportsExecutionMode.js.map +1 -1
- package/_cjs/experimental/eip7677/actions/getPaymasterStubData.js +6 -2
- package/_cjs/experimental/eip7677/actions/getPaymasterStubData.js.map +1 -1
- package/_cjs/utils/encode7579CallData.js +1 -1
- package/_cjs/utils/encode7579CallData.js.map +1 -1
- package/_esm/actions/erc7579/supportsExecutionMode.js +4 -4
- package/_esm/actions/erc7579/supportsExecutionMode.js.map +1 -1
- package/_esm/experimental/eip7677/actions/getPaymasterStubData.js +6 -2
- package/_esm/experimental/eip7677/actions/getPaymasterStubData.js.map +1 -1
- package/_esm/utils/encode7579CallData.js +1 -1
- package/_esm/utils/encode7579CallData.js.map +1 -1
- package/_types/actions/erc7579/supportsExecutionMode.d.ts +3 -3
- package/_types/actions/erc7579/supportsExecutionMode.d.ts.map +1 -1
- package/_types/experimental/eip7677/actions/getPaymasterStubData.d.ts +10 -0
- package/_types/experimental/eip7677/actions/getPaymasterStubData.d.ts.map +1 -1
- package/_types/experimental/eip7677/types/paymaster.d.ts +10 -0
- package/_types/experimental/eip7677/types/paymaster.d.ts.map +1 -1
- package/actions/erc7579/supportsExecutionMode.test.ts +53 -0
- package/actions/erc7579/supportsExecutionMode.ts +7 -7
- package/actions/smartAccount/prepareUserOperationRequest.test.ts +371 -2
- package/actions/smartAccount.test.ts +198 -0
- package/clients/createBundlerClient.test.ts +26 -0
- package/clients/createSmartAccountClient.test.ts +55 -0
- package/clients/decorators/smartAccount.test.ts +55 -0
- package/experimental/eip7677/actions/getPaymasterStubData.test.ts +6 -0
- package/experimental/eip7677/actions/getPaymasterStubData.ts +10 -2
- package/experimental/eip7677/types/paymaster.ts +4 -0
- package/package.json +1 -1
- package/utils/deepHexlify.test.ts +57 -0
- package/utils/encode7579CallData.test.ts +68 -0
- package/utils/encode7579CallData.ts +1 -1
- package/utils/getAddressFromInitCodeOrPaymasterAndData.test.ts +31 -0
- package/utils/getEntryPointVersion.test.ts +52 -0
- package/utils/getPackedUserOperation.test.ts +204 -0
- package/utils/getRequiredPrefund.test.ts +71 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# permissionless
|
|
2
2
|
|
|
3
|
+
## 0.1.36
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- f3b5d5e65c34479c8b7a3e59d96fd3fb8bc4933c: Made ExecutionMode fields optional
|
|
8
|
+
|
|
9
|
+
## 0.1.35
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- d986d6987d94d0a3cdf46126eac170fdb8994dd1: Added Erc7677 upgrade to include sponsor & isFinal in paymaster stub data.
|
|
14
|
+
|
|
3
15
|
## 0.1.34
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
|
@@ -4,8 +4,8 @@ exports.supportsExecutionMode = exports.encodeExecutionMode = void 0;
|
|
|
4
4
|
const viem_1 = require("viem");
|
|
5
5
|
const utils_1 = require("../../utils/index.js");
|
|
6
6
|
const signUserOperationHashWithECDSA_1 = require("../../utils/signUserOperationHashWithECDSA.js");
|
|
7
|
-
function parseCallType(
|
|
8
|
-
switch (
|
|
7
|
+
function parseCallType(callType) {
|
|
8
|
+
switch (callType) {
|
|
9
9
|
case "call":
|
|
10
10
|
return "0x00";
|
|
11
11
|
case "delegatecall":
|
|
@@ -19,8 +19,8 @@ function encodeExecutionMode({ type, revertOnError, selector, context }) {
|
|
|
19
19
|
(0, viem_1.toHex)((0, viem_1.toBytes)(parseCallType(type), { size: 1 })),
|
|
20
20
|
(0, viem_1.toHex)((0, viem_1.toBytes)(revertOnError ? "0x01" : "0x00", { size: 1 })),
|
|
21
21
|
(0, viem_1.toHex)((0, viem_1.toBytes)("0x0", { size: 4 })),
|
|
22
|
-
(0, viem_1.toHex)((0, viem_1.toBytes)(selector, { size: 4 })),
|
|
23
|
-
(0, viem_1.toHex)((0, viem_1.toBytes)(context, { size: 22 }))
|
|
22
|
+
(0, viem_1.toHex)((0, viem_1.toBytes)(selector ?? "0x", { size: 4 })),
|
|
23
|
+
(0, viem_1.toHex)((0, viem_1.toBytes)(context ?? "0x", { size: 22 }))
|
|
24
24
|
]);
|
|
25
25
|
}
|
|
26
26
|
exports.encodeExecutionMode = encodeExecutionMode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"supportsExecutionMode.js","sourceRoot":"","sources":["../../../actions/erc7579/supportsExecutionMode.ts"],"names":[],"mappings":";;;AAAA,+BAWa;AAIb,wCAA2C;AAC3C,+FAAyF;AAmBzF,SAAS,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"supportsExecutionMode.js","sourceRoot":"","sources":["../../../actions/erc7579/supportsExecutionMode.ts"],"names":[],"mappings":";;;AAAA,+BAWa;AAIb,wCAA2C;AAC3C,+FAAyF;AAmBzF,SAAS,aAAa,CAAC,QAAkB;IACrC,QAAQ,QAAQ,EAAE,CAAC;QACf,KAAK,MAAM;YACP,OAAO,MAAM,CAAA;QACjB,KAAK,cAAc;YACf,OAAO,MAAM,CAAA;QACjB,KAAK,WAAW;YACZ,OAAO,MAAM,CAAA;IACrB,CAAC;AACL,CAAC;AAED,SAAgB,mBAAmB,CAA4B,EAC3D,IAAI,EACJ,aAAa,EACb,QAAQ,EACR,OAAO,EACe;IACtB,OAAO,IAAA,mBAAY,EACf,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,EACnD;QACI,IAAA,YAAK,EAAC,IAAA,cAAO,EAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;QAChD,IAAA,YAAK,EAAC,IAAA,cAAO,EAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;QAC5D,IAAA,YAAK,EAAC,IAAA,cAAO,EAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;QAClC,IAAA,YAAK,EAAC,IAAA,cAAO,EAAC,QAAQ,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7C,IAAA,YAAK,EAAC,IAAA,cAAO,EAAC,OAAO,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;KAChD,CACJ,CAAA;AACL,CAAC;AAhBD,kDAgBC;AAEM,KAAK,UAAU,qBAAqB,CAMvC,MAAiD,EACjD,IAA2E;IAE3E,MAAM,EACF,OAAO,EAAE,QAAQ,GAAG,MAAM,CAAC,OAAO,EAClC,IAAI,EACJ,aAAa,EACb,QAAQ,EACR,OAAO,EACV,GAAG,IAAI,CAAA;IAER,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,MAAM,IAAI,6DAA4B,CAAC;YACnC,QAAQ,EAAE,sCAAsC;SACnD,CAAC,CAAA;IACN,CAAC;IAED,MAAM,OAAO,GAAG,IAAA,oBAAY,EAAC,QAAQ,CAA8B,CAAA;IAEnE,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAA;IAEnC,MAAM,WAAW,GAAG,mBAAmB,CAAC;QACpC,IAAI;QACJ,aAAa;QACb,QAAQ;QACR,OAAO;KACV,CAAC,CAAA;IAEF,MAAM,GAAG,GAAG;QACR;YACI,IAAI,EAAE,uBAAuB;YAC7B,IAAI,EAAE,UAAU;YAChB,eAAe,EAAE,MAAM;YACvB,MAAM,EAAE;gBACJ;oBACI,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,aAAa;iBACtB;aACJ;YACD,OAAO,EAAE;gBACL;oBACI,IAAI,EAAE,MAAM;iBACf;aACJ;SACJ;KACK,CAAA;IAEV,IAAI,CAAC;QACD,OAAO,MAAM,YAAY,CAAC,YAAY,CAAC;YACnC,GAAG;YACH,YAAY,EAAE,uBAAuB;YACrC,IAAI,EAAE,CAAC,WAAW,CAAC;YACnB,OAAO,EAAE,OAAO,CAAC,OAAO;SAC3B,CAAC,CAAA;IACN,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,IAAI,KAAK,YAAY,qCAA8B,EAAE,CAAC;YAClD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,CAAA;YAC1C,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,cAAc,EAAE,CAAA;YAElD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC;gBACnC,OAAO,EAAE,OAAO;gBAChB,WAAW,EAAE,WAAW;gBACxB,EAAE,EAAE,OAAO,CAAC,OAAO;gBACnB,IAAI,EAAE,IAAA,yBAAkB,EAAC;oBACrB,GAAG;oBACH,YAAY,EAAE,uBAAuB;oBACrC,IAAI,EAAE,CAAC,WAAW,CAAC;iBACtB,CAAC;aACL,CAAC,CAAA;YAEF,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC1B,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;YAChD,CAAC;YAED,OAAO,IAAA,2BAAoB,EAAC;gBACxB,GAAG;gBACH,YAAY,EAAE,uBAAuB;gBACrC,IAAI,EAAE,MAAM,CAAC,IAAI;aACpB,CAAC,CAAA;QACN,CAAC;QAED,MAAM,KAAK,CAAA;IACf,CAAC;AACL,CAAC;AAzFD,sDAyFC"}
|
|
@@ -28,7 +28,9 @@ async function getPaymasterStubData(client, { userOperation, entryPoint, context
|
|
|
28
28
|
if (entryPointVersion === "v0.6") {
|
|
29
29
|
const responseV06 = response;
|
|
30
30
|
return {
|
|
31
|
-
paymasterAndData: responseV06.paymasterAndData
|
|
31
|
+
paymasterAndData: responseV06.paymasterAndData,
|
|
32
|
+
sponsor: responseV06.sponsor,
|
|
33
|
+
isFinal: responseV06.isFinal
|
|
32
34
|
};
|
|
33
35
|
}
|
|
34
36
|
const responseV07 = response;
|
|
@@ -40,7 +42,9 @@ async function getPaymasterStubData(client, { userOperation, entryPoint, context
|
|
|
40
42
|
: undefined,
|
|
41
43
|
paymasterPostOpGasLimit: responseV07.paymasterPostOpGasLimit
|
|
42
44
|
? BigInt(responseV07.paymasterPostOpGasLimit)
|
|
43
|
-
: undefined
|
|
45
|
+
: undefined,
|
|
46
|
+
sponsor: responseV07.sponsor,
|
|
47
|
+
isFinal: responseV07.isFinal
|
|
44
48
|
};
|
|
45
49
|
}
|
|
46
50
|
exports.getPaymasterStubData = getPaymasterStubData;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPaymasterStubData.js","sourceRoot":"","sources":["../../../../experimental/eip7677/actions/getPaymasterStubData.ts"],"names":[],"mappings":";;;AAAA,+BASa;AAQb,0CAAkE;
|
|
1
|
+
{"version":3,"file":"getPaymasterStubData.js","sourceRoot":"","sources":["../../../../experimental/eip7677/actions/getPaymasterStubData.ts"],"names":[],"mappings":";;;AAAA,+BASa;AAQb,0CAAkE;AAqE3D,KAAK,UAAU,oBAAoB,CAMtC,MAKC,EACD,EACI,aAAa,EACb,UAAU,EACV,OAAO,EACP,KAAK,EAC6D;IAEtE,MAAM,OAAO,GAAG,KAAK,EAAE,EAAE,IAAI,MAAM,CAAC,KAAK,EAAE,EAAE,CAAA;IAE7C,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,MAAM,IAAI,yBAAkB,EAAE,CAAA;IAClC,CAAC;IAED,MAAM,MAAM,GAWF,OAAO;QACb,CAAC,CAAC;YACI,IAAA,mBAAW,EAAC,aAAa,CAExB;YACD,UAAU;YACV,IAAA,YAAK,EAAC,OAAO,CAAC;YACd,OAAO;SACV;QACH,CAAC,CAAC;YACI,IAAA,mBAAW,EAAC,aAAa,CAExB;YACD,UAAU;YACV,IAAA,YAAK,EAAC,OAAO,CAAC;SACjB,CAAA;IAEP,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;QAClC,MAAM,EAAE,yBAAyB;QACjC,MAAM;KACT,CAAC,CAAA;IAEF,MAAM,iBAAiB,GAAG,IAAA,4BAAoB,EAAC,UAAU,CAAC,CAAA;IAE1D,IAAI,iBAAiB,KAAK,MAAM,EAAE,CAAC;QAC/B,MAAM,WAAW,GACb,QAA0E,CAAA;QAE9E,OAAO;YACH,gBAAgB,EAAE,WAAW,CAAC,gBAAgB;YAC9C,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,OAAO,EAAE,WAAW,CAAC,OAAO;SACgB,CAAA;IACpD,CAAC;IAED,MAAM,WAAW,GACb,QAA0E,CAAA;IAE9E,OAAO;QACH,SAAS,EAAE,WAAW,CAAC,SAAS;QAChC,aAAa,EAAE,WAAW,CAAC,aAAa;QACxC,6BAA6B,EAAE,WAAW,CAAC,6BAA6B;YACpE,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,6BAA6B,CAAC;YACnD,CAAC,CAAC,SAAS;QACf,uBAAuB,EAAE,WAAW,CAAC,uBAAuB;YACxD,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,uBAAuB,CAAC;YAC7C,CAAC,CAAC,SAAS;QACf,OAAO,EAAE,WAAW,CAAC,OAAO;QAC5B,OAAO,EAAE,WAAW,CAAC,OAAO;KACgB,CAAA;AACpD,CAAC;AAtFD,oDAsFC"}
|
|
@@ -5,7 +5,7 @@ const viem_1 = require("viem");
|
|
|
5
5
|
const supportsExecutionMode_1 = require("../actions/erc7579/supportsExecutionMode.js");
|
|
6
6
|
function encode7579CallData({ mode, callData }) {
|
|
7
7
|
if (Array.isArray(callData) && mode?.type !== "batchcall") {
|
|
8
|
-
throw new Error(`mode ${mode} does not supported for batchcall calldata`);
|
|
8
|
+
throw new Error(`mode ${JSON.stringify(mode)} does not supported for batchcall calldata`);
|
|
9
9
|
}
|
|
10
10
|
const executeAbi = [
|
|
11
11
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encode7579CallData.js","sourceRoot":"","sources":["../../utils/encode7579CallData.ts"],"names":[],"mappings":";;;AAAA,+BAOa;AACb,oFAIiD;AAiBjD,SAAgB,kBAAkB,CAA4B,EAC1D,IAAI,EACJ,QAAQ,EACqB;IAC7B,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,IAAI,KAAK,WAAW,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CACX,QAAQ,IAAI,4CAA4C,
|
|
1
|
+
{"version":3,"file":"encode7579CallData.js","sourceRoot":"","sources":["../../utils/encode7579CallData.ts"],"names":[],"mappings":";;;AAAA,+BAOa;AACb,oFAIiD;AAiBjD,SAAgB,kBAAkB,CAA4B,EAC1D,IAAI,EACJ,QAAQ,EACqB;IAC7B,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,IAAI,KAAK,WAAW,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CACX,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,4CAA4C,CAC3E,CAAA;IACL,CAAC;IAED,MAAM,UAAU,GAAG;QACf;YACI,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,SAAS;YACf,MAAM,EAAE;gBACJ;oBACI,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,SAAS;oBACf,YAAY,EAAE,UAAU;iBAC3B;gBACD;oBACI,IAAI,EAAE,mBAAmB;oBACzB,IAAI,EAAE,OAAO;oBACb,YAAY,EAAE,OAAO;iBACxB;aACJ;YACD,OAAO,EAAE,EAAE;YACX,eAAe,EAAE,SAAS;SAC7B;KACK,CAAA;IAEV,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAA,yBAAkB,EAAC;YACtB,GAAG,EAAE,UAAU;YACf,YAAY,EAAE,SAAS;YACvB,IAAI,EAAE;gBACF,IAAA,2CAAmB,EAAC,IAAI,CAAC;gBACzB,IAAA,0BAAmB,EACf;oBACI;wBACI,IAAI,EAAE,gBAAgB;wBACtB,IAAI,EAAE,SAAS;wBACf,UAAU,EAAE;4BACR;gCACI,IAAI,EAAE,QAAQ;gCACd,IAAI,EAAE,SAAS;6BAClB;4BACD;gCACI,IAAI,EAAE,OAAO;gCACb,IAAI,EAAE,SAAS;6BAClB;4BACD;gCACI,IAAI,EAAE,UAAU;gCAChB,IAAI,EAAE,OAAO;6BAChB;yBACJ;qBACJ;iBACJ,EACD;oBACI,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;wBACjB,OAAO;4BACH,MAAM,EAAE,GAAG,CAAC,EAAE;4BACd,KAAK,EAAE,GAAG,CAAC,KAAK;4BAChB,QAAQ,EAAE,GAAG,CAAC,IAAI;yBACrB,CAAA;oBACL,CAAC,CAAC;iBACL,CACJ;aACJ;SACJ,CAAC,CAAA;IACN,CAAC;IAED,OAAO,IAAA,yBAAkB,EAAC;QACtB,GAAG,EAAE,UAAU;QACf,YAAY,EAAE,SAAS;QACvB,IAAI,EAAE;YACF,IAAA,2CAAmB,EAAC,IAAI,CAAC;YACzB,IAAA,gBAAS,EAAC;gBACN,QAAQ,CAAC,EAAE;gBACX,IAAA,YAAK,EAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;gBACnC,QAAQ,CAAC,IAAI;aAChB,CAAC;SACL;KACJ,CAAC,CAAA;AACN,CAAC;AApFD,gDAoFC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { ContractFunctionExecutionError, decodeFunctionResult, encodeFunctionData, encodePacked, toBytes, toHex } from "viem";
|
|
2
2
|
import { parseAccount } from "../../utils/index.js";
|
|
3
3
|
import { AccountOrClientNotFoundError } from "../../utils/signUserOperationHashWithECDSA.js";
|
|
4
|
-
function parseCallType(
|
|
5
|
-
switch (
|
|
4
|
+
function parseCallType(callType) {
|
|
5
|
+
switch (callType) {
|
|
6
6
|
case "call":
|
|
7
7
|
return "0x00";
|
|
8
8
|
case "delegatecall":
|
|
@@ -16,8 +16,8 @@ export function encodeExecutionMode({ type, revertOnError, selector, context })
|
|
|
16
16
|
toHex(toBytes(parseCallType(type), { size: 1 })),
|
|
17
17
|
toHex(toBytes(revertOnError ? "0x01" : "0x00", { size: 1 })),
|
|
18
18
|
toHex(toBytes("0x0", { size: 4 })),
|
|
19
|
-
toHex(toBytes(selector, { size: 4 })),
|
|
20
|
-
toHex(toBytes(context, { size: 22 }))
|
|
19
|
+
toHex(toBytes(selector ?? "0x", { size: 4 })),
|
|
20
|
+
toHex(toBytes(context ?? "0x", { size: 22 }))
|
|
21
21
|
]);
|
|
22
22
|
}
|
|
23
23
|
export async function supportsExecutionMode(client, args) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"supportsExecutionMode.js","sourceRoot":"","sources":["../../../actions/erc7579/supportsExecutionMode.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,8BAA8B,EAG9B,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,EACZ,OAAO,EACP,KAAK,EACR,MAAM,MAAM,CAAA;AAIb,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,4BAA4B,EAAE,MAAM,4CAA4C,CAAA;AAmBzF,SAAS,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"supportsExecutionMode.js","sourceRoot":"","sources":["../../../actions/erc7579/supportsExecutionMode.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,7 +25,9 @@ export async function getPaymasterStubData(client, { userOperation, entryPoint,
|
|
|
25
25
|
if (entryPointVersion === "v0.6") {
|
|
26
26
|
const responseV06 = response;
|
|
27
27
|
return {
|
|
28
|
-
paymasterAndData: responseV06.paymasterAndData
|
|
28
|
+
paymasterAndData: responseV06.paymasterAndData,
|
|
29
|
+
sponsor: responseV06.sponsor,
|
|
30
|
+
isFinal: responseV06.isFinal
|
|
29
31
|
};
|
|
30
32
|
}
|
|
31
33
|
const responseV07 = response;
|
|
@@ -37,7 +39,9 @@ export async function getPaymasterStubData(client, { userOperation, entryPoint,
|
|
|
37
39
|
: undefined,
|
|
38
40
|
paymasterPostOpGasLimit: responseV07.paymasterPostOpGasLimit
|
|
39
41
|
? BigInt(responseV07.paymasterPostOpGasLimit)
|
|
40
|
-
: undefined
|
|
42
|
+
: undefined,
|
|
43
|
+
sponsor: responseV07.sponsor,
|
|
44
|
+
isFinal: responseV07.isFinal
|
|
41
45
|
};
|
|
42
46
|
}
|
|
43
47
|
//# sourceMappingURL=getPaymasterStubData.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPaymasterStubData.js","sourceRoot":"","sources":["../../../../experimental/eip7677/actions/getPaymasterStubData.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,kBAAkB,EAKlB,KAAK,EACR,MAAM,MAAM,CAAA;AAQb,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"getPaymasterStubData.js","sourceRoot":"","sources":["../../../../experimental/eip7677/actions/getPaymasterStubData.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,kBAAkB,EAKlB,KAAK,EACR,MAAM,MAAM,CAAA;AAQb,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAqElE,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAMtC,MAKC,EACD,EACI,aAAa,EACb,UAAU,EACV,OAAO,EACP,KAAK,EAC6D;IAEtE,MAAM,OAAO,GAAG,KAAK,EAAE,EAAE,IAAI,MAAM,CAAC,KAAK,EAAE,EAAE,CAAA;IAE7C,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,MAAM,IAAI,kBAAkB,EAAE,CAAA;IAClC,CAAC;IAED,MAAM,MAAM,GAWF,OAAO;QACb,CAAC,CAAC;YACI,WAAW,CAAC,aAAa,CAExB;YACD,UAAU;YACV,KAAK,CAAC,OAAO,CAAC;YACd,OAAO;SACV;QACH,CAAC,CAAC;YACI,WAAW,CAAC,aAAa,CAExB;YACD,UAAU;YACV,KAAK,CAAC,OAAO,CAAC;SACjB,CAAA;IAEP,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;QAClC,MAAM,EAAE,yBAAyB;QACjC,MAAM;KACT,CAAC,CAAA;IAEF,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAA;IAE1D,IAAI,iBAAiB,KAAK,MAAM,EAAE,CAAC;QAC/B,MAAM,WAAW,GACb,QAA0E,CAAA;QAE9E,OAAO;YACH,gBAAgB,EAAE,WAAW,CAAC,gBAAgB;YAC9C,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,OAAO,EAAE,WAAW,CAAC,OAAO;SACgB,CAAA;IACpD,CAAC;IAED,MAAM,WAAW,GACb,QAA0E,CAAA;IAE9E,OAAO;QACH,SAAS,EAAE,WAAW,CAAC,SAAS;QAChC,aAAa,EAAE,WAAW,CAAC,aAAa;QACxC,6BAA6B,EAAE,WAAW,CAAC,6BAA6B;YACpE,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,6BAA6B,CAAC;YACnD,CAAC,CAAC,SAAS;QACf,uBAAuB,EAAE,WAAW,CAAC,uBAAuB;YACxD,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,uBAAuB,CAAC;YAC7C,CAAC,CAAC,SAAS;QACf,OAAO,EAAE,WAAW,CAAC,OAAO;QAC5B,OAAO,EAAE,WAAW,CAAC,OAAO;KACgB,CAAA;AACpD,CAAC"}
|
|
@@ -2,7 +2,7 @@ import { concatHex, encodeAbiParameters, encodeFunctionData, toHex } from "viem"
|
|
|
2
2
|
import { encodeExecutionMode } from "../actions/erc7579/supportsExecutionMode.js";
|
|
3
3
|
export function encode7579CallData({ mode, callData }) {
|
|
4
4
|
if (Array.isArray(callData) && mode?.type !== "batchcall") {
|
|
5
|
-
throw new Error(`mode ${mode} does not supported for batchcall calldata`);
|
|
5
|
+
throw new Error(`mode ${JSON.stringify(mode)} does not supported for batchcall calldata`);
|
|
6
6
|
}
|
|
7
7
|
const executeAbi = [
|
|
8
8
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encode7579CallData.js","sourceRoot":"","sources":["../../utils/encode7579CallData.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,SAAS,EACT,mBAAmB,EACnB,kBAAkB,EAClB,KAAK,EACR,MAAM,MAAM,CAAA;AACb,OAAO,EAGH,mBAAmB,EACtB,MAAM,0CAA0C,CAAA;AAiBjD,MAAM,UAAU,kBAAkB,CAA4B,EAC1D,IAAI,EACJ,QAAQ,EACqB;IAC7B,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,IAAI,KAAK,WAAW,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CACX,QAAQ,IAAI,4CAA4C,
|
|
1
|
+
{"version":3,"file":"encode7579CallData.js","sourceRoot":"","sources":["../../utils/encode7579CallData.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,SAAS,EACT,mBAAmB,EACnB,kBAAkB,EAClB,KAAK,EACR,MAAM,MAAM,CAAA;AACb,OAAO,EAGH,mBAAmB,EACtB,MAAM,0CAA0C,CAAA;AAiBjD,MAAM,UAAU,kBAAkB,CAA4B,EAC1D,IAAI,EACJ,QAAQ,EACqB;IAC7B,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,IAAI,KAAK,WAAW,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CACX,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,4CAA4C,CAC3E,CAAA;IACL,CAAC;IAED,MAAM,UAAU,GAAG;QACf;YACI,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,SAAS;YACf,MAAM,EAAE;gBACJ;oBACI,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,SAAS;oBACf,YAAY,EAAE,UAAU;iBAC3B;gBACD;oBACI,IAAI,EAAE,mBAAmB;oBACzB,IAAI,EAAE,OAAO;oBACb,YAAY,EAAE,OAAO;iBACxB;aACJ;YACD,OAAO,EAAE,EAAE;YACX,eAAe,EAAE,SAAS;SAC7B;KACK,CAAA;IAEV,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,OAAO,kBAAkB,CAAC;YACtB,GAAG,EAAE,UAAU;YACf,YAAY,EAAE,SAAS;YACvB,IAAI,EAAE;gBACF,mBAAmB,CAAC,IAAI,CAAC;gBACzB,mBAAmB,CACf;oBACI;wBACI,IAAI,EAAE,gBAAgB;wBACtB,IAAI,EAAE,SAAS;wBACf,UAAU,EAAE;4BACR;gCACI,IAAI,EAAE,QAAQ;gCACd,IAAI,EAAE,SAAS;6BAClB;4BACD;gCACI,IAAI,EAAE,OAAO;gCACb,IAAI,EAAE,SAAS;6BAClB;4BACD;gCACI,IAAI,EAAE,UAAU;gCAChB,IAAI,EAAE,OAAO;6BAChB;yBACJ;qBACJ;iBACJ,EACD;oBACI,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;wBACjB,OAAO;4BACH,MAAM,EAAE,GAAG,CAAC,EAAE;4BACd,KAAK,EAAE,GAAG,CAAC,KAAK;4BAChB,QAAQ,EAAE,GAAG,CAAC,IAAI;yBACrB,CAAA;oBACL,CAAC,CAAC;iBACL,CACJ;aACJ;SACJ,CAAC,CAAA;IACN,CAAC;IAED,OAAO,kBAAkB,CAAC;QACtB,GAAG,EAAE,UAAU;QACf,YAAY,EAAE,SAAS;QACvB,IAAI,EAAE;YACF,mBAAmB,CAAC,IAAI,CAAC;YACzB,SAAS,CAAC;gBACN,QAAQ,CAAC,EAAE;gBACX,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;gBACnC,QAAQ,CAAC,IAAI;aAChB,CAAC;SACL;KACJ,CAAC,CAAA;AACN,CAAC"}
|
|
@@ -5,9 +5,9 @@ import type { EntryPoint } from "../../types/entrypoint";
|
|
|
5
5
|
export type CallType = "call" | "delegatecall" | "batchcall";
|
|
6
6
|
export type ExecutionMode<callType extends CallType> = {
|
|
7
7
|
type: callType;
|
|
8
|
-
revertOnError
|
|
9
|
-
selector
|
|
10
|
-
context
|
|
8
|
+
revertOnError?: boolean;
|
|
9
|
+
selector?: Hex;
|
|
10
|
+
context?: Hex;
|
|
11
11
|
};
|
|
12
12
|
export type SupportsExecutionModeParameters<TEntryPoint extends EntryPoint, TSmartAccount extends SmartAccount<TEntryPoint> | undefined = SmartAccount<TEntryPoint> | undefined, callType extends CallType = CallType> = GetAccountParameter<TEntryPoint, TSmartAccount> & ExecutionMode<callType>;
|
|
13
13
|
export declare function encodeExecutionMode<callType extends CallType>({ type, revertOnError, selector, context }: ExecutionMode<callType>): Hex;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"supportsExecutionMode.d.ts","sourceRoot":"","sources":["../../../actions/erc7579/supportsExecutionMode.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,KAAK,EACV,KAAK,MAAM,EAEX,KAAK,GAAG,EACR,KAAK,SAAS,EAMjB,MAAM,MAAM,CAAA;AACb,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAIxD,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,cAAc,GAAG,WAAW,CAAA;AAE5D,MAAM,MAAM,aAAa,CAAC,QAAQ,SAAS,QAAQ,IAAI;IACnD,IAAI,EAAE,QAAQ,CAAA;IACd,aAAa,EAAE,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"supportsExecutionMode.d.ts","sourceRoot":"","sources":["../../../actions/erc7579/supportsExecutionMode.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,KAAK,EACV,KAAK,MAAM,EAEX,KAAK,GAAG,EACR,KAAK,SAAS,EAMjB,MAAM,MAAM,CAAA;AACb,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAIxD,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,cAAc,GAAG,WAAW,CAAA;AAE5D,MAAM,MAAM,aAAa,CAAC,QAAQ,SAAS,QAAQ,IAAI;IACnD,IAAI,EAAE,QAAQ,CAAA;IACd,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,EAAE,GAAG,CAAA;IACd,OAAO,CAAC,EAAE,GAAG,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,+BAA+B,CACvC,WAAW,SAAS,UAAU,EAC9B,aAAa,SAAS,YAAY,CAAC,WAAW,CAAC,GAAG,SAAS,GACrD,YAAY,CAAC,WAAW,CAAC,GACzB,SAAS,EACf,QAAQ,SAAS,QAAQ,GAAG,QAAQ,IACpC,mBAAmB,CAAC,WAAW,EAAE,aAAa,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAA;AAa7E,wBAAgB,mBAAmB,CAAC,QAAQ,SAAS,QAAQ,EAAE,EAC3D,IAAI,EACJ,aAAa,EACb,QAAQ,EACR,OAAO,EACV,EAAE,aAAa,CAAC,QAAQ,CAAC,GAAG,GAAG,CAW/B;AAED,wBAAsB,qBAAqB,CACvC,WAAW,SAAS,UAAU,EAC9B,aAAa,SAAS,YAAY,CAAC,WAAW,CAAC,GAAG,SAAS,EAC3D,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,MAAM,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,EAEpD,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,EACjD,IAAI,EAAE,QAAQ,CAAC,+BAA+B,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,GAC5E,OAAO,CAAC,OAAO,CAAC,CAiFlB"}
|
|
@@ -43,11 +43,21 @@ export type GetPaymasterStubDataParameters<TEntryPoint extends EntryPoint, TChai
|
|
|
43
43
|
} & GetChainParameter<TChain, TChainOverride>;
|
|
44
44
|
export type GetPaymasterStubDataReturnType<TEntryPoint extends EntryPoint> = GetEntryPointVersion<TEntryPoint> extends "v0.6" ? {
|
|
45
45
|
paymasterAndData: Hex;
|
|
46
|
+
sponsor?: {
|
|
47
|
+
name: string;
|
|
48
|
+
icon?: string;
|
|
49
|
+
};
|
|
50
|
+
isFinal?: boolean;
|
|
46
51
|
} : {
|
|
47
52
|
paymaster: Hex;
|
|
48
53
|
paymasterData: Hex;
|
|
49
54
|
paymasterVerificationGasLimit?: bigint;
|
|
50
55
|
paymasterPostOpGasLimit?: bigint;
|
|
56
|
+
sponsor?: {
|
|
57
|
+
name: string;
|
|
58
|
+
icon?: string;
|
|
59
|
+
};
|
|
60
|
+
isFinal?: boolean;
|
|
51
61
|
};
|
|
52
62
|
export declare function getPaymasterStubData<TEntryPoint extends EntryPoint, TChain extends Chain | undefined, TTransport extends Transport = Transport, TChainOverride extends Chain | undefined = Chain | undefined>(client: Client<TTransport, TChain, undefined, Eip7677RpcSchema<TEntryPoint>>, { userOperation, entryPoint, context, chain }: GetPaymasterStubDataParameters<TEntryPoint, TChain, TChainOverride>): Promise<GetPaymasterStubDataReturnType<TEntryPoint>>;
|
|
53
63
|
//# sourceMappingURL=getPaymasterStubData.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPaymasterStubData.d.ts","sourceRoot":"","sources":["../../../../experimental/eip7677/actions/getPaymasterStubData.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,OAAO,EACZ,KAAK,KAAK,EAEV,KAAK,MAAM,EACX,KAAK,iBAAiB,EACtB,KAAK,GAAG,EACR,KAAK,SAAS,EAEjB,MAAM,MAAM,CAAA;AACb,OAAO,KAAK,EAGR,UAAU,EACV,oBAAoB,EACvB,MAAM,2BAA2B,CAAA;AAGlC,OAAO,KAAK,EACR,gBAAgB,EAEnB,MAAM,oBAAoB,CAAA;AAE3B,MAAM,MAAM,8BAA8B,CACtC,WAAW,SAAS,UAAU,EAC9B,MAAM,SAAS,KAAK,GAAG,SAAS,EAChC,cAAc,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,IAC5D;IACA,aAAa,EAAE,oBAAoB,CAAC,WAAW,CAAC,SAAS,MAAM,GACzD;QACI,MAAM,EAAE,OAAO,CAAA;QACf,KAAK,EAAE,MAAM,CAAA;QACb,QAAQ,EAAE,GAAG,CAAA;QACb,QAAQ,EAAE,GAAG,CAAA;QACb,YAAY,EAAE,MAAM,CAAA;QACpB,oBAAoB,EAAE,MAAM,CAAA;QAC5B,kBAAkB,EAAE,MAAM,CAAA;QAC1B,YAAY,EAAE,MAAM,CAAA;QACpB,oBAAoB,EAAE,MAAM,CAAA;QAC5B,gBAAgB,CAAC,EAAE,GAAG,CAAA;QACtB,SAAS,CAAC,EAAE,GAAG,CAAA;QACf,OAAO,CAAC,EAAE,KAAK,CAAA;QACf,WAAW,CAAC,EAAE,KAAK,CAAA;QACnB,SAAS,CAAC,EAAE,KAAK,CAAA;QACjB,6BAA6B,CAAC,EAAE,KAAK,CAAA;QACrC,uBAAuB,CAAC,EAAE,KAAK,CAAA;QAC/B,aAAa,CAAC,EAAE,KAAK,CAAA;KACxB,GACD;QACI,MAAM,EAAE,OAAO,CAAA;QACf,KAAK,EAAE,MAAM,CAAA;QACb,OAAO,CAAC,EAAE,OAAO,CAAA;QACjB,WAAW,CAAC,EAAE,GAAG,CAAA;QACjB,QAAQ,EAAE,GAAG,CAAA;QACb,YAAY,EAAE,MAAM,CAAA;QACpB,oBAAoB,EAAE,MAAM,CAAA;QAC5B,kBAAkB,EAAE,MAAM,CAAA;QAC1B,YAAY,EAAE,MAAM,CAAA;QACpB,oBAAoB,EAAE,MAAM,CAAA;QAC5B,SAAS,CAAC,EAAE,OAAO,CAAA;QACnB,aAAa,CAAC,EAAE,GAAG,CAAA;QACnB,SAAS,CAAC,EAAE,GAAG,CAAA;QACf,gBAAgB,CAAC,EAAE,KAAK,CAAA;QACxB,6BAA6B,CAAC,EAAE,MAAM,CAAA;QACtC,uBAAuB,CAAC,EAAE,MAAM,CAAA;KACnC,CAAA;IACP,UAAU,EAAE,WAAW,CAAA;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACpC,GAAG,iBAAiB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;AAE7C,MAAM,MAAM,8BAA8B,CAAC,WAAW,SAAS,UAAU,IACrE,oBAAoB,CAAC,WAAW,CAAC,SAAS,MAAM,GAC1C;IACI,gBAAgB,EAAE,GAAG,CAAA;
|
|
1
|
+
{"version":3,"file":"getPaymasterStubData.d.ts","sourceRoot":"","sources":["../../../../experimental/eip7677/actions/getPaymasterStubData.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,11 +9,21 @@ export type GetRpcPaymasterStubDataParameters<entryPoint extends EntryPoint> = [
|
|
|
9
9
|
];
|
|
10
10
|
export type GetRpcPaymasterStubDataReturnType<entryPoint extends EntryPoint> = GetEntryPointVersion<entryPoint> extends "v0.6" ? {
|
|
11
11
|
paymasterAndData: Hex;
|
|
12
|
+
sponsor?: {
|
|
13
|
+
name: string;
|
|
14
|
+
icon?: string;
|
|
15
|
+
};
|
|
16
|
+
isFinal?: boolean;
|
|
12
17
|
} : {
|
|
13
18
|
paymaster: Hex;
|
|
14
19
|
paymasterData: Hex;
|
|
15
20
|
paymasterVerificationGasLimit?: Hex | null;
|
|
16
21
|
paymasterPostOpGasLimit?: Hex | null;
|
|
22
|
+
sponsor?: {
|
|
23
|
+
name: string;
|
|
24
|
+
icon?: string;
|
|
25
|
+
};
|
|
26
|
+
isFinal?: boolean;
|
|
17
27
|
};
|
|
18
28
|
export type GetRpcPaymasterDataParameters<entryPoint extends EntryPoint> = [
|
|
19
29
|
userOperation: UserOperationWithBigIntAsHex<GetEntryPointVersion<entryPoint>>,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paymaster.d.ts","sourceRoot":"","sources":["../../../../experimental/eip7677/types/paymaster.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAC/B,OAAO,KAAK,EACR,UAAU,EACV,oBAAoB,EACvB,MAAM,2BAA2B,CAAA;AAClC,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAA;AAEhF,MAAM,MAAM,iCAAiC,CAAC,UAAU,SAAS,UAAU,IAAI;IAC3E,aAAa,EAAE,4BAA4B,CACvC,oBAAoB,CAAC,UAAU,CAAC,CACnC;IACD,UAAU,EAAE,UAAU;IACtB,OAAO,EAAE,GAAG;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CACpC,CAAA;AAED,MAAM,MAAM,iCAAiC,CAAC,UAAU,SAAS,UAAU,IACvE,oBAAoB,CAAC,UAAU,CAAC,SAAS,MAAM,GACzC;IACI,gBAAgB,EAAE,GAAG,CAAA;
|
|
1
|
+
{"version":3,"file":"paymaster.d.ts","sourceRoot":"","sources":["../../../../experimental/eip7677/types/paymaster.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAC/B,OAAO,KAAK,EACR,UAAU,EACV,oBAAoB,EACvB,MAAM,2BAA2B,CAAA;AAClC,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAA;AAEhF,MAAM,MAAM,iCAAiC,CAAC,UAAU,SAAS,UAAU,IAAI;IAC3E,aAAa,EAAE,4BAA4B,CACvC,oBAAoB,CAAC,UAAU,CAAC,CACnC;IACD,UAAU,EAAE,UAAU;IACtB,OAAO,EAAE,GAAG;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CACpC,CAAA;AAED,MAAM,MAAM,iCAAiC,CAAC,UAAU,SAAS,UAAU,IACvE,oBAAoB,CAAC,UAAU,CAAC,SAAS,MAAM,GACzC;IACI,gBAAgB,EAAE,GAAG,CAAA;IACrB,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACzC,OAAO,CAAC,EAAE,OAAO,CAAA;CACpB,GACD;IACI,SAAS,EAAE,GAAG,CAAA;IACd,aAAa,EAAE,GAAG,CAAA;IAClB,6BAA6B,CAAC,EAAE,GAAG,GAAG,IAAI,CAAA;IAC1C,uBAAuB,CAAC,EAAE,GAAG,GAAG,IAAI,CAAA;IACpC,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACzC,OAAO,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAEX,MAAM,MAAM,6BAA6B,CAAC,UAAU,SAAS,UAAU,IAAI;IACvE,aAAa,EAAE,4BAA4B,CACvC,oBAAoB,CAAC,UAAU,CAAC,CACnC;IACD,UAAU,EAAE,UAAU;IACtB,OAAO,EAAE,GAAG;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CACpC,CAAA;AAED,MAAM,MAAM,6BAA6B,CAAC,UAAU,SAAS,UAAU,IACnE,oBAAoB,CAAC,UAAU,CAAC,SAAS,MAAM,GACzC;IACI,gBAAgB,EAAE,GAAG,CAAA;CACxB,GACD;IACI,SAAS,EAAE,GAAG,CAAA;IACd,aAAa,EAAE,GAAG,CAAA;CACrB,CAAA;AAEX,MAAM,MAAM,gBAAgB,CAAC,UAAU,SAAS,UAAU,IAAI;IAC1D;QACI,MAAM,EAAE,yBAAyB,CAAA;QACjC,UAAU,EAAE,iCAAiC,CAAC,UAAU,CAAC,CAAA;QACzD,UAAU,EAAE,iCAAiC,CAAC,UAAU,CAAC,CAAA;KAC5D;IACD;QACI,MAAM,EAAE,qBAAqB,CAAA;QAC7B,UAAU,EAAE,6BAA6B,CAAC,UAAU,CAAC,CAAA;QACrD,UAAU,EAAE,6BAA6B,CAAC,UAAU,CAAC,CAAA;KACxD;CACJ,CAAA"}
|
|
@@ -63,6 +63,59 @@ describe.each(getCoreSmartAccounts())(
|
|
|
63
63
|
supportsExecutionModeBatchCallBeforeDeployPostDeploy
|
|
64
64
|
).toBe(true)
|
|
65
65
|
|
|
66
|
+
expect(supportsExecutionModeBatchCallBeforeDeploy).toBe(
|
|
67
|
+
supportsExecutionModeBatchCallBeforeDeployPostDeploy
|
|
68
|
+
)
|
|
69
|
+
}
|
|
70
|
+
)
|
|
71
|
+
testWithRpc.skipIf(!getErc7579SmartAccountClient)(
|
|
72
|
+
"supportsExecutionMode",
|
|
73
|
+
async ({ rpc }) => {
|
|
74
|
+
const { anvilRpc, altoRpc, paymasterRpc } = rpc
|
|
75
|
+
|
|
76
|
+
if (!getErc7579SmartAccountClient) {
|
|
77
|
+
throw new Error("getErc7579SmartAccountClient not defined")
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
const smartClient = await getErc7579SmartAccountClient({
|
|
81
|
+
entryPoint: ENTRYPOINT_ADDRESS_V07,
|
|
82
|
+
privateKey: generatePrivateKey(),
|
|
83
|
+
altoRpc: altoRpc,
|
|
84
|
+
anvilRpc: anvilRpc,
|
|
85
|
+
paymasterClient: getPimlicoPaymasterClient({
|
|
86
|
+
entryPoint: ENTRYPOINT_ADDRESS_V07,
|
|
87
|
+
paymasterRpc
|
|
88
|
+
})
|
|
89
|
+
})
|
|
90
|
+
|
|
91
|
+
const supportsExecutionModeBatchCallBeforeDeploy =
|
|
92
|
+
await supportsExecutionMode(smartClient as any, {
|
|
93
|
+
account: smartClient.account as any,
|
|
94
|
+
type: "delegatecall"
|
|
95
|
+
})
|
|
96
|
+
|
|
97
|
+
expect(supportsExecutionModeBatchCallBeforeDeploy).toBe(true)
|
|
98
|
+
|
|
99
|
+
// deploy account
|
|
100
|
+
await smartClient.sendTransaction({
|
|
101
|
+
to: zeroAddress,
|
|
102
|
+
value: 0n,
|
|
103
|
+
data: "0x"
|
|
104
|
+
})
|
|
105
|
+
|
|
106
|
+
const supportsExecutionModeBatchCallBeforeDeployPostDeploy =
|
|
107
|
+
await supportsExecutionMode(smartClient as any, {
|
|
108
|
+
account: smartClient.account as any,
|
|
109
|
+
type: "batchcall",
|
|
110
|
+
revertOnError: false,
|
|
111
|
+
selector: "0x0",
|
|
112
|
+
context: "0x"
|
|
113
|
+
})
|
|
114
|
+
|
|
115
|
+
expect(
|
|
116
|
+
supportsExecutionModeBatchCallBeforeDeployPostDeploy
|
|
117
|
+
).toBe(true)
|
|
118
|
+
|
|
66
119
|
expect(supportsExecutionModeBatchCallBeforeDeploy).toBe(
|
|
67
120
|
supportsExecutionModeBatchCallBeforeDeployPostDeploy
|
|
68
121
|
)
|
|
@@ -20,9 +20,9 @@ export type CallType = "call" | "delegatecall" | "batchcall"
|
|
|
20
20
|
|
|
21
21
|
export type ExecutionMode<callType extends CallType> = {
|
|
22
22
|
type: callType
|
|
23
|
-
revertOnError
|
|
24
|
-
selector
|
|
25
|
-
context
|
|
23
|
+
revertOnError?: boolean
|
|
24
|
+
selector?: Hex
|
|
25
|
+
context?: Hex
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
export type SupportsExecutionModeParameters<
|
|
@@ -33,8 +33,8 @@ export type SupportsExecutionModeParameters<
|
|
|
33
33
|
callType extends CallType = CallType
|
|
34
34
|
> = GetAccountParameter<TEntryPoint, TSmartAccount> & ExecutionMode<callType>
|
|
35
35
|
|
|
36
|
-
function parseCallType(
|
|
37
|
-
switch (
|
|
36
|
+
function parseCallType(callType: CallType) {
|
|
37
|
+
switch (callType) {
|
|
38
38
|
case "call":
|
|
39
39
|
return "0x00"
|
|
40
40
|
case "delegatecall":
|
|
@@ -56,8 +56,8 @@ export function encodeExecutionMode<callType extends CallType>({
|
|
|
56
56
|
toHex(toBytes(parseCallType(type), { size: 1 })),
|
|
57
57
|
toHex(toBytes(revertOnError ? "0x01" : "0x00", { size: 1 })),
|
|
58
58
|
toHex(toBytes("0x0", { size: 4 })),
|
|
59
|
-
toHex(toBytes(selector, { size: 4 })),
|
|
60
|
-
toHex(toBytes(context, { size: 22 }))
|
|
59
|
+
toHex(toBytes(selector ?? "0x", { size: 4 })),
|
|
60
|
+
toHex(toBytes(context ?? "0x", { size: 22 }))
|
|
61
61
|
]
|
|
62
62
|
)
|
|
63
63
|
}
|