viem 1.4.2 → 1.5.2

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 (225) hide show
  1. package/dist/cjs/accounts/index.js +1 -1
  2. package/dist/cjs/accounts/index.js.map +1 -1
  3. package/dist/cjs/accounts/utils/signMessage.js +1 -1
  4. package/dist/cjs/accounts/utils/signMessage.js.map +1 -1
  5. package/dist/cjs/accounts/utils/signTypedData.js +1 -1
  6. package/dist/cjs/accounts/utils/signTypedData.js.map +1 -1
  7. package/dist/cjs/actions/public/createContractEventFilter.js.map +1 -1
  8. package/dist/cjs/actions/public/createEventFilter.js +16 -8
  9. package/dist/cjs/actions/public/createEventFilter.js.map +1 -1
  10. package/dist/cjs/actions/public/getBlock.js +3 -1
  11. package/dist/cjs/actions/public/getBlock.js.map +1 -1
  12. package/dist/cjs/actions/public/getBlockNumber.js +2 -2
  13. package/dist/cjs/actions/public/getBlockNumber.js.map +1 -1
  14. package/dist/cjs/actions/public/getFilterChanges.js.map +1 -1
  15. package/dist/cjs/actions/public/getFilterLogs.js +1 -1
  16. package/dist/cjs/actions/public/getFilterLogs.js.map +1 -1
  17. package/dist/cjs/actions/public/getLogs.js +16 -10
  18. package/dist/cjs/actions/public/getLogs.js.map +1 -1
  19. package/dist/cjs/actions/public/getTransaction.js +2 -1
  20. package/dist/cjs/actions/public/getTransaction.js.map +1 -1
  21. package/dist/cjs/actions/public/watchBlockNumber.js +1 -1
  22. package/dist/cjs/actions/public/watchBlockNumber.js.map +1 -1
  23. package/dist/cjs/actions/public/watchBlocks.js +2 -1
  24. package/dist/cjs/actions/public/watchBlocks.js.map +1 -1
  25. package/dist/cjs/actions/public/watchContractEvent.js +3 -0
  26. package/dist/cjs/actions/public/watchContractEvent.js.map +1 -1
  27. package/dist/cjs/actions/public/watchEvent.js +7 -2
  28. package/dist/cjs/actions/public/watchEvent.js.map +1 -1
  29. package/dist/cjs/clients/createClient.js +2 -1
  30. package/dist/cjs/clients/createClient.js.map +1 -1
  31. package/dist/cjs/clients/createPublicClient.js.map +1 -1
  32. package/dist/cjs/clients/createTestClient.js.map +1 -1
  33. package/dist/cjs/clients/createWalletClient.js.map +1 -1
  34. package/dist/cjs/clients/decorators/public.js.map +1 -1
  35. package/dist/cjs/constants/number.js +101 -0
  36. package/dist/cjs/constants/number.js.map +1 -0
  37. package/dist/cjs/errors/version.js +1 -1
  38. package/dist/cjs/index.js +110 -7
  39. package/dist/cjs/index.js.map +1 -1
  40. package/dist/cjs/utils/formatters/block.js.map +1 -1
  41. package/dist/cjs/utils/formatters/formatter.js +1 -0
  42. package/dist/cjs/utils/formatters/formatter.js.map +1 -1
  43. package/dist/cjs/utils/formatters/transaction.js.map +1 -1
  44. package/dist/cjs/utils/hash/hashFunction.js +3 -2
  45. package/dist/cjs/utils/hash/hashFunction.js.map +1 -1
  46. package/dist/cjs/utils/promise/withCache.js +3 -3
  47. package/dist/cjs/utils/promise/withCache.js.map +1 -1
  48. package/dist/cjs/utils/signature/hexToSignature.js +12 -0
  49. package/dist/cjs/utils/signature/hexToSignature.js.map +1 -0
  50. package/dist/cjs/utils/signature/signatureToHex.js.map +1 -0
  51. package/dist/esm/accounts/index.js +1 -1
  52. package/dist/esm/accounts/index.js.map +1 -1
  53. package/dist/esm/accounts/utils/signMessage.js +1 -1
  54. package/dist/esm/accounts/utils/signMessage.js.map +1 -1
  55. package/dist/esm/accounts/utils/signTypedData.js +1 -1
  56. package/dist/esm/accounts/utils/signTypedData.js.map +1 -1
  57. package/dist/esm/actions/public/createContractEventFilter.js.map +1 -1
  58. package/dist/esm/actions/public/createEventFilter.js +16 -8
  59. package/dist/esm/actions/public/createEventFilter.js.map +1 -1
  60. package/dist/esm/actions/public/getBlock.js +3 -1
  61. package/dist/esm/actions/public/getBlock.js.map +1 -1
  62. package/dist/esm/actions/public/getBlockNumber.js +2 -2
  63. package/dist/esm/actions/public/getBlockNumber.js.map +1 -1
  64. package/dist/esm/actions/public/getFilterChanges.js.map +1 -1
  65. package/dist/esm/actions/public/getFilterLogs.js +1 -1
  66. package/dist/esm/actions/public/getFilterLogs.js.map +1 -1
  67. package/dist/esm/actions/public/getLogs.js +16 -10
  68. package/dist/esm/actions/public/getLogs.js.map +1 -1
  69. package/dist/esm/actions/public/getTransaction.js +2 -1
  70. package/dist/esm/actions/public/getTransaction.js.map +1 -1
  71. package/dist/esm/actions/public/watchBlockNumber.js +1 -1
  72. package/dist/esm/actions/public/watchBlockNumber.js.map +1 -1
  73. package/dist/esm/actions/public/watchBlocks.js +2 -1
  74. package/dist/esm/actions/public/watchBlocks.js.map +1 -1
  75. package/dist/esm/actions/public/watchContractEvent.js +5 -0
  76. package/dist/esm/actions/public/watchContractEvent.js.map +1 -1
  77. package/dist/esm/actions/public/watchEvent.js +9 -2
  78. package/dist/esm/actions/public/watchEvent.js.map +1 -1
  79. package/dist/esm/clients/createClient.js +2 -1
  80. package/dist/esm/clients/createClient.js.map +1 -1
  81. package/dist/esm/clients/createPublicClient.js.map +1 -1
  82. package/dist/esm/clients/createTestClient.js.map +1 -1
  83. package/dist/esm/clients/createWalletClient.js.map +1 -1
  84. package/dist/esm/clients/decorators/public.js.map +1 -1
  85. package/dist/esm/constants/number.js +97 -0
  86. package/dist/esm/constants/number.js.map +1 -0
  87. package/dist/esm/errors/version.js +1 -1
  88. package/dist/esm/index.js +4 -1
  89. package/dist/esm/index.js.map +1 -1
  90. package/dist/esm/utils/formatters/block.js.map +1 -1
  91. package/dist/esm/utils/formatters/formatter.js +1 -0
  92. package/dist/esm/utils/formatters/formatter.js.map +1 -1
  93. package/dist/esm/utils/formatters/transaction.js.map +1 -1
  94. package/dist/esm/utils/hash/hashFunction.js +3 -2
  95. package/dist/esm/utils/hash/hashFunction.js.map +1 -1
  96. package/dist/esm/utils/promise/withCache.js +3 -3
  97. package/dist/esm/utils/promise/withCache.js.map +1 -1
  98. package/dist/esm/utils/signature/hexToSignature.js +18 -0
  99. package/dist/esm/utils/signature/hexToSignature.js.map +1 -0
  100. package/dist/esm/utils/signature/signatureToHex.js +21 -0
  101. package/dist/esm/utils/signature/signatureToHex.js.map +1 -0
  102. package/dist/types/accounts/index.d.ts +1 -1
  103. package/dist/types/accounts/index.d.ts.map +1 -1
  104. package/dist/types/actions/public/createContractEventFilter.d.ts +5 -5
  105. package/dist/types/actions/public/createContractEventFilter.d.ts.map +1 -1
  106. package/dist/types/actions/public/createEventFilter.d.ts +20 -7
  107. package/dist/types/actions/public/createEventFilter.d.ts.map +1 -1
  108. package/dist/types/actions/public/getBlock.d.ts +5 -5
  109. package/dist/types/actions/public/getBlock.d.ts.map +1 -1
  110. package/dist/types/actions/public/getBlockNumber.d.ts +4 -2
  111. package/dist/types/actions/public/getBlockNumber.d.ts.map +1 -1
  112. package/dist/types/actions/public/getFilterChanges.d.ts +5 -8
  113. package/dist/types/actions/public/getFilterChanges.d.ts.map +1 -1
  114. package/dist/types/actions/public/getFilterLogs.d.ts +5 -4
  115. package/dist/types/actions/public/getFilterLogs.d.ts.map +1 -1
  116. package/dist/types/actions/public/getLogs.d.ts +17 -6
  117. package/dist/types/actions/public/getLogs.d.ts.map +1 -1
  118. package/dist/types/actions/public/getTransaction.d.ts +4 -4
  119. package/dist/types/actions/public/getTransaction.d.ts.map +1 -1
  120. package/dist/types/actions/public/watchBlocks.d.ts +10 -10
  121. package/dist/types/actions/public/watchBlocks.d.ts.map +1 -1
  122. package/dist/types/actions/public/watchContractEvent.d.ts +1 -1
  123. package/dist/types/actions/public/watchContractEvent.d.ts.map +1 -1
  124. package/dist/types/actions/public/watchEvent.d.ts +19 -8
  125. package/dist/types/actions/public/watchEvent.d.ts.map +1 -1
  126. package/dist/types/chains/formatters/celo.d.ts +4 -0
  127. package/dist/types/chains/formatters/celo.d.ts.map +1 -1
  128. package/dist/types/chains/formatters/optimism.d.ts +5 -3
  129. package/dist/types/chains/formatters/optimism.d.ts.map +1 -1
  130. package/dist/types/chains/index.d.ts +44 -12
  131. package/dist/types/chains/index.d.ts.map +1 -1
  132. package/dist/types/clients/createClient.d.ts +7 -0
  133. package/dist/types/clients/createClient.d.ts.map +1 -1
  134. package/dist/types/clients/createPublicClient.d.ts +1 -1
  135. package/dist/types/clients/createPublicClient.d.ts.map +1 -1
  136. package/dist/types/clients/createTestClient.d.ts +1 -1
  137. package/dist/types/clients/createTestClient.d.ts.map +1 -1
  138. package/dist/types/clients/createWalletClient.d.ts +1 -1
  139. package/dist/types/clients/createWalletClient.d.ts.map +1 -1
  140. package/dist/types/clients/decorators/public.d.ts +10 -9
  141. package/dist/types/clients/decorators/public.d.ts.map +1 -1
  142. package/dist/types/constants/number.d.ts +97 -0
  143. package/dist/types/constants/number.d.ts.map +1 -0
  144. package/dist/types/errors/version.d.ts +1 -1
  145. package/dist/types/index.d.ts +4 -1
  146. package/dist/types/index.d.ts.map +1 -1
  147. package/dist/types/types/block.d.ts +7 -7
  148. package/dist/types/types/block.d.ts.map +1 -1
  149. package/dist/types/types/contract.d.ts +1 -1
  150. package/dist/types/types/contract.d.ts.map +1 -1
  151. package/dist/types/types/filter.d.ts +7 -3
  152. package/dist/types/types/filter.d.ts.map +1 -1
  153. package/dist/types/types/formatter.d.ts +3 -0
  154. package/dist/types/types/formatter.d.ts.map +1 -1
  155. package/dist/types/types/log.d.ts +8 -8
  156. package/dist/types/types/log.d.ts.map +1 -1
  157. package/dist/types/types/misc.d.ts.map +1 -1
  158. package/dist/types/types/rpc.d.ts +3 -3
  159. package/dist/types/types/rpc.d.ts.map +1 -1
  160. package/dist/types/types/transaction.d.ts +8 -8
  161. package/dist/types/types/transaction.d.ts.map +1 -1
  162. package/dist/types/utils/formatters/block.d.ts +13 -3
  163. package/dist/types/utils/formatters/block.d.ts.map +1 -1
  164. package/dist/types/utils/formatters/formatter.d.ts +1 -0
  165. package/dist/types/utils/formatters/formatter.d.ts.map +1 -1
  166. package/dist/types/utils/formatters/transaction.d.ts +10 -3
  167. package/dist/types/utils/formatters/transaction.d.ts.map +1 -1
  168. package/dist/types/utils/formatters/transactionReceipt.d.ts +1 -0
  169. package/dist/types/utils/formatters/transactionReceipt.d.ts.map +1 -1
  170. package/dist/types/utils/formatters/transactionRequest.d.ts +1 -0
  171. package/dist/types/utils/formatters/transactionRequest.d.ts.map +1 -1
  172. package/dist/types/utils/hash/hashFunction.d.ts +1 -1
  173. package/dist/types/utils/hash/hashFunction.d.ts.map +1 -1
  174. package/dist/types/utils/promise/withCache.d.ts +3 -3
  175. package/dist/types/utils/promise/withCache.d.ts.map +1 -1
  176. package/dist/types/utils/signature/hexToSignature.d.ts +13 -0
  177. package/dist/types/utils/signature/hexToSignature.d.ts.map +1 -0
  178. package/dist/types/utils/signature/signatureToHex.d.ts +17 -0
  179. package/dist/types/utils/signature/signatureToHex.d.ts.map +1 -0
  180. package/package.json +2 -1
  181. package/src/accounts/index.ts +1 -1
  182. package/src/accounts/utils/signMessage.ts +1 -1
  183. package/src/accounts/utils/signTypedData.ts +1 -1
  184. package/src/actions/public/createContractEventFilter.ts +30 -7
  185. package/src/actions/public/createEventFilter.ts +78 -24
  186. package/src/actions/public/getBlock.ts +18 -8
  187. package/src/actions/public/getBlockNumber.ts +5 -3
  188. package/src/actions/public/getFilterChanges.ts +46 -10
  189. package/src/actions/public/getFilterLogs.ts +26 -10
  190. package/src/actions/public/getLogs.ts +73 -18
  191. package/src/actions/public/getTransaction.ts +15 -8
  192. package/src/actions/public/watchBlockNumber.ts +1 -1
  193. package/src/actions/public/watchBlocks.ts +37 -18
  194. package/src/actions/public/watchContractEvent.ts +9 -5
  195. package/src/actions/public/watchEvent.ts +54 -17
  196. package/src/clients/createClient.ts +9 -0
  197. package/src/clients/createPublicClient.ts +7 -1
  198. package/src/clients/createTestClient.ts +7 -1
  199. package/src/clients/createWalletClient.ts +7 -1
  200. package/src/clients/decorators/public.ts +114 -25
  201. package/src/constants/number.ts +98 -0
  202. package/src/errors/version.ts +1 -1
  203. package/src/index.ts +101 -1
  204. package/src/types/block.ts +25 -10
  205. package/src/types/contract.ts +7 -3
  206. package/src/types/filter.ts +32 -26
  207. package/src/types/formatter.ts +9 -0
  208. package/src/types/log.ts +13 -8
  209. package/src/types/misc.ts +3 -0
  210. package/src/types/rpc.ts +20 -6
  211. package/src/types/transaction.ts +22 -11
  212. package/src/utils/formatters/block.ts +31 -4
  213. package/src/utils/formatters/formatter.ts +1 -0
  214. package/src/utils/formatters/transaction.ts +25 -2
  215. package/src/utils/hash/hashFunction.ts +3 -2
  216. package/src/utils/promise/withCache.ts +5 -5
  217. package/src/utils/signature/hexToSignature.ts +20 -0
  218. package/src/utils/signature/signatureToHex.ts +26 -0
  219. package/dist/cjs/accounts/utils/signatureToHex.js.map +0 -1
  220. package/dist/esm/accounts/utils/signatureToHex.js +0 -7
  221. package/dist/esm/accounts/utils/signatureToHex.js.map +0 -1
  222. package/dist/types/accounts/utils/signatureToHex.d.ts +0 -3
  223. package/dist/types/accounts/utils/signatureToHex.d.ts.map +0 -1
  224. package/src/accounts/utils/signatureToHex.ts +0 -12
  225. /package/dist/cjs/{accounts/utils → utils/signature}/signatureToHex.js +0 -0
@@ -197,6 +197,7 @@ import {
197
197
  watchPendingTransactions,
198
198
  } from '../../actions/public/watchPendingTransactions.js'
199
199
  import type { Account } from '../../types/account.js'
200
+ import type { BlockNumber, BlockTag } from '../../types/block.js'
200
201
  import type { Chain } from '../../types/chain.js'
201
202
  import type {
202
203
  ContractFunctionConfig,
@@ -281,10 +282,26 @@ export type PublicActions<
281
282
  TEventName extends string | undefined,
282
283
  TArgs extends MaybeExtractEventArgsFromAbi<TAbi, TEventName> | undefined,
283
284
  TStrict extends boolean | undefined = undefined,
285
+ TFromBlock extends BlockNumber | BlockTag | undefined = undefined,
286
+ TToBlock extends BlockNumber | BlockTag | undefined = undefined,
284
287
  >(
285
- args: CreateContractEventFilterParameters<TAbi, TEventName, TArgs, TStrict>,
288
+ args: CreateContractEventFilterParameters<
289
+ TAbi,
290
+ TEventName,
291
+ TArgs,
292
+ TStrict,
293
+ TFromBlock,
294
+ TToBlock
295
+ >,
286
296
  ) => Promise<
287
- CreateContractEventFilterReturnType<TAbi, TEventName, TArgs, TStrict>
297
+ CreateContractEventFilterReturnType<
298
+ TAbi,
299
+ TEventName,
300
+ TArgs,
301
+ TStrict,
302
+ TFromBlock,
303
+ TToBlock
304
+ >
288
305
  >
289
306
  /**
290
307
  * Creates a [`Filter`](https://viem.sh/docs/glossary/types.html#filter) to listen for new events that can be used with [`getFilterChanges`](https://viem.sh/docs/actions/public/getFilterChanges.html).
@@ -308,23 +325,38 @@ export type PublicActions<
308
325
  * })
309
326
  */
310
327
  createEventFilter: <
311
- TAbiEvent extends AbiEvent | undefined,
328
+ TAbiEvent extends AbiEvent | undefined = undefined,
329
+ TAbiEvents extends
330
+ | readonly AbiEvent[]
331
+ | readonly unknown[]
332
+ | undefined = TAbiEvent extends AbiEvent ? [TAbiEvent] : undefined,
312
333
  TStrict extends boolean | undefined = undefined,
313
- _Abi extends Abi | readonly unknown[] = [TAbiEvent],
334
+ TFromBlock extends BlockNumber | BlockTag | undefined = undefined,
335
+ TToBlock extends BlockNumber | BlockTag | undefined = undefined,
314
336
  _EventName extends string | undefined = MaybeAbiEventName<TAbiEvent>,
315
337
  _Args extends
316
- | MaybeExtractEventArgsFromAbi<_Abi, _EventName>
338
+ | MaybeExtractEventArgsFromAbi<TAbiEvents, _EventName>
317
339
  | undefined = undefined,
318
340
  >(
319
341
  args?: CreateEventFilterParameters<
320
342
  TAbiEvent,
343
+ TAbiEvents,
321
344
  TStrict,
322
- _Abi,
345
+ TFromBlock,
346
+ TToBlock,
323
347
  _EventName,
324
348
  _Args
325
349
  >,
326
350
  ) => Promise<
327
- CreateEventFilterReturnType<TAbiEvent, TStrict, _Abi, _EventName, _Args>
351
+ CreateEventFilterReturnType<
352
+ TAbiEvent,
353
+ TAbiEvents,
354
+ TStrict,
355
+ TFromBlock,
356
+ TToBlock,
357
+ _EventName,
358
+ _Args
359
+ >
328
360
  >
329
361
  /**
330
362
  * Creates a Filter to listen for new pending transaction hashes that can be used with [`getFilterChanges`](https://viem.sh/docs/actions/public/getFilterChanges.html).
@@ -462,7 +494,12 @@ export type PublicActions<
462
494
  * })
463
495
  * const block = await client.getBlock()
464
496
  */
465
- getBlock: (args?: GetBlockParameters) => Promise<GetBlockReturnType<TChain>>
497
+ getBlock: <
498
+ TIncludeTransactions extends boolean = false,
499
+ TBlockTag extends BlockTag = 'latest',
500
+ >(
501
+ args?: GetBlockParameters<TIncludeTransactions, TBlockTag>,
502
+ ) => Promise<GetBlockReturnType<TChain, TIncludeTransactions, TBlockTag>>
466
503
  /**
467
504
  * Returns the number of the most recent block seen.
468
505
  *
@@ -807,13 +844,29 @@ export type PublicActions<
807
844
  */
808
845
  getFilterChanges: <
809
846
  TFilterType extends FilterType,
810
- TAbi extends Abi | readonly unknown[],
847
+ TAbi extends Abi | readonly unknown[] | undefined,
811
848
  TEventName extends string | undefined,
812
849
  TStrict extends boolean | undefined = undefined,
850
+ TFromBlock extends BlockNumber | BlockTag | undefined = undefined,
851
+ TToBlock extends BlockNumber | BlockTag | undefined = undefined,
813
852
  >(
814
- args: GetFilterChangesParameters<TFilterType, TAbi, TEventName, TStrict>,
853
+ args: GetFilterChangesParameters<
854
+ TFilterType,
855
+ TAbi,
856
+ TEventName,
857
+ TStrict,
858
+ TFromBlock,
859
+ TToBlock
860
+ >,
815
861
  ) => Promise<
816
- GetFilterChangesReturnType<TFilterType, TAbi, TEventName, TStrict>
862
+ GetFilterChangesReturnType<
863
+ TFilterType,
864
+ TAbi,
865
+ TEventName,
866
+ TStrict,
867
+ TFromBlock,
868
+ TToBlock
869
+ >
817
870
  >
818
871
  /**
819
872
  * Returns a list of event logs since the filter was created.
@@ -842,12 +895,22 @@ export type PublicActions<
842
895
  * const logs = await client.getFilterLogs({ filter })
843
896
  */
844
897
  getFilterLogs: <
845
- TAbi extends Abi | readonly unknown[],
898
+ TAbi extends Abi | readonly unknown[] | undefined,
846
899
  TEventName extends string | undefined,
847
900
  TStrict extends boolean | undefined = undefined,
901
+ TFromBlock extends BlockNumber | BlockTag | undefined = undefined,
902
+ TToBlock extends BlockNumber | BlockTag | undefined = undefined,
848
903
  >(
849
- args: GetFilterLogsParameters<TAbi, TEventName, TStrict>,
850
- ) => Promise<GetFilterLogsReturnType<TAbi, TEventName, TStrict>>
904
+ args: GetFilterLogsParameters<
905
+ TAbi,
906
+ TEventName,
907
+ TStrict,
908
+ TFromBlock,
909
+ TToBlock
910
+ >,
911
+ ) => Promise<
912
+ GetFilterLogsReturnType<TAbi, TEventName, TStrict, TFromBlock, TToBlock>
913
+ >
851
914
  /**
852
915
  * Returns the current price of gas (in wei).
853
916
  *
@@ -888,11 +951,25 @@ export type PublicActions<
888
951
  * const logs = await client.getLogs()
889
952
  */
890
953
  getLogs: <
891
- TAbiEvent extends AbiEvent | undefined,
954
+ TAbiEvent extends AbiEvent | undefined = undefined,
955
+ TAbiEvents extends
956
+ | readonly AbiEvent[]
957
+ | readonly unknown[]
958
+ | undefined = TAbiEvent extends AbiEvent ? [TAbiEvent] : undefined,
892
959
  TStrict extends boolean | undefined = undefined,
960
+ TFromBlock extends BlockNumber | BlockTag | undefined = undefined,
961
+ TToBlock extends BlockNumber | BlockTag | undefined = undefined,
893
962
  >(
894
- args?: GetLogsParameters<TAbiEvent, TStrict>,
895
- ) => Promise<GetLogsReturnType<TAbiEvent, TStrict>>
963
+ args?: GetLogsParameters<
964
+ TAbiEvent,
965
+ TAbiEvents,
966
+ TStrict,
967
+ TFromBlock,
968
+ TToBlock
969
+ >,
970
+ ) => Promise<
971
+ GetLogsReturnType<TAbiEvent, TAbiEvents, TStrict, TFromBlock, TToBlock>
972
+ >
896
973
  /**
897
974
  * Returns the value from a storage slot at a given address.
898
975
  *
@@ -941,9 +1018,9 @@ export type PublicActions<
941
1018
  * hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',
942
1019
  * })
943
1020
  */
944
- getTransaction: (
945
- args: GetTransactionParameters,
946
- ) => Promise<GetTransactionReturnType<TChain>>
1021
+ getTransaction: <TBlockTag extends BlockTag = 'latest'>(
1022
+ args: GetTransactionParameters<TBlockTag>,
1023
+ ) => Promise<GetTransactionReturnType<TChain, TBlockTag>>
947
1024
  /**
948
1025
  * Returns the number of blocks passed (confirmations) since the transaction was processed on a block.
949
1026
  *
@@ -1265,8 +1342,16 @@ export type PublicActions<
1265
1342
  * onBlock: (block) => console.log(block),
1266
1343
  * })
1267
1344
  */
1268
- watchBlocks: (
1269
- args: WatchBlocksParameters<TTransport, TChain>,
1345
+ watchBlocks: <
1346
+ TIncludeTransactions extends boolean = false,
1347
+ TBlockTag extends BlockTag = 'latest',
1348
+ >(
1349
+ args: WatchBlocksParameters<
1350
+ TTransport,
1351
+ TChain,
1352
+ TIncludeTransactions,
1353
+ TBlockTag
1354
+ >,
1270
1355
  ) => WatchBlocksReturnType
1271
1356
  /**
1272
1357
  * Watches and returns emitted contract event logs.
@@ -1336,10 +1421,14 @@ export type PublicActions<
1336
1421
  * })
1337
1422
  */
1338
1423
  watchEvent: <
1339
- TAbiEvent extends AbiEvent | undefined,
1424
+ TAbiEvent extends AbiEvent | undefined = undefined,
1425
+ TAbiEvents extends
1426
+ | readonly AbiEvent[]
1427
+ | readonly unknown[]
1428
+ | undefined = TAbiEvent extends AbiEvent ? [TAbiEvent] : undefined,
1340
1429
  TStrict extends boolean | undefined = undefined,
1341
1430
  >(
1342
- args: WatchEventParameters<TAbiEvent, TStrict>,
1431
+ args: WatchEventParameters<TAbiEvent, TAbiEvents, TStrict>,
1343
1432
  ) => WatchEventReturnType
1344
1433
  /**
1345
1434
  * Watches and returns pending transaction hashes.
@@ -1406,7 +1495,7 @@ export function publicActions<
1406
1495
  getFilterChanges: (args) => getFilterChanges(client, args),
1407
1496
  getFilterLogs: (args) => getFilterLogs(client, args),
1408
1497
  getGasPrice: () => getGasPrice(client),
1409
- getLogs: (args) => getLogs(client, args),
1498
+ getLogs: (args) => getLogs(client, args as any),
1410
1499
  getStorageAt: (args) => getStorageAt(client, args),
1411
1500
  getTransaction: (args) => getTransaction(client, args),
1412
1501
  getTransactionConfirmations: (args) =>
@@ -0,0 +1,98 @@
1
+ export const maxInt8 = 2n ** (8n - 1n)
2
+ export const maxInt16 = 2n ** (16n - 1n)
3
+ export const maxInt24 = 2n ** (24n - 1n)
4
+ export const maxInt32 = 2n ** (32n - 1n)
5
+ export const maxInt40 = 2n ** (40n - 1n)
6
+ export const maxInt48 = 2n ** (48n - 1n)
7
+ export const maxInt56 = 2n ** (56n - 1n)
8
+ export const maxInt64 = 2n ** (64n - 1n)
9
+ export const maxInt72 = 2n ** (72n - 1n)
10
+ export const maxInt80 = 2n ** (80n - 1n)
11
+ export const maxInt88 = 2n ** (88n - 1n)
12
+ export const maxInt96 = 2n ** (96n - 1n)
13
+ export const maxInt104 = 2n ** (104n - 1n)
14
+ export const maxInt112 = 2n ** (112n - 1n)
15
+ export const maxInt120 = 2n ** (120n - 1n)
16
+ export const maxInt128 = 2n ** (128n - 1n)
17
+ export const maxInt136 = 2n ** (136n - 1n)
18
+ export const maxInt144 = 2n ** (144n - 1n)
19
+ export const maxInt152 = 2n ** (152n - 1n)
20
+ export const maxInt160 = 2n ** (160n - 1n)
21
+ export const maxInt168 = 2n ** (168n - 1n)
22
+ export const maxInt176 = 2n ** (176n - 1n)
23
+ export const maxInt184 = 2n ** (184n - 1n)
24
+ export const maxInt192 = 2n ** (192n - 1n)
25
+ export const maxInt200 = 2n ** (200n - 1n)
26
+ export const maxInt208 = 2n ** (208n - 1n)
27
+ export const maxInt216 = 2n ** (216n - 1n)
28
+ export const maxInt224 = 2n ** (224n - 1n)
29
+ export const maxInt232 = 2n ** (232n - 1n)
30
+ export const maxInt240 = 2n ** (240n - 1n)
31
+ export const maxInt248 = 2n ** (248n - 1n)
32
+ export const maxInt256 = 2n ** (256n - 1n)
33
+
34
+ export const minInt8 = -(2n ** 8n)
35
+ export const minInt16 = -(2n ** 16n)
36
+ export const minInt24 = -(2n ** 24n)
37
+ export const minInt32 = -(2n ** 32n)
38
+ export const minInt40 = -(2n ** 40n)
39
+ export const minInt48 = -(2n ** 48n)
40
+ export const minInt56 = -(2n ** 56n)
41
+ export const minInt64 = -(2n ** 64n)
42
+ export const minInt72 = -(2n ** 72n)
43
+ export const minInt80 = -(2n ** 80n)
44
+ export const minInt88 = -(2n ** 88n)
45
+ export const minInt96 = -(2n ** 96n)
46
+ export const minInt104 = -(2n ** 104n)
47
+ export const minInt112 = -(2n ** 112n)
48
+ export const minInt120 = -(2n ** 120n)
49
+ export const minInt128 = -(2n ** 128n)
50
+ export const minInt136 = -(2n ** 136n)
51
+ export const minInt144 = -(2n ** 144n)
52
+ export const minInt152 = -(2n ** 152n)
53
+ export const minInt160 = -(2n ** 160n)
54
+ export const minInt168 = -(2n ** 168n)
55
+ export const minInt176 = -(2n ** 176n)
56
+ export const minInt184 = -(2n ** 184n)
57
+ export const minInt192 = -(2n ** 192n)
58
+ export const minInt200 = -(2n ** 200n)
59
+ export const minInt208 = -(2n ** 208n)
60
+ export const minInt216 = -(2n ** 216n)
61
+ export const minInt224 = -(2n ** 224n)
62
+ export const minInt232 = -(2n ** 232n)
63
+ export const minInt240 = -(2n ** 240n)
64
+ export const minInt248 = -(2n ** 248n)
65
+ export const minInt256 = -(2n ** 256n)
66
+
67
+ export const maxUint8 = 2n ** 8n
68
+ export const maxUint16 = 2n ** 16n
69
+ export const maxUint24 = 2n ** 24n
70
+ export const maxUint32 = 2n ** 32n
71
+ export const maxUint40 = 2n ** 40n
72
+ export const maxUint48 = 2n ** 48n
73
+ export const maxUint56 = 2n ** 56n
74
+ export const maxUint64 = 2n ** 64n
75
+ export const maxUint72 = 2n ** 72n
76
+ export const maxUint80 = 2n ** 80n
77
+ export const maxUint88 = 2n ** 88n
78
+ export const maxUint96 = 2n ** 96n
79
+ export const maxUint104 = 2n ** 104n
80
+ export const maxUint112 = 2n ** 112n
81
+ export const maxUint120 = 2n ** 120n
82
+ export const maxUint128 = 2n ** 128n
83
+ export const maxUint136 = 2n ** 136n
84
+ export const maxUint144 = 2n ** 144n
85
+ export const maxUint152 = 2n ** 152n
86
+ export const maxUint160 = 2n ** 160n
87
+ export const maxUint168 = 2n ** 168n
88
+ export const maxUint176 = 2n ** 176n
89
+ export const maxUint184 = 2n ** 184n
90
+ export const maxUint192 = 2n ** 192n
91
+ export const maxUint200 = 2n ** 200n
92
+ export const maxUint208 = 2n ** 208n
93
+ export const maxUint216 = 2n ** 216n
94
+ export const maxUint224 = 2n ** 224n
95
+ export const maxUint232 = 2n ** 232n
96
+ export const maxUint240 = 2n ** 240n
97
+ export const maxUint248 = 2n ** 248n
98
+ export const maxUint256 = 2n ** 256n
@@ -1 +1 @@
1
- export const version = '1.4.2'
1
+ export const version = '1.5.2'
package/src/index.ts CHANGED
@@ -304,8 +304,106 @@ export {
304
304
  webSocket,
305
305
  } from './clients/transports/webSocket.js'
306
306
  export { multicall3Abi } from './constants/abis.js'
307
- export { etherUnits, gweiUnits, weiUnits } from './constants/unit.js'
308
307
  export { zeroAddress } from './constants/address.js'
308
+ export { etherUnits, gweiUnits, weiUnits } from './constants/unit.js'
309
+ export {
310
+ maxInt8,
311
+ maxInt16,
312
+ maxInt24,
313
+ maxInt32,
314
+ maxInt40,
315
+ maxInt48,
316
+ maxInt56,
317
+ maxInt64,
318
+ maxInt72,
319
+ maxInt80,
320
+ maxInt88,
321
+ maxInt96,
322
+ maxInt104,
323
+ maxInt112,
324
+ maxInt120,
325
+ maxInt128,
326
+ maxInt136,
327
+ maxInt144,
328
+ maxInt152,
329
+ maxInt160,
330
+ maxInt168,
331
+ maxInt176,
332
+ maxInt184,
333
+ maxInt192,
334
+ maxInt200,
335
+ maxInt208,
336
+ maxInt216,
337
+ maxInt224,
338
+ maxInt232,
339
+ maxInt240,
340
+ maxInt248,
341
+ maxInt256,
342
+ maxUint8,
343
+ maxUint16,
344
+ maxUint24,
345
+ maxUint32,
346
+ maxUint40,
347
+ maxUint48,
348
+ maxUint56,
349
+ maxUint64,
350
+ maxUint72,
351
+ maxUint80,
352
+ maxUint88,
353
+ maxUint96,
354
+ maxUint104,
355
+ maxUint112,
356
+ maxUint120,
357
+ maxUint128,
358
+ maxUint136,
359
+ maxUint144,
360
+ maxUint152,
361
+ maxUint160,
362
+ maxUint168,
363
+ maxUint176,
364
+ maxUint184,
365
+ maxUint192,
366
+ maxUint200,
367
+ maxUint208,
368
+ maxUint216,
369
+ maxUint224,
370
+ maxUint232,
371
+ maxUint240,
372
+ maxUint248,
373
+ maxUint256,
374
+ minInt8,
375
+ minInt16,
376
+ minInt24,
377
+ minInt32,
378
+ minInt40,
379
+ minInt48,
380
+ minInt56,
381
+ minInt64,
382
+ minInt72,
383
+ minInt80,
384
+ minInt88,
385
+ minInt96,
386
+ minInt104,
387
+ minInt112,
388
+ minInt120,
389
+ minInt128,
390
+ minInt136,
391
+ minInt144,
392
+ minInt152,
393
+ minInt160,
394
+ minInt168,
395
+ minInt176,
396
+ minInt184,
397
+ minInt192,
398
+ minInt200,
399
+ minInt208,
400
+ minInt216,
401
+ minInt224,
402
+ minInt232,
403
+ minInt240,
404
+ minInt248,
405
+ minInt256,
406
+ } from './constants/number.js'
309
407
  export {
310
408
  AbiConstructorNotFoundError,
311
409
  AbiConstructorParamsNotFoundError,
@@ -636,6 +734,7 @@ export {
636
734
  type HashTypedDataReturnType,
637
735
  hashTypedData,
638
736
  } from './utils/signature/hashTypedData.js'
737
+ export { hexToSignature } from './utils/signature/hexToSignature.js'
639
738
  export {
640
739
  type RecoverAddressParameters,
641
740
  type RecoverAddressReturnType,
@@ -656,6 +755,7 @@ export {
656
755
  type RecoverTypedDataAddressReturnType,
657
756
  recoverTypedDataAddress,
658
757
  } from './utils/signature/recoverTypedDataAddress.js'
758
+ export { signatureToHex } from './utils/signature/signatureToHex.js'
659
759
  export { type ToRlpReturnType, toRlp } from './utils/encoding/toRlp.js'
660
760
  export {
661
761
  type VerifyMessageParameters,
@@ -3,7 +3,16 @@ import type { Address } from 'abitype'
3
3
  import type { Hash, Hex } from './misc.js'
4
4
  import type { Transaction } from './transaction.js'
5
5
 
6
- export type Block<TQuantity = bigint, TTransaction = Transaction> = {
6
+ export type Block<
7
+ TQuantity = bigint,
8
+ TIncludeTransactions extends boolean = boolean,
9
+ TBlockTag extends BlockTag = BlockTag,
10
+ TTransaction = Transaction<
11
+ bigint,
12
+ number,
13
+ TBlockTag extends 'pending' ? true : false
14
+ >,
15
+ > = {
7
16
  /** Base fee per gas */
8
17
  baseFeePerGas: TQuantity | null
9
18
  /** Difficulty for this block */
@@ -15,17 +24,17 @@ export type Block<TQuantity = bigint, TTransaction = Transaction> = {
15
24
  /** Total used gas by all transactions in this block */
16
25
  gasUsed: TQuantity
17
26
  /** Block hash or `null` if pending */
18
- hash: Hash | null
27
+ hash: TBlockTag extends 'pending' ? null : Hash
19
28
  /** Logs bloom filter or `null` if pending */
20
- logsBloom: Hex | null
29
+ logsBloom: TBlockTag extends 'pending' ? null : Hex
21
30
  /** Address that received this block’s mining rewards */
22
31
  miner: Address
23
32
  /** Unique identifier for the block. */
24
33
  mixHash: Hash
25
34
  /** Proof-of-work hash or `null` if pending */
26
- nonce: Hex | null
35
+ nonce: TBlockTag extends 'pending' ? null : Hex
27
36
  /** Block number or `null` if pending */
28
- number: TQuantity | null
37
+ number: TBlockTag extends 'pending' ? null : TQuantity
29
38
  /** Parent block hash */
30
39
  parentHash: Hash
31
40
  /** Root of the this block’s receipts trie */
@@ -42,7 +51,7 @@ export type Block<TQuantity = bigint, TTransaction = Transaction> = {
42
51
  /** Total difficulty of the chain until this block */
43
52
  totalDifficulty: TQuantity | null
44
53
  /** List of transaction objects or hashes */
45
- transactions: Hash[] | TTransaction[]
54
+ transactions: TIncludeTransactions extends true ? TTransaction[] : Hash[]
46
55
  /** Root of this block’s transaction trie */
47
56
  transactionsRoot: Hash
48
57
  /** List of uncle hashes */
@@ -67,7 +76,13 @@ export type BlockNumber<TQuantity = bigint> = TQuantity
67
76
 
68
77
  export type BlockTag = 'latest' | 'earliest' | 'pending' | 'safe' | 'finalized'
69
78
 
70
- export type Uncle<TQuantity = bigint, TTransaction = Transaction> = Block<
71
- TQuantity,
72
- TTransaction
73
- >
79
+ export type Uncle<
80
+ TQuantity = bigint,
81
+ TIncludeTransactions extends boolean = boolean,
82
+ TBlockTag extends BlockTag = BlockTag,
83
+ TTransaction = Transaction<
84
+ bigint,
85
+ number,
86
+ TBlockTag extends 'pending' ? true : false
87
+ >,
88
+ > = Block<TQuantity, TIncludeTransactions, TBlockTag, TTransaction>
@@ -83,9 +83,13 @@ export type MaybeAbiEventName<TAbiEvent extends AbiEvent | undefined> =
83
83
  TAbiEvent extends AbiEvent ? TAbiEvent['name'] : undefined
84
84
 
85
85
  export type MaybeExtractEventArgsFromAbi<
86
- TAbi extends Abi | readonly unknown[] = Abi,
87
- TEventName extends string | undefined = undefined,
88
- > = TEventName extends string ? GetEventArgs<TAbi, TEventName> : undefined
86
+ TAbi extends Abi | readonly unknown[] | undefined,
87
+ TEventName extends string | undefined,
88
+ > = TAbi extends Abi | readonly unknown[]
89
+ ? TEventName extends string
90
+ ? GetEventArgs<TAbi, TEventName>
91
+ : undefined
92
+ : undefined
89
93
 
90
94
  //////////////////////////////////////////////////////////////////////
91
95
  // ABI item name
@@ -1,5 +1,6 @@
1
1
  import type { Abi } from 'abitype'
2
2
 
3
+ import type { BlockNumber, BlockTag } from './block.js'
3
4
  import type { MaybeExtractEventArgsFromAbi } from './contract.js'
4
5
  import type { EIP1193RequestFn, PublicRpcSchema } from './eip1193.js'
5
6
  import type { Hex } from './misc.js'
@@ -16,42 +17,47 @@ type FilterRpcSchema = Filter_<
16
17
 
17
18
  export type Filter<
18
19
  TFilterType extends FilterType = 'event',
19
- TAbi extends Abi | readonly unknown[] = Abi,
20
+ TAbi extends Abi | readonly unknown[] | undefined = undefined,
20
21
  TEventName extends string | undefined = undefined,
21
22
  TArgs extends
22
23
  | MaybeExtractEventArgsFromAbi<TAbi, TEventName>
23
24
  | undefined = MaybeExtractEventArgsFromAbi<TAbi, TEventName>,
24
25
  TStrict extends boolean | undefined = undefined,
26
+ TFromBlock extends BlockNumber | BlockTag | undefined = undefined,
27
+ TToBlock extends BlockNumber | BlockTag | undefined = undefined,
25
28
  > = {
26
29
  id: Hex
27
30
  request: EIP1193RequestFn<FilterRpcSchema>
28
31
  type: TFilterType
29
32
  } & (TFilterType extends 'event'
30
- ? TAbi extends Abi
31
- ? undefined extends TEventName
32
- ? {
33
- abi: TAbi
34
- args?: never
35
- eventName?: never
36
- strict: TStrict
37
- }
38
- : TArgs extends MaybeExtractEventArgsFromAbi<TAbi, TEventName>
39
- ? {
40
- abi: TAbi
41
- args: TArgs
42
- eventName: TEventName
43
- strict: TStrict
44
- }
33
+ ? {
34
+ fromBlock?: TFromBlock
35
+ toBlock?: TToBlock
36
+ } & (TAbi extends Abi
37
+ ? undefined extends TEventName
38
+ ? {
39
+ abi: TAbi
40
+ args?: never
41
+ eventName?: never
42
+ strict: TStrict
43
+ }
44
+ : TArgs extends MaybeExtractEventArgsFromAbi<TAbi, TEventName>
45
+ ? {
46
+ abi: TAbi
47
+ args: TArgs
48
+ eventName: TEventName
49
+ strict: TStrict
50
+ }
51
+ : {
52
+ abi: TAbi
53
+ args?: never
54
+ eventName: TEventName
55
+ strict: TStrict
56
+ }
45
57
  : {
46
- abi: TAbi
58
+ abi?: never
47
59
  args?: never
48
- eventName: TEventName
49
- strict: TStrict
50
- }
51
- : {
52
- abi?: never
53
- args?: never
54
- eventName?: never
55
- strict?: never
56
- }
60
+ eventName?: never
61
+ strict?: never
62
+ })
57
63
  : {})
@@ -12,6 +12,15 @@ export type Formatters = {
12
12
  transactionRequest?: Formatter<'transactionRequest'>
13
13
  }
14
14
 
15
+ export type ExtractFormatterExclude<
16
+ TChain extends Chain | undefined,
17
+ TType extends keyof Formatters,
18
+ > = TChain extends Chain<infer _Formatters extends Formatters>
19
+ ? _Formatters[TType] extends { exclude: infer Exclude }
20
+ ? Extract<Exclude, string[]>[number]
21
+ : ''
22
+ : ''
23
+
15
24
  export type ExtractFormatterParameters<
16
25
  TChain extends Chain | undefined,
17
26
  TType extends keyof Formatters,