@zerodev/sdk 4.0.26 → 4.0.28

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 (96) hide show
  1. package/README.md +1 -693
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/kernel-zerodev/account.d.ts +1 -0
  4. package/dist/cjs/kernel-zerodev/account.js +27 -5
  5. package/dist/cjs/kernel-zerodev/account.js.map +1 -1
  6. package/dist/cjs/kernel-zerodev/api/index.d.ts +2 -0
  7. package/dist/cjs/kernel-zerodev/api/index.js +18 -1
  8. package/dist/cjs/kernel-zerodev/api/index.js.map +1 -1
  9. package/dist/cjs/kernel-zerodev/ethers-provider/account-signer.d.ts +1 -0
  10. package/dist/cjs/kernel-zerodev/ethers-provider/account-signer.js +6 -0
  11. package/dist/cjs/kernel-zerodev/ethers-provider/account-signer.js.map +1 -1
  12. package/dist/cjs/kernel-zerodev/owner/passkey/createPasskeyOwner.js.map +1 -1
  13. package/dist/cjs/kernel-zerodev/owner/passkey/exceptions.js +1 -1
  14. package/dist/cjs/kernel-zerodev/owner/passkey/exceptions.js.map +1 -1
  15. package/dist/cjs/kernel-zerodev/owner/passkey/getAutocompletePasskeyOwner.js +3 -3
  16. package/dist/cjs/kernel-zerodev/owner/passkey/getAutocompletePasskeyOwner.js.map +1 -1
  17. package/dist/cjs/kernel-zerodev/owner/passkey/getPasskeyOwner.d.ts +1 -1
  18. package/dist/cjs/kernel-zerodev/owner/passkey/getPasskeyOwner.js +4 -2
  19. package/dist/cjs/kernel-zerodev/owner/passkey/getPasskeyOwner.js.map +1 -1
  20. package/dist/cjs/kernel-zerodev/owner/passkey/index.d.ts +1 -1
  21. package/dist/cjs/kernel-zerodev/owner/passkey/index.js.map +1 -1
  22. package/dist/cjs/kernel-zerodev/owner/passkey/utils.js +2 -2
  23. package/dist/cjs/kernel-zerodev/owner/passkey/utils.js.map +1 -1
  24. package/dist/cjs/kernel-zerodev/paymaster/token-paymaster.js +3 -1
  25. package/dist/cjs/kernel-zerodev/paymaster/token-paymaster.js.map +1 -1
  26. package/dist/cjs/kernel-zerodev/provider.js +2 -2
  27. package/dist/cjs/kernel-zerodev/provider.js.map +1 -1
  28. package/dist/cjs/kernel-zerodev/validator/recovery-validator.d.ts +8 -5
  29. package/dist/cjs/kernel-zerodev/validator/recovery-validator.js +50 -9
  30. package/dist/cjs/kernel-zerodev/validator/recovery-validator.js.map +1 -1
  31. package/dist/cjs/kernel-zerodev/validator-provider/recovery-provider.js +20 -32
  32. package/dist/cjs/kernel-zerodev/validator-provider/recovery-provider.js.map +1 -1
  33. package/dist/esm/index.js.map +1 -1
  34. package/dist/esm/kernel-zerodev/account.d.ts +1 -0
  35. package/dist/esm/kernel-zerodev/account.js +29 -7
  36. package/dist/esm/kernel-zerodev/account.js.map +1 -1
  37. package/dist/esm/kernel-zerodev/api/index.d.ts +2 -0
  38. package/dist/esm/kernel-zerodev/api/index.js +16 -0
  39. package/dist/esm/kernel-zerodev/api/index.js.map +1 -1
  40. package/dist/esm/kernel-zerodev/ethers-provider/account-signer.d.ts +1 -0
  41. package/dist/esm/kernel-zerodev/ethers-provider/account-signer.js +6 -0
  42. package/dist/esm/kernel-zerodev/ethers-provider/account-signer.js.map +1 -1
  43. package/dist/esm/kernel-zerodev/owner/passkey/createPasskeyOwner.js.map +1 -1
  44. package/dist/esm/kernel-zerodev/owner/passkey/exceptions.js +1 -1
  45. package/dist/esm/kernel-zerodev/owner/passkey/exceptions.js.map +1 -1
  46. package/dist/esm/kernel-zerodev/owner/passkey/getAutocompletePasskeyOwner.js +3 -3
  47. package/dist/esm/kernel-zerodev/owner/passkey/getAutocompletePasskeyOwner.js.map +1 -1
  48. package/dist/esm/kernel-zerodev/owner/passkey/getPasskeyOwner.d.ts +1 -1
  49. package/dist/esm/kernel-zerodev/owner/passkey/getPasskeyOwner.js +4 -2
  50. package/dist/esm/kernel-zerodev/owner/passkey/getPasskeyOwner.js.map +1 -1
  51. package/dist/esm/kernel-zerodev/owner/passkey/index.d.ts +1 -1
  52. package/dist/esm/kernel-zerodev/owner/passkey/index.js +1 -1
  53. package/dist/esm/kernel-zerodev/owner/passkey/index.js.map +1 -1
  54. package/dist/esm/kernel-zerodev/owner/passkey/utils.js +2 -2
  55. package/dist/esm/kernel-zerodev/owner/passkey/utils.js.map +1 -1
  56. package/dist/esm/kernel-zerodev/paymaster/token-paymaster.js +4 -2
  57. package/dist/esm/kernel-zerodev/paymaster/token-paymaster.js.map +1 -1
  58. package/dist/esm/kernel-zerodev/provider.js +2 -2
  59. package/dist/esm/kernel-zerodev/provider.js.map +1 -1
  60. package/dist/esm/kernel-zerodev/validator/recovery-validator.d.ts +8 -5
  61. package/dist/esm/kernel-zerodev/validator/recovery-validator.js +52 -11
  62. package/dist/esm/kernel-zerodev/validator/recovery-validator.js.map +1 -1
  63. package/dist/esm/kernel-zerodev/validator-provider/recovery-provider.js +23 -32
  64. package/dist/esm/kernel-zerodev/validator-provider/recovery-provider.js.map +1 -1
  65. package/dist/types/index.d.ts.map +1 -1
  66. package/dist/types/kernel-zerodev/account.d.ts +1 -0
  67. package/dist/types/kernel-zerodev/account.d.ts.map +1 -1
  68. package/dist/types/kernel-zerodev/api/index.d.ts +2 -0
  69. package/dist/types/kernel-zerodev/api/index.d.ts.map +1 -1
  70. package/dist/types/kernel-zerodev/ethers-provider/account-signer.d.ts +1 -0
  71. package/dist/types/kernel-zerodev/ethers-provider/account-signer.d.ts.map +1 -1
  72. package/dist/types/kernel-zerodev/owner/passkey/exceptions.d.ts.map +1 -1
  73. package/dist/types/kernel-zerodev/owner/passkey/getAutocompletePasskeyOwner.d.ts.map +1 -1
  74. package/dist/types/kernel-zerodev/owner/passkey/getPasskeyOwner.d.ts +1 -1
  75. package/dist/types/kernel-zerodev/owner/passkey/getPasskeyOwner.d.ts.map +1 -1
  76. package/dist/types/kernel-zerodev/owner/passkey/index.d.ts +1 -1
  77. package/dist/types/kernel-zerodev/owner/passkey/utils.d.ts.map +1 -1
  78. package/dist/types/kernel-zerodev/paymaster/token-paymaster.d.ts.map +1 -1
  79. package/dist/types/kernel-zerodev/validator/recovery-validator.d.ts +8 -5
  80. package/dist/types/kernel-zerodev/validator/recovery-validator.d.ts.map +1 -1
  81. package/dist/types/kernel-zerodev/validator-provider/recovery-provider.d.ts.map +1 -1
  82. package/package.json +1 -1
  83. package/src/index.ts +1 -0
  84. package/src/kernel-zerodev/account.ts +30 -9
  85. package/src/kernel-zerodev/api/index.ts +27 -0
  86. package/src/kernel-zerodev/ethers-provider/account-signer.ts +9 -0
  87. package/src/kernel-zerodev/owner/passkey/createPasskeyOwner.ts +4 -4
  88. package/src/kernel-zerodev/owner/passkey/exceptions.ts +2 -2
  89. package/src/kernel-zerodev/owner/passkey/getAutocompletePasskeyOwner.ts +11 -9
  90. package/src/kernel-zerodev/owner/passkey/getPasskeyOwner.ts +5 -3
  91. package/src/kernel-zerodev/owner/passkey/index.ts +1 -1
  92. package/src/kernel-zerodev/owner/passkey/utils.ts +11 -6
  93. package/src/kernel-zerodev/paymaster/token-paymaster.ts +12 -2
  94. package/src/kernel-zerodev/provider.ts +2 -2
  95. package/src/kernel-zerodev/validator/recovery-validator.ts +59 -12
  96. package/src/kernel-zerodev/validator-provider/recovery-provider.ts +38 -36
@@ -16,6 +16,7 @@ export declare class ZeroDevAccountSigner<V extends SupportedValidators> extends
16
16
  signTypedData(params: SignTypedDataParams): Promise<string>;
17
17
  _signTypedData(domain: TypedDataDomain, types: Record<string, Array<TypedDataField>>, value: Record<string, any>): Promise<string>;
18
18
  signMessageWith6492(_msg: string | Uint8Array): Promise<Hex>;
19
+ signTypedDataWith6492(params: SignTypedDataParams): Promise<Hex>;
19
20
  withPaymasterMiddleware: (overrides: {
20
21
  dummyPaymasterDataMiddleware?: PaymasterAndDataMiddleware;
21
22
  paymasterDataMiddleware?: PaymasterAndDataMiddleware;
@@ -1 +1 @@
1
- {"version":3,"file":"account-signer.d.ts","sourceRoot":"","sources":["../../../../src/kernel-zerodev/ethers-provider/account-signer.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,EAC/B,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,MAAM,EACN,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,gCAAgC,CAAC;AAGxC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACzB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAUhC,qBAAa,oBAAoB,CAAC,CAAC,SAAS,mBAAmB,CAC7D,SAAQ,MACR,YAAW,eAAe;IAOd,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAC,CAAC;IALvD,OAAO,CAAC,OAAO,CAAC,CAA6B;IAE7C,iBAAiB,i8EAAC;IAClB,+BAA+B,kDAAC;gBAEX,QAAQ,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAcvD,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAU7B,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAU1D,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC;IAa3D,cAAc,CACZ,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,EAC5C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACzB,OAAO,CAAC,MAAM,CAAC;IAkBZ,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC;IASlE,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;IAEI,eAAe,CACnB,WAAW,EAAE,UAAU,CAAC,kBAAkB,CAAC,GAC1C,OAAO,CAAC,mBAAmB,CAAC;IAY/B,eAAe,CACb,YAAY,EAAE,UAAU,CAAC,kBAAkB,CAAC,GAC3C,OAAO,CAAC,MAAM,CAAC;IAMlB,sBAAsB,IAAI,mBAAmB;IAI7C,OAAO,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC;CAGrE"}
1
+ {"version":3,"file":"account-signer.d.ts","sourceRoot":"","sources":["../../../../src/kernel-zerodev/ethers-provider/account-signer.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,EAC/B,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,MAAM,EACN,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,gCAAgC,CAAC;AAGxC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACzB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAUhC,qBAAa,oBAAoB,CAAC,CAAC,SAAS,mBAAmB,CAC7D,SAAQ,MACR,YAAW,eAAe;IAOd,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAC,CAAC;IALvD,OAAO,CAAC,OAAO,CAAC,CAA6B;IAE7C,iBAAiB,i8EAAC;IAClB,+BAA+B,kDAAC;gBAEX,QAAQ,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAcvD,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAU7B,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAU1D,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC;IAa3D,cAAc,CACZ,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,EAC5C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACzB,OAAO,CAAC,MAAM,CAAC;IAkBZ,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC;IAS5D,qBAAqB,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC;IAStE,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;IAEI,eAAe,CACnB,WAAW,EAAE,UAAU,CAAC,kBAAkB,CAAC,GAC1C,OAAO,CAAC,mBAAmB,CAAC;IAY/B,eAAe,CACb,YAAY,EAAE,UAAU,CAAC,kBAAkB,CAAC,GAC3C,OAAO,CAAC,MAAM,CAAC;IAMlB,sBAAsB,IAAI,mBAAmB;IAI7C,OAAO,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC;CAGrE"}
@@ -1 +1 @@
1
- {"version":3,"file":"exceptions.d.ts","sourceRoot":"","sources":["../../../../../src/kernel-zerodev/owner/passkey/exceptions.ts"],"names":[],"mappings":"AAAA,qBAAa,qBAAsB,SAAQ,KAAK;IAC5C,OAAO,EAAE,MAAM,CAA8B;CAChD"}
1
+ {"version":3,"file":"exceptions.d.ts","sourceRoot":"","sources":["../../../../../src/kernel-zerodev/owner/passkey/exceptions.ts"],"names":[],"mappings":"AAAA,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,OAAO,EAAE,MAAM,CAA+B;CAC/C"}
@@ -1 +1 @@
1
- {"version":3,"file":"getAutocompletePasskeyOwner.d.ts","sourceRoot":"","sources":["../../../../../src/kernel-zerodev/owner/passkey/getAutocompletePasskeyOwner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAuB,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAWhF,wBAAsB,2BAA2B,CAAC,EAChD,SAAS,EACT,MAAgB,GACjB,EAAE;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CA4D1C"}
1
+ {"version":3,"file":"getAutocompletePasskeyOwner.d.ts","sourceRoot":"","sources":["../../../../../src/kernel-zerodev/owner/passkey/getAutocompletePasskeyOwner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAuB,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAWhF,wBAAsB,2BAA2B,CAAC,EAChD,SAAS,EACT,MAAgB,GACjB,EAAE;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CA8D1C"}
@@ -1,5 +1,5 @@
1
1
  import type { SmartAccountSigner } from "@alchemy/aa-core";
2
- export declare function getPasskeyOwner({ projectId, name, apiUrl, withCredentials }: {
2
+ export declare function getPasskeyOwner({ projectId, name, apiUrl, withCredentials, }: {
3
3
  projectId: string;
4
4
  name?: string;
5
5
  apiUrl?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"getPasskeyOwner.d.ts","sourceRoot":"","sources":["../../../../../src/kernel-zerodev/owner/passkey/getPasskeyOwner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAuB,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAWhF,wBAAsB,eAAe,CAAC,EACpC,SAAS,EACT,IAAI,EACJ,MAAgB,EAChB,eAAuB,EACxB,EAAE;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAmD1C"}
1
+ {"version":3,"file":"getPasskeyOwner.d.ts","sourceRoot":"","sources":["../../../../../src/kernel-zerodev/owner/passkey/getPasskeyOwner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAuB,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAWhF,wBAAsB,eAAe,CAAC,EACpC,SAAS,EACT,IAAI,EACJ,MAAgB,EAChB,eAAuB,GACxB,EAAE;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAqD1C"}
@@ -1,4 +1,4 @@
1
- export { abortWebauthn } from './utils.js';
1
+ export { abortWebauthn } from "./utils.js";
2
2
  export { getPasskeyOwner } from "./getPasskeyOwner.js";
3
3
  export { createPasskeyOwner } from "./createPasskeyOwner.js";
4
4
  export { getAutocompletePasskeyOwner } from "./getAutocompletePasskeyOwner.js";
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/kernel-zerodev/owner/passkey/utils.ts"],"names":[],"mappings":";AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAO5D,eAAO,MAAM,eAAe;;CAE3B,CAAA;AAED,wBAAgB,aAAa,SAG5B;AAED,eAAO,MAAM,SAAS,eAAe,CAAC;AAEtC,eAAO,MAAM,KAAK,KAAK,CAAC;AAExB,eAAO,MAAM,oBAAoB,QAAO,WAKvC,CAAC;AAEF,eAAO,MAAM,eAAe,cAAe,WAAW,KAAG,MAMxD,CAAC;AAEF,eAAO,MAAM,yBAAyB,QAC/B,MAAM,MACP,MAAM,YACA,MAAM,aACL,MAAM,gBACH,MAAM,4CAmDrB,CAAC;AAEF,eAAO,MAAM,WAAW,QACjB,MAAM,GAAG,UAAU,MACpB,MAAM,YACA,MAAM,aACL,MAAM,gBACH,MAAM,4CAWrB,CAAC;AAEF,eAAO,MAAM,aAAa,WAChB,mBAAmB,MACvB,MAAM,YACA,MAAM,aACL,MAAM,gBACH,MAAM,4CAYrB,CAAC;AAEF,eAAO,MAAM,cAAc,cAAqB,MAAM,SAAS,MAAM,kCAQpE,CAAC;AAGF,wBAAgB,uBAAuB,CAAC,eAAe,EAAE,MAAM,GAAG,WAAW,CAyB5E"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/kernel-zerodev/owner/passkey/utils.ts"],"names":[],"mappings":";AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAO5D,eAAO,MAAM,eAAe;;CAE3B,CAAC;AAEF,wBAAgB,aAAa,SAG5B;AAED,eAAO,MAAM,SAAS,eAAe,CAAC;AAEtC,eAAO,MAAM,KAAK,KAAK,CAAC;AAExB,eAAO,MAAM,oBAAoB,QAAO,WAKvC,CAAC;AAEF,eAAO,MAAM,eAAe,cAAe,WAAW,KAAG,MAMxD,CAAC;AAEF,eAAO,MAAM,yBAAyB,QAC/B,MAAM,MACP,MAAM,YACA,MAAM,aACL,MAAM,gBACH,MAAM,4CAmDrB,CAAC;AAEF,eAAO,MAAM,WAAW,QACjB,MAAM,GAAG,UAAU,MACpB,MAAM,YACA,MAAM,aACL,MAAM,gBACH,MAAM,4CAWrB,CAAC;AAEF,eAAO,MAAM,aAAa,WAChB,mBAAmB,MACvB,MAAM,YACA,MAAM,aACL,MAAM,gBACH,MAAM,4CAYrB,CAAC;AAEF,eAAO,MAAM,cAAc,cACd,MAAM,SACV,MAAM,kCAWd,CAAC;AAGF,wBAAgB,uBAAuB,CAAC,eAAe,EAAE,MAAM,GAAG,WAAW,CAyB5E"}
@@ -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,CACvB,iBAAiB,CAAC,EAAE,4BAA4B,GAC/C,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC;IAmBrB,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"}
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,EACL,KAAK,GAAG,EAKT,MAAM,MAAM,CAAC;AAcd,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,CACvB,iBAAiB,CAAC,EAAE,4BAA4B,GAC/C,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC;IAmBrB,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;CAkD5C"}
@@ -1,6 +1,6 @@
1
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
- import { type LocalAccount, type WalletClient, type Transport, type Chain, type Account } from "viem";
3
+ import { type LocalAccount, type WalletClient, type Transport, type Chain, type Account, type PublicClient } from "viem";
4
4
  import type { EthereumProvider } from "./types.js";
5
5
  interface WeightedGuardians {
6
6
  [guardian: Address]: number;
@@ -10,9 +10,10 @@ export interface RecoveryValidatorParams extends KernelBaseValidatorParams {
10
10
  threshold?: number;
11
11
  delaySeconds?: number;
12
12
  accountSigner?: SmartAccountSigner;
13
- guardianAccountOrProvider?: LocalAccount<string> | EthereumProvider;
13
+ localAccountOrProvider?: LocalAccount<string> | EthereumProvider;
14
14
  walletClient?: WalletClient<Transport, Chain>;
15
15
  signatures?: Hex;
16
+ recoveryId?: string;
16
17
  }
17
18
  export type RecoveryConfig = Required<Pick<RecoveryValidatorParams, "guardians" | "threshold" | "delaySeconds">>;
18
19
  export declare function isLocalAccount(account: any): account is LocalAccount<string>;
@@ -24,14 +25,15 @@ export declare class RecoveryValidator extends KernelBaseValidator {
24
25
  protected threshold?: number;
25
26
  protected delaySeconds: number;
26
27
  protected accountSigner?: SmartAccountSigner;
27
- protected guardianAccountOrProvider?: LocalAccount<string> | EthereumProvider;
28
+ protected localAccountOrProvider?: LocalAccount<string> | EthereumProvider;
28
29
  protected signatures?: Hex;
29
- walletClient?: WalletClient<Transport, Chain, WalletClientAccountType<typeof this.guardianAccountOrProvider>>;
30
+ protected recoveryId?: string;
31
+ walletClient?: WalletClient<Transport, Chain, WalletClientAccountType<typeof this.localAccountOrProvider>>;
30
32
  constructor(params: RecoveryValidatorParams);
31
33
  static init(params: RecoveryValidatorParams): Promise<RecoveryValidator>;
32
34
  getNonceKey(): bigint;
33
35
  setRecoverySignatures(signatures: Hex): void;
34
- getRecoverySignatures(): Hex | undefined;
36
+ getRecoverySignatures(): Promise<Hex | undefined>;
35
37
  getRecoveryConfig(): RecoveryConfig;
36
38
  signer(): Promise<SmartAccountSigner>;
37
39
  getEnableData(): Promise<Hex>;
@@ -41,6 +43,7 @@ export declare class RecoveryValidator extends KernelBaseValidator {
41
43
  encodeApproveWithSig(callDataAndNonceHash: Hex, kernelAccountAddress: Address, sigs: Hex): Hex;
42
44
  encodeVeto(callDataAndNonceHash: Hex): Hex;
43
45
  encodeRecoveryAction(enableData: Hex, defaultValidatorAddress: Address): Hex;
46
+ static fetchRecoveryConfigFromContract(kernelAccountAddress: Address, publicClient: PublicClient<Transport, Chain>): Promise<RecoveryConfig>;
44
47
  isPluginEnabled(kernelAccountAddress: Address, selector: Hex): Promise<boolean>;
45
48
  isGuardiansEnabled(kernelAccountAddress: Address): Promise<boolean>;
46
49
  getDummyUserOpSignature(): Promise<Hex>;
@@ -1 +1 @@
1
- {"version":3,"file":"recovery-validator.d.ts","sourceRoot":"","sources":["../../../../src/kernel-zerodev/validator/recovery-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,EACL,mBAAmB,EAEnB,KAAK,yBAAyB,EAC/B,MAAM,WAAW,CAAC;AACnB,OAAO,EAML,KAAK,YAAY,EAEjB,KAAK,YAAY,EAGjB,KAAK,SAAS,EACd,KAAK,KAAK,EACV,KAAK,OAAO,EAGb,MAAM,MAAM,CAAC;AAUd,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAInD,UAAU,iBAAiB;IACzB,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC;CAC7B;AACD,MAAM,WAAW,uBAAwB,SAAQ,yBAAyB;IACxE,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,yBAAyB,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,GAAG,gBAAgB,CAAC;IACpE,YAAY,CAAC,EAAE,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC9C,UAAU,CAAC,EAAE,GAAG,CAAC;CAClB;AAED,MAAM,MAAM,cAAc,GAAG,QAAQ,CACnC,IAAI,CAAC,uBAAuB,EAAE,WAAW,GAAG,WAAW,GAAG,cAAc,CAAC,CAC1E,CAAC;AAEF,wBAAgB,cAAc,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,CAE5E;AAED,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,GAAG,GACZ,QAAQ,IAAI,gBAAgB,CAE9B;AAED,KAAK,uBAAuB,CAAC,CAAC,IAAI,CAAC,SAAS,YAAY,CAAC,MAAM,CAAC,GAC5D,OAAO,GACP,CAAC,SAAS,gBAAgB,GAC1B,SAAS,GACT,KAAK,CAAC;AAEV,eAAO,MAAM,gBAAgB,eAE5B,CAAC;AAEF,qBAAa,iBAAkB,SAAQ,mBAAmB;IACxD,SAAS,CAAC,SAAS,CAAC,EAAE,iBAAiB,CAAC;IACxC,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC;IAC/B,SAAS,CAAC,aAAa,CAAC,EAAE,kBAAkB,CAAC;IAC7C,SAAS,CAAC,yBAAyB,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,GAAG,gBAAgB,CAAC;IAC9E,SAAS,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC;IAC3B,YAAY,CAAC,EAAE,YAAY,CACzB,SAAS,EACT,KAAK,EACL,uBAAuB,CAAC,OAAO,IAAI,CAAC,yBAAyB,CAAC,CAC/D,CAAC;gBAEU,MAAM,EAAE,uBAAuB;WA+BvB,IAAI,CACtB,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC,iBAAiB,CAAC;IAU7B,WAAW,IAAI,MAAM;IAIrB,qBAAqB,CAAC,UAAU,EAAE,GAAG;IAIrC,qBAAqB,IAAI,GAAG,GAAG,SAAS;IAIxC,iBAAiB,IAAI,cAAc;IAgB7B,MAAM,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAOrC,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC;IAsBnC,YAAY,CAAC,YAAY,EAAE,GAAG,GAAG,GAAG;IAQpC,aAAa,CAAC,WAAW,GAAE,GAAU,GAAG,GAAG;IAQ3C,aAAa,CAAC,oBAAoB,EAAE,GAAG,EAAE,oBAAoB,EAAE,OAAO,GAAG,GAAG;IAQ5E,oBAAoB,CAClB,oBAAoB,EAAE,GAAG,EACzB,oBAAoB,EAAE,OAAO,EAC7B,IAAI,EAAE,GAAG,GACR,GAAG;IAQN,UAAU,CAAC,oBAAoB,EAAE,GAAG,GAAG,GAAG;IAQ1C,oBAAoB,CAAC,UAAU,EAAE,GAAG,EAAE,uBAAuB,EAAE,OAAO,GAAG,GAAG;IAQtE,eAAe,CACnB,oBAAoB,EAAE,OAAO,EAC7B,QAAQ,EAAE,GAAG,GACZ,OAAO,CAAC,OAAO,CAAC;IAwCb,kBAAkB,CAAC,oBAAoB,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IA0BnE,uBAAuB,IAAI,OAAO,CAAC,GAAG,CAAC;IAavC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC;IAOvD,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC;IAOxD,gBAAgB,CAAC,YAAY,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAsBjD,UAAU,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC;CAM9D"}
1
+ {"version":3,"file":"recovery-validator.d.ts","sourceRoot":"","sources":["../../../../src/kernel-zerodev/validator/recovery-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,EACL,mBAAmB,EAEnB,KAAK,yBAAyB,EAC/B,MAAM,WAAW,CAAC;AACnB,OAAO,EAML,KAAK,YAAY,EAEjB,KAAK,YAAY,EAGjB,KAAK,SAAS,EACd,KAAK,KAAK,EACV,KAAK,OAAO,EAGZ,KAAK,YAAY,EAClB,MAAM,MAAM,CAAC;AAWd,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAInD,UAAU,iBAAiB;IACzB,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC;CAC7B;AACD,MAAM,WAAW,uBAAwB,SAAQ,yBAAyB;IACxE,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,sBAAsB,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,GAAG,gBAAgB,CAAC;IACjE,YAAY,CAAC,EAAE,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC9C,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,cAAc,GAAG,QAAQ,CACnC,IAAI,CAAC,uBAAuB,EAAE,WAAW,GAAG,WAAW,GAAG,cAAc,CAAC,CAC1E,CAAC;AAEF,wBAAgB,cAAc,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,CAE5E;AAED,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,GAAG,GACZ,QAAQ,IAAI,gBAAgB,CAE9B;AAED,KAAK,uBAAuB,CAAC,CAAC,IAAI,CAAC,SAAS,YAAY,CAAC,MAAM,CAAC,GAC5D,OAAO,GACP,CAAC,SAAS,gBAAgB,GAC1B,SAAS,GACT,KAAK,CAAC;AAEV,eAAO,MAAM,gBAAgB,eAE5B,CAAC;AAEF,qBAAa,iBAAkB,SAAQ,mBAAmB;IACxD,SAAS,CAAC,SAAS,CAAC,EAAE,iBAAiB,CAAC;IACxC,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC;IAC/B,SAAS,CAAC,aAAa,CAAC,EAAE,kBAAkB,CAAC;IAC7C,SAAS,CAAC,sBAAsB,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,GAAG,gBAAgB,CAAC;IAC3E,SAAS,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC;IAC3B,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC9B,YAAY,CAAC,EAAE,YAAY,CACzB,SAAS,EACT,KAAK,EACL,uBAAuB,CAAC,OAAO,IAAI,CAAC,sBAAsB,CAAC,CAC5D,CAAC;gBAEU,MAAM,EAAE,uBAAuB;WAgCvB,IAAI,CACtB,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC,iBAAiB,CAAC;IAU7B,WAAW,IAAI,MAAM;IAIrB,qBAAqB,CAAC,UAAU,EAAE,GAAG;IAI/B,qBAAqB,IAAI,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC;IAQvD,iBAAiB,IAAI,cAAc;IAgB7B,MAAM,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAOrC,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC;IAsBnC,YAAY,CAAC,YAAY,EAAE,GAAG,GAAG,GAAG;IAQpC,aAAa,CAAC,WAAW,GAAE,GAAU,GAAG,GAAG;IAQ3C,aAAa,CAAC,oBAAoB,EAAE,GAAG,EAAE,oBAAoB,EAAE,OAAO,GAAG,GAAG;IAQ5E,oBAAoB,CAClB,oBAAoB,EAAE,GAAG,EACzB,oBAAoB,EAAE,OAAO,EAC7B,IAAI,EAAE,GAAG,GACR,GAAG;IAQN,UAAU,CAAC,oBAAoB,EAAE,GAAG,GAAG,GAAG;IAQ1C,oBAAoB,CAAC,UAAU,EAAE,GAAG,EAAE,uBAAuB,EAAE,OAAO,GAAG,GAAG;WAQ/D,+BAA+B,CAC1C,oBAAoB,EAAE,OAAO,EAC7B,YAAY,EAAE,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,GAC3C,OAAO,CAAC,cAAc,CAAC;IAmCpB,eAAe,CACnB,oBAAoB,EAAE,OAAO,EAC7B,QAAQ,EAAE,GAAG,GACZ,OAAO,CAAC,OAAO,CAAC;IAwCb,kBAAkB,CAAC,oBAAoB,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IA0BnE,uBAAuB,IAAI,OAAO,CAAC,GAAG,CAAC;IAavC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC;IAOvD,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC;IAOxD,gBAAgB,CAAC,YAAY,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAsBjD,UAAU,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC;CAM9D"}
@@ -1 +1 @@
1
- {"version":3,"file":"recovery-provider.d.ts","sourceRoot":"","sources":["../../../../src/kernel-zerodev/validator-provider/recovery-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,KAAK,+BAA+B,EACrC,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,iBAAiB,EACjB,KAAK,cAAc,EACnB,KAAK,uBAAuB,EAC7B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAEL,KAAK,OAAO,EACZ,KAAK,uBAAuB,EAC7B,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EAIL,KAAK,GAAG,EAGR,KAAK,kBAAkB,EAExB,MAAM,MAAM,CAAC;AAMd,MAAM,WAAW,sBACf,SAAQ,+BAA+B,CAAC,uBAAuB,CAAC;IAChE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,GAAG,CAAC;CAClB;AAED,qBAAa,gBAAiB,SAAQ,iBAAiB,CACrD,iBAAiB,EACjB,uBAAuB,CACxB;IACC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,GAAG,CAAC;gBACL,MAAM,EAAE,sBAAsB;WA2BtB,IAAI,CACtB,MAAM,EAAE,sBAAsB,GAC7B,OAAO,CAAC,gBAAgB,CAAC;IA6CtB,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC;IAUvC,sBAAsB,CAAC,UAAU,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAerD,cAAc,IAAI,OAAO,CAAC,uBAAuB,CAAC;IAkBlD,gBAAgB,CAAC,UAAU,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;IAyBxD,uBAAuB,IAAI,MAAM;WAQnB,yBAAyB,CACrC,cAAc,EAAE,MAAM,GACrB,cAAc;IAMX,eAAe,CAAC,UAAU,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA+B9D,YAAY,CAAC,UAAU,CAAC,EAAE,GAAG;IAkC7B,sBAAsB,CAC1B,UAAU,CAAC,EAAE,GAAG,EAChB,IAAI,CAAC,EAAE,GAAG,GACT,OAAO,CAAC,kBAAkB,CAAC;IAoCxB,cAAc,CAAC,UAAU,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAqBlE,cAAc,CAAC,UAAU,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAqBxE,kBAAkB,oEAAiC;CACpD"}
1
+ {"version":3,"file":"recovery-provider.d.ts","sourceRoot":"","sources":["../../../../src/kernel-zerodev/validator-provider/recovery-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,KAAK,+BAA+B,EACrC,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,iBAAiB,EACjB,KAAK,cAAc,EACnB,KAAK,uBAAuB,EAC7B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAEL,KAAK,OAAO,EACZ,KAAK,uBAAuB,EAC7B,MAAM,kBAAkB,CAAC;AAS1B,OAAO,EAIL,KAAK,GAAG,EAGR,KAAK,kBAAkB,EAGxB,MAAM,MAAM,CAAC;AAKd,MAAM,WAAW,sBACf,SAAQ,+BAA+B,CAAC,uBAAuB,CAAC;IAChE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,GAAG,CAAC;CAClB;AAED,qBAAa,gBAAiB,SAAQ,iBAAiB,CACrD,iBAAiB,EACjB,uBAAuB,CACxB;IACC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,GAAG,CAAC;gBACL,MAAM,EAAE,sBAAsB;WA4BtB,IAAI,CACtB,MAAM,EAAE,sBAAsB,GAC7B,OAAO,CAAC,gBAAgB,CAAC;IA2DtB,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC;IAUvC,sBAAsB,CAAC,UAAU,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAerD,cAAc,IAAI,OAAO,CAAC,uBAAuB,CAAC;IAkBlD,gBAAgB,CAAC,UAAU,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;IAexD,uBAAuB,IAAI,MAAM;WAQnB,yBAAyB,CACrC,cAAc,EAAE,MAAM,GACrB,cAAc;IAMX,eAAe,CAAC,UAAU,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA+B9D,YAAY,CAAC,UAAU,CAAC,EAAE,GAAG;IAyB7B,sBAAsB,CAC1B,UAAU,CAAC,EAAE,GAAG,EAChB,IAAI,CAAC,EAAE,GAAG,GACT,OAAO,CAAC,kBAAkB,CAAC;IAqCxB,cAAc,CAAC,UAAU,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAqBlE,cAAc,CAAC,UAAU,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAqBxE,kBAAkB,oEAAiC;CACpD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zerodev/sdk",
3
- "version": "4.0.26",
3
+ "version": "4.0.28",
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
@@ -37,6 +37,7 @@ export { ZeroDevEthersProvider } from "./kernel-zerodev/ethers-provider/ethers-p
37
37
  export { ZeroDevAccountSigner } from "./kernel-zerodev/ethers-provider/account-signer.js";
38
38
  export { EmptyAccountSigner } from "./kernel-zerodev/signer/empty-account.js";
39
39
 
40
+ // Constant exports
40
41
  export * as constants from "./kernel-zerodev/constants.js";
41
42
 
42
43
  // Owner exports
@@ -1,7 +1,6 @@
1
1
  import type { Address } from "abitype";
2
2
  import {
3
3
  concatHex,
4
- encodeAbiParameters,
5
4
  encodeFunctionData,
6
5
  type FallbackTransport,
7
6
  hashMessage,
@@ -9,7 +8,6 @@ import {
9
8
  toBytes,
10
9
  type Transport,
11
10
  } from "viem";
12
- import { parseAbiParameters } from "abitype";
13
11
  import { KernelBaseValidator } from "./validator/base.js";
14
12
  import { KernelAccountAbi } from "./abis/KernelAccountAbi.js";
15
13
  import { KernelFactoryAbi } from "./abis/KernelFactoryAbi.js";
@@ -21,6 +19,7 @@ import {
21
19
  defineReadOnly,
22
20
  getChain,
23
21
  type SignTypedDataParams,
22
+ wrapWith6492,
24
23
  } from "@alchemy/aa-core";
25
24
  import {
26
25
  BUNDLER_URL,
@@ -228,19 +227,41 @@ export class KernelSmartContractAccount<
228
227
  throw new Error("Validator not connected");
229
228
  }
230
229
  const formattedMessage = typeof msg === "string" ? toBytes(msg) : msg;
231
- let sig = await this.validator.signMessage(
230
+ let signature = await this.validator.signMessage(
232
231
  toBytes(hashMessage({ raw: formattedMessage }))
233
232
  );
234
233
  // If the account is undeployed, use ERC-6492
235
234
  if (!(await this.isAccountDeployed())) {
236
- sig = (encodeAbiParameters(
237
- parseAbiParameters("address, bytes, bytes"),
238
- [this.factoryAddress, await this.getFactoryInitCode(), sig]
239
- ) +
240
- "6492649264926492649264926492649264926492649264926492649264926492") as Hex; // magic suffix
235
+ signature = wrapWith6492({
236
+ factoryAddress: this.factoryAddress,
237
+ initCode: await this.getFactoryInitCode(),
238
+ signature,
239
+ });
241
240
  }
242
241
 
243
- return sig;
242
+ return signature;
243
+ } catch (err: any) {
244
+ console.error("Got Error - ", err.message);
245
+ throw new Error("Message Signing with EIP6492 failed");
246
+ }
247
+ }
248
+
249
+ async signTypedDataWith6492(params: SignTypedDataParams): Promise<Hex> {
250
+ try {
251
+ if (!this.validator) {
252
+ throw new Error("Validator not connected");
253
+ }
254
+ let signature = await this.validator.signTypedData(params);
255
+ // If the account is undeployed, use ERC-6492
256
+ if (!(await this.isAccountDeployed())) {
257
+ signature = wrapWith6492({
258
+ factoryAddress: this.factoryAddress,
259
+ initCode: await this.getFactoryInitCode(),
260
+ signature,
261
+ });
262
+ }
263
+
264
+ return signature;
244
265
  } catch (err: any) {
245
266
  console.error("Got Error - ", err.message);
246
267
  throw new Error("Message Signing with EIP6492 failed");
@@ -1,5 +1,6 @@
1
1
  import axios from "axios";
2
2
  import { BACKEND_URL } from "../constants.js";
3
+ import type { Hex } from "viem";
3
4
 
4
5
  export const getChainId = async (
5
6
  projectId: string,
@@ -39,6 +40,32 @@ export const getRecoveryData = async (recoveryId: string) => {
39
40
  }
40
41
  };
41
42
 
43
+ export const postRecoveryData = async (
44
+ enableData: Hex,
45
+ scwAddress: Hex,
46
+ recoveryConfig: string
47
+ ): Promise<string | undefined> => {
48
+ try {
49
+ const {
50
+ data: { recoveryId },
51
+ } = await axios.post(
52
+ `${BACKEND_URL}/v1/recovery`,
53
+ {
54
+ enableData,
55
+ scwAddress,
56
+ recoveryConfig,
57
+ },
58
+ {
59
+ headers: { "Content-Type": "application/json" },
60
+ }
61
+ );
62
+ return recoveryId;
63
+ } catch (error) {
64
+ console.log(error);
65
+ return undefined;
66
+ }
67
+ };
68
+
42
69
  export const setSignatures = async (recoveryId: string, signatures: string) => {
43
70
  try {
44
71
  const { data } = await axios.patch(
@@ -120,6 +120,15 @@ export class ZeroDevAccountSigner<V extends SupportedValidators>
120
120
  return this.account.signMessageWith6492(_msg);
121
121
  }
122
122
 
123
+ async signTypedDataWith6492(params: SignTypedDataParams): Promise<Hex> {
124
+ if (!this.account) {
125
+ throw new Error(
126
+ "connect the signer to a provider that has a connected account"
127
+ );
128
+ }
129
+ return this.account.signTypedDataWith6492(params);
130
+ }
131
+
123
132
  withPaymasterMiddleware = (overrides: {
124
133
  dummyPaymasterDataMiddleware?: PaymasterAndDataMiddleware;
125
134
  paymasterDataMiddleware?: PaymasterAndDataMiddleware;
@@ -30,16 +30,16 @@ export async function createPasskeyOwner({
30
30
  //@ts-expect-error
31
31
  if (typeof window !== "undefined") {
32
32
  const challenge = generateRandomBuffer();
33
- let credentials = undefined
33
+ let credentials = undefined;
34
34
  if (withCredentials) {
35
- credentials = await getCredentials(projectId, name)
35
+ credentials = await getCredentials(projectId, name);
36
36
  }
37
37
  if (credentials && credentials?.length >= 64) {
38
- throw new UsernameIsAlreadyUsed()
38
+ throw new UsernameIsAlreadyUsed();
39
39
  }
40
40
 
41
41
  try {
42
- abortWebauthn()
42
+ abortWebauthn();
43
43
  const attestation = await getWebAuthnAttestation({
44
44
  publicKey: {
45
45
  rp: {
@@ -1,3 +1,3 @@
1
1
  export class UsernameIsAlreadyUsed extends Error {
2
- message: string = 'Username is already used.'
3
- }
2
+ message: string = "Username is already used.";
3
+ }
@@ -19,27 +19,29 @@ export async function getAutocompletePasskeyOwner({
19
19
  name?: string;
20
20
  apiUrl?: string;
21
21
  }): Promise<SmartAccountSigner | undefined> {
22
- //@ts-ignore
23
- if (!PublicKeyCredential?.isConditionalMediationAvailable ||
22
+ if (
24
23
  //@ts-ignore
25
- !PublicKeyCredential?.isConditionalMediationAvailable()) {
26
- return;
27
- }
24
+ !PublicKeyCredential?.isConditionalMediationAvailable ||
25
+ //@ts-ignore
26
+ !PublicKeyCredential?.isConditionalMediationAvailable()
27
+ ) {
28
+ return;
29
+ }
28
30
 
29
31
  //@ts-expect-error
30
32
  if (typeof window !== "undefined") {
31
33
  const challenge = generateRandomBuffer();
32
34
  try {
33
- abortWebauthn()
35
+ abortWebauthn();
34
36
  const assertion = JSON.parse(
35
37
  await getWebAuthnAssertion(base64UrlEncode(challenge), {
36
- mediation: 'conditional',
38
+ mediation: "conditional",
37
39
  publicKey: {
38
40
  //@ts-expect-error
39
41
  rpId: window.location.hostname,
40
42
  userVerification: "required",
41
43
  },
42
- signal: abortController.controller.signal
44
+ signal: abortController.controller.signal,
43
45
  })
44
46
  );
45
47
  const response = await axios.post(
@@ -50,7 +52,7 @@ export async function getAutocompletePasskeyOwner({
50
52
  }
51
53
  );
52
54
  const { id, walletId, address } = await response.data;
53
- console.log('owner', id, walletId, address)
55
+ console.log("owner", id, walletId, address);
54
56
  const owner: SmartAccountSigner = {
55
57
  getAddress: async () => address,
56
58
  signMessage: (msg) =>
@@ -15,7 +15,7 @@ export async function getPasskeyOwner({
15
15
  projectId,
16
16
  name,
17
17
  apiUrl = API_URL,
18
- withCredentials = false
18
+ withCredentials = false,
19
19
  }: {
20
20
  projectId: string;
21
21
  name?: string;
@@ -26,14 +26,16 @@ export async function getPasskeyOwner({
26
26
  if (typeof window !== "undefined") {
27
27
  const challenge = generateRandomBuffer();
28
28
  try {
29
- abortWebauthn()
29
+ abortWebauthn();
30
30
  const assertion = JSON.parse(
31
31
  await getWebAuthnAssertion(base64UrlEncode(challenge), {
32
32
  publicKey: {
33
33
  //@ts-expect-error
34
34
  rpId: window.location.hostname,
35
35
  userVerification: "required",
36
- allowCredentials: withCredentials ? await getCredentials(projectId, name) : undefined,
36
+ allowCredentials: withCredentials
37
+ ? await getCredentials(projectId, name)
38
+ : undefined,
37
39
  },
38
40
  })
39
41
  );
@@ -1,4 +1,4 @@
1
- export { abortWebauthn } from './utils.js';
1
+ export { abortWebauthn } from "./utils.js";
2
2
  export { getPasskeyOwner } from "./getPasskeyOwner.js";
3
3
  export { createPasskeyOwner } from "./createPasskeyOwner.js";
4
4
  export { getAutocompletePasskeyOwner } from "./getAutocompletePasskeyOwner.js";
@@ -10,11 +10,11 @@ browserInit({
10
10
 
11
11
  export const abortController = {
12
12
  controller: new AbortController(),
13
- }
13
+ };
14
14
 
15
15
  export function abortWebauthn() {
16
- abortController.controller.abort('ZeroDev: Reset previous Webauthn request')
17
- abortController.controller = new AbortController()
16
+ abortController.controller.abort("ZeroDev: Reset previous Webauthn request");
17
+ abortController.controller = new AbortController();
18
18
  }
19
19
 
20
20
  export const publicKey = "public-key";
@@ -44,7 +44,7 @@ export const signMessageImplementation = async (
44
44
  credentialId: string,
45
45
  apiUrl = API_URL
46
46
  ) => {
47
- abortWebauthn()
47
+ abortWebauthn();
48
48
  const signedRequest = await TurnkeyApi.signSignRawPayload(
49
49
  {
50
50
  body: {
@@ -131,8 +131,13 @@ export const signTypedData = async (
131
131
  );
132
132
  };
133
133
 
134
- export const getCredentials = async (projectId: string, name?: string, apiUrl = API_URL) => {
135
- const url = `${apiUrl}/projects/${projectId}/wallets` + (name ? `/${name}` : '')
134
+ export const getCredentials = async (
135
+ projectId: string,
136
+ name?: string,
137
+ apiUrl = API_URL
138
+ ) => {
139
+ const url =
140
+ `${apiUrl}/projects/${projectId}/wallets` + (name ? `/${name}` : "");
136
141
  const response = await axios.get(url);
137
142
  const credentials = response.data;
138
143
  return credentials.map((credential: string) => ({
@@ -5,7 +5,13 @@ import {
5
5
  type UserOperationStruct,
6
6
  } from "@alchemy/aa-core";
7
7
  import axios from "axios";
8
- import { type Hex, toHex, decodeFunctionData, encodeFunctionData } from "viem";
8
+ import {
9
+ type Hex,
10
+ toHex,
11
+ decodeFunctionData,
12
+ encodeFunctionData,
13
+ isAddress,
14
+ } from "viem";
9
15
  import { ERC20Abi } from "../abis/ERC20Abi.js";
10
16
  import { KernelAccountAbi } from "../abis/KernelAccountAbi.js";
11
17
  import { MultiSendAbi } from "../abis/MultiSendAbi.js";
@@ -180,7 +186,11 @@ export class TokenPaymaster extends Paymaster {
180
186
  chainId
181
187
  );
182
188
  let paymasterAddress = await this.getPaymasterAddress(paymasterProvider);
183
- if (gasTokenAddress !== undefined && paymasterAddress !== undefined) {
189
+ if (
190
+ gasTokenAddress !== undefined &&
191
+ paymasterAddress !== undefined &&
192
+ isAddress(paymasterAddress)
193
+ ) {
184
194
  const erc20UserOp = await this.getERC20UserOp(
185
195
  struct,
186
196
  mainCall,
@@ -331,13 +331,13 @@ export class ZeroDevProvider extends SmartAccountProvider<HttpTransport> {
331
331
  throw new Error("account not connected!");
332
332
  }
333
333
  const [data, address] = params!;
334
- if (address !== (await this.getAddress())) {
334
+ if (address.toLowerCase() !== (await this.getAddress()).toLowerCase()) {
335
335
  throw new Error(
336
336
  "cannot sign for address that is not the current account"
337
337
  );
338
338
  }
339
339
  // @ts-ignore
340
- return this.account.signWithEip6492(data);
340
+ return this.account.signMessageWith6492(data);
341
341
  default:
342
342
  // @ts-ignore
343
343
  return this.rpcClient.request(args);
@@ -27,13 +27,15 @@ import {
27
27
  type Account,
28
28
  publicActions,
29
29
  getFunctionSelector,
30
+ type PublicClient,
30
31
  } from "viem";
31
32
  import { WeightedValidatorAbi } from "../abis/WeightedValidatorAbi.js";
32
- import { getChainId } from "../api/index.js";
33
+ import { getChainId, getRecoveryData } from "../api/index.js";
33
34
  import {
34
35
  CHAIN_ID_TO_NODE,
35
36
  DUMMY_ECDSA_SIG,
36
37
  RECOVERY_ACTION,
38
+ RECOVERY_VALIDATOR_ADDRESS,
37
39
  } from "../constants.js";
38
40
  import { KernelAccountAbi } from "../abis/KernelAccountAbi.js";
39
41
  import { fixSignedData } from "../utils.js";
@@ -49,9 +51,10 @@ export interface RecoveryValidatorParams extends KernelBaseValidatorParams {
49
51
  threshold?: number;
50
52
  delaySeconds?: number;
51
53
  accountSigner?: SmartAccountSigner;
52
- guardianAccountOrProvider?: LocalAccount<string> | EthereumProvider;
54
+ localAccountOrProvider?: LocalAccount<string> | EthereumProvider;
53
55
  walletClient?: WalletClient<Transport, Chain>;
54
56
  signatures?: Hex;
57
+ recoveryId?: string;
55
58
  }
56
59
 
57
60
  export type RecoveryConfig = Required<
@@ -83,12 +86,13 @@ export class RecoveryValidator extends KernelBaseValidator {
83
86
  protected threshold?: number;
84
87
  protected delaySeconds: number;
85
88
  protected accountSigner?: SmartAccountSigner;
86
- protected guardianAccountOrProvider?: LocalAccount<string> | EthereumProvider;
89
+ protected localAccountOrProvider?: LocalAccount<string> | EthereumProvider;
87
90
  protected signatures?: Hex;
91
+ protected recoveryId?: string;
88
92
  walletClient?: WalletClient<
89
93
  Transport,
90
94
  Chain,
91
- WalletClientAccountType<typeof this.guardianAccountOrProvider>
95
+ WalletClientAccountType<typeof this.localAccountOrProvider>
92
96
  >;
93
97
 
94
98
  constructor(params: RecoveryValidatorParams) {
@@ -98,27 +102,28 @@ export class RecoveryValidator extends KernelBaseValidator {
98
102
  this.delaySeconds = params.delaySeconds ?? 0;
99
103
  this.accountSigner = params.accountSigner;
100
104
  this.mode = params.mode ?? ValidatorMode.plugin;
101
- this.guardianAccountOrProvider = params.guardianAccountOrProvider;
105
+ this.localAccountOrProvider = params.localAccountOrProvider;
102
106
  this.signatures = params.signatures;
103
107
  this.validAfter = params.validAfter ?? 0;
104
108
  this.validUntil = params.validUntil ?? 0;
105
109
  this.executor = params.executor ?? RECOVERY_ACTION;
106
110
  this.selector = params.selector ?? recoverySelector;
107
- if (isLocalAccount(params.guardianAccountOrProvider)) {
111
+ this.recoveryId = params.recoveryId;
112
+ if (isLocalAccount(params.localAccountOrProvider)) {
108
113
  this.walletClient = createWalletClient({
109
- account: params.guardianAccountOrProvider,
114
+ account: params.localAccountOrProvider,
110
115
  chain: this.chain ?? polygonMumbai,
111
116
  transport: http(CHAIN_ID_TO_NODE[this.chain?.id ?? polygonMumbai.id]),
112
117
  }).extend(publicActions);
113
- } else if (isEthereumProvider(params.guardianAccountOrProvider)) {
118
+ } else if (isEthereumProvider(params.localAccountOrProvider)) {
114
119
  this.walletClient = createWalletClient({
115
120
  chain: this.chain ?? polygonMumbai,
116
- transport: custom(params.guardianAccountOrProvider),
121
+ transport: custom(params.localAccountOrProvider),
117
122
  }).extend(publicActions);
118
123
  } else if (params.walletClient) {
119
124
  this.walletClient = params.walletClient.extend(publicActions);
120
- } else if (params.guardianAccountOrProvider) {
121
- throw Error("Incorrect guardianAccountOrProvider type");
125
+ } else if (params.localAccountOrProvider) {
126
+ throw Error("Incorrect localAccountOrProvider type");
122
127
  }
123
128
  }
124
129
 
@@ -142,7 +147,11 @@ export class RecoveryValidator extends KernelBaseValidator {
142
147
  this.signatures = signatures;
143
148
  }
144
149
 
145
- getRecoverySignatures(): Hex | undefined {
150
+ async getRecoverySignatures(): Promise<Hex | undefined> {
151
+ if (this.recoveryId) {
152
+ const { signatures } = await getRecoveryData(this.recoveryId);
153
+ this.setRecoverySignatures(signatures);
154
+ }
146
155
  return this.signatures;
147
156
  }
148
157
 
@@ -243,6 +252,44 @@ export class RecoveryValidator extends KernelBaseValidator {
243
252
  });
244
253
  }
245
254
 
255
+ static async fetchRecoveryConfigFromContract(
256
+ kernelAccountAddress: Address,
257
+ publicClient: PublicClient<Transport, Chain>
258
+ ): Promise<RecoveryConfig> {
259
+ try {
260
+ const [, threshold, delaySeconds, firstGuardian] =
261
+ await publicClient.readContract({
262
+ abi: WeightedValidatorAbi,
263
+ address: RECOVERY_VALIDATOR_ADDRESS,
264
+ functionName: "weightedStorage",
265
+ args: [kernelAccountAddress],
266
+ });
267
+
268
+ const guardians: WeightedGuardians = {};
269
+
270
+ let nextGuardian = firstGuardian;
271
+ while (
272
+ nextGuardian.toLowerCase() !== kernelAccountAddress.toLowerCase()
273
+ ) {
274
+ const guardianStorage = await publicClient.readContract({
275
+ abi: WeightedValidatorAbi,
276
+ address: RECOVERY_VALIDATOR_ADDRESS,
277
+ functionName: "guardian",
278
+ args: [nextGuardian, kernelAccountAddress],
279
+ });
280
+ guardians[nextGuardian] = guardianStorage[0];
281
+ nextGuardian = guardianStorage[1];
282
+ }
283
+ return {
284
+ threshold,
285
+ delaySeconds,
286
+ guardians,
287
+ };
288
+ } catch (error) {
289
+ throw Error("Failed to fetch config from contract");
290
+ }
291
+ }
292
+
246
293
  async isPluginEnabled(
247
294
  kernelAccountAddress: Address,
248
295
  selector: Hex