@zerodev/sdk 5.2.12-alpha-2 → 5.2.12

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 (66) hide show
  1. package/_cjs/accounts/kernel/createKernelAccount.js +0 -7
  2. package/_cjs/accounts/kernel/createKernelAccount.js.map +1 -1
  3. package/_cjs/accounts/utils/toKernelPluginManager.js +0 -26
  4. package/_cjs/accounts/utils/toKernelPluginManager.js.map +1 -1
  5. package/_cjs/clients/decorators/kernel.js +1 -5
  6. package/_cjs/clients/decorators/kernel.js.map +1 -1
  7. package/_cjs/clients/kernelAccountClient.js +3 -2
  8. package/_cjs/clients/kernelAccountClient.js.map +1 -1
  9. package/_cjs/clients/paymasterClient.js +2 -1
  10. package/_cjs/clients/paymasterClient.js.map +1 -1
  11. package/_cjs/clients/utils.js +5 -5
  12. package/_cjs/clients/utils.js.map +1 -1
  13. package/_cjs/index.js +1 -3
  14. package/_cjs/index.js.map +1 -1
  15. package/_cjs/types/kernel.js.map +1 -1
  16. package/_esm/accounts/kernel/createKernelAccount.js +0 -8
  17. package/_esm/accounts/kernel/createKernelAccount.js.map +1 -1
  18. package/_esm/accounts/utils/toKernelPluginManager.js +0 -26
  19. package/_esm/accounts/utils/toKernelPluginManager.js.map +1 -1
  20. package/_esm/clients/decorators/kernel.js +1 -5
  21. package/_esm/clients/decorators/kernel.js.map +1 -1
  22. package/_esm/clients/kernelAccountClient.js +4 -3
  23. package/_esm/clients/kernelAccountClient.js.map +1 -1
  24. package/_esm/clients/paymasterClient.js +3 -2
  25. package/_esm/clients/paymasterClient.js.map +1 -1
  26. package/_esm/clients/utils.js +3 -3
  27. package/_esm/clients/utils.js.map +1 -1
  28. package/_esm/index.js +0 -1
  29. package/_esm/index.js.map +1 -1
  30. package/_esm/types/kernel.js.map +1 -1
  31. package/_types/accounts/kernel/createKernelAccount.d.ts +1 -2
  32. package/_types/accounts/kernel/createKernelAccount.d.ts.map +1 -1
  33. package/_types/accounts/utils/toKernelPluginManager.d.ts.map +1 -1
  34. package/_types/clients/decorators/kernel.d.ts +3 -10
  35. package/_types/clients/decorators/kernel.d.ts.map +1 -1
  36. package/_types/clients/kernelAccountClient.d.ts.map +1 -1
  37. package/_types/clients/paymasterClient.d.ts.map +1 -1
  38. package/_types/clients/utils.d.ts +1 -1
  39. package/_types/clients/utils.d.ts.map +1 -1
  40. package/_types/index.d.ts +1 -2
  41. package/_types/index.d.ts.map +1 -1
  42. package/_types/types/kernel.d.ts +1 -6
  43. package/_types/types/kernel.d.ts.map +1 -1
  44. package/accounts/kernel/createKernelAccount.ts +1 -22
  45. package/accounts/utils/toKernelPluginManager.ts +0 -36
  46. package/clients/decorators/kernel.ts +4 -50
  47. package/clients/kernelAccountClient.ts +7 -3
  48. package/clients/paymasterClient.ts +6 -2
  49. package/clients/utils.ts +3 -3
  50. package/index.ts +1 -3
  51. package/package.json +1 -1
  52. package/types/kernel.ts +1 -13
  53. package/_cjs/actions/account-client/prepareMultiUserOpRequest.js +0 -110
  54. package/_cjs/actions/account-client/prepareMultiUserOpRequest.js.map +0 -1
  55. package/_cjs/actions/account-client/sendSignedUserOperation.js +0 -17
  56. package/_cjs/actions/account-client/sendSignedUserOperation.js.map +0 -1
  57. package/_esm/actions/account-client/prepareMultiUserOpRequest.js +0 -108
  58. package/_esm/actions/account-client/prepareMultiUserOpRequest.js.map +0 -1
  59. package/_esm/actions/account-client/sendSignedUserOperation.js +0 -14
  60. package/_esm/actions/account-client/sendSignedUserOperation.js.map +0 -1
  61. package/_types/actions/account-client/prepareMultiUserOpRequest.d.ts +0 -31
  62. package/_types/actions/account-client/prepareMultiUserOpRequest.d.ts.map +0 -1
  63. package/_types/actions/account-client/sendSignedUserOperation.d.ts +0 -7
  64. package/_types/actions/account-client/sendSignedUserOperation.d.ts.map +0 -1
  65. package/actions/account-client/prepareMultiUserOpRequest.ts +0 -238
  66. package/actions/account-client/sendSignedUserOperation.ts +0 -36
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.sendSignedUserOperation = void 0;
4
- const permissionless_1 = require("permissionless");
5
- async function sendSignedUserOperation(client, args) {
6
- const { userOperation, entryPoint } = args;
7
- const userOperationHash = await client.request({
8
- method: "eth_sendUserOperation",
9
- params: [
10
- (0, permissionless_1.deepHexlify)(userOperation),
11
- entryPoint
12
- ]
13
- });
14
- return userOperationHash;
15
- }
16
- exports.sendSignedUserOperation = sendSignedUserOperation;
17
- //# sourceMappingURL=sendSignedUserOperation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sendSignedUserOperation.js","sourceRoot":"","sources":["../../../actions/account-client/sendSignedUserOperation.ts"],"names":[],"mappings":";;;AAAA,mDAA8E;AAUvE,KAAK,UAAU,uBAAuB,CAQzC,MAA0E,EAC1E,IAA6C;IAE7C,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,IAAI,CAAA;IAG1C,MAAM,iBAAiB,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;QAC3C,MAAM,EAAE,uBAAuB;QAC/B,MAAM,EAAE;YACJ,IAAA,4BAAW,EAAC,aAAa,CAExB;YACD,UAAU;SACb;KACJ,CAAC,CAAA;IAEF,OAAO,iBAAiB,CAAA;AAC5B,CAAC;AAzBD,0DAyBC"}
@@ -1,108 +0,0 @@
1
- import { AccountOrClientNotFoundError, estimateUserOperationGas, parseAccount } from "permissionless";
2
- import { estimateFeesPerGas } from "viem/actions";
3
- import { getAction } from "viem/utils";
4
- export async function prepareMultiUserOpRequest(client, args, numOfUserOps, stateOverrides) {
5
- const { account: account_ = client.account, userOperation: partialUserOperation, middleware } = args;
6
- if (!account_)
7
- throw new AccountOrClientNotFoundError();
8
- const account = parseAccount(account_);
9
- const [sender, nonce, factory, factoryData, callData, gasEstimation] = await Promise.all([
10
- partialUserOperation.sender || account.address,
11
- partialUserOperation.nonce || account.getNonce(),
12
- partialUserOperation.factory || account.getFactory(),
13
- partialUserOperation.factoryData || account.getFactoryData(),
14
- partialUserOperation.callData,
15
- !partialUserOperation.maxFeePerGas ||
16
- !partialUserOperation.maxPriorityFeePerGas
17
- ? estimateFeesPerGas(account.client)
18
- : undefined
19
- ]);
20
- const userOperation = {
21
- sender,
22
- nonce,
23
- factory: factory,
24
- factoryData: factoryData,
25
- callData,
26
- callGasLimit: partialUserOperation.callGasLimit || BigInt(0),
27
- verificationGasLimit: partialUserOperation.verificationGasLimit || BigInt(0),
28
- preVerificationGas: partialUserOperation.preVerificationGas || BigInt(0),
29
- maxFeePerGas: partialUserOperation.maxFeePerGas ||
30
- gasEstimation?.maxFeePerGas ||
31
- BigInt(0),
32
- maxPriorityFeePerGas: partialUserOperation.maxPriorityFeePerGas ||
33
- gasEstimation?.maxPriorityFeePerGas ||
34
- BigInt(0),
35
- signature: partialUserOperation.signature || "0x"
36
- };
37
- if (typeof middleware === "function") {
38
- return middleware({
39
- userOperation,
40
- entryPoint: account.entryPoint
41
- });
42
- }
43
- if (middleware && typeof middleware !== "function" && middleware.gasPrice) {
44
- const gasPrice = await middleware.gasPrice();
45
- userOperation.maxFeePerGas = gasPrice.maxFeePerGas;
46
- userOperation.maxPriorityFeePerGas = gasPrice.maxPriorityFeePerGas;
47
- }
48
- if (!userOperation.maxFeePerGas || !userOperation.maxPriorityFeePerGas) {
49
- const estimateGas = await estimateFeesPerGas(account.client);
50
- userOperation.maxFeePerGas =
51
- userOperation.maxFeePerGas || estimateGas.maxFeePerGas;
52
- userOperation.maxPriorityFeePerGas =
53
- userOperation.maxPriorityFeePerGas ||
54
- estimateGas.maxPriorityFeePerGas;
55
- }
56
- if (userOperation.signature === "0x") {
57
- userOperation.signature = await account.getMultiUserOpDummySignature(userOperation, numOfUserOps);
58
- }
59
- if (middleware &&
60
- typeof middleware !== "function" &&
61
- middleware.sponsorUserOperation) {
62
- const sponsorUserOperationData = (await middleware.sponsorUserOperation({
63
- userOperation,
64
- entryPoint: account.entryPoint
65
- }));
66
- userOperation.callGasLimit = sponsorUserOperationData.callGasLimit;
67
- userOperation.verificationGasLimit =
68
- sponsorUserOperationData.verificationGasLimit;
69
- userOperation.preVerificationGas =
70
- sponsorUserOperationData.preVerificationGas;
71
- userOperation.paymaster = sponsorUserOperationData.paymaster;
72
- userOperation.paymasterVerificationGasLimit =
73
- sponsorUserOperationData.paymasterVerificationGasLimit;
74
- userOperation.paymasterPostOpGasLimit =
75
- sponsorUserOperationData.paymasterPostOpGasLimit;
76
- userOperation.paymasterData = sponsorUserOperationData.paymasterData;
77
- userOperation.maxFeePerGas =
78
- sponsorUserOperationData.maxFeePerGas || userOperation.maxFeePerGas;
79
- userOperation.maxPriorityFeePerGas =
80
- sponsorUserOperationData.maxPriorityFeePerGas ||
81
- userOperation.maxPriorityFeePerGas;
82
- return userOperation;
83
- }
84
- if (!userOperation.callGasLimit ||
85
- !userOperation.verificationGasLimit ||
86
- !userOperation.preVerificationGas) {
87
- const gasParameters = await getAction(client, (estimateUserOperationGas), "estimateUserOperationGas")({
88
- userOperation,
89
- entryPoint: account.entryPoint
90
- },
91
- // @ts-ignore getAction takes only two params but when compiled this will work
92
- stateOverrides);
93
- userOperation.callGasLimit |= gasParameters.callGasLimit;
94
- userOperation.verificationGasLimit =
95
- userOperation.verificationGasLimit ||
96
- gasParameters.verificationGasLimit;
97
- userOperation.preVerificationGas =
98
- userOperation.preVerificationGas || gasParameters.preVerificationGas;
99
- userOperation.paymasterPostOpGasLimit =
100
- userOperation.paymasterPostOpGasLimit ||
101
- gasParameters.paymasterPostOpGasLimit;
102
- userOperation.paymasterPostOpGasLimit =
103
- userOperation.paymasterPostOpGasLimit ||
104
- gasParameters.paymasterPostOpGasLimit;
105
- }
106
- return userOperation;
107
- }
108
- //# sourceMappingURL=prepareMultiUserOpRequest.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prepareMultiUserOpRequest.js","sourceRoot":"","sources":["../../../actions/account-client/prepareMultiUserOpRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,4BAA4B,EAE5B,wBAAwB,EACxB,YAAY,EACf,MAAM,gBAAgB,CAAA;AAqBvB,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAEjD,OAAO,EAAmC,SAAS,EAAE,MAAM,YAAY,CAAA;AA8CvE,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAQ3C,MAAiD,EACjD,IAEC,EACD,YAAoB,EACpB,cAA+B;IAE/B,MAAM,EACF,OAAO,EAAE,QAAQ,GAAG,MAAM,CAAC,OAAO,EAClC,aAAa,EAAE,oBAAoB,EACnC,UAAU,EACb,GAAG,IAAI,CAAA;IAER,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,4BAA4B,EAAE,CAAA;IAEvD,MAAM,OAAO,GAAG,YAAY,CACxB,QAAQ,CACkC,CAAA;IAE9C,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,CAAC,GAChE,MAAM,OAAO,CAAC,GAAG,CAAC;QACd,oBAAoB,CAAC,MAAM,IAAI,OAAO,CAAC,OAAO;QAC9C,oBAAoB,CAAC,KAAK,IAAI,OAAO,CAAC,QAAQ,EAAE;QAChD,oBAAoB,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE;QACpD,oBAAoB,CAAC,WAAW,IAAI,OAAO,CAAC,cAAc,EAAE;QAC5D,oBAAoB,CAAC,QAAQ;QAC7B,CAAC,oBAAoB,CAAC,YAAY;YAClC,CAAC,oBAAoB,CAAC,oBAAoB;YACtC,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC;YACpC,CAAC,CAAC,SAAS;KAClB,CAAC,CAAA;IAEN,MAAM,aAAa,GAA0B;QACzC,MAAM;QACN,KAAK;QACL,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,WAAW;QACxB,QAAQ;QACR,YAAY,EAAE,oBAAoB,CAAC,YAAY,IAAI,MAAM,CAAC,CAAC,CAAC;QAC5D,oBAAoB,EAChB,oBAAoB,CAAC,oBAAoB,IAAI,MAAM,CAAC,CAAC,CAAC;QAC1D,kBAAkB,EACd,oBAAoB,CAAC,kBAAkB,IAAI,MAAM,CAAC,CAAC,CAAC;QACxD,YAAY,EACR,oBAAoB,CAAC,YAAY;YACjC,aAAa,EAAE,YAAY;YAC3B,MAAM,CAAC,CAAC,CAAC;QACb,oBAAoB,EAChB,oBAAoB,CAAC,oBAAoB;YACzC,aAAa,EAAE,oBAAoB;YACnC,MAAM,CAAC,CAAC,CAAC;QACb,SAAS,EAAE,oBAAoB,CAAC,SAAS,IAAI,IAAI;KACpD,CAAA;IAED,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE,CAAC;QACnC,OAAO,UAAU,CAAC;YACd,aAAa;YACb,UAAU,EAAE,OAAO,CAAC,UAAU;SAIjC,CAA+D,CAAA;IACpE,CAAC;IAED,IAAI,UAAU,IAAI,OAAO,UAAU,KAAK,UAAU,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;QACxE,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,CAAA;QAC5C,aAAa,CAAC,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAA;QAClD,aAAa,CAAC,oBAAoB,GAAG,QAAQ,CAAC,oBAAoB,CAAA;IACtE,CAAC;IAED,IAAI,CAAC,aAAa,CAAC,YAAY,IAAI,CAAC,aAAa,CAAC,oBAAoB,EAAE,CAAC;QACrE,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAC5D,aAAa,CAAC,YAAY;YACtB,aAAa,CAAC,YAAY,IAAI,WAAW,CAAC,YAAY,CAAA;QAC1D,aAAa,CAAC,oBAAoB;YAC9B,aAAa,CAAC,oBAAoB;gBAClC,WAAW,CAAC,oBAAoB,CAAA;IACxC,CAAC;IAED,IAAI,aAAa,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;QACnC,aAAa,CAAC,SAAS,GAAG,MAAM,OAAO,CAAC,4BAA4B,CAChE,aAAa,EACb,YAAY,CACf,CAAA;IACL,CAAC;IAED,IACI,UAAU;QACV,OAAO,UAAU,KAAK,UAAU;QAChC,UAAU,CAAC,oBAAoB,EACjC,CAAC;QACC,MAAM,wBAAwB,GAAG,CAAC,MAAM,UAAU,CAAC,oBAAoB,CACnE;YACI,aAAa;YACb,UAAU,EAAE,OAAO,CAAC,UAAU;SAIjC,CACJ,CAAgE,CAAA;QAEjE,aAAa,CAAC,YAAY,GAAG,wBAAwB,CAAC,YAAY,CAAA;QAClE,aAAa,CAAC,oBAAoB;YAC9B,wBAAwB,CAAC,oBAAoB,CAAA;QACjD,aAAa,CAAC,kBAAkB;YAC5B,wBAAwB,CAAC,kBAAkB,CAAA;QAC/C,aAAa,CAAC,SAAS,GAAG,wBAAwB,CAAC,SAAS,CAAA;QAC5D,aAAa,CAAC,6BAA6B;YACvC,wBAAwB,CAAC,6BAA6B,CAAA;QAC1D,aAAa,CAAC,uBAAuB;YACjC,wBAAwB,CAAC,uBAAuB,CAAA;QACpD,aAAa,CAAC,aAAa,GAAG,wBAAwB,CAAC,aAAa,CAAA;QACpE,aAAa,CAAC,YAAY;YACtB,wBAAwB,CAAC,YAAY,IAAI,aAAa,CAAC,YAAY,CAAA;QACvE,aAAa,CAAC,oBAAoB;YAC9B,wBAAwB,CAAC,oBAAoB;gBAC7C,aAAa,CAAC,oBAAoB,CAAA;QAEtC,OAAO,aAAkE,CAAA;IAC7E,CAAC;IAED,IACI,CAAC,aAAa,CAAC,YAAY;QAC3B,CAAC,aAAa,CAAC,oBAAoB;QACnC,CAAC,aAAa,CAAC,kBAAkB,EACnC,CAAC;QACC,MAAM,aAAa,GAAG,MAAM,SAAS,CACjC,MAAM,EACN,CAAA,wBAAqD,CAAA,EACrD,0BAA0B,CAC7B,CACG;YACI,aAAa;YACb,UAAU,EAAE,OAAO,CAAC,UAAU;SACjC;QACD,8EAA8E;QAC9E,cAAc,CACjB,CAAA;QAED,aAAa,CAAC,YAAY,IAAI,aAAa,CAAC,YAAY,CAAA;QACxD,aAAa,CAAC,oBAAoB;YAC9B,aAAa,CAAC,oBAAoB;gBAClC,aAAa,CAAC,oBAAoB,CAAA;QACtC,aAAa,CAAC,kBAAkB;YAC5B,aAAa,CAAC,kBAAkB,IAAI,aAAa,CAAC,kBAAkB,CAAA;QAExE,aAAa,CAAC,uBAAuB;YACjC,aAAa,CAAC,uBAAuB;gBACrC,aAAa,CAAC,uBAAuB,CAAA;QACzC,aAAa,CAAC,uBAAuB;YACjC,aAAa,CAAC,uBAAuB;gBACrC,aAAa,CAAC,uBAAuB,CAAA;IAC7C,CAAC;IAED,OAAO,aAAkE,CAAA;AAC7E,CAAC"}
@@ -1,14 +0,0 @@
1
- import { deepHexlify } from "permissionless";
2
- export async function sendSignedUserOperation(client, args) {
3
- const { userOperation, entryPoint } = args;
4
- // send user operation directly without signing
5
- const userOperationHash = await client.request({
6
- method: "eth_sendUserOperation",
7
- params: [
8
- deepHexlify(userOperation),
9
- entryPoint
10
- ]
11
- });
12
- return userOperationHash;
13
- }
14
- //# sourceMappingURL=sendSignedUserOperation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sendSignedUserOperation.js","sourceRoot":"","sources":["../../../actions/account-client/sendSignedUserOperation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoC,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAU9E,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAQzC,MAA0E,EAC1E,IAA6C;IAE7C,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,IAAI,CAAA;IAE1C,+CAA+C;IAC/C,MAAM,iBAAiB,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;QAC3C,MAAM,EAAE,uBAAuB;QAC/B,MAAM,EAAE;YACJ,WAAW,CAAC,aAAa,CAExB;YACD,UAAU;SACb;KACJ,CAAC,CAAA;IAEF,OAAO,iBAAiB,CAAA;AAC5B,CAAC"}
@@ -1,31 +0,0 @@
1
- import { type UserOperation } from "permissionless";
2
- import type { PrepareUserOperationRequestParameters, PrepareUserOperationRequestReturnType } from "permissionless/actions/smartAccount";
3
- import type { StateOverrides } from "permissionless/types/bundler";
4
- import type { ENTRYPOINT_ADDRESS_V07_TYPE, EntryPoint, GetEntryPointVersion } from "permissionless/types/entrypoint";
5
- import type { Abi, Address, Chain, Client, Hex, LocalAccount, Transport } from "viem";
6
- import type { Prettify } from "viem/chains";
7
- import { type EncodeDeployDataParameters } from "viem/utils";
8
- import type { KernelSmartAccount } from "../../accounts";
9
- export type SmartAccount<entryPoint extends EntryPoint, TSource extends string = string, transport extends Transport = Transport, chain extends Chain | undefined = Chain | undefined, TAbi extends Abi | readonly unknown[] = Abi> = LocalAccount<TSource> & {
10
- client: Client<transport, chain>;
11
- entryPoint: entryPoint;
12
- getNonce: () => Promise<bigint>;
13
- getInitCode: () => Promise<Hex>;
14
- getFactory: () => Promise<Address | undefined>;
15
- getFactoryData: () => Promise<Hex | undefined>;
16
- encodeCallData: (args: {
17
- to: Address;
18
- value: bigint;
19
- data: Hex;
20
- } | {
21
- to: Address;
22
- value: bigint;
23
- data: Hex;
24
- }[]) => Promise<Hex>;
25
- getDummySignature(userOperation: UserOperation<GetEntryPointVersion<entryPoint>>): Promise<Hex>;
26
- getMultiUserOpDummySignature(userOperation: UserOperation<GetEntryPointVersion<entryPoint>>, numOfUserOps: number): Promise<Hex>;
27
- encodeDeployCallData: ({ abi, args, bytecode }: EncodeDeployDataParameters<TAbi>) => Promise<Hex>;
28
- signUserOperation: (userOperation: UserOperation<GetEntryPointVersion<entryPoint>>) => Promise<Hex>;
29
- };
30
- export declare function prepareMultiUserOpRequest<entryPoint extends EntryPoint = ENTRYPOINT_ADDRESS_V07_TYPE, TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TSmartAccount extends KernelSmartAccount<entryPoint> | undefined = KernelSmartAccount<entryPoint> | undefined>(client: Client<TTransport, TChain, TSmartAccount>, args: Prettify<PrepareUserOperationRequestParameters<entryPoint, TSmartAccount>>, numOfUserOps: number, stateOverrides?: StateOverrides): Promise<Prettify<PrepareUserOperationRequestReturnType<entryPoint>>>;
31
- //# sourceMappingURL=prepareMultiUserOpRequest.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prepareMultiUserOpRequest.d.ts","sourceRoot":"","sources":["../../../actions/account-client/prepareMultiUserOpRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,KAAK,aAAa,EAGrB,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAK,EACR,qCAAqC,EACrC,qCAAqC,EAExC,MAAM,qCAAqC,CAAA;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAClE,OAAO,KAAK,EACR,2BAA2B,EAC3B,UAAU,EACV,oBAAoB,EACvB,MAAM,iCAAiC,CAAA;AACxC,OAAO,KAAK,EACR,GAAG,EACH,OAAO,EACP,KAAK,EACL,MAAM,EACN,GAAG,EACH,YAAY,EACZ,SAAS,EACZ,MAAM,MAAM,CAAA;AAEb,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,KAAK,0BAA0B,EAAa,MAAM,YAAY,CAAA;AACvE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAExD,MAAM,MAAM,YAAY,CACpB,UAAU,SAAS,UAAU,EAC7B,OAAO,SAAS,MAAM,GAAG,MAAM,EAC/B,SAAS,SAAS,SAAS,GAAG,SAAS,EACvC,KAAK,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,EACnD,IAAI,SAAS,GAAG,GAAG,SAAS,OAAO,EAAE,GAAG,GAAG,IAC3C,YAAY,CAAC,OAAO,CAAC,GAAG;IACxB,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;IAChC,UAAU,EAAE,UAAU,CAAA;IACtB,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;IAC/B,WAAW,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAA;IAC/B,UAAU,EAAE,MAAM,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAA;IAC9C,cAAc,EAAE,MAAM,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC,CAAA;IAC9C,cAAc,EAAE,CACZ,IAAI,EACE;QACI,EAAE,EAAE,OAAO,CAAA;QACX,KAAK,EAAE,MAAM,CAAA;QACb,IAAI,EAAE,GAAG,CAAA;KACZ,GACD;QACI,EAAE,EAAE,OAAO,CAAA;QACX,KAAK,EAAE,MAAM,CAAA;QACb,IAAI,EAAE,GAAG,CAAA;KACZ,EAAE,KACR,OAAO,CAAC,GAAG,CAAC,CAAA;IACjB,iBAAiB,CACb,aAAa,EAAE,aAAa,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC,GAC/D,OAAO,CAAC,GAAG,CAAC,CAAA;IACf,4BAA4B,CACxB,aAAa,EAAE,aAAa,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC,EAC9D,YAAY,EAAE,MAAM,GACrB,OAAO,CAAC,GAAG,CAAC,CAAA;IACf,oBAAoB,EAAE,CAAC,EACnB,GAAG,EACH,IAAI,EACJ,QAAQ,EACX,EAAE,0BAA0B,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;IACpD,iBAAiB,EAAE,CACf,aAAa,EAAE,aAAa,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC,KAC7D,OAAO,CAAC,GAAG,CAAC,CAAA;CACpB,CAAA;AAED,wBAAsB,yBAAyB,CAC3C,UAAU,SAAS,UAAU,GAAG,2BAA2B,EAC3D,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,MAAM,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,EACpD,aAAa,SAAS,kBAAkB,CAAC,UAAU,CAAC,GAAG,SAAS,GAC1D,kBAAkB,CAAC,UAAU,CAAC,GAC9B,SAAS,EAEf,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,EACjD,IAAI,EAAE,QAAQ,CACV,qCAAqC,CAAC,UAAU,EAAE,aAAa,CAAC,CACnE,EACD,YAAY,EAAE,MAAM,EACpB,cAAc,CAAC,EAAE,cAAc,GAChC,OAAO,CAAC,QAAQ,CAAC,qCAAqC,CAAC,UAAU,CAAC,CAAC,CAAC,CAqJtE"}
@@ -1,7 +0,0 @@
1
- import { type SendUserOperationParameters } from "permissionless";
2
- import type { SmartAccount } from "permissionless/accounts";
3
- import type { BundlerRpcSchema } from "permissionless/types/bundler";
4
- import type { EntryPoint } from "permissionless/types/entrypoint";
5
- import type { Chain, Client, Hash, Transport } from "viem";
6
- export declare function sendSignedUserOperation<entryPoint extends EntryPoint, TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TAccount extends SmartAccount<entryPoint> | undefined = SmartAccount<entryPoint> | undefined>(client: Client<TTransport, TChain, TAccount, BundlerRpcSchema<entryPoint>>, args: SendUserOperationParameters<entryPoint>): Promise<Hash>;
7
- //# sourceMappingURL=sendSignedUserOperation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sendSignedUserOperation.d.ts","sourceRoot":"","sources":["../../../actions/account-client/sendSignedUserOperation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,2BAA2B,EAAe,MAAM,gBAAgB,CAAA;AAC9E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,KAAK,EACR,UAAU,EAEb,MAAM,iCAAiC,CAAA;AAExC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AAE1D,wBAAsB,uBAAuB,CACzC,UAAU,SAAS,UAAU,EAC7B,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,MAAM,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,EACpD,QAAQ,SAAS,YAAY,CAAC,UAAU,CAAC,GAAG,SAAS,GAC/C,YAAY,CAAC,UAAU,CAAC,GACxB,SAAS,EAEf,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAC,EAC1E,IAAI,EAAE,2BAA2B,CAAC,UAAU,CAAC,GAC9C,OAAO,CAAC,IAAI,CAAC,CAef"}
@@ -1,238 +0,0 @@
1
- import {
2
- AccountOrClientNotFoundError,
3
- type UserOperation,
4
- estimateUserOperationGas,
5
- parseAccount
6
- } from "permissionless"
7
- import type {
8
- PrepareUserOperationRequestParameters,
9
- PrepareUserOperationRequestReturnType,
10
- SponsorUserOperationReturnType
11
- } from "permissionless/actions/smartAccount"
12
- import type { StateOverrides } from "permissionless/types/bundler"
13
- import type {
14
- ENTRYPOINT_ADDRESS_V07_TYPE,
15
- EntryPoint,
16
- GetEntryPointVersion
17
- } from "permissionless/types/entrypoint"
18
- import type {
19
- Abi,
20
- Address,
21
- Chain,
22
- Client,
23
- Hex,
24
- LocalAccount,
25
- Transport
26
- } from "viem"
27
- import { estimateFeesPerGas } from "viem/actions"
28
- import type { Prettify } from "viem/chains"
29
- import { type EncodeDeployDataParameters, getAction } from "viem/utils"
30
- import type { KernelSmartAccount } from "../../accounts"
31
-
32
- export type SmartAccount<
33
- entryPoint extends EntryPoint,
34
- TSource extends string = string,
35
- transport extends Transport = Transport,
36
- chain extends Chain | undefined = Chain | undefined,
37
- TAbi extends Abi | readonly unknown[] = Abi
38
- > = LocalAccount<TSource> & {
39
- client: Client<transport, chain>
40
- entryPoint: entryPoint
41
- getNonce: () => Promise<bigint>
42
- getInitCode: () => Promise<Hex>
43
- getFactory: () => Promise<Address | undefined>
44
- getFactoryData: () => Promise<Hex | undefined>
45
- encodeCallData: (
46
- args:
47
- | {
48
- to: Address
49
- value: bigint
50
- data: Hex
51
- }
52
- | {
53
- to: Address
54
- value: bigint
55
- data: Hex
56
- }[]
57
- ) => Promise<Hex>
58
- getDummySignature(
59
- userOperation: UserOperation<GetEntryPointVersion<entryPoint>>
60
- ): Promise<Hex>
61
- getMultiUserOpDummySignature(
62
- userOperation: UserOperation<GetEntryPointVersion<entryPoint>>,
63
- numOfUserOps: number
64
- ): Promise<Hex>
65
- encodeDeployCallData: ({
66
- abi,
67
- args,
68
- bytecode
69
- }: EncodeDeployDataParameters<TAbi>) => Promise<Hex>
70
- signUserOperation: (
71
- userOperation: UserOperation<GetEntryPointVersion<entryPoint>>
72
- ) => Promise<Hex>
73
- }
74
-
75
- export async function prepareMultiUserOpRequest<
76
- entryPoint extends EntryPoint = ENTRYPOINT_ADDRESS_V07_TYPE,
77
- TTransport extends Transport = Transport,
78
- TChain extends Chain | undefined = Chain | undefined,
79
- TSmartAccount extends KernelSmartAccount<entryPoint> | undefined =
80
- | KernelSmartAccount<entryPoint>
81
- | undefined
82
- >(
83
- client: Client<TTransport, TChain, TSmartAccount>,
84
- args: Prettify<
85
- PrepareUserOperationRequestParameters<entryPoint, TSmartAccount>
86
- >,
87
- numOfUserOps: number,
88
- stateOverrides?: StateOverrides
89
- ): Promise<Prettify<PrepareUserOperationRequestReturnType<entryPoint>>> {
90
- const {
91
- account: account_ = client.account,
92
- userOperation: partialUserOperation,
93
- middleware
94
- } = args
95
-
96
- if (!account_) throw new AccountOrClientNotFoundError()
97
-
98
- const account = parseAccount(
99
- account_
100
- ) as SmartAccount<ENTRYPOINT_ADDRESS_V07_TYPE>
101
-
102
- const [sender, nonce, factory, factoryData, callData, gasEstimation] =
103
- await Promise.all([
104
- partialUserOperation.sender || account.address,
105
- partialUserOperation.nonce || account.getNonce(),
106
- partialUserOperation.factory || account.getFactory(),
107
- partialUserOperation.factoryData || account.getFactoryData(),
108
- partialUserOperation.callData,
109
- !partialUserOperation.maxFeePerGas ||
110
- !partialUserOperation.maxPriorityFeePerGas
111
- ? estimateFeesPerGas(account.client)
112
- : undefined
113
- ])
114
-
115
- const userOperation: UserOperation<"v0.7"> = {
116
- sender,
117
- nonce,
118
- factory: factory,
119
- factoryData: factoryData,
120
- callData,
121
- callGasLimit: partialUserOperation.callGasLimit || BigInt(0),
122
- verificationGasLimit:
123
- partialUserOperation.verificationGasLimit || BigInt(0),
124
- preVerificationGas:
125
- partialUserOperation.preVerificationGas || BigInt(0),
126
- maxFeePerGas:
127
- partialUserOperation.maxFeePerGas ||
128
- gasEstimation?.maxFeePerGas ||
129
- BigInt(0),
130
- maxPriorityFeePerGas:
131
- partialUserOperation.maxPriorityFeePerGas ||
132
- gasEstimation?.maxPriorityFeePerGas ||
133
- BigInt(0),
134
- signature: partialUserOperation.signature || "0x"
135
- }
136
-
137
- if (typeof middleware === "function") {
138
- return middleware({
139
- userOperation,
140
- entryPoint: account.entryPoint
141
- } as {
142
- userOperation: UserOperation<GetEntryPointVersion<entryPoint>>
143
- entryPoint: entryPoint
144
- }) as Promise<PrepareUserOperationRequestReturnType<entryPoint>>
145
- }
146
-
147
- if (middleware && typeof middleware !== "function" && middleware.gasPrice) {
148
- const gasPrice = await middleware.gasPrice()
149
- userOperation.maxFeePerGas = gasPrice.maxFeePerGas
150
- userOperation.maxPriorityFeePerGas = gasPrice.maxPriorityFeePerGas
151
- }
152
-
153
- if (!userOperation.maxFeePerGas || !userOperation.maxPriorityFeePerGas) {
154
- const estimateGas = await estimateFeesPerGas(account.client)
155
- userOperation.maxFeePerGas =
156
- userOperation.maxFeePerGas || estimateGas.maxFeePerGas
157
- userOperation.maxPriorityFeePerGas =
158
- userOperation.maxPriorityFeePerGas ||
159
- estimateGas.maxPriorityFeePerGas
160
- }
161
-
162
- if (userOperation.signature === "0x") {
163
- userOperation.signature = await account.getMultiUserOpDummySignature(
164
- userOperation,
165
- numOfUserOps
166
- )
167
- }
168
-
169
- if (
170
- middleware &&
171
- typeof middleware !== "function" &&
172
- middleware.sponsorUserOperation
173
- ) {
174
- const sponsorUserOperationData = (await middleware.sponsorUserOperation(
175
- {
176
- userOperation,
177
- entryPoint: account.entryPoint
178
- } as {
179
- userOperation: UserOperation<GetEntryPointVersion<entryPoint>>
180
- entryPoint: entryPoint
181
- }
182
- )) as SponsorUserOperationReturnType<ENTRYPOINT_ADDRESS_V07_TYPE>
183
-
184
- userOperation.callGasLimit = sponsorUserOperationData.callGasLimit
185
- userOperation.verificationGasLimit =
186
- sponsorUserOperationData.verificationGasLimit
187
- userOperation.preVerificationGas =
188
- sponsorUserOperationData.preVerificationGas
189
- userOperation.paymaster = sponsorUserOperationData.paymaster
190
- userOperation.paymasterVerificationGasLimit =
191
- sponsorUserOperationData.paymasterVerificationGasLimit
192
- userOperation.paymasterPostOpGasLimit =
193
- sponsorUserOperationData.paymasterPostOpGasLimit
194
- userOperation.paymasterData = sponsorUserOperationData.paymasterData
195
- userOperation.maxFeePerGas =
196
- sponsorUserOperationData.maxFeePerGas || userOperation.maxFeePerGas
197
- userOperation.maxPriorityFeePerGas =
198
- sponsorUserOperationData.maxPriorityFeePerGas ||
199
- userOperation.maxPriorityFeePerGas
200
-
201
- return userOperation as PrepareUserOperationRequestReturnType<entryPoint>
202
- }
203
-
204
- if (
205
- !userOperation.callGasLimit ||
206
- !userOperation.verificationGasLimit ||
207
- !userOperation.preVerificationGas
208
- ) {
209
- const gasParameters = await getAction(
210
- client,
211
- estimateUserOperationGas<ENTRYPOINT_ADDRESS_V07_TYPE>,
212
- "estimateUserOperationGas"
213
- )(
214
- {
215
- userOperation,
216
- entryPoint: account.entryPoint
217
- },
218
- // @ts-ignore getAction takes only two params but when compiled this will work
219
- stateOverrides
220
- )
221
-
222
- userOperation.callGasLimit |= gasParameters.callGasLimit
223
- userOperation.verificationGasLimit =
224
- userOperation.verificationGasLimit ||
225
- gasParameters.verificationGasLimit
226
- userOperation.preVerificationGas =
227
- userOperation.preVerificationGas || gasParameters.preVerificationGas
228
-
229
- userOperation.paymasterPostOpGasLimit =
230
- userOperation.paymasterPostOpGasLimit ||
231
- gasParameters.paymasterPostOpGasLimit
232
- userOperation.paymasterPostOpGasLimit =
233
- userOperation.paymasterPostOpGasLimit ||
234
- gasParameters.paymasterPostOpGasLimit
235
- }
236
-
237
- return userOperation as PrepareUserOperationRequestReturnType<entryPoint>
238
- }
@@ -1,36 +0,0 @@
1
- import { type SendUserOperationParameters, deepHexlify } from "permissionless"
2
- import type { SmartAccount } from "permissionless/accounts"
3
- import type { BundlerRpcSchema } from "permissionless/types/bundler"
4
- import type {
5
- EntryPoint,
6
- GetEntryPointVersion
7
- } from "permissionless/types/entrypoint"
8
- import type { UserOperationWithBigIntAsHex } from "permissionless/types/userOperation"
9
- import type { Chain, Client, Hash, Transport } from "viem"
10
-
11
- export async function sendSignedUserOperation<
12
- entryPoint extends EntryPoint,
13
- TTransport extends Transport = Transport,
14
- TChain extends Chain | undefined = Chain | undefined,
15
- TAccount extends SmartAccount<entryPoint> | undefined =
16
- | SmartAccount<entryPoint>
17
- | undefined
18
- >(
19
- client: Client<TTransport, TChain, TAccount, BundlerRpcSchema<entryPoint>>,
20
- args: SendUserOperationParameters<entryPoint>
21
- ): Promise<Hash> {
22
- const { userOperation, entryPoint } = args
23
-
24
- // send user operation directly without signing
25
- const userOperationHash = await client.request({
26
- method: "eth_sendUserOperation",
27
- params: [
28
- deepHexlify(userOperation) as UserOperationWithBigIntAsHex<
29
- GetEntryPointVersion<entryPoint>
30
- >,
31
- entryPoint
32
- ]
33
- })
34
-
35
- return userOperationHash
36
- }