@zerodev/sdk 4.2.3 → 4.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/dist/cjs/kernel-zerodev/abis/SessionKeyValidatorAbi.d.ts +58 -4
  2. package/dist/cjs/kernel-zerodev/abis/SessionKeyValidatorAbi.js +75 -4
  3. package/dist/cjs/kernel-zerodev/abis/SessionKeyValidatorAbi.js.map +1 -1
  4. package/dist/cjs/kernel-zerodev/constants.d.ts +1 -1
  5. package/dist/cjs/kernel-zerodev/constants.js +1 -1
  6. package/dist/cjs/kernel-zerodev/constants.js.map +1 -1
  7. package/dist/cjs/kernel-zerodev/validator/base.d.ts +1 -1
  8. package/dist/cjs/kernel-zerodev/validator/base.js +3 -3
  9. package/dist/cjs/kernel-zerodev/validator/base.js.map +1 -1
  10. package/dist/cjs/kernel-zerodev/validator/session-key-validator.d.ts +18 -7
  11. package/dist/cjs/kernel-zerodev/validator/session-key-validator.js +117 -63
  12. package/dist/cjs/kernel-zerodev/validator/session-key-validator.js.map +1 -1
  13. package/dist/cjs/kernel-zerodev/validator/types.d.ts +1 -1
  14. package/dist/cjs/kernel-zerodev/validator/types.js.map +1 -1
  15. package/dist/cjs/kernel-zerodev/validator-provider/base.js +9 -0
  16. package/dist/cjs/kernel-zerodev/validator-provider/base.js.map +1 -1
  17. package/dist/esm/kernel-zerodev/abis/SessionKeyValidatorAbi.d.ts +58 -4
  18. package/dist/esm/kernel-zerodev/abis/SessionKeyValidatorAbi.js +75 -4
  19. package/dist/esm/kernel-zerodev/abis/SessionKeyValidatorAbi.js.map +1 -1
  20. package/dist/esm/kernel-zerodev/constants.d.ts +1 -1
  21. package/dist/esm/kernel-zerodev/constants.js +1 -1
  22. package/dist/esm/kernel-zerodev/constants.js.map +1 -1
  23. package/dist/esm/kernel-zerodev/validator/base.d.ts +1 -1
  24. package/dist/esm/kernel-zerodev/validator/base.js +3 -3
  25. package/dist/esm/kernel-zerodev/validator/base.js.map +1 -1
  26. package/dist/esm/kernel-zerodev/validator/session-key-validator.d.ts +18 -7
  27. package/dist/esm/kernel-zerodev/validator/session-key-validator.js +118 -64
  28. package/dist/esm/kernel-zerodev/validator/session-key-validator.js.map +1 -1
  29. package/dist/esm/kernel-zerodev/validator/types.d.ts +1 -1
  30. package/dist/esm/kernel-zerodev/validator/types.js.map +1 -1
  31. package/dist/esm/kernel-zerodev/validator-provider/base.js +9 -0
  32. package/dist/esm/kernel-zerodev/validator-provider/base.js.map +1 -1
  33. package/dist/types/kernel-zerodev/abis/SessionKeyValidatorAbi.d.ts +58 -4
  34. package/dist/types/kernel-zerodev/abis/SessionKeyValidatorAbi.d.ts.map +1 -1
  35. package/dist/types/kernel-zerodev/constants.d.ts +1 -1
  36. package/dist/types/kernel-zerodev/validator/base.d.ts +1 -1
  37. package/dist/types/kernel-zerodev/validator/base.d.ts.map +1 -1
  38. package/dist/types/kernel-zerodev/validator/session-key-validator.d.ts +18 -7
  39. package/dist/types/kernel-zerodev/validator/session-key-validator.d.ts.map +1 -1
  40. package/dist/types/kernel-zerodev/validator/types.d.ts +1 -1
  41. package/dist/types/kernel-zerodev/validator/types.d.ts.map +1 -1
  42. package/dist/types/kernel-zerodev/validator-provider/base.d.ts.map +1 -1
  43. package/package.json +5 -4
  44. package/src/kernel-zerodev/__tests__/config/index.ts +18 -0
  45. package/src/kernel-zerodev/abis/SessionKeyValidatorAbi.ts +75 -4
  46. package/src/kernel-zerodev/constants.ts +1 -1
  47. package/src/kernel-zerodev/validator/base.ts +4 -4
  48. package/src/kernel-zerodev/validator/session-key-validator.ts +159 -88
  49. package/src/kernel-zerodev/validator/types.ts +1 -1
  50. package/src/kernel-zerodev/validator-provider/base.ts +13 -0
@@ -1,4 +1,8 @@
1
1
  export declare const SessionKeyValidatorAbi: readonly [{
2
+ readonly inputs: readonly [];
3
+ readonly name: "NotImplemented";
4
+ readonly type: "error";
5
+ }, {
2
6
  readonly inputs: readonly [{
3
7
  readonly internalType: "bytes";
4
8
  readonly name: "_data";
@@ -18,6 +22,56 @@ export declare const SessionKeyValidatorAbi: readonly [{
18
22
  readonly outputs: readonly [];
19
23
  readonly stateMutability: "payable";
20
24
  readonly type: "function";
25
+ }, {
26
+ readonly inputs: readonly [{
27
+ readonly internalType: "bytes32";
28
+ readonly name: "permissionKey";
29
+ readonly type: "bytes32";
30
+ }, {
31
+ readonly internalType: "address";
32
+ readonly name: "kernel";
33
+ readonly type: "address";
34
+ }];
35
+ readonly name: "executionStatus";
36
+ readonly outputs: readonly [{
37
+ readonly internalType: "ValidAfter";
38
+ readonly name: "validAfter";
39
+ readonly type: "uint48";
40
+ }, {
41
+ readonly internalType: "uint48";
42
+ readonly name: "runs";
43
+ readonly type: "uint48";
44
+ }];
45
+ readonly stateMutability: "view";
46
+ readonly type: "function";
47
+ }, {
48
+ readonly inputs: readonly [{
49
+ readonly internalType: "uint128";
50
+ readonly name: "nonce";
51
+ readonly type: "uint128";
52
+ }];
53
+ readonly name: "invalidateNonce";
54
+ readonly outputs: readonly [];
55
+ readonly stateMutability: "nonpayable";
56
+ readonly type: "function";
57
+ }, {
58
+ readonly inputs: readonly [{
59
+ readonly internalType: "address";
60
+ readonly name: "kernel";
61
+ readonly type: "address";
62
+ }];
63
+ readonly name: "nonces";
64
+ readonly outputs: readonly [{
65
+ readonly internalType: "uint128";
66
+ readonly name: "lastNonce";
67
+ readonly type: "uint128";
68
+ }, {
69
+ readonly internalType: "uint128";
70
+ readonly name: "invalidNonce";
71
+ readonly type: "uint128";
72
+ }];
73
+ readonly stateMutability: "view";
74
+ readonly type: "function";
21
75
  }, {
22
76
  readonly inputs: readonly [{
23
77
  readonly internalType: "address";
@@ -46,9 +100,9 @@ export declare const SessionKeyValidatorAbi: readonly [{
46
100
  readonly name: "paymaster";
47
101
  readonly type: "address";
48
102
  }, {
49
- readonly internalType: "bool";
50
- readonly name: "enabled";
51
- readonly type: "bool";
103
+ readonly internalType: "uint256";
104
+ readonly name: "nonce";
105
+ readonly type: "uint256";
52
106
  }];
53
107
  readonly stateMutability: "view";
54
108
  readonly type: "function";
@@ -140,7 +194,7 @@ export declare const SessionKeyValidatorAbi: readonly [{
140
194
  readonly type: "tuple";
141
195
  }, {
142
196
  readonly internalType: "bytes32";
143
- readonly name: "userOpHash";
197
+ readonly name: "";
144
198
  readonly type: "bytes32";
145
199
  }, {
146
200
  readonly internalType: "uint256";
@@ -1 +1 @@
1
- {"version":3,"file":"SessionKeyValidatorAbi.d.ts","sourceRoot":"","sources":["../../../../src/kernel-zerodev/abis/SessionKeyValidatorAbi.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6MzB,CAAC"}
1
+ {"version":3,"file":"SessionKeyValidatorAbi.d.ts","sourceRoot":"","sources":["../../../../src/kernel-zerodev/abis/SessionKeyValidatorAbi.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoRzB,CAAC"}
@@ -16,7 +16,7 @@ export declare const KILL_SWITCH_ACTION = "0x3f38e479304c7F18F988269a1bDa7d646bd
16
16
  export declare const DUMMY_ECDSA_SIG = "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c";
17
17
  export declare const ERC165_SESSION_KEY_VALIDATOR_ADDRESS = "0xe149290800De29D4b0BF9dB82c508255D81902E6";
18
18
  export declare const TOKEN_ACTION = "0x2087C7FfD0d0DAE80a00EE74325aBF3449e0eaf1";
19
- export declare const SESSION_KEY_VALIDATOR_ADDRESS = "0x1C1D5b70aD6e0c04366aab100261A6Bcc251EA3f";
19
+ export declare const SESSION_KEY_VALIDATOR_ADDRESS = "0xB8E3c4bEaACAd06f6092793012DA4a8cB23D6123";
20
20
  export declare const RECOVERY_VALIDATOR_ADDRESS = "0x4fd47D861c349bD49DC61341a922cb72F9dF7E8d";
21
21
  export declare const RECOVERY_ACTION = "0x2f65dB8039fe5CAEE0a8680D2879deB800F31Ae1";
22
22
  export declare const oneAddress = "0x0000000000000000000000000000000000000001";
@@ -35,7 +35,7 @@ export declare abstract class KernelBaseValidator {
35
35
  constructor(params: KernelBaseValidatorParams);
36
36
  abstract encodeEnable(enableData: Hex): Hex;
37
37
  abstract encodeDisable(enableData: Hex): Hex;
38
- abstract getEnableData(): Promise<Hex>;
38
+ abstract getEnableData(kernelAccountAddress?: Address): Promise<Hex>;
39
39
  abstract signMessage(message: Uint8Array | string | Hex): Promise<Hex>;
40
40
  abstract signTypedData(params: SignTypedDataParams): Promise<Hex>;
41
41
  abstract signUserOp(userOp: UserOperationRequest): Promise<Hex>;
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/kernel-zerodev/validator/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/kernel-zerodev/validator/base.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,6 @@ import { type Address, type Hex, type SmartAccountSigner, type UserOperationRequ
2
2
  import { KernelBaseValidator, type KernelBaseValidatorParams, type ValidatorPluginData } from "./base.js";
3
3
  import { type GetAbiItemParameters } from "viem";
4
4
  import { MerkleTree } from "merkletreejs";
5
- import { Operation } from "../provider.js";
6
5
  import type { GetAbiItemReturnType } from "viem/dist/types/utils/abi/getAbiItem.js";
7
6
  import type { GeneratePermissionFromArgsParameters } from "./types.js";
8
7
  export interface SessionKeyValidatorParams extends KernelBaseValidatorParams {
@@ -22,6 +21,15 @@ export declare enum ParamOperator {
22
21
  LESS_THAN_OR_EQUAL = 4,
23
22
  NOT_EQUAL = 5
24
23
  }
24
+ export type SessionNonces = {
25
+ lastNonce: bigint;
26
+ invalidNonce: bigint;
27
+ };
28
+ export type ExecutionRule = {
29
+ validAfter: number;
30
+ interval: number;
31
+ runs: number;
32
+ };
25
33
  export interface ParamRules {
26
34
  offset: number;
27
35
  condition: ParamOperator;
@@ -29,10 +37,11 @@ export interface ParamRules {
29
37
  }
30
38
  export type Permission = {
31
39
  target: Address;
40
+ index?: number;
32
41
  rules?: ParamRules[];
33
42
  sig?: Hex;
34
43
  valueLimit?: bigint;
35
- operation?: Operation;
44
+ executionRule?: ExecutionRule;
36
45
  };
37
46
  export interface SessionKeyData {
38
47
  validUntil: number;
@@ -41,7 +50,7 @@ export interface SessionKeyData {
41
50
  permissions?: Permission[];
42
51
  }
43
52
  export declare function getAbiItem<TAbi extends Abi | readonly unknown[], TItemName extends string>({ abi, args, name, }: GetAbiItemParameters<TAbi, TItemName>): GetAbiItemReturnType<TAbi, TItemName>;
44
- export declare function getPermissionFromABI<TAbi extends Abi | readonly unknown[], TFunctionName extends string | undefined = string>({ abi, target, args, functionName, operation, valueLimit, }: GeneratePermissionFromArgsParameters<TAbi, TFunctionName>): Permission;
53
+ export declare function getPermissionFromABI<TAbi extends Abi | readonly unknown[], TFunctionName extends string | undefined = string>({ abi, target, args, functionName, valueLimit, }: GeneratePermissionFromArgsParameters<TAbi, TFunctionName>): Permission;
45
54
  export declare class SessionKeyValidator extends KernelBaseValidator {
46
55
  protected sessionKey: SmartAccountSigner;
47
56
  sessionKeyData: SessionKeyData;
@@ -49,19 +58,21 @@ export declare class SessionKeyValidator extends KernelBaseValidator {
49
58
  constructor(params: SessionKeyValidatorParams);
50
59
  static init(params: SessionKeyValidatorParams): Promise<SessionKeyValidator>;
51
60
  shouldDelegateViaFallback(): boolean;
52
- findMatchingPermission(callData: Hex): Permission | undefined;
53
- private filterByOperation;
61
+ findMatchingPermissions(callData: Hex): Permission | Permission[] | undefined;
62
+ private filterPermissions;
54
63
  private filterBySignature;
55
64
  private findPermissionByRule;
56
65
  private getFormattedHex;
57
66
  private evaluateRuleCondition;
58
67
  getMerkleTree(): MerkleTree;
59
- encodePermissionData(permission: Permission, merkleProof?: string[]): Hex;
68
+ encodePermissionData(permission: Permission | Permission[], merkleProof?: string[] | string[][]): Hex;
60
69
  getSessionData(): SessionKeyParams;
61
70
  signer(): Promise<SmartAccountSigner>;
62
- getEnableData(): Promise<Hex>;
71
+ getSessionNonces(kernelAccountAddress: Address): Promise<SessionNonces>;
72
+ getEnableData(kernelAccountAddress?: Address, enabledLastNonce?: bigint): Promise<Hex>;
63
73
  isPluginEnabled(kernelAccountAddress: Address, selector: Hex): Promise<boolean>;
64
74
  getDummyUserOpSignature(callData: Hex): Promise<Hex>;
75
+ private getEncodedPermissionProofData;
65
76
  encodeEnable(sessionKeyEnableData: Hex): Hex;
66
77
  encodeDisable(sessionKey: Hex): Hex;
67
78
  signMessage(message: string | Uint8Array): Promise<Hex>;
@@ -1 +1 @@
1
- {"version":3,"file":"session-key-validator.d.ts","sourceRoot":"","sources":["../../../../src/kernel-zerodev/validator/session-key-validator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-key-validator.d.ts","sourceRoot":"","sources":["../../../../src/kernel-zerodev/validator/session-key-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,OAAO,EACZ,KAAK,GAAG,EACR,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EAEzB,KAAK,mBAAmB,EACxB,KAAK,GAAG,EACT,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,mBAAmB,EAEnB,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EACzB,MAAM,WAAW,CAAC;AACnB,OAAO,EAYL,KAAK,oBAAoB,EAE1B,MAAM,MAAM,CAAC;AAKd,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAEpF,OAAO,KAAK,EAEV,oCAAoC,EACrC,MAAM,YAAY,CAAC;AASpB,MAAM,WAAW,yBAA0B,SAAQ,yBAAyB;IAC1E,UAAU,EAAE,kBAAkB,CAAC;IAC/B,cAAc,EAAE,cAAc,CAAC;CAChC;AAED,MAAM,MAAM,gBAAgB,GAAG,IAAI,CACjC,yBAAyB,EACzB,gBAAgB,GAAG,iBAAiB,CACrC,GACC,mBAAmB,GAAG;IACpB,iBAAiB,CAAC,EAAE,GAAG,CAAC;IACxB,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEJ,oBAAY,aAAa;IACvB,KAAK,IAAI;IACT,YAAY,IAAI;IAChB,SAAS,IAAI;IACb,qBAAqB,IAAI;IACzB,kBAAkB,IAAI;IACtB,SAAS,IAAI;CACd;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AACF,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,aAAa,CAAC;IACzB,KAAK,EAAE,GAAG,CAAC;CACZ;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;CAC5B;AAED,wBAAgB,UAAU,CACxB,IAAI,SAAS,GAAG,GAAG,SAAS,OAAO,EAAE,EACrC,SAAS,SAAS,MAAM,EACxB,EACA,GAAG,EACH,IAAS,EACT,IAAI,GACL,EAAE,oBAAoB,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,oBAAoB,CAC7D,IAAI,EACJ,SAAS,CACV,CAyBA;AAED,wBAAgB,oBAAoB,CAClC,IAAI,SAAS,GAAG,GAAG,SAAS,OAAO,EAAE,EACrC,aAAa,SAAS,MAAM,GAAG,SAAS,GAAG,MAAM,EACjD,EACA,GAAG,EACH,MAAM,EACN,IAAI,EACJ,YAAY,EACZ,UAAU,GACX,EAAE,oCAAoC,CAAC,IAAI,EAAE,aAAa,CAAC,GAAG,UAAU,CAkCxE;AAED,qBAAa,mBAAoB,SAAQ,mBAAmB;IAC1D,SAAS,CAAC,UAAU,EAAE,kBAAkB,CAAC;IACzC,cAAc,EAAE,cAAc,CAAC;IAC/B,UAAU,EAAE,UAAU,CAAC;gBAEX,MAAM,EAAE,yBAAyB;WA+BzB,IAAI,CACtB,MAAM,EAAE,yBAAyB,GAChC,OAAO,CAAC,mBAAmB,CAAC;IAU/B,yBAAyB,IAAI,OAAO;IAIpC,uBAAuB,CACrB,QAAQ,EAAE,GAAG,GACZ,UAAU,GAAG,UAAU,EAAE,GAAG,SAAS;IA8BxC,OAAO,CAAC,iBAAiB;IA4DzB,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,oBAAoB;IAmB5B,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,qBAAqB;IAuB7B,aAAa,IAAI,UAAU;IAsB3B,oBAAoB,CAClB,UAAU,EAAE,UAAU,GAAG,UAAU,EAAE,EACrC,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE,GAClC,GAAG;IA+EN,cAAc,IAAI,gBAAgB;IAc5B,MAAM,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAIrC,gBAAgB,CACpB,oBAAoB,EAAE,OAAO,GAC5B,OAAO,CAAC,aAAa,CAAC;IAanB,aAAa,CACjB,oBAAoB,CAAC,EAAE,OAAO,EAC9B,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,GAAG,CAAC;IAoBT,eAAe,CACnB,oBAAoB,EAAE,OAAO,EAC7B,QAAQ,EAAE,GAAG,GACZ,OAAO,CAAC,OAAO,CAAC;IAkCb,uBAAuB,CAAC,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAQ1D,OAAO,CAAC,6BAA6B;IAiCrC,YAAY,CAAC,oBAAoB,EAAE,GAAG,GAAG,GAAG;IAQ5C,aAAa,CAAC,UAAU,EAAE,GAAG,GAAG,GAAG;IAQ7B,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC;IAIvD,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC;IAIxD,UAAU,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC;CAqB7D"}
@@ -47,7 +47,7 @@ export type GetFunctionArgs<TAbi extends Abi | readonly unknown[], TFunctionName
47
47
  } : {
48
48
  args?: TArgs;
49
49
  };
50
- export type GeneratePermissionFromArgsParameters<TAbi extends Abi | readonly unknown[], TFunctionName extends string | undefined = string, _FunctionName = TAbi extends Abi ? InferFunctionName<TAbi, TFunctionName> : never> = Pick<Permission, "operation" | "target" | "valueLimit"> & {
50
+ export type GeneratePermissionFromArgsParameters<TAbi extends Abi | readonly unknown[], TFunctionName extends string | undefined = string, _FunctionName = TAbi extends Abi ? InferFunctionName<TAbi, TFunctionName> : never> = Pick<Permission, "target" | "valueLimit"> & {
51
51
  functionName?: _FunctionName;
52
52
  } & (TFunctionName extends string ? {
53
53
  abi: Narrow<TAbi>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/kernel-zerodev/validator/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/kernel-zerodev/validator/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/kernel-zerodev/validator-provider/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,KAAK,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAC7E,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EAC1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EACV,4BAA4B,EAC5B,eAAe,EACf,eAAe,EAChB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAEL,KAAK,wBAAwB,EAE9B,MAAM,eAAe,CAAC;AAGvB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,MAAM,2BAA2B,CAAC,CAAC,SAAS,yBAAyB,IAAI;IAC7E,eAAe,CAAC,EAAE,eAAe,CAAC,eAAe,CAAC,CAAC;IACnD,cAAc,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAChD,aAAa,CAAC,EAAE,IAAI,CAClB,wBAAwB,EACxB,MAAM,+BAA+B,CAAC,CAAC,CAAC,CACzC,CAAC;IACF,eAAe,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,MAAM,+BAA+B,CAAC,CAAC,CAAC,CAAC,CAAC;CACrE,CAAC;AAEF,MAAM,WAAW,uBAAuB,CAAC,CAAC,SAAS,yBAAyB;IAC1E,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,4BAA4B,CAAC;IAC/C,IAAI,CAAC,EAAE,2BAA2B,CAAC,CAAC,CAAC,CAAC;IACtC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,iBAAiB,CACjC,mBAAmB,EACnB,yBAAyB,CAC1B,CAAC;CACH;AAED,MAAM,MAAM,+BAA+B,CACzC,CAAC,SAAS,yBAAyB,IACjC,uBAAuB,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;AAIlD,8BAAsB,iBAAiB,CACrC,CAAC,SAAS,mBAAmB,EAC7B,CAAC,SAAS,yBAAyB,CACnC,SAAQ,eAAe;IACvB,SAAS,CAAC,eAAe,CAAC,EAAE,iBAAiB,CAC3C,mBAAmB,EACnB,yBAAyB,CAC1B,CAAC;gBAEA,MAAM,EAAE,+BAA+B,CAAC,CAAC,CAAC,EAC1C,SAAS,EAAE,mBAAmB;IA6ChC,YAAY,QAAO,CAAC,CAOlB;IAEF,oBAAoB,eAAsB,GAAG,KAAG,QAAQ,GAAG,CAAC,CAO1D;IAEF,qBAAqB,iBAAuB,GAAG,KAAU,QAAQ,GAAG,CAAC,CAOnE;IAEF,uBAAuB,eACT,GAAG,KACd,QAAQ,uBAAuB,CAAC,CAYjC;IAEF,wBAAwB,iBACT,GAAG,KACf,QAAQ,uBAAuB,CAAC,CAejC;CACH"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/kernel-zerodev/validator-provider/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,KAAK,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAC7E,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EAC1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EACV,4BAA4B,EAC5B,eAAe,EACf,eAAe,EAChB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAEL,KAAK,wBAAwB,EAE9B,MAAM,eAAe,CAAC;AAGvB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,MAAM,2BAA2B,CAAC,CAAC,SAAS,yBAAyB,IAAI;IAC7E,eAAe,CAAC,EAAE,eAAe,CAAC,eAAe,CAAC,CAAC;IACnD,cAAc,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAChD,aAAa,CAAC,EAAE,IAAI,CAClB,wBAAwB,EACxB,MAAM,+BAA+B,CAAC,CAAC,CAAC,CACzC,CAAC;IACF,eAAe,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,MAAM,+BAA+B,CAAC,CAAC,CAAC,CAAC,CAAC;CACrE,CAAC;AAEF,MAAM,WAAW,uBAAuB,CAAC,CAAC,SAAS,yBAAyB;IAC1E,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,4BAA4B,CAAC;IAC/C,IAAI,CAAC,EAAE,2BAA2B,CAAC,CAAC,CAAC,CAAC;IACtC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,iBAAiB,CACjC,mBAAmB,EACnB,yBAAyB,CAC1B,CAAC;CACH;AAED,MAAM,MAAM,+BAA+B,CACzC,CAAC,SAAS,yBAAyB,IACjC,uBAAuB,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;AAIlD,8BAAsB,iBAAiB,CACrC,CAAC,SAAS,mBAAmB,EAC7B,CAAC,SAAS,yBAAyB,CACnC,SAAQ,eAAe;IACvB,SAAS,CAAC,eAAe,CAAC,EAAE,iBAAiB,CAC3C,mBAAmB,EACnB,yBAAyB,CAC1B,CAAC;gBAEA,MAAM,EAAE,+BAA+B,CAAC,CAAC,CAAC,EAC1C,SAAS,EAAE,mBAAmB;IA0DhC,YAAY,QAAO,CAAC,CAOlB;IAEF,oBAAoB,eAAsB,GAAG,KAAG,QAAQ,GAAG,CAAC,CAO1D;IAEF,qBAAqB,iBAAuB,GAAG,KAAU,QAAQ,GAAG,CAAC,CAOnE;IAEF,uBAAuB,eACT,GAAG,KACd,QAAQ,uBAAuB,CAAC,CAYjC;IAEF,wBAAwB,iBACT,GAAG,KACf,QAAQ,uBAAuB,CAAC,CAejC;CACH"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zerodev/sdk",
3
- "version": "4.2.3",
3
+ "version": "4.3.0",
4
4
  "description": "A collection of ERC-4337 compliant smart contract account interfaces",
5
5
  "author": "ZeroDev",
6
6
  "license": "MIT",
@@ -65,10 +65,11 @@
65
65
  "homepage": "https://github.com/zerodevapp/sdk/blob/main/README.md#readme",
66
66
  "gitHead": "19ba05a77e4f7a0e04f44f34eaecf675fe2c12f2",
67
67
  "dependencies": {
68
+ "@alchemy/aa-core": "0.1.0-alpha.23",
69
+ "@alchemy/aa-ethers": "0.1.0-alpha.23",
70
+ "@openzeppelin/merkle-tree": "^1.0.5",
68
71
  "axios": "^1.4.0",
69
72
  "merkletreejs": "^0.3.10",
70
- "viem": "^1.5.3",
71
- "@alchemy/aa-core": "0.1.0-alpha.23",
72
- "@alchemy/aa-ethers": "0.1.0-alpha.23"
73
+ "viem": "^1.5.3"
73
74
  }
74
75
  }
@@ -0,0 +1,18 @@
1
+ import { polygonMumbai } from "viem/chains";
2
+ import { generatePrivateKey } from "viem/accounts";
3
+ import { type Hex } from "viem";
4
+
5
+ export const config = {
6
+ privateKey: (process.env.PRIVATE_KEY as Hex) ?? generatePrivateKey(),
7
+ ownerWallet: process.env.OWNER_WALLET,
8
+ mockWallet: "0x48D4d3536cDe7A257087206870c6B6E76e3D4ff4",
9
+ chain: polygonMumbai,
10
+ rpcProvider: "https://mumbai-bundler.etherspot.io/",
11
+ validatorAddress: "0xd9AB5096a832b9ce79914329DAEE236f8Eea0390" as Hex,
12
+ accountFactoryAddress: "0x5de4839a76cf55d0c90e2061ef4386d962E15ae3" as Hex,
13
+ entryPointAddress: "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789" as Hex,
14
+ // Turn off all policies related to gas sponsorship for this projectId
15
+ // To make all the testcases pass
16
+ projectId: "8db3f9f0-f8d0-4c69-9bc6-5c522ee25844",
17
+ projectIdWithGasSponsorship: "c73037ef-8c0b-48be-a581-1f3d161151d3",
18
+ };
@@ -1,4 +1,9 @@
1
1
  export const SessionKeyValidatorAbi = [
2
+ {
3
+ inputs: [],
4
+ name: "NotImplemented",
5
+ type: "error",
6
+ },
2
7
  {
3
8
  inputs: [
4
9
  {
@@ -25,6 +30,72 @@ export const SessionKeyValidatorAbi = [
25
30
  stateMutability: "payable",
26
31
  type: "function",
27
32
  },
33
+ {
34
+ inputs: [
35
+ {
36
+ internalType: "bytes32",
37
+ name: "permissionKey",
38
+ type: "bytes32",
39
+ },
40
+ {
41
+ internalType: "address",
42
+ name: "kernel",
43
+ type: "address",
44
+ },
45
+ ],
46
+ name: "executionStatus",
47
+ outputs: [
48
+ {
49
+ internalType: "ValidAfter",
50
+ name: "validAfter",
51
+ type: "uint48",
52
+ },
53
+ {
54
+ internalType: "uint48",
55
+ name: "runs",
56
+ type: "uint48",
57
+ },
58
+ ],
59
+ stateMutability: "view",
60
+ type: "function",
61
+ },
62
+ {
63
+ inputs: [
64
+ {
65
+ internalType: "uint128",
66
+ name: "nonce",
67
+ type: "uint128",
68
+ },
69
+ ],
70
+ name: "invalidateNonce",
71
+ outputs: [],
72
+ stateMutability: "nonpayable",
73
+ type: "function",
74
+ },
75
+ {
76
+ inputs: [
77
+ {
78
+ internalType: "address",
79
+ name: "kernel",
80
+ type: "address",
81
+ },
82
+ ],
83
+ name: "nonces",
84
+ outputs: [
85
+ {
86
+ internalType: "uint128",
87
+ name: "lastNonce",
88
+ type: "uint128",
89
+ },
90
+ {
91
+ internalType: "uint128",
92
+ name: "invalidNonce",
93
+ type: "uint128",
94
+ },
95
+ ],
96
+ stateMutability: "view",
97
+ type: "function",
98
+ },
28
99
  {
29
100
  inputs: [
30
101
  {
@@ -61,9 +132,9 @@ export const SessionKeyValidatorAbi = [
61
132
  type: "address",
62
133
  },
63
134
  {
64
- internalType: "bool",
65
- name: "enabled",
66
- type: "bool",
135
+ internalType: "uint256",
136
+ name: "nonce",
137
+ type: "uint256",
67
138
  },
68
139
  ],
69
140
  stateMutability: "view",
@@ -183,7 +254,7 @@ export const SessionKeyValidatorAbi = [
183
254
  },
184
255
  {
185
256
  internalType: "bytes32",
186
- name: "userOpHash",
257
+ name: "",
187
258
  type: "bytes32",
188
259
  },
189
260
  {
@@ -26,7 +26,7 @@ export const ERC165_SESSION_KEY_VALIDATOR_ADDRESS =
26
26
  "0xe149290800De29D4b0BF9dB82c508255D81902E6";
27
27
  export const TOKEN_ACTION = "0x2087C7FfD0d0DAE80a00EE74325aBF3449e0eaf1";
28
28
  export const SESSION_KEY_VALIDATOR_ADDRESS =
29
- "0x1C1D5b70aD6e0c04366aab100261A6Bcc251EA3f";
29
+ "0xB8E3c4bEaACAd06f6092793012DA4a8cB23D6123";
30
30
  export const RECOVERY_VALIDATOR_ADDRESS =
31
31
  "0x4fd47D861c349bD49DC61341a922cb72F9dF7E8d";
32
32
  export const RECOVERY_ACTION = "0x2f65dB8039fe5CAEE0a8680D2879deB800F31Ae1";
@@ -93,7 +93,7 @@ export abstract class KernelBaseValidator {
93
93
 
94
94
  abstract encodeDisable(enableData: Hex): Hex;
95
95
 
96
- abstract getEnableData(): Promise<Hex>;
96
+ abstract getEnableData(kernelAccountAddress?: Address): Promise<Hex>;
97
97
 
98
98
  abstract signMessage(message: Uint8Array | string | Hex): Promise<Hex>;
99
99
 
@@ -141,7 +141,7 @@ export abstract class KernelBaseValidator {
141
141
  calldata
142
142
  );
143
143
  if (validatorMode === ValidatorMode.enable) {
144
- const enableData = await this.getEnableData();
144
+ const enableData = await this.getEnableData(kernelAccountAddress);
145
145
  const enableDataLength = enableData.length / 2 - 1;
146
146
  const enableSigLength = 65;
147
147
  const staticDummySig = concatHex([
@@ -241,7 +241,7 @@ export abstract class KernelBaseValidator {
241
241
  { size: 32 }
242
242
  ),
243
243
  executor: executor as Address,
244
- enableData: await validator.getEnableData(),
244
+ enableData: await validator.getEnableData(kernel),
245
245
  },
246
246
  primaryType: "ValidatorApproved",
247
247
  });
@@ -297,7 +297,7 @@ export abstract class KernelBaseValidator {
297
297
  if (mode === ValidatorMode.sudo || mode === ValidatorMode.plugin) {
298
298
  return concatHex([this.mode, await this.signUserOp(userOp)]);
299
299
  } else {
300
- const enableData = await this.getEnableData();
300
+ const enableData = await this.getEnableData(userOp.sender);
301
301
  const enableDataLength = enableData.length / 2 - 1;
302
302
  const enableSignature = this.getEnableSignature();
303
303
  if (!enableSignature) {