@zerodev/sdk 4.0.5 → 4.0.7

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 (77) hide show
  1. package/dist/cjs/index.d.ts +1 -0
  2. package/dist/cjs/index.js +3 -1
  3. package/dist/cjs/index.js.map +1 -1
  4. package/dist/cjs/kernel-zerodev/account.d.ts +2 -1
  5. package/dist/cjs/kernel-zerodev/account.js +6 -0
  6. package/dist/cjs/kernel-zerodev/account.js.map +1 -1
  7. package/dist/cjs/kernel-zerodev/ethers-provider/account-signer.d.ts +28 -0
  8. package/dist/cjs/kernel-zerodev/ethers-provider/account-signer.js +134 -0
  9. package/dist/cjs/kernel-zerodev/ethers-provider/account-signer.js.map +1 -0
  10. package/dist/cjs/kernel-zerodev/ethers-provider/ethers-provider.d.ts +3 -3
  11. package/dist/cjs/kernel-zerodev/ethers-provider/ethers-provider.js +2 -2
  12. package/dist/cjs/kernel-zerodev/ethers-provider/ethers-provider.js.map +1 -1
  13. package/dist/cjs/kernel-zerodev/provider.js +13 -17
  14. package/dist/cjs/kernel-zerodev/provider.js.map +1 -1
  15. package/dist/cjs/kernel-zerodev/validator/base.d.ts +2 -1
  16. package/dist/cjs/kernel-zerodev/validator/base.js.map +1 -1
  17. package/dist/cjs/kernel-zerodev/validator/ecdsa-validator.d.ts +2 -1
  18. package/dist/cjs/kernel-zerodev/validator/ecdsa-validator.js +4 -0
  19. package/dist/cjs/kernel-zerodev/validator/ecdsa-validator.js.map +1 -1
  20. package/dist/cjs/kernel-zerodev/validator/erc165-session-key-validator.d.ts +2 -1
  21. package/dist/cjs/kernel-zerodev/validator/erc165-session-key-validator.js +4 -0
  22. package/dist/cjs/kernel-zerodev/validator/erc165-session-key-validator.js.map +1 -1
  23. package/dist/cjs/kernel-zerodev/validator/kill-switch-validator.d.ts +2 -1
  24. package/dist/cjs/kernel-zerodev/validator/kill-switch-validator.js +4 -0
  25. package/dist/cjs/kernel-zerodev/validator/kill-switch-validator.js.map +1 -1
  26. package/dist/esm/index.d.ts +1 -0
  27. package/dist/esm/index.js +1 -0
  28. package/dist/esm/index.js.map +1 -1
  29. package/dist/esm/kernel-zerodev/account.d.ts +2 -1
  30. package/dist/esm/kernel-zerodev/account.js +6 -0
  31. package/dist/esm/kernel-zerodev/account.js.map +1 -1
  32. package/dist/esm/kernel-zerodev/ethers-provider/account-signer.d.ts +28 -0
  33. package/dist/esm/kernel-zerodev/ethers-provider/account-signer.js +132 -0
  34. package/dist/esm/kernel-zerodev/ethers-provider/account-signer.js.map +1 -0
  35. package/dist/esm/kernel-zerodev/ethers-provider/ethers-provider.d.ts +3 -3
  36. package/dist/esm/kernel-zerodev/ethers-provider/ethers-provider.js +2 -2
  37. package/dist/esm/kernel-zerodev/ethers-provider/ethers-provider.js.map +1 -1
  38. package/dist/esm/kernel-zerodev/provider.js +13 -17
  39. package/dist/esm/kernel-zerodev/provider.js.map +1 -1
  40. package/dist/esm/kernel-zerodev/validator/base.d.ts +2 -1
  41. package/dist/esm/kernel-zerodev/validator/base.js.map +1 -1
  42. package/dist/esm/kernel-zerodev/validator/ecdsa-validator.d.ts +2 -1
  43. package/dist/esm/kernel-zerodev/validator/ecdsa-validator.js +4 -0
  44. package/dist/esm/kernel-zerodev/validator/ecdsa-validator.js.map +1 -1
  45. package/dist/esm/kernel-zerodev/validator/erc165-session-key-validator.d.ts +2 -1
  46. package/dist/esm/kernel-zerodev/validator/erc165-session-key-validator.js +4 -0
  47. package/dist/esm/kernel-zerodev/validator/erc165-session-key-validator.js.map +1 -1
  48. package/dist/esm/kernel-zerodev/validator/kill-switch-validator.d.ts +2 -1
  49. package/dist/esm/kernel-zerodev/validator/kill-switch-validator.js +4 -0
  50. package/dist/esm/kernel-zerodev/validator/kill-switch-validator.js.map +1 -1
  51. package/dist/types/index.d.ts +1 -0
  52. package/dist/types/index.d.ts.map +1 -1
  53. package/dist/types/kernel-zerodev/account.d.ts +2 -1
  54. package/dist/types/kernel-zerodev/account.d.ts.map +1 -1
  55. package/dist/types/kernel-zerodev/ethers-provider/account-signer.d.ts +29 -0
  56. package/dist/types/kernel-zerodev/ethers-provider/account-signer.d.ts.map +1 -0
  57. package/dist/types/kernel-zerodev/ethers-provider/ethers-provider.d.ts +5 -5
  58. package/dist/types/kernel-zerodev/ethers-provider/ethers-provider.d.ts.map +1 -1
  59. package/dist/types/kernel-zerodev/provider.d.ts.map +1 -1
  60. package/dist/types/kernel-zerodev/validator/base.d.ts +2 -1
  61. package/dist/types/kernel-zerodev/validator/base.d.ts.map +1 -1
  62. package/dist/types/kernel-zerodev/validator/ecdsa-validator.d.ts +2 -1
  63. package/dist/types/kernel-zerodev/validator/ecdsa-validator.d.ts.map +1 -1
  64. package/dist/types/kernel-zerodev/validator/erc165-session-key-validator.d.ts +2 -1
  65. package/dist/types/kernel-zerodev/validator/erc165-session-key-validator.d.ts.map +1 -1
  66. package/dist/types/kernel-zerodev/validator/kill-switch-validator.d.ts +2 -1
  67. package/dist/types/kernel-zerodev/validator/kill-switch-validator.d.ts.map +1 -1
  68. package/package.json +1 -1
  69. package/src/index.ts +1 -0
  70. package/src/kernel-zerodev/account.ts +8 -0
  71. package/src/kernel-zerodev/ethers-provider/account-signer.ts +165 -0
  72. package/src/kernel-zerodev/ethers-provider/ethers-provider.ts +6 -6
  73. package/src/kernel-zerodev/provider.ts +23 -25
  74. package/src/kernel-zerodev/validator/base.ts +4 -1
  75. package/src/kernel-zerodev/validator/ecdsa-validator.ts +6 -0
  76. package/src/kernel-zerodev/validator/erc165-session-key-validator.ts +6 -0
  77. package/src/kernel-zerodev/validator/kill-switch-validator.ts +6 -0
@@ -1,5 +1,5 @@
1
1
  import { SmartAccountProvider, type HttpTransport, BaseSmartContractAccount, type AccountMiddlewareFn, type FeeDataMiddleware, type GasEstimatorMiddleware, type PaymasterAndDataMiddleware, type PublicErc4337Client } from "@alchemy/aa-core";
2
- import { AccountSigner } from "@alchemy/aa-ethers";
2
+ import { ZeroDevAccountSigner } from "./account-signer.js";
3
3
  import { JsonRpcProvider } from "@ethersproject/providers";
4
4
  import type { SupportedValidators } from "../validator/types.js";
5
5
  import type { ValidatorProviderParamsMap } from "../validator-provider/types.js";
@@ -20,13 +20,13 @@ export declare class ZeroDevEthersProvider<V extends SupportedValidators> extend
20
20
  * Connects the Provider to an Account and returns a Signer
21
21
  *
22
22
  * @param fn - a function that takes the account provider's rpcClient and returns a BaseSmartContractAccount
23
- * @returns an {@link AccountSigner} that can be used to sign and send user operations
23
+ * @returns an {@link ZeroDevAccountSigner} that can be used to sign and send user operations
24
24
  */
25
- connectToAccount(fn: (rpcClient: PublicErc4337Client) => BaseSmartContractAccount): AccountSigner;
25
+ connectToAccount(fn: (rpcClient: PublicErc4337Client) => BaseSmartContractAccount): ZeroDevAccountSigner<V>;
26
26
  /**
27
- * @returns an {@link AccountSigner} using this as the underlying provider
27
+ * @returns an {@link ZeroDevAccountSigner} using this as the underlying provider
28
28
  */
29
- getAccountSigner(): AccountSigner;
29
+ getAccountSigner(): ZeroDevAccountSigner<V>;
30
30
  withPaymasterMiddleware: (overrides: {
31
31
  dummyPaymasterDataMiddleware?: PaymasterAndDataMiddleware;
32
32
  paymasterDataMiddleware?: PaymasterAndDataMiddleware;
@@ -1 +1 @@
1
- {"version":3,"file":"ethers-provider.d.ts","sourceRoot":"","sources":["../../../../src/kernel-zerodev/ethers-provider/ethers-provider.ts"],"names":[],"mappings":"AACA,OAAO,EACL,oBAAoB,EAEpB,KAAK,aAAa,EAClB,wBAAwB,EAExB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,EAC/B,KAAK,mBAAmB,EACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAIjF,qBAAa,qBAAqB,CAChC,CAAC,SAAS,mBAAmB,CAC7B,SAAQ,eAAe;IACvB,QAAQ,CAAC,eAAe,EAAE,oBAAoB,CAAC,aAAa,CAAC,CAAC;gBAClD,aAAa,EAAE,CAAC,EAAE,MAAM,EAAE,0BAA0B,CAAC,CAAC,CAAC;WAY/C,IAAI,CAAC,CAAC,SAAS,mBAAmB,EACpD,aAAa,EAAE,CAAC,EAChB,MAAM,EAAE,0BAA0B,CAAC,CAAC,CAAC,GACpC,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAoBpC;;;;;;;OAOG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAIjD;;;;;OAKG;IACH,gBAAgB,CACd,EAAE,EAAE,CAAC,SAAS,EAAE,mBAAmB,KAAK,wBAAwB,GAC/D,aAAa;IAKhB;;OAEG;IACH,gBAAgB,IAAI,aAAa;IAIjC,uBAAuB,cAAe;QACpC,4BAA4B,CAAC,EAAE,0BAA0B,CAAC;QAC1D,uBAAuB,CAAC,EAAE,0BAA0B,CAAC;KACtD,KAAG,IAAI,CAGN;IAEF,gBAAgB,aAAc,sBAAsB,KAAG,IAAI,CAGzD;IAEF,iBAAiB,aAAc,iBAAiB,KAAG,IAAI,CAGrD;IAEF,oBAAoB,aAAc,mBAAmB,KAAG,IAAI,CAG1D;IAEF,sBAAsB,IAAI,mBAAmB;CAG9C"}
1
+ {"version":3,"file":"ethers-provider.d.ts","sourceRoot":"","sources":["../../../../src/kernel-zerodev/ethers-provider/ethers-provider.ts"],"names":[],"mappings":"AACA,OAAO,EACL,oBAAoB,EAEpB,KAAK,aAAa,EAClB,wBAAwB,EAExB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,EAC/B,KAAK,mBAAmB,EACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAIjF,qBAAa,qBAAqB,CAChC,CAAC,SAAS,mBAAmB,CAC7B,SAAQ,eAAe;IACvB,QAAQ,CAAC,eAAe,EAAE,oBAAoB,CAAC,aAAa,CAAC,CAAC;gBAClD,aAAa,EAAE,CAAC,EAAE,MAAM,EAAE,0BAA0B,CAAC,CAAC,CAAC;WAY/C,IAAI,CAAC,CAAC,SAAS,mBAAmB,EACpD,aAAa,EAAE,CAAC,EAChB,MAAM,EAAE,0BAA0B,CAAC,CAAC,CAAC,GACpC,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAoBpC;;;;;;;OAOG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAIjD;;;;;OAKG;IACH,gBAAgB,CACd,EAAE,EAAE,CAAC,SAAS,EAAE,mBAAmB,KAAK,wBAAwB,GAC/D,oBAAoB,CAAC,CAAC,CAAC;IAK1B;;OAEG;IACH,gBAAgB,IAAI,oBAAoB,CAAC,CAAC,CAAC;IAI3C,uBAAuB,cAAe;QACpC,4BAA4B,CAAC,EAAE,0BAA0B,CAAC;QAC1D,uBAAuB,CAAC,EAAE,0BAA0B,CAAC;KACtD,KAAG,IAAI,CAGN;IAEF,gBAAgB,aAAc,sBAAsB,KAAG,IAAI,CAGzD;IAEF,iBAAiB,aAAc,iBAAiB,KAAG,IAAI,CAGrD;IAEF,oBAAoB,aAAc,mBAAmB,KAAG,IAAI,CAG1D;IAEF,sBAAsB,IAAI,mBAAmB;CAG9C"}
@@ -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,IAAA;IACJ,YAAY,IAAA;CACb;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,IAAA;IACJ,YAAY,IAAA;CACb;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,CAuGjC;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,4 +1,4 @@
1
- import { type SmartAccountSigner, type UserOperationRequest } from "@alchemy/aa-core";
1
+ import { type SignTypedDataParams, type SmartAccountSigner, type UserOperationRequest } from "@alchemy/aa-core";
2
2
  import { type Chain, type Hex, type Address, type PublicClient, type Transport } from "viem";
3
3
  import type { PaymasterAndBundlerProviders } from "../paymaster/types.js";
4
4
  export declare enum ValidatorMode {
@@ -39,6 +39,7 @@ export declare abstract class KernelBaseValidator {
39
39
  abstract encodeDisable(enableData: Hex): Hex;
40
40
  abstract getEnableData(): Promise<Hex>;
41
41
  abstract signMessage(message: Uint8Array | string | Hex): Promise<Hex>;
42
+ abstract signTypedData(params: SignTypedDataParams): Promise<Hex>;
42
43
  abstract signUserOp(userOp: UserOperationRequest): Promise<Hex>;
43
44
  abstract signer(): Promise<SmartAccountSigner>;
44
45
  abstract getDummyUserOpSignature(): 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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"}
@@ -1,4 +1,4 @@
1
- import { type Address, type Hex, type SmartAccountSigner, type UserOperationRequest } from "@alchemy/aa-core";
1
+ import { type Address, type Hex, type SmartAccountSigner, type UserOperationRequest, type SignTypedDataParams } from "@alchemy/aa-core";
2
2
  import { KernelBaseValidator, type KernelBaseValidatorParams } from "./base.js";
3
3
  export interface ECDSAValidatorParams extends KernelBaseValidatorParams {
4
4
  owner: SmartAccountSigner;
@@ -15,6 +15,7 @@ export declare class ECDSAValidator extends KernelBaseValidator {
15
15
  getDummyUserOpSignature(): Promise<Hex>;
16
16
  isPluginEnabled(kernelAccountAddress: Address, selector: Hex): Promise<boolean>;
17
17
  signMessage(message: string | Uint8Array): Promise<Hex>;
18
+ signTypedData(params: SignTypedDataParams): Promise<Hex>;
18
19
  signUserOp(userOp: UserOperationRequest): Promise<Hex>;
19
20
  }
20
21
  //# sourceMappingURL=ecdsa-validator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ecdsa-validator.d.ts","sourceRoot":"","sources":["../../../../src/kernel-zerodev/validator/ecdsa-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,OAAO,EACZ,KAAK,GAAG,EACR,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EAC1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAE,KAAK,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAOhF,MAAM,WAAW,oBAAqB,SAAQ,yBAAyB;IACrE,KAAK,EAAE,kBAAkB,CAAC;CAC3B;AAED,qBAAa,cAAe,SAAQ,mBAAmB;IACrD,SAAS,CAAC,KAAK,EAAE,kBAAkB,CAAC;gBAExB,MAAM,EAAE,oBAAoB;WAKpB,IAAI,CACtB,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,cAAc,CAAC;IAUpB,MAAM,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAIrC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC;IAIxB,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC;IAInC,YAAY,CAAC,QAAQ,EAAE,GAAG,GAAG,GAAG;IAQhC,aAAa,CAAC,WAAW,GAAE,GAAU,GAAG,GAAG;IAQrC,uBAAuB,IAAI,OAAO,CAAC,GAAG,CAAC;IAIvC,eAAe,CACnB,oBAAoB,EAAE,OAAO,EAC7B,QAAQ,EAAE,GAAG,GACZ,OAAO,CAAC,OAAO,CAAC;IAuBb,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC;IAIvD,UAAU,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC;CAe7D"}
1
+ {"version":3,"file":"ecdsa-validator.d.ts","sourceRoot":"","sources":["../../../../src/kernel-zerodev/validator/ecdsa-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,EAAE,mBAAmB,EAAE,KAAK,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAQhF,MAAM,WAAW,oBAAqB,SAAQ,yBAAyB;IACrE,KAAK,EAAE,kBAAkB,CAAC;CAC3B;AAED,qBAAa,cAAe,SAAQ,mBAAmB;IACrD,SAAS,CAAC,KAAK,EAAE,kBAAkB,CAAC;gBAExB,MAAM,EAAE,oBAAoB;WAKpB,IAAI,CACtB,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,cAAc,CAAC;IAUpB,MAAM,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAIrC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC;IAIxB,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC;IAInC,YAAY,CAAC,QAAQ,EAAE,GAAG,GAAG,GAAG;IAQhC,aAAa,CAAC,WAAW,GAAE,GAAU,GAAG,GAAG;IAQrC,uBAAuB,IAAI,OAAO,CAAC,GAAG,CAAC;IAIvC,eAAe,CACnB,oBAAoB,EAAE,OAAO,EAC7B,QAAQ,EAAE,GAAG,GACZ,OAAO,CAAC,OAAO,CAAC;IAuBb,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;CAe7D"}
@@ -1,4 +1,4 @@
1
- import { type Address, type Hex, type SmartAccountSigner, type UserOperationRequest } from "@alchemy/aa-core";
1
+ import { type Address, type Hex, type SmartAccountSigner, type UserOperationRequest, type SignTypedDataParams } from "@alchemy/aa-core";
2
2
  import { KernelBaseValidator, type KernelBaseValidatorParams } from "./base.js";
3
3
  export interface ERC165SessionKeyValidatorParams extends KernelBaseValidatorParams {
4
4
  sessionKey: SmartAccountSigner;
@@ -22,6 +22,7 @@ export declare class ERC165SessionKeyValidator extends KernelBaseValidator {
22
22
  encodeEnable(sessionKeyEnableData: Hex): Hex;
23
23
  encodeDisable(sessionKey: Hex): Hex;
24
24
  signMessage(message: string | Uint8Array): Promise<Hex>;
25
+ signTypedData(params: SignTypedDataParams): Promise<Hex>;
25
26
  signUserOp(userOp: UserOperationRequest): Promise<Hex>;
26
27
  }
27
28
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"erc165-session-key-validator.d.ts","sourceRoot":"","sources":["../../../../src/kernel-zerodev/validator/erc165-session-key-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,OAAO,EACZ,KAAK,GAAG,EACR,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EAC1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAE,KAAK,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAMhF,MAAM,WAAW,+BACf,SAAQ,yBAAyB;IACjC,UAAU,EAAE,kBAAkB,CAAC;IAC/B,cAAc,EAAE,cAAc,CAAC;CAChC;AAED,UAAU,cAAc;IACtB,QAAQ,EAAE,GAAG,CAAC;IACd,iBAAiB,EAAE,GAAG,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,yBAA0B,SAAQ,mBAAmB;IAChE,SAAS,CAAC,UAAU,EAAE,kBAAkB,CAAC;IACzC,cAAc,EAAE,cAAc,CAAC;gBAEnB,MAAM,EAAE,+BAA+B;IAM7C,MAAM,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAIrC,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC;IAW7B,eAAe,CACnB,oBAAoB,EAAE,OAAO,EAC7B,QAAQ,EAAE,GAAG,GACZ,OAAO,CAAC,OAAO,CAAC;IAgCb,uBAAuB,IAAI,OAAO,CAAC,GAAG,CAAC;IAI7C,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,UAAU,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC;CAe7D"}
1
+ {"version":3,"file":"erc165-session-key-validator.d.ts","sourceRoot":"","sources":["../../../../src/kernel-zerodev/validator/erc165-session-key-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,OAAO,EACZ,KAAK,GAAG,EACR,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAE,KAAK,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAOhF,MAAM,WAAW,+BACf,SAAQ,yBAAyB;IACjC,UAAU,EAAE,kBAAkB,CAAC;IAC/B,cAAc,EAAE,cAAc,CAAC;CAChC;AAED,UAAU,cAAc;IACtB,QAAQ,EAAE,GAAG,CAAC;IACd,iBAAiB,EAAE,GAAG,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,yBAA0B,SAAQ,mBAAmB;IAChE,SAAS,CAAC,UAAU,EAAE,kBAAkB,CAAC;IACzC,cAAc,EAAE,cAAc,CAAC;gBAEnB,MAAM,EAAE,+BAA+B;IAM7C,MAAM,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAIrC,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC;IAW7B,eAAe,CACnB,oBAAoB,EAAE,OAAO,EAC7B,QAAQ,EAAE,GAAG,GACZ,OAAO,CAAC,OAAO,CAAC;IAgCb,uBAAuB,IAAI,OAAO,CAAC,GAAG,CAAC;IAI7C,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;CAe7D"}
@@ -1,4 +1,4 @@
1
- import { type Address, type Hex, type SmartAccountSigner, type UserOperationRequest } from "@alchemy/aa-core";
1
+ import { type Address, type Hex, type SmartAccountSigner, type UserOperationRequest, type SignTypedDataParams } from "@alchemy/aa-core";
2
2
  import { KernelBaseValidator, type KernelBaseValidatorParams } from "./base.js";
3
3
  export interface KillSwitchValidatorParams extends KernelBaseValidatorParams {
4
4
  guardian: SmartAccountSigner;
@@ -17,6 +17,7 @@ export declare class KillSwitchValidator extends KernelBaseValidator {
17
17
  isPluginEnabled(kernelAccountAddress: Address, selector: Hex): Promise<boolean>;
18
18
  getDummyUserOpSignature(): Promise<Hex>;
19
19
  signMessage(message: string | Uint8Array): Promise<Hex>;
20
+ signTypedData(params: SignTypedDataParams): Promise<Hex>;
20
21
  signUserOp(userOp: UserOperationRequest): Promise<Hex>;
21
22
  }
22
23
  //# sourceMappingURL=kill-switch-validator.d.ts.map
@@ -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,EAC1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAE,KAAK,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAgBhF,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;WAMzB,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,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,EAAE,mBAAmB,EAAE,KAAK,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAiBhF,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;WAMzB,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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zerodev/sdk",
3
- "version": "4.0.5",
3
+ "version": "4.0.7",
4
4
  "description": "A collection of ERC-4337 compliant smart contract account interfaces",
5
5
  "author": "ZeroDev",
6
6
  "license": "MIT",
package/src/index.ts CHANGED
@@ -36,6 +36,7 @@ export { ZeroDevProvider } from "./kernel-zerodev/provider.js";
36
36
  export * from "./kernel-zerodev/utils.js";
37
37
  export { getChainId } from "./kernel-zerodev/api/index.js";
38
38
  export { ZeroDevEthersProvider } from "./kernel-zerodev/ethers-provider/ethers-provider.js";
39
+ export { ZeroDevAccountSigner } from "./kernel-zerodev/ethers-provider/account-signer.js";
39
40
 
40
41
  export * as constants from "./kernel-zerodev/constants.js";
41
42
 
@@ -23,6 +23,7 @@ import {
23
23
  type UserOperationRequest,
24
24
  defineReadOnly,
25
25
  getChain,
26
+ type SignTypedDataParams,
26
27
  } from "@alchemy/aa-core";
27
28
  import {
28
29
  BUNDLER_URL,
@@ -223,6 +224,13 @@ export class KernelSmartContractAccount<
223
224
  return await this.validator.signMessage(formattedMessage);
224
225
  }
225
226
 
227
+ async signTypedData(params: SignTypedDataParams): Promise<Hex> {
228
+ if (!this.validator) {
229
+ throw new Error("Validator not connected");
230
+ }
231
+ return await this.validator.signTypedData(params);
232
+ }
233
+
226
234
  signUserOp(userOp: UserOperationRequest): Promise<Hex> {
227
235
  if (!this.validator) {
228
236
  throw new Error("Validator not connected");
@@ -0,0 +1,165 @@
1
+ import {
2
+ BaseSmartContractAccount,
3
+ resolveProperties,
4
+ type AccountMiddlewareFn,
5
+ type FeeDataMiddleware,
6
+ type GasEstimatorMiddleware,
7
+ type PaymasterAndDataMiddleware,
8
+ type PublicErc4337Client,
9
+ type SignTypedDataParams,
10
+ } from "@alchemy/aa-core";
11
+ import {
12
+ Signer,
13
+ type TypedDataSigner,
14
+ type TypedDataDomain,
15
+ type TypedDataField,
16
+ } from "@ethersproject/abstract-signer";
17
+ import { hexlify } from "@ethersproject/bytes";
18
+ import { _TypedDataEncoder } from "@ethersproject/hash";
19
+ import type { Deferrable } from "@ethersproject/properties";
20
+ import {
21
+ type TransactionRequest,
22
+ type TransactionResponse,
23
+ } from "@ethersproject/providers";
24
+ import { ZeroDevEthersProvider } from "./ethers-provider.js";
25
+ import type { SupportedValidators } from "../validator/types.js";
26
+
27
+ const hexlifyOptional = (value: any): `0x${string}` | undefined => {
28
+ if (value == null) {
29
+ return undefined;
30
+ }
31
+
32
+ return hexlify(value) as `0x${string}`;
33
+ };
34
+
35
+ export class ZeroDevAccountSigner<V extends SupportedValidators>
36
+ extends Signer
37
+ implements TypedDataSigner
38
+ {
39
+ private account?: BaseSmartContractAccount;
40
+
41
+ sendUserOperation;
42
+ waitForUserOperationTransaction;
43
+
44
+ constructor(readonly provider: ZeroDevEthersProvider<V>) {
45
+ super();
46
+ this.account = this.provider.accountProvider.account;
47
+
48
+ this.sendUserOperation =
49
+ this.provider.accountProvider.sendUserOperation.bind(
50
+ this.provider.accountProvider
51
+ );
52
+ this.waitForUserOperationTransaction =
53
+ this.provider.accountProvider.waitForUserOperationTransaction.bind(
54
+ this.provider.accountProvider
55
+ );
56
+ }
57
+
58
+ getAddress(): Promise<string> {
59
+ if (!this.account) {
60
+ throw new Error(
61
+ "connect the signer to a provider that has a connected account"
62
+ );
63
+ }
64
+
65
+ return this.account.getAddress();
66
+ }
67
+
68
+ signMessage(message: string | Uint8Array): Promise<string> {
69
+ if (!this.account) {
70
+ throw new Error(
71
+ "connect the signer to a provider that has a connected account"
72
+ );
73
+ }
74
+
75
+ return this.account.signMessage(message);
76
+ }
77
+
78
+ signTypedData(params: SignTypedDataParams): Promise<string> {
79
+ if (!this.account) {
80
+ throw new Error(
81
+ "connect the signer to a provider that has a connected account"
82
+ );
83
+ }
84
+ if (params.types) {
85
+ delete params.types["EIP712Domain"];
86
+ }
87
+
88
+ return this.account.signTypedData(params);
89
+ }
90
+
91
+ _signTypedData(
92
+ domain: TypedDataDomain,
93
+ types: Record<string, Array<TypedDataField>>,
94
+ value: Record<string, any>
95
+ ): Promise<string> {
96
+ if (!this.account) {
97
+ throw new Error(
98
+ "connect the signer to a provider that has a connected account"
99
+ );
100
+ }
101
+ const params = _TypedDataEncoder.getPayload(
102
+ domain,
103
+ types,
104
+ value
105
+ ) as SignTypedDataParams;
106
+ if (params.types) {
107
+ delete params.types["EIP712Domain"];
108
+ }
109
+
110
+ return this.signTypedData(params);
111
+ }
112
+
113
+ withPaymasterMiddleware = (overrides: {
114
+ dummyPaymasterDataMiddleware?: PaymasterAndDataMiddleware;
115
+ paymasterDataMiddleware?: PaymasterAndDataMiddleware;
116
+ }): this => {
117
+ this.provider.withPaymasterMiddleware(overrides);
118
+ return this;
119
+ };
120
+
121
+ withGasEstimator = (override: GasEstimatorMiddleware): this => {
122
+ this.provider.withGasEstimator(override);
123
+ return this;
124
+ };
125
+
126
+ withFeeDataGetter = (override: FeeDataMiddleware): this => {
127
+ this.provider.withFeeDataGetter(override);
128
+ return this;
129
+ };
130
+
131
+ withCustomMiddleware = (override: AccountMiddlewareFn): this => {
132
+ this.provider.withCustomMiddleware(override);
133
+ return this;
134
+ };
135
+
136
+ async sendTransaction(
137
+ transaction: Deferrable<TransactionRequest>
138
+ ): Promise<TransactionResponse> {
139
+ const resolved = await resolveProperties(transaction);
140
+ const txHash = await this.provider.accountProvider.sendTransaction({
141
+ // TODO: need to support gas fields as well
142
+ from: (await this.getAddress()) as `0x${string}`,
143
+ to: resolved.to as `0x${string}` | undefined,
144
+ data: hexlifyOptional(resolved.data),
145
+ });
146
+
147
+ return this.provider.getTransaction(txHash);
148
+ }
149
+
150
+ signTransaction(
151
+ _transaction: Deferrable<TransactionRequest>
152
+ ): Promise<string> {
153
+ throw new Error(
154
+ "Transaction signing is not supported, use sendUserOperation instead"
155
+ );
156
+ }
157
+
158
+ getPublicErc4337Client(): PublicErc4337Client {
159
+ return this.provider.getPublicErc4337Client();
160
+ }
161
+
162
+ connect(provider: ZeroDevEthersProvider<V>): ZeroDevAccountSigner<V> {
163
+ return new ZeroDevAccountSigner(provider);
164
+ }
165
+ }
@@ -11,7 +11,7 @@ import {
11
11
  type PaymasterAndDataMiddleware,
12
12
  type PublicErc4337Client,
13
13
  } from "@alchemy/aa-core";
14
- import { AccountSigner } from "@alchemy/aa-ethers";
14
+ import { ZeroDevAccountSigner } from "./account-signer.js";
15
15
  import { JsonRpcProvider } from "@ethersproject/providers";
16
16
  import type { SupportedValidators } from "../validator/types.js";
17
17
  import type { ValidatorProviderParamsMap } from "../validator-provider/types.js";
@@ -73,20 +73,20 @@ export class ZeroDevEthersProvider<
73
73
  * Connects the Provider to an Account and returns a Signer
74
74
  *
75
75
  * @param fn - a function that takes the account provider's rpcClient and returns a BaseSmartContractAccount
76
- * @returns an {@link AccountSigner} that can be used to sign and send user operations
76
+ * @returns an {@link ZeroDevAccountSigner} that can be used to sign and send user operations
77
77
  */
78
78
  connectToAccount(
79
79
  fn: (rpcClient: PublicErc4337Client) => BaseSmartContractAccount
80
- ): AccountSigner {
80
+ ): ZeroDevAccountSigner<V> {
81
81
  defineReadOnly(this, "accountProvider", this.accountProvider.connect(fn));
82
82
  return this.getAccountSigner();
83
83
  }
84
84
 
85
85
  /**
86
- * @returns an {@link AccountSigner} using this as the underlying provider
86
+ * @returns an {@link ZeroDevAccountSigner} using this as the underlying provider
87
87
  */
88
- getAccountSigner(): AccountSigner {
89
- return new AccountSigner(this);
88
+ getAccountSigner(): ZeroDevAccountSigner<V> {
89
+ return new ZeroDevAccountSigner(this);
90
90
  }
91
91
 
92
92
  withPaymasterMiddleware = (overrides: {
@@ -182,30 +182,25 @@ export class ZeroDevProvider extends SmartAccountProvider<HttpTransport> {
182
182
  const initCode = await this.account.getInitCode();
183
183
  let hash: string = "";
184
184
  let i = 0;
185
- let maxFeePerGas = 0n;
186
- let maxPriorityFeePerGas = 0n;
187
- let request: UserOperationStruct;
188
-
189
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);
202
+ let request: UserOperationStruct;
190
203
  do {
191
- const uoStruct = await asyncPipe(
192
- this.dummyPaymasterDataMiddleware,
193
- this.feeDataGetter,
194
- this.paymasterDataMiddleware,
195
- this.gasEstimator,
196
- this.customMiddleware ?? noOpMiddleware,
197
- async (struct) => ({ ...struct, ...overrides })
198
- )({
199
- initCode,
200
- sender: this.getAddress(),
201
- nonce,
202
- callData,
203
- signature: await this.account
204
- .getValidator()
205
- .getDynamicDummySignature(await this.getAddress(), callData as Hex),
206
- maxFeePerGas,
207
- maxPriorityFeePerGas,
208
- } as UserOperationStruct);
209
204
  request = deepHexlify(await resolveProperties(uoStruct));
210
205
 
211
206
  if (!isValidRequest(request)) {
@@ -227,13 +222,16 @@ export class ZeroDevProvider extends SmartAccountProvider<HttpTransport> {
227
222
  );
228
223
  } catch (error: any) {
229
224
  if (this.isReplacementOpError(error) && i++ < this.sendTxMaxRetries) {
230
- maxFeePerGas = (BigInt(request.maxFeePerGas) * 113n) / 100n;
231
- maxPriorityFeePerGas =
225
+ uoStruct.maxFeePerGas = (BigInt(request.maxFeePerGas) * 113n) / 100n;
226
+ uoStruct.maxPriorityFeePerGas =
232
227
  (BigInt(request.maxPriorityFeePerGas) * 113n) / 100n;
228
+
233
229
  console.log(
234
230
  `After ${
235
231
  this.sendTxRetryIntervalMs / 60000
236
- } minutes, resending tx with Increased Gas fees: maxFeePerGas: ${maxFeePerGas}, maxPriorityFeePerGas: ${maxPriorityFeePerGas}`
232
+ } minutes, resending tx with Increased Gas fees: maxFeePerGas: ${
233
+ uoStruct.maxFeePerGas
234
+ }, maxPriorityFeePerGas: ${uoStruct.maxPriorityFeePerGas}`
237
235
  );
238
236
  await new Promise((resolve) =>
239
237
  setTimeout(resolve, this.sendTxRetryIntervalMs)
@@ -1,4 +1,5 @@
1
1
  import {
2
+ type SignTypedDataParams,
2
3
  type SmartAccountSigner,
3
4
  type UserOperationRequest,
4
5
  } from "@alchemy/aa-core";
@@ -91,6 +92,8 @@ export abstract class KernelBaseValidator {
91
92
 
92
93
  abstract signMessage(message: Uint8Array | string | Hex): Promise<Hex>;
93
94
 
95
+ abstract signTypedData(params: SignTypedDataParams): Promise<Hex>;
96
+
94
97
  abstract signUserOp(userOp: UserOperationRequest): Promise<Hex>;
95
98
 
96
99
  abstract signer(): Promise<SmartAccountSigner>;
@@ -160,7 +163,7 @@ export abstract class KernelBaseValidator {
160
163
  }
161
164
  const sender = kernel;
162
165
  const signer = await this.signer();
163
- const ownerSig = await (signer as any).signTypedData({
166
+ const ownerSig = await signer.signTypedData({
164
167
  domain: {
165
168
  name: "Kernel",
166
169
  version: "0.2.1",
@@ -5,6 +5,7 @@ import {
5
5
  type Hex,
6
6
  type SmartAccountSigner,
7
7
  type UserOperationRequest,
8
+ type SignTypedDataParams,
8
9
  } from "@alchemy/aa-core";
9
10
  import { KernelBaseValidator, type KernelBaseValidatorParams } from "./base.js";
10
11
  import { encodeFunctionData, toBytes } from "viem";
@@ -12,6 +13,7 @@ import { ECDSAValidatorAbi } from "../abis/ESCDAValidatorAbi.js";
12
13
  import { getChainId } from "../api/index.js";
13
14
  import { DUMMY_ECDSA_SIG } from "../constants.js";
14
15
  import { KernelAccountAbi } from "../abis/KernelAccountAbi.js";
16
+ import { fixSignedData } from "../utils.js";
15
17
 
16
18
  export interface ECDSAValidatorParams extends KernelBaseValidatorParams {
17
19
  owner: SmartAccountSigner;
@@ -99,6 +101,10 @@ export class ECDSAValidator extends KernelBaseValidator {
99
101
  return await this.owner.signMessage(message);
100
102
  }
101
103
 
104
+ async signTypedData(params: SignTypedDataParams): Promise<Hex> {
105
+ return fixSignedData(await this.owner.signTypedData(params));
106
+ }
107
+
102
108
  async signUserOp(userOp: UserOperationRequest): Promise<Hex> {
103
109
  if (!this.chain) {
104
110
  throw new Error("Validator uninitialized");
@@ -4,12 +4,14 @@ import {
4
4
  type Hex,
5
5
  type SmartAccountSigner,
6
6
  type UserOperationRequest,
7
+ type SignTypedDataParams,
7
8
  } from "@alchemy/aa-core";
8
9
  import { KernelBaseValidator, type KernelBaseValidatorParams } from "./base.js";
9
10
  import { encodeFunctionData, toBytes, concat, pad, toHex } from "viem";
10
11
  import { ERC165SessionKeyValidatorAbi } from "../abis/ERC165SessionKeyValidatorAbi.js";
11
12
  import { DUMMY_ECDSA_SIG } from "../constants.js";
12
13
  import { KernelAccountAbi } from "../abis/KernelAccountAbi.js";
14
+ import { fixSignedData } from "../utils.js";
13
15
 
14
16
  export interface ERC165SessionKeyValidatorParams
15
17
  extends KernelBaseValidatorParams {
@@ -109,6 +111,10 @@ export class ERC165SessionKeyValidator extends KernelBaseValidator {
109
111
  return await this.sessionKey.signMessage(message);
110
112
  }
111
113
 
114
+ async signTypedData(params: SignTypedDataParams): Promise<Hex> {
115
+ return fixSignedData(await this.sessionKey.signTypedData(params));
116
+ }
117
+
112
118
  async signUserOp(userOp: UserOperationRequest): Promise<Hex> {
113
119
  if (!this.chain) {
114
120
  throw new Error("Validator uninitialized");
@@ -5,6 +5,7 @@ import {
5
5
  type Hex,
6
6
  type SmartAccountSigner,
7
7
  type UserOperationRequest,
8
+ type SignTypedDataParams,
8
9
  } from "@alchemy/aa-core";
9
10
  import { KernelBaseValidator, type KernelBaseValidatorParams } from "./base.js";
10
11
  import {
@@ -21,6 +22,7 @@ import { KillSwitchValidatorAbi } from "../abis/KillSwitchValidatorAbi.js";
21
22
  import { getChainId } from "../api/index.js";
22
23
  import { DUMMY_ECDSA_SIG } from "../constants.js";
23
24
  import { KernelAccountAbi } from "../abis/KernelAccountAbi.js";
25
+ import { fixSignedData } from "../utils.js";
24
26
 
25
27
  export interface KillSwitchValidatorParams extends KernelBaseValidatorParams {
26
28
  guardian: SmartAccountSigner;
@@ -116,6 +118,10 @@ export class KillSwitchValidator extends KernelBaseValidator {
116
118
  return await this.guardian.signMessage(message);
117
119
  }
118
120
 
121
+ async signTypedData(params: SignTypedDataParams): Promise<Hex> {
122
+ return fixSignedData(await this.guardian.signTypedData(params));
123
+ }
124
+
119
125
  async signUserOp(userOp: UserOperationRequest): Promise<Hex> {
120
126
  const pausedUntil = this.getPausedUntil();
121
127
  if (!this.chain) {