@zerodev/permissions 5.2.11-alpha-2 → 5.3.0
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 +22 -10
- package/_cjs/deserializePermissionAccount.js.map +1 -1
- package/_cjs/index.js +0 -2
- package/_cjs/index.js.map +1 -1
- package/_cjs/toPermissionValidator.js +2 -1
- package/_cjs/toPermissionValidator.js.map +1 -1
- package/_esm/deserializePermissionAccount.js +23 -11
- package/_esm/deserializePermissionAccount.js.map +1 -1
- package/_esm/index.js +0 -2
- package/_esm/index.js.map +1 -1
- package/_esm/toPermissionValidator.js +2 -1
- package/_esm/toPermissionValidator.js.map +1 -1
- package/_types/deserializePermissionAccount.d.ts +4 -5
- package/_types/deserializePermissionAccount.d.ts.map +1 -1
- package/_types/index.d.ts +0 -2
- package/_types/index.d.ts.map +1 -1
- package/_types/toPermissionValidator.d.ts +1 -1
- package/_types/toPermissionValidator.d.ts.map +1 -1
- package/_types/types.d.ts +4 -3
- package/_types/types.d.ts.map +1 -1
- package/deserializePermissionAccount.ts +48 -25
- package/index.ts +0 -2
- package/package.json +19 -2
- package/toPermissionValidator.ts +3 -1
- package/types.ts +8 -3
|
@@ -10,7 +10,7 @@ const index_js_1 = require("./policies/index.js");
|
|
|
10
10
|
const toECDSASigner_js_1 = require("./signers/toECDSASigner.js");
|
|
11
11
|
const toPermissionValidator_js_1 = require("./toPermissionValidator.js");
|
|
12
12
|
const utils_js_1 = require("./utils.js");
|
|
13
|
-
const deserializePermissionAccount = async (client, entryPointAddress, modularPermissionAccountParams, modularSigner) => {
|
|
13
|
+
const deserializePermissionAccount = async (client, entryPointAddress, kernelVersion, modularPermissionAccountParams, modularSigner) => {
|
|
14
14
|
const entryPointVersion = (0, permissionless_1.getEntryPointVersion)(entryPointAddress);
|
|
15
15
|
if (entryPointVersion !== "v0.7") {
|
|
16
16
|
throw new Error("Only EntryPoint 0.7 is supported");
|
|
@@ -28,22 +28,25 @@ const deserializePermissionAccount = async (client, entryPointAddress, modularPe
|
|
|
28
28
|
const modularPermissionPlugin = await (0, toPermissionValidator_js_1.toPermissionValidator)(client, {
|
|
29
29
|
signer,
|
|
30
30
|
policies: await Promise.all(params.permissionParams.policies?.map((policy) => (0, exports.createPolicyFromParams)(policy)) || []),
|
|
31
|
-
entryPoint: entryPointAddress
|
|
31
|
+
entryPoint: entryPointAddress,
|
|
32
|
+
kernelVersion
|
|
32
33
|
});
|
|
33
|
-
const { index, validatorInitData } = (0, exports.decodeParamsFromInitCode)(params.accountParams.initCode);
|
|
34
|
+
const { index, validatorInitData } = (0, exports.decodeParamsFromInitCode)(params.accountParams.initCode, kernelVersion);
|
|
34
35
|
const kernelPluginManager = await (0, accounts_1.toKernelPluginManager)(client, {
|
|
35
36
|
regular: modularPermissionPlugin,
|
|
36
37
|
pluginEnableSignature: params.enableSignature,
|
|
37
38
|
validatorInitData,
|
|
38
39
|
action: params.action,
|
|
39
40
|
entryPoint: entryPointAddress,
|
|
41
|
+
kernelVersion,
|
|
40
42
|
...params.validityData
|
|
41
43
|
});
|
|
42
44
|
return (0, sdk_1.createKernelAccount)(client, {
|
|
45
|
+
entryPoint: entryPointAddress,
|
|
46
|
+
kernelVersion,
|
|
43
47
|
plugins: kernelPluginManager,
|
|
44
48
|
index,
|
|
45
|
-
deployedAccountAddress: params.accountParams.accountAddress
|
|
46
|
-
entryPoint: entryPointAddress
|
|
49
|
+
deployedAccountAddress: params.accountParams.accountAddress
|
|
47
50
|
});
|
|
48
51
|
};
|
|
49
52
|
exports.deserializePermissionAccount = deserializePermissionAccount;
|
|
@@ -66,7 +69,7 @@ const createPolicyFromParams = async (policy) => {
|
|
|
66
69
|
}
|
|
67
70
|
};
|
|
68
71
|
exports.createPolicyFromParams = createPolicyFromParams;
|
|
69
|
-
const decodeParamsFromInitCode = (initCode) => {
|
|
72
|
+
const decodeParamsFromInitCode = (initCode, kernelVersion) => {
|
|
70
73
|
let index;
|
|
71
74
|
let validatorInitData;
|
|
72
75
|
const deployWithFactoryFunctionData = (0, viem_1.decodeFunctionData)({
|
|
@@ -77,10 +80,19 @@ const decodeParamsFromInitCode = (initCode) => {
|
|
|
77
80
|
throw new Error("Invalid initCode");
|
|
78
81
|
if (deployWithFactoryFunctionData.functionName === "deployWithFactory") {
|
|
79
82
|
index = BigInt(deployWithFactoryFunctionData.args[2]);
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
83
|
+
let initializeFunctionData;
|
|
84
|
+
if (kernelVersion === "0.3.0") {
|
|
85
|
+
initializeFunctionData = (0, viem_1.decodeFunctionData)({
|
|
86
|
+
abi: sdk_1.KernelV3AccountAbi,
|
|
87
|
+
data: deployWithFactoryFunctionData.args[1]
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
initializeFunctionData = (0, viem_1.decodeFunctionData)({
|
|
92
|
+
abi: sdk_1.KernelV3_1AccountAbi,
|
|
93
|
+
data: deployWithFactoryFunctionData.args[1]
|
|
94
|
+
});
|
|
95
|
+
}
|
|
84
96
|
if (!initializeFunctionData)
|
|
85
97
|
throw new Error("Invalid initCode");
|
|
86
98
|
if (initializeFunctionData.functionName === "initialize") {
|
|
@@ -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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"}
|
package/_cjs/index.js
CHANGED
|
@@ -11,6 +11,4 @@ Object.defineProperty(exports, "serializeMultiChainPermissionAccounts", { enumer
|
|
|
11
11
|
var deserializePermissionAccount_js_1 = require("./deserializePermissionAccount.js");
|
|
12
12
|
Object.defineProperty(exports, "deserializePermissionAccount", { enumerable: true, get: function () { return deserializePermissionAccount_js_1.deserializePermissionAccount; } });
|
|
13
13
|
tslib_1.__exportStar(require("./constants.js"), exports);
|
|
14
|
-
tslib_1.__exportStar(require("./signers/index.js"), exports);
|
|
15
|
-
tslib_1.__exportStar(require("./policies/index.js"), exports);
|
|
16
14
|
//# sourceMappingURL=index.js.map
|
package/_cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;AACA,uEAAkE;AAAzD,iIAAA,qBAAqB,OAAA;AAC9B,iFAA4E;AAAnE,2IAAA,0BAA0B,OAAA;AACnC,uGAGmD;AAD/C,iKAAA,qCAAqC,OAAA;AAEzC,qFAAgF;AAAvE,+IAAA,4BAA4B,OAAA;AACrC,yDAA8B
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;AACA,uEAAkE;AAAzD,iIAAA,qBAAqB,OAAA;AAC9B,iFAA4E;AAAnE,2IAAA,0BAA0B,OAAA;AACnC,uGAGmD;AAD/C,iKAAA,qCAAqC,OAAA;AAEzC,qFAAgF;AAAvE,+IAAA,4BAA4B,OAAA;AACrC,yDAA8B"}
|
|
@@ -9,7 +9,7 @@ const utils_1 = require("viem/utils");
|
|
|
9
9
|
const constants_js_1 = require("./constants.js");
|
|
10
10
|
const index_js_1 = require("./policies/index.js");
|
|
11
11
|
const index_js_2 = require("./signers/index.js");
|
|
12
|
-
async function toPermissionValidator(client, { signer, policies, entryPoint: entryPointAddress, flag = constants_js_1.PolicyFlags.FOR_ALL_VALIDATION }) {
|
|
12
|
+
async function toPermissionValidator(client, { signer, policies, entryPoint: entryPointAddress, kernelVersion: _, flag = constants_js_1.PolicyFlags.FOR_ALL_VALIDATION }) {
|
|
13
13
|
const chainId = await (0, actions_1.getChainId)(client);
|
|
14
14
|
const entryPointVersion = (0, permissionless_1.getEntryPointVersion)(entryPointAddress);
|
|
15
15
|
if (entryPointVersion !== "v0.7") {
|
|
@@ -37,6 +37,7 @@ async function toPermissionValidator(client, { signer, policies, entryPoint: ent
|
|
|
37
37
|
};
|
|
38
38
|
return {
|
|
39
39
|
...signer.account,
|
|
40
|
+
supportedKernelVersions: ">=0.3.0",
|
|
40
41
|
validatorType: "PERMISSION",
|
|
41
42
|
address: viem_1.zeroAddress,
|
|
42
43
|
source: "PermissionValidator",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toPermissionValidator.js","sourceRoot":"","sources":["../toPermissionValidator.ts"],"names":[],"mappings":";;;AAAA,sCAAiD;AACjD,mDAA2E;AAE3E,+BAWa;AACb,0CAAuD;AACvD,sCAAsC;AACtC,iDAA4C;AAC5C,kDAAgD;AAChD,iDAA+C;AAOxC,KAAK,UAAU,qBAAqB,CAKvC,MAA6C,EAC7C,EACI,MAAM,EACN,QAAQ,EACR,UAAU,EAAE,iBAAiB,EAC7B,IAAI,GAAG,0BAAW,CAAC,kBAAkB,
|
|
1
|
+
{"version":3,"file":"toPermissionValidator.js","sourceRoot":"","sources":["../toPermissionValidator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { KernelFactoryStakerAbi, KernelV3AccountAbi, createKernelAccount } from "@zerodev/sdk";
|
|
1
|
+
import { KernelFactoryStakerAbi, KernelV3AccountAbi, 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";
|
|
@@ -7,7 +7,7 @@ import { toCallPolicy, toGasPolicy, toRateLimitPolicy, toSignatureCallerPolicy,
|
|
|
7
7
|
import { toECDSASigner } from "./signers/toECDSASigner.js";
|
|
8
8
|
import { toPermissionValidator } from "./toPermissionValidator.js";
|
|
9
9
|
import { deserializePermissionAccountParams } from "./utils.js";
|
|
10
|
-
export const deserializePermissionAccount = async (client, entryPointAddress, modularPermissionAccountParams, modularSigner) => {
|
|
10
|
+
export const deserializePermissionAccount = async (client, entryPointAddress, kernelVersion, modularPermissionAccountParams, modularSigner) => {
|
|
11
11
|
const entryPointVersion = getEntryPointVersion(entryPointAddress);
|
|
12
12
|
if (entryPointVersion !== "v0.7") {
|
|
13
13
|
throw new Error("Only EntryPoint 0.7 is supported");
|
|
@@ -25,22 +25,25 @@ export const deserializePermissionAccount = async (client, entryPointAddress, mo
|
|
|
25
25
|
const modularPermissionPlugin = await toPermissionValidator(client, {
|
|
26
26
|
signer,
|
|
27
27
|
policies: await Promise.all(params.permissionParams.policies?.map((policy) => createPolicyFromParams(policy)) || []),
|
|
28
|
-
entryPoint: entryPointAddress
|
|
28
|
+
entryPoint: entryPointAddress,
|
|
29
|
+
kernelVersion
|
|
29
30
|
});
|
|
30
|
-
const { index, validatorInitData } = decodeParamsFromInitCode(params.accountParams.initCode);
|
|
31
|
+
const { index, validatorInitData } = decodeParamsFromInitCode(params.accountParams.initCode, kernelVersion);
|
|
31
32
|
const kernelPluginManager = await toKernelPluginManager(client, {
|
|
32
33
|
regular: modularPermissionPlugin,
|
|
33
34
|
pluginEnableSignature: params.enableSignature,
|
|
34
35
|
validatorInitData,
|
|
35
36
|
action: params.action,
|
|
36
37
|
entryPoint: entryPointAddress,
|
|
38
|
+
kernelVersion,
|
|
37
39
|
...params.validityData
|
|
38
40
|
});
|
|
39
41
|
return createKernelAccount(client, {
|
|
42
|
+
entryPoint: entryPointAddress,
|
|
43
|
+
kernelVersion,
|
|
40
44
|
plugins: kernelPluginManager,
|
|
41
45
|
index,
|
|
42
|
-
deployedAccountAddress: params.accountParams.accountAddress
|
|
43
|
-
entryPoint: entryPointAddress
|
|
46
|
+
deployedAccountAddress: params.accountParams.accountAddress
|
|
44
47
|
});
|
|
45
48
|
};
|
|
46
49
|
export const createPolicyFromParams = async (policy) => {
|
|
@@ -61,7 +64,7 @@ export const createPolicyFromParams = async (policy) => {
|
|
|
61
64
|
throw new Error("Unsupported policy type");
|
|
62
65
|
}
|
|
63
66
|
};
|
|
64
|
-
export const decodeParamsFromInitCode = (initCode) => {
|
|
67
|
+
export const decodeParamsFromInitCode = (initCode, kernelVersion) => {
|
|
65
68
|
let index;
|
|
66
69
|
let validatorInitData;
|
|
67
70
|
const deployWithFactoryFunctionData = decodeFunctionData({
|
|
@@ -72,10 +75,19 @@ export const decodeParamsFromInitCode = (initCode) => {
|
|
|
72
75
|
throw new Error("Invalid initCode");
|
|
73
76
|
if (deployWithFactoryFunctionData.functionName === "deployWithFactory") {
|
|
74
77
|
index = BigInt(deployWithFactoryFunctionData.args[2]);
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
78
|
+
let initializeFunctionData;
|
|
79
|
+
if (kernelVersion === "0.3.0") {
|
|
80
|
+
initializeFunctionData = decodeFunctionData({
|
|
81
|
+
abi: KernelV3AccountAbi,
|
|
82
|
+
data: deployWithFactoryFunctionData.args[1]
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
initializeFunctionData = decodeFunctionData({
|
|
87
|
+
abi: KernelV3_1AccountAbi,
|
|
88
|
+
data: deployWithFactoryFunctionData.args[1]
|
|
89
|
+
});
|
|
90
|
+
}
|
|
79
91
|
if (!initializeFunctionData)
|
|
80
92
|
throw new Error("Invalid initCode");
|
|
81
93
|
if (initializeFunctionData.functionName === "initialize") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deserializePermissionAccount.js","sourceRoot":"","sources":["../deserializePermissionAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,sBAAsB,EACtB,kBAAkB,EAClB,mBAAmB,EACtB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"deserializePermissionAccount.js","sourceRoot":"","sources":["../deserializePermissionAccount.ts"],"names":[],"mappings":"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"}
|
package/_esm/index.js
CHANGED
|
@@ -3,6 +3,4 @@ export { serializePermissionAccount } from "./serializePermissionAccount.js";
|
|
|
3
3
|
export { serializeMultiChainPermissionAccounts } from "./serializeMultiChainPermissionAccounts.js";
|
|
4
4
|
export { deserializePermissionAccount } from "./deserializePermissionAccount.js";
|
|
5
5
|
export * from "./constants.js";
|
|
6
|
-
export * from "./signers/index.js";
|
|
7
|
-
export * from "./policies/index.js";
|
|
8
6
|
//# sourceMappingURL=index.js.map
|
package/_esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAA;AAC5E,OAAO,EAEH,qCAAqC,EACxC,MAAM,4CAA4C,CAAA;AACnD,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAA;AAChF,cAAc,gBAAgB,CAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAA;AAC5E,OAAO,EAEH,qCAAqC,EACxC,MAAM,4CAA4C,CAAA;AACnD,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAA;AAChF,cAAc,gBAAgB,CAAA"}
|
|
@@ -6,7 +6,7 @@ import { getAction } from "viem/utils";
|
|
|
6
6
|
import { PolicyFlags } from "./constants.js";
|
|
7
7
|
import { toPolicyId } from "./policies/index.js";
|
|
8
8
|
import { toSignerId } from "./signers/index.js";
|
|
9
|
-
export async function toPermissionValidator(client, { signer, policies, entryPoint: entryPointAddress, flag = PolicyFlags.FOR_ALL_VALIDATION }) {
|
|
9
|
+
export async function toPermissionValidator(client, { signer, policies, entryPoint: entryPointAddress, kernelVersion: _, flag = PolicyFlags.FOR_ALL_VALIDATION }) {
|
|
10
10
|
const chainId = await getChainId(client);
|
|
11
11
|
const entryPointVersion = getEntryPointVersion(entryPointAddress);
|
|
12
12
|
if (entryPointVersion !== "v0.7") {
|
|
@@ -34,6 +34,7 @@ export async function toPermissionValidator(client, { signer, policies, entryPoi
|
|
|
34
34
|
};
|
|
35
35
|
return {
|
|
36
36
|
...signer.account,
|
|
37
|
+
supportedKernelVersions: ">=0.3.0",
|
|
37
38
|
validatorType: "PERMISSION",
|
|
38
39
|
address: zeroAddress,
|
|
39
40
|
source: "PermissionValidator",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toPermissionValidator.js","sourceRoot":"","sources":["../toPermissionValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAE3E,OAAO,EAMH,MAAM,EACN,mBAAmB,EACnB,SAAS,EACT,KAAK,EACL,WAAW,EACd,MAAM,MAAM,CAAA;AACb,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAO/C,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAKvC,MAA6C,EAC7C,EACI,MAAM,EACN,QAAQ,EACR,UAAU,EAAE,iBAAiB,EAC7B,IAAI,GAAG,WAAW,CAAC,kBAAkB,
|
|
1
|
+
{"version":3,"file":"toPermissionValidator.js","sourceRoot":"","sources":["../toPermissionValidator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type { ValidatorInitData } from "@zerodev/sdk/types";
|
|
1
|
+
import type { GetKernelVersion, KERNEL_VERSION_TYPE, ValidatorInitData } from "@zerodev/sdk/types";
|
|
3
2
|
import type { EntryPoint } from "permissionless/types";
|
|
4
|
-
import type { Hex } from "viem";
|
|
3
|
+
import type { Chain, Client, Hex, Transport } from "viem";
|
|
5
4
|
import type { Policy } from "./types.js";
|
|
6
5
|
import type { ModularSigner } from "./types.js";
|
|
7
|
-
export declare const deserializePermissionAccount: <entryPoint extends EntryPoint>(client:
|
|
6
|
+
export declare const deserializePermissionAccount: <entryPoint extends EntryPoint, TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined>(client: Client<TTransport, TChain, undefined>, entryPointAddress: entryPoint, kernelVersion: GetKernelVersion<entryPoint>, modularPermissionAccountParams: string, modularSigner?: ModularSigner) => Promise<import("@zerodev/sdk").KernelSmartAccount<entryPoint, TTransport, TChain>>;
|
|
8
7
|
export declare const createPolicyFromParams: (policy: Policy) => Promise<Policy>;
|
|
9
|
-
export declare const decodeParamsFromInitCode: (initCode: Hex) => {
|
|
8
|
+
export declare const decodeParamsFromInitCode: (initCode: Hex, kernelVersion: KERNEL_VERSION_TYPE) => {
|
|
10
9
|
index: bigint;
|
|
11
10
|
validatorInitData: ValidatorInitData;
|
|
12
11
|
};
|
|
@@ -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":"AAOA,OAAO,KAAK,EACR,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACpB,MAAM,oBAAoB,CAAA;AAE3B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AAczD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAG/C,eAAO,MAAM,4BAA4B,6RAQL,MAAM,kBACtB,aAAa,uFAmDhC,CAAA;AAED,eAAO,MAAM,sBAAsB,WAAkB,MAAM,oBAiB1D,CAAA;AAED,eAAO,MAAM,wBAAwB,aACvB,GAAG,iBACE,mBAAmB;;;CAqCrC,CAAA"}
|
package/_types/index.d.ts
CHANGED
|
@@ -4,6 +4,4 @@ export { serializePermissionAccount } from "./serializePermissionAccount.js";
|
|
|
4
4
|
export { type MultiChainPermissionAccountsParams, serializeMultiChainPermissionAccounts } from "./serializeMultiChainPermissionAccounts.js";
|
|
5
5
|
export { deserializePermissionAccount } from "./deserializePermissionAccount.js";
|
|
6
6
|
export * from "./constants.js";
|
|
7
|
-
export * from "./signers/index.js";
|
|
8
|
-
export * from "./policies/index.js";
|
|
9
7
|
//# sourceMappingURL=index.d.ts.map
|
package/_types/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,mBAAmB,YAAY,CAAA;AAC/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAA;AAC5E,OAAO,EACH,KAAK,kCAAkC,EACvC,qCAAqC,EACxC,MAAM,4CAA4C,CAAA;AACnD,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAA;AAChF,cAAc,gBAAgB,CAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,mBAAmB,YAAY,CAAA;AAC/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAA;AAC5E,OAAO,EACH,KAAK,kCAAkC,EACvC,qCAAqC,EACxC,MAAM,4CAA4C,CAAA;AACnD,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAA;AAChF,cAAc,gBAAgB,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { EntryPoint } from "permissionless/types/entrypoint";
|
|
2
2
|
import { type Chain, type Client, type Transport } from "viem";
|
|
3
3
|
import type { PermissionPlugin, PermissionPluginParams } from "./types.js";
|
|
4
|
-
export declare function toPermissionValidator<entryPoint extends EntryPoint, TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined>(client: Client<TTransport, TChain, undefined>, { signer, policies, entryPoint: entryPointAddress, flag }: PermissionPluginParams): Promise<PermissionPlugin<entryPoint>>;
|
|
4
|
+
export declare function toPermissionValidator<entryPoint extends EntryPoint, TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined>(client: Client<TTransport, TChain, undefined>, { signer, policies, entryPoint: entryPointAddress, kernelVersion, flag }: PermissionPluginParams<entryPoint>): Promise<PermissionPlugin<entryPoint>>;
|
|
5
5
|
//# sourceMappingURL=toPermissionValidator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toPermissionValidator.d.ts","sourceRoot":"","sources":["../toPermissionValidator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,EAEH,KAAK,KAAK,EACV,KAAK,MAAM,EAEX,KAAK,SAAS,EAMjB,MAAM,MAAM,CAAA;AAMb,OAAO,KAAK,EAER,gBAAgB,EAChB,sBAAsB,EACzB,MAAM,YAAY,CAAA;AAEnB,wBAAsB,qBAAqB,CACvC,UAAU,SAAS,UAAU,EAC7B,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,MAAM,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,EAEpD,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAC7C,EACI,MAAM,EACN,QAAQ,EACR,UAAU,EAAE,iBAAiB,EAC7B,IAAqC,EACxC,EAAE,sBAAsB,
|
|
1
|
+
{"version":3,"file":"toPermissionValidator.d.ts","sourceRoot":"","sources":["../toPermissionValidator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,EAEH,KAAK,KAAK,EACV,KAAK,MAAM,EAEX,KAAK,SAAS,EAMjB,MAAM,MAAM,CAAA;AAMb,OAAO,KAAK,EAER,gBAAgB,EAChB,sBAAsB,EACzB,MAAM,YAAY,CAAA;AAEnB,wBAAsB,qBAAqB,CACvC,UAAU,SAAS,UAAU,EAC7B,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,MAAM,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,EAEpD,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAC7C,EACI,MAAM,EACN,QAAQ,EACR,UAAU,EAAE,iBAAiB,EAC7B,aAAgB,EAChB,IAAqC,EACxC,EAAE,sBAAsB,CAAC,UAAU,CAAC,GACtC,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CA+GvC"}
|
package/_types/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { KernelValidator } from "@zerodev/sdk";
|
|
2
|
-
import type { Action, PluginValidityData } from "@zerodev/sdk/types";
|
|
2
|
+
import type { Action, GetKernelVersion, PluginValidityData } from "@zerodev/sdk/types";
|
|
3
3
|
import type { EntryPoint } from "permissionless/types/entrypoint";
|
|
4
4
|
import type { Abi, Address, Hex, LocalAccount } from "viem";
|
|
5
5
|
import type { PolicyFlags } from "./constants.js";
|
|
@@ -37,10 +37,11 @@ export type Policy = {
|
|
|
37
37
|
type: "timestamp";
|
|
38
38
|
});
|
|
39
39
|
};
|
|
40
|
-
export type PermissionPluginParams = {
|
|
40
|
+
export type PermissionPluginParams<entryPoint extends EntryPoint> = {
|
|
41
41
|
signer: ModularSigner;
|
|
42
42
|
policies: Policy[];
|
|
43
|
-
entryPoint:
|
|
43
|
+
entryPoint: entryPoint;
|
|
44
|
+
kernelVersion: GetKernelVersion<entryPoint>;
|
|
44
45
|
flag?: PolicyFlags;
|
|
45
46
|
};
|
|
46
47
|
export interface PermissionData {
|
package/_types/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,KAAK,EACR,MAAM,EACN,gBAAgB,EAChB,kBAAkB,EACrB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,KAAK,EACR,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACrB,2BAA2B,EAC3B,gBAAgB,EAChB,qBAAqB,EACxB,MAAM,qBAAqB,CAAA;AAE5B,MAAM,MAAM,gBAAgB,CAAC,UAAU,SAAS,UAAU,IAAI,eAAe,CACzE,UAAU,EACV,qBAAqB,CACxB,GAAG;IACA,4BAA4B,EAAE,MAAM,cAAc,CAAA;CACrD,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAC9B,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAClC,CAAA;AACD,MAAM,MAAM,YAAY,GAAG;IACvB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,UAAU,CAAC,EAAE,WAAW,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IACxB,OAAO,EAAE,YAAY,CAAA;IACrB,qBAAqB,EAAE,OAAO,CAAA;IAC9B,aAAa,EAAE,MAAM,GAAG,CAAA;IACxB,iBAAiB,EAAE,MAAM,GAAG,CAAA;CAC/B,CAAA;AAED,MAAM,MAAM,MAAM,GAAG;IACjB,aAAa,EAAE,MAAM,GAAG,CAAA;IACxB,oBAAoB,EAAE,MAAM,GAAG,CAAA;IAE/B,YAAY,EACN,CAAC,gBAAgB,CAAC,GAAG,GAAG,SAAS,OAAO,EAAE,EAAE,MAAM,CAAC,GAAG;QAClD,IAAI,EAAE,MAAM,CAAA;KACf,CAAC,GACF,CAAC,eAAe,GAAG;QAAE,IAAI,EAAE,KAAK,CAAA;KAAE,CAAC,GACnC,CAAC,qBAAqB,GAAG;QAAE,IAAI,EAAE,YAAY,CAAA;KAAE,CAAC,GAChD,CAAC,2BAA2B,GAAG;QAAE,IAAI,EAAE,kBAAkB,CAAA;KAAE,CAAC,GAC5D,CAAC,gBAAgB,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,GACrC,CAAC,qBAAqB,GAAG;QAAE,IAAI,EAAE,WAAW,CAAA;KAAE,CAAC,CAAA;CACxD,CAAA;AAED,MAAM,MAAM,sBAAsB,CAAC,UAAU,SAAS,UAAU,IAAI;IAChE,MAAM,EAAE,aAAa,CAAA;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,UAAU,EAAE,UAAU,CAAA;IACtB,aAAa,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAA;IAC3C,IAAI,CAAC,EAAE,WAAW,CAAA;CACrB,CAAA;AAED,MAAM,WAAW,cAAc;IAC3B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CACtB;AAED,MAAM,MAAM,6BAA6B,GAAG;IACxC,QAAQ,EAAE,GAAG,CAAA;IACb,cAAc,EAAE,OAAO,CAAA;CAC1B,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IAClC,gBAAgB,EAAE,cAAc,CAAA;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,kBAAkB,CAAA;IAChC,aAAa,EAAE,6BAA6B,CAAA;IAC5C,eAAe,CAAC,EAAE,GAAG,CAAA;IACrB,UAAU,CAAC,EAAE,GAAG,CAAA;CACnB,CAAA"}
|
|
@@ -1,15 +1,21 @@
|
|
|
1
1
|
import {
|
|
2
2
|
KernelFactoryStakerAbi,
|
|
3
3
|
KernelV3AccountAbi,
|
|
4
|
+
KernelV3_1AccountAbi,
|
|
4
5
|
createKernelAccount
|
|
5
6
|
} from "@zerodev/sdk"
|
|
6
7
|
import { toKernelPluginManager } from "@zerodev/sdk/accounts"
|
|
7
|
-
import type {
|
|
8
|
+
import type {
|
|
9
|
+
GetKernelVersion,
|
|
10
|
+
KERNEL_VERSION_TYPE,
|
|
11
|
+
ValidatorInitData
|
|
12
|
+
} from "@zerodev/sdk/types"
|
|
8
13
|
import { getEntryPointVersion } from "permissionless"
|
|
9
14
|
import type { EntryPoint } from "permissionless/types"
|
|
10
|
-
import type { Hex } from "viem"
|
|
15
|
+
import type { Chain, Client, Hex, Transport } from "viem"
|
|
11
16
|
import { decodeFunctionData } from "viem"
|
|
12
17
|
import { privateKeyToAccount } from "viem/accounts"
|
|
18
|
+
import type { DecodeFunctionDataReturnType } from "viem/utils/abi/decodeFunctionData.js"
|
|
13
19
|
import {
|
|
14
20
|
toCallPolicy,
|
|
15
21
|
toGasPolicy,
|
|
@@ -25,10 +31,13 @@ import type { ModularSigner } from "./types.js"
|
|
|
25
31
|
import { deserializePermissionAccountParams } from "./utils.js"
|
|
26
32
|
|
|
27
33
|
export const deserializePermissionAccount = async <
|
|
28
|
-
entryPoint extends EntryPoint
|
|
34
|
+
entryPoint extends EntryPoint,
|
|
35
|
+
TTransport extends Transport = Transport,
|
|
36
|
+
TChain extends Chain | undefined = Chain | undefined
|
|
29
37
|
>(
|
|
30
|
-
client:
|
|
38
|
+
client: Client<TTransport, TChain, undefined>,
|
|
31
39
|
entryPointAddress: entryPoint,
|
|
40
|
+
kernelVersion: GetKernelVersion<entryPoint>,
|
|
32
41
|
modularPermissionAccountParams: string,
|
|
33
42
|
modularSigner?: ModularSigner
|
|
34
43
|
) => {
|
|
@@ -55,30 +64,31 @@ export const deserializePermissionAccount = async <
|
|
|
55
64
|
createPolicyFromParams(policy)
|
|
56
65
|
) || []
|
|
57
66
|
),
|
|
58
|
-
entryPoint: entryPointAddress
|
|
67
|
+
entryPoint: entryPointAddress,
|
|
68
|
+
kernelVersion
|
|
59
69
|
})
|
|
60
70
|
|
|
61
71
|
const { index, validatorInitData } = decodeParamsFromInitCode(
|
|
62
|
-
params.accountParams.initCode
|
|
72
|
+
params.accountParams.initCode,
|
|
73
|
+
kernelVersion
|
|
63
74
|
)
|
|
64
75
|
|
|
65
|
-
const kernelPluginManager = await toKernelPluginManager
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
}
|
|
75
|
-
)
|
|
76
|
+
const kernelPluginManager = await toKernelPluginManager(client, {
|
|
77
|
+
regular: modularPermissionPlugin,
|
|
78
|
+
pluginEnableSignature: params.enableSignature,
|
|
79
|
+
validatorInitData,
|
|
80
|
+
action: params.action,
|
|
81
|
+
entryPoint: entryPointAddress,
|
|
82
|
+
kernelVersion,
|
|
83
|
+
...params.validityData
|
|
84
|
+
})
|
|
76
85
|
|
|
77
|
-
return createKernelAccount
|
|
86
|
+
return createKernelAccount(client, {
|
|
87
|
+
entryPoint: entryPointAddress,
|
|
88
|
+
kernelVersion,
|
|
78
89
|
plugins: kernelPluginManager,
|
|
79
90
|
index,
|
|
80
|
-
deployedAccountAddress: params.accountParams.accountAddress
|
|
81
|
-
entryPoint: entryPointAddress
|
|
91
|
+
deployedAccountAddress: params.accountParams.accountAddress
|
|
82
92
|
})
|
|
83
93
|
}
|
|
84
94
|
|
|
@@ -101,7 +111,10 @@ export const createPolicyFromParams = async (policy: Policy) => {
|
|
|
101
111
|
}
|
|
102
112
|
}
|
|
103
113
|
|
|
104
|
-
export const decodeParamsFromInitCode = (
|
|
114
|
+
export const decodeParamsFromInitCode = (
|
|
115
|
+
initCode: Hex,
|
|
116
|
+
kernelVersion: KERNEL_VERSION_TYPE
|
|
117
|
+
) => {
|
|
105
118
|
let index: bigint | undefined
|
|
106
119
|
let validatorInitData: ValidatorInitData | undefined
|
|
107
120
|
const deployWithFactoryFunctionData = decodeFunctionData({
|
|
@@ -111,10 +124,20 @@ export const decodeParamsFromInitCode = (initCode: Hex) => {
|
|
|
111
124
|
if (!deployWithFactoryFunctionData) throw new Error("Invalid initCode")
|
|
112
125
|
if (deployWithFactoryFunctionData.functionName === "deployWithFactory") {
|
|
113
126
|
index = BigInt(deployWithFactoryFunctionData.args[2])
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
127
|
+
let initializeFunctionData:
|
|
128
|
+
| DecodeFunctionDataReturnType<typeof KernelV3AccountAbi>
|
|
129
|
+
| DecodeFunctionDataReturnType<typeof KernelV3_1AccountAbi>
|
|
130
|
+
if (kernelVersion === "0.3.0") {
|
|
131
|
+
initializeFunctionData = decodeFunctionData({
|
|
132
|
+
abi: KernelV3AccountAbi,
|
|
133
|
+
data: deployWithFactoryFunctionData.args[1]
|
|
134
|
+
})
|
|
135
|
+
} else {
|
|
136
|
+
initializeFunctionData = decodeFunctionData({
|
|
137
|
+
abi: KernelV3_1AccountAbi,
|
|
138
|
+
data: deployWithFactoryFunctionData.args[1]
|
|
139
|
+
})
|
|
140
|
+
}
|
|
118
141
|
if (!initializeFunctionData) throw new Error("Invalid initCode")
|
|
119
142
|
if (initializeFunctionData.functionName === "initialize") {
|
|
120
143
|
validatorInitData = {
|
package/index.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zerodev/permissions",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.3.0",
|
|
4
4
|
"author": "ZeroDev",
|
|
5
5
|
"main": "./_cjs/index.js",
|
|
6
6
|
"module": "./_esm/index.js",
|
|
@@ -34,12 +34,29 @@
|
|
|
34
34
|
"lint": "biome check .",
|
|
35
35
|
"lint:fix": "bun run lint --apply"
|
|
36
36
|
},
|
|
37
|
+
"exports": {
|
|
38
|
+
".": {
|
|
39
|
+
"types": "./_types/index.d.ts",
|
|
40
|
+
"import": "./_esm/index.js",
|
|
41
|
+
"default": "./_cjs/index.js"
|
|
42
|
+
},
|
|
43
|
+
"./policies": {
|
|
44
|
+
"types": "./_types/policies/index.d.ts",
|
|
45
|
+
"import": "./_esm/policies/index.js",
|
|
46
|
+
"default": "./_cjs/policies/index.js"
|
|
47
|
+
},
|
|
48
|
+
"./signers": {
|
|
49
|
+
"types": "./_types/signers/index.d.ts",
|
|
50
|
+
"import": "./_esm/signers/index.js",
|
|
51
|
+
"default": "./_cjs/signers/index.js"
|
|
52
|
+
}
|
|
53
|
+
},
|
|
37
54
|
"dependencies": {
|
|
38
55
|
"merkletreejs": "^0.3.11",
|
|
39
56
|
"@simplewebauthn/browser": "^9.0.1"
|
|
40
57
|
},
|
|
41
58
|
"peerDependencies": {
|
|
42
|
-
"viem": "^2.
|
|
59
|
+
"viem": "^2.15.1",
|
|
43
60
|
"@zerodev/sdk": "^5.2.13",
|
|
44
61
|
"permissionless": "^0.1.18"
|
|
45
62
|
}
|
package/toPermissionValidator.ts
CHANGED
|
@@ -34,8 +34,9 @@ export async function toPermissionValidator<
|
|
|
34
34
|
signer,
|
|
35
35
|
policies,
|
|
36
36
|
entryPoint: entryPointAddress,
|
|
37
|
+
kernelVersion: _,
|
|
37
38
|
flag = PolicyFlags.FOR_ALL_VALIDATION
|
|
38
|
-
}: PermissionPluginParams
|
|
39
|
+
}: PermissionPluginParams<entryPoint>
|
|
39
40
|
): Promise<PermissionPlugin<entryPoint>> {
|
|
40
41
|
const chainId = await getChainId(client)
|
|
41
42
|
const entryPointVersion = getEntryPointVersion(entryPointAddress)
|
|
@@ -78,6 +79,7 @@ export async function toPermissionValidator<
|
|
|
78
79
|
|
|
79
80
|
return {
|
|
80
81
|
...signer.account,
|
|
82
|
+
supportedKernelVersions: ">=0.3.0",
|
|
81
83
|
validatorType: "PERMISSION",
|
|
82
84
|
address: zeroAddress,
|
|
83
85
|
source: "PermissionValidator",
|
package/types.ts
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import type { KernelValidator } from "@zerodev/sdk"
|
|
2
|
-
import type {
|
|
2
|
+
import type {
|
|
3
|
+
Action,
|
|
4
|
+
GetKernelVersion,
|
|
5
|
+
PluginValidityData
|
|
6
|
+
} from "@zerodev/sdk/types"
|
|
3
7
|
import type { EntryPoint } from "permissionless/types/entrypoint"
|
|
4
8
|
import type { Abi, Address, Hex, LocalAccount } from "viem"
|
|
5
9
|
import type { PolicyFlags } from "./constants.js"
|
|
@@ -49,10 +53,11 @@ export type Policy = {
|
|
|
49
53
|
| (TimestampPolicyParams & { type: "timestamp" })
|
|
50
54
|
}
|
|
51
55
|
|
|
52
|
-
export type PermissionPluginParams = {
|
|
56
|
+
export type PermissionPluginParams<entryPoint extends EntryPoint> = {
|
|
53
57
|
signer: ModularSigner
|
|
54
58
|
policies: Policy[]
|
|
55
|
-
entryPoint:
|
|
59
|
+
entryPoint: entryPoint
|
|
60
|
+
kernelVersion: GetKernelVersion<entryPoint>
|
|
56
61
|
flag?: PolicyFlags
|
|
57
62
|
}
|
|
58
63
|
|