@zerodev/permissions 5.4.7 → 5.4.8
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/_cjs/deserializePermissionAccount.js +49 -7
- package/_cjs/deserializePermissionAccount.js.map +1 -1
- package/_esm/deserializePermissionAccount.js +50 -8
- package/_esm/deserializePermissionAccount.js.map +1 -1
- package/_types/deserializePermissionAccount.d.ts +1 -0
- package/_types/deserializePermissionAccount.d.ts.map +1 -1
- package/deserializePermissionAccount.ts +51 -7
- package/package.json +1 -1
|
@@ -31,7 +31,7 @@ const deserializePermissionAccount = async (client, entryPointAddress, kernelVer
|
|
|
31
31
|
entryPoint: entryPointAddress,
|
|
32
32
|
kernelVersion
|
|
33
33
|
});
|
|
34
|
-
const { index, validatorInitData } = (0, exports.decodeParamsFromInitCode)(params.accountParams.initCode, kernelVersion);
|
|
34
|
+
const { index, validatorInitData, useMetaFactory } = (0, exports.decodeParamsFromInitCode)(params.accountParams.initCode, kernelVersion);
|
|
35
35
|
const kernelPluginManager = await (0, accounts_1.toKernelPluginManager)(client, {
|
|
36
36
|
regular: modularPermissionPlugin,
|
|
37
37
|
pluginEnableSignature: params.enableSignature,
|
|
@@ -46,7 +46,8 @@ const deserializePermissionAccount = async (client, entryPointAddress, kernelVer
|
|
|
46
46
|
kernelVersion,
|
|
47
47
|
plugins: kernelPluginManager,
|
|
48
48
|
index,
|
|
49
|
-
deployedAccountAddress: params.accountParams.accountAddress
|
|
49
|
+
deployedAccountAddress: params.accountParams.accountAddress,
|
|
50
|
+
useMetaFactory
|
|
50
51
|
});
|
|
51
52
|
};
|
|
52
53
|
exports.deserializePermissionAccount = deserializePermissionAccount;
|
|
@@ -72,10 +73,22 @@ exports.createPolicyFromParams = createPolicyFromParams;
|
|
|
72
73
|
const decodeParamsFromInitCode = (initCode, kernelVersion) => {
|
|
73
74
|
let index;
|
|
74
75
|
let validatorInitData;
|
|
75
|
-
const
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
76
|
+
const initCodeWithoutFactoryAddress = `0x${initCode.slice(42)}`;
|
|
77
|
+
let deployWithFactoryFunctionData;
|
|
78
|
+
let useMetaFactory = true;
|
|
79
|
+
try {
|
|
80
|
+
deployWithFactoryFunctionData = (0, viem_1.decodeFunctionData)({
|
|
81
|
+
abi: sdk_1.KernelFactoryStakerAbi,
|
|
82
|
+
data: initCodeWithoutFactoryAddress
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
catch (error) {
|
|
86
|
+
deployWithFactoryFunctionData = (0, viem_1.decodeFunctionData)({
|
|
87
|
+
abi: sdk_1.KernelV3FactoryAbi,
|
|
88
|
+
data: initCodeWithoutFactoryAddress
|
|
89
|
+
});
|
|
90
|
+
useMetaFactory = false;
|
|
91
|
+
}
|
|
79
92
|
if (!deployWithFactoryFunctionData)
|
|
80
93
|
throw new Error("Invalid initCode");
|
|
81
94
|
if (deployWithFactoryFunctionData.functionName === "deployWithFactory") {
|
|
@@ -107,9 +120,38 @@ const decodeParamsFromInitCode = (initCode, kernelVersion) => {
|
|
|
107
120
|
};
|
|
108
121
|
}
|
|
109
122
|
}
|
|
123
|
+
else if (deployWithFactoryFunctionData.functionName === "createAccount") {
|
|
124
|
+
index = BigInt(deployWithFactoryFunctionData.args[1]);
|
|
125
|
+
let initializeFunctionData;
|
|
126
|
+
if (kernelVersion === "0.3.0") {
|
|
127
|
+
initializeFunctionData = (0, viem_1.decodeFunctionData)({
|
|
128
|
+
abi: sdk_1.KernelV3AccountAbi,
|
|
129
|
+
data: deployWithFactoryFunctionData.args[0]
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
initializeFunctionData = (0, viem_1.decodeFunctionData)({
|
|
134
|
+
abi: sdk_1.KernelV3_1AccountAbi,
|
|
135
|
+
data: deployWithFactoryFunctionData.args[0]
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
if (!initializeFunctionData)
|
|
139
|
+
throw new Error("Invalid initCode");
|
|
140
|
+
if (initializeFunctionData.functionName === "initialize") {
|
|
141
|
+
validatorInitData = {
|
|
142
|
+
validatorAddress: initializeFunctionData.args[0],
|
|
143
|
+
identifier: initializeFunctionData.args[0],
|
|
144
|
+
enableData: initializeFunctionData.args[2],
|
|
145
|
+
initConfig: kernelVersion === "0.3.1" &&
|
|
146
|
+
Array.isArray(initializeFunctionData.args[4])
|
|
147
|
+
? [...initializeFunctionData.args[4]]
|
|
148
|
+
: undefined
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
}
|
|
110
152
|
if (index === undefined || validatorInitData === undefined)
|
|
111
153
|
throw new Error("Invalid initCode");
|
|
112
|
-
return { index, validatorInitData };
|
|
154
|
+
return { index, validatorInitData, useMetaFactory };
|
|
113
155
|
};
|
|
114
156
|
exports.decodeParamsFromInitCode = decodeParamsFromInitCode;
|
|
115
157
|
//# sourceMappingURL=deserializePermissionAccount.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deserializePermissionAccount.js","sourceRoot":"","sources":["../deserializePermissionAccount.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"deserializePermissionAccount.js","sourceRoot":"","sources":["../deserializePermissionAccount.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { KernelFactoryStakerAbi, KernelV3AccountAbi, KernelV3_1AccountAbi, createKernelAccount } from "@zerodev/sdk";
|
|
1
|
+
import { KernelFactoryStakerAbi, KernelV3AccountAbi, KernelV3FactoryAbi, KernelV3_1AccountAbi, createKernelAccount } from "@zerodev/sdk";
|
|
2
2
|
import { toKernelPluginManager } from "@zerodev/sdk/accounts";
|
|
3
3
|
import { getEntryPointVersion } from "permissionless";
|
|
4
4
|
import { decodeFunctionData } from "viem";
|
|
@@ -28,7 +28,7 @@ export const deserializePermissionAccount = async (client, entryPointAddress, ke
|
|
|
28
28
|
entryPoint: entryPointAddress,
|
|
29
29
|
kernelVersion
|
|
30
30
|
});
|
|
31
|
-
const { index, validatorInitData } = decodeParamsFromInitCode(params.accountParams.initCode, kernelVersion);
|
|
31
|
+
const { index, validatorInitData, useMetaFactory } = decodeParamsFromInitCode(params.accountParams.initCode, kernelVersion);
|
|
32
32
|
const kernelPluginManager = await toKernelPluginManager(client, {
|
|
33
33
|
regular: modularPermissionPlugin,
|
|
34
34
|
pluginEnableSignature: params.enableSignature,
|
|
@@ -43,7 +43,8 @@ export const deserializePermissionAccount = async (client, entryPointAddress, ke
|
|
|
43
43
|
kernelVersion,
|
|
44
44
|
plugins: kernelPluginManager,
|
|
45
45
|
index,
|
|
46
|
-
deployedAccountAddress: params.accountParams.accountAddress
|
|
46
|
+
deployedAccountAddress: params.accountParams.accountAddress,
|
|
47
|
+
useMetaFactory
|
|
47
48
|
});
|
|
48
49
|
};
|
|
49
50
|
export const createPolicyFromParams = async (policy) => {
|
|
@@ -67,10 +68,22 @@ export const createPolicyFromParams = async (policy) => {
|
|
|
67
68
|
export const decodeParamsFromInitCode = (initCode, kernelVersion) => {
|
|
68
69
|
let index;
|
|
69
70
|
let validatorInitData;
|
|
70
|
-
const
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
71
|
+
const initCodeWithoutFactoryAddress = `0x${initCode.slice(42)}`;
|
|
72
|
+
let deployWithFactoryFunctionData;
|
|
73
|
+
let useMetaFactory = true;
|
|
74
|
+
try {
|
|
75
|
+
deployWithFactoryFunctionData = decodeFunctionData({
|
|
76
|
+
abi: KernelFactoryStakerAbi,
|
|
77
|
+
data: initCodeWithoutFactoryAddress
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
deployWithFactoryFunctionData = decodeFunctionData({
|
|
82
|
+
abi: KernelV3FactoryAbi,
|
|
83
|
+
data: initCodeWithoutFactoryAddress
|
|
84
|
+
});
|
|
85
|
+
useMetaFactory = false;
|
|
86
|
+
}
|
|
74
87
|
if (!deployWithFactoryFunctionData)
|
|
75
88
|
throw new Error("Invalid initCode");
|
|
76
89
|
if (deployWithFactoryFunctionData.functionName === "deployWithFactory") {
|
|
@@ -102,8 +115,37 @@ export const decodeParamsFromInitCode = (initCode, kernelVersion) => {
|
|
|
102
115
|
};
|
|
103
116
|
}
|
|
104
117
|
}
|
|
118
|
+
else if (deployWithFactoryFunctionData.functionName === "createAccount") {
|
|
119
|
+
index = BigInt(deployWithFactoryFunctionData.args[1]);
|
|
120
|
+
let initializeFunctionData;
|
|
121
|
+
if (kernelVersion === "0.3.0") {
|
|
122
|
+
initializeFunctionData = decodeFunctionData({
|
|
123
|
+
abi: KernelV3AccountAbi,
|
|
124
|
+
data: deployWithFactoryFunctionData.args[0]
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
initializeFunctionData = decodeFunctionData({
|
|
129
|
+
abi: KernelV3_1AccountAbi,
|
|
130
|
+
data: deployWithFactoryFunctionData.args[0]
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
if (!initializeFunctionData)
|
|
134
|
+
throw new Error("Invalid initCode");
|
|
135
|
+
if (initializeFunctionData.functionName === "initialize") {
|
|
136
|
+
validatorInitData = {
|
|
137
|
+
validatorAddress: initializeFunctionData.args[0],
|
|
138
|
+
identifier: initializeFunctionData.args[0],
|
|
139
|
+
enableData: initializeFunctionData.args[2],
|
|
140
|
+
initConfig: kernelVersion === "0.3.1" &&
|
|
141
|
+
Array.isArray(initializeFunctionData.args[4])
|
|
142
|
+
? [...initializeFunctionData.args[4]]
|
|
143
|
+
: undefined
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
}
|
|
105
147
|
if (index === undefined || validatorInitData === undefined)
|
|
106
148
|
throw new Error("Invalid initCode");
|
|
107
|
-
return { index, validatorInitData };
|
|
149
|
+
return { index, validatorInitData, useMetaFactory };
|
|
108
150
|
};
|
|
109
151
|
//# sourceMappingURL=deserializePermissionAccount.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deserializePermissionAccount.js","sourceRoot":"","sources":["../deserializePermissionAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACtB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAM7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAWrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAA;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAEnD,OAAO,EACH,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,uBAAuB,EACvB,YAAY,EACZ,iBAAiB,EACpB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAGlE,OAAO,EAAE,kCAAkC,EAAE,MAAM,YAAY,CAAA;AAE/D,MAAM,CAAC,MAAM,4BAA4B,GAAG,KAAK,EAK7C,MAMC,EACD,iBAA6B,EAC7B,aAA2C,EAC3C,8BAAsC,EACtC,aAA6B,EAC/B,EAAE;IACA,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,iBAAiB,CAAC,CAAA;IAEjE,IAAI,iBAAiB,KAAK,MAAM,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;IACvD,CAAC;IACD,MAAM,MAAM,GAAG,kCAAkC,CAC7C,8BAA8B,CACjC,CAAA;IACD,IAAI,MAAqB,CAAA;IACzB,IAAI,MAAM,CAAC,UAAU;QACjB,MAAM,GAAG,aAAa,CAAC;YACnB,MAAM,EAAE,mBAAmB,CACvB,MAAM,CAAC,UAAU,CAC+B;SACvD,CAAC,CAAA;SACD,IAAI,aAAa;QAAE,MAAM,GAAG,aAAa,CAAA;;QACzC,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;IAEnE,MAAM,uBAAuB,GAAG,MAAM,qBAAqB,CAAC,MAAM,EAAE;QAChE,MAAM;QACN,QAAQ,EAAE,MAAM,OAAO,CAAC,GAAG,CACvB,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAC7C,sBAAsB,CAAC,MAAM,CAAC,CACjC,IAAI,EAAE,CACV;QACD,UAAU,EAAE,iBAAiB;QAC7B,aAAa;KAChB,CAAC,CAAA;IAEF,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,GAAG,wBAAwB,
|
|
1
|
+
{"version":3,"file":"deserializePermissionAccount.js","sourceRoot":"","sources":["../deserializePermissionAccount.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,5 +8,6 @@ export declare const createPolicyFromParams: (policy: Policy) => Promise<Policy>
|
|
|
8
8
|
export declare const decodeParamsFromInitCode: (initCode: Hex, kernelVersion: KERNEL_VERSION_TYPE) => {
|
|
9
9
|
index: bigint;
|
|
10
10
|
validatorInitData: ValidatorInitData;
|
|
11
|
+
useMetaFactory: boolean;
|
|
11
12
|
};
|
|
12
13
|
//# sourceMappingURL=deserializePermissionAccount.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deserializePermissionAccount.d.ts","sourceRoot":"","sources":["../deserializePermissionAccount.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"deserializePermissionAccount.d.ts","sourceRoot":"","sources":["../deserializePermissionAccount.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACR,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACpB,MAAM,oBAAoB,CAAA;AAG3B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EACR,KAAK,EACL,MAAM,EACN,GAAG,EACH,aAAa,EACb,eAAe,EACf,SAAS,EACZ,MAAM,MAAM,CAAA;AAcb,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAG/C,eAAO,MAAM,4BAA4B,iVAcL,MAAM,kBACtB,aAAa,uFAsDhC,CAAA;AAED,eAAO,MAAM,sBAAsB,WAAkB,MAAM,oBAiB1D,CAAA;AAED,eAAO,MAAM,wBAAwB,aACvB,GAAG,iBACE,mBAAmB;;;;CAoFrC,CAAA"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
KernelFactoryStakerAbi,
|
|
3
3
|
KernelV3AccountAbi,
|
|
4
|
+
KernelV3FactoryAbi,
|
|
4
5
|
KernelV3_1AccountAbi,
|
|
5
6
|
createKernelAccount
|
|
6
7
|
} from "@zerodev/sdk"
|
|
@@ -84,7 +85,7 @@ export const deserializePermissionAccount = async <
|
|
|
84
85
|
kernelVersion
|
|
85
86
|
})
|
|
86
87
|
|
|
87
|
-
const { index, validatorInitData } = decodeParamsFromInitCode(
|
|
88
|
+
const { index, validatorInitData, useMetaFactory } = decodeParamsFromInitCode(
|
|
88
89
|
params.accountParams.initCode,
|
|
89
90
|
kernelVersion
|
|
90
91
|
)
|
|
@@ -104,7 +105,8 @@ export const deserializePermissionAccount = async <
|
|
|
104
105
|
kernelVersion,
|
|
105
106
|
plugins: kernelPluginManager,
|
|
106
107
|
index,
|
|
107
|
-
deployedAccountAddress: params.accountParams.accountAddress
|
|
108
|
+
deployedAccountAddress: params.accountParams.accountAddress,
|
|
109
|
+
useMetaFactory
|
|
108
110
|
})
|
|
109
111
|
}
|
|
110
112
|
|
|
@@ -133,10 +135,23 @@ export const decodeParamsFromInitCode = (
|
|
|
133
135
|
) => {
|
|
134
136
|
let index: bigint | undefined
|
|
135
137
|
let validatorInitData: ValidatorInitData | undefined
|
|
136
|
-
const
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
138
|
+
const initCodeWithoutFactoryAddress: Hex = `0x${initCode.slice(42)}`
|
|
139
|
+
let deployWithFactoryFunctionData:
|
|
140
|
+
| DecodeFunctionDataReturnType<typeof KernelFactoryStakerAbi>
|
|
141
|
+
| DecodeFunctionDataReturnType<typeof KernelV3FactoryAbi>
|
|
142
|
+
let useMetaFactory = true
|
|
143
|
+
try {
|
|
144
|
+
deployWithFactoryFunctionData = decodeFunctionData({
|
|
145
|
+
abi: KernelFactoryStakerAbi,
|
|
146
|
+
data: initCodeWithoutFactoryAddress
|
|
147
|
+
})
|
|
148
|
+
} catch (error) {
|
|
149
|
+
deployWithFactoryFunctionData = decodeFunctionData({
|
|
150
|
+
abi: KernelV3FactoryAbi,
|
|
151
|
+
data: initCodeWithoutFactoryAddress
|
|
152
|
+
})
|
|
153
|
+
useMetaFactory = false
|
|
154
|
+
}
|
|
140
155
|
if (!deployWithFactoryFunctionData) throw new Error("Invalid initCode")
|
|
141
156
|
if (deployWithFactoryFunctionData.functionName === "deployWithFactory") {
|
|
142
157
|
index = BigInt(deployWithFactoryFunctionData.args[2])
|
|
@@ -167,8 +182,37 @@ export const decodeParamsFromInitCode = (
|
|
|
167
182
|
: undefined
|
|
168
183
|
}
|
|
169
184
|
}
|
|
185
|
+
} else if (deployWithFactoryFunctionData.functionName === "createAccount") {
|
|
186
|
+
index = BigInt(deployWithFactoryFunctionData.args[1])
|
|
187
|
+
let initializeFunctionData:
|
|
188
|
+
| DecodeFunctionDataReturnType<typeof KernelV3AccountAbi>
|
|
189
|
+
| DecodeFunctionDataReturnType<typeof KernelV3_1AccountAbi>
|
|
190
|
+
if (kernelVersion === "0.3.0") {
|
|
191
|
+
initializeFunctionData = decodeFunctionData({
|
|
192
|
+
abi: KernelV3AccountAbi,
|
|
193
|
+
data: deployWithFactoryFunctionData.args[0]
|
|
194
|
+
})
|
|
195
|
+
} else {
|
|
196
|
+
initializeFunctionData = decodeFunctionData({
|
|
197
|
+
abi: KernelV3_1AccountAbi,
|
|
198
|
+
data: deployWithFactoryFunctionData.args[0]
|
|
199
|
+
})
|
|
200
|
+
}
|
|
201
|
+
if (!initializeFunctionData) throw new Error("Invalid initCode")
|
|
202
|
+
if (initializeFunctionData.functionName === "initialize") {
|
|
203
|
+
validatorInitData = {
|
|
204
|
+
validatorAddress: initializeFunctionData.args[0],
|
|
205
|
+
identifier: initializeFunctionData.args[0],
|
|
206
|
+
enableData: initializeFunctionData.args[2],
|
|
207
|
+
initConfig:
|
|
208
|
+
kernelVersion === "0.3.1" &&
|
|
209
|
+
Array.isArray(initializeFunctionData.args[4])
|
|
210
|
+
? [...initializeFunctionData.args[4]]
|
|
211
|
+
: undefined
|
|
212
|
+
}
|
|
213
|
+
}
|
|
170
214
|
}
|
|
171
215
|
if (index === undefined || validatorInitData === undefined)
|
|
172
216
|
throw new Error("Invalid initCode")
|
|
173
|
-
return { index, validatorInitData }
|
|
217
|
+
return { index, validatorInitData, useMetaFactory }
|
|
174
218
|
}
|