@zerodev/sdk 4.0.14 → 4.0.16

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 (46) hide show
  1. package/dist/cjs/kernel-zerodev/ethers-provider/ethers-provider.js +13 -4
  2. package/dist/cjs/kernel-zerodev/ethers-provider/ethers-provider.js.map +1 -1
  3. package/dist/cjs/kernel-zerodev/owner/passkey/utils.d.ts +1 -2
  4. package/dist/cjs/kernel-zerodev/owner/passkey/utils.js +16 -16
  5. package/dist/cjs/kernel-zerodev/owner/passkey/utils.js.map +1 -1
  6. package/dist/cjs/kernel-zerodev/paymaster/token-paymaster.d.ts +1 -1
  7. package/dist/cjs/kernel-zerodev/paymaster/token-paymaster.js +3 -2
  8. package/dist/cjs/kernel-zerodev/paymaster/token-paymaster.js.map +1 -1
  9. package/dist/cjs/kernel-zerodev/provider.js +2 -0
  10. package/dist/cjs/kernel-zerodev/provider.js.map +1 -1
  11. package/dist/cjs/kernel-zerodev/validator/base.d.ts +0 -3
  12. package/dist/cjs/kernel-zerodev/validator/base.js +0 -7
  13. package/dist/cjs/kernel-zerodev/validator/base.js.map +1 -1
  14. package/dist/cjs/kernel-zerodev/validator-provider/base.js +11 -5
  15. package/dist/cjs/kernel-zerodev/validator-provider/base.js.map +1 -1
  16. package/dist/esm/kernel-zerodev/ethers-provider/ethers-provider.js +13 -4
  17. package/dist/esm/kernel-zerodev/ethers-provider/ethers-provider.js.map +1 -1
  18. package/dist/esm/kernel-zerodev/owner/passkey/utils.d.ts +1 -2
  19. package/dist/esm/kernel-zerodev/owner/passkey/utils.js +15 -15
  20. package/dist/esm/kernel-zerodev/owner/passkey/utils.js.map +1 -1
  21. package/dist/esm/kernel-zerodev/paymaster/token-paymaster.d.ts +1 -1
  22. package/dist/esm/kernel-zerodev/paymaster/token-paymaster.js +3 -2
  23. package/dist/esm/kernel-zerodev/paymaster/token-paymaster.js.map +1 -1
  24. package/dist/esm/kernel-zerodev/provider.js +2 -0
  25. package/dist/esm/kernel-zerodev/provider.js.map +1 -1
  26. package/dist/esm/kernel-zerodev/validator/base.d.ts +0 -3
  27. package/dist/esm/kernel-zerodev/validator/base.js +0 -7
  28. package/dist/esm/kernel-zerodev/validator/base.js.map +1 -1
  29. package/dist/esm/kernel-zerodev/validator-provider/base.js +11 -5
  30. package/dist/esm/kernel-zerodev/validator-provider/base.js.map +1 -1
  31. package/dist/types/kernel-zerodev/ethers-provider/ethers-provider.d.ts.map +1 -1
  32. package/dist/types/kernel-zerodev/owner/passkey/utils.d.ts +1 -2
  33. package/dist/types/kernel-zerodev/owner/passkey/utils.d.ts.map +1 -1
  34. package/dist/types/kernel-zerodev/paymaster/token-paymaster.d.ts +1 -1
  35. package/dist/types/kernel-zerodev/paymaster/token-paymaster.d.ts.map +1 -1
  36. package/dist/types/kernel-zerodev/provider.d.ts.map +1 -1
  37. package/dist/types/kernel-zerodev/validator/base.d.ts +0 -3
  38. package/dist/types/kernel-zerodev/validator/base.d.ts.map +1 -1
  39. package/dist/types/kernel-zerodev/validator-provider/base.d.ts.map +1 -1
  40. package/package.json +1 -1
  41. package/src/kernel-zerodev/ethers-provider/ethers-provider.ts +16 -4
  42. package/src/kernel-zerodev/owner/passkey/utils.ts +31 -28
  43. package/src/kernel-zerodev/paymaster/token-paymaster.ts +5 -2
  44. package/src/kernel-zerodev/provider.ts +3 -0
  45. package/src/kernel-zerodev/validator/base.ts +0 -4
  46. package/src/kernel-zerodev/validator-provider/base.ts +14 -5
@@ -1,10 +1,9 @@
1
- import type { Hex, Signature } from "./types.js";
2
1
  import type { SignTypedDataParams } from "@alchemy/aa-core";
3
2
  export declare const publicKey = "public-key";
4
3
  export declare const es256 = -7;
5
4
  export declare const generateRandomBuffer: () => ArrayBuffer;
6
5
  export declare const base64UrlEncode: (challenge: ArrayBuffer) => string;
7
- export declare function signatureToHex({ r, s, v }: Signature): Hex;
6
+ export declare const signMessageImplementation: (msg: string, id: string, walletId: string, projectId: string, credentialId: string, apiUrl?: string) => Promise<`0x${string}`>;
8
7
  export declare const signMessage: (msg: string | Uint8Array, id: string, walletId: string, projectId: string, credentialId: string, apiUrl?: string) => Promise<`0x${string}`>;
9
8
  export declare const signTypedData: (params: SignTypedDataParams, id: string, walletId: string, projectId: string, credentialId: string, apiUrl?: string) => Promise<`0x${string}`>;
10
9
  export declare function base64URLStringToBuffer(base64URLString: string): ArrayBuffer;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/kernel-zerodev/owner/passkey/utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAO5D,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;AAWF,wBAAgB,cAAc,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,GAAG,GAAG,CAO1D;AAED,eAAO,MAAM,WAAW,QACjB,MAAM,GAAG,UAAU,MACpB,MAAM,YACA,MAAM,aACL,MAAM,gBACH,MAAM,4CA8CrB,CAAC;AAEF,eAAO,MAAM,aAAa,WAChB,mBAAmB,MACvB,MAAM,YACA,MAAM,aACL,MAAM,gBACH,MAAM,4CAYrB,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,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;AAGF,wBAAgB,uBAAuB,CAAC,eAAe,EAAE,MAAM,GAAG,WAAW,CAyB5E"}
@@ -7,7 +7,7 @@ import { type PaymasterAndBundlerProviders, type PaymasterConfig } from "./types
7
7
  export declare class TokenPaymaster extends Paymaster {
8
8
  protected paymasterConfig: PaymasterConfig<"TOKEN_PAYMASTER">;
9
9
  constructor(provider: ZeroDevProvider, paymasterConfig: PaymasterConfig<"TOKEN_PAYMASTER">);
10
- getPaymasterAddress(): Promise<Hex | undefined>;
10
+ getPaymasterAddress(paymasterProvider?: PaymasterAndBundlerProviders): 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
13
  getPaymasterResponse(struct: UserOperationStruct, paymasterProvider?: PaymasterAndBundlerProviders, shouldOverrideFee?: boolean): Promise<UserOperationStruct | undefined>;
@@ -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,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,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 +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,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
+ {"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,CA6BjE;CACH"}
@@ -1,6 +1,5 @@
1
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
- import type { PaymasterAndBundlerProviders } from "../paymaster/types.js";
4
3
  export declare enum ValidatorMode {
5
4
  sudo = "0x00000000",
6
5
  plugin = "0x00000001",
@@ -18,7 +17,6 @@ export interface KernelBaseValidatorParams {
18
17
  executor?: Address;
19
18
  selector?: Hex;
20
19
  rpcUrl?: string;
21
- bundlerProvider?: PaymasterAndBundlerProviders;
22
20
  }
23
21
  export type ValidatorPluginData = Required<Pick<KernelBaseValidatorParams, "executor" | "selector" | "validAfter" | "validUntil">>;
24
22
  export declare abstract class KernelBaseValidator {
@@ -33,7 +31,6 @@ export declare abstract class KernelBaseValidator {
33
31
  protected executor?: Address;
34
32
  protected selector?: Hex;
35
33
  protected rpcUrl?: string;
36
- protected bundlerProvider?: PaymasterAndBundlerProviders;
37
34
  publicClient?: PublicClient<Transport, Chain>;
38
35
  constructor(params: KernelBaseValidatorParams);
39
36
  abstract encodeEnable(enableData: Hex): 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 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/kernel-zerodev/validator-provider/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,KAAK,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAC7E,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EAC1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EACV,4BAA4B,EAC5B,eAAe,EACf,eAAe,EAChB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAEL,KAAK,wBAAwB,EAE9B,MAAM,eAAe,CAAC;AAGvB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,MAAM,2BAA2B,CAAC,CAAC,SAAS,yBAAyB,IAAI;IAC7E,eAAe,CAAC,EAAE,eAAe,CAAC,eAAe,CAAC,CAAC;IACnD,cAAc,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAChD,aAAa,CAAC,EAAE,IAAI,CAClB,wBAAwB,EACxB,MAAM,+BAA+B,CAAC,CAAC,CAAC,CACzC,CAAC;IACF,eAAe,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,MAAM,+BAA+B,CAAC,CAAC,CAAC,CAAC,CAAC;CACrE,CAAC;AAEF,MAAM,WAAW,uBAAuB,CAAC,CAAC,SAAS,yBAAyB;IAC1E,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,4BAA4B,CAAC;IAC/C,IAAI,CAAC,EAAE,2BAA2B,CAAC,CAAC,CAAC,CAAC;IACtC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,iBAAiB,CACjC,mBAAmB,EACnB,yBAAyB,CAC1B,CAAC;CACH;AAED,MAAM,MAAM,+BAA+B,CACzC,CAAC,SAAS,yBAAyB,IACjC,uBAAuB,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;AAIlD,8BAAsB,iBAAiB,CACrC,CAAC,SAAS,mBAAmB,EAC7B,CAAC,SAAS,yBAAyB,CACnC,SAAQ,eAAe;IACvB,SAAS,CAAC,eAAe,CAAC,EAAE,iBAAiB,CAC3C,mBAAmB,EACnB,yBAAyB,CAC1B,CAAC;gBAEA,MAAM,EAAE,+BAA+B,CAAC,CAAC,CAAC,EAC1C,SAAS,EAAE,mBAAmB;IAmChC,YAAY,QAAO,CAAC,CAOlB;IAEF,oBAAoB,eAAsB,GAAG,KAAG,QAAQ,GAAG,CAAC,CAO1D;IAEF,qBAAqB,gBAAuB,GAAG,KAAG,QAAQ,GAAG,CAAC,CAO5D;IAEF,uBAAuB,eACT,GAAG,KACd,QAAQ,uBAAuB,CAAC,CAYjC;IAEF,wBAAwB,gBACT,GAAG,KACf,QAAQ,uBAAuB,CAAC,CAYjC;CACH"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/kernel-zerodev/validator-provider/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,KAAK,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAC7E,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EAC1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EACV,4BAA4B,EAC5B,eAAe,EACf,eAAe,EAChB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAEL,KAAK,wBAAwB,EAE9B,MAAM,eAAe,CAAC;AAGvB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,MAAM,2BAA2B,CAAC,CAAC,SAAS,yBAAyB,IAAI;IAC7E,eAAe,CAAC,EAAE,eAAe,CAAC,eAAe,CAAC,CAAC;IACnD,cAAc,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAChD,aAAa,CAAC,EAAE,IAAI,CAClB,wBAAwB,EACxB,MAAM,+BAA+B,CAAC,CAAC,CAAC,CACzC,CAAC;IACF,eAAe,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,MAAM,+BAA+B,CAAC,CAAC,CAAC,CAAC,CAAC;CACrE,CAAC;AAEF,MAAM,WAAW,uBAAuB,CAAC,CAAC,SAAS,yBAAyB;IAC1E,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,4BAA4B,CAAC;IAC/C,IAAI,CAAC,EAAE,2BAA2B,CAAC,CAAC,CAAC,CAAC;IACtC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,iBAAiB,CACjC,mBAAmB,EACnB,yBAAyB,CAC1B,CAAC;CACH;AAED,MAAM,MAAM,+BAA+B,CACzC,CAAC,SAAS,yBAAyB,IACjC,uBAAuB,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;AAIlD,8BAAsB,iBAAiB,CACrC,CAAC,SAAS,mBAAmB,EAC7B,CAAC,SAAS,yBAAyB,CACnC,SAAQ,eAAe;IACvB,SAAS,CAAC,eAAe,CAAC,EAAE,iBAAiB,CAC3C,mBAAmB,EACnB,yBAAyB,CAC1B,CAAC;gBAEA,MAAM,EAAE,+BAA+B,CAAC,CAAC,CAAC,EAC1C,SAAS,EAAE,mBAAmB;IA4ChC,YAAY,QAAO,CAAC,CAOlB;IAEF,oBAAoB,eAAsB,GAAG,KAAG,QAAQ,GAAG,CAAC,CAO1D;IAEF,qBAAqB,gBAAuB,GAAG,KAAG,QAAQ,GAAG,CAAC,CAO5D;IAEF,uBAAuB,eACT,GAAG,KACd,QAAQ,uBAAuB,CAAC,CAYjC;IAEF,wBAAwB,gBACT,GAAG,KACf,QAAQ,uBAAuB,CAAC,CAYjC;CACH"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zerodev/sdk",
3
- "version": "4.0.14",
3
+ "version": "4.0.16",
4
4
  "description": "A collection of ERC-4337 compliant smart contract account interfaces",
5
5
  "author": "ZeroDev",
6
6
  "license": "MIT",
@@ -25,16 +25,28 @@ export class ZeroDevEthersProvider<
25
25
  readonly accountProvider: ValidatorProviderTypeMap[V];
26
26
  constructor(validatorType: V, params: ValidatorProviderParamsMap[V]) {
27
27
  super();
28
- let accountProvider = new ValidatorProviders[validatorType](params);
29
- if (params.usePaymaster === undefined || params.usePaymaster) {
28
+ let bundlerProvider = params.bundlerProvider;
29
+ const shouldUsePaymaster =
30
+ params.usePaymaster === undefined || params.usePaymaster;
31
+ if (
32
+ params.opts?.paymasterConfig &&
33
+ params.opts?.paymasterConfig.policy === "TOKEN_PAYMASTER" &&
34
+ shouldUsePaymaster
35
+ ) {
36
+ bundlerProvider = "STACKUP";
37
+ }
38
+ let accountProvider = new ValidatorProviders[validatorType]({
39
+ ...params,
40
+ bundlerProvider,
41
+ });
42
+ if (shouldUsePaymaster) {
30
43
  let paymasterConfig = params.opts?.paymasterConfig ?? {
31
44
  policy: "VERIFYING_PAYMASTER",
32
45
  };
33
46
  paymasterConfig = {
34
47
  ...paymasterConfig,
35
48
  paymasterProvider:
36
- params.opts?.paymasterConfig?.paymasterProvider ??
37
- params.bundlerProvider,
49
+ params.opts?.paymasterConfig?.paymasterProvider ?? bundlerProvider,
38
50
  };
39
51
  accountProvider = withZeroDevPaymasterAndData(
40
52
  accountProvider,
@@ -1,10 +1,8 @@
1
1
  import { browserInit, TurnkeyApi } from "@turnkey/http";
2
2
  import axios from "axios";
3
3
  import { API_URL } from "../../constants.js";
4
- import type { Hex, Signature } from "./types.js";
5
- import { ethers } from "ethers";
6
4
  import type { SignTypedDataParams } from "@alchemy/aa-core";
7
- import { hashTypedData } from "viem";
5
+ import { hashTypedData, signatureToHex, hashMessage } from "viem";
8
6
 
9
7
  browserInit({
10
8
  baseUrl: "https://api.turnkey.com",
@@ -29,32 +27,15 @@ export const base64UrlEncode = (challenge: ArrayBuffer): string => {
29
27
  .replace(/=/g, "");
30
28
  };
31
29
 
32
- // VIEM
33
- // export function signatureToHex({ r, s, v }: Signature): Hex {
34
- // return `0x${new secp256k1.Signature(
35
- // hexToBigInt(r),
36
- // hexToBigInt(s),
37
- // ).toCompactHex()}${toHex(v).slice(2)}`
38
- // }
39
-
40
- //ETHERS
41
- export function signatureToHex({ r, s, v }: Signature): Hex {
42
- return ethers.utils.joinSignature({
43
- r: `0x${r}`,
44
- s: `0x${s}`,
45
- //@ts-expect-error
46
- v: parseInt(v) + 27,
47
- }) as Hex;
48
- }
49
-
50
- export const signMessage = async (
51
- msg: string | Uint8Array,
30
+ export const signMessageImplementation = async (
31
+ msg: string,
52
32
  id: string,
53
33
  walletId: string,
54
34
  projectId: string,
55
35
  credentialId: string,
56
36
  apiUrl = API_URL
57
37
  ) => {
38
+ console.log("SIGN MESSAGE IMPLEMENTATION")
58
39
  const signedRequest = await TurnkeyApi.signSignRawPayload(
59
40
  {
60
41
  body: {
@@ -62,7 +43,7 @@ export const signMessage = async (
62
43
  organizationId: id,
63
44
  parameters: {
64
45
  privateKeyId: walletId,
65
- payload: ethers.utils.hashMessage(msg),
46
+ payload: msg,
66
47
  encoding: "PAYLOAD_ENCODING_HEXADECIMAL",
67
48
  hashFunction: "HASH_FUNCTION_NO_OP",
68
49
  },
@@ -91,15 +72,37 @@ export const signMessage = async (
91
72
  let result = activity?.result?.signRawPayloadResult;
92
73
 
93
74
  if (result) {
94
- const assembled = signatureToHex(result);
95
- if (assembled) {
96
- return assembled;
75
+ const signatureHex = signatureToHex({
76
+ r: `0x${result.r}`,
77
+ s: `0x${result.s}`,
78
+ v: result.v === "00" ? 27n : 28n,
79
+ });
80
+ if (signatureHex) {
81
+ return signatureHex;
97
82
  }
98
83
  }
99
84
  }
100
85
  return "0x";
101
86
  };
102
87
 
88
+ export const signMessage = async (
89
+ msg: string | Uint8Array,
90
+ id: string,
91
+ walletId: string,
92
+ projectId: string,
93
+ credentialId: string,
94
+ apiUrl = API_URL
95
+ ) => {
96
+ return await signMessageImplementation(
97
+ hashMessage(typeof msg === 'string' ? msg : {raw: msg}),
98
+ id,
99
+ walletId,
100
+ projectId,
101
+ credentialId,
102
+ apiUrl
103
+ );
104
+ };
105
+
103
106
  export const signTypedData = async (
104
107
  params: SignTypedDataParams,
105
108
  id: string,
@@ -109,7 +112,7 @@ export const signTypedData = async (
109
112
  apiUrl = API_URL
110
113
  ) => {
111
114
  const hashToSign = hashTypedData(params);
112
- return await signMessage(
115
+ return await signMessageImplementation(
113
116
  hashToSign,
114
117
  id,
115
118
  walletId,
@@ -38,7 +38,9 @@ export class TokenPaymaster extends Paymaster {
38
38
  ) {
39
39
  super(provider);
40
40
  }
41
- async getPaymasterAddress(): Promise<Hex | undefined> {
41
+ async getPaymasterAddress(
42
+ paymasterProvider?: PaymasterAndBundlerProviders
43
+ ): Promise<Hex | undefined> {
42
44
  const chainId = await getChainId(this.provider.getProjectId());
43
45
 
44
46
  try {
@@ -47,6 +49,7 @@ export class TokenPaymaster extends Paymaster {
47
49
  {
48
50
  chainId,
49
51
  entryPointAddress: ENTRYPOINT_ADDRESS,
52
+ paymasterProvider,
50
53
  },
51
54
  { headers: { "Content-Type": "application/json" } }
52
55
  );
@@ -176,7 +179,7 @@ export class TokenPaymaster extends Paymaster {
176
179
  this.paymasterConfig.gasToken,
177
180
  chainId
178
181
  );
179
- let paymasterAddress = await this.getPaymasterAddress();
182
+ let paymasterAddress = await this.getPaymasterAddress(paymasterProvider);
180
183
  if (gasTokenAddress !== undefined && paymasterAddress !== undefined) {
181
184
  const erc20UserOp = await this.getERC20UserOp(
182
185
  struct,
@@ -323,6 +323,9 @@ export class ZeroDevProvider extends SmartAccountProvider<HttpTransport> {
323
323
  case "eth_sendTransaction":
324
324
  const [tx] = params as [RpcTransactionRequest];
325
325
  return this.sendTransaction(tx);
326
+ case "eth_signTypedData_v4":
327
+ //@ts-expect-error
328
+ return this.signTypedData(JSON.parse(params[1]))
326
329
  case "personal_sign":
327
330
  if (!this.account) {
328
331
  throw new Error("account not connected!");
@@ -24,7 +24,6 @@ import {
24
24
  ECDSA_VALIDATOR_ADDRESS,
25
25
  ENTRYPOINT_ADDRESS,
26
26
  } from "../constants.js";
27
- import type { PaymasterAndBundlerProviders } from "../paymaster/types.js";
28
27
  import { polygonMumbai } from "viem/chains";
29
28
 
30
29
  export enum ValidatorMode {
@@ -45,7 +44,6 @@ export interface KernelBaseValidatorParams {
45
44
  executor?: Address;
46
45
  selector?: Hex;
47
46
  rpcUrl?: string;
48
- bundlerProvider?: PaymasterAndBundlerProviders;
49
47
  }
50
48
 
51
49
  export type ValidatorPluginData = Required<
@@ -69,7 +67,6 @@ export abstract class KernelBaseValidator {
69
67
  protected executor?: Address;
70
68
  protected selector?: Hex;
71
69
  protected rpcUrl?: string;
72
- protected bundlerProvider?: PaymasterAndBundlerProviders;
73
70
  publicClient?: PublicClient<Transport, Chain>;
74
71
 
75
72
  constructor(params: KernelBaseValidatorParams) {
@@ -84,7 +81,6 @@ export abstract class KernelBaseValidator {
84
81
  this.selector = params.selector;
85
82
  this.chain = params.chain;
86
83
  this.rpcUrl = params.rpcUrl ?? BUNDLER_URL;
87
- this.bundlerProvider = params.bundlerProvider;
88
84
  this.publicClient = createPublicClient({
89
85
  transport: http(CHAIN_ID_TO_NODE[this.chain?.id ?? polygonMumbai.id]),
90
86
  chain: this.chain ?? polygonMumbai,
@@ -57,12 +57,22 @@ export abstract class ValidatorProvider<
57
57
  params: ExtendedValidatorProviderParams<P>,
58
58
  validator: KernelBaseValidator
59
59
  ) {
60
+ let bundlerProvider = params.bundlerProvider;
61
+ const shouldUsePaymaster =
62
+ params.usePaymaster === undefined || params.usePaymaster;
63
+ if (
64
+ params.opts?.paymasterConfig &&
65
+ params.opts?.paymasterConfig.policy === "TOKEN_PAYMASTER" &&
66
+ shouldUsePaymaster
67
+ ) {
68
+ bundlerProvider = "STACKUP";
69
+ }
60
70
  super({
61
71
  ...params.opts?.providerConfig,
62
72
  chain: params.opts?.providerConfig?.chain ?? polygonMumbai,
63
73
  rpcUrl: params.opts?.providerConfig?.rpcUrl,
64
74
  projectId: params.projectId,
65
- bundlerProvider: params.bundlerProvider,
75
+ bundlerProvider,
66
76
  });
67
77
  this.connect(
68
78
  () =>
@@ -71,20 +81,19 @@ export abstract class ValidatorProvider<
71
81
  validator,
72
82
  defaultValidator: params.defaultProvider?.getValidator(),
73
83
  rpcClient: this.rpcClient,
74
- bundlerProvider: params.bundlerProvider,
84
+ bundlerProvider,
75
85
  index: params.defaultProvider?.getAccount().getIndex(),
76
86
  ...params.opts?.accountConfig,
77
87
  })
78
88
  );
79
- if (params.usePaymaster === undefined || params.usePaymaster) {
89
+ if (shouldUsePaymaster) {
80
90
  let paymasterConfig = params.opts?.paymasterConfig ?? {
81
91
  policy: "VERIFYING_PAYMASTER",
82
92
  };
83
93
  paymasterConfig = {
84
94
  ...paymasterConfig,
85
95
  paymasterProvider:
86
- params.opts?.paymasterConfig?.paymasterProvider ??
87
- params.bundlerProvider,
96
+ params.opts?.paymasterConfig?.paymasterProvider ?? bundlerProvider,
88
97
  };
89
98
  withZeroDevPaymasterAndData(this, paymasterConfig);
90
99
  }