@account-kit/infra 4.0.0-beta.0 → 4.0.0-beta.10

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 (102) hide show
  1. package/dist/esm/alchemyTransport.d.ts +69 -0
  2. package/dist/esm/alchemyTransport.js +139 -0
  3. package/dist/esm/alchemyTransport.js.map +1 -0
  4. package/dist/esm/chains.d.ts +1 -0
  5. package/dist/esm/chains.js +17 -0
  6. package/dist/esm/chains.js.map +1 -1
  7. package/dist/esm/client/decorators/alchemyEnhancedApis.d.ts +2 -2
  8. package/dist/esm/client/decorators/alchemyEnhancedApis.js +3 -7
  9. package/dist/esm/client/decorators/alchemyEnhancedApis.js.map +1 -1
  10. package/dist/esm/client/decorators/smartAccount.d.ts +7 -4
  11. package/dist/esm/client/decorators/smartAccount.js +33 -0
  12. package/dist/esm/client/decorators/smartAccount.js.map +1 -1
  13. package/dist/esm/client/isAlchemySmartAccountClient.d.ts +1 -1
  14. package/dist/esm/client/isAlchemySmartAccountClient.js +2 -6
  15. package/dist/esm/client/isAlchemySmartAccountClient.js.map +1 -1
  16. package/dist/esm/client/rpcClient.d.ts +9 -10
  17. package/dist/esm/client/rpcClient.js +9 -33
  18. package/dist/esm/client/rpcClient.js.map +1 -1
  19. package/dist/esm/client/smartAccountClient.d.ts +12 -9
  20. package/dist/esm/client/smartAccountClient.js +34 -20
  21. package/dist/esm/client/smartAccountClient.js.map +1 -1
  22. package/dist/esm/client/types.d.ts +8 -7
  23. package/dist/esm/client/types.js.map +1 -1
  24. package/dist/esm/index.d.ts +3 -4
  25. package/dist/esm/index.js +2 -3
  26. package/dist/esm/index.js.map +1 -1
  27. package/dist/esm/metrics.d.ts +12 -0
  28. package/dist/esm/metrics.js +7 -0
  29. package/dist/esm/metrics.js.map +1 -0
  30. package/dist/esm/middleware/feeEstimator.d.ts +10 -6
  31. package/dist/esm/middleware/feeEstimator.js +11 -6
  32. package/dist/esm/middleware/feeEstimator.js.map +1 -1
  33. package/dist/esm/middleware/gasManager.d.ts +5 -6
  34. package/dist/esm/middleware/gasManager.js +5 -6
  35. package/dist/esm/middleware/gasManager.js.map +1 -1
  36. package/dist/esm/middleware/userOperationSimulator.d.ts +11 -7
  37. package/dist/esm/middleware/userOperationSimulator.js +12 -8
  38. package/dist/esm/middleware/userOperationSimulator.js.map +1 -1
  39. package/dist/esm/schema.d.ts +0 -391
  40. package/dist/esm/schema.js +1 -5
  41. package/dist/esm/schema.js.map +1 -1
  42. package/dist/esm/version.d.ts +1 -1
  43. package/dist/esm/version.js +1 -1
  44. package/dist/esm/version.js.map +1 -1
  45. package/dist/types/alchemyTransport.d.ts +70 -0
  46. package/dist/types/alchemyTransport.d.ts.map +1 -0
  47. package/dist/types/chains.d.ts +1 -0
  48. package/dist/types/chains.d.ts.map +1 -1
  49. package/dist/types/client/decorators/alchemyEnhancedApis.d.ts +2 -2
  50. package/dist/types/client/decorators/alchemyEnhancedApis.d.ts.map +1 -1
  51. package/dist/types/client/decorators/smartAccount.d.ts +7 -4
  52. package/dist/types/client/decorators/smartAccount.d.ts.map +1 -1
  53. package/dist/types/client/isAlchemySmartAccountClient.d.ts +1 -1
  54. package/dist/types/client/isAlchemySmartAccountClient.d.ts.map +1 -1
  55. package/dist/types/client/rpcClient.d.ts +9 -10
  56. package/dist/types/client/rpcClient.d.ts.map +1 -1
  57. package/dist/types/client/smartAccountClient.d.ts +12 -9
  58. package/dist/types/client/smartAccountClient.d.ts.map +1 -1
  59. package/dist/types/client/types.d.ts +8 -7
  60. package/dist/types/client/types.d.ts.map +1 -1
  61. package/dist/types/index.d.ts +3 -4
  62. package/dist/types/index.d.ts.map +1 -1
  63. package/dist/types/metrics.d.ts +13 -0
  64. package/dist/types/metrics.d.ts.map +1 -0
  65. package/dist/types/middleware/feeEstimator.d.ts +10 -6
  66. package/dist/types/middleware/feeEstimator.d.ts.map +1 -1
  67. package/dist/types/middleware/gasManager.d.ts +5 -6
  68. package/dist/types/middleware/gasManager.d.ts.map +1 -1
  69. package/dist/types/middleware/userOperationSimulator.d.ts +11 -7
  70. package/dist/types/middleware/userOperationSimulator.d.ts.map +1 -1
  71. package/dist/types/schema.d.ts +0 -391
  72. package/dist/types/schema.d.ts.map +1 -1
  73. package/dist/types/version.d.ts +1 -1
  74. package/dist/types/version.d.ts.map +1 -1
  75. package/package.json +6 -10
  76. package/src/alchemyTransport.ts +214 -0
  77. package/src/chains.ts +18 -0
  78. package/src/client/decorators/alchemyEnhancedApis.ts +9 -16
  79. package/src/client/decorators/smartAccount.ts +77 -7
  80. package/src/client/isAlchemySmartAccountClient.ts +4 -9
  81. package/src/client/rpcClient.ts +14 -47
  82. package/src/client/smartAccountClient.ts +64 -57
  83. package/src/client/types.ts +10 -7
  84. package/src/index.ts +8 -8
  85. package/src/metrics.ts +19 -0
  86. package/src/middleware/feeEstimator.ts +15 -10
  87. package/src/middleware/gasManager.ts +5 -6
  88. package/src/middleware/userOperationSimulator.ts +13 -10
  89. package/src/schema.ts +1 -14
  90. package/src/version.ts +1 -1
  91. package/dist/esm/client/internal/smartAccountClientFromRpc.d.ts +0 -18
  92. package/dist/esm/client/internal/smartAccountClientFromRpc.js +0 -56
  93. package/dist/esm/client/internal/smartAccountClientFromRpc.js.map +0 -1
  94. package/dist/esm/type.d.ts +0 -3
  95. package/dist/esm/type.js +0 -2
  96. package/dist/esm/type.js.map +0 -1
  97. package/dist/types/client/internal/smartAccountClientFromRpc.d.ts +0 -19
  98. package/dist/types/client/internal/smartAccountClientFromRpc.d.ts.map +0 -1
  99. package/dist/types/type.d.ts +0 -4
  100. package/dist/types/type.d.ts.map +0 -1
  101. package/src/client/internal/smartAccountClientFromRpc.ts +0 -125
  102. package/src/type.ts +0 -4
@@ -2,396 +2,5 @@ import { Alchemy } from "alchemy-sdk";
2
2
  import type { Chain } from "viem";
3
3
  import z from "zod";
4
4
  export declare const AlchemyChainSchema: z.ZodType<Chain, z.ZodTypeDef, Chain>;
5
- export declare const AlchemyProviderConfigSchema: z.ZodIntersection<z.ZodUnion<[z.ZodObject<{
6
- rpcUrl: z.ZodOptional<z.ZodNever>;
7
- apiKey: z.ZodString;
8
- jwt: z.ZodOptional<z.ZodNever>;
9
- }, "strip", z.ZodTypeAny, {
10
- apiKey: string;
11
- rpcUrl?: undefined;
12
- jwt?: undefined;
13
- }, {
14
- apiKey: string;
15
- rpcUrl?: undefined;
16
- jwt?: undefined;
17
- }>, z.ZodObject<{
18
- rpcUrl: z.ZodOptional<z.ZodNever>;
19
- apiKey: z.ZodOptional<z.ZodNever>;
20
- jwt: z.ZodString;
21
- }, "strip", z.ZodTypeAny, {
22
- jwt: string;
23
- rpcUrl?: undefined;
24
- apiKey?: undefined;
25
- }, {
26
- jwt: string;
27
- rpcUrl?: undefined;
28
- apiKey?: undefined;
29
- }>, z.ZodObject<{
30
- rpcUrl: z.ZodString;
31
- apiKey: z.ZodOptional<z.ZodNever>;
32
- jwt: z.ZodOptional<z.ZodNever>;
33
- }, "strip", z.ZodTypeAny, {
34
- rpcUrl: string;
35
- apiKey?: undefined;
36
- jwt?: undefined;
37
- }, {
38
- rpcUrl: string;
39
- apiKey?: undefined;
40
- jwt?: undefined;
41
- }>, z.ZodObject<{
42
- rpcUrl: z.ZodString;
43
- apiKey: z.ZodOptional<z.ZodNever>;
44
- jwt: z.ZodString;
45
- }, "strip", z.ZodTypeAny, {
46
- rpcUrl: string;
47
- jwt: string;
48
- apiKey?: undefined;
49
- }, {
50
- rpcUrl: string;
51
- jwt: string;
52
- apiKey?: undefined;
53
- }>]>, z.ZodObject<{
54
- chain: z.ZodType<Chain, z.ZodTypeDef, Chain>;
55
- opts: z.ZodDefault<z.ZodOptional<z.ZodObject<{
56
- txMaxRetries: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
57
- txRetryIntervalMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
58
- txRetryMultiplier: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
59
- feeOptions: z.ZodOptional<z.ZodObject<{
60
- callGasLimit: z.ZodOptional<z.ZodOptional<z.ZodObject<{
61
- min: z.ZodOptional<z.ZodOptional<z.ZodUnion<[z.ZodType<`0x${string}`, z.ZodTypeDef, `0x${string}`>, z.ZodNumber, z.ZodBigInt]>>>;
62
- max: z.ZodOptional<z.ZodOptional<z.ZodUnion<[z.ZodType<`0x${string}`, z.ZodTypeDef, `0x${string}`>, z.ZodNumber, z.ZodBigInt]>>>;
63
- multiplier: z.ZodOptional<z.ZodEffects<z.ZodNumber, number, number>>;
64
- }, "strict", z.ZodTypeAny, {
65
- min?: number | bigint | `0x${string}` | undefined;
66
- max?: number | bigint | `0x${string}` | undefined;
67
- multiplier?: number | undefined;
68
- }, {
69
- min?: number | bigint | `0x${string}` | undefined;
70
- max?: number | bigint | `0x${string}` | undefined;
71
- multiplier?: number | undefined;
72
- }>>>;
73
- verificationGasLimit: z.ZodOptional<z.ZodOptional<z.ZodObject<{
74
- min: z.ZodOptional<z.ZodOptional<z.ZodUnion<[z.ZodType<`0x${string}`, z.ZodTypeDef, `0x${string}`>, z.ZodNumber, z.ZodBigInt]>>>;
75
- max: z.ZodOptional<z.ZodOptional<z.ZodUnion<[z.ZodType<`0x${string}`, z.ZodTypeDef, `0x${string}`>, z.ZodNumber, z.ZodBigInt]>>>;
76
- multiplier: z.ZodOptional<z.ZodEffects<z.ZodNumber, number, number>>;
77
- }, "strict", z.ZodTypeAny, {
78
- min?: number | bigint | `0x${string}` | undefined;
79
- max?: number | bigint | `0x${string}` | undefined;
80
- multiplier?: number | undefined;
81
- }, {
82
- min?: number | bigint | `0x${string}` | undefined;
83
- max?: number | bigint | `0x${string}` | undefined;
84
- multiplier?: number | undefined;
85
- }>>>;
86
- preVerificationGas: z.ZodOptional<z.ZodOptional<z.ZodObject<{
87
- min: z.ZodOptional<z.ZodOptional<z.ZodUnion<[z.ZodType<`0x${string}`, z.ZodTypeDef, `0x${string}`>, z.ZodNumber, z.ZodBigInt]>>>;
88
- max: z.ZodOptional<z.ZodOptional<z.ZodUnion<[z.ZodType<`0x${string}`, z.ZodTypeDef, `0x${string}`>, z.ZodNumber, z.ZodBigInt]>>>;
89
- multiplier: z.ZodOptional<z.ZodEffects<z.ZodNumber, number, number>>;
90
- }, "strict", z.ZodTypeAny, {
91
- min?: number | bigint | `0x${string}` | undefined;
92
- max?: number | bigint | `0x${string}` | undefined;
93
- multiplier?: number | undefined;
94
- }, {
95
- min?: number | bigint | `0x${string}` | undefined;
96
- max?: number | bigint | `0x${string}` | undefined;
97
- multiplier?: number | undefined;
98
- }>>>;
99
- maxFeePerGas: z.ZodOptional<z.ZodOptional<z.ZodObject<{
100
- min: z.ZodOptional<z.ZodOptional<z.ZodUnion<[z.ZodType<`0x${string}`, z.ZodTypeDef, `0x${string}`>, z.ZodNumber, z.ZodBigInt]>>>;
101
- max: z.ZodOptional<z.ZodOptional<z.ZodUnion<[z.ZodType<`0x${string}`, z.ZodTypeDef, `0x${string}`>, z.ZodNumber, z.ZodBigInt]>>>;
102
- multiplier: z.ZodOptional<z.ZodEffects<z.ZodNumber, number, number>>;
103
- }, "strict", z.ZodTypeAny, {
104
- min?: number | bigint | `0x${string}` | undefined;
105
- max?: number | bigint | `0x${string}` | undefined;
106
- multiplier?: number | undefined;
107
- }, {
108
- min?: number | bigint | `0x${string}` | undefined;
109
- max?: number | bigint | `0x${string}` | undefined;
110
- multiplier?: number | undefined;
111
- }>>>;
112
- maxPriorityFeePerGas: z.ZodOptional<z.ZodOptional<z.ZodObject<{
113
- min: z.ZodOptional<z.ZodOptional<z.ZodUnion<[z.ZodType<`0x${string}`, z.ZodTypeDef, `0x${string}`>, z.ZodNumber, z.ZodBigInt]>>>;
114
- max: z.ZodOptional<z.ZodOptional<z.ZodUnion<[z.ZodType<`0x${string}`, z.ZodTypeDef, `0x${string}`>, z.ZodNumber, z.ZodBigInt]>>>;
115
- multiplier: z.ZodOptional<z.ZodEffects<z.ZodNumber, number, number>>;
116
- }, "strict", z.ZodTypeAny, {
117
- min?: number | bigint | `0x${string}` | undefined;
118
- max?: number | bigint | `0x${string}` | undefined;
119
- multiplier?: number | undefined;
120
- }, {
121
- min?: number | bigint | `0x${string}` | undefined;
122
- max?: number | bigint | `0x${string}` | undefined;
123
- multiplier?: number | undefined;
124
- }>>>;
125
- paymasterVerificationGasLimit: z.ZodOptional<z.ZodObject<{
126
- min: z.ZodOptional<z.ZodOptional<z.ZodUnion<[z.ZodType<`0x${string}`, z.ZodTypeDef, `0x${string}`>, z.ZodNumber, z.ZodBigInt]>>>;
127
- max: z.ZodOptional<z.ZodOptional<z.ZodUnion<[z.ZodType<`0x${string}`, z.ZodTypeDef, `0x${string}`>, z.ZodNumber, z.ZodBigInt]>>>;
128
- multiplier: z.ZodOptional<z.ZodEffects<z.ZodNumber, number, number>>;
129
- }, "strict", z.ZodTypeAny, {
130
- min?: number | bigint | `0x${string}` | undefined;
131
- max?: number | bigint | `0x${string}` | undefined;
132
- multiplier?: number | undefined;
133
- }, {
134
- min?: number | bigint | `0x${string}` | undefined;
135
- max?: number | bigint | `0x${string}` | undefined;
136
- multiplier?: number | undefined;
137
- }>>;
138
- paymasterPostOpGasLimit: z.ZodOptional<z.ZodObject<{
139
- min: z.ZodOptional<z.ZodOptional<z.ZodUnion<[z.ZodType<`0x${string}`, z.ZodTypeDef, `0x${string}`>, z.ZodNumber, z.ZodBigInt]>>>;
140
- max: z.ZodOptional<z.ZodOptional<z.ZodUnion<[z.ZodType<`0x${string}`, z.ZodTypeDef, `0x${string}`>, z.ZodNumber, z.ZodBigInt]>>>;
141
- multiplier: z.ZodOptional<z.ZodEffects<z.ZodNumber, number, number>>;
142
- }, "strict", z.ZodTypeAny, {
143
- min?: number | bigint | `0x${string}` | undefined;
144
- max?: number | bigint | `0x${string}` | undefined;
145
- multiplier?: number | undefined;
146
- }, {
147
- min?: number | bigint | `0x${string}` | undefined;
148
- max?: number | bigint | `0x${string}` | undefined;
149
- multiplier?: number | undefined;
150
- }>>;
151
- }, "strict", z.ZodTypeAny, {
152
- callGasLimit?: {
153
- min?: number | bigint | `0x${string}` | undefined;
154
- max?: number | bigint | `0x${string}` | undefined;
155
- multiplier?: number | undefined;
156
- } | undefined;
157
- verificationGasLimit?: {
158
- min?: number | bigint | `0x${string}` | undefined;
159
- max?: number | bigint | `0x${string}` | undefined;
160
- multiplier?: number | undefined;
161
- } | undefined;
162
- preVerificationGas?: {
163
- min?: number | bigint | `0x${string}` | undefined;
164
- max?: number | bigint | `0x${string}` | undefined;
165
- multiplier?: number | undefined;
166
- } | undefined;
167
- maxFeePerGas?: {
168
- min?: number | bigint | `0x${string}` | undefined;
169
- max?: number | bigint | `0x${string}` | undefined;
170
- multiplier?: number | undefined;
171
- } | undefined;
172
- maxPriorityFeePerGas?: {
173
- min?: number | bigint | `0x${string}` | undefined;
174
- max?: number | bigint | `0x${string}` | undefined;
175
- multiplier?: number | undefined;
176
- } | undefined;
177
- paymasterVerificationGasLimit?: {
178
- min?: number | bigint | `0x${string}` | undefined;
179
- max?: number | bigint | `0x${string}` | undefined;
180
- multiplier?: number | undefined;
181
- } | undefined;
182
- paymasterPostOpGasLimit?: {
183
- min?: number | bigint | `0x${string}` | undefined;
184
- max?: number | bigint | `0x${string}` | undefined;
185
- multiplier?: number | undefined;
186
- } | undefined;
187
- }, {
188
- callGasLimit?: {
189
- min?: number | bigint | `0x${string}` | undefined;
190
- max?: number | bigint | `0x${string}` | undefined;
191
- multiplier?: number | undefined;
192
- } | undefined;
193
- verificationGasLimit?: {
194
- min?: number | bigint | `0x${string}` | undefined;
195
- max?: number | bigint | `0x${string}` | undefined;
196
- multiplier?: number | undefined;
197
- } | undefined;
198
- preVerificationGas?: {
199
- min?: number | bigint | `0x${string}` | undefined;
200
- max?: number | bigint | `0x${string}` | undefined;
201
- multiplier?: number | undefined;
202
- } | undefined;
203
- maxFeePerGas?: {
204
- min?: number | bigint | `0x${string}` | undefined;
205
- max?: number | bigint | `0x${string}` | undefined;
206
- multiplier?: number | undefined;
207
- } | undefined;
208
- maxPriorityFeePerGas?: {
209
- min?: number | bigint | `0x${string}` | undefined;
210
- max?: number | bigint | `0x${string}` | undefined;
211
- multiplier?: number | undefined;
212
- } | undefined;
213
- paymasterVerificationGasLimit?: {
214
- min?: number | bigint | `0x${string}` | undefined;
215
- max?: number | bigint | `0x${string}` | undefined;
216
- multiplier?: number | undefined;
217
- } | undefined;
218
- paymasterPostOpGasLimit?: {
219
- min?: number | bigint | `0x${string}` | undefined;
220
- max?: number | bigint | `0x${string}` | undefined;
221
- multiplier?: number | undefined;
222
- } | undefined;
223
- }>>;
224
- }, "strict", z.ZodTypeAny, {
225
- txMaxRetries: number;
226
- txRetryIntervalMs: number;
227
- txRetryMultiplier: number;
228
- feeOptions?: {
229
- callGasLimit?: {
230
- min?: number | bigint | `0x${string}` | undefined;
231
- max?: number | bigint | `0x${string}` | undefined;
232
- multiplier?: number | undefined;
233
- } | undefined;
234
- verificationGasLimit?: {
235
- min?: number | bigint | `0x${string}` | undefined;
236
- max?: number | bigint | `0x${string}` | undefined;
237
- multiplier?: number | undefined;
238
- } | undefined;
239
- preVerificationGas?: {
240
- min?: number | bigint | `0x${string}` | undefined;
241
- max?: number | bigint | `0x${string}` | undefined;
242
- multiplier?: number | undefined;
243
- } | undefined;
244
- maxFeePerGas?: {
245
- min?: number | bigint | `0x${string}` | undefined;
246
- max?: number | bigint | `0x${string}` | undefined;
247
- multiplier?: number | undefined;
248
- } | undefined;
249
- maxPriorityFeePerGas?: {
250
- min?: number | bigint | `0x${string}` | undefined;
251
- max?: number | bigint | `0x${string}` | undefined;
252
- multiplier?: number | undefined;
253
- } | undefined;
254
- paymasterVerificationGasLimit?: {
255
- min?: number | bigint | `0x${string}` | undefined;
256
- max?: number | bigint | `0x${string}` | undefined;
257
- multiplier?: number | undefined;
258
- } | undefined;
259
- paymasterPostOpGasLimit?: {
260
- min?: number | bigint | `0x${string}` | undefined;
261
- max?: number | bigint | `0x${string}` | undefined;
262
- multiplier?: number | undefined;
263
- } | undefined;
264
- } | undefined;
265
- }, {
266
- txMaxRetries?: number | undefined;
267
- txRetryIntervalMs?: number | undefined;
268
- txRetryMultiplier?: number | undefined;
269
- feeOptions?: {
270
- callGasLimit?: {
271
- min?: number | bigint | `0x${string}` | undefined;
272
- max?: number | bigint | `0x${string}` | undefined;
273
- multiplier?: number | undefined;
274
- } | undefined;
275
- verificationGasLimit?: {
276
- min?: number | bigint | `0x${string}` | undefined;
277
- max?: number | bigint | `0x${string}` | undefined;
278
- multiplier?: number | undefined;
279
- } | undefined;
280
- preVerificationGas?: {
281
- min?: number | bigint | `0x${string}` | undefined;
282
- max?: number | bigint | `0x${string}` | undefined;
283
- multiplier?: number | undefined;
284
- } | undefined;
285
- maxFeePerGas?: {
286
- min?: number | bigint | `0x${string}` | undefined;
287
- max?: number | bigint | `0x${string}` | undefined;
288
- multiplier?: number | undefined;
289
- } | undefined;
290
- maxPriorityFeePerGas?: {
291
- min?: number | bigint | `0x${string}` | undefined;
292
- max?: number | bigint | `0x${string}` | undefined;
293
- multiplier?: number | undefined;
294
- } | undefined;
295
- paymasterVerificationGasLimit?: {
296
- min?: number | bigint | `0x${string}` | undefined;
297
- max?: number | bigint | `0x${string}` | undefined;
298
- multiplier?: number | undefined;
299
- } | undefined;
300
- paymasterPostOpGasLimit?: {
301
- min?: number | bigint | `0x${string}` | undefined;
302
- max?: number | bigint | `0x${string}` | undefined;
303
- multiplier?: number | undefined;
304
- } | undefined;
305
- } | undefined;
306
- }>>>;
307
- }, "strip", z.ZodTypeAny, {
308
- chain: Chain;
309
- opts: {
310
- txMaxRetries: number;
311
- txRetryIntervalMs: number;
312
- txRetryMultiplier: number;
313
- feeOptions?: {
314
- callGasLimit?: {
315
- min?: number | bigint | `0x${string}` | undefined;
316
- max?: number | bigint | `0x${string}` | undefined;
317
- multiplier?: number | undefined;
318
- } | undefined;
319
- verificationGasLimit?: {
320
- min?: number | bigint | `0x${string}` | undefined;
321
- max?: number | bigint | `0x${string}` | undefined;
322
- multiplier?: number | undefined;
323
- } | undefined;
324
- preVerificationGas?: {
325
- min?: number | bigint | `0x${string}` | undefined;
326
- max?: number | bigint | `0x${string}` | undefined;
327
- multiplier?: number | undefined;
328
- } | undefined;
329
- maxFeePerGas?: {
330
- min?: number | bigint | `0x${string}` | undefined;
331
- max?: number | bigint | `0x${string}` | undefined;
332
- multiplier?: number | undefined;
333
- } | undefined;
334
- maxPriorityFeePerGas?: {
335
- min?: number | bigint | `0x${string}` | undefined;
336
- max?: number | bigint | `0x${string}` | undefined;
337
- multiplier?: number | undefined;
338
- } | undefined;
339
- paymasterVerificationGasLimit?: {
340
- min?: number | bigint | `0x${string}` | undefined;
341
- max?: number | bigint | `0x${string}` | undefined;
342
- multiplier?: number | undefined;
343
- } | undefined;
344
- paymasterPostOpGasLimit?: {
345
- min?: number | bigint | `0x${string}` | undefined;
346
- max?: number | bigint | `0x${string}` | undefined;
347
- multiplier?: number | undefined;
348
- } | undefined;
349
- } | undefined;
350
- };
351
- }, {
352
- chain: Chain;
353
- opts?: {
354
- txMaxRetries?: number | undefined;
355
- txRetryIntervalMs?: number | undefined;
356
- txRetryMultiplier?: number | undefined;
357
- feeOptions?: {
358
- callGasLimit?: {
359
- min?: number | bigint | `0x${string}` | undefined;
360
- max?: number | bigint | `0x${string}` | undefined;
361
- multiplier?: number | undefined;
362
- } | undefined;
363
- verificationGasLimit?: {
364
- min?: number | bigint | `0x${string}` | undefined;
365
- max?: number | bigint | `0x${string}` | undefined;
366
- multiplier?: number | undefined;
367
- } | undefined;
368
- preVerificationGas?: {
369
- min?: number | bigint | `0x${string}` | undefined;
370
- max?: number | bigint | `0x${string}` | undefined;
371
- multiplier?: number | undefined;
372
- } | undefined;
373
- maxFeePerGas?: {
374
- min?: number | bigint | `0x${string}` | undefined;
375
- max?: number | bigint | `0x${string}` | undefined;
376
- multiplier?: number | undefined;
377
- } | undefined;
378
- maxPriorityFeePerGas?: {
379
- min?: number | bigint | `0x${string}` | undefined;
380
- max?: number | bigint | `0x${string}` | undefined;
381
- multiplier?: number | undefined;
382
- } | undefined;
383
- paymasterVerificationGasLimit?: {
384
- min?: number | bigint | `0x${string}` | undefined;
385
- max?: number | bigint | `0x${string}` | undefined;
386
- multiplier?: number | undefined;
387
- } | undefined;
388
- paymasterPostOpGasLimit?: {
389
- min?: number | bigint | `0x${string}` | undefined;
390
- max?: number | bigint | `0x${string}` | undefined;
391
- multiplier?: number | undefined;
392
- } | undefined;
393
- } | undefined;
394
- } | undefined;
395
- }>>;
396
5
  export declare const AlchemySdkClientSchema: z.ZodType<Alchemy, z.ZodTypeDef, Alchemy>;
397
6
  //# sourceMappingURL=schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/schema.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,eAAO,MAAM,kBAAkB,uCAImF,CAAC;AAEnH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAOvC,CAAC;AAEF,eAAO,MAAM,sBAAsB,2CAAwB,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,eAAO,MAAM,kBAAkB,uCAImF,CAAC;AAEnH,eAAO,MAAM,sBAAsB,2CAAwB,CAAC"}
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "4.0.0-beta.0";
1
+ export declare const VERSION = "4.0.0-beta.10";
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,iBAAiB,CAAC"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO,kBAAkB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@account-kit/infra",
3
- "version": "4.0.0-beta.0",
3
+ "version": "4.0.0-beta.10",
4
4
  "description": "adapters for @aa-sdk/core for interacting with alchemy services",
5
5
  "author": "Alchemy",
6
6
  "license": "MIT",
@@ -36,8 +36,7 @@
36
36
  "docs:gen": "npx ak-docgen generate --in ./src/index.ts --out ../../site/pages/reference/account-kit/infra",
37
37
  "clean": "rm -rf ./dist",
38
38
  "test": "vitest",
39
- "test:run": "vitest run",
40
- "test:run-e2e": "vitest run --config vitest.config.e2e.ts"
39
+ "test:run": "vitest run"
41
40
  },
42
41
  "devDependencies": {
43
42
  "typescript": "^5.0.4",
@@ -45,16 +44,13 @@
45
44
  "vitest": "^2.0.4"
46
45
  },
47
46
  "dependencies": {
48
- "@aa-sdk/core": "^4.0.0-beta.0",
47
+ "@aa-sdk/core": "^4.0.0-beta.10",
48
+ "@account-kit/logging": "^4.0.0-beta.10",
49
49
  "eventemitter3": "^5.0.1",
50
- "viem": "2.20.0",
51
50
  "zod": "^3.22.4"
52
51
  },
53
52
  "peerDependencies": {
54
- "viem": "2.20.0"
55
- },
56
- "resolutions": {
57
- "viem": "2.20.0"
53
+ "viem": "^2.20.0"
58
54
  },
59
55
  "publishConfig": {
60
56
  "access": "public",
@@ -68,7 +64,7 @@
68
64
  "url": "https://github.com/alchemyplatform/aa-sdk/issues"
69
65
  },
70
66
  "homepage": "https://github.com/alchemyplatform/aa-sdk#readme",
71
- "gitHead": "5da6d98a0d16878652dd5bccdb1d3cebc6d86752",
67
+ "gitHead": "3429eb6a07e6a929a1c2069839a525135d081d3e",
72
68
  "optionalDependencies": {
73
69
  "alchemy-sdk": "^3.0.0"
74
70
  }
@@ -0,0 +1,214 @@
1
+ import {
2
+ ChainNotFoundError,
3
+ ConnectionConfigSchema,
4
+ split,
5
+ type ConnectionConfig,
6
+ type NoUndefined,
7
+ } from "@aa-sdk/core";
8
+ import {
9
+ createTransport,
10
+ http,
11
+ type EIP1193RequestFn,
12
+ type HttpTransportConfig,
13
+ type PublicRpcSchema,
14
+ type Transport,
15
+ type TransportConfig,
16
+ } from "viem";
17
+ import type { AlchemyRpcSchema } from "./client/types.js";
18
+ import { AlchemyChainSchema } from "./schema.js";
19
+ import { VERSION } from "./version.js";
20
+
21
+ type Never<T> = T extends object
22
+ ? {
23
+ [K in keyof T]?: never;
24
+ }
25
+ : never;
26
+
27
+ type SplitTransportConfig = {
28
+ alchemyConnection: ConnectionConfig;
29
+ nodeRpcUrl: string;
30
+ };
31
+
32
+ const alchemyMethods = [
33
+ "eth_sendUserOperation",
34
+ "eth_estimateUserOperationGas",
35
+ "eth_getUserOperationReceipt",
36
+ "eth_getUserOperationByHash",
37
+ "eth_supportedEntryPoints",
38
+ "rundler_maxPriorityFeePerGas",
39
+ "pm_getPaymasterData",
40
+ "pm_getPaymasterStubData",
41
+ ];
42
+
43
+ export type AlchemyTransportConfig = (
44
+ | (ConnectionConfig & Never<SplitTransportConfig>)
45
+ | (SplitTransportConfig & Never<ConnectionConfig>)
46
+ ) & {
47
+ /** The max number of times to retry. */
48
+ retryCount?: TransportConfig["retryCount"] | undefined;
49
+ /** The base delay (in ms) between retries. */
50
+ retryDelay?: TransportConfig["retryDelay"] | undefined;
51
+ fetchOptions?: NoUndefined<HttpTransportConfig["fetchOptions"]>;
52
+ };
53
+
54
+ type AlchemyTransportBase = Transport<
55
+ "alchemy",
56
+ {
57
+ alchemyRpcUrl: string;
58
+ fetchOptions?: AlchemyTransportConfig["fetchOptions"];
59
+ },
60
+ EIP1193RequestFn<[...PublicRpcSchema, ...AlchemyRpcSchema]>
61
+ >;
62
+
63
+ export type AlchemyTransport = AlchemyTransportBase & {
64
+ updateHeaders(newHeaders: HeadersInit): void;
65
+ config: AlchemyTransportConfig;
66
+ };
67
+
68
+ /**
69
+ * Creates an Alchemy transport with the specified configuration options.
70
+ * When sending all traffic to Alchemy, you must pass in one of rpcUrl, apiKey, or jwt.
71
+ * If you want to send Bundler and Paymaster traffic to Alchemy and Node traffic to a different RPC, you must pass in alchemyConnection and nodeRpcUrl.
72
+ *
73
+ * @example
74
+ * ### Basic Example
75
+ * If the chain you're using is supported for both Bundler and Node RPCs, then you can do the following:
76
+ * ```ts
77
+ * import { alchemy } from "@account-kit/infra";
78
+ *
79
+ * const transport = alchemy({
80
+ * // NOTE: you can also pass in an rpcUrl or jwt here or rpcUrl and jwt
81
+ * apiKey: "your-api-key",
82
+ * });
83
+ * ```
84
+ *
85
+ * ### AA Only Chains
86
+ * For AA-only chains, you need to specify the alchemyConnection and nodeRpcUrl since Alchemy only
87
+ * handles the Bundler and Paymaster RPCs for these chains.
88
+ * ```ts
89
+ * import { alchemy } from "@account-kit/infra";
90
+ *
91
+ * const transport = alchemy({
92
+ * alchemyConnection: {
93
+ * apiKey: "your-api-key",
94
+ * },
95
+ * nodeRpcUrl: "https://zora.rpc.url",
96
+ * });
97
+ * ```
98
+ *
99
+ * @param {AlchemyTransportConfig} config The configuration object for the Alchemy transport.
100
+ * @param {number} config.retryDelay Optional The delay between retries, in milliseconds.
101
+ * @param {number} config.retryCount Optional The number of retry attempts.
102
+ * @param {string} [config.alchemyConnection] Optional Alchemy connection configuration (if this is passed in, nodeRpcUrl is required).
103
+ * @param {string} [config.fetchOptions] Optional fetch options for HTTP requests.
104
+ * @param {string} [config.nodeRpcUrl] Optional RPC URL for node (if this is passed in, alchemyConnection is required).
105
+ * @param {string} [config.rpcUrl] Optional RPC URL.
106
+ * @param {string} [config.apiKey] Optional API key for Alchemy.
107
+ * @param {string} [config.jwt] Optional JSON Web Token for authorization.
108
+ * @returns {AlchemyTransport} The configured Alchemy transport object.
109
+ */
110
+ export function alchemy(config: AlchemyTransportConfig): AlchemyTransport {
111
+ const { retryDelay, retryCount } = config;
112
+ // we create a copy here in case we create a split transport down below
113
+ // we don't want to add alchemy headers to 3rd party nodes
114
+ const fetchOptions = { ...config.fetchOptions };
115
+
116
+ const connectionConfig = ConnectionConfigSchema.parse(
117
+ config.alchemyConnection ?? config
118
+ );
119
+
120
+ const headersAsObject = convertHeadersToObject(fetchOptions.headers);
121
+
122
+ // TODO: we probably should just log these headers during telemetry logging instead of doing this mutable header stuff
123
+ fetchOptions.headers = {
124
+ ...headersAsObject,
125
+ "Alchemy-AA-Sdk-Version": VERSION,
126
+ };
127
+
128
+ if (connectionConfig.jwt != null) {
129
+ fetchOptions.headers = {
130
+ ...fetchOptions.headers,
131
+ Authorization: `Bearer ${connectionConfig.jwt}`,
132
+ };
133
+ }
134
+
135
+ const transport: AlchemyTransportBase = (opts) => {
136
+ const { chain: chain_ } = opts;
137
+ if (!chain_) {
138
+ throw new ChainNotFoundError();
139
+ }
140
+ const chain = AlchemyChainSchema.parse(chain_);
141
+
142
+ const rpcUrl =
143
+ connectionConfig.rpcUrl == null
144
+ ? `${chain.rpcUrls.alchemy.http[0]}/${connectionConfig.apiKey ?? ""}`
145
+ : connectionConfig.rpcUrl;
146
+
147
+ const innerTransport = (() => {
148
+ if (config.alchemyConnection && config.nodeRpcUrl) {
149
+ return split({
150
+ overrides: [
151
+ {
152
+ methods: alchemyMethods,
153
+ transport: http(rpcUrl, { fetchOptions }),
154
+ },
155
+ ],
156
+ fallback: http(config.nodeRpcUrl, {
157
+ fetchOptions: config.fetchOptions,
158
+ }),
159
+ });
160
+ }
161
+
162
+ return http(rpcUrl, { fetchOptions });
163
+ })();
164
+
165
+ return createTransport(
166
+ {
167
+ key: "alchemy",
168
+ name: "Alchemy Transport",
169
+ request: innerTransport(opts).request,
170
+ retryCount: retryCount ?? opts?.retryCount,
171
+ retryDelay,
172
+ type: "alchemy",
173
+ },
174
+ { alchemyRpcUrl: rpcUrl, fetchOptions }
175
+ );
176
+ };
177
+
178
+ return Object.assign(transport, {
179
+ updateHeaders(newHeaders_: HeadersInit) {
180
+ const newHeaders = convertHeadersToObject(newHeaders_);
181
+
182
+ fetchOptions.headers = {
183
+ ...fetchOptions.headers,
184
+ ...newHeaders,
185
+ };
186
+ },
187
+ config,
188
+ });
189
+ }
190
+
191
+ const convertHeadersToObject = (
192
+ headers?: HeadersInit
193
+ ): Record<string, string> => {
194
+ if (!headers) {
195
+ return {};
196
+ }
197
+
198
+ if (headers instanceof Headers) {
199
+ const headersObject = {} as Record<string, string>;
200
+ headers.forEach((value, key) => {
201
+ headersObject[key] = value;
202
+ });
203
+ return headersObject;
204
+ }
205
+
206
+ if (Array.isArray(headers)) {
207
+ return headers.reduce((acc, header) => {
208
+ acc[header[0]] = header[1];
209
+ return acc;
210
+ }, {} as Record<string, string>);
211
+ }
212
+
213
+ return headers;
214
+ };