@aa-sdk/core 4.12.0 → 4.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/dist/esm/account/smartContractAccount.d.ts +3 -1
  2. package/dist/esm/account/smartContractAccount.js +26 -24
  3. package/dist/esm/account/smartContractAccount.js.map +1 -1
  4. package/dist/esm/entrypoint/0.6.d.ts +1 -1
  5. package/dist/esm/entrypoint/0.7.d.ts +1 -1
  6. package/dist/esm/errors/client.d.ts +10 -0
  7. package/dist/esm/errors/client.js +17 -0
  8. package/dist/esm/errors/client.js.map +1 -1
  9. package/dist/esm/index.d.ts +3 -1
  10. package/dist/esm/index.js +3 -1
  11. package/dist/esm/index.js.map +1 -1
  12. package/dist/esm/middleware/defaults/7702gasEstimator.d.ts +36 -0
  13. package/dist/esm/middleware/defaults/7702gasEstimator.js +62 -0
  14. package/dist/esm/middleware/defaults/7702gasEstimator.js.map +1 -0
  15. package/dist/esm/middleware/defaults/7702signer.d.ts +37 -0
  16. package/dist/esm/middleware/defaults/7702signer.js +86 -0
  17. package/dist/esm/middleware/defaults/7702signer.js.map +1 -0
  18. package/dist/esm/signer/local-account.d.ts +21 -0
  19. package/dist/esm/signer/local-account.js +22 -0
  20. package/dist/esm/signer/local-account.js.map +1 -1
  21. package/dist/esm/signer/types.d.ts +2 -0
  22. package/dist/esm/signer/types.js.map +1 -1
  23. package/dist/esm/types.d.ts +12 -2
  24. package/dist/esm/types.js.map +1 -1
  25. package/dist/esm/utils/types.d.ts +1 -0
  26. package/dist/esm/utils/types.js.map +1 -1
  27. package/dist/esm/version.d.ts +1 -1
  28. package/dist/esm/version.js +1 -1
  29. package/dist/esm/version.js.map +1 -1
  30. package/dist/types/account/smartContractAccount.d.ts +3 -1
  31. package/dist/types/account/smartContractAccount.d.ts.map +1 -1
  32. package/dist/types/entrypoint/0.6.d.ts +1 -1
  33. package/dist/types/entrypoint/0.7.d.ts +1 -1
  34. package/dist/types/errors/client.d.ts +10 -0
  35. package/dist/types/errors/client.d.ts.map +1 -1
  36. package/dist/types/index.d.ts +3 -1
  37. package/dist/types/index.d.ts.map +1 -1
  38. package/dist/types/middleware/defaults/7702gasEstimator.d.ts +37 -0
  39. package/dist/types/middleware/defaults/7702gasEstimator.d.ts.map +1 -0
  40. package/dist/types/middleware/defaults/7702signer.d.ts +38 -0
  41. package/dist/types/middleware/defaults/7702signer.d.ts.map +1 -0
  42. package/dist/types/signer/local-account.d.ts +21 -0
  43. package/dist/types/signer/local-account.d.ts.map +1 -1
  44. package/dist/types/signer/types.d.ts +2 -0
  45. package/dist/types/signer/types.d.ts.map +1 -1
  46. package/dist/types/types.d.ts +12 -2
  47. package/dist/types/types.d.ts.map +1 -1
  48. package/dist/types/utils/types.d.ts +1 -0
  49. package/dist/types/utils/types.d.ts.map +1 -1
  50. package/dist/types/version.d.ts +1 -1
  51. package/package.json +3 -3
  52. package/src/account/smartContractAccount.ts +39 -30
  53. package/src/errors/client.ts +14 -0
  54. package/src/index.ts +3 -0
  55. package/src/middleware/defaults/7702gasEstimator.ts +77 -0
  56. package/src/middleware/defaults/7702signer.ts +105 -0
  57. package/src/signer/local-account.ts +28 -0
  58. package/src/signer/types.ts +5 -0
  59. package/src/types.ts +17 -4
  60. package/src/utils/types.ts +4 -0
  61. package/src/version.ts +1 -1
@@ -1,5 +1,6 @@
1
1
  import { type HDAccount, type HDOptions, type Hex, type LocalAccount, type PrivateKeyAccount, type SignableMessage, type TypedDataDefinition } from "viem";
2
2
  import type { SmartAccountSigner } from "./types.js";
3
+ import type { Authorization } from "viem/experimental";
3
4
  /**
4
5
  * Represents a local account signer and provides methods to sign messages and transactions, as well as static methods to create the signer from mnemonic or private key.
5
6
  */
@@ -264,6 +265,26 @@ export declare class LocalAccountSigner<T extends HDAccount | PrivateKeyAccount
264
265
  uint240?: undefined;
265
266
  uint248?: undefined;
266
267
  }, TPrimaryType extends "EIP712Domain" | keyof TTypedData = keyof TTypedData>(params: TypedDataDefinition<TTypedData, TPrimaryType>) => Promise<Hex>;
268
+ /**
269
+ * Signs an unsigned authorization using the provided private key account.
270
+ *
271
+ * @example
272
+ * ```ts twoslash
273
+ * import { LocalAccountSigner } from "@aa-sdk/core";
274
+ * import { generatePrivateKey } from "viem/accounts";
275
+ *
276
+ * const signer = LocalAccountSigner.privateKeyToAccountSigner(generatePrivateKey());
277
+ * const signedAuthorization = await signer.signAuthorization({
278
+ * contractAddress: "0x1234123412341234123412341234123412341234",
279
+ * chainId: 1,
280
+ * nonce: 3,
281
+ * });
282
+ * ```
283
+ *
284
+ * @param {Authorization<number, false>} unsignedAuthorization - The unsigned authorization to be signed.
285
+ * @returns {Promise<Authorization<number, true>>} A promise that resolves to the signed authorization.
286
+ */
287
+ signAuthorization(this: LocalAccountSigner<PrivateKeyAccount>, unsignedAuthorization: Authorization<number, false>): Promise<Authorization<number, true>>;
267
288
  /**
268
289
  * Returns the address of the inner object in a specific hexadecimal format.
269
290
  *
@@ -1 +1 @@
1
- {"version":3,"file":"local-account.d.ts","sourceRoot":"","sources":["../../../src/signer/local-account.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,GAAG,EACR,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EAEpB,KAAK,mBAAmB,EACzB,MAAM,MAAM,CAAC;AAMd,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD;;GAEG;AACH,qBAAa,kBAAkB,CAC7B,CAAC,SAAS,SAAS,GAAG,iBAAiB,GAAG,YAAY,CACtD,YAAW,kBAAkB,CAAC,CAAC,CAAC;IAEhC,KAAK,EAAE,CAAC,CAAC;IACT,UAAU,EAAE,MAAM,CAAC;IAEnB;;;;;;;;;;;;;;OAcG;gBACS,KAAK,EAAE,CAAC;IAKpB;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC,CAIxE;IAEF;;;;;;;;;;;;;;;;;;;OAmBG;IACH,QAAQ,CAAC,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4IAKnB,QAAQ,GAAG,CAAC,CAEb;IAEF;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,UAAU,QAAa,QAAQ,KAAK,MAAM,EAAE,CAAC,CAEpD;IAEF;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,uBAAuB,CAC5B,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,SAAS,GACf,kBAAkB,CAAC,SAAS,CAAC;IAKhC;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,yBAAyB,CAC9B,GAAG,EAAE,GAAG,GACP,kBAAkB,CAAC,iBAAiB,CAAC;IAKxC;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,wBAAwB,IAAI,kBAAkB,CAAC,iBAAiB,CAAC;CAIzE"}
1
+ {"version":3,"file":"local-account.d.ts","sourceRoot":"","sources":["../../../src/signer/local-account.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,GAAG,EACR,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EAEpB,KAAK,mBAAmB,EACzB,MAAM,MAAM,CAAC;AAMd,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD;;GAEG;AACH,qBAAa,kBAAkB,CAC7B,CAAC,SAAS,SAAS,GAAG,iBAAiB,GAAG,YAAY,CACtD,YAAW,kBAAkB,CAAC,CAAC,CAAC;IAEhC,KAAK,EAAE,CAAC,CAAC;IACT,UAAU,EAAE,MAAM,CAAC;IAEnB;;;;;;;;;;;;;;OAcG;gBACS,KAAK,EAAE,CAAC;IAKpB;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC,CAIxE;IAEF;;;;;;;;;;;;;;;;;;;OAmBG;IACH,QAAQ,CAAC,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4IAKnB,QAAQ,GAAG,CAAC,CAEb;IAEF;;;;;;;;;;;;;;;;;;OAkBG;IAEH,iBAAiB,CACf,IAAI,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,EAC3C,qBAAqB,EAAE,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,GAClD,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAIvC;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,UAAU,QAAa,QAAQ,KAAK,MAAM,EAAE,CAAC,CAEpD;IAEF;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,uBAAuB,CAC5B,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,SAAS,GACf,kBAAkB,CAAC,SAAS,CAAC;IAKhC;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,yBAAyB,CAC9B,GAAG,EAAE,GAAG,GACP,kBAAkB,CAAC,iBAAiB,CAAC;IAKxC;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,wBAAwB,IAAI,kBAAkB,CAAC,iBAAiB,CAAC;CAIzE"}
@@ -1,5 +1,6 @@
1
1
  import type { Address } from "abitype";
2
2
  import type { Hex, SignableMessage, TypedData, TypedDataDefinition } from "viem";
3
+ import type { Authorization } from "viem/experimental";
3
4
  /**
4
5
  * Extends the @interface SmartAccountSigner interface with authentication.
5
6
  *
@@ -22,5 +23,6 @@ export interface SmartAccountSigner<Inner = any> {
22
23
  getAddress: () => Promise<Address>;
23
24
  signMessage: (message: SignableMessage) => Promise<Hex>;
24
25
  signTypedData: <const TTypedData extends TypedData | Record<string, unknown>, TPrimaryType extends keyof TTypedData | "EIP712Domain" = keyof TTypedData>(params: TypedDataDefinition<TTypedData, TPrimaryType>) => Promise<Hex>;
26
+ signAuthorization?: (unsignedAuthorization: Authorization<number, false>) => Promise<Authorization<number, true>>;
25
27
  }
26
28
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/signer/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,KAAK,EACV,GAAG,EACH,eAAe,EACf,SAAS,EACT,mBAAmB,EACpB,MAAM,MAAM,CAAC;AAGd;;;;;;GAMG;AACH,MAAM,WAAW,yBAAyB,CAAC,UAAU,EAAE,WAAW,EAAE,KAAK,GAAG,GAAG,CAC7E,SAAQ,kBAAkB,CAAC,KAAK,CAAC;IACjC,YAAY,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IAE3D,cAAc,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC;CAC5C;AAID;;;;GAIG;AACH,MAAM,WAAW,kBAAkB,CAAC,KAAK,GAAG,GAAG;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC;IAEb,UAAU,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAEnC,WAAW,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAExD,aAAa,EAAE,CACb,KAAK,CAAC,UAAU,SAAS,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5D,YAAY,SAAS,MAAM,UAAU,GAAG,cAAc,GAAG,MAAM,UAAU,EAEzE,MAAM,EAAE,mBAAmB,CAAC,UAAU,EAAE,YAAY,CAAC,KAClD,OAAO,CAAC,GAAG,CAAC,CAAC;CACnB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/signer/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,KAAK,EACV,GAAG,EACH,eAAe,EACf,SAAS,EACT,mBAAmB,EACpB,MAAM,MAAM,CAAC;AACd,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGvD;;;;;;GAMG;AACH,MAAM,WAAW,yBAAyB,CAAC,UAAU,EAAE,WAAW,EAAE,KAAK,GAAG,GAAG,CAC7E,SAAQ,kBAAkB,CAAC,KAAK,CAAC;IACjC,YAAY,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IAE3D,cAAc,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC;CAC5C;AAID;;;;GAIG;AACH,MAAM,WAAW,kBAAkB,CAAC,KAAK,GAAG,GAAG;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC;IAEb,UAAU,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAEnC,WAAW,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAExD,aAAa,EAAE,CACb,KAAK,CAAC,UAAU,SAAS,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5D,YAAY,SAAS,MAAM,UAAU,GAAG,cAAc,GAAG,MAAM,UAAU,EAEzE,MAAM,EAAE,mBAAmB,CAAC,UAAU,EAAE,YAAY,CAAC,KAClD,OAAO,CAAC,GAAG,CAAC,CAAC;IAElB,iBAAiB,CAAC,EAAE,CAClB,qBAAqB,EAAE,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,KAChD,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;CAC3C"}
@@ -85,7 +85,17 @@ export interface UserOperationRequest_v7 {
85
85
  paymasterData?: Hex;
86
86
  signature: Hex;
87
87
  }
88
- export type UserOperationRequest<TEntryPointVersion extends EntryPointVersion = EntryPointVersion> = TEntryPointVersion extends "0.6.0" ? UserOperationRequest_v6 : TEntryPointVersion extends "0.7.0" ? UserOperationRequest_v7 : never;
88
+ export type Eip7702ExtendedFields = {
89
+ eip7702Auth?: {
90
+ chainId: Hex;
91
+ nonce: Hex;
92
+ address: Address;
93
+ r: Hex;
94
+ s: Hex;
95
+ yParity: Hex;
96
+ };
97
+ };
98
+ export type UserOperationRequest<TEntryPointVersion extends EntryPointVersion = EntryPointVersion> = (TEntryPointVersion extends "0.6.0" ? UserOperationRequest_v6 : TEntryPointVersion extends "0.7.0" ? UserOperationRequest_v7 : never) & Eip7702ExtendedFields;
89
99
  export interface UserOperationEstimateGasResponse<TEntryPointVersion extends EntryPointVersion = EntryPointVersion> {
90
100
  preVerificationGas: BigNumberish;
91
101
  verificationGasLimit: BigNumberish;
@@ -142,5 +152,5 @@ export interface UserOperationStruct_v7 {
142
152
  paymasterData?: BytesLike;
143
153
  signature: BytesLike;
144
154
  }
145
- export type UserOperationStruct<TEntryPointVersion extends EntryPointVersion = EntryPointVersion> = TEntryPointVersion extends "0.6.0" ? UserOperationStruct_v6 : TEntryPointVersion extends "0.7.0" ? UserOperationStruct_v7 : never;
155
+ export type UserOperationStruct<TEntryPointVersion extends EntryPointVersion = EntryPointVersion> = (TEntryPointVersion extends "0.6.0" ? UserOperationStruct_v6 : TEntryPointVersion extends "0.7.0" ? UserOperationStruct_v7 : never) & Eip7702ExtendedFields;
146
156
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
@@ -36,4 +36,5 @@ export type OneOf<T1, T2> = IsOneOf<T1, T2> extends true ? T1 : never;
36
36
  export type RecordableKeys<T> = {
37
37
  [K in keyof T]: T[K] extends string | number | symbol ? K : never;
38
38
  }[keyof T];
39
+ export type OptionalFields<T, K extends keyof T> = Pick<Partial<T>, K> & Omit<T, K>;
39
40
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/utils/types.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AAE7D;;;;;;GAMG;AAEH,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;AAEpE,MAAM,MAAM,UAAU,CAAC,KAAK,EAAE,KAAK,SAAS,MAAM,KAAK,IAAI,QAAQ,CACjE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CACnB,GACC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAErB;;;;;;;GAOG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;KACvB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACrB,GAAG,EAAE,CAAC;AAEP,MAAM,MAAM,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACtE,MAAM,MAAM,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAIrE,MAAM,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAClC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GACb,IAAI,GACJ,KAAK,GACP,KAAK,CAAC;AASV,MAAM,MAAM,wBAAwB,CAAC,CAAC,EAAE,KAAK,IAAI,KAAK,SAAS,MAAM,SAAS,GAC1E,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,GAChB,KAAK,CAAC;AAGV,MAAM,MAAM,6BAA6B,CACvC,CAAC,EACD,KAAK,EACL,oCAAoC,SAAS,OAAO,IAClD,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GACnB,IAAI,SAAS,oCAAoC,GAC/C,IAAI,GACJ,KAAK,GACP,KAAK,CAAC;AAcV,MAAM,MAAM,OAAO,CAAC,CAAC,EAAE,KAAK,IAAI,6BAA6B,CAC3D,CAAC,EACD,KAAK,EACL,wBAAwB,CAAC,CAAC,EAAE,KAAK,CAAC,CACnC,CAAC;AAEF,MAAM,MAAM,KAAK,CAAC,EAAE,EAAE,EAAE,IAAI,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,IAAI,GAAG,EAAE,GAAG,KAAK,CAAC;AAEtE,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI;KAC7B,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,KAAK;CAClE,CAAC,MAAM,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/utils/types.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AAE7D;;;;;;GAMG;AAEH,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;AAEpE,MAAM,MAAM,UAAU,CAAC,KAAK,EAAE,KAAK,SAAS,MAAM,KAAK,IAAI,QAAQ,CACjE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CACnB,GACC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAErB;;;;;;;GAOG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;KACvB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACrB,GAAG,EAAE,CAAC;AAEP,MAAM,MAAM,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACtE,MAAM,MAAM,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAIrE,MAAM,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAClC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GACb,IAAI,GACJ,KAAK,GACP,KAAK,CAAC;AASV,MAAM,MAAM,wBAAwB,CAAC,CAAC,EAAE,KAAK,IAAI,KAAK,SAAS,MAAM,SAAS,GAC1E,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,GAChB,KAAK,CAAC;AAGV,MAAM,MAAM,6BAA6B,CACvC,CAAC,EACD,KAAK,EACL,oCAAoC,SAAS,OAAO,IAClD,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GACnB,IAAI,SAAS,oCAAoC,GAC/C,IAAI,GACJ,KAAK,GACP,KAAK,CAAC;AAcV,MAAM,MAAM,OAAO,CAAC,CAAC,EAAE,KAAK,IAAI,6BAA6B,CAC3D,CAAC,EACD,KAAK,EACL,wBAAwB,CAAC,CAAC,EAAE,KAAK,CAAC,CACnC,CAAC;AAEF,MAAM,MAAM,KAAK,CAAC,EAAE,EAAE,EAAE,IAAI,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,IAAI,GAAG,EAAE,GAAG,KAAK,CAAC;AAEtE,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI;KAC7B,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,KAAK;CAClE,CAAC,MAAM,CAAC,CAAC,CAAC;AAGX,MAAM,MAAM,cAAc,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GACpE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC"}
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "4.12.0";
1
+ export declare const VERSION = "4.13.0";
2
2
  //# sourceMappingURL=version.d.ts.map
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@aa-sdk/core",
3
3
  "license": "MIT",
4
- "version": "4.12.0",
4
+ "version": "4.13.0",
5
5
  "description": "viem based SDK that enables interactions with ERC-4337 Smart Accounts. ABIs are based off the definitions generated in @account-abstraction/contracts",
6
6
  "author": "Alchemy",
7
7
  "type": "module",
@@ -55,7 +55,7 @@
55
55
  "zod": "^3.22.4"
56
56
  },
57
57
  "peerDependencies": {
58
- "viem": "^2.20.0"
58
+ "viem": "^2.22.6"
59
59
  },
60
60
  "repository": {
61
61
  "type": "git",
@@ -65,5 +65,5 @@
65
65
  "url": "https://github.com/alchemyplatform/aa-sdk/issues"
66
66
  },
67
67
  "homepage": "https://github.com/alchemyplatform/aa-sdk#readme",
68
- "gitHead": "a7cbb952e519b0f9ee9feb06a019b25ccdeb78d5"
68
+ "gitHead": "6865bd7b49bc7db064bca7026914e4299febdb34"
69
69
  }
@@ -151,9 +151,11 @@ export type ToSmartContractAccountParams<
151
151
  getDummySignature: () => Hex | Promise<Hex>;
152
152
  encodeExecute: (tx: AccountOp) => Promise<Hex>;
153
153
  encodeBatchExecute?: (txs: AccountOp[]) => Promise<Hex>;
154
+ getNonce?: (nonceKey?: bigint) => Promise<bigint>;
154
155
  // if not provided, will default to just using signMessage over the Hex
155
156
  signUserOperationHash?: (uoHash: Hex) => Promise<Hex>;
156
157
  encodeUpgradeToAndCall?: (params: UpgradeToAndCallParams) => Promise<Hex>;
158
+ getImplementationAddress?: () => Promise<NullAddress | Address>;
157
159
  } & Omit<CustomSource, "signTransaction" | "address">;
158
160
  // [!endregion ToSmartContractAccountParams]
159
161
 
@@ -260,6 +262,7 @@ export async function toSmartContractAccount<
260
262
  source,
261
263
  accountAddress,
262
264
  getAccountInitCode,
265
+ getNonce,
263
266
  signMessage,
264
267
  signTypedData,
265
268
  encodeBatchExecute,
@@ -339,11 +342,13 @@ export async function toSmartContractAccount(
339
342
  getAccountInitCode,
340
343
  signMessage,
341
344
  signTypedData,
342
- encodeBatchExecute,
343
345
  encodeExecute,
346
+ encodeBatchExecute,
347
+ getNonce,
344
348
  getDummySignature,
345
349
  signUserOperationHash,
346
350
  encodeUpgradeToAndCall,
351
+ getImplementationAddress,
347
352
  } = params;
348
353
 
349
354
  const client = createBundlerClient({
@@ -410,16 +415,18 @@ export async function toSmartContractAccount(
410
415
  return initCode === "0x";
411
416
  };
412
417
 
413
- const getNonce = async (nonceKey = 0n): Promise<bigint> => {
414
- if (!(await isAccountDeployed())) {
415
- return 0n;
416
- }
417
-
418
- return entryPointContract.read.getNonce([
419
- accountAddress_,
420
- nonceKey,
421
- ]) as Promise<bigint>;
422
- };
418
+ const getNonce_ =
419
+ getNonce ??
420
+ (async (nonceKey = 0n): Promise<bigint> => {
421
+ if (!(await isAccountDeployed())) {
422
+ return 0n;
423
+ }
424
+
425
+ return entryPointContract.read.getNonce([
426
+ accountAddress_,
427
+ nonceKey,
428
+ ]) as Promise<bigint>;
429
+ });
423
430
 
424
431
  const account = toAccount({
425
432
  address: accountAddress_,
@@ -468,25 +475,27 @@ export async function toSmartContractAccount(
468
475
  return create6492Signature(isDeployed, signature);
469
476
  };
470
477
 
471
- const getImplementationAddress = async (): Promise<NullAddress | Address> => {
472
- const storage = await client.getStorageAt({
473
- address: account.address,
474
- // This is the default slot for the implementation address for Proxies
475
- slot: "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc",
478
+ const getImplementationAddress_ =
479
+ getImplementationAddress ??
480
+ (async () => {
481
+ const storage = await client.getStorageAt({
482
+ address: account.address,
483
+ // This is the default slot for the implementation address for Proxies
484
+ slot: "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc",
485
+ });
486
+
487
+ if (storage == null) {
488
+ throw new FailedToGetStorageSlotError(
489
+ "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc",
490
+ "Proxy Implementation Address"
491
+ );
492
+ }
493
+
494
+ // The storage slot contains a full bytes32, but we want only the last 20 bytes.
495
+ // So, slice off the leading `0x` and the first 12 bytes (24 characters), leaving the last 20 bytes, then prefix with `0x`.
496
+ return `0x${storage.slice(26)}`;
476
497
  });
477
498
 
478
- if (storage == null) {
479
- throw new FailedToGetStorageSlotError(
480
- "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc",
481
- "Proxy Implementation Address"
482
- );
483
- }
484
-
485
- // The storage slot contains a full bytes32, but we want only the last 20 bytes.
486
- // So, slice off the leading `0x` and the first 12 bytes (24 characters), leaving the last 20 bytes, then prefix with `0x`.
487
- return `0x${storage.slice(26)}`;
488
- };
489
-
490
499
  if (entryPoint.version !== "0.6.0" && entryPoint.version !== "0.7.0") {
491
500
  throw new InvalidEntryPointError(chain, entryPoint.version);
492
501
  }
@@ -510,9 +519,9 @@ export async function toSmartContractAccount(
510
519
  encodeUpgradeToAndCall: encodeUpgradeToAndCall_,
511
520
  getEntryPoint: () => entryPoint,
512
521
  isAccountDeployed,
513
- getAccountNonce: getNonce,
522
+ getAccountNonce: getNonce_,
514
523
  signMessageWith6492,
515
524
  signTypedDataWith6492,
516
- getImplementationAddress,
525
+ getImplementationAddress: getImplementationAddress_,
517
526
  };
518
527
  }
@@ -103,3 +103,17 @@ export class EntityIdOverrideError extends BaseError {
103
103
  super(`EntityId of 0 is reserved for the owner and cannot be used`);
104
104
  }
105
105
  }
106
+
107
+ /**
108
+ * Error class denoting that the provided ma v2 account mode is invalid.
109
+ */
110
+ export class InvalidModularAccountV2Mode extends BaseError {
111
+ override name = "InvalidModularAccountV2Mode";
112
+
113
+ /**
114
+ * Initializes a new instance of the error message with a default message indicating that the provided ma v2 account mode is invalid.
115
+ */
116
+ constructor() {
117
+ super(`The provided account mode is invalid for ModularAccount V2`);
118
+ }
119
+ }
package/src/index.ts CHANGED
@@ -76,6 +76,7 @@ export {
76
76
  InvalidEntityIdError,
77
77
  InvalidNonceKeyError,
78
78
  EntityIdOverrideError,
79
+ InvalidModularAccountV2Mode,
79
80
  } from "./errors/client.js";
80
81
  export {
81
82
  EntryPointNotFoundError,
@@ -92,6 +93,8 @@ export {
92
93
  } from "./errors/useroperation.js";
93
94
  export { LogLevel, Logger } from "./logger.js";
94
95
  export { middlewareActions } from "./middleware/actions.js";
96
+ export { default7702UserOpSigner } from "./middleware/defaults/7702signer.js";
97
+ export { default7702GasEstimator } from "./middleware/defaults/7702gasEstimator.js";
95
98
  export { defaultFeeEstimator } from "./middleware/defaults/feeEstimator.js";
96
99
  export { defaultGasEstimator } from "./middleware/defaults/gasEstimator.js";
97
100
  export { defaultPaymasterAndData } from "./middleware/defaults/paymasterAndData.js";
@@ -0,0 +1,77 @@
1
+ import { zeroHash } from "viem";
2
+ import { AccountNotFoundError } from "../../errors/account.js";
3
+ import type { UserOperationStruct } from "../../types.js";
4
+ import type { ClientMiddlewareFn } from "../types";
5
+ import { defaultGasEstimator } from "./gasEstimator.js";
6
+
7
+ /**
8
+ * A middleware function to estimate the gas usage of a user operation when using an EIP-7702 delegated account. Has an optional custom gas estimator.
9
+ * This function is only compatible with accounts using EntryPoint v0.7.0, and the account must have an implementation address defined in `getImplementationAddress()`.
10
+ *
11
+ * @example
12
+ * ```ts twoslash
13
+ * import {
14
+ * default7702GasEstimator,
15
+ * default7702UserOpSigner,
16
+ * createSmartAccountClient,
17
+ * type SmartAccountClient,
18
+ * } from "@aa-sdk/core";
19
+ * import {
20
+ * createModularAccountV2,
21
+ * type CreateModularAccountV2ClientParams,
22
+ * } from "@account-kit/smart-contracts";
23
+ *
24
+ * async function createSMA7702AccountClient(
25
+ * config: CreateModularAccountV2ClientParams
26
+ * ): Promise<SmartAccountClient> {
27
+ * const sma7702Account = await createModularAccountV2({ ...config, mode: "7702" });
28
+ *
29
+ * return createSmartAccountClient({
30
+ * account: sma7702Account,
31
+ * gasEstimator: default7702GasEstimator(config.gasEstimator),
32
+ * signUserOperation: default7702UserOpSigner(config.signUserOperation),
33
+ * ...config,
34
+ * });
35
+ * }
36
+ * ```
37
+ *
38
+ * @param {ClientMiddlewareFn} [gasEstimator] Optional custom gas estimator function
39
+ * @returns {Function} A function that takes user operation struct and parameters, estimates gas usage, and returns the user operation with gas limits.
40
+ */
41
+ export const default7702GasEstimator: (
42
+ gasEstimator?: ClientMiddlewareFn
43
+ ) => ClientMiddlewareFn =
44
+ (gasEstimator?: ClientMiddlewareFn) => async (struct, params) => {
45
+ const gasEstimator_ = gasEstimator ?? defaultGasEstimator(params.client);
46
+
47
+ const account = params.account ?? params.client.account;
48
+ if (!account) {
49
+ throw new AccountNotFoundError();
50
+ }
51
+
52
+ const entryPoint = account.getEntryPoint();
53
+ if (entryPoint.version !== "0.7.0") {
54
+ throw new Error(
55
+ "This middleware is only compatible with EntryPoint v0.7.0"
56
+ );
57
+ }
58
+
59
+ const implementationAddress = await account.getImplementationAddress();
60
+
61
+ // Note: does not omit the delegation from estimation if the account is already 7702 delegated.
62
+
63
+ (struct as UserOperationStruct<"0.7.0">).eip7702Auth = {
64
+ chainId: "0x0",
65
+ nonce: "0x0",
66
+ address: implementationAddress,
67
+ r: zeroHash, // aka `bytes32(0)`
68
+ s: zeroHash,
69
+ yParity: "0x0",
70
+ };
71
+
72
+ const estimatedUO = await gasEstimator_(struct, params);
73
+
74
+ estimatedUO.eip7702Auth = undefined; // Strip out the auth after estimation.
75
+
76
+ return estimatedUO;
77
+ };
@@ -0,0 +1,105 @@
1
+ import { toHex } from "viem";
2
+ import { isSmartAccountWithSigner } from "../../account/smartContractAccount.js";
3
+ import { AccountNotFoundError } from "../../errors/account.js";
4
+ import { ChainNotFoundError } from "../../errors/client.js";
5
+ import type { ClientMiddlewareFn } from "../types";
6
+ import { defaultUserOpSigner } from "./userOpSigner.js";
7
+
8
+ /**
9
+ * Provides a default middleware function for signing user operations with a client account when using EIP-7702 delegated accounts.
10
+ * If the signer doesn't support `signAuthorization`, then this just runs the provided `signUserOperation` middleware.
11
+ * This function is only compatible with accounts using EntryPoint v0.7.0, and the account must have an implementation address defined in `getImplementationAddress()`.
12
+ *
13
+ * @example
14
+ * ```ts twoslash
15
+ * import {
16
+ * default7702GasEstimator,
17
+ * default7702UserOpSigner,
18
+ * createSmartAccountClient,
19
+ * type SmartAccountClient,
20
+ * } from "@aa-sdk/core";
21
+ * import {
22
+ * createModularAccountV2,
23
+ * type CreateModularAccountV2ClientParams,
24
+ * } from "@account-kit/smart-contracts";
25
+ *
26
+ * async function createSMA7702AccountClient(
27
+ * config: CreateModularAccountV2ClientParams
28
+ * ): Promise<SmartAccountClient> {
29
+ * const sma7702Account = await createModularAccountV2({ ...config, mode: "7702" });
30
+ *
31
+ * return createSmartAccountClient({
32
+ * account: sma7702Account,
33
+ * gasEstimator: default7702GasEstimator(config.gasEstimator),
34
+ * signUserOperation: default7702UserOpSigner(config.signUserOperation),
35
+ * ...config,
36
+ * });
37
+ * }
38
+ * ```
39
+ *
40
+ * @param {ClientMiddlewareFn} [userOpSigner] Optional user operation signer function
41
+ * @returns {Function} A middleware function that signs EIP-7702 authorization tuples if necessary, and also uses the provided or default user operation signer to generate the user op signature.
42
+ */
43
+ export const default7702UserOpSigner: (
44
+ userOpSigner?: ClientMiddlewareFn
45
+ ) => ClientMiddlewareFn =
46
+ (userOpSigner?: ClientMiddlewareFn) => async (struct, params) => {
47
+ const userOpSigner_ = userOpSigner ?? defaultUserOpSigner;
48
+
49
+ const uo = await userOpSigner_(struct, params);
50
+
51
+ const account = params.account ?? params.client.account;
52
+ const { client } = params;
53
+
54
+ if (!account || !isSmartAccountWithSigner(account)) {
55
+ throw new AccountNotFoundError();
56
+ }
57
+
58
+ const signer = account.getSigner();
59
+
60
+ if (!signer.signAuthorization) {
61
+ return uo;
62
+ }
63
+
64
+ if (!client.chain) {
65
+ throw new ChainNotFoundError();
66
+ }
67
+
68
+ const code = (await client.getCode({ address: account.address })) ?? "0x";
69
+
70
+ const implAddress = await account.getImplementationAddress();
71
+
72
+ const expectedCode = "0xef0100" + implAddress.slice(2);
73
+
74
+ if (code.toLowerCase() === expectedCode.toLowerCase()) {
75
+ // If the delegation already matches the expected, then we don't need to sign and include an authorization tuple.
76
+ return uo;
77
+ }
78
+
79
+ const accountNonce = await params.client.getTransactionCount({
80
+ address: account.address,
81
+ });
82
+
83
+ const authSignature = await signer.signAuthorization({
84
+ chainId: client.chain.id,
85
+ contractAddress: implAddress,
86
+ nonce: accountNonce,
87
+ });
88
+
89
+ const { r, s } = authSignature;
90
+
91
+ const yParity = authSignature.yParity ?? authSignature.v - 27n;
92
+
93
+ return {
94
+ ...uo,
95
+ eip7702Auth: {
96
+ // deepHexlify doesn't encode number(0) correctly, it returns "0x"
97
+ chainId: toHex(client.chain.id),
98
+ nonce: toHex(accountNonce),
99
+ address: implAddress,
100
+ r,
101
+ s,
102
+ yParity: toHex(yParity),
103
+ },
104
+ };
105
+ };
@@ -14,6 +14,7 @@ import {
14
14
  privateKeyToAccount,
15
15
  } from "viem/accounts";
16
16
  import type { SmartAccountSigner } from "./types.js";
17
+ import type { Authorization } from "viem/experimental";
17
18
 
18
19
  /**
19
20
  * Represents a local account signer and provides methods to sign messages and transactions, as well as static methods to create the signer from mnemonic or private key.
@@ -95,6 +96,33 @@ export class LocalAccountSigner<
95
96
  return this.inner.signTypedData(params);
96
97
  };
97
98
 
99
+ /**
100
+ * Signs an unsigned authorization using the provided private key account.
101
+ *
102
+ * @example
103
+ * ```ts twoslash
104
+ * import { LocalAccountSigner } from "@aa-sdk/core";
105
+ * import { generatePrivateKey } from "viem/accounts";
106
+ *
107
+ * const signer = LocalAccountSigner.privateKeyToAccountSigner(generatePrivateKey());
108
+ * const signedAuthorization = await signer.signAuthorization({
109
+ * contractAddress: "0x1234123412341234123412341234123412341234",
110
+ * chainId: 1,
111
+ * nonce: 3,
112
+ * });
113
+ * ```
114
+ *
115
+ * @param {Authorization<number, false>} unsignedAuthorization - The unsigned authorization to be signed.
116
+ * @returns {Promise<Authorization<number, true>>} A promise that resolves to the signed authorization.
117
+ */
118
+
119
+ signAuthorization(
120
+ this: LocalAccountSigner<PrivateKeyAccount>,
121
+ unsignedAuthorization: Authorization<number, false>
122
+ ): Promise<Authorization<number, true>> {
123
+ return this.inner.experimental_signAuthorization(unsignedAuthorization);
124
+ }
125
+
98
126
  /**
99
127
  * Returns the address of the inner object in a specific hexadecimal format.
100
128
  *
@@ -5,6 +5,7 @@ import type {
5
5
  TypedData,
6
6
  TypedDataDefinition,
7
7
  } from "viem";
8
+ import type { Authorization } from "viem/experimental";
8
9
 
9
10
  // [!region SmartAccountAuthenticator]
10
11
  /**
@@ -42,5 +43,9 @@ export interface SmartAccountSigner<Inner = any> {
42
43
  >(
43
44
  params: TypedDataDefinition<TTypedData, TPrimaryType>
44
45
  ) => Promise<Hex>;
46
+
47
+ signAuthorization?: (
48
+ unsignedAuthorization: Authorization<number, false>
49
+ ) => Promise<Authorization<number, true>>;
45
50
  }
46
51
  // [!endregion SmartAccountSigner]
package/src/types.ts CHANGED
@@ -201,15 +201,27 @@ export interface UserOperationRequest_v7 {
201
201
  }
202
202
  // [!endregion UserOperationRequest_v7]
203
203
 
204
+ export type Eip7702ExtendedFields = {
205
+ eip7702Auth?: {
206
+ chainId: Hex;
207
+ nonce: Hex;
208
+ address: Address;
209
+ r: Hex;
210
+ s: Hex;
211
+ yParity: Hex;
212
+ };
213
+ };
214
+
204
215
  // [!region UserOperationRequest]
205
216
  // Reference: https://eips.ethereum.org/EIPS/eip-4337#definitions
206
217
  export type UserOperationRequest<
207
218
  TEntryPointVersion extends EntryPointVersion = EntryPointVersion
208
- > = TEntryPointVersion extends "0.6.0"
219
+ > = (TEntryPointVersion extends "0.6.0"
209
220
  ? UserOperationRequest_v6
210
221
  : TEntryPointVersion extends "0.7.0"
211
222
  ? UserOperationRequest_v7
212
- : never;
223
+ : never) &
224
+ Eip7702ExtendedFields;
213
225
 
214
226
  // [!endregion UserOperationRequest]
215
227
 
@@ -347,9 +359,10 @@ export interface UserOperationStruct_v7 {
347
359
  // [!region UserOperationStruct]
348
360
  export type UserOperationStruct<
349
361
  TEntryPointVersion extends EntryPointVersion = EntryPointVersion
350
- > = TEntryPointVersion extends "0.6.0"
362
+ > = (TEntryPointVersion extends "0.6.0"
351
363
  ? UserOperationStruct_v6
352
364
  : TEntryPointVersion extends "0.7.0"
353
365
  ? UserOperationStruct_v7
354
- : never;
366
+ : never) &
367
+ Eip7702ExtendedFields;
355
368
  // [!endregion UserOperationStruct]
@@ -92,3 +92,7 @@ export type OneOf<T1, T2> = IsOneOf<T1, T2> extends true ? T1 : never;
92
92
  export type RecordableKeys<T> = {
93
93
  [K in keyof T]: T[K] extends string | number | symbol ? K : never;
94
94
  }[keyof T];
95
+
96
+ // Marks a subset of the fields of T as optional.
97
+ export type OptionalFields<T, K extends keyof T> = Pick<Partial<T>, K> &
98
+ Omit<T, K>;
package/src/version.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  // This file is autogenerated by inject-version.ts. Any changes will be
2
2
  // overwritten on commit!
3
- export const VERSION = "4.12.0";
3
+ export const VERSION = "4.13.0";