@zerodev/permissions 5.2.1-alpha.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/constants.js +17 -0
- package/_cjs/constants.js.map +1 -0
- package/_cjs/deserializePermissionAccount.js +94 -0
- package/_cjs/deserializePermissionAccount.js.map +1 -0
- package/_cjs/index.js +12 -0
- package/_cjs/index.js.map +1 -0
- package/_cjs/package.json +1 -0
- package/_cjs/policies/callPolicyUtils.js +87 -0
- package/_cjs/policies/callPolicyUtils.js.map +1 -0
- package/_cjs/policies/index.js +16 -0
- package/_cjs/policies/index.js.map +1 -0
- package/_cjs/policies/toCallPolicy.js +42 -0
- package/_cjs/policies/toCallPolicy.js.map +1 -0
- package/_cjs/policies/toGasPolicy.js +30 -0
- package/_cjs/policies/toGasPolicy.js.map +1 -0
- package/_cjs/policies/toRateLimitPolicy.js +30 -0
- package/_cjs/policies/toRateLimitPolicy.js.map +1 -0
- package/_cjs/policies/toSignatureCallerPolicy.js +24 -0
- package/_cjs/policies/toSignatureCallerPolicy.js.map +1 -0
- package/_cjs/policies/toSudoPolicy.js +22 -0
- package/_cjs/policies/toSudoPolicy.js.map +1 -0
- package/_cjs/policies/types.js +19 -0
- package/_cjs/policies/types.js.map +1 -0
- package/_cjs/policies/utils/toPolicyId.js +11 -0
- package/_cjs/policies/utils/toPolicyId.js.map +1 -0
- package/_cjs/serializePermissionAccount.js +27 -0
- package/_cjs/serializePermissionAccount.js.map +1 -0
- package/_cjs/signers/index.js +12 -0
- package/_cjs/signers/index.js.map +1 -0
- package/_cjs/signers/toECDSASigner.js +39 -0
- package/_cjs/signers/toECDSASigner.js.map +1 -0
- package/_cjs/signers/toWebAuthnPubKey.js +97 -0
- package/_cjs/signers/toWebAuthnPubKey.js.map +1 -0
- package/_cjs/signers/toWebAuthnSigner.js +154 -0
- package/_cjs/signers/toWebAuthnSigner.js.map +1 -0
- package/_cjs/signers/utils/toSignerId.js +9 -0
- package/_cjs/signers/utils/toSignerId.js.map +1 -0
- package/_cjs/signers/webAuthnUtils.js +45 -0
- package/_cjs/signers/webAuthnUtils.js.map +1 -0
- package/_cjs/toPermissionValidator.js +102 -0
- package/_cjs/toPermissionValidator.js.map +1 -0
- package/_cjs/types.js +3 -0
- package/_cjs/types.js.map +1 -0
- package/_cjs/utils.js +37 -0
- package/_cjs/utils.js.map +1 -0
- package/_esm/constants.js +14 -0
- package/_esm/constants.js.map +1 -0
- package/_esm/deserializePermissionAccount.js +89 -0
- package/_esm/deserializePermissionAccount.js.map +1 -0
- package/_esm/index.js +5 -0
- package/_esm/index.js.map +1 -0
- package/_esm/package.json +1 -0
- package/_esm/policies/callPolicyUtils.js +82 -0
- package/_esm/policies/callPolicyUtils.js.map +1 -0
- package/_esm/policies/index.js +7 -0
- package/_esm/policies/index.js.map +1 -0
- package/_esm/policies/toCallPolicy.js +38 -0
- package/_esm/policies/toCallPolicy.js.map +1 -0
- package/_esm/policies/toGasPolicy.js +26 -0
- package/_esm/policies/toGasPolicy.js.map +1 -0
- package/_esm/policies/toRateLimitPolicy.js +26 -0
- package/_esm/policies/toRateLimitPolicy.js.map +1 -0
- package/_esm/policies/toSignatureCallerPolicy.js +20 -0
- package/_esm/policies/toSignatureCallerPolicy.js.map +1 -0
- package/_esm/policies/toSudoPolicy.js +18 -0
- package/_esm/policies/toSudoPolicy.js.map +1 -0
- package/_esm/policies/types.js +17 -0
- package/_esm/policies/types.js.map +1 -0
- package/_esm/policies/utils/toPolicyId.js +7 -0
- package/_esm/policies/utils/toPolicyId.js.map +1 -0
- package/_esm/serializePermissionAccount.js +23 -0
- package/_esm/serializePermissionAccount.js.map +1 -0
- package/_esm/signers/index.js +5 -0
- package/_esm/signers/index.js.map +1 -0
- package/_esm/signers/toECDSASigner.js +36 -0
- package/_esm/signers/toECDSASigner.js.map +1 -0
- package/_esm/signers/toWebAuthnPubKey.js +107 -0
- package/_esm/signers/toWebAuthnPubKey.js.map +1 -0
- package/_esm/signers/toWebAuthnSigner.js +164 -0
- package/_esm/signers/toWebAuthnSigner.js.map +1 -0
- package/_esm/signers/utils/toSignerId.js +5 -0
- package/_esm/signers/utils/toSignerId.js.map +1 -0
- package/_esm/signers/webAuthnUtils.js +41 -0
- package/_esm/signers/webAuthnUtils.js.map +1 -0
- package/_esm/toPermissionValidator.js +98 -0
- package/_esm/toPermissionValidator.js.map +1 -0
- package/_esm/types.js +3 -0
- package/_esm/types.js.map +1 -0
- package/_esm/utils.js +32 -0
- package/_esm/utils.js.map +1 -0
- package/_types/constants.d.ts +13 -0
- package/_types/constants.d.ts.map +1 -0
- package/_types/deserializePermissionAccount.d.ts +13 -0
- package/_types/deserializePermissionAccount.d.ts.map +1 -0
- package/_types/index.d.ts +6 -0
- package/_types/index.d.ts.map +1 -0
- package/_types/policies/callPolicyUtils.d.ts +5 -0
- package/_types/policies/callPolicyUtils.d.ts.map +1 -0
- package/_types/policies/index.d.ts +7 -0
- package/_types/policies/index.d.ts.map +1 -0
- package/_types/policies/toCallPolicy.d.ts +9 -0
- package/_types/policies/toCallPolicy.d.ts.map +1 -0
- package/_types/policies/toGasPolicy.d.ts +10 -0
- package/_types/policies/toGasPolicy.d.ts.map +1 -0
- package/_types/policies/toRateLimitPolicy.d.ts +9 -0
- package/_types/policies/toRateLimitPolicy.d.ts.map +1 -0
- package/_types/policies/toSignatureCallerPolicy.d.ts +8 -0
- package/_types/policies/toSignatureCallerPolicy.d.ts.map +1 -0
- package/_types/policies/toSudoPolicy.d.ts +6 -0
- package/_types/policies/toSudoPolicy.d.ts.map +1 -0
- package/_types/policies/types.d.ts +56 -0
- package/_types/policies/types.d.ts.map +1 -0
- package/_types/policies/utils/toPolicyId.d.ts +4 -0
- package/_types/policies/utils/toPolicyId.d.ts.map +1 -0
- package/_types/serializePermissionAccount.d.ts +5 -0
- package/_types/serializePermissionAccount.d.ts.map +1 -0
- package/_types/signers/index.d.ts +5 -0
- package/_types/signers/index.d.ts.map +1 -0
- package/_types/signers/toECDSASigner.d.ts +8 -0
- package/_types/signers/toECDSASigner.d.ts.map +1 -0
- package/_types/signers/toWebAuthnPubKey.d.ts +11 -0
- package/_types/signers/toWebAuthnPubKey.d.ts.map +1 -0
- package/_types/signers/toWebAuthnSigner.d.ts +16 -0
- package/_types/signers/toWebAuthnSigner.d.ts.map +1 -0
- package/_types/signers/utils/toSignerId.d.ts +4 -0
- package/_types/signers/utils/toSignerId.d.ts.map +1 -0
- package/_types/signers/webAuthnUtils.d.ts +13 -0
- package/_types/signers/webAuthnUtils.d.ts.map +1 -0
- package/_types/toPermissionValidator.d.ts +5 -0
- package/_types/toPermissionValidator.d.ts.map +1 -0
- package/_types/types.d.ts +49 -0
- package/_types/types.d.ts.map +1 -0
- package/_types/utils.d.ts +8 -0
- package/_types/utils.d.ts.map +1 -0
- package/constants.ts +17 -0
- package/deserializePermissionAccount.ts +119 -0
- package/index.ts +5 -0
- package/package.json +63 -0
- package/policies/callPolicyUtils.ts +122 -0
- package/policies/index.ts +12 -0
- package/policies/toCallPolicy.ts +65 -0
- package/policies/toGasPolicy.ts +44 -0
- package/policies/toRateLimitPolicy.ts +43 -0
- package/policies/toSignatureCallerPolicy.ts +34 -0
- package/policies/toSudoPolicy.ts +27 -0
- package/policies/types.ts +118 -0
- package/policies/utils/toPolicyId.ts +13 -0
- package/serializePermissionAccount.ts +38 -0
- package/signers/index.ts +10 -0
- package/signers/toECDSASigner.ts +61 -0
- package/signers/toWebAuthnPubKey.ts +152 -0
- package/signers/toWebAuthnSigner.ts +245 -0
- package/signers/utils/toSignerId.ts +9 -0
- package/signers/webAuthnUtils.ts +54 -0
- package/toPermissionValidator.ts +152 -0
- package/types.ts +71 -0
- package/utils.ts +42 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PolicyFlags = exports.SUDO_POLICY_CONTRACT = exports.WEBAUTHN_SIGNER_CONTRACT = exports.RATE_LIMIT_POLICY_CONTRACT = exports.SIGNATURE_POLICY_CONTRACT = exports.GAS_POLICY_CONTRACT = exports.ECDSA_SIGNER_CONTRACT = exports.CALL_POLICY_CONTRACT = void 0;
|
|
4
|
+
exports.CALL_POLICY_CONTRACT = "0xc4a1aaED053Fc02717358a377A2d695bCdFA3B8A";
|
|
5
|
+
exports.ECDSA_SIGNER_CONTRACT = "0x8Ed04D0B000777c87e701696cf6B9710733Df96a";
|
|
6
|
+
exports.GAS_POLICY_CONTRACT = "0x50FD84A0A1D1683e1dafC5009876B38773fc8E3A";
|
|
7
|
+
exports.SIGNATURE_POLICY_CONTRACT = "0x19a3E696fFdFEDfadb22297DB223B9ca501523dD";
|
|
8
|
+
exports.RATE_LIMIT_POLICY_CONTRACT = "0xdB6e5F9a18f0F6Fa0861cB60f94Cf7f7374E8270";
|
|
9
|
+
exports.WEBAUTHN_SIGNER_CONTRACT = "0xD71E0e2AFf9D4d93b20F615e6aC2ac7e0795b472";
|
|
10
|
+
exports.SUDO_POLICY_CONTRACT = "0x6D14FC570e2bE7D74a6926ea54f190d690855851";
|
|
11
|
+
var PolicyFlags;
|
|
12
|
+
(function (PolicyFlags) {
|
|
13
|
+
PolicyFlags["FOR_ALL_VALIDATION"] = "0x0000";
|
|
14
|
+
PolicyFlags["NOT_FOR_VALIDATE_USEROP"] = "0x0001";
|
|
15
|
+
PolicyFlags["NOT_FOR_VALIDATE_SIG"] = "0x0002";
|
|
16
|
+
})(PolicyFlags || (exports.PolicyFlags = PolicyFlags = {}));
|
|
17
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,oBAAoB,GAAG,4CAA4C,CAAA;AACnE,QAAA,qBAAqB,GAC9B,4CAA4C,CAAA;AACnC,QAAA,mBAAmB,GAAG,4CAA4C,CAAA;AAClE,QAAA,yBAAyB,GAClC,4CAA4C,CAAA;AACnC,QAAA,0BAA0B,GACnC,4CAA4C,CAAA;AACnC,QAAA,wBAAwB,GACjC,4CAA4C,CAAA;AACnC,QAAA,oBAAoB,GAAG,4CAA4C,CAAA;AAEhF,IAAY,WAIX;AAJD,WAAY,WAAW;IACnB,4CAA6B,CAAA;IAC7B,iDAAkC,CAAA;IAClC,8CAA+B,CAAA;AACnC,CAAC,EAJW,WAAW,2BAAX,WAAW,QAItB"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.decodeParamsFromInitCode = exports.createPolicyFromParams = exports.deserializePermissionAccount = void 0;
|
|
4
|
+
const sdk_1 = require("@zerodev/sdk");
|
|
5
|
+
const sdk_2 = require("@zerodev/sdk");
|
|
6
|
+
const accounts_1 = require("@zerodev/sdk/accounts");
|
|
7
|
+
const permissionless_1 = require("permissionless");
|
|
8
|
+
const viem_1 = require("viem");
|
|
9
|
+
const accounts_2 = require("viem/accounts");
|
|
10
|
+
const index_js_1 = require("./policies/index.js");
|
|
11
|
+
const toECDSASigner_js_1 = require("./signers/toECDSASigner.js");
|
|
12
|
+
const toPermissionValidator_js_1 = require("./toPermissionValidator.js");
|
|
13
|
+
const utils_js_1 = require("./utils.js");
|
|
14
|
+
const deserializePermissionAccount = async (client, modularPermissionAccountParams, modularSigner, entryPointAddress = permissionless_1.ENTRYPOINT_ADDRESS_V06) => {
|
|
15
|
+
const params = (0, utils_js_1.deserializePermissionAccountParams)(modularPermissionAccountParams);
|
|
16
|
+
let signer;
|
|
17
|
+
if (params.privateKey)
|
|
18
|
+
signer = (0, toECDSASigner_js_1.toECDSASigner)({
|
|
19
|
+
signer: (0, accounts_2.privateKeyToAccount)(params.privateKey)
|
|
20
|
+
});
|
|
21
|
+
else if (modularSigner)
|
|
22
|
+
signer = modularSigner;
|
|
23
|
+
else
|
|
24
|
+
throw new Error("No signer or serialized sessionKey provided");
|
|
25
|
+
const modularPermissionPlugin = await (0, toPermissionValidator_js_1.toPermissionValidator)(client, {
|
|
26
|
+
signer,
|
|
27
|
+
policies: await Promise.all(params.permissionParams.policies?.map((policy) => (0, exports.createPolicyFromParams)(policy)) || []),
|
|
28
|
+
entryPoint: entryPointAddress
|
|
29
|
+
});
|
|
30
|
+
const { index, validatorInitData } = (0, exports.decodeParamsFromInitCode)(params.accountParams.initCode);
|
|
31
|
+
const kernelPluginManager = await (0, accounts_1.toKernelPluginManager)(client, {
|
|
32
|
+
regular: modularPermissionPlugin,
|
|
33
|
+
pluginEnableSignature: params.enableSignature,
|
|
34
|
+
validatorInitData,
|
|
35
|
+
action: params.action,
|
|
36
|
+
entryPoint: entryPointAddress,
|
|
37
|
+
...params.validityData
|
|
38
|
+
});
|
|
39
|
+
return (0, sdk_1.createKernelAccount)(client, {
|
|
40
|
+
plugins: kernelPluginManager,
|
|
41
|
+
index,
|
|
42
|
+
deployedAccountAddress: params.accountParams.accountAddress,
|
|
43
|
+
entryPoint: entryPointAddress
|
|
44
|
+
});
|
|
45
|
+
};
|
|
46
|
+
exports.deserializePermissionAccount = deserializePermissionAccount;
|
|
47
|
+
const createPolicyFromParams = async (policy) => {
|
|
48
|
+
switch (policy.policyParams.type) {
|
|
49
|
+
case "call":
|
|
50
|
+
return await (0, index_js_1.toCallPolicy)(policy.policyParams);
|
|
51
|
+
case "gas":
|
|
52
|
+
return await (0, index_js_1.toGasPolicy)(policy.policyParams);
|
|
53
|
+
case "rate-limit":
|
|
54
|
+
return await (0, index_js_1.toRateLimitPolicy)(policy.policyParams);
|
|
55
|
+
case "signature-caller":
|
|
56
|
+
return await (0, index_js_1.toSignatureCallerPolicy)(policy.policyParams);
|
|
57
|
+
case "sudo":
|
|
58
|
+
return await (0, index_js_1.toSudoPolicy)(policy.policyParams);
|
|
59
|
+
default:
|
|
60
|
+
throw new Error("Unsupported policy type");
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
exports.createPolicyFromParams = createPolicyFromParams;
|
|
64
|
+
const decodeParamsFromInitCode = (initCode) => {
|
|
65
|
+
let index;
|
|
66
|
+
let validatorInitData;
|
|
67
|
+
const createAccountFunctionData = (0, viem_1.decodeFunctionData)({
|
|
68
|
+
abi: sdk_2.KernelFactoryAbi,
|
|
69
|
+
data: `0x${initCode.slice(42)}`
|
|
70
|
+
});
|
|
71
|
+
if (!createAccountFunctionData)
|
|
72
|
+
throw new Error("Invalid initCode");
|
|
73
|
+
if (createAccountFunctionData.functionName === "createAccount") {
|
|
74
|
+
index = createAccountFunctionData.args[2];
|
|
75
|
+
const initializeFunctionData = (0, viem_1.decodeFunctionData)({
|
|
76
|
+
abi: sdk_1.KernelV3AccountAbi,
|
|
77
|
+
data: createAccountFunctionData.args[1]
|
|
78
|
+
});
|
|
79
|
+
if (!initializeFunctionData)
|
|
80
|
+
throw new Error("Invalid initCode");
|
|
81
|
+
if (initializeFunctionData.functionName === "initialize") {
|
|
82
|
+
validatorInitData = {
|
|
83
|
+
validatorAddress: initializeFunctionData.args[0],
|
|
84
|
+
identifier: initializeFunctionData.args[0],
|
|
85
|
+
enableData: initializeFunctionData.args[2]
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
if (index === undefined || validatorInitData === undefined)
|
|
90
|
+
throw new Error("Invalid initCode");
|
|
91
|
+
return { index, validatorInitData };
|
|
92
|
+
};
|
|
93
|
+
exports.decodeParamsFromInitCode = decodeParamsFromInitCode;
|
|
94
|
+
//# sourceMappingURL=deserializePermissionAccount.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deserializePermissionAccount.js","sourceRoot":"","sources":["../deserializePermissionAccount.ts"],"names":[],"mappings":"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"}
|
package/_cjs/index.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.deserializePermissionAccount = exports.serializePermissionAccount = exports.toPermissionValidator = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
var toPermissionValidator_js_1 = require("./toPermissionValidator.js");
|
|
6
|
+
Object.defineProperty(exports, "toPermissionValidator", { enumerable: true, get: function () { return toPermissionValidator_js_1.toPermissionValidator; } });
|
|
7
|
+
var serializePermissionAccount_js_1 = require("./serializePermissionAccount.js");
|
|
8
|
+
Object.defineProperty(exports, "serializePermissionAccount", { enumerable: true, get: function () { return serializePermissionAccount_js_1.serializePermissionAccount; } });
|
|
9
|
+
var deserializePermissionAccount_js_1 = require("./deserializePermissionAccount.js");
|
|
10
|
+
Object.defineProperty(exports, "deserializePermissionAccount", { enumerable: true, get: function () { return deserializePermissionAccount_js_1.deserializePermissionAccount; } });
|
|
11
|
+
tslib_1.__exportStar(require("./constants.js"), exports);
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +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,qFAAgF;AAAvE,+IAAA,4BAA4B,OAAA;AACrC,yDAA8B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"commonjs"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.encodePermissionData = exports.getPermissionFromABI = void 0;
|
|
4
|
+
const viem_1 = require("viem");
|
|
5
|
+
function getPermissionFromABI({ abi, args, functionName }) {
|
|
6
|
+
if (!abi || !functionName) {
|
|
7
|
+
return {
|
|
8
|
+
selector: undefined,
|
|
9
|
+
rules: undefined
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
const abiItem = (0, viem_1.getAbiItem)({
|
|
13
|
+
abi,
|
|
14
|
+
args,
|
|
15
|
+
name: functionName
|
|
16
|
+
});
|
|
17
|
+
if (abiItem?.type !== "function") {
|
|
18
|
+
throw Error(`${functionName} not found in abi`);
|
|
19
|
+
}
|
|
20
|
+
const functionSelector = (0, viem_1.toFunctionSelector)(abiItem);
|
|
21
|
+
let paramRules = [];
|
|
22
|
+
if (args && Array.isArray(args)) {
|
|
23
|
+
paramRules = args
|
|
24
|
+
.map((arg, i) => arg && {
|
|
25
|
+
param: (0, viem_1.pad)((0, viem_1.isHex)(arg.value)
|
|
26
|
+
? arg.value
|
|
27
|
+
: (0, viem_1.toHex)(arg.value), { size: 32 }),
|
|
28
|
+
offset: i * 32,
|
|
29
|
+
condition: arg.condition
|
|
30
|
+
})
|
|
31
|
+
.filter((rule) => rule);
|
|
32
|
+
}
|
|
33
|
+
return {
|
|
34
|
+
selector: functionSelector,
|
|
35
|
+
rules: paramRules
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
exports.getPermissionFromABI = getPermissionFromABI;
|
|
39
|
+
const encodePermissionData = (permission) => {
|
|
40
|
+
const permissionParam = {
|
|
41
|
+
components: [
|
|
42
|
+
{
|
|
43
|
+
internalType: "enum CallType",
|
|
44
|
+
name: "callType",
|
|
45
|
+
type: "bytes1"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
name: "target",
|
|
49
|
+
type: "address"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
name: "selector",
|
|
53
|
+
type: "bytes4"
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
name: "valueLimit",
|
|
57
|
+
type: "uint256"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
components: [
|
|
61
|
+
{
|
|
62
|
+
internalType: "enum ParamCondition",
|
|
63
|
+
name: "condition",
|
|
64
|
+
type: "uint8"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
name: "offset",
|
|
68
|
+
type: "uint64"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
name: "param",
|
|
72
|
+
type: "bytes32"
|
|
73
|
+
}
|
|
74
|
+
],
|
|
75
|
+
name: "rules",
|
|
76
|
+
type: "tuple[]"
|
|
77
|
+
}
|
|
78
|
+
],
|
|
79
|
+
name: "permission",
|
|
80
|
+
type: "tuple[]"
|
|
81
|
+
};
|
|
82
|
+
const params = [permissionParam];
|
|
83
|
+
const values = [permission];
|
|
84
|
+
return (0, viem_1.encodeAbiParameters)(params, values);
|
|
85
|
+
};
|
|
86
|
+
exports.encodePermissionData = encodePermissionData;
|
|
87
|
+
//# sourceMappingURL=callPolicyUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"callPolicyUtils.js","sourceRoot":"","sources":["../../policies/callPolicyUtils.ts"],"names":[],"mappings":";;;AAAA,+BAWa;AAQb,SAAgB,oBAAoB,CAGlC,EACE,GAAG,EACH,IAAI,EACJ,YAAY,EAC4C;IAIxD,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACxB,OAAO;YACH,QAAQ,EAAE,SAAS;YACnB,KAAK,EAAE,SAAS;SACnB,CAAA;IACL,CAAC;IACD,MAAM,OAAO,GAAG,IAAA,iBAAU,EAAC;QACvB,GAAG;QACH,IAAI;QACJ,IAAI,EAAE,YAAY;KACG,CAAC,CAAA;IAC1B,IAAI,OAAO,EAAE,IAAI,KAAK,UAAU,EAAE,CAAC;QAC/B,MAAM,KAAK,CAAC,GAAG,YAAY,mBAAmB,CAAC,CAAA;IACnD,CAAC;IACD,MAAM,gBAAgB,GAAG,IAAA,yBAAkB,EAAC,OAAO,CAAC,CAAA;IACpD,IAAI,UAAU,GAAgB,EAAE,CAAA;IAChC,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,UAAU,GAAI,IAA4C;aACrD,GAAG,CACA,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CACP,GAAG,IAAI;YACH,KAAK,EAAE,IAAA,UAAG,EACN,IAAA,YAAK,EAAC,GAAG,CAAC,KAAK,CAAC;gBACZ,CAAC,CAAC,GAAG,CAAC,KAAK;gBACX,CAAC,CAAC,IAAA,YAAK,EACD,GAAG,CAAC,KAAoC,CAC3C,EACP,EAAE,IAAI,EAAE,EAAE,EAAE,CACf;YACD,MAAM,EAAE,CAAC,GAAG,EAAE;YACd,SAAS,EAAE,GAAG,CAAC,SAAS;SAC3B,CACR;aACA,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAgB,CAAA;IAC9C,CAAC;IACD,OAAO;QACH,QAAQ,EAAE,gBAAgB;QAC1B,KAAK,EAAE,UAAU;KACpB,CAAA;AACL,CAAC;AAlDD,oDAkDC;AAEM,MAAM,oBAAoB,GAAG,CAChC,UAA6C,EAC1C,EAAE;IACL,MAAM,eAAe,GAAG;QACpB,UAAU,EAAE;YACR;gBACI,YAAY,EAAE,eAAe;gBAC7B,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,QAAQ;aACjB;YACD;gBACI,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,QAAQ;aACjB;YACD;gBACI,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,UAAU,EAAE;oBACR;wBACI,YAAY,EAAE,qBAAqB;wBACnC,IAAI,EAAE,WAAW;wBACjB,IAAI,EAAE,OAAO;qBAChB;oBACD;wBACI,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,QAAQ;qBACjB;oBAED;wBACI,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE,SAAS;qBAClB;iBACJ;gBACD,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;aAClB;SACJ;QACD,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,SAAS;KAClB,CAAA;IACD,MAAM,MAAM,GAAG,CAAC,eAAe,CAAC,CAAA;IAChC,MAAM,MAAM,GAAG,CAAC,UAAU,CAAC,CAAA;IAE3B,OAAO,IAAA,0BAAmB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAC9C,CAAC,CAAA;AAlDY,QAAA,oBAAoB,wBAkDhC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toSudoPolicy = exports.toPolicyId = exports.toCallPolicy = exports.toRateLimitPolicy = exports.toSignatureCallerPolicy = exports.toGasPolicy = void 0;
|
|
4
|
+
var toGasPolicy_js_1 = require("./toGasPolicy.js");
|
|
5
|
+
Object.defineProperty(exports, "toGasPolicy", { enumerable: true, get: function () { return toGasPolicy_js_1.toGasPolicy; } });
|
|
6
|
+
var toSignatureCallerPolicy_js_1 = require("./toSignatureCallerPolicy.js");
|
|
7
|
+
Object.defineProperty(exports, "toSignatureCallerPolicy", { enumerable: true, get: function () { return toSignatureCallerPolicy_js_1.toSignatureCallerPolicy; } });
|
|
8
|
+
var toRateLimitPolicy_js_1 = require("./toRateLimitPolicy.js");
|
|
9
|
+
Object.defineProperty(exports, "toRateLimitPolicy", { enumerable: true, get: function () { return toRateLimitPolicy_js_1.toRateLimitPolicy; } });
|
|
10
|
+
var toCallPolicy_js_1 = require("./toCallPolicy.js");
|
|
11
|
+
Object.defineProperty(exports, "toCallPolicy", { enumerable: true, get: function () { return toCallPolicy_js_1.toCallPolicy; } });
|
|
12
|
+
var toPolicyId_js_1 = require("./utils/toPolicyId.js");
|
|
13
|
+
Object.defineProperty(exports, "toPolicyId", { enumerable: true, get: function () { return toPolicyId_js_1.toPolicyId; } });
|
|
14
|
+
var toSudoPolicy_js_1 = require("./toSudoPolicy.js");
|
|
15
|
+
Object.defineProperty(exports, "toSudoPolicy", { enumerable: true, get: function () { return toSudoPolicy_js_1.toSudoPolicy; } });
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../policies/index.ts"],"names":[],"mappings":";;;AAAA,mDAAoE;AAA3D,6GAAA,WAAW,OAAA;AACpB,2EAGqC;AAFjC,qIAAA,uBAAuB,OAAA;AAG3B,+DAG+B;AAF3B,yHAAA,iBAAiB,OAAA;AAGrB,qDAAuE;AAA9D,+GAAA,YAAY,OAAA;AACrB,uDAAkD;AAAzC,2GAAA,UAAU,OAAA;AACnB,qDAAuE;AAA9D,+GAAA,YAAY,OAAA"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toCallPolicy = void 0;
|
|
4
|
+
const viem_1 = require("viem");
|
|
5
|
+
const constants_js_1 = require("../constants.js");
|
|
6
|
+
const constants_js_2 = require("../constants.js");
|
|
7
|
+
const callPolicyUtils_js_1 = require("./callPolicyUtils.js");
|
|
8
|
+
const types_js_1 = require("./types.js");
|
|
9
|
+
async function toCallPolicy({ policyAddress = constants_js_2.CALL_POLICY_CONTRACT, policyFlag = constants_js_1.PolicyFlags.FOR_ALL_VALIDATION, permissions = [], type = "call" }) {
|
|
10
|
+
const generatedPermissionParams = permissions?.map((perm) => (0, callPolicyUtils_js_1.getPermissionFromABI)({
|
|
11
|
+
abi: perm.abi,
|
|
12
|
+
functionName: perm.functionName,
|
|
13
|
+
args: perm.args
|
|
14
|
+
}));
|
|
15
|
+
permissions =
|
|
16
|
+
permissions?.map((perm, index) => ({
|
|
17
|
+
...perm,
|
|
18
|
+
callType: perm.callType ?? types_js_1.CallType.CALL,
|
|
19
|
+
selector: perm.selector ??
|
|
20
|
+
generatedPermissionParams?.[index]?.selector ??
|
|
21
|
+
(0, viem_1.pad)("0x", { size: 4 }),
|
|
22
|
+
valueLimit: perm.valueLimit ?? 0n,
|
|
23
|
+
rules: perm.rules ?? generatedPermissionParams?.[index]?.rules ?? []
|
|
24
|
+
})) ?? [];
|
|
25
|
+
const encodedPermissionData = (0, callPolicyUtils_js_1.encodePermissionData)(permissions);
|
|
26
|
+
return {
|
|
27
|
+
getPolicyData: () => {
|
|
28
|
+
return encodedPermissionData;
|
|
29
|
+
},
|
|
30
|
+
getPolicyInfoInBytes: () => {
|
|
31
|
+
return (0, viem_1.concatHex)([policyFlag, policyAddress]);
|
|
32
|
+
},
|
|
33
|
+
policyParams: {
|
|
34
|
+
type,
|
|
35
|
+
policyAddress,
|
|
36
|
+
policyFlag,
|
|
37
|
+
permissions
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
exports.toCallPolicy = toCallPolicy;
|
|
42
|
+
//# sourceMappingURL=toCallPolicy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toCallPolicy.js","sourceRoot":"","sources":["../../policies/toCallPolicy.ts"],"names":[],"mappings":";;;AACA,+BAAqC;AACrC,kDAA6C;AAC7C,kDAAsD;AAEtD,6DAG6B;AAC7B,yCAAsD;AAU/C,KAAK,UAAU,YAAY,CAGhC,EACE,aAAa,GAAG,mCAAoB,EACpC,UAAU,GAAG,0BAAW,CAAC,kBAAkB,EAC3C,WAAW,GAAG,EAAE,EAChB,IAAI,GAAG,MAAM,EACuB;IACpC,MAAM,yBAAyB,GAAG,WAAW,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACxD,IAAA,yCAAoB,EAAC;QACjB,GAAG,EAAE,IAAI,CAAC,GAAU;QACpB,YAAY,EAAE,IAAI,CAAC,YAAsB;QACzC,IAAI,EAAE,IAAI,CAAC,IAAU;KACxB,CAAC,CACL,CAAA;IAED,WAAW;QACP,WAAW,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YAC/B,GAAG,IAAI;YACP,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,mBAAQ,CAAC,IAAI;YACxC,QAAQ,EACJ,IAAI,CAAC,QAAQ;gBACb,yBAAyB,EAAE,CAAC,KAAK,CAAC,EAAE,QAAQ;gBAC5C,IAAA,UAAG,EAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YAC1B,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,EAAE;YACjC,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,yBAAyB,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,IAAI,EAAE;SACvE,CAAC,CAAC,IAAI,EAAE,CAAA;IAEb,MAAM,qBAAqB,GAAG,IAAA,yCAAoB,EAAC,WAAW,CAAC,CAAA;IAE/D,OAAO;QACH,aAAa,EAAE,GAAG,EAAE;YAChB,OAAO,qBAAqB,CAAA;QAChC,CAAC;QACD,oBAAoB,EAAE,GAAG,EAAE;YACvB,OAAO,IAAA,gBAAS,EAAC,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAA;QACjD,CAAC;QACD,YAAY,EAAE;YACV,IAAI;YACJ,aAAa;YACb,UAAU;YACV,WAAW;SACmD;KACrE,CAAA;AACL,CAAC;AA7CD,oCA6CC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toGasPolicy = void 0;
|
|
4
|
+
const viem_1 = require("viem");
|
|
5
|
+
const constants_js_1 = require("../constants.js");
|
|
6
|
+
const constants_js_2 = require("../constants.js");
|
|
7
|
+
async function toGasPolicy({ policyAddress = constants_js_2.GAS_POLICY_CONTRACT, policyFlag = constants_js_1.PolicyFlags.FOR_ALL_VALIDATION, allowed, enforcePaymaster = false, allowedPaymaster = viem_1.zeroAddress, type = "gas" }) {
|
|
8
|
+
return {
|
|
9
|
+
getPolicyData: () => {
|
|
10
|
+
return (0, viem_1.encodeAbiParameters)([
|
|
11
|
+
{ name: "allowed", type: "uint128" },
|
|
12
|
+
{ name: "enforcePaymaster", type: "bool" },
|
|
13
|
+
{ name: "allowedPaymaster", type: "address" }
|
|
14
|
+
], [allowed, enforcePaymaster, allowedPaymaster]);
|
|
15
|
+
},
|
|
16
|
+
getPolicyInfoInBytes: () => {
|
|
17
|
+
return (0, viem_1.concatHex)([policyFlag, policyAddress]);
|
|
18
|
+
},
|
|
19
|
+
policyParams: {
|
|
20
|
+
type,
|
|
21
|
+
policyAddress,
|
|
22
|
+
policyFlag,
|
|
23
|
+
allowed,
|
|
24
|
+
enforcePaymaster,
|
|
25
|
+
allowedPaymaster
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
exports.toGasPolicy = toGasPolicy;
|
|
30
|
+
//# sourceMappingURL=toGasPolicy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toGasPolicy.js","sourceRoot":"","sources":["../../policies/toGasPolicy.ts"],"names":[],"mappings":";;;AAAA,+BAAgF;AAChF,kDAA6C;AAC7C,kDAAqD;AAU9C,KAAK,UAAU,WAAW,CAAC,EAC9B,aAAa,GAAG,kCAAmB,EACnC,UAAU,GAAG,0BAAW,CAAC,kBAAkB,EAC3C,OAAO,EACP,gBAAgB,GAAG,KAAK,EACxB,gBAAgB,GAAG,kBAAW,EAC9B,IAAI,GAAG,KAAK,EACE;IACd,OAAO;QACH,aAAa,EAAE,GAAG,EAAE;YAChB,OAAO,IAAA,0BAAmB,EACtB;gBACI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;gBACpC,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,EAAE;gBAC1C,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,SAAS,EAAE;aAChD,EACD,CAAC,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,CAChD,CAAA;QACL,CAAC;QACD,oBAAoB,EAAE,GAAG,EAAE;YACvB,OAAO,IAAA,gBAAS,EAAC,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAA;QACjD,CAAC;QACD,YAAY,EAAE;YACV,IAAI;YACJ,aAAa;YACb,UAAU;YACV,OAAO;YACP,gBAAgB;YAChB,gBAAgB;SACnB;KACJ,CAAA;AACL,CAAC;AA/BD,kCA+BC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toRateLimitPolicy = void 0;
|
|
4
|
+
const viem_1 = require("viem");
|
|
5
|
+
const constants_js_1 = require("../constants.js");
|
|
6
|
+
const constants_js_2 = require("../constants.js");
|
|
7
|
+
async function toRateLimitPolicy({ policyAddress = constants_js_2.RATE_LIMIT_POLICY_CONTRACT, policyFlag = constants_js_1.PolicyFlags.FOR_ALL_VALIDATION, interval = 0, count, startAt = 0, type = "rate-limit" }) {
|
|
8
|
+
return {
|
|
9
|
+
getPolicyData: () => {
|
|
10
|
+
const intervalHex = interval.toString(16).padStart(12, "0");
|
|
11
|
+
const countHex = count.toString(16).padStart(12, "0");
|
|
12
|
+
const startAtHex = startAt.toString(16).padStart(12, "0");
|
|
13
|
+
const data = intervalHex + countHex + startAtHex;
|
|
14
|
+
return `0x${data}`;
|
|
15
|
+
},
|
|
16
|
+
getPolicyInfoInBytes: () => {
|
|
17
|
+
return (0, viem_1.concatHex)([policyFlag, policyAddress]);
|
|
18
|
+
},
|
|
19
|
+
policyParams: {
|
|
20
|
+
type,
|
|
21
|
+
policyAddress,
|
|
22
|
+
policyFlag,
|
|
23
|
+
interval,
|
|
24
|
+
count,
|
|
25
|
+
startAt
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
exports.toRateLimitPolicy = toRateLimitPolicy;
|
|
30
|
+
//# sourceMappingURL=toRateLimitPolicy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toRateLimitPolicy.js","sourceRoot":"","sources":["../../policies/toRateLimitPolicy.ts"],"names":[],"mappings":";;;AAAA,+BAAgC;AAChC,kDAA6C;AAC7C,kDAA4D;AAUrD,KAAK,UAAU,iBAAiB,CAAC,EACpC,aAAa,GAAG,yCAA0B,EAC1C,UAAU,GAAG,0BAAW,CAAC,kBAAkB,EAC3C,QAAQ,GAAG,CAAC,EACZ,KAAK,EACL,OAAO,GAAG,CAAC,EACX,IAAI,GAAG,YAAY,EACC;IACpB,OAAO;QACH,aAAa,EAAE,GAAG,EAAE;YAChB,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;YAC3D,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;YACrD,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;YAEzD,MAAM,IAAI,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAA;YAEhD,OAAO,KAAK,IAAI,EAAE,CAAA;QACtB,CAAC;QACD,oBAAoB,EAAE,GAAG,EAAE;YACvB,OAAO,IAAA,gBAAS,EAAC,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAA;QACjD,CAAC;QACD,YAAY,EAAE;YACV,IAAI;YACJ,aAAa;YACb,UAAU;YACV,QAAQ;YACR,KAAK;YACL,OAAO;SACV;KACJ,CAAA;AACL,CAAC;AA9BD,8CA8BC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toSignatureCallerPolicy = void 0;
|
|
4
|
+
const viem_1 = require("viem");
|
|
5
|
+
const constants_js_1 = require("../constants.js");
|
|
6
|
+
const constants_js_2 = require("../constants.js");
|
|
7
|
+
async function toSignatureCallerPolicy({ policyAddress = constants_js_2.SIGNATURE_POLICY_CONTRACT, policyFlag = constants_js_1.PolicyFlags.FOR_ALL_VALIDATION, allowedCallers, type = "signature-caller" }) {
|
|
8
|
+
return {
|
|
9
|
+
getPolicyData: () => {
|
|
10
|
+
return (0, viem_1.encodeAbiParameters)([{ name: "allowedCallers", type: "address[]" }], [allowedCallers]);
|
|
11
|
+
},
|
|
12
|
+
getPolicyInfoInBytes: () => {
|
|
13
|
+
return (0, viem_1.concatHex)([policyFlag, policyAddress]);
|
|
14
|
+
},
|
|
15
|
+
policyParams: {
|
|
16
|
+
type,
|
|
17
|
+
policyAddress,
|
|
18
|
+
policyFlag,
|
|
19
|
+
allowedCallers
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
exports.toSignatureCallerPolicy = toSignatureCallerPolicy;
|
|
24
|
+
//# sourceMappingURL=toSignatureCallerPolicy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toSignatureCallerPolicy.js","sourceRoot":"","sources":["../../policies/toSignatureCallerPolicy.ts"],"names":[],"mappings":";;;AAAA,+BAAmE;AACnE,kDAA6C;AAC7C,kDAA2D;AAQpD,KAAK,UAAU,uBAAuB,CAAC,EAC1C,aAAa,GAAG,wCAAyB,EACzC,UAAU,GAAG,0BAAW,CAAC,kBAAkB,EAC3C,cAAc,EACd,IAAI,GAAG,kBAAkB,EACC;IAC1B,OAAO;QACH,aAAa,EAAE,GAAG,EAAE;YAChB,OAAO,IAAA,0BAAmB,EACtB,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAC/C,CAAC,cAAc,CAAC,CACnB,CAAA;QACL,CAAC;QACD,oBAAoB,EAAE,GAAG,EAAE;YACvB,OAAO,IAAA,gBAAS,EAAC,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAA;QACjD,CAAC;QACD,YAAY,EAAE;YACV,IAAI;YACJ,aAAa;YACb,UAAU;YACV,cAAc;SACjB;KACJ,CAAA;AACL,CAAC;AAvBD,0DAuBC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toSudoPolicy = void 0;
|
|
4
|
+
const viem_1 = require("viem");
|
|
5
|
+
const constants_js_1 = require("../constants.js");
|
|
6
|
+
async function toSudoPolicy({ policyAddress = constants_js_1.SUDO_POLICY_CONTRACT, policyFlag = constants_js_1.PolicyFlags.FOR_ALL_VALIDATION, type = "sudo" }) {
|
|
7
|
+
return {
|
|
8
|
+
getPolicyData: () => {
|
|
9
|
+
return "0x";
|
|
10
|
+
},
|
|
11
|
+
getPolicyInfoInBytes: () => {
|
|
12
|
+
return (0, viem_1.concatHex)([policyFlag, policyAddress]);
|
|
13
|
+
},
|
|
14
|
+
policyParams: {
|
|
15
|
+
type,
|
|
16
|
+
policyAddress,
|
|
17
|
+
policyFlag
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
exports.toSudoPolicy = toSudoPolicy;
|
|
22
|
+
//# sourceMappingURL=toSudoPolicy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toSudoPolicy.js","sourceRoot":"","sources":["../../policies/toSudoPolicy.ts"],"names":[],"mappings":";;;AAAA,+BAAgC;AAChC,kDAAmE;AAO5D,KAAK,UAAU,YAAY,CAAC,EAC/B,aAAa,GAAG,mCAAoB,EACpC,UAAU,GAAG,0BAAW,CAAC,kBAAkB,EAC3C,IAAI,GAAG,MAAM,EACE;IACf,OAAO;QACH,aAAa,EAAE,GAAG,EAAE;YAChB,OAAO,IAAI,CAAA;QACf,CAAC;QACD,oBAAoB,EAAE,GAAG,EAAE;YACvB,OAAO,IAAA,gBAAS,EAAC,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAA;QACjD,CAAC;QACD,YAAY,EAAE;YACV,IAAI;YACJ,aAAa;YACb,UAAU;SACb;KACJ,CAAA;AACL,CAAC;AAlBD,oCAkBC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ParamCondition = exports.CallType = void 0;
|
|
4
|
+
var CallType;
|
|
5
|
+
(function (CallType) {
|
|
6
|
+
CallType["CALL"] = "0x00";
|
|
7
|
+
CallType["BATCH_CALL"] = "0x01";
|
|
8
|
+
CallType["DELEGATE_CALL"] = "0xff";
|
|
9
|
+
})(CallType || (exports.CallType = CallType = {}));
|
|
10
|
+
var ParamCondition;
|
|
11
|
+
(function (ParamCondition) {
|
|
12
|
+
ParamCondition[ParamCondition["EQUAL"] = 0] = "EQUAL";
|
|
13
|
+
ParamCondition[ParamCondition["GREATER_THAN"] = 1] = "GREATER_THAN";
|
|
14
|
+
ParamCondition[ParamCondition["LESS_THAN"] = 2] = "LESS_THAN";
|
|
15
|
+
ParamCondition[ParamCondition["GREATER_THAN_OR_EQUAL"] = 3] = "GREATER_THAN_OR_EQUAL";
|
|
16
|
+
ParamCondition[ParamCondition["LESS_THAN_OR_EQUAL"] = 4] = "LESS_THAN_OR_EQUAL";
|
|
17
|
+
ParamCondition[ParamCondition["NOT_EQUAL"] = 5] = "NOT_EQUAL";
|
|
18
|
+
})(ParamCondition || (exports.ParamCondition = ParamCondition = {}));
|
|
19
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../policies/types.ts"],"names":[],"mappings":";;;AAaA,IAAY,QAIX;AAJD,WAAY,QAAQ;IAChB,yBAAa,CAAA;IACb,+BAAmB,CAAA;IACnB,kCAAsB,CAAA;AAC1B,CAAC,EAJW,QAAQ,wBAAR,QAAQ,QAInB;AAED,IAAY,cAOX;AAPD,WAAY,cAAc;IACtB,qDAAS,CAAA;IACT,mEAAgB,CAAA;IAChB,6DAAa,CAAA;IACb,qFAAyB,CAAA;IACzB,+EAAsB,CAAA;IACtB,6DAAa,CAAA;AACjB,CAAC,EAPW,cAAc,8BAAd,cAAc,QAOzB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toPolicyId = void 0;
|
|
4
|
+
const viem_1 = require("viem");
|
|
5
|
+
const toPolicyId = (policies) => {
|
|
6
|
+
return (0, viem_1.encodeAbiParameters)([{ name: "policiesData", type: "bytes[]" }], [
|
|
7
|
+
policies.map((policy) => (0, viem_1.concat)([policy.getPolicyInfoInBytes(), policy.getPolicyData()]))
|
|
8
|
+
]);
|
|
9
|
+
};
|
|
10
|
+
exports.toPolicyId = toPolicyId;
|
|
11
|
+
//# sourceMappingURL=toPolicyId.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toPolicyId.js","sourceRoot":"","sources":["../../../policies/utils/toPolicyId.ts"],"names":[],"mappings":";;;AAAA,+BAA4D;AAGrD,MAAM,UAAU,GAAG,CAAC,QAAkB,EAAO,EAAE;IAClD,OAAO,IAAA,0BAAmB,EACtB,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAC3C;QACI,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACpB,IAAA,aAAM,EAAC,CAAC,MAAM,CAAC,oBAAoB,EAAE,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAClE;KACJ,CACJ,CAAA;AACL,CAAC,CAAA;AATY,QAAA,UAAU,cAStB"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.serializePermissionAccount = void 0;
|
|
4
|
+
const utils_js_1 = require("./utils.js");
|
|
5
|
+
const serializePermissionAccount = async (account, privateKey) => {
|
|
6
|
+
if (!(0, utils_js_1.isPermissionValidatorPlugin)(account.kernelPluginManager))
|
|
7
|
+
throw new Error("Account plugin is not a permission validator");
|
|
8
|
+
const permissionParams = account.kernelPluginManager.getPluginSerializationParams();
|
|
9
|
+
const action = account.kernelPluginManager.getAction();
|
|
10
|
+
const validityData = account.kernelPluginManager.getValidityData();
|
|
11
|
+
const enableSignature = await account.kernelPluginManager.getPluginEnableSignature(account.address);
|
|
12
|
+
const accountParams = {
|
|
13
|
+
initCode: await account.generateInitCode(),
|
|
14
|
+
accountAddress: account.address
|
|
15
|
+
};
|
|
16
|
+
const paramsToBeSerialized = {
|
|
17
|
+
permissionParams,
|
|
18
|
+
action,
|
|
19
|
+
validityData,
|
|
20
|
+
accountParams,
|
|
21
|
+
enableSignature,
|
|
22
|
+
privateKey
|
|
23
|
+
};
|
|
24
|
+
return (0, utils_js_1.serializePermissionAccountParams)(paramsToBeSerialized);
|
|
25
|
+
};
|
|
26
|
+
exports.serializePermissionAccount = serializePermissionAccount;
|
|
27
|
+
//# sourceMappingURL=serializePermissionAccount.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serializePermissionAccount.js","sourceRoot":"","sources":["../serializePermissionAccount.ts"],"names":[],"mappings":";;;AAGA,yCAGmB;AAEZ,MAAM,0BAA0B,GAAG,KAAK,EAC3C,OAAuC,EACvC,UAAgB,EACD,EAAE;IACjB,IAAI,CAAC,IAAA,sCAA2B,EAAC,OAAO,CAAC,mBAAmB,CAAC;QACzD,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAA;IACnE,MAAM,gBAAgB,GAClB,OAAO,CAAC,mBAAmB,CAAC,4BAA4B,EAAE,CAAA;IAC9D,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAA;IACtD,MAAM,YAAY,GAAG,OAAO,CAAC,mBAAmB,CAAC,eAAe,EAAE,CAAA;IAClE,MAAM,eAAe,GACjB,MAAM,OAAO,CAAC,mBAAmB,CAAC,wBAAwB,CACtD,OAAO,CAAC,OAAO,CAClB,CAAA;IACL,MAAM,aAAa,GAAG;QAClB,QAAQ,EAAE,MAAM,OAAO,CAAC,gBAAgB,EAAE;QAC1C,cAAc,EAAE,OAAO,CAAC,OAAO;KAClC,CAAA;IAED,MAAM,oBAAoB,GAAG;QACzB,gBAAgB;QAChB,MAAM;QACN,YAAY;QACZ,aAAa;QACb,eAAe;QACf,UAAU;KACb,CAAA;IAED,OAAO,IAAA,2CAAgC,EAAC,oBAAoB,CAAC,CAAA;AACjE,CAAC,CAAA;AA7BY,QAAA,0BAA0B,8BA6BtC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toSignerId = exports.WebAuthnMode = exports.toWebAuthnSigner = exports.toECDSASigner = void 0;
|
|
4
|
+
var toECDSASigner_js_1 = require("./toECDSASigner.js");
|
|
5
|
+
Object.defineProperty(exports, "toECDSASigner", { enumerable: true, get: function () { return toECDSASigner_js_1.toECDSASigner; } });
|
|
6
|
+
var toWebAuthnSigner_js_1 = require("./toWebAuthnSigner.js");
|
|
7
|
+
Object.defineProperty(exports, "toWebAuthnSigner", { enumerable: true, get: function () { return toWebAuthnSigner_js_1.toWebAuthnSigner; } });
|
|
8
|
+
var toWebAuthnPubKey_js_1 = require("./toWebAuthnPubKey.js");
|
|
9
|
+
Object.defineProperty(exports, "WebAuthnMode", { enumerable: true, get: function () { return toWebAuthnPubKey_js_1.WebAuthnMode; } });
|
|
10
|
+
var toSignerId_js_1 = require("./utils/toSignerId.js");
|
|
11
|
+
Object.defineProperty(exports, "toSignerId", { enumerable: true, get: function () { return toSignerId_js_1.toSignerId; } });
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../signers/index.ts"],"names":[],"mappings":";;;AAAA,uDAG2B;AAFvB,iHAAA,aAAa,OAAA;AAGjB,6DAG8B;AAF1B,uHAAA,gBAAgB,OAAA;AAGpB,6DAAoD;AAA3C,mHAAA,YAAY,OAAA;AACrB,uDAAkD;AAAzC,2GAAA,UAAU,OAAA"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toECDSASigner = void 0;
|
|
4
|
+
const sdk_1 = require("@zerodev/sdk");
|
|
5
|
+
const accounts_1 = require("permissionless/accounts");
|
|
6
|
+
const accounts_2 = require("viem/accounts");
|
|
7
|
+
const constants_js_1 = require("../constants.js");
|
|
8
|
+
function toECDSASigner({ signer, signerContractAddress = constants_js_1.ECDSA_SIGNER_CONTRACT }) {
|
|
9
|
+
const viemSigner = {
|
|
10
|
+
...signer,
|
|
11
|
+
signTransaction: (_, __) => {
|
|
12
|
+
throw new accounts_1.SignTransactionNotSupportedBySmartAccount();
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
const account = (0, accounts_2.toAccount)({
|
|
16
|
+
address: viemSigner.address,
|
|
17
|
+
async signMessage({ message }) {
|
|
18
|
+
return (0, sdk_1.fixSignedData)(await viemSigner.signMessage({ message }));
|
|
19
|
+
},
|
|
20
|
+
async signTransaction(_, __) {
|
|
21
|
+
throw new accounts_1.SignTransactionNotSupportedBySmartAccount();
|
|
22
|
+
},
|
|
23
|
+
async signTypedData(typedData) {
|
|
24
|
+
return (0, sdk_1.fixSignedData)(await viemSigner.signTypedData({
|
|
25
|
+
...typedData
|
|
26
|
+
}));
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
return {
|
|
30
|
+
account,
|
|
31
|
+
signerContractAddress,
|
|
32
|
+
getSignerData: () => {
|
|
33
|
+
return viemSigner.address;
|
|
34
|
+
},
|
|
35
|
+
getDummySignature: () => sdk_1.constants.DUMMY_ECDSA_SIG
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
exports.toECDSASigner = toECDSASigner;
|
|
39
|
+
//# sourceMappingURL=toECDSASigner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toECDSASigner.js","sourceRoot":"","sources":["../../signers/toECDSASigner.ts"],"names":[],"mappings":";;;AAAA,sCAAuD;AAEvD,sDAGgC;AAEhC,4CAAyC;AACzC,kDAAuD;AAUvD,SAAgB,aAAa,CAG3B,EACE,MAAM,EACN,qBAAqB,GAAG,oCAAqB,EACH;IAC1C,MAAM,UAAU,GAAiB;QAC7B,GAAG,MAAM;QACT,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE;YACvB,MAAM,IAAI,oDAAyC,EAAE,CAAA;QACzD,CAAC;KACY,CAAA;IACjB,MAAM,OAAO,GAAG,IAAA,oBAAS,EAAC;QACtB,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,KAAK,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE;YACzB,OAAO,IAAA,mBAAa,EAAC,MAAM,UAAU,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;QACnE,CAAC;QACD,KAAK,CAAC,eAAe,CAAC,CAAC,EAAE,EAAE;YACvB,MAAM,IAAI,oDAAyC,EAAE,CAAA;QACzD,CAAC;QACD,KAAK,CAAC,aAAa,CAKjB,SAAwD;YACtD,OAAO,IAAA,mBAAa,EAChB,MAAM,UAAU,CAAC,aAAa,CAA2B;gBACrD,GAAG,SAAS;aACf,CAAC,CACL,CAAA;QACL,CAAC;KACJ,CAAC,CAAA;IACF,OAAO;QACH,OAAO;QACP,qBAAqB;QACrB,aAAa,EAAE,GAAG,EAAE;YAChB,OAAO,UAAU,CAAC,OAAO,CAAA;QAC7B,CAAC;QACD,iBAAiB,EAAE,GAAG,EAAE,CAAC,eAAS,CAAC,eAAe;KACrD,CAAA;AACL,CAAC;AA1CD,sCA0CC"}
|