@zerodev/permissions 5.4.7 → 5.4.9

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.
@@ -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 deployWithFactoryFunctionData = (0, viem_1.decodeFunctionData)({
76
- abi: sdk_1.KernelFactoryStakerAbi,
77
- data: `0x${initCode.slice(42)}`
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":"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"}
1
+ {"version":3,"file":"deserializePermissionAccount.js","sourceRoot":"","sources":["../deserializePermissionAccount.ts"],"names":[],"mappings":"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"}
package/_cjs/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.deserializePermissionAccount = exports.serializeMultiChainPermissionAccounts = exports.serializePermissionAccount = exports.toPermissionValidator = void 0;
3
+ 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; } });
@@ -10,5 +10,6 @@ var serializeMultiChainPermissionAccounts_js_1 = require("./serializeMultiChainP
10
10
  Object.defineProperty(exports, "serializeMultiChainPermissionAccounts", { enumerable: true, get: function () { return serializeMultiChainPermissionAccounts_js_1.serializeMultiChainPermissionAccounts; } });
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
+ Object.defineProperty(exports, "decodeParamsFromInitCode", { enumerable: true, get: function () { return deserializePermissionAccount_js_1.decodeParamsFromInitCode; } });
13
14
  tslib_1.__exportStar(require("./constants.js"), exports);
14
15
  //# 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,qFAA0G;AAAjG,+IAAA,4BAA4B,OAAA;AAAE,2IAAA,wBAAwB,OAAA;AAC/D,yDAA8B"}
@@ -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 deployWithFactoryFunctionData = decodeFunctionData({
71
- abi: KernelFactoryStakerAbi,
72
- data: `0x${initCode.slice(42)}`
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":"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"}
1
+ {"version":3,"file":"deserializePermissionAccount.js","sourceRoot":"","sources":["../deserializePermissionAccount.ts"],"names":[],"mappings":"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"}
package/_esm/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  export { toPermissionValidator } from "./toPermissionValidator.js";
2
2
  export { serializePermissionAccount } from "./serializePermissionAccount.js";
3
3
  export { serializeMultiChainPermissionAccounts } from "./serializeMultiChainPermissionAccounts.js";
4
- export { deserializePermissionAccount } from "./deserializePermissionAccount.js";
4
+ export { deserializePermissionAccount, decodeParamsFromInitCode } from "./deserializePermissionAccount.js";
5
5
  export * from "./constants.js";
6
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,wBAAwB,EAAE,MAAM,mCAAmC,CAAA;AAC1G,cAAc,gBAAgB,CAAA"}
@@ -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":"AAOA,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,uFAqDhC,CAAA;AAED,eAAO,MAAM,sBAAsB,WAAkB,MAAM,oBAiB1D,CAAA;AAED,eAAO,MAAM,wBAAwB,aACvB,GAAG,iBACE,mBAAmB;;;CA0CrC,CAAA"}
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"}
package/_types/index.d.ts CHANGED
@@ -2,6 +2,6 @@ export type * from "./types.js";
2
2
  export { toPermissionValidator } from "./toPermissionValidator.js";
3
3
  export { serializePermissionAccount } from "./serializePermissionAccount.js";
4
4
  export { type MultiChainPermissionAccountsParams, serializeMultiChainPermissionAccounts } from "./serializeMultiChainPermissionAccounts.js";
5
- export { deserializePermissionAccount } from "./deserializePermissionAccount.js";
5
+ export { deserializePermissionAccount, decodeParamsFromInitCode } from "./deserializePermissionAccount.js";
6
6
  export * from "./constants.js";
7
7
  //# 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,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,wBAAwB,EAAE,MAAM,mCAAmC,CAAA;AAC1G,cAAc,gBAAgB,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 deployWithFactoryFunctionData = decodeFunctionData({
137
- abi: KernelFactoryStakerAbi,
138
- data: `0x${initCode.slice(42)}`
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
  }
package/index.ts CHANGED
@@ -5,5 +5,5 @@ export {
5
5
  type MultiChainPermissionAccountsParams,
6
6
  serializeMultiChainPermissionAccounts
7
7
  } from "./serializeMultiChainPermissionAccounts.js"
8
- export { deserializePermissionAccount } from "./deserializePermissionAccount.js"
8
+ export { deserializePermissionAccount, decodeParamsFromInitCode } from "./deserializePermissionAccount.js"
9
9
  export * from "./constants.js"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zerodev/permissions",
3
- "version": "5.4.7",
3
+ "version": "5.4.9",
4
4
  "author": "ZeroDev",
5
5
  "main": "./_cjs/index.js",
6
6
  "module": "./_esm/index.js",