@zerodev/permissions 5.2.1-alpha.1 → 5.2.1-alpha.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/deserializePermissionAccount.js +11 -8
- package/_cjs/deserializePermissionAccount.js.map +1 -1
- package/_cjs/policies/index.js +4 -1
- package/_cjs/policies/index.js.map +1 -1
- package/_cjs/policies/toCallPolicy.js +1 -1
- package/_cjs/policies/toCallPolicy.js.map +1 -1
- package/_cjs/policies/toGasPolicy.js +1 -1
- package/_cjs/policies/toGasPolicy.js.map +1 -1
- package/_cjs/policies/toRateLimitPolicy.js +1 -1
- package/_cjs/policies/toRateLimitPolicy.js.map +1 -1
- package/_cjs/policies/toSignatureCallerPolicy.js +1 -1
- package/_cjs/policies/toSignatureCallerPolicy.js.map +1 -1
- package/_cjs/policies/toSudoPolicy.js +1 -1
- package/_cjs/policies/toSudoPolicy.js.map +1 -1
- package/_cjs/signers/toEmptyECDSASigner.js +30 -0
- package/_cjs/signers/toEmptyECDSASigner.js.map +1 -0
- package/_cjs/signers/toWebAuthnPubKey.js +4 -3
- package/_cjs/signers/toWebAuthnPubKey.js.map +1 -1
- package/_cjs/signers/toWebAuthnSigner.js +2 -2
- package/_cjs/signers/toWebAuthnSigner.js.map +1 -1
- package/_cjs/toPermissionValidator.js +13 -9
- package/_cjs/toPermissionValidator.js.map +1 -1
- package/_esm/deserializePermissionAccount.js +13 -10
- package/_esm/deserializePermissionAccount.js.map +1 -1
- package/_esm/policies/index.js +1 -1
- package/_esm/policies/index.js.map +1 -1
- package/_esm/policies/toCallPolicy.js +1 -1
- package/_esm/policies/toCallPolicy.js.map +1 -1
- package/_esm/policies/toGasPolicy.js +1 -1
- package/_esm/policies/toGasPolicy.js.map +1 -1
- package/_esm/policies/toRateLimitPolicy.js +1 -1
- package/_esm/policies/toRateLimitPolicy.js.map +1 -1
- package/_esm/policies/toSignatureCallerPolicy.js +1 -1
- package/_esm/policies/toSignatureCallerPolicy.js.map +1 -1
- package/_esm/policies/toSudoPolicy.js +1 -1
- package/_esm/policies/toSudoPolicy.js.map +1 -1
- package/_esm/signers/toEmptyECDSASigner.js +27 -0
- package/_esm/signers/toEmptyECDSASigner.js.map +1 -0
- package/_esm/signers/toWebAuthnPubKey.js +2 -1
- package/_esm/signers/toWebAuthnPubKey.js.map +1 -1
- package/_esm/signers/toWebAuthnSigner.js +1 -1
- package/_esm/signers/toWebAuthnSigner.js.map +1 -1
- package/_esm/toPermissionValidator.js +14 -10
- package/_esm/toPermissionValidator.js.map +1 -1
- package/_types/deserializePermissionAccount.d.ts +1 -1
- package/_types/deserializePermissionAccount.d.ts.map +1 -1
- package/_types/policies/index.d.ts +1 -1
- package/_types/policies/index.d.ts.map +1 -1
- package/_types/policies/toCallPolicy.d.ts +1 -1
- package/_types/policies/toCallPolicy.d.ts.map +1 -1
- package/_types/policies/toGasPolicy.d.ts +2 -2
- package/_types/policies/toGasPolicy.d.ts.map +1 -1
- package/_types/policies/toRateLimitPolicy.d.ts +1 -1
- package/_types/policies/toRateLimitPolicy.d.ts.map +1 -1
- package/_types/policies/toSignatureCallerPolicy.d.ts +1 -1
- package/_types/policies/toSignatureCallerPolicy.d.ts.map +1 -1
- package/_types/policies/toSudoPolicy.d.ts +1 -1
- package/_types/policies/toSudoPolicy.d.ts.map +1 -1
- package/_types/signers/toEmptyECDSASigner.d.ts +4 -0
- package/_types/signers/toEmptyECDSASigner.d.ts.map +1 -0
- package/_types/signers/toWebAuthnPubKey.d.ts.map +1 -1
- package/_types/signers/toWebAuthnSigner.d.ts.map +1 -1
- package/_types/toPermissionValidator.d.ts.map +1 -1
- package/_types/types.d.ts +2 -2
- package/_types/types.d.ts.map +1 -1
- package/deserializePermissionAccount.ts +19 -11
- package/package.json +3 -3
- package/policies/index.ts +1 -1
- package/policies/toCallPolicy.ts +2 -2
- package/policies/toGasPolicy.ts +4 -4
- package/policies/toRateLimitPolicy.ts +2 -2
- package/policies/toSignatureCallerPolicy.ts +2 -2
- package/policies/toSudoPolicy.ts +2 -2
- package/signers/toEmptyECDSASigner.ts +34 -0
- package/signers/toWebAuthnPubKey.ts +2 -1
- package/signers/toWebAuthnSigner.ts +2 -1
- package/toPermissionValidator.ts +19 -11
- package/types.ts +2 -2
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { Buffer } from "buffer";
|
|
2
|
-
import { startAuthentication, startRegistration } from "@simplewebauthn/browser";
|
|
3
2
|
import { keccak256 } from "viem";
|
|
4
3
|
import {} from "./toWebAuthnSigner.js";
|
|
5
4
|
import { b64ToBytes, uint8ArrayToHexString } from "./webAuthnUtils.js";
|
|
@@ -20,6 +19,7 @@ export const toWebAuthnPubKey = async ({ passkeyName, passkeyServerUrl, mode = W
|
|
|
20
19
|
});
|
|
21
20
|
const loginOptions = await loginOptionsResponse.json();
|
|
22
21
|
// Start authentication (login)
|
|
22
|
+
const { startAuthentication } = await import("@simplewebauthn/browser");
|
|
23
23
|
const loginCred = await startAuthentication(loginOptions);
|
|
24
24
|
// get authenticatorIdHash
|
|
25
25
|
authenticatorIdHash = keccak256(uint8ArrayToHexString(b64ToBytes(loginCred.id)));
|
|
@@ -61,6 +61,7 @@ export const toWebAuthnPubKey = async ({ passkeyName, passkeyServerUrl, mode = W
|
|
|
61
61
|
}
|
|
62
62
|
sessionStorage.setItem("userId", registerOptions.userId);
|
|
63
63
|
// Start registration
|
|
64
|
+
const { startRegistration } = await import("@simplewebauthn/browser");
|
|
64
65
|
const registerCred = await startRegistration(registerOptions.options);
|
|
65
66
|
// get authenticatorIdHash
|
|
66
67
|
authenticatorIdHash = keccak256(uint8ArrayToHexString(b64ToBytes(registerCred.id)));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toWebAuthnPubKey.js","sourceRoot":"","sources":["../../signers/toWebAuthnPubKey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,
|
|
1
|
+
{"version":3,"file":"toWebAuthnPubKey.js","sourceRoot":"","sources":["../../signers/toWebAuthnPubKey.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { startAuthentication } from "@simplewebauthn/browser";
|
|
2
1
|
import { SignTransactionNotSupportedBySmartAccount } from "permissionless/accounts";
|
|
3
2
|
import { getTypesForEIP712Domain, hashTypedData, validateTypedData } from "viem";
|
|
4
3
|
import { encodeAbiParameters } from "viem";
|
|
@@ -59,6 +58,7 @@ export const toWebAuthnSigner = async (client, { signerContractAddress = WEBAUTH
|
|
|
59
58
|
userVerification: "required"
|
|
60
59
|
};
|
|
61
60
|
// start authentication (signing)
|
|
61
|
+
const { startAuthentication } = await import("@simplewebauthn/browser");
|
|
62
62
|
const cred = await startAuthentication(assertionOptions);
|
|
63
63
|
// verify signature from server
|
|
64
64
|
const verifyResponse = await fetch(`${passkeyServerUrl}/sign-verify`, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toWebAuthnSigner.js","sourceRoot":"","sources":["../../signers/toWebAuthnSigner.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"toWebAuthnSigner.js","sourceRoot":"","sources":["../../signers/toWebAuthnSigner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { KernelV3AccountAbi } from "@zerodev/sdk";
|
|
2
|
-
import { getAction, getUserOperationHash } from "permissionless";
|
|
2
|
+
import { getAction, getEntryPointVersion, getUserOperationHash } from "permissionless";
|
|
3
3
|
import { concat, encodeAbiParameters, keccak256, pad, slice, zeroAddress } from "viem";
|
|
4
4
|
import { getChainId, readContract } from "viem/actions";
|
|
5
5
|
import { PolicyFlags } from "./constants.js";
|
|
@@ -7,17 +7,21 @@ import { toPolicyId } from "./policies/index.js";
|
|
|
7
7
|
import { toSignerId } from "./signers/index.js";
|
|
8
8
|
export async function toPermissionValidator(client, { signer, policies, entryPoint: entryPointAddress, flag = PolicyFlags.FOR_ALL_VALIDATION }) {
|
|
9
9
|
const chainId = await getChainId(client);
|
|
10
|
+
const entryPointVersion = getEntryPointVersion(entryPointAddress);
|
|
11
|
+
if (entryPointVersion !== "v0.7") {
|
|
12
|
+
throw new Error("Only EntryPoint 0.7 is supported");
|
|
13
|
+
}
|
|
10
14
|
const getEnableData = async (_kernelAccountAddress) => {
|
|
11
15
|
const enableData = encodeAbiParameters([{ name: "policyAndSignerData", type: "bytes[]" }], [
|
|
12
16
|
[
|
|
13
17
|
...policies.map((policy) => concat([
|
|
14
18
|
policy.getPolicyInfoInBytes(),
|
|
15
|
-
policy.getPolicyData(
|
|
19
|
+
policy.getPolicyData()
|
|
16
20
|
])),
|
|
17
21
|
concat([
|
|
18
22
|
flag,
|
|
19
23
|
signer.signerContractAddress,
|
|
20
|
-
signer.getSignerData(
|
|
24
|
+
signer.getSignerData()
|
|
21
25
|
])
|
|
22
26
|
]
|
|
23
27
|
]);
|
|
@@ -25,7 +29,7 @@ export async function toPermissionValidator(client, { signer, policies, entryPoi
|
|
|
25
29
|
};
|
|
26
30
|
const getPermissionId = () => {
|
|
27
31
|
const pIdData = encodeAbiParameters([{ name: "policyAndSignerData", type: "bytes[]" }], [[toPolicyId(policies), flag, toSignerId(signer)]]);
|
|
28
|
-
return slice(keccak256(pIdData), 0,
|
|
32
|
+
return slice(keccak256(pIdData), 0, 4);
|
|
29
33
|
};
|
|
30
34
|
return {
|
|
31
35
|
...signer.account,
|
|
@@ -33,10 +37,7 @@ export async function toPermissionValidator(client, { signer, policies, entryPoi
|
|
|
33
37
|
address: zeroAddress,
|
|
34
38
|
source: "PermissionValidator",
|
|
35
39
|
getEnableData,
|
|
36
|
-
getIdentifier:
|
|
37
|
-
size: 20,
|
|
38
|
-
dir: "right"
|
|
39
|
-
}),
|
|
40
|
+
getIdentifier: getPermissionId,
|
|
40
41
|
signMessage: async ({ message }) => {
|
|
41
42
|
return concat([
|
|
42
43
|
"0xff",
|
|
@@ -53,14 +54,17 @@ export async function toPermissionValidator(client, { signer, policies, entryPoi
|
|
|
53
54
|
const userOpHash = getUserOperationHash({
|
|
54
55
|
userOperation: { ...userOperation, signature: "0x" },
|
|
55
56
|
entryPoint: entryPointAddress,
|
|
56
|
-
chainId
|
|
57
|
+
chainId
|
|
57
58
|
});
|
|
58
59
|
const signature = await signer.account.signMessage({
|
|
59
60
|
message: { raw: userOpHash }
|
|
60
61
|
});
|
|
61
62
|
return concat(["0xff", signature]);
|
|
62
63
|
},
|
|
63
|
-
|
|
64
|
+
async getNonceKey(_accountAddress, customNonceKey) {
|
|
65
|
+
if (customNonceKey) {
|
|
66
|
+
return customNonceKey;
|
|
67
|
+
}
|
|
64
68
|
return 0n;
|
|
65
69
|
},
|
|
66
70
|
async getDummySignature(_userOperation) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toPermissionValidator.js","sourceRoot":"","sources":["../toPermissionValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,
|
|
1
|
+
{"version":3,"file":"toPermissionValidator.js","sourceRoot":"","sources":["../toPermissionValidator.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import type { EntryPoint } from "permissionless/types";
|
|
|
4
4
|
import type { Hex } from "viem";
|
|
5
5
|
import { type Policy } from "./types.js";
|
|
6
6
|
import type { ModularSigner } from "./types.js";
|
|
7
|
-
export declare const deserializePermissionAccount: <entryPoint extends EntryPoint>(client: Parameters<typeof createKernelAccount>[0], modularPermissionAccountParams: string, modularSigner?: ModularSigner
|
|
7
|
+
export declare const deserializePermissionAccount: <entryPoint extends EntryPoint>(client: Parameters<typeof createKernelAccount>[0], entryPointAddress: entryPoint, modularPermissionAccountParams: string, modularSigner?: ModularSigner) => Promise<import("@zerodev/sdk").KernelSmartAccount<entryPoint, import("viem").Transport, import("viem").Chain | undefined>>;
|
|
8
8
|
export declare const createPolicyFromParams: (policy: Policy) => Promise<Policy>;
|
|
9
9
|
export declare const decodeParamsFromInitCode: (initCode: Hex) => {
|
|
10
10
|
index: bigint;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deserializePermissionAccount.d.ts","sourceRoot":"","sources":["../deserializePermissionAccount.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"deserializePermissionAccount.d.ts","sourceRoot":"","sources":["../deserializePermissionAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,mBAAmB,EACtB,MAAM,cAAc,CAAA;AAErB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAE3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAY/B,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAG/C,eAAO,MAAM,4BAA4B,0CAG7B,WAAW,0BAA0B,CAAC,CAAC,CAAC,CAAC,iEAEjB,MAAM,kBACtB,aAAa,+HAkDhC,CAAA;AAED,eAAO,MAAM,sBAAsB,WAAkB,MAAM,oBAe1D,CAAA;AAED,eAAO,MAAM,wBAAwB,aAAc,GAAG;;;CA0BrD,CAAA"}
|
|
@@ -4,5 +4,5 @@ export { toRateLimitPolicy, type RateLimitPolicyParams } from "./toRateLimitPoli
|
|
|
4
4
|
export { toCallPolicy, type CallPolicyParams } from "./toCallPolicy.js";
|
|
5
5
|
export { toPolicyId } from "./utils/toPolicyId.js";
|
|
6
6
|
export { toSudoPolicy, type SudoPolicyParams } from "./toSudoPolicy.js";
|
|
7
|
-
export {
|
|
7
|
+
export { CallType, ParamCondition } from "./types.js";
|
|
8
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../policies/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACpE,OAAO,EACH,uBAAuB,EACvB,KAAK,2BAA2B,EACnC,MAAM,8BAA8B,CAAA;AACrC,OAAO,EACH,iBAAiB,EACjB,KAAK,qBAAqB,EAC7B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACvE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../policies/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACpE,OAAO,EACH,uBAAuB,EACvB,KAAK,2BAA2B,EACnC,MAAM,8BAA8B,CAAA;AACrC,OAAO,EACH,iBAAiB,EACjB,KAAK,qBAAqB,EAC7B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACvE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA"}
|
|
@@ -5,5 +5,5 @@ export type CallPolicyParams<TAbi extends Abi | readonly unknown[], TFunctionNam
|
|
|
5
5
|
permissions?: Permission<TAbi, TFunctionName>[];
|
|
6
6
|
type?: "call";
|
|
7
7
|
};
|
|
8
|
-
export declare function toCallPolicy<TAbi extends Abi | readonly unknown[], TFunctionName extends string | undefined = string>({ policyAddress, policyFlag, permissions, type }: CallPolicyParams<TAbi, TFunctionName>):
|
|
8
|
+
export declare function toCallPolicy<TAbi extends Abi | readonly unknown[], TFunctionName extends string | undefined = string>({ policyAddress, policyFlag, permissions, type }: CallPolicyParams<TAbi, TFunctionName>): Policy;
|
|
9
9
|
//# sourceMappingURL=toCallPolicy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toCallPolicy.d.ts","sourceRoot":"","sources":["../../policies/toCallPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAI/B,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAKvD,OAAO,EAAY,KAAK,UAAU,EAAE,MAAM,YAAY,CAAA;AAEtD,MAAM,MAAM,gBAAgB,CACxB,IAAI,SAAS,GAAG,GAAG,SAAS,OAAO,EAAE,EACrC,aAAa,SAAS,MAAM,GAAG,SAAS,GAAG,MAAM,IACjD,YAAY,GAAG;IACf,WAAW,CAAC,EAAE,UAAU,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE,CAAA;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,
|
|
1
|
+
{"version":3,"file":"toCallPolicy.d.ts","sourceRoot":"","sources":["../../policies/toCallPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAI/B,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAKvD,OAAO,EAAY,KAAK,UAAU,EAAE,MAAM,YAAY,CAAA;AAEtD,MAAM,MAAM,gBAAgB,CACxB,IAAI,SAAS,GAAG,GAAG,SAAS,OAAO,EAAE,EACrC,aAAa,SAAS,MAAM,GAAG,SAAS,GAAG,MAAM,IACjD,YAAY,GAAG;IACf,WAAW,CAAC,EAAE,UAAU,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE,CAAA;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,wBAAgB,YAAY,CACxB,IAAI,SAAS,GAAG,GAAG,SAAS,OAAO,EAAE,EACrC,aAAa,SAAS,MAAM,GAAG,SAAS,GAAG,MAAM,EACnD,EACE,aAAoC,EACpC,UAA2C,EAC3C,WAAgB,EAChB,IAAa,EAChB,EAAE,gBAAgB,CAAC,IAAI,EAAE,aAAa,CAAC,GAAG,MAAM,CAqChD"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { type Address } from "viem";
|
|
2
2
|
import type { Policy, PolicyParams } from "../types.js";
|
|
3
3
|
export type GasPolicyParams = PolicyParams & {
|
|
4
|
-
allowed
|
|
4
|
+
allowed?: bigint;
|
|
5
5
|
enforcePaymaster?: boolean;
|
|
6
6
|
allowedPaymaster?: Address;
|
|
7
7
|
type?: "gas";
|
|
8
8
|
};
|
|
9
|
-
export declare function toGasPolicy({ policyAddress, policyFlag, allowed, enforcePaymaster, allowedPaymaster, type }: GasPolicyParams):
|
|
9
|
+
export declare function toGasPolicy({ policyAddress, policyFlag, allowed, enforcePaymaster, allowedPaymaster, type }: GasPolicyParams): Policy;
|
|
10
10
|
//# sourceMappingURL=toGasPolicy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toGasPolicy.d.ts","sourceRoot":"","sources":["../../policies/toGasPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAA+C,MAAM,MAAM,CAAA;AAGhF,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAEvD,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG;IACzC,OAAO,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"toGasPolicy.d.ts","sourceRoot":"","sources":["../../policies/toGasPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAA+C,MAAM,MAAM,CAAA;AAGhF,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAEvD,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG;IACzC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,IAAI,CAAC,EAAE,KAAK,CAAA;CACf,CAAA;AAED,wBAAgB,WAAW,CAAC,EACxB,aAAmC,EACnC,UAA2C,EAC3C,OAAY,EACZ,gBAAwB,EACxB,gBAA8B,EAC9B,IAAY,EACf,EAAE,eAAe,GAAG,MAAM,CAwB1B"}
|
|
@@ -5,5 +5,5 @@ export type RateLimitPolicyParams = PolicyParams & {
|
|
|
5
5
|
startAt?: number;
|
|
6
6
|
type?: "rate-limit";
|
|
7
7
|
};
|
|
8
|
-
export declare function toRateLimitPolicy({ policyAddress, policyFlag, interval, count, startAt, type }: RateLimitPolicyParams):
|
|
8
|
+
export declare function toRateLimitPolicy({ policyAddress, policyFlag, interval, count, startAt, type }: RateLimitPolicyParams): Policy;
|
|
9
9
|
//# sourceMappingURL=toRateLimitPolicy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toRateLimitPolicy.d.ts","sourceRoot":"","sources":["../../policies/toRateLimitPolicy.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAEvD,MAAM,MAAM,qBAAqB,GAAG,YAAY,GAAG;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,YAAY,CAAA;CACtB,CAAA;AAED,
|
|
1
|
+
{"version":3,"file":"toRateLimitPolicy.d.ts","sourceRoot":"","sources":["../../policies/toRateLimitPolicy.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAEvD,MAAM,MAAM,qBAAqB,GAAG,YAAY,GAAG;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,YAAY,CAAA;CACtB,CAAA;AAED,wBAAgB,iBAAiB,CAAC,EAC9B,aAA0C,EAC1C,UAA2C,EAC3C,QAAY,EACZ,KAAK,EACL,OAAW,EACX,IAAmB,EACtB,EAAE,qBAAqB,GAAG,MAAM,CAuBhC"}
|
|
@@ -4,5 +4,5 @@ export type SignatureCallerPolicyParams = PolicyParams & {
|
|
|
4
4
|
allowedCallers: Address[];
|
|
5
5
|
type?: "signature-caller";
|
|
6
6
|
};
|
|
7
|
-
export declare function toSignatureCallerPolicy({ policyAddress, policyFlag, allowedCallers, type }: SignatureCallerPolicyParams):
|
|
7
|
+
export declare function toSignatureCallerPolicy({ policyAddress, policyFlag, allowedCallers, type }: SignatureCallerPolicyParams): Policy;
|
|
8
8
|
//# sourceMappingURL=toSignatureCallerPolicy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toSignatureCallerPolicy.d.ts","sourceRoot":"","sources":["../../policies/toSignatureCallerPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAkC,MAAM,MAAM,CAAA;AAGnE,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAEvD,MAAM,MAAM,2BAA2B,GAAG,YAAY,GAAG;IACrD,cAAc,EAAE,OAAO,EAAE,CAAA;IACzB,IAAI,CAAC,EAAE,kBAAkB,CAAA;CAC5B,CAAA;AAED,
|
|
1
|
+
{"version":3,"file":"toSignatureCallerPolicy.d.ts","sourceRoot":"","sources":["../../policies/toSignatureCallerPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAkC,MAAM,MAAM,CAAA;AAGnE,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAEvD,MAAM,MAAM,2BAA2B,GAAG,YAAY,GAAG;IACrD,cAAc,EAAE,OAAO,EAAE,CAAA;IACzB,IAAI,CAAC,EAAE,kBAAkB,CAAA;CAC5B,CAAA;AAED,wBAAgB,uBAAuB,CAAC,EACpC,aAAyC,EACzC,UAA2C,EAC3C,cAAc,EACd,IAAyB,EAC5B,EAAE,2BAA2B,GAAG,MAAM,CAkBtC"}
|
|
@@ -2,5 +2,5 @@ import type { Policy, PolicyParams } from "../types.js";
|
|
|
2
2
|
export type SudoPolicyParams = PolicyParams & {
|
|
3
3
|
type?: "sudo";
|
|
4
4
|
};
|
|
5
|
-
export declare function toSudoPolicy({ policyAddress, policyFlag, type }: SudoPolicyParams):
|
|
5
|
+
export declare function toSudoPolicy({ policyAddress, policyFlag, type }: SudoPolicyParams): Policy;
|
|
6
6
|
//# sourceMappingURL=toSudoPolicy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toSudoPolicy.d.ts","sourceRoot":"","sources":["../../policies/toSudoPolicy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAEvD,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,
|
|
1
|
+
{"version":3,"file":"toSudoPolicy.d.ts","sourceRoot":"","sources":["../../policies/toSudoPolicy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAEvD,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,wBAAgB,YAAY,CAAC,EACzB,aAAoC,EACpC,UAA2C,EAC3C,IAAa,EAChB,EAAE,gBAAgB,GAAG,MAAM,CAc3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toEmptyECDSASigner.d.ts","sourceRoot":"","sources":["../../signers/toEmptyECDSASigner.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,OAAO,EAA4B,MAAM,MAAM,CAAA;AAG7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAEhD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,aAAa,CA0BlE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toWebAuthnPubKey.d.ts","sourceRoot":"","sources":["../../signers/toWebAuthnPubKey.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"toWebAuthnPubKey.d.ts","sourceRoot":"","sources":["../../signers/toWebAuthnPubKey.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAGxD,oBAAY,YAAY;IACpB,QAAQ,aAAa;IACrB,KAAK,UAAU;CAClB;AAED,eAAO,MAAM,gBAAgB;iBAKZ,MAAM;sBACD,MAAM;UAClB,YAAY;MAClB,QAAQ,WAAW,CAsItB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toWebAuthnSigner.d.ts","sourceRoot":"","sources":["../../signers/toWebAuthnSigner.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"toWebAuthnSigner.d.ts","sourceRoot":"","sources":["../../signers/toWebAuthnSigner.ts"],"names":[],"mappings":"AAGA,OAAO,EACH,KAAK,KAAK,EACV,KAAK,MAAM,EACX,KAAK,GAAG,EAGR,KAAK,SAAS,EAKjB,MAAM,MAAM,CAAA;AAKb,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACrE,OAAO,EAAE,YAAY,EAAoB,MAAM,uBAAuB,CAAA;AAStE,MAAM,MAAM,WAAW,GAAG;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,mBAAmB,EAAE,GAAG,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,2BAA2B,GAAG,mBAAmB,GAAG;IAC5D,WAAW,EAAE,MAAM,CAAA;IACnB,gBAAgB,EAAE,MAAM,CAAA;IACxB,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,IAAI,CAAC,EAAE,YAAY,CAAA;CACtB,CAAA;AAED,eAAO,MAAM,gBAAgB,0NAWtB,2BAA2B,KAC/B,QAAQ,aAAa,CA+LvB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toPermissionValidator.d.ts","sourceRoot":"","sources":["../toPermissionValidator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"toPermissionValidator.d.ts","sourceRoot":"","sources":["../toPermissionValidator.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,EAEH,KAAK,KAAK,EACV,KAAK,MAAM,EAEX,KAAK,SAAS,EAOjB,MAAM,MAAM,CAAA;AAKb,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,GAC1B,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAqHvC"}
|
package/_types/types.d.ts
CHANGED
|
@@ -17,11 +17,11 @@ export type PolicyParams = {
|
|
|
17
17
|
export type ModularSigner = {
|
|
18
18
|
account: LocalAccount;
|
|
19
19
|
signerContractAddress: Address;
|
|
20
|
-
getSignerData: (
|
|
20
|
+
getSignerData: () => Hex;
|
|
21
21
|
getDummySignature: () => Hex;
|
|
22
22
|
};
|
|
23
23
|
export type Policy = {
|
|
24
|
-
getPolicyData: (
|
|
24
|
+
getPolicyData: () => Hex;
|
|
25
25
|
getPolicyInfoInBytes: () => Hex;
|
|
26
26
|
policyParams: CallPolicyParams<Abi | readonly unknown[], string> | GasPolicyParams | RateLimitPolicyParams | SignatureCallerPolicyParams | SudoPolicyParams;
|
|
27
27
|
};
|
package/_types/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACpE,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,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,KAAK,EACR,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACrB,2BAA2B,EAC3B,gBAAgB,EACnB,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,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACpE,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,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,KAAK,EACR,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACrB,2BAA2B,EAC3B,gBAAgB,EACnB,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,gBAAgB,CAAC,GAAG,GAAG,SAAS,OAAO,EAAE,EAAE,MAAM,CAAC,GAClD,eAAe,GACf,qBAAqB,GACrB,2BAA2B,GAC3B,gBAAgB,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG;IACjC,MAAM,EAAE,aAAa,CAAA;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,UAAU,EAAE,UAAU,CAAA;IACtB,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,8 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import {
|
|
2
|
+
KernelFactoryStakerAbi,
|
|
3
|
+
KernelV3AccountAbi,
|
|
4
|
+
createKernelAccount
|
|
5
|
+
} from "@zerodev/sdk"
|
|
3
6
|
import { toKernelPluginManager } from "@zerodev/sdk/accounts"
|
|
4
7
|
import type { ValidatorInitData } from "@zerodev/sdk/types"
|
|
5
|
-
import {
|
|
8
|
+
import { getEntryPointVersion } from "permissionless"
|
|
6
9
|
import type { EntryPoint } from "permissionless/types"
|
|
7
10
|
import type { Hex } from "viem"
|
|
8
11
|
import { decodeFunctionData } from "viem"
|
|
@@ -24,10 +27,15 @@ export const deserializePermissionAccount = async <
|
|
|
24
27
|
entryPoint extends EntryPoint
|
|
25
28
|
>(
|
|
26
29
|
client: Parameters<typeof createKernelAccount>[0],
|
|
30
|
+
entryPointAddress: entryPoint,
|
|
27
31
|
modularPermissionAccountParams: string,
|
|
28
|
-
modularSigner?: ModularSigner
|
|
29
|
-
entryPointAddress: entryPoint = ENTRYPOINT_ADDRESS_V06 as entryPoint
|
|
32
|
+
modularSigner?: ModularSigner
|
|
30
33
|
) => {
|
|
34
|
+
const entryPointVersion = getEntryPointVersion(entryPointAddress)
|
|
35
|
+
|
|
36
|
+
if (entryPointVersion !== "v0.7") {
|
|
37
|
+
throw new Error("Only EntryPoint 0.7 is supported")
|
|
38
|
+
}
|
|
31
39
|
const params = deserializePermissionAccountParams(
|
|
32
40
|
modularPermissionAccountParams
|
|
33
41
|
)
|
|
@@ -93,16 +101,16 @@ export const createPolicyFromParams = async (policy: Policy) => {
|
|
|
93
101
|
export const decodeParamsFromInitCode = (initCode: Hex) => {
|
|
94
102
|
let index: bigint | undefined
|
|
95
103
|
let validatorInitData: ValidatorInitData | undefined
|
|
96
|
-
const
|
|
97
|
-
abi:
|
|
104
|
+
const deployWithFactoryFunctionData = decodeFunctionData({
|
|
105
|
+
abi: KernelFactoryStakerAbi,
|
|
98
106
|
data: `0x${initCode.slice(42)}`
|
|
99
107
|
})
|
|
100
|
-
if (!
|
|
101
|
-
if (
|
|
102
|
-
index =
|
|
108
|
+
if (!deployWithFactoryFunctionData) throw new Error("Invalid initCode")
|
|
109
|
+
if (deployWithFactoryFunctionData.functionName === "deployWithFactory") {
|
|
110
|
+
index = BigInt(deployWithFactoryFunctionData.args[2])
|
|
103
111
|
const initializeFunctionData = decodeFunctionData({
|
|
104
112
|
abi: KernelV3AccountAbi,
|
|
105
|
-
data:
|
|
113
|
+
data: deployWithFactoryFunctionData.args[1]
|
|
106
114
|
})
|
|
107
115
|
if (!initializeFunctionData) throw new Error("Invalid initCode")
|
|
108
116
|
if (initializeFunctionData.functionName === "initialize") {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zerodev/permissions",
|
|
3
|
-
"version": "5.2.1-alpha.
|
|
3
|
+
"version": "5.2.1-alpha.10",
|
|
4
4
|
"author": "ZeroDev",
|
|
5
5
|
"main": "./_cjs/index.js",
|
|
6
6
|
"module": "./_esm/index.js",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"scripts": {
|
|
25
25
|
"build": "bun run clean && bun run build:cjs && bun run build:esm && bun run build:types",
|
|
26
26
|
"build:cjs": "tsc --project ./tsconfig.build.json --module commonjs --outDir ./_cjs --removeComments --verbatimModuleSyntax false && printf '{\"type\":\"commonjs\"}' > ./_cjs/package.json",
|
|
27
|
-
"build:esm": "tsc --project ./tsconfig.build.json --module
|
|
27
|
+
"build:esm": "tsc --project ./tsconfig.build.json --module es2020 --outDir ./_esm && printf '{\"type\": \"module\",\"sideEffects\":false}' > ./_esm/package.json",
|
|
28
28
|
"build:types": "tsc --project ./tsconfig.build.json --module esnext --declarationDir ./_types --emitDeclarationOnly --declaration --declarationMap",
|
|
29
29
|
"clean": "rimraf _esm _cjs _types",
|
|
30
30
|
"changeset": "changeset",
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
},
|
|
58
58
|
"peerDependencies": {
|
|
59
59
|
"viem": "^2.0.0",
|
|
60
|
-
"@zerodev/sdk": "^5.2.1-alpha-
|
|
60
|
+
"@zerodev/sdk": "^5.2.1-alpha-1",
|
|
61
61
|
"permissionless": "^0.1.4"
|
|
62
62
|
}
|
|
63
63
|
}
|
package/policies/index.ts
CHANGED
|
@@ -10,4 +10,4 @@ export {
|
|
|
10
10
|
export { toCallPolicy, type CallPolicyParams } from "./toCallPolicy.js"
|
|
11
11
|
export { toPolicyId } from "./utils/toPolicyId.js"
|
|
12
12
|
export { toSudoPolicy, type SudoPolicyParams } from "./toSudoPolicy.js"
|
|
13
|
-
export {
|
|
13
|
+
export { CallType, ParamCondition } from "./types.js"
|
package/policies/toCallPolicy.ts
CHANGED
|
@@ -17,7 +17,7 @@ export type CallPolicyParams<
|
|
|
17
17
|
type?: "call"
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
export
|
|
20
|
+
export function toCallPolicy<
|
|
21
21
|
TAbi extends Abi | readonly unknown[],
|
|
22
22
|
TFunctionName extends string | undefined = string
|
|
23
23
|
>({
|
|
@@ -25,7 +25,7 @@ export async function toCallPolicy<
|
|
|
25
25
|
policyFlag = PolicyFlags.FOR_ALL_VALIDATION,
|
|
26
26
|
permissions = [],
|
|
27
27
|
type = "call"
|
|
28
|
-
}: CallPolicyParams<TAbi, TFunctionName>):
|
|
28
|
+
}: CallPolicyParams<TAbi, TFunctionName>): Policy {
|
|
29
29
|
const generatedPermissionParams = permissions?.map((perm) =>
|
|
30
30
|
getPermissionFromABI({
|
|
31
31
|
abi: perm.abi as Abi,
|
package/policies/toGasPolicy.ts
CHANGED
|
@@ -4,20 +4,20 @@ import { GAS_POLICY_CONTRACT } from "../constants.js"
|
|
|
4
4
|
import type { Policy, PolicyParams } from "../types.js"
|
|
5
5
|
|
|
6
6
|
export type GasPolicyParams = PolicyParams & {
|
|
7
|
-
allowed
|
|
7
|
+
allowed?: bigint
|
|
8
8
|
enforcePaymaster?: boolean
|
|
9
9
|
allowedPaymaster?: Address
|
|
10
10
|
type?: "gas"
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
-
export
|
|
13
|
+
export function toGasPolicy({
|
|
14
14
|
policyAddress = GAS_POLICY_CONTRACT,
|
|
15
15
|
policyFlag = PolicyFlags.FOR_ALL_VALIDATION,
|
|
16
|
-
allowed,
|
|
16
|
+
allowed = 0n,
|
|
17
17
|
enforcePaymaster = false,
|
|
18
18
|
allowedPaymaster = zeroAddress,
|
|
19
19
|
type = "gas"
|
|
20
|
-
}: GasPolicyParams):
|
|
20
|
+
}: GasPolicyParams): Policy {
|
|
21
21
|
return {
|
|
22
22
|
getPolicyData: () => {
|
|
23
23
|
return encodeAbiParameters(
|
|
@@ -10,14 +10,14 @@ export type RateLimitPolicyParams = PolicyParams & {
|
|
|
10
10
|
type?: "rate-limit"
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
-
export
|
|
13
|
+
export function toRateLimitPolicy({
|
|
14
14
|
policyAddress = RATE_LIMIT_POLICY_CONTRACT,
|
|
15
15
|
policyFlag = PolicyFlags.FOR_ALL_VALIDATION,
|
|
16
16
|
interval = 0,
|
|
17
17
|
count,
|
|
18
18
|
startAt = 0,
|
|
19
19
|
type = "rate-limit"
|
|
20
|
-
}: RateLimitPolicyParams):
|
|
20
|
+
}: RateLimitPolicyParams): Policy {
|
|
21
21
|
return {
|
|
22
22
|
getPolicyData: () => {
|
|
23
23
|
const intervalHex = interval.toString(16).padStart(12, "0")
|
|
@@ -8,12 +8,12 @@ export type SignatureCallerPolicyParams = PolicyParams & {
|
|
|
8
8
|
type?: "signature-caller"
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
export
|
|
11
|
+
export function toSignatureCallerPolicy({
|
|
12
12
|
policyAddress = SIGNATURE_POLICY_CONTRACT,
|
|
13
13
|
policyFlag = PolicyFlags.FOR_ALL_VALIDATION,
|
|
14
14
|
allowedCallers,
|
|
15
15
|
type = "signature-caller"
|
|
16
|
-
}: SignatureCallerPolicyParams):
|
|
16
|
+
}: SignatureCallerPolicyParams): Policy {
|
|
17
17
|
return {
|
|
18
18
|
getPolicyData: () => {
|
|
19
19
|
return encodeAbiParameters(
|
package/policies/toSudoPolicy.ts
CHANGED
|
@@ -6,11 +6,11 @@ export type SudoPolicyParams = PolicyParams & {
|
|
|
6
6
|
type?: "sudo"
|
|
7
7
|
}
|
|
8
8
|
|
|
9
|
-
export
|
|
9
|
+
export function toSudoPolicy({
|
|
10
10
|
policyAddress = SUDO_POLICY_CONTRACT,
|
|
11
11
|
policyFlag = PolicyFlags.FOR_ALL_VALIDATION,
|
|
12
12
|
type = "sudo"
|
|
13
|
-
}: SudoPolicyParams):
|
|
13
|
+
}: SudoPolicyParams): Policy {
|
|
14
14
|
return {
|
|
15
15
|
getPolicyData: () => {
|
|
16
16
|
return "0x"
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { constants } from "@zerodev/sdk"
|
|
2
|
+
import type { TypedData } from "abitype"
|
|
3
|
+
import { type Address, type TypedDataDefinition } from "viem"
|
|
4
|
+
import { toAccount } from "viem/accounts"
|
|
5
|
+
import { ECDSA_SIGNER_CONTRACT } from "../constants.js"
|
|
6
|
+
import type { ModularSigner } from "../types.js"
|
|
7
|
+
|
|
8
|
+
export function toEmptyECDSASigner(address: Address): ModularSigner {
|
|
9
|
+
const account = toAccount({
|
|
10
|
+
address,
|
|
11
|
+
async signMessage() {
|
|
12
|
+
throw new Error("Method not supported")
|
|
13
|
+
},
|
|
14
|
+
async signTransaction(_, __) {
|
|
15
|
+
throw new Error("Method not supported")
|
|
16
|
+
},
|
|
17
|
+
async signTypedData<
|
|
18
|
+
const TTypedData extends TypedData | Record<string, unknown>,
|
|
19
|
+
TPrimaryType extends
|
|
20
|
+
| keyof TTypedData
|
|
21
|
+
| "EIP712Domain" = keyof TTypedData
|
|
22
|
+
>(_typedData: TypedDataDefinition<TTypedData, TPrimaryType>) {
|
|
23
|
+
throw new Error("Method not supported")
|
|
24
|
+
}
|
|
25
|
+
})
|
|
26
|
+
return {
|
|
27
|
+
account,
|
|
28
|
+
signerContractAddress: ECDSA_SIGNER_CONTRACT,
|
|
29
|
+
getSignerData: () => {
|
|
30
|
+
return address
|
|
31
|
+
},
|
|
32
|
+
getDummySignature: () => constants.DUMMY_ECDSA_SIG
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { Buffer } from "buffer"
|
|
2
|
-
import { startAuthentication, startRegistration } from "@simplewebauthn/browser"
|
|
3
2
|
import { type Hex, keccak256 } from "viem"
|
|
4
3
|
import { type WebAuthnKey } from "./toWebAuthnSigner.js"
|
|
5
4
|
import { b64ToBytes, uint8ArrayToHexString } from "./webAuthnUtils.js"
|
|
@@ -33,6 +32,7 @@ export const toWebAuthnPubKey = async ({
|
|
|
33
32
|
const loginOptions = await loginOptionsResponse.json()
|
|
34
33
|
|
|
35
34
|
// Start authentication (login)
|
|
35
|
+
const { startAuthentication } = await import("@simplewebauthn/browser")
|
|
36
36
|
const loginCred = await startAuthentication(loginOptions)
|
|
37
37
|
|
|
38
38
|
// get authenticatorIdHash
|
|
@@ -88,6 +88,7 @@ export const toWebAuthnPubKey = async ({
|
|
|
88
88
|
sessionStorage.setItem("userId", registerOptions.userId)
|
|
89
89
|
|
|
90
90
|
// Start registration
|
|
91
|
+
const { startRegistration } = await import("@simplewebauthn/browser")
|
|
91
92
|
const registerCred = await startRegistration(registerOptions.options)
|
|
92
93
|
|
|
93
94
|
// get authenticatorIdHash
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { startAuthentication } from "@simplewebauthn/browser"
|
|
2
1
|
import type { PublicKeyCredentialRequestOptionsJSON } from "@simplewebauthn/typescript-types"
|
|
3
2
|
import type { TypedData } from "abitype"
|
|
4
3
|
import { SignTransactionNotSupportedBySmartAccount } from "permissionless/accounts"
|
|
@@ -112,6 +111,8 @@ export const toWebAuthnSigner = async <
|
|
|
112
111
|
}
|
|
113
112
|
|
|
114
113
|
// start authentication (signing)
|
|
114
|
+
|
|
115
|
+
const { startAuthentication } = await import("@simplewebauthn/browser")
|
|
115
116
|
const cred = await startAuthentication(assertionOptions)
|
|
116
117
|
|
|
117
118
|
// verify signature from server
|