@zerodev/sdk 4.0.10 → 4.0.12

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 (56) hide show
  1. package/README.md +20 -4
  2. package/dist/cjs/kernel-zerodev/constants.d.ts +3 -3
  3. package/dist/cjs/kernel-zerodev/constants.js +3 -3
  4. package/dist/cjs/kernel-zerodev/constants.js.map +1 -1
  5. package/dist/cjs/kernel-zerodev/middleware/paymaster.js +11 -4
  6. package/dist/cjs/kernel-zerodev/middleware/paymaster.js.map +1 -1
  7. package/dist/cjs/kernel-zerodev/paymaster/base.d.ts +3 -2
  8. package/dist/cjs/kernel-zerodev/paymaster/base.js +2 -1
  9. package/dist/cjs/kernel-zerodev/paymaster/base.js.map +1 -1
  10. package/dist/cjs/kernel-zerodev/paymaster/token-paymaster.d.ts +1 -1
  11. package/dist/cjs/kernel-zerodev/paymaster/token-paymaster.js +5 -7
  12. package/dist/cjs/kernel-zerodev/paymaster/token-paymaster.js.map +1 -1
  13. package/dist/cjs/kernel-zerodev/paymaster/verifying-paymaster.d.ts +1 -1
  14. package/dist/cjs/kernel-zerodev/paymaster/verifying-paymaster.js +5 -7
  15. package/dist/cjs/kernel-zerodev/paymaster/verifying-paymaster.js.map +1 -1
  16. package/dist/cjs/kernel-zerodev/provider.js +16 -12
  17. package/dist/cjs/kernel-zerodev/provider.js.map +1 -1
  18. package/dist/cjs/kernel-zerodev/validator/kill-switch-validator.js +7 -0
  19. package/dist/cjs/kernel-zerodev/validator/kill-switch-validator.js.map +1 -1
  20. package/dist/esm/kernel-zerodev/constants.d.ts +3 -3
  21. package/dist/esm/kernel-zerodev/constants.js +3 -3
  22. package/dist/esm/kernel-zerodev/constants.js.map +1 -1
  23. package/dist/esm/kernel-zerodev/middleware/paymaster.js +11 -4
  24. package/dist/esm/kernel-zerodev/middleware/paymaster.js.map +1 -1
  25. package/dist/esm/kernel-zerodev/paymaster/base.d.ts +3 -2
  26. package/dist/esm/kernel-zerodev/paymaster/base.js +2 -1
  27. package/dist/esm/kernel-zerodev/paymaster/base.js.map +1 -1
  28. package/dist/esm/kernel-zerodev/paymaster/token-paymaster.d.ts +1 -1
  29. package/dist/esm/kernel-zerodev/paymaster/token-paymaster.js +5 -7
  30. package/dist/esm/kernel-zerodev/paymaster/token-paymaster.js.map +1 -1
  31. package/dist/esm/kernel-zerodev/paymaster/verifying-paymaster.d.ts +1 -1
  32. package/dist/esm/kernel-zerodev/paymaster/verifying-paymaster.js +5 -7
  33. package/dist/esm/kernel-zerodev/paymaster/verifying-paymaster.js.map +1 -1
  34. package/dist/esm/kernel-zerodev/provider.js +16 -12
  35. package/dist/esm/kernel-zerodev/provider.js.map +1 -1
  36. package/dist/esm/kernel-zerodev/validator/kill-switch-validator.js +7 -0
  37. package/dist/esm/kernel-zerodev/validator/kill-switch-validator.js.map +1 -1
  38. package/dist/types/kernel-zerodev/constants.d.ts +3 -3
  39. package/dist/types/kernel-zerodev/constants.d.ts.map +1 -1
  40. package/dist/types/kernel-zerodev/middleware/paymaster.d.ts.map +1 -1
  41. package/dist/types/kernel-zerodev/paymaster/base.d.ts +3 -2
  42. package/dist/types/kernel-zerodev/paymaster/base.d.ts.map +1 -1
  43. package/dist/types/kernel-zerodev/paymaster/token-paymaster.d.ts +1 -1
  44. package/dist/types/kernel-zerodev/paymaster/token-paymaster.d.ts.map +1 -1
  45. package/dist/types/kernel-zerodev/paymaster/verifying-paymaster.d.ts +1 -1
  46. package/dist/types/kernel-zerodev/paymaster/verifying-paymaster.d.ts.map +1 -1
  47. package/dist/types/kernel-zerodev/provider.d.ts.map +1 -1
  48. package/dist/types/kernel-zerodev/validator/kill-switch-validator.d.ts.map +1 -1
  49. package/package.json +5 -10
  50. package/src/kernel-zerodev/constants.ts +3 -3
  51. package/src/kernel-zerodev/middleware/paymaster.ts +11 -4
  52. package/src/kernel-zerodev/paymaster/base.ts +6 -2
  53. package/src/kernel-zerodev/paymaster/token-paymaster.ts +7 -8
  54. package/src/kernel-zerodev/paymaster/verifying-paymaster.ts +7 -8
  55. package/src/kernel-zerodev/provider.ts +23 -21
  56. package/src/kernel-zerodev/validator/kill-switch-validator.ts +8 -0
@@ -4,14 +4,15 @@ import type { PaymasterAndBundlerProviders } from "./types.js";
4
4
  export declare abstract class Paymaster {
5
5
  protected provider: ZeroDevProvider;
6
6
  constructor(provider: ZeroDevProvider);
7
- abstract getPaymasterResponse(struct: UserOperationStruct, paymasterProvider?: PaymasterAndBundlerProviders): Promise<UserOperationStruct>;
8
- protected signUserOp({ userOp, callData, gasTokenAddress, erc20UserOp, erc20CallData, paymasterProvider, }: {
7
+ abstract getPaymasterResponse(struct: UserOperationStruct, paymasterProvider?: PaymasterAndBundlerProviders, shouldOverrideFee?: boolean): Promise<UserOperationStruct | undefined>;
8
+ protected signUserOp({ userOp, callData, gasTokenAddress, erc20UserOp, erc20CallData, paymasterProvider, shouldOverrideFee, }: {
9
9
  userOp: UserOperationStruct;
10
10
  callData?: PromiseOrValue<BytesLike>;
11
11
  gasTokenAddress?: string;
12
12
  erc20UserOp?: Partial<UserOperationStruct>;
13
13
  erc20CallData?: PromiseOrValue<BytesLike>;
14
14
  paymasterProvider?: PaymasterAndBundlerProviders;
15
+ shouldOverrideFee?: boolean;
15
16
  }): Promise<any>;
16
17
  }
17
18
  //# sourceMappingURL=base.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/kernel-zerodev/paymaster/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,mBAAmB,EAEzB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAG/D,8BAAsB,SAAS;IACjB,SAAS,CAAC,QAAQ,EAAE,eAAe;gBAAzB,QAAQ,EAAE,eAAe;IAC/C,QAAQ,CAAC,oBAAoB,CAC3B,MAAM,EAAE,mBAAmB,EAC3B,iBAAiB,CAAC,EAAE,4BAA4B,GAC/C,OAAO,CAAC,mBAAmB,CAAC;cACf,UAAU,CAAC,EACzB,MAAM,EACN,QAAQ,EACR,eAAe,EACf,WAAW,EACX,aAAa,EACb,iBAAiB,GAClB,EAAE;QACD,MAAM,EAAE,mBAAmB,CAAC;QAC5B,QAAQ,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;QACrC,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,WAAW,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;QAC3C,aAAa,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;QAC1C,iBAAiB,CAAC,EAAE,4BAA4B,CAAC;KAClD,GAAG,OAAO,CAAC,GAAG,CAAC;CAyCjB"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/kernel-zerodev/paymaster/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,mBAAmB,EAEzB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAG/D,8BAAsB,SAAS;IACjB,SAAS,CAAC,QAAQ,EAAE,eAAe;gBAAzB,QAAQ,EAAE,eAAe;IAC/C,QAAQ,CAAC,oBAAoB,CAC3B,MAAM,EAAE,mBAAmB,EAC3B,iBAAiB,CAAC,EAAE,4BAA4B,EAChD,iBAAiB,CAAC,EAAE,OAAO,GAC1B,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;cAC3B,UAAU,CAAC,EACzB,MAAM,EACN,QAAQ,EACR,eAAe,EACf,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,iBAAyB,GAC1B,EAAE;QACD,MAAM,EAAE,mBAAmB,CAAC;QAC5B,QAAQ,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;QACrC,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,WAAW,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;QAC3C,aAAa,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;QAC1C,iBAAiB,CAAC,EAAE,4BAA4B,CAAC;QACjD,iBAAiB,CAAC,EAAE,OAAO,CAAC;KAC7B,GAAG,OAAO,CAAC,GAAG,CAAC;CA0CjB"}
@@ -10,6 +10,6 @@ export declare class TokenPaymaster extends Paymaster {
10
10
  getPaymasterAddress(): Promise<Hex | undefined>;
11
11
  decodeMainCallFromCallData(kernelAddress: PromiseOrValue<string>, callData: PromiseOrValue<BytesLike>): Promise<UserOperationCallDataWithDelegate | undefined>;
12
12
  getERC20UserOp(struct: UserOperationStruct, mainCall: UserOperationCallDataWithDelegate, gasTokenAddress: Hex, paymasterAddress: Hex): Promise<UserOperationStruct | undefined>;
13
- getPaymasterResponse(struct: UserOperationStruct, paymasterProvider?: PaymasterAndBundlerProviders): Promise<UserOperationStruct>;
13
+ getPaymasterResponse(struct: UserOperationStruct, paymasterProvider?: PaymasterAndBundlerProviders, shouldOverrideFee?: boolean): Promise<UserOperationStruct | undefined>;
14
14
  }
15
15
  //# sourceMappingURL=token-paymaster.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"token-paymaster.d.ts","sourceRoot":"","sources":["../../../../src/kernel-zerodev/paymaster/token-paymaster.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,SAAS,EAEd,KAAK,mBAAmB,EACzB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,KAAK,GAAG,EAAiD,MAAM,MAAM,CAAC;AAc/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAEL,KAAK,iCAAiC,EACvC,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EACL,KAAK,4BAA4B,EACjC,KAAK,eAAe,EACrB,MAAM,YAAY,CAAC;AAGpB,qBAAa,cAAe,SAAQ,SAAS;IAGzC,SAAS,CAAC,eAAe,EAAE,eAAe,CAAC,iBAAiB,CAAC;gBAD7D,QAAQ,EAAE,eAAe,EACf,eAAe,EAAE,eAAe,CAAC,iBAAiB,CAAC;IAIzD,mBAAmB,IAAI,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC;IAkB/C,0BAA0B,CAC9B,aAAa,EAAE,cAAc,CAAC,MAAM,CAAC,EACrC,QAAQ,EAAE,cAAc,CAAC,SAAS,CAAC,GAClC,OAAO,CAAC,iCAAiC,GAAG,SAAS,CAAC;IA2DnD,cAAc,CAClB,MAAM,EAAE,mBAAmB,EAC3B,QAAQ,EAAE,iCAAiC,EAC3C,eAAe,EAAE,GAAG,EACpB,gBAAgB,EAAE,GAAG,GACpB,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;IAgCrC,oBAAoB,CACxB,MAAM,EAAE,mBAAmB,EAC3B,iBAAiB,CAAC,EAAE,4BAA4B,GAC/C,OAAO,CAAC,mBAAmB,CAAC;CAgDhC"}
1
+ {"version":3,"file":"token-paymaster.d.ts","sourceRoot":"","sources":["../../../../src/kernel-zerodev/paymaster/token-paymaster.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,SAAS,EAEd,KAAK,mBAAmB,EACzB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,KAAK,GAAG,EAAiD,MAAM,MAAM,CAAC;AAc/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAEL,KAAK,iCAAiC,EACvC,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EACL,KAAK,4BAA4B,EACjC,KAAK,eAAe,EACrB,MAAM,YAAY,CAAC;AAGpB,qBAAa,cAAe,SAAQ,SAAS;IAGzC,SAAS,CAAC,eAAe,EAAE,eAAe,CAAC,iBAAiB,CAAC;gBAD7D,QAAQ,EAAE,eAAe,EACf,eAAe,EAAE,eAAe,CAAC,iBAAiB,CAAC;IAIzD,mBAAmB,IAAI,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC;IAkB/C,0BAA0B,CAC9B,aAAa,EAAE,cAAc,CAAC,MAAM,CAAC,EACrC,QAAQ,EAAE,cAAc,CAAC,SAAS,CAAC,GAClC,OAAO,CAAC,iCAAiC,GAAG,SAAS,CAAC;IA2DnD,cAAc,CAClB,MAAM,EAAE,mBAAmB,EAC3B,QAAQ,EAAE,iCAAiC,EAC3C,eAAe,EAAE,GAAG,EACpB,gBAAgB,EAAE,GAAG,GACpB,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;IAgCrC,oBAAoB,CACxB,MAAM,EAAE,mBAAmB,EAC3B,iBAAiB,CAAC,EAAE,4BAA4B,EAChD,iBAAiB,CAAC,EAAE,OAAO,GAC1B,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;CA8C5C"}
@@ -4,6 +4,6 @@ import type { ZeroDevProvider } from "../provider.js";
4
4
  import type { PaymasterAndBundlerProviders, PaymasterConfig } from "./types.js";
5
5
  export declare class VerifyingPaymaster extends Paymaster {
6
6
  constructor(provider: ZeroDevProvider, _: PaymasterConfig<"VERIFYING_PAYMASTER">);
7
- getPaymasterResponse(struct: UserOperationStruct, paymasterProvider?: PaymasterAndBundlerProviders): Promise<UserOperationStruct>;
7
+ getPaymasterResponse(struct: UserOperationStruct, paymasterProvider?: PaymasterAndBundlerProviders, shouldOverrideFee?: boolean): Promise<UserOperationStruct | undefined>;
8
8
  }
9
9
  //# sourceMappingURL=verifying-paymaster.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"verifying-paymaster.d.ts","sourceRoot":"","sources":["../../../../src/kernel-zerodev/paymaster/verifying-paymaster.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,mBAAmB,EAGzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,4BAA4B,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEhF,qBAAa,kBAAmB,SAAQ,SAAS;gBAE7C,QAAQ,EAAE,eAAe,EACzB,CAAC,EAAE,eAAe,CAAC,qBAAqB,CAAC;IAIrC,oBAAoB,CACxB,MAAM,EAAE,mBAAmB,EAC3B,iBAAiB,CAAC,EAAE,4BAA4B,GAC/C,OAAO,CAAC,mBAAmB,CAAC;CAkBhC"}
1
+ {"version":3,"file":"verifying-paymaster.d.ts","sourceRoot":"","sources":["../../../../src/kernel-zerodev/paymaster/verifying-paymaster.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,mBAAmB,EAGzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,4BAA4B,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEhF,qBAAa,kBAAmB,SAAQ,SAAS;gBAE7C,QAAQ,EAAE,eAAe,EACzB,CAAC,EAAE,eAAe,CAAC,qBAAqB,CAAC;IAIrC,oBAAoB,CACxB,MAAM,EAAE,mBAAmB,EAC3B,iBAAiB,CAAC,EAAE,4BAA4B,EAChD,iBAAiB,CAAC,EAAE,OAAO,GAC1B,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;CAgB5C"}
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/kernel-zerodev/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,IAAI,EAET,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC3B,MAAM,MAAM,CAAC;AACd,OAAO,EAGL,KAAK,wBAAwB,EAE7B,KAAK,qBAAqB,EAC1B,KAAK,0BAA0B,EAC/B,KAAK,uBAAuB,EAK5B,oBAAoB,EACpB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC5B,MAAM,kBAAkB,CAAC;AAQ1B,OAAO,EAAE,0BAA0B,EAAmB,MAAM,cAAc,CAAC;AAM3E,OAAO,KAAK,EACV,4BAA4B,EAC5B,eAAe,EACf,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,MAAM,qBAAqB,GAAG;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,0BAA0B,CAAC;IACrC,eAAe,CAAC,EAAE,4BAA4B,CAAC;IAC/C,IAAI,CAAC,EAAE,wBAAwB,GAAG;QAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,qBAAqB,CAAC,EAAE,MAAM,CAAC;KAChC,CAAC;CACH,CAAC;AAEF,oBAAY,SAAS;IACnB,IAAI,IAAI;IACR,YAAY,IAAI;CACjB;AAED,KAAK,wBAAwB,CAAC,CAAC,IAAI,CAAC,SAAS,qBAAqB,GAC9D,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,YAAY,GACvC,CAAC,SAAS,0BAA0B,GACpC,SAAS,CAAC,IAAI,GACd,KAAK,CAAC;AAEV,qBAAa,eAAgB,SAAQ,oBAAoB,CAAC,aAAa,CAAC;IACtE,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC;IACnC,SAAS,CAAC,qBAAqB,EAAE,MAAM,CAAC;gBAE5B,EACV,SAAS,EACT,KAAK,EACL,iBAAsC,EACtC,MAAoB,EACpB,OAAO,EACP,eAAe,EACf,IAAI,GACL,EAAE,qBAAqB;IA2BxB,YAAY,QAAO,MAAM,CAAmB;IAE5C,eAAe,YACJ,qBAAqB,cACnB,yBAAyB,qBAAqB,CAAC,KACzD,QAAQ,IAAI,CAAC,CAwBd;IAEF,iBAAiB,sFAIH,sBAAsB,8CAEjC,QAAQ,uBAAuB,CAAC,CAyGjC;IAEF,oBAAoB,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO;IAc3C,WAAW,CAAC,OAAO,EAAE,GAAG,GAAG,KAAK;IAsBhC,UAAU,EAAE,MAAM,0BAA0B,CAK1C;IAEF,4BAA4B,EAAE,mBAAmB,CAM/C;IAEF,2BAA2B,CAAC,MAAM,EAAE,eAAe,CAAC,eAAe,CAAC;;;IAUpE,OAAO,EAAE,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAA;KAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CA0BjE;CACH"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/kernel-zerodev/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,IAAI,EAET,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC3B,MAAM,MAAM,CAAC;AACd,OAAO,EAGL,KAAK,wBAAwB,EAE7B,KAAK,qBAAqB,EAC1B,KAAK,0BAA0B,EAC/B,KAAK,uBAAuB,EAK5B,oBAAoB,EACpB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC5B,MAAM,kBAAkB,CAAC;AAQ1B,OAAO,EAAE,0BAA0B,EAAmB,MAAM,cAAc,CAAC;AAM3E,OAAO,KAAK,EACV,4BAA4B,EAC5B,eAAe,EACf,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,MAAM,qBAAqB,GAAG;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,0BAA0B,CAAC;IACrC,eAAe,CAAC,EAAE,4BAA4B,CAAC;IAC/C,IAAI,CAAC,EAAE,wBAAwB,GAAG;QAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,qBAAqB,CAAC,EAAE,MAAM,CAAC;KAChC,CAAC;CACH,CAAC;AAEF,oBAAY,SAAS;IACnB,IAAI,IAAI;IACR,YAAY,IAAI;CACjB;AAED,KAAK,wBAAwB,CAAC,CAAC,IAAI,CAAC,SAAS,qBAAqB,GAC9D,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,YAAY,GACvC,CAAC,SAAS,0BAA0B,GACpC,SAAS,CAAC,IAAI,GACd,KAAK,CAAC;AAEV,qBAAa,eAAgB,SAAQ,oBAAoB,CAAC,aAAa,CAAC;IACtE,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC;IACnC,SAAS,CAAC,qBAAqB,EAAE,MAAM,CAAC;gBAE5B,EACV,SAAS,EACT,KAAK,EACL,iBAAsC,EACtC,MAAoB,EACpB,OAAO,EACP,eAAe,EACf,IAAI,GACL,EAAE,qBAAqB;IA2BxB,YAAY,QAAO,MAAM,CAAmB;IAE5C,eAAe,YACJ,qBAAqB,cACnB,yBAAyB,qBAAqB,CAAC,KACzD,QAAQ,IAAI,CAAC,CAwBd;IAEF,iBAAiB,sFAIH,sBAAsB,8CAEjC,QAAQ,uBAAuB,CAAC,CA2GjC;IAEF,oBAAoB,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO;IAc3C,WAAW,CAAC,OAAO,EAAE,GAAG,GAAG,KAAK;IAsBhC,UAAU,EAAE,MAAM,0BAA0B,CAK1C;IAEF,4BAA4B,EAAE,mBAAmB,CAM/C;IAEF,2BAA2B,CAAC,MAAM,EAAE,eAAe,CAAC,eAAe,CAAC;;;IAUpE,OAAO,EAAE,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAA;KAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CA0BjE;CACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"kill-switch-validator.d.ts","sourceRoot":"","sources":["../../../../src/kernel-zerodev/validator/kill-switch-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,OAAO,EACZ,KAAK,GAAG,EACR,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,mBAAmB,EAEnB,KAAK,yBAAyB,EAC/B,MAAM,WAAW,CAAC;AAiBnB,MAAM,WAAW,yBAA0B,SAAQ,yBAAyB;IAC1E,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,mBAAoB,SAAQ,mBAAmB;IAC1D,SAAS,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACvC,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC;gBAEnB,MAAM,EAAE,yBAAyB;WAOzB,IAAI,CACtB,MAAM,EAAE,yBAAyB,GAChC,OAAO,CAAC,mBAAmB,CAAC;IAUzB,MAAM,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAIrC,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC;IAInC,cAAc,IAAI,MAAM;IAIxB,YAAY,CAAC,WAAW,EAAE,GAAG,GAAG,GAAG;IAQnC,aAAa,CAAC,WAAW,GAAE,GAAU,GAAG,GAAG;IAQrC,eAAe,CACnB,oBAAoB,EAAE,OAAO,EAC7B,QAAQ,EAAE,GAAG,GACZ,OAAO,CAAC,OAAO,CAAC;IA4Bb,uBAAuB,IAAI,OAAO,CAAC,GAAG,CAAC;IAIvC,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;CAuB7D"}
1
+ {"version":3,"file":"kill-switch-validator.d.ts","sourceRoot":"","sources":["../../../../src/kernel-zerodev/validator/kill-switch-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,OAAO,EACZ,KAAK,GAAG,EACR,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,mBAAmB,EAEnB,KAAK,yBAAyB,EAC/B,MAAM,WAAW,CAAC;AAiBnB,MAAM,WAAW,yBAA0B,SAAQ,yBAAyB;IAC1E,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,mBAAoB,SAAQ,mBAAmB;IAC1D,SAAS,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACvC,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC;gBAEnB,MAAM,EAAE,yBAAyB;WAOzB,IAAI,CACtB,MAAM,EAAE,yBAAyB,GAChC,OAAO,CAAC,mBAAmB,CAAC;IAUzB,MAAM,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAIrC,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC;IAInC,cAAc,IAAI,MAAM;IAIxB,YAAY,CAAC,WAAW,EAAE,GAAG,GAAG,GAAG;IAQnC,aAAa,CAAC,WAAW,GAAE,GAAU,GAAG,GAAG;IAQrC,eAAe,CACnB,oBAAoB,EAAE,OAAO,EAC7B,QAAQ,EAAE,GAAG,GACZ,OAAO,CAAC,OAAO,CAAC;IA4Bb,uBAAuB,IAAI,OAAO,CAAC,GAAG,CAAC;IAOvC,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;CA4B7D"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zerodev/sdk",
3
- "version": "4.0.10",
3
+ "version": "4.0.12",
4
4
  "description": "A collection of ERC-4337 compliant smart contract account interfaces",
5
5
  "author": "ZeroDev",
6
6
  "license": "MIT",
@@ -41,21 +41,14 @@
41
41
  "build:types": "tsc --project tsconfig.build.json --module esnext --declarationDir ./dist/types --emitDeclarationOnly --declaration --declarationMap",
42
42
  "clean": "rm -rf ./dist",
43
43
  "test": "vitest",
44
- "test:run": "vitest run",
45
- "test:run-e2e": "vitest run --config vitest.config.e2e.ts"
44
+ "test:run": "vitest run"
46
45
  },
47
46
  "devDependencies": {
48
- "@alchemy/aa-core": "^0.1.0-alpha.23",
49
- "@alchemy/aa-ethers": "^0.1.0-alpha.23",
50
47
  "@turnkey/ethers": "^0.16.5",
51
48
  "typescript": "^5.0.4",
52
49
  "typescript-template": "*",
53
50
  "vitest": "^0.31.0"
54
51
  },
55
- "peerDependencies": {
56
- "@alchemy/aa-core": "^0.1.0-alpha.23",
57
- "@alchemy/aa-ethers": "^0.1.0-alpha.23"
58
- },
59
52
  "publishConfig": {
60
53
  "access": "public",
61
54
  "registry": "https://registry.npmjs.org/"
@@ -72,6 +65,8 @@
72
65
  "dependencies": {
73
66
  "axios": "^1.4.0",
74
67
  "merkletreejs": "^0.3.10",
75
- "viem": "^1.5.3"
68
+ "viem": "^1.5.3",
69
+ "@alchemy/aa-core": "0.1.0-alpha.23",
70
+ "@alchemy/aa-ethers": "0.1.0-alpha.23"
76
71
  }
77
72
  }
@@ -3,7 +3,7 @@ import type { IGasTokenAddresses } from "./paymaster/types.js";
3
3
  import { polygon } from "viem/chains";
4
4
 
5
5
  export const DEFAULT_SEND_TX_MAX_RETRIES = 3;
6
- export const DEFAULT_SEND_TX_RETRY_INTERVAL_MS = 1_80_000; // 3 minutes
6
+ export const DEFAULT_SEND_TX_RETRY_INTERVAL_MS = 60000; // 1 minutes
7
7
  export const BUNDLER_URL = "https://v0-6-meta-bundler.onrender.com";
8
8
  export const PAYMASTER_URL = "https://v0-6-paymaster.onrender.com";
9
9
  export const ENTRYPOINT_ADDRESS: Hex =
@@ -17,8 +17,8 @@ export const KERNEL_FACTORY_ADDRESS =
17
17
  "0x5de4839a76cf55d0c90e2061ef4386d962E15ae3";
18
18
  export const KERNEL_IMPL_ADDRESS = "0xf048AD83CB2dfd6037A43902a2A5Be04e53cd2Eb";
19
19
  export const KILL_SWITCH_VALIDATOR_ADDRESS =
20
- "0x2db0DbfDf90Dbe2859158Aa71db1FcDCb3E579c8";
21
- export const KILL_SWITCH_ACTION = "0xf5aa34DD2cba311947e143183ED325A4A8C674Af";
20
+ "0x7393A7dA58CCfFb78f52adb09705BE6E20F704BC";
21
+ export const KILL_SWITCH_ACTION = "0x3f38e479304c7F18F988269a1bDa7d646bd48243";
22
22
  export const DUMMY_ECDSA_SIG =
23
23
  "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c";
24
24
  export const ERC165_SESSION_KEY_VALIDATOR_ADDRESS =
@@ -25,7 +25,8 @@ export const zeroDevPaymasterAndDataMiddleware = <
25
25
  >["0"] => {
26
26
  return {
27
27
  dummyPaymasterDataMiddleware: async (struct) => {
28
- struct.paymasterAndData = "0x";
28
+ struct.paymasterAndData =
29
+ "0xe93eca6595fe94091dc1af46aac2a8b5d79907700000000000000000000000000000000000000000000000000000000064ee5cd9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c";
29
30
  return struct;
30
31
  },
31
32
  paymasterDataMiddleware: async (struct) => {
@@ -47,15 +48,21 @@ export const zeroDevPaymasterAndDataMiddleware = <
47
48
  );
48
49
  if (
49
50
  paymasterConfig.onlySendSponsoredTransaction &&
50
- (!paymasterResp || paymasterResp.paymasterAndData === "0x")
51
+ (!paymasterResp ||
52
+ !paymasterResp.paymasterAndData ||
53
+ paymasterResp.paymasterAndData === "0x")
51
54
  ) {
52
55
  throw new Error("Transaction is not sponsored");
53
56
  }
54
57
  if (
55
- paymasterResp === undefined ||
58
+ !paymasterResp ||
59
+ !paymasterResp.paymasterAndData ||
56
60
  paymasterResp.paymasterAndData === "0x"
57
61
  ) {
58
- return struct;
62
+ return {
63
+ ...struct,
64
+ paymasterAndData: "0x",
65
+ };
59
66
  }
60
67
  return {
61
68
  ...struct,
@@ -16,8 +16,9 @@ export abstract class Paymaster {
16
16
  constructor(protected provider: ZeroDevProvider) {}
17
17
  abstract getPaymasterResponse(
18
18
  struct: UserOperationStruct,
19
- paymasterProvider?: PaymasterAndBundlerProviders
20
- ): Promise<UserOperationStruct>;
19
+ paymasterProvider?: PaymasterAndBundlerProviders,
20
+ shouldOverrideFee?: boolean
21
+ ): Promise<UserOperationStruct | undefined>;
21
22
  protected async signUserOp({
22
23
  userOp,
23
24
  callData,
@@ -25,6 +26,7 @@ export abstract class Paymaster {
25
26
  erc20UserOp,
26
27
  erc20CallData,
27
28
  paymasterProvider,
29
+ shouldOverrideFee = false,
28
30
  }: {
29
31
  userOp: UserOperationStruct;
30
32
  callData?: PromiseOrValue<BytesLike>;
@@ -32,6 +34,7 @@ export abstract class Paymaster {
32
34
  erc20UserOp?: Partial<UserOperationStruct>;
33
35
  erc20CallData?: PromiseOrValue<BytesLike>;
34
36
  paymasterProvider?: PaymasterAndBundlerProviders;
37
+ shouldOverrideFee?: boolean;
35
38
  }): Promise<any> {
36
39
  try {
37
40
  const hexifiedUserOp = deepHexlify(await resolveProperties(userOp));
@@ -58,6 +61,7 @@ export abstract class Paymaster {
58
61
  ? await erc20CallData
59
62
  : erc20CallData,
60
63
  paymasterProvider,
64
+ shouldOverrideFee,
61
65
  }).filter(([_, value]) => value !== undefined)
62
66
  );
63
67
  const { data: paymasterResp } = await axios.post(
@@ -157,8 +157,9 @@ export class TokenPaymaster extends Paymaster {
157
157
 
158
158
  async getPaymasterResponse(
159
159
  struct: UserOperationStruct,
160
- paymasterProvider?: PaymasterAndBundlerProviders
161
- ): Promise<UserOperationStruct> {
160
+ paymasterProvider?: PaymasterAndBundlerProviders,
161
+ shouldOverrideFee?: boolean
162
+ ): Promise<UserOperationStruct | undefined> {
162
163
  try {
163
164
  const mainCall = await this.decodeMainCallFromCallData(
164
165
  struct.sender,
@@ -193,17 +194,15 @@ export class TokenPaymaster extends Paymaster {
193
194
  erc20UserOp,
194
195
  erc20CallData: erc20UserOp.callData,
195
196
  paymasterProvider,
197
+ shouldOverrideFee,
196
198
  });
197
199
  if (paymasterResp) {
198
- return {
199
- ...struct,
200
- ...paymasterResp,
201
- };
200
+ return paymasterResp;
202
201
  }
203
202
  }
204
203
  } catch (error) {
205
- return struct;
204
+ console.log(error);
206
205
  }
207
- return struct;
206
+ return;
208
207
  }
209
208
  }
@@ -16,23 +16,22 @@ export class VerifyingPaymaster extends Paymaster {
16
16
  }
17
17
  async getPaymasterResponse(
18
18
  struct: UserOperationStruct,
19
- paymasterProvider?: PaymasterAndBundlerProviders
20
- ): Promise<UserOperationStruct> {
19
+ paymasterProvider?: PaymasterAndBundlerProviders,
20
+ shouldOverrideFee?: boolean
21
+ ): Promise<UserOperationStruct | undefined> {
21
22
  try {
22
23
  const hexifiedUserOp = deepHexlify(await resolveProperties(struct));
23
24
  const paymasterResp = await this.signUserOp({
24
25
  userOp: hexifiedUserOp,
25
26
  paymasterProvider,
27
+ shouldOverrideFee,
26
28
  });
27
29
  if (paymasterResp) {
28
- return {
29
- ...struct,
30
- ...paymasterResp,
31
- };
30
+ return paymasterResp;
32
31
  }
33
32
  } catch (error) {
34
- return struct;
33
+ console.log(error);
35
34
  }
36
- return struct;
35
+ return;
37
36
  }
38
37
  }
@@ -183,24 +183,28 @@ export class ZeroDevProvider extends SmartAccountProvider<HttpTransport> {
183
183
  let hash: string = "";
184
184
  let i = 0;
185
185
  const nonce = await this.account.getNonce();
186
- const uoStruct = await asyncPipe(
187
- this.dummyPaymasterDataMiddleware,
188
- this.feeDataGetter,
189
- this.paymasterDataMiddleware,
190
- this.gasEstimator,
191
- this.customMiddleware ?? noOpMiddleware,
192
- async (struct) => ({ ...struct, ...overrides })
193
- )({
194
- initCode,
195
- sender: this.getAddress(),
196
- nonce,
197
- callData,
198
- signature: await this.account
199
- .getValidator()
200
- .getDynamicDummySignature(await this.getAddress(), callData as Hex),
201
- } as UserOperationStruct);
186
+ let uoStruct: UserOperationStruct;
202
187
  let request: UserOperationStruct;
188
+ let maxFeePerGas, maxPriorityFeePerGas;
203
189
  do {
190
+ uoStruct = await asyncPipe(
191
+ this.dummyPaymasterDataMiddleware,
192
+ this.feeDataGetter,
193
+ this.paymasterDataMiddleware,
194
+ this.gasEstimator,
195
+ this.customMiddleware ?? noOpMiddleware,
196
+ async (struct) => ({ ...struct, ...overrides })
197
+ )({
198
+ initCode,
199
+ sender: this.getAddress(),
200
+ nonce,
201
+ callData,
202
+ signature: await this.account
203
+ .getValidator()
204
+ .getDynamicDummySignature(await this.getAddress(), callData as Hex),
205
+ maxFeePerGas,
206
+ maxPriorityFeePerGas,
207
+ } as UserOperationStruct);
204
208
  request = deepHexlify(await resolveProperties(uoStruct));
205
209
 
206
210
  if (!isValidRequest(request)) {
@@ -224,16 +228,14 @@ export class ZeroDevProvider extends SmartAccountProvider<HttpTransport> {
224
228
  );
225
229
  } catch (error: any) {
226
230
  if (this.isReplacementOpError(error) && i++ < this.sendTxMaxRetries) {
227
- uoStruct.maxFeePerGas = (BigInt(request.maxFeePerGas) * 113n) / 100n;
228
- uoStruct.maxPriorityFeePerGas =
231
+ maxFeePerGas = (BigInt(request.maxFeePerGas) * 113n) / 100n;
232
+ maxPriorityFeePerGas =
229
233
  (BigInt(request.maxPriorityFeePerGas) * 113n) / 100n;
230
234
 
231
235
  console.log(
232
236
  `After ${
233
237
  this.sendTxRetryIntervalMs / 60000
234
- } minutes, resending tx with Increased Gas fees: maxFeePerGas: ${
235
- uoStruct.maxFeePerGas
236
- }, maxPriorityFeePerGas: ${uoStruct.maxPriorityFeePerGas}`
238
+ } minutes, resending tx with Increased Gas fees: maxFeePerGas: ${maxFeePerGas}, maxPriorityFeePerGas: ${maxPriorityFeePerGas}`
237
239
  );
238
240
  await new Promise((resolve) =>
239
241
  setTimeout(resolve, this.sendTxRetryIntervalMs)
@@ -116,6 +116,9 @@ export class KillSwitchValidator extends KernelBaseValidator {
116
116
  }
117
117
 
118
118
  async getDummyUserOpSignature(): Promise<Hex> {
119
+ if (this.mode === ValidatorMode.sudo) {
120
+ return DUMMY_ECDSA_SIG;
121
+ }
119
122
  return concatHex([pad("0xffffffffffff", { size: 6 }), DUMMY_ECDSA_SIG]);
120
123
  }
121
124
 
@@ -141,6 +144,11 @@ export class KillSwitchValidator extends KernelBaseValidator {
141
144
  BigInt(this.chain.id)
142
145
  ) as Hex;
143
146
 
147
+ if (this.mode === ValidatorMode.sudo) {
148
+ const formattedMessage = typeof hash === "string" ? toBytes(hash) : hash;
149
+ return await this.guardian.signMessage(formattedMessage);
150
+ }
151
+
144
152
  const extendedHash = keccak256(
145
153
  concat([pad(toHex(pausedUntil), { size: 6 }), hash])
146
154
  );