@account-kit/infra 4.13.1-alpha.0 → 4.14.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 (45) hide show
  1. package/dist/esm/actions/types.d.ts +14 -2
  2. package/dist/esm/actions/types.js.map +1 -1
  3. package/dist/esm/alchemyTransport.js +1 -0
  4. package/dist/esm/alchemyTransport.js.map +1 -1
  5. package/dist/esm/client/smartAccountClient.d.ts +1 -1
  6. package/dist/esm/client/smartAccountClient.js +11 -4
  7. package/dist/esm/client/smartAccountClient.js.map +1 -1
  8. package/dist/esm/client/types.d.ts +11 -2
  9. package/dist/esm/client/types.js.map +1 -1
  10. package/dist/esm/gas-manager.d.ts +2 -0
  11. package/dist/esm/gas-manager.js +2 -0
  12. package/dist/esm/gas-manager.js.map +1 -1
  13. package/dist/esm/index.d.ts +1 -1
  14. package/dist/esm/index.js +1 -1
  15. package/dist/esm/index.js.map +1 -1
  16. package/dist/esm/middleware/gasManager.d.ts +43 -4
  17. package/dist/esm/middleware/gasManager.js +137 -3
  18. package/dist/esm/middleware/gasManager.js.map +1 -1
  19. package/dist/esm/version.d.ts +1 -1
  20. package/dist/esm/version.js +1 -1
  21. package/dist/esm/version.js.map +1 -1
  22. package/dist/types/actions/types.d.ts +14 -2
  23. package/dist/types/actions/types.d.ts.map +1 -1
  24. package/dist/types/alchemyTransport.d.ts.map +1 -1
  25. package/dist/types/client/smartAccountClient.d.ts +1 -1
  26. package/dist/types/client/smartAccountClient.d.ts.map +1 -1
  27. package/dist/types/client/types.d.ts +11 -2
  28. package/dist/types/client/types.d.ts.map +1 -1
  29. package/dist/types/gas-manager.d.ts +2 -0
  30. package/dist/types/gas-manager.d.ts.map +1 -1
  31. package/dist/types/index.d.ts +1 -1
  32. package/dist/types/index.d.ts.map +1 -1
  33. package/dist/types/middleware/gasManager.d.ts +43 -4
  34. package/dist/types/middleware/gasManager.d.ts.map +1 -1
  35. package/dist/types/version.d.ts +1 -1
  36. package/dist/types/version.d.ts.map +1 -1
  37. package/package.json +4 -4
  38. package/src/actions/types.ts +41 -2
  39. package/src/alchemyTransport.ts +1 -0
  40. package/src/client/smartAccountClient.ts +12 -5
  41. package/src/client/types.ts +13 -1
  42. package/src/gas-manager.ts +2 -0
  43. package/src/index.ts +4 -1
  44. package/src/middleware/gasManager.ts +234 -6
  45. package/src/version.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/actions/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE1C,oBAAY,iBAAiB;IAC3B,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB;;;OAGG;IACH,WAAW,gBAAgB;CAC5B;AAED,oBAAY,kBAAkB;IAC5B,OAAO,YAAY;IACnB,QAAQ,aAAa;CACtB;AAED,MAAM,MAAM,wCAAwC,GAAG;IACrD,mBAAmB;IACnB,UAAU,EAAE,OAAO;IACnB,WAAW,CAAC,EAAE,IAAI;CACnB,CAAC;AAEF,MAAM,MAAM,yCAAyC,GAAG;IACtD,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B,KAAK,CAAC,EAAE,yBAAyB,CAAC;CACnC,CAAC;AAEF,MAAM,WAAW,yBAA0B,SAAQ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IACpE,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,iBAAiB,CAAC;IAC7B,UAAU,EAAE,kBAAkB,CAAC;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,OAAO,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/actions/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,EAClB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAE/C,oBAAY,iBAAiB;IAC3B,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB;;;OAGG;IACH,WAAW,gBAAgB;CAC5B;AAED,oBAAY,kBAAkB;IAC5B,OAAO,YAAY;IACnB,QAAQ,aAAa;CACtB;AAED,MAAM,MAAM,wCAAwC,GAAG;IACrD,mBAAmB;IACnB,UAAU,EAAE,OAAO;IACnB,WAAW,CAAC,EAAE,IAAI;CACnB,CAAC;AAEF,MAAM,MAAM,yCAAyC,GAAG;IACtD,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B,KAAK,CAAC,EAAE,yBAAyB,CAAC;CACnC,CAAC;AAEF,MAAM,WAAW,yBAA0B,SAAQ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IACpE,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,iBAAiB,CAAC;IAC7B,UAAU,EAAE,kBAAkB,CAAC;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,OAAO,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,oCAAoC,GAAG;IACjD;QACE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QAC5B,UAAU,EAAE,OAAO,CAAC;QACpB,cAAc,EAAE,GAAG,CAAC;QACpB,aAAa,EAAE,oBAAoB,CAAC;QACpC,SAAS,CAAC,EAAE,sBAAsB,CAAC;KACpC;CACF,CAAC;AAEF,MAAM,MAAM,qCAAqC,CAC/C,kBAAkB,SAAS,iBAAiB,GAAG,iBAAiB,IAC9D,IAAI,CACN,oBAAoB,EAClB,cAAc,GACd,oBAAoB,GACpB,sBAAsB,GACtB,cAAc,GACd,sBAAsB,CACzB,GACC,CAAC,kBAAkB,SAAS,OAAO,GAC/B;IACE,gBAAgB,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC,kBAAkB,CAAC,CAAC;CACrE,GACD,kBAAkB,SAAS,OAAO,GAClC,IAAI,CACF,oBAAoB,CAAC,OAAO,CAAC,EAC3B,WAAW,GACX,eAAe,GACf,+BAA+B,GAC/B,yBAAyB,CAC5B,GACD,KAAK,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"alchemyTransport.d.ts","sourceRoot":"","sources":["../../src/alchemyTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,gBAAgB,EACrB,KAAK,WAAW,EACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EAGL,KAAK,KAAK,EACV,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,eAAe,EACrB,MAAM,MAAM,CAAC;AACd,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAI1D,KAAK,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAC5B;KACG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK;CACvB,GACD,KAAK,CAAC;AAEV,KAAK,oBAAoB,GAAG;IAC1B,iBAAiB,EAAE,gBAAgB,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAaF,MAAM,MAAM,sBAAsB,GAAG,CACjC,CAAC,gBAAgB,GAAG,KAAK,CAAC,oBAAoB,CAAC,CAAC,GAChD,CAAC,oBAAoB,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC,CACnD,GAAG;IACF,wCAAwC;IACxC,UAAU,CAAC,EAAE,eAAe,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC;IACvD,8CAA8C;IAC9C,UAAU,CAAC,EAAE,eAAe,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC;IACvD,YAAY,CAAC,EAAE,WAAW,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC,CAAC;CACjE,CAAC;AAEF,KAAK,oBAAoB,GAAG,SAAS,CACnC,SAAS,EACT;IACE,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,sBAAsB,CAAC,cAAc,CAAC,CAAC;CACvD,EACD,gBAAgB,CAAC,CAAC,GAAG,eAAe,EAAE,GAAG,gBAAgB,CAAC,CAAC,CAC5D,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,GAAG;IACpD,aAAa,CAAC,UAAU,EAAE,WAAW,GAAG,IAAI,CAAC;IAC7C,MAAM,EAAE,sBAAsB,CAAC;CAChC,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,KAAK,GACX,SAAS,IAAI,gBAAgB,CAE/B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,sBAAsB,GAAG,gBAAgB,CA+ExE"}
1
+ {"version":3,"file":"alchemyTransport.d.ts","sourceRoot":"","sources":["../../src/alchemyTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,gBAAgB,EACrB,KAAK,WAAW,EACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EAGL,KAAK,KAAK,EACV,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,eAAe,EACrB,MAAM,MAAM,CAAC;AACd,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAI1D,KAAK,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAC5B;KACG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK;CACvB,GACD,KAAK,CAAC;AAEV,KAAK,oBAAoB,GAAG;IAC1B,iBAAiB,EAAE,gBAAgB,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAcF,MAAM,MAAM,sBAAsB,GAAG,CACjC,CAAC,gBAAgB,GAAG,KAAK,CAAC,oBAAoB,CAAC,CAAC,GAChD,CAAC,oBAAoB,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC,CACnD,GAAG;IACF,wCAAwC;IACxC,UAAU,CAAC,EAAE,eAAe,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC;IACvD,8CAA8C;IAC9C,UAAU,CAAC,EAAE,eAAe,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC;IACvD,YAAY,CAAC,EAAE,WAAW,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC,CAAC;CACjE,CAAC;AAEF,KAAK,oBAAoB,GAAG,SAAS,CACnC,SAAS,EACT;IACE,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,sBAAsB,CAAC,cAAc,CAAC,CAAC;CACvD,EACD,gBAAgB,CAAC,CAAC,GAAG,eAAe,EAAE,GAAG,gBAAgB,CAAC,CAAC,CAC5D,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,GAAG;IACpD,aAAa,CAAC,UAAU,EAAE,WAAW,GAAG,IAAI,CAAC;IAC7C,MAAM,EAAE,sBAAsB,CAAC;CAChC,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,KAAK,GACX,SAAS,IAAI,gBAAgB,CAE/B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,sBAAsB,GAAG,gBAAgB,CA+ExE"}
@@ -9,7 +9,7 @@ export declare function getSignerTypeHeader<TAccount extends SmartContractAccoun
9
9
  export type AlchemySmartAccountClientConfig<chain extends Chain | undefined = Chain | undefined, account extends SmartContractAccount | undefined = SmartContractAccount | undefined, context extends UserOperationContext | undefined = UserOperationContext | undefined> = {
10
10
  account?: account;
11
11
  useSimulation?: boolean;
12
- policyId?: string;
12
+ policyId?: string | string[];
13
13
  } & Pick<SmartAccountClientConfig<AlchemyTransport, chain, account, context>, "customMiddleware" | "feeEstimator" | "gasEstimator" | "signUserOperation" | "transport" | "chain" | "opts">;
14
14
  export type BaseAlchemyActions<chain extends Chain | undefined = Chain | undefined, account extends SmartContractAccount | undefined = SmartContractAccount | undefined, context extends UserOperationContext | undefined = UserOperationContext | undefined> = SmartAccountClientActions<chain, account, context> & AlchemySmartAccountClientActions<account, context>;
15
15
  export type AlchemySmartAccountClient_Base<chain extends Chain | undefined = Chain | undefined, account extends SmartContractAccount | undefined = SmartContractAccount | undefined, actions extends Record<string, unknown> = Record<string, unknown>, context extends UserOperationContext | undefined = UserOperationContext | undefined> = Prettify<SmartAccountClient<AlchemyTransport, chain, account, actions & BaseAlchemyActions<chain, account, context>, [
@@ -1 +1 @@
1
- {"version":3,"file":"smartAccountClient.d.ts","sourceRoot":"","sources":["../../../src/client/smartAccountClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"smartAccountClient.d.ts","sourceRoot":"","sources":["../../../src/client/smartAccountClient.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { type BundlerClient, type Erc7677RpcSchema, type UserOperationRequest } from "@aa-sdk/core";
2
- import type { SimulateUserOperationAssetChangesRequest, SimulateUserOperationAssetChangesResponse } from "../actions/types";
2
+ import type { SimulateUserOperationAssetChangesRequest, SimulateUserOperationAssetChangesResponse, RequestGasAndPaymasterAndDataRequest, RequestGasAndPaymasterAndDataResponse } from "../actions/types";
3
3
  import type { AlchemyTransport } from "../alchemyTransport";
4
4
  export type AlchemyRpcSchema = [
5
5
  {
@@ -14,7 +14,12 @@ export type AlchemyRpcSchema = [
14
14
  },
15
15
  ...Erc7677RpcSchema<{
16
16
  policyId: string;
17
- }>
17
+ }>,
18
+ {
19
+ Method: "alchemy_requestGasAndPaymasterAndData";
20
+ Parameters: RequestGasAndPaymasterAndDataRequest;
21
+ ReturnType: RequestGasAndPaymasterAndDataResponse;
22
+ }
18
23
  ];
19
24
  export type ClientWithAlchemyMethods = BundlerClient<AlchemyTransport> & {
20
25
  request: BundlerClient<AlchemyTransport>["request"] & {
@@ -26,6 +31,10 @@ export type ClientWithAlchemyMethods = BundlerClient<AlchemyTransport> & {
26
31
  method: "rundler_maxPriorityFeePerGas";
27
32
  params: [];
28
33
  }): Promise<UserOperationRequest["maxPriorityFeePerGas"]>;
34
+ request(args: {
35
+ method: "alchemy_requestGasAndPaymasterAndData";
36
+ params: RequestGasAndPaymasterAndDataRequest;
37
+ }): Promise<RequestGasAndPaymasterAndDataResponse>;
29
38
  }["request"];
30
39
  };
31
40
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/client/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EAC1B,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EACV,wCAAwC,EACxC,yCAAyC,EAC1C,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,MAAM,MAAM,gBAAgB,GAAG;IAC7B;QACE,MAAM,EAAE,2CAA2C,CAAC;QACpD,UAAU,EAAE,wCAAwC,CAAC;QACrD,UAAU,EAAE,yCAAyC,CAAC;KACvD;IACD;QACE,MAAM,EAAE,8BAA8B,CAAC;QACvC,UAAU,EAAE,EAAE,CAAC;QACf,UAAU,EAAE,oBAAoB,CAAC,sBAAsB,CAAC,CAAC;KAC1D;IACD,GAAG,gBAAgB,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,aAAa,CAAC,gBAAgB,CAAC,GAAG;IACvE,OAAO,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,GACjD;QACE,OAAO,CAAC,IAAI,EAAE;YACZ,MAAM,EAAE,2CAA2C,CAAC;YACpD,MAAM,EAAE,wCAAwC,CAAC;SAClD,GAAG,OAAO,CAAC,yCAAyC,CAAC,CAAC;QAEvD,OAAO,CAAC,IAAI,EAAE;YACZ,MAAM,EAAE,8BAA8B,CAAC;YACvC,MAAM,EAAE,EAAE,CAAC;SACZ,GAAG,OAAO,CAAC,oBAAoB,CAAC,sBAAsB,CAAC,CAAC,CAAC;KAC3D,CAAC,SAAS,CAAC,CAAC;CAChB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/client/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EAC1B,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EACV,wCAAwC,EACxC,yCAAyC,EACzC,oCAAoC,EACpC,qCAAqC,EACtC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,MAAM,MAAM,gBAAgB,GAAG;IAC7B;QACE,MAAM,EAAE,2CAA2C,CAAC;QACpD,UAAU,EAAE,wCAAwC,CAAC;QACrD,UAAU,EAAE,yCAAyC,CAAC;KACvD;IACD;QACE,MAAM,EAAE,8BAA8B,CAAC;QACvC,UAAU,EAAE,EAAE,CAAC;QACf,UAAU,EAAE,oBAAoB,CAAC,sBAAsB,CAAC,CAAC;KAC1D;IACD,GAAG,gBAAgB,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC;QACE,MAAM,EAAE,uCAAuC,CAAC;QAChD,UAAU,EAAE,oCAAoC,CAAC;QACjD,UAAU,EAAE,qCAAqC,CAAC;KACnD;CACF,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,aAAa,CAAC,gBAAgB,CAAC,GAAG;IACvE,OAAO,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,GACjD;QACE,OAAO,CAAC,IAAI,EAAE;YACZ,MAAM,EAAE,2CAA2C,CAAC;YACpD,MAAM,EAAE,wCAAwC,CAAC;SAClD,GAAG,OAAO,CAAC,yCAAyC,CAAC,CAAC;QAEvD,OAAO,CAAC,IAAI,EAAE;YACZ,MAAM,EAAE,8BAA8B,CAAC;YACvC,MAAM,EAAE,EAAE,CAAC;SACZ,GAAG,OAAO,CAAC,oBAAoB,CAAC,sBAAsB,CAAC,CAAC,CAAC;QAE1D,OAAO,CAAC,IAAI,EAAE;YACZ,MAAM,EAAE,uCAAuC,CAAC;YAChD,MAAM,EAAE,oCAAoC,CAAC;SAC9C,GAAG,OAAO,CAAC,qCAAqC,CAAC,CAAC;KACpD,CAAC,SAAS,CAAC,CAAC;CAChB,CAAC"}
@@ -15,6 +15,8 @@ export declare const AlchemyPaymasterAddressV1 = "0xc03aac639bb21233e01393819703
15
15
  *
16
16
  * @param {Chain} chain The chain for which the paymaster address is required
17
17
  * @returns {Address} The Alchemy paymaster address corresponding to the specified chain
18
+ *
19
+ * @deprecated This chain list in this function is no longer maintained since the ERC-7677 middleware is typically used to resolve the paymaster address
18
20
  */
19
21
  export declare const getAlchemyPaymasterAddress: (chain: Chain) => Address;
20
22
  //# sourceMappingURL=gas-manager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gas-manager.d.ts","sourceRoot":"","sources":["../../src/gas-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAmB3C,eAAO,MAAM,yBAAyB,+CACQ,CAAC;AAC/C,eAAO,MAAM,yBAAyB,+CACQ,CAAC;AAC/C,eAAO,MAAM,0BAA0B,+CACO,CAAC;AAC/C,eAAO,MAAM,yBAAyB,+CACQ,CAAC;AAE/C;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,0BAA0B,UAAW,KAAK,KAAG,OAwBzD,CAAC"}
1
+ {"version":3,"file":"gas-manager.d.ts","sourceRoot":"","sources":["../../src/gas-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAmB3C,eAAO,MAAM,yBAAyB,+CACQ,CAAC;AAC/C,eAAO,MAAM,yBAAyB,+CACQ,CAAC;AAC/C,eAAO,MAAM,0BAA0B,+CACO,CAAC;AAC/C,eAAO,MAAM,yBAAyB,+CACQ,CAAC;AAE/C;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,0BAA0B,UAAW,KAAK,KAAG,OAwBzD,CAAC"}
@@ -19,7 +19,7 @@ export { getDefaultUserOperationFeeOptions } from "./defaults.js";
19
19
  export { getAlchemyPaymasterAddress } from "./gas-manager.js";
20
20
  export { alchemyFeeEstimator } from "./middleware/feeEstimator.js";
21
21
  export type * from "./middleware/gasManager.js";
22
- export { alchemyGasManagerMiddleware } from "./middleware/gasManager.js";
22
+ export { alchemyGasManagerMiddleware, alchemyGasAndPaymasterAndDataMiddleware, } from "./middleware/gasManager.js";
23
23
  export { alchemyUserOperationSimulator } from "./middleware/userOperationSimulator.js";
24
24
  export type * from "./schema.js";
25
25
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,2CAA2C,CAAC;AAC/D,OAAO,EAAE,4BAA4B,EAAE,MAAM,2CAA2C,CAAC;AACzF,mBAAmB,oBAAoB,CAAC;AACxC,mBAAmB,uBAAuB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACpE,mBAAmB,aAAa,CAAC;AACjC,OAAO,EACL,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,eAAe,EACf,IAAI,EACJ,UAAU,EACV,WAAW,EACX,kBAAkB,EAClB,OAAO,EACP,cAAc,EACd,MAAM,EACN,OAAO,EACP,QAAQ,EACR,cAAc,EACd,eAAe,EACf,OAAO,EACP,WAAW,EACX,aAAa,EACb,OAAO,EACP,KAAK,EACL,YAAY,EACZ,UAAU,EACV,iBAAiB,EACjB,IAAI,EACJ,WAAW,EACX,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,cAAc,EACd,eAAe,EACf,eAAe,EACf,UAAU,EACV,UAAU,EACV,MAAM,GACP,MAAM,aAAa,CAAC;AACrB,mBAAmB,4CAA4C,CAAC;AAChE,OAAO,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AACvF,mBAAmB,qCAAqC,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,2BAA2B,EAAE,MAAM,yCAAyC,CAAC;AACtF,mBAAmB,uBAAuB,CAAC;AAC3C,OAAO,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AACrE,mBAAmB,gCAAgC,CAAC;AACpD,OAAO,EAAE,+BAA+B,EAAE,MAAM,gCAAgC,CAAC;AACjF,mBAAmB,mBAAmB,CAAC;AACvC,OAAO,EAAE,iCAAiC,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,mBAAmB,4BAA4B,CAAC;AAChD,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAC;AACvF,mBAAmB,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,2CAA2C,CAAC;AAC/D,OAAO,EAAE,4BAA4B,EAAE,MAAM,2CAA2C,CAAC;AACzF,mBAAmB,oBAAoB,CAAC;AACxC,mBAAmB,uBAAuB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACpE,mBAAmB,aAAa,CAAC;AACjC,OAAO,EACL,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,eAAe,EACf,IAAI,EACJ,UAAU,EACV,WAAW,EACX,kBAAkB,EAClB,OAAO,EACP,cAAc,EACd,MAAM,EACN,OAAO,EACP,QAAQ,EACR,cAAc,EACd,eAAe,EACf,OAAO,EACP,WAAW,EACX,aAAa,EACb,OAAO,EACP,KAAK,EACL,YAAY,EACZ,UAAU,EACV,iBAAiB,EACjB,IAAI,EACJ,WAAW,EACX,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,cAAc,EACd,eAAe,EACf,eAAe,EACf,UAAU,EACV,UAAU,EACV,MAAM,GACP,MAAM,aAAa,CAAC;AACrB,mBAAmB,4CAA4C,CAAC;AAChE,OAAO,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AACvF,mBAAmB,qCAAqC,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,2BAA2B,EAAE,MAAM,yCAAyC,CAAC;AACtF,mBAAmB,uBAAuB,CAAC;AAC3C,OAAO,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AACrE,mBAAmB,gCAAgC,CAAC;AACpD,OAAO,EAAE,+BAA+B,EAAE,MAAM,gCAAgC,CAAC;AACjF,mBAAmB,mBAAmB,CAAC;AACvC,OAAO,EAAE,iCAAiC,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,mBAAmB,4BAA4B,CAAC;AAChD,OAAO,EACL,2BAA2B,EAC3B,uCAAuC,GACxC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAC;AACvF,mBAAmB,aAAa,CAAC"}
@@ -1,6 +1,8 @@
1
- import type { ClientMiddlewareConfig } from "@aa-sdk/core";
1
+ import type { ClientMiddlewareConfig, ClientMiddlewareFn } from "@aa-sdk/core";
2
+ import type { AlchemyTransport } from "../alchemyTransport.js";
2
3
  /**
3
- * Paymaster middleware factory that uses Alchemy's Gas Manager for sponsoring transactions.
4
+ * Paymaster middleware factory that uses Alchemy's Gas Manager for sponsoring
5
+ * transactions. Adheres to the ERC-7677 standardized communication protocol.
4
6
  *
5
7
  * @example
6
8
  * ```ts
@@ -14,8 +16,45 @@ import type { ClientMiddlewareConfig } from "@aa-sdk/core";
14
16
  * });
15
17
  * ```
16
18
  *
17
- * @param {string} policyId the policyId for Alchemy's gas manager
19
+ * @param {string | string[]} policyId the policyId (or list of policyIds) for Alchemy's gas manager
18
20
  * @returns {Pick<ClientMiddlewareConfig, "dummyPaymasterAndData" | "paymasterAndData">} partial client middleware configuration containing `dummyPaymasterAndData` and `paymasterAndData`
19
21
  */
20
- export declare function alchemyGasManagerMiddleware(policyId: string): Pick<ClientMiddlewareConfig, "dummyPaymasterAndData" | "paymasterAndData">;
22
+ export declare function alchemyGasManagerMiddleware(policyId: string | string[]): Pick<ClientMiddlewareConfig, "dummyPaymasterAndData" | "paymasterAndData">;
23
+ interface AlchemyGasAndPaymasterAndDataMiddlewareParams {
24
+ policyId: string | string[];
25
+ transport: AlchemyTransport;
26
+ gasEstimatorOverride?: ClientMiddlewareFn;
27
+ feeEstimatorOverride?: ClientMiddlewareFn;
28
+ }
29
+ /**
30
+ * Paymaster middleware factory that uses Alchemy's Gas Manager for sponsoring
31
+ * transactions. Uses Alchemy's custom `alchemy_requestGasAndPaymasterAndData`
32
+ * method instead of conforming to the standard ERC-7677 interface. Note that
33
+ * if you use `createAlchemySmartAccountClient`, this middleware is already
34
+ * used by default and you do not need to manually include it.
35
+ *
36
+ * @example
37
+ * ```ts twoslash
38
+ * import { sepolia, alchemy, alchemyGasAndPaymasterAndDataMiddleware } from "@account-kit/infra";
39
+ * import { createSmartAccountClient } from "@aa-sdk/core";
40
+ *
41
+ * const client = createSmartAccountClient({
42
+ * transport: alchemy({ apiKey: "your-api-key" }),
43
+ * chain: sepolia,
44
+ * ...alchemyGasAndPaymasterAndDataMiddleware({
45
+ * policyId: "policyId",
46
+ * transport: alchemy({ apiKey: "your-api-key" }),
47
+ * })
48
+ * });
49
+ * ```
50
+ *
51
+ * @param {AlchemyGasAndPaymasterAndDataMiddlewareParams} params configuration params
52
+ * @param {AlchemyGasAndPaymasterAndDataMiddlewareParams.policyId} params.policyId the policyId for Alchemy's gas manager
53
+ * @param {AlchemyGasAndPaymasterAndDataMiddlewareParams.transport} params.transport fallback transport to use for fee estimation when not using the paymaster
54
+ * @param {AlchemyGasAndPaymasterAndDataMiddlewareParams.gasEstimatorOverride} params.gasEstimatorOverride custom gas estimator middleware
55
+ * @param {AlchemyGasAndPaymasterAndDataMiddlewareParams.feeEstimatorOverride} params.feeEstimatorOverride custom fee estimator middleware
56
+ * @returns {Pick<ClientMiddlewareConfig, "dummyPaymasterAndData" | "paymasterAndData">} partial client middleware configuration containing `dummyPaymasterAndData` and `paymasterAndData`
57
+ */
58
+ export declare function alchemyGasAndPaymasterAndDataMiddleware(params: AlchemyGasAndPaymasterAndDataMiddlewareParams): Pick<ClientMiddlewareConfig, "dummyPaymasterAndData" | "feeEstimator" | "gasEstimator" | "paymasterAndData">;
59
+ export {};
21
60
  //# sourceMappingURL=gasManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gasManager.d.ts","sourceRoot":"","sources":["../../../src/middleware/gasManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAG3D;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,MAAM,GACf,IAAI,CAAC,sBAAsB,EAAE,uBAAuB,GAAG,kBAAkB,CAAC,CAI5E"}
1
+ {"version":3,"file":"gasManager.d.ts","sourceRoot":"","sources":["../../../src/middleware/gasManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,kBAAkB,EAMnB,MAAM,cAAc,CAAC;AAetB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG/D;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,GAC1B,IAAI,CAAC,sBAAsB,EAAE,uBAAuB,GAAG,kBAAkB,CAAC,CAI5E;AAED,UAAU,6CAA6C;IACrD,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC5B,SAAS,EAAE,gBAAgB,CAAC;IAC5B,oBAAoB,CAAC,EAAE,kBAAkB,CAAC;IAC1C,oBAAoB,CAAC,EAAE,kBAAkB,CAAC;CAC3C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,uCAAuC,CACrD,MAAM,EAAE,6CAA6C,GACpD,IAAI,CACL,sBAAsB,EACtB,uBAAuB,GAAG,cAAc,GAAG,cAAc,GAAG,kBAAkB,CAC/E,CAiHA"}
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "4.13.1-alpha.0";
1
+ export declare const VERSION = "4.14.0";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO,mBAAmB,CAAC"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO,WAAW,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@account-kit/infra",
3
- "version": "4.13.1-alpha.0",
3
+ "version": "4.14.0",
4
4
  "description": "adapters for @aa-sdk/core for interacting with alchemy services",
5
5
  "author": "Alchemy",
6
6
  "license": "MIT",
@@ -45,8 +45,8 @@
45
45
  "vitest": "^2.0.4"
46
46
  },
47
47
  "dependencies": {
48
- "@aa-sdk/core": "^4.13.1-alpha.0",
49
- "@account-kit/logging": "^4.13.1-alpha.0",
48
+ "@aa-sdk/core": "^4.14.0",
49
+ "@account-kit/logging": "^4.14.0",
50
50
  "eventemitter3": "^5.0.1",
51
51
  "zod": "^3.22.4"
52
52
  },
@@ -65,7 +65,7 @@
65
65
  "url": "https://github.com/alchemyplatform/aa-sdk/issues"
66
66
  },
67
67
  "homepage": "https://github.com/alchemyplatform/aa-sdk#readme",
68
- "gitHead": "d026b488ed279f04424c57b745efb19b8d344056",
68
+ "gitHead": "9230c8f9c9af7a9a7d90538ef6ec42dcca1c39db",
69
69
  "optionalDependencies": {
70
70
  "alchemy-sdk": "^3.0.0"
71
71
  }
@@ -1,5 +1,10 @@
1
- import type { UserOperationStruct } from "@aa-sdk/core";
2
- import type { Address, Hash } from "viem";
1
+ import type {
2
+ UserOperationStruct,
3
+ UserOperationRequest,
4
+ UserOperationOverrides,
5
+ EntryPointVersion,
6
+ } from "@aa-sdk/core";
7
+ import type { Address, Hash, Hex } from "viem";
3
8
 
4
9
  export enum SimulateAssetType {
5
10
  NATIVE = "NATIVE",
@@ -47,3 +52,37 @@ export interface SimulateAssetChange {
47
52
  name?: string;
48
53
  logo?: string;
49
54
  }
55
+
56
+ export type RequestGasAndPaymasterAndDataRequest = [
57
+ {
58
+ policyId: string | string[];
59
+ entryPoint: Address;
60
+ dummySignature: Hex;
61
+ userOperation: UserOperationRequest;
62
+ overrides?: UserOperationOverrides;
63
+ }
64
+ ];
65
+
66
+ export type RequestGasAndPaymasterAndDataResponse<
67
+ TEntryPointVersion extends EntryPointVersion = EntryPointVersion
68
+ > = Pick<
69
+ UserOperationRequest,
70
+ | "callGasLimit"
71
+ | "preVerificationGas"
72
+ | "verificationGasLimit"
73
+ | "maxFeePerGas"
74
+ | "maxPriorityFeePerGas"
75
+ > &
76
+ (TEntryPointVersion extends "0.6.0"
77
+ ? {
78
+ paymasterAndData: UserOperationRequest<"0.6.0">["paymasterAndData"];
79
+ }
80
+ : TEntryPointVersion extends "0.7.0"
81
+ ? Pick<
82
+ UserOperationRequest<"0.7.0">,
83
+ | "paymaster"
84
+ | "paymasterData"
85
+ | "paymasterVerificationGasLimit"
86
+ | "paymasterPostOpGasLimit"
87
+ >
88
+ : never);
@@ -39,6 +39,7 @@ const alchemyMethods = [
39
39
  "rundler_maxPriorityFeePerGas",
40
40
  "pm_getPaymasterData",
41
41
  "pm_getPaymasterStubData",
42
+ "alchemy_requestGasAndPaymasterAndData",
42
43
  ];
43
44
 
44
45
  export type AlchemyTransportConfig = (
@@ -15,7 +15,7 @@ import { type Chain } from "viem";
15
15
  import type { AlchemyTransport } from "../alchemyTransport.js";
16
16
  import { getDefaultUserOperationFeeOptions } from "../defaults.js";
17
17
  import { alchemyFeeEstimator } from "../middleware/feeEstimator.js";
18
- import { alchemyGasManagerMiddleware } from "../middleware/gasManager.js";
18
+ import { alchemyGasAndPaymasterAndDataMiddleware } from "../middleware/gasManager.js";
19
19
  import { alchemyUserOperationSimulator } from "../middleware/userOperationSimulator.js";
20
20
  import {
21
21
  alchemyActions,
@@ -41,7 +41,7 @@ export type AlchemySmartAccountClientConfig<
41
41
  > = {
42
42
  account?: account;
43
43
  useSimulation?: boolean;
44
- policyId?: string;
44
+ policyId?: string | string[];
45
45
  } & Pick<
46
46
  SmartAccountClientConfig<AlchemyTransport, chain, account, context>,
47
47
  | "customMiddleware"
@@ -153,18 +153,25 @@ export function createAlchemySmartAccountClient({
153
153
  ...opts,
154
154
  feeOptions,
155
155
  },
156
+ feeEstimator: feeEstimator ?? alchemyFeeEstimator(transport),
157
+ gasEstimator,
156
158
  customMiddleware: async (struct, args) => {
157
159
  if (isSmartAccountWithSigner(args.account)) {
158
160
  transport.updateHeaders(getSignerTypeHeader(args.account));
159
161
  }
160
162
  return customMiddleware ? customMiddleware(struct, args) : struct;
161
163
  },
162
- feeEstimator: feeEstimator ?? alchemyFeeEstimator(transport),
164
+ ...(policyId
165
+ ? alchemyGasAndPaymasterAndDataMiddleware({
166
+ policyId,
167
+ transport,
168
+ gasEstimatorOverride: gasEstimator,
169
+ feeEstimatorOverride: feeEstimator,
170
+ })
171
+ : {}),
163
172
  userOperationSimulator: useSimulation
164
173
  ? alchemyUserOperationSimulator(transport)
165
174
  : undefined,
166
- gasEstimator,
167
- ...(policyId && alchemyGasManagerMiddleware(policyId)),
168
175
  signUserOperation,
169
176
  }).extend(alchemyActions);
170
177
 
@@ -6,6 +6,8 @@ import {
6
6
  import type {
7
7
  SimulateUserOperationAssetChangesRequest,
8
8
  SimulateUserOperationAssetChangesResponse,
9
+ RequestGasAndPaymasterAndDataRequest,
10
+ RequestGasAndPaymasterAndDataResponse,
9
11
  } from "../actions/types";
10
12
  import type { AlchemyTransport } from "../alchemyTransport";
11
13
 
@@ -20,7 +22,12 @@ export type AlchemyRpcSchema = [
20
22
  Parameters: [];
21
23
  ReturnType: UserOperationRequest["maxPriorityFeePerGas"];
22
24
  },
23
- ...Erc7677RpcSchema<{ policyId: string }>
25
+ ...Erc7677RpcSchema<{ policyId: string }>,
26
+ {
27
+ Method: "alchemy_requestGasAndPaymasterAndData";
28
+ Parameters: RequestGasAndPaymasterAndDataRequest;
29
+ ReturnType: RequestGasAndPaymasterAndDataResponse;
30
+ }
24
31
  ];
25
32
 
26
33
  export type ClientWithAlchemyMethods = BundlerClient<AlchemyTransport> & {
@@ -35,5 +42,10 @@ export type ClientWithAlchemyMethods = BundlerClient<AlchemyTransport> & {
35
42
  method: "rundler_maxPriorityFeePerGas";
36
43
  params: [];
37
44
  }): Promise<UserOperationRequest["maxPriorityFeePerGas"]>;
45
+
46
+ request(args: {
47
+ method: "alchemy_requestGasAndPaymasterAndData";
48
+ params: RequestGasAndPaymasterAndDataRequest;
49
+ }): Promise<RequestGasAndPaymasterAndDataResponse>;
38
50
  }["request"];
39
51
  };
@@ -38,6 +38,8 @@ export const AlchemyPaymasterAddressV1 =
38
38
  *
39
39
  * @param {Chain} chain The chain for which the paymaster address is required
40
40
  * @returns {Address} The Alchemy paymaster address corresponding to the specified chain
41
+ *
42
+ * @deprecated This chain list in this function is no longer maintained since the ERC-7677 middleware is typically used to resolve the paymaster address
41
43
  */
42
44
  export const getAlchemyPaymasterAddress = (chain: Chain): Address => {
43
45
  switch (chain.id) {
package/src/index.ts CHANGED
@@ -55,6 +55,9 @@ export { getDefaultUserOperationFeeOptions } from "./defaults.js";
55
55
  export { getAlchemyPaymasterAddress } from "./gas-manager.js";
56
56
  export { alchemyFeeEstimator } from "./middleware/feeEstimator.js";
57
57
  export type * from "./middleware/gasManager.js";
58
- export { alchemyGasManagerMiddleware } from "./middleware/gasManager.js";
58
+ export {
59
+ alchemyGasManagerMiddleware,
60
+ alchemyGasAndPaymasterAndDataMiddleware,
61
+ } from "./middleware/gasManager.js";
59
62
  export { alchemyUserOperationSimulator } from "./middleware/userOperationSimulator.js";
60
63
  export type * from "./schema.js";
@@ -1,8 +1,32 @@
1
- import type { ClientMiddlewareConfig } from "@aa-sdk/core";
2
- import { erc7677Middleware } from "@aa-sdk/core";
1
+ import type {
2
+ ClientMiddlewareConfig,
3
+ ClientMiddlewareFn,
4
+ EntryPointVersion,
5
+ Multiplier,
6
+ UserOperationFeeOptions,
7
+ UserOperationOverrides,
8
+ UserOperationRequest,
9
+ } from "@aa-sdk/core";
10
+ import {
11
+ bypassPaymasterAndData,
12
+ ChainNotFoundError,
13
+ deepHexlify,
14
+ defaultGasEstimator,
15
+ erc7677Middleware,
16
+ filterUndefined,
17
+ isBigNumberish,
18
+ isMultiplier,
19
+ noopMiddleware,
20
+ resolveProperties,
21
+ } from "@aa-sdk/core";
22
+ import { fromHex, isHex, type Hex } from "viem";
23
+ import type { AlchemySmartAccountClient } from "../client/smartAccountClient.js";
24
+ import type { AlchemyTransport } from "../alchemyTransport.js";
25
+ import { alchemyFeeEstimator } from "./feeEstimator.js";
3
26
 
4
27
  /**
5
- * Paymaster middleware factory that uses Alchemy's Gas Manager for sponsoring transactions.
28
+ * Paymaster middleware factory that uses Alchemy's Gas Manager for sponsoring
29
+ * transactions. Adheres to the ERC-7677 standardized communication protocol.
6
30
  *
7
31
  * @example
8
32
  * ```ts
@@ -16,13 +40,217 @@ import { erc7677Middleware } from "@aa-sdk/core";
16
40
  * });
17
41
  * ```
18
42
  *
19
- * @param {string} policyId the policyId for Alchemy's gas manager
43
+ * @param {string | string[]} policyId the policyId (or list of policyIds) for Alchemy's gas manager
20
44
  * @returns {Pick<ClientMiddlewareConfig, "dummyPaymasterAndData" | "paymasterAndData">} partial client middleware configuration containing `dummyPaymasterAndData` and `paymasterAndData`
21
45
  */
22
46
  export function alchemyGasManagerMiddleware(
23
- policyId: string
47
+ policyId: string | string[]
24
48
  ): Pick<ClientMiddlewareConfig, "dummyPaymasterAndData" | "paymasterAndData"> {
25
- return erc7677Middleware<{ policyId: string }>({
49
+ return erc7677Middleware<{ policyId: string | string[] }>({
26
50
  context: { policyId: policyId },
27
51
  });
28
52
  }
53
+
54
+ interface AlchemyGasAndPaymasterAndDataMiddlewareParams {
55
+ policyId: string | string[];
56
+ transport: AlchemyTransport;
57
+ gasEstimatorOverride?: ClientMiddlewareFn;
58
+ feeEstimatorOverride?: ClientMiddlewareFn;
59
+ }
60
+
61
+ /**
62
+ * Paymaster middleware factory that uses Alchemy's Gas Manager for sponsoring
63
+ * transactions. Uses Alchemy's custom `alchemy_requestGasAndPaymasterAndData`
64
+ * method instead of conforming to the standard ERC-7677 interface. Note that
65
+ * if you use `createAlchemySmartAccountClient`, this middleware is already
66
+ * used by default and you do not need to manually include it.
67
+ *
68
+ * @example
69
+ * ```ts twoslash
70
+ * import { sepolia, alchemy, alchemyGasAndPaymasterAndDataMiddleware } from "@account-kit/infra";
71
+ * import { createSmartAccountClient } from "@aa-sdk/core";
72
+ *
73
+ * const client = createSmartAccountClient({
74
+ * transport: alchemy({ apiKey: "your-api-key" }),
75
+ * chain: sepolia,
76
+ * ...alchemyGasAndPaymasterAndDataMiddleware({
77
+ * policyId: "policyId",
78
+ * transport: alchemy({ apiKey: "your-api-key" }),
79
+ * })
80
+ * });
81
+ * ```
82
+ *
83
+ * @param {AlchemyGasAndPaymasterAndDataMiddlewareParams} params configuration params
84
+ * @param {AlchemyGasAndPaymasterAndDataMiddlewareParams.policyId} params.policyId the policyId for Alchemy's gas manager
85
+ * @param {AlchemyGasAndPaymasterAndDataMiddlewareParams.transport} params.transport fallback transport to use for fee estimation when not using the paymaster
86
+ * @param {AlchemyGasAndPaymasterAndDataMiddlewareParams.gasEstimatorOverride} params.gasEstimatorOverride custom gas estimator middleware
87
+ * @param {AlchemyGasAndPaymasterAndDataMiddlewareParams.feeEstimatorOverride} params.feeEstimatorOverride custom fee estimator middleware
88
+ * @returns {Pick<ClientMiddlewareConfig, "dummyPaymasterAndData" | "paymasterAndData">} partial client middleware configuration containing `dummyPaymasterAndData` and `paymasterAndData`
89
+ */
90
+ export function alchemyGasAndPaymasterAndDataMiddleware(
91
+ params: AlchemyGasAndPaymasterAndDataMiddlewareParams
92
+ ): Pick<
93
+ ClientMiddlewareConfig,
94
+ "dummyPaymasterAndData" | "feeEstimator" | "gasEstimator" | "paymasterAndData"
95
+ > {
96
+ const { policyId, transport, gasEstimatorOverride, feeEstimatorOverride } =
97
+ params;
98
+ return {
99
+ dummyPaymasterAndData: async (uo, args) => {
100
+ if (
101
+ // No reason to generate dummy data if we are bypassing the paymaster.
102
+ bypassPaymasterAndData(args.overrides) ||
103
+ // When using alchemy_requestGasAndPaymasterAndData, there is generally no reason to generate dummy
104
+ // data. However, if the gas/feeEstimator is overriden, then this option should be enabled.
105
+ !(gasEstimatorOverride || feeEstimatorOverride)
106
+ ) {
107
+ return noopMiddleware(uo, args);
108
+ }
109
+
110
+ // Fall back to the default 7677 dummyPaymasterAndData middleware.
111
+ return alchemyGasManagerMiddleware(policyId).dummyPaymasterAndData!(
112
+ uo,
113
+ args
114
+ );
115
+ },
116
+ feeEstimator: (uo, args) => {
117
+ return feeEstimatorOverride
118
+ ? feeEstimatorOverride(uo, args)
119
+ : bypassPaymasterAndData(args.overrides)
120
+ ? alchemyFeeEstimator(transport)(uo, args)
121
+ : noopMiddleware(uo, args);
122
+ },
123
+ gasEstimator: (uo, args) => {
124
+ return gasEstimatorOverride
125
+ ? gasEstimatorOverride(uo, args)
126
+ : bypassPaymasterAndData(args.overrides)
127
+ ? defaultGasEstimator(args.client)(uo, args)
128
+ : noopMiddleware(uo, args);
129
+ },
130
+ paymasterAndData: async (
131
+ uo,
132
+ { account, client, feeOptions, overrides: overrides_ }
133
+ ) => {
134
+ if (!client.chain) {
135
+ throw new ChainNotFoundError();
136
+ }
137
+
138
+ const userOp = deepHexlify(await resolveProperties(uo));
139
+
140
+ const overrides: UserOperationOverrides = filterUndefined({
141
+ maxFeePerGas: overrideField(
142
+ "maxFeePerGas",
143
+ overrides_ as UserOperationOverrides,
144
+ feeOptions,
145
+ userOp
146
+ ),
147
+ maxPriorityFeePerGas: overrideField(
148
+ "maxPriorityFeePerGas",
149
+ overrides_ as UserOperationOverrides,
150
+ feeOptions,
151
+ userOp
152
+ ),
153
+ callGasLimit: overrideField(
154
+ "callGasLimit",
155
+ overrides_ as UserOperationOverrides,
156
+ feeOptions,
157
+ userOp
158
+ ),
159
+ verificationGasLimit: overrideField(
160
+ "verificationGasLimit",
161
+ overrides_ as UserOperationOverrides,
162
+ feeOptions,
163
+ userOp
164
+ ),
165
+ preVerificationGas: overrideField(
166
+ "preVerificationGas",
167
+ overrides_ as UserOperationOverrides,
168
+ feeOptions,
169
+ userOp
170
+ ),
171
+ ...(account.getEntryPoint().version === "0.7.0"
172
+ ? {
173
+ paymasterVerificationGasLimit: overrideField<"0.7.0">(
174
+ "paymasterVerificationGasLimit",
175
+ overrides_ as UserOperationOverrides<"0.7.0">,
176
+ feeOptions,
177
+ userOp
178
+ ),
179
+ paymasterPostOpGasLimit: overrideField<"0.7.0">(
180
+ "paymasterPostOpGasLimit",
181
+ overrides_ as UserOperationOverrides<"0.7.0">,
182
+ feeOptions,
183
+ userOp
184
+ ),
185
+ }
186
+ : {}),
187
+ });
188
+
189
+ const result = await (client as AlchemySmartAccountClient).request({
190
+ method: "alchemy_requestGasAndPaymasterAndData",
191
+ params: [
192
+ {
193
+ policyId,
194
+ entryPoint: account.getEntryPoint().address,
195
+ userOperation: userOp,
196
+ dummySignature: await account.getDummySignature(),
197
+ overrides,
198
+ },
199
+ ],
200
+ });
201
+
202
+ return {
203
+ ...uo,
204
+ ...result,
205
+ };
206
+ },
207
+ };
208
+ }
209
+
210
+ /**
211
+ * Utility function to override a field in the user operation request with the overrides or fee options
212
+ *
213
+ * @template {EntryPointVersion} TEntryPointVersion
214
+ * @param {keyof UserOperationFeeOptions<TEntryPointVersion>} field the field to override
215
+ * @param {UserOperationOverrides<TEntryPointVersion> | undefined} overrides the overrides object
216
+ * @param {UserOperationFeeOptions<TEntryPointVersion> | undefined} feeOptions the fee options object from the client
217
+ * @param {UserOperationRequest<TEntryPointVersion>} userOperation the user operation request
218
+ * @returns {Hex | Multiplier | undefined} the overridden field value
219
+ */
220
+ const overrideField = <
221
+ TEntryPointVersion extends EntryPointVersion = EntryPointVersion
222
+ >(
223
+ field: keyof UserOperationFeeOptions<TEntryPointVersion>,
224
+ overrides: UserOperationOverrides<TEntryPointVersion> | undefined,
225
+ feeOptions: UserOperationFeeOptions<TEntryPointVersion> | undefined,
226
+ userOperation: UserOperationRequest<TEntryPointVersion>
227
+ ): Hex | Multiplier | undefined => {
228
+ let _field = field as keyof UserOperationOverrides<TEntryPointVersion>;
229
+
230
+ if (overrides?.[_field] != null) {
231
+ // one-off absolute override
232
+ if (isBigNumberish(overrides[_field])) {
233
+ return deepHexlify(overrides[_field]);
234
+ }
235
+ // one-off multiplier overrides
236
+ else {
237
+ return {
238
+ multiplier: Number((overrides[_field] as Multiplier).multiplier),
239
+ };
240
+ }
241
+ }
242
+
243
+ // provider level fee options with multiplier
244
+ if (isMultiplier(feeOptions?.[field])) {
245
+ return {
246
+ multiplier: Number((feeOptions![field] as Multiplier).multiplier),
247
+ };
248
+ }
249
+
250
+ const userOpField =
251
+ userOperation[field as keyof UserOperationRequest<TEntryPointVersion>];
252
+ if (isHex(userOpField) && fromHex(userOpField as Hex, "bigint") > 0n) {
253
+ return userOpField;
254
+ }
255
+ return undefined;
256
+ };
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.13.1-alpha.0";
3
+ export const VERSION = "4.14.0";