@zerodev/permissions 5.5.8 → 5.5.10

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/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.decodeParamsFromInitCode = exports.deserializePermissionAccount = exports.serializeMultiChainPermissionAccounts = exports.serializePermissionAccount = exports.toPermissionValidator = void 0;
3
+ exports.toInitConfig = exports.decodeParamsFromInitCode = exports.deserializePermissionAccount = exports.serializeMultiChainPermissionAccounts = exports.serializePermissionAccount = exports.toPermissionValidator = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  var toPermissionValidator_js_1 = require("./toPermissionValidator.js");
6
6
  Object.defineProperty(exports, "toPermissionValidator", { enumerable: true, get: function () { return toPermissionValidator_js_1.toPermissionValidator; } });
@@ -12,4 +12,6 @@ var deserializePermissionAccount_js_1 = require("./deserializePermissionAccount.
12
12
  Object.defineProperty(exports, "deserializePermissionAccount", { enumerable: true, get: function () { return deserializePermissionAccount_js_1.deserializePermissionAccount; } });
13
13
  Object.defineProperty(exports, "decodeParamsFromInitCode", { enumerable: true, get: function () { return deserializePermissionAccount_js_1.decodeParamsFromInitCode; } });
14
14
  tslib_1.__exportStar(require("./constants.js"), exports);
15
+ var toInitConfig_js_1 = require("./toInitConfig.js");
16
+ Object.defineProperty(exports, "toInitConfig", { enumerable: true, get: function () { return toInitConfig_js_1.toInitConfig; } });
15
17
  //# 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,qFAG0C;AAFtC,+IAAA,4BAA4B,OAAA;AAC5B,2IAAA,wBAAwB,OAAA;AAE5B,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,qFAG0C;AAFtC,+IAAA,4BAA4B,OAAA;AAC5B,2IAAA,wBAAwB,OAAA;AAE5B,yDAA8B;AAC9B,qDAAgD;AAAvC,+GAAA,YAAY,OAAA"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toInitConfig = void 0;
4
+ const sdk_1 = require("@zerodev/sdk");
5
+ const constants_1 = require("@zerodev/sdk/constants");
6
+ const viem_1 = require("viem");
7
+ async function toInitConfig(permissionPlugin) {
8
+ const permissionInstallFunctionData = (0, viem_1.encodeFunctionData)({
9
+ abi: sdk_1.KernelV3_3AccountAbi,
10
+ functionName: "installValidations",
11
+ args: [
12
+ [
13
+ (0, viem_1.pad)((0, viem_1.concat)([
14
+ constants_1.VALIDATOR_TYPE.PERMISSION,
15
+ permissionPlugin.getIdentifier()
16
+ ]), { size: 21, dir: "right" })
17
+ ],
18
+ [{ nonce: 1, hook: viem_1.zeroAddress }],
19
+ [await permissionPlugin.getEnableData()],
20
+ ["0x"]
21
+ ]
22
+ });
23
+ const grantAccessFunctionData = (0, viem_1.encodeFunctionData)({
24
+ abi: sdk_1.KernelV3_3AccountAbi,
25
+ functionName: "grantAccess",
26
+ args: [
27
+ (0, viem_1.pad)((0, viem_1.concat)([
28
+ constants_1.VALIDATOR_TYPE.PERMISSION,
29
+ permissionPlugin.getIdentifier()
30
+ ]), { size: 21, dir: "right" }),
31
+ (0, viem_1.toFunctionSelector)((0, viem_1.getAbiItem)({ abi: sdk_1.KernelV3_3AccountAbi, name: "execute" })),
32
+ true
33
+ ]
34
+ });
35
+ const delegateCall = await (0, sdk_1.encodeCallDataEpV07)([
36
+ {
37
+ to: constants_1.KernelVersionToAddressesMap["0.3.3"]
38
+ .accountImplementationAddress,
39
+ data: grantAccessFunctionData
40
+ }
41
+ ], "delegatecall");
42
+ return [permissionInstallFunctionData, delegateCall];
43
+ }
44
+ exports.toInitConfig = toInitConfig;
45
+ //# sourceMappingURL=toInitConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toInitConfig.js","sourceRoot":"","sources":["../toInitConfig.ts"],"names":[],"mappings":";;;AAAA,sCAAwE;AACxE,sDAG+B;AAC/B,+BAQa;AAGN,KAAK,UAAU,YAAY,CAC9B,gBAAkC;IAElC,MAAM,6BAA6B,GAAG,IAAA,yBAAkB,EAAC;QACrD,GAAG,EAAE,0BAAoB;QACzB,YAAY,EAAE,oBAAoB;QAClC,IAAI,EAAE;YACF;gBACI,IAAA,UAAG,EACC,IAAA,aAAM,EAAC;oBACH,0BAAc,CAAC,UAAU;oBACzB,gBAAgB,CAAC,aAAa,EAAE;iBACnC,CAAC,EACF,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,CAC7B;aACJ;YACD,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,kBAAW,EAAE,CAAC;YACjC,CAAC,MAAM,gBAAgB,CAAC,aAAa,EAAE,CAAC;YACxC,CAAC,IAAI,CAAC;SACT;KACJ,CAAC,CAAA;IACF,MAAM,uBAAuB,GAAG,IAAA,yBAAkB,EAAC;QAC/C,GAAG,EAAE,0BAAoB;QACzB,YAAY,EAAE,aAAa;QAC3B,IAAI,EAAE;YACF,IAAA,UAAG,EACC,IAAA,aAAM,EAAC;gBACH,0BAAc,CAAC,UAAU;gBACzB,gBAAgB,CAAC,aAAa,EAAE;aACnC,CAAC,EACF,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,CAC7B;YACD,IAAA,yBAAkB,EACd,IAAA,iBAAU,EAAC,EAAE,GAAG,EAAE,0BAAoB,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAC7D;YACD,IAAI;SACP;KACJ,CAAC,CAAA;IACF,MAAM,YAAY,GAAG,MAAM,IAAA,yBAAmB,EAC1C;QACI;YACI,EAAE,EAAE,uCAA2B,CAAC,OAAO,CAAC;iBACnC,4BAA4B;YACjC,IAAI,EAAE,uBAAuB;SAChC;KACJ,EACD,cAAc,CACjB,CAAA;IACD,OAAO,CAAC,6BAA6B,EAAE,YAAY,CAAC,CAAA;AACxD,CAAC;AAjDD,oCAiDC"}
package/_esm/index.js CHANGED
@@ -3,4 +3,5 @@ export { serializePermissionAccount } from "./serializePermissionAccount.js";
3
3
  export { serializeMultiChainPermissionAccounts } from "./serializeMultiChainPermissionAccounts.js";
4
4
  export { deserializePermissionAccount, decodeParamsFromInitCode } from "./deserializePermissionAccount.js";
5
5
  export * from "./constants.js";
6
+ export { toInitConfig } from "./toInitConfig.js";
6
7
  //# 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,EACH,4BAA4B,EAC5B,wBAAwB,EAC3B,MAAM,mCAAmC,CAAA;AAC1C,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,EACH,4BAA4B,EAC5B,wBAAwB,EAC3B,MAAM,mCAAmC,CAAA;AAC1C,cAAc,gBAAgB,CAAA;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA"}
@@ -0,0 +1,41 @@
1
+ import { KernelV3_3AccountAbi, encodeCallDataEpV07 } from "@zerodev/sdk";
2
+ import { KernelVersionToAddressesMap, VALIDATOR_TYPE } from "@zerodev/sdk/constants";
3
+ import { concat, encodeFunctionData, getAbiItem, pad, toFunctionSelector, zeroAddress } from "viem";
4
+ export async function toInitConfig(permissionPlugin) {
5
+ const permissionInstallFunctionData = encodeFunctionData({
6
+ abi: KernelV3_3AccountAbi,
7
+ functionName: "installValidations",
8
+ args: [
9
+ [
10
+ pad(concat([
11
+ VALIDATOR_TYPE.PERMISSION,
12
+ permissionPlugin.getIdentifier()
13
+ ]), { size: 21, dir: "right" })
14
+ ],
15
+ [{ nonce: 1, hook: zeroAddress }],
16
+ [await permissionPlugin.getEnableData()],
17
+ ["0x"]
18
+ ]
19
+ });
20
+ const grantAccessFunctionData = encodeFunctionData({
21
+ abi: KernelV3_3AccountAbi,
22
+ functionName: "grantAccess",
23
+ args: [
24
+ pad(concat([
25
+ VALIDATOR_TYPE.PERMISSION,
26
+ permissionPlugin.getIdentifier()
27
+ ]), { size: 21, dir: "right" }),
28
+ toFunctionSelector(getAbiItem({ abi: KernelV3_3AccountAbi, name: "execute" })),
29
+ true
30
+ ]
31
+ });
32
+ const delegateCall = await encodeCallDataEpV07([
33
+ {
34
+ to: KernelVersionToAddressesMap["0.3.3"]
35
+ .accountImplementationAddress,
36
+ data: grantAccessFunctionData
37
+ }
38
+ ], "delegatecall");
39
+ return [permissionInstallFunctionData, delegateCall];
40
+ }
41
+ //# sourceMappingURL=toInitConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toInitConfig.js","sourceRoot":"","sources":["../toInitConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AACxE,OAAO,EACH,2BAA2B,EAC3B,cAAc,EACjB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAEH,MAAM,EACN,kBAAkB,EAClB,UAAU,EACV,GAAG,EACH,kBAAkB,EAClB,WAAW,EACd,MAAM,MAAM,CAAA;AAGb,MAAM,CAAC,KAAK,UAAU,YAAY,CAC9B,gBAAkC;IAElC,MAAM,6BAA6B,GAAG,kBAAkB,CAAC;QACrD,GAAG,EAAE,oBAAoB;QACzB,YAAY,EAAE,oBAAoB;QAClC,IAAI,EAAE;YACF;gBACI,GAAG,CACC,MAAM,CAAC;oBACH,cAAc,CAAC,UAAU;oBACzB,gBAAgB,CAAC,aAAa,EAAE;iBACnC,CAAC,EACF,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,CAC7B;aACJ;YACD,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;YACjC,CAAC,MAAM,gBAAgB,CAAC,aAAa,EAAE,CAAC;YACxC,CAAC,IAAI,CAAC;SACT;KACJ,CAAC,CAAA;IACF,MAAM,uBAAuB,GAAG,kBAAkB,CAAC;QAC/C,GAAG,EAAE,oBAAoB;QACzB,YAAY,EAAE,aAAa;QAC3B,IAAI,EAAE;YACF,GAAG,CACC,MAAM,CAAC;gBACH,cAAc,CAAC,UAAU;gBACzB,gBAAgB,CAAC,aAAa,EAAE;aACnC,CAAC,EACF,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,CAC7B;YACD,kBAAkB,CACd,UAAU,CAAC,EAAE,GAAG,EAAE,oBAAoB,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAC7D;YACD,IAAI;SACP;KACJ,CAAC,CAAA;IACF,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAC1C;QACI;YACI,EAAE,EAAE,2BAA2B,CAAC,OAAO,CAAC;iBACnC,4BAA4B;YACjC,IAAI,EAAE,uBAAuB;SAChC;KACJ,EACD,cAAc,CACjB,CAAA;IACD,OAAO,CAAC,6BAA6B,EAAE,YAAY,CAAC,CAAA;AACxD,CAAC"}
package/_types/index.d.ts CHANGED
@@ -4,4 +4,5 @@ export { serializePermissionAccount } from "./serializePermissionAccount.js";
4
4
  export { type MultiChainPermissionAccountsParams, serializeMultiChainPermissionAccounts } from "./serializeMultiChainPermissionAccounts.js";
5
5
  export { deserializePermissionAccount, decodeParamsFromInitCode } from "./deserializePermissionAccount.js";
6
6
  export * from "./constants.js";
7
+ export { toInitConfig } from "./toInitConfig.js";
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -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,EACH,4BAA4B,EAC5B,wBAAwB,EAC3B,MAAM,mCAAmC,CAAA;AAC1C,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,EACH,4BAA4B,EAC5B,wBAAwB,EAC3B,MAAM,mCAAmC,CAAA;AAC1C,cAAc,gBAAgB,CAAA;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { type Hex } from "viem";
2
+ import type { PermissionPlugin } from "./types.js";
3
+ export declare function toInitConfig(permissionPlugin: PermissionPlugin): Promise<Hex[]>;
4
+ //# sourceMappingURL=toInitConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toInitConfig.d.ts","sourceRoot":"","sources":["../toInitConfig.ts"],"names":[],"mappings":"AAKA,OAAO,EACH,KAAK,GAAG,EAOX,MAAM,MAAM,CAAA;AACb,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAElD,wBAAsB,YAAY,CAC9B,gBAAgB,EAAE,gBAAgB,GACnC,OAAO,CAAC,GAAG,EAAE,CAAC,CA+ChB"}
package/index.ts CHANGED
@@ -10,3 +10,4 @@ export {
10
10
  decodeParamsFromInitCode
11
11
  } from "./deserializePermissionAccount.js"
12
12
  export * from "./constants.js"
13
+ export { toInitConfig } from "./toInitConfig.js"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zerodev/permissions",
3
- "version": "5.5.8",
3
+ "version": "5.5.10",
4
4
  "author": "ZeroDev",
5
5
  "main": "./_cjs/index.js",
6
6
  "module": "./_esm/index.js",
@@ -0,0 +1,66 @@
1
+ import { KernelV3_3AccountAbi, encodeCallDataEpV07 } from "@zerodev/sdk"
2
+ import {
3
+ KernelVersionToAddressesMap,
4
+ VALIDATOR_TYPE
5
+ } from "@zerodev/sdk/constants"
6
+ import {
7
+ type Hex,
8
+ concat,
9
+ encodeFunctionData,
10
+ getAbiItem,
11
+ pad,
12
+ toFunctionSelector,
13
+ zeroAddress
14
+ } from "viem"
15
+ import type { PermissionPlugin } from "./types.js"
16
+
17
+ export async function toInitConfig(
18
+ permissionPlugin: PermissionPlugin
19
+ ): Promise<Hex[]> {
20
+ const permissionInstallFunctionData = encodeFunctionData({
21
+ abi: KernelV3_3AccountAbi,
22
+ functionName: "installValidations",
23
+ args: [
24
+ [
25
+ pad(
26
+ concat([
27
+ VALIDATOR_TYPE.PERMISSION,
28
+ permissionPlugin.getIdentifier()
29
+ ]),
30
+ { size: 21, dir: "right" }
31
+ )
32
+ ],
33
+ [{ nonce: 1, hook: zeroAddress }],
34
+ [await permissionPlugin.getEnableData()],
35
+ ["0x"]
36
+ ]
37
+ })
38
+ const grantAccessFunctionData = encodeFunctionData({
39
+ abi: KernelV3_3AccountAbi,
40
+ functionName: "grantAccess",
41
+ args: [
42
+ pad(
43
+ concat([
44
+ VALIDATOR_TYPE.PERMISSION,
45
+ permissionPlugin.getIdentifier()
46
+ ]),
47
+ { size: 21, dir: "right" }
48
+ ),
49
+ toFunctionSelector(
50
+ getAbiItem({ abi: KernelV3_3AccountAbi, name: "execute" })
51
+ ),
52
+ true
53
+ ]
54
+ })
55
+ const delegateCall = await encodeCallDataEpV07(
56
+ [
57
+ {
58
+ to: KernelVersionToAddressesMap["0.3.3"]
59
+ .accountImplementationAddress,
60
+ data: grantAccessFunctionData
61
+ }
62
+ ],
63
+ "delegatecall"
64
+ )
65
+ return [permissionInstallFunctionData, delegateCall]
66
+ }