@bigmi/core 0.9.0 → 0.9.1

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 (346) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/cjs/_virtual/_rolldown/runtime.js +1 -1
  3. package/dist/cjs/actions/getBalance.d.ts +3 -4
  4. package/dist/cjs/actions/getBlock.d.ts +3 -4
  5. package/dist/cjs/actions/getBlockCount.d.ts +2 -3
  6. package/dist/cjs/actions/getBlockStats.d.ts +3 -4
  7. package/dist/cjs/actions/getTransactionFee.d.ts +3 -4
  8. package/dist/cjs/actions/getTransactions.d.ts +3 -4
  9. package/dist/cjs/actions/getUTXOTransaction.d.ts +3 -4
  10. package/dist/cjs/actions/getUTXOs.d.ts +3 -4
  11. package/dist/cjs/actions/getXPubAddresses.d.ts +3 -4
  12. package/dist/cjs/actions/sendUTXOTransaction.d.ts +3 -4
  13. package/dist/cjs/actions/signPsbt.d.ts +1 -2
  14. package/dist/cjs/actions/waitForTransaction.d.ts +6 -7
  15. package/dist/cjs/actions/watchBlockNumber.d.ts +5 -6
  16. package/dist/cjs/actions/watchBlockNumber.js +3 -2
  17. package/dist/cjs/actions/watchBlockNumber.js.map +1 -1
  18. package/dist/cjs/chains/bitcoin.d.ts +1 -2
  19. package/dist/cjs/chains/defineChain.d.ts +1 -2
  20. package/dist/cjs/chains/signet.d.ts +1 -2
  21. package/dist/cjs/clients/decorators/public.d.ts +2 -3
  22. package/dist/cjs/clients/decorators/wallet.d.ts +2 -3
  23. package/dist/cjs/errors/address.d.ts +2 -3
  24. package/dist/cjs/errors/base.d.ts +3 -4
  25. package/dist/cjs/errors/base.js.map +1 -1
  26. package/dist/cjs/errors/block.d.ts +2 -3
  27. package/dist/cjs/errors/provider.d.ts +1 -2
  28. package/dist/cjs/errors/request.d.ts +10 -11
  29. package/dist/cjs/errors/rpc.d.ts +4 -5
  30. package/dist/cjs/errors/transaction.d.ts +6 -7
  31. package/dist/cjs/errors/transport.d.ts +6 -7
  32. package/dist/cjs/errors/utils.d.ts +3 -4
  33. package/dist/cjs/errors/utxo.d.ts +2 -3
  34. package/dist/cjs/factories/createClient.d.ts +6 -7
  35. package/dist/cjs/factories/createClient.js.map +1 -1
  36. package/dist/cjs/factories/createTransport.d.ts +1 -2
  37. package/dist/cjs/test/utils.d.ts +1 -2
  38. package/dist/cjs/transports/ankr/ankr.d.ts +1 -2
  39. package/dist/cjs/transports/ankr/ankr.types.d.ts +7 -8
  40. package/dist/cjs/transports/ankr/getBalance.d.ts +1 -2
  41. package/dist/cjs/transports/ankr/getTransactionFee.d.ts +1 -2
  42. package/dist/cjs/transports/ankr/getTransactions.d.ts +1 -2
  43. package/dist/cjs/transports/ankr/methods.d.ts +1 -2
  44. package/dist/cjs/transports/ankr/utils.d.ts +1 -2
  45. package/dist/cjs/transports/blockchair/blockchair.d.ts +1 -2
  46. package/dist/cjs/transports/blockchair/blockchair.types.d.ts +13 -14
  47. package/dist/cjs/transports/blockchair/getBalance.d.ts +1 -2
  48. package/dist/cjs/transports/blockchair/getTransactionFee.d.ts +1 -2
  49. package/dist/cjs/transports/blockchair/getUTXOs.d.ts +1 -2
  50. package/dist/cjs/transports/blockchair/getXPubAddresses.d.ts +1 -2
  51. package/dist/cjs/transports/blockchair/methods.d.ts +1 -2
  52. package/dist/cjs/transports/blockcypher/blockcypher.d.ts +1 -2
  53. package/dist/cjs/transports/blockcypher/blockcypher.types.d.ts +8 -9
  54. package/dist/cjs/transports/blockcypher/getBalance.d.ts +1 -2
  55. package/dist/cjs/transports/blockcypher/getTransactionFee.d.ts +1 -2
  56. package/dist/cjs/transports/blockcypher/getUTXOs.d.ts +1 -2
  57. package/dist/cjs/transports/blockcypher/methods.d.ts +1 -2
  58. package/dist/cjs/transports/blockcypher/utils.d.ts +1 -2
  59. package/dist/cjs/transports/custom.d.ts +4 -5
  60. package/dist/cjs/transports/fallback.d.ts +7 -8
  61. package/dist/cjs/transports/fallback.js.map +1 -1
  62. package/dist/cjs/transports/getHttpRpcClient.d.ts +6 -7
  63. package/dist/cjs/transports/getRpcProviderMethods.d.ts +1 -2
  64. package/dist/cjs/transports/http.d.ts +4 -5
  65. package/dist/cjs/transports/mempool/getBalance.d.ts +1 -2
  66. package/dist/cjs/transports/mempool/getTransactionFee.d.ts +1 -2
  67. package/dist/cjs/transports/mempool/getTransactions.d.ts +1 -2
  68. package/dist/cjs/transports/mempool/mempool.d.ts +1 -2
  69. package/dist/cjs/transports/mempool/mempool.types.d.ts +7 -8
  70. package/dist/cjs/transports/mempool/methods.d.ts +1 -2
  71. package/dist/cjs/transports/mempool/utils.d.ts +1 -2
  72. package/dist/cjs/transports/types.d.ts +12 -13
  73. package/dist/cjs/transports/utxo.d.ts +1 -2
  74. package/dist/cjs/types/account.d.ts +1 -2
  75. package/dist/cjs/types/address.d.ts +4 -5
  76. package/dist/cjs/types/block.d.ts +1 -2
  77. package/dist/cjs/types/blockStats.d.ts +2 -3
  78. package/dist/cjs/types/chain.d.ts +6 -7
  79. package/dist/cjs/types/client.d.ts +3 -4
  80. package/dist/cjs/types/hash.d.ts +1 -2
  81. package/dist/cjs/types/request.d.ts +5 -6
  82. package/dist/cjs/types/rpc.d.ts +4 -5
  83. package/dist/cjs/types/transaction.d.ts +2 -3
  84. package/dist/cjs/types/transport.d.ts +3 -4
  85. package/dist/cjs/types/utils.d.ts +19 -20
  86. package/dist/cjs/types/xpub.d.ts +1 -2
  87. package/dist/cjs/utils/buildRequest.d.ts +3 -4
  88. package/dist/cjs/utils/buildRequest.js +2 -1
  89. package/dist/cjs/utils/buildRequest.js.map +1 -1
  90. package/dist/cjs/utils/cancelTransaction.d.ts +1 -2
  91. package/dist/cjs/utils/converter.d.ts +5 -6
  92. package/dist/cjs/utils/createBatchScheduler.d.ts +2 -3
  93. package/dist/cjs/utils/deepEqual.d.ts +1 -2
  94. package/dist/cjs/utils/getAction.d.ts +1 -2
  95. package/dist/cjs/utils/getAddressInfo.d.ts +2 -3
  96. package/dist/cjs/utils/getAddressInfo.js +2 -1
  97. package/dist/cjs/utils/getAddressInfo.js.map +1 -1
  98. package/dist/cjs/utils/idCache.d.ts +1 -2
  99. package/dist/cjs/utils/isAddress.d.ts +1 -2
  100. package/dist/cjs/utils/lru.d.ts +1 -2
  101. package/dist/cjs/utils/modifyFee.d.ts +1 -2
  102. package/dist/cjs/utils/observe.d.ts +3 -4
  103. package/dist/cjs/utils/parseAccount.d.ts +2 -3
  104. package/dist/cjs/utils/poll.d.ts +1 -2
  105. package/dist/cjs/utils/poll.js +2 -1
  106. package/dist/cjs/utils/poll.js.map +1 -1
  107. package/dist/cjs/utils/retryUntil.d.ts +1 -2
  108. package/dist/cjs/utils/sleep.d.ts +1 -2
  109. package/dist/cjs/utils/stringify.d.ts +2 -3
  110. package/dist/cjs/utils/uid.d.ts +1 -2
  111. package/dist/cjs/utils/url.d.ts +1 -2
  112. package/dist/cjs/utils/wait.d.ts +1 -2
  113. package/dist/cjs/utils/withDedupe.d.ts +2 -3
  114. package/dist/cjs/utils/withResolvers.d.ts +2 -3
  115. package/dist/cjs/utils/withRetry.d.ts +3 -4
  116. package/dist/cjs/utils/withTimeout.d.ts +2 -3
  117. package/dist/cjs/version.d.ts +2 -3
  118. package/dist/cjs/version.js +1 -1
  119. package/dist/cjs/version.js.map +1 -1
  120. package/dist/cjs/vite-env.d.ts +1 -1
  121. package/dist/esm/actions/getBalance.d.ts +3 -4
  122. package/dist/esm/actions/getBalance.d.ts.map +1 -1
  123. package/dist/esm/actions/getBlock.d.ts +3 -4
  124. package/dist/esm/actions/getBlock.d.ts.map +1 -1
  125. package/dist/esm/actions/getBlockCount.d.ts +2 -3
  126. package/dist/esm/actions/getBlockCount.d.ts.map +1 -1
  127. package/dist/esm/actions/getBlockStats.d.ts +3 -4
  128. package/dist/esm/actions/getBlockStats.d.ts.map +1 -1
  129. package/dist/esm/actions/getTransactionFee.d.ts +3 -4
  130. package/dist/esm/actions/getTransactionFee.d.ts.map +1 -1
  131. package/dist/esm/actions/getTransactions.d.ts +3 -4
  132. package/dist/esm/actions/getTransactions.d.ts.map +1 -1
  133. package/dist/esm/actions/getUTXOTransaction.d.ts +3 -4
  134. package/dist/esm/actions/getUTXOTransaction.d.ts.map +1 -1
  135. package/dist/esm/actions/getUTXOs.d.ts +3 -4
  136. package/dist/esm/actions/getUTXOs.d.ts.map +1 -1
  137. package/dist/esm/actions/getXPubAddresses.d.ts +3 -4
  138. package/dist/esm/actions/getXPubAddresses.d.ts.map +1 -1
  139. package/dist/esm/actions/sendUTXOTransaction.d.ts +3 -4
  140. package/dist/esm/actions/sendUTXOTransaction.d.ts.map +1 -1
  141. package/dist/esm/actions/signPsbt.d.ts +1 -2
  142. package/dist/esm/actions/signPsbt.d.ts.map +1 -1
  143. package/dist/esm/actions/waitForTransaction.d.ts +6 -7
  144. package/dist/esm/actions/waitForTransaction.d.ts.map +1 -1
  145. package/dist/esm/actions/watchBlockNumber.d.ts +5 -6
  146. package/dist/esm/actions/watchBlockNumber.d.ts.map +1 -1
  147. package/dist/esm/actions/watchBlockNumber.js +3 -2
  148. package/dist/esm/actions/watchBlockNumber.js.map +1 -1
  149. package/dist/esm/chains/bitcoin.d.ts +1 -2
  150. package/dist/esm/chains/bitcoin.d.ts.map +1 -1
  151. package/dist/esm/chains/defineChain.d.ts +1 -2
  152. package/dist/esm/chains/defineChain.d.ts.map +1 -1
  153. package/dist/esm/chains/signet.d.ts +1 -2
  154. package/dist/esm/chains/signet.d.ts.map +1 -1
  155. package/dist/esm/clients/decorators/public.d.ts +2 -3
  156. package/dist/esm/clients/decorators/public.d.ts.map +1 -1
  157. package/dist/esm/clients/decorators/wallet.d.ts +2 -3
  158. package/dist/esm/clients/decorators/wallet.d.ts.map +1 -1
  159. package/dist/esm/errors/address.d.ts +2 -3
  160. package/dist/esm/errors/address.d.ts.map +1 -1
  161. package/dist/esm/errors/base.d.ts +3 -4
  162. package/dist/esm/errors/base.d.ts.map +1 -1
  163. package/dist/esm/errors/base.js.map +1 -1
  164. package/dist/esm/errors/block.d.ts +2 -3
  165. package/dist/esm/errors/block.d.ts.map +1 -1
  166. package/dist/esm/errors/provider.d.ts +1 -2
  167. package/dist/esm/errors/provider.d.ts.map +1 -1
  168. package/dist/esm/errors/request.d.ts +10 -11
  169. package/dist/esm/errors/request.d.ts.map +1 -1
  170. package/dist/esm/errors/rpc.d.ts +4 -5
  171. package/dist/esm/errors/rpc.d.ts.map +1 -1
  172. package/dist/esm/errors/transaction.d.ts +6 -7
  173. package/dist/esm/errors/transaction.d.ts.map +1 -1
  174. package/dist/esm/errors/transport.d.ts +6 -7
  175. package/dist/esm/errors/transport.d.ts.map +1 -1
  176. package/dist/esm/errors/utils.d.ts +3 -4
  177. package/dist/esm/errors/utils.d.ts.map +1 -1
  178. package/dist/esm/errors/utxo.d.ts +2 -3
  179. package/dist/esm/errors/utxo.d.ts.map +1 -1
  180. package/dist/esm/factories/createClient.d.ts +6 -7
  181. package/dist/esm/factories/createClient.d.ts.map +1 -1
  182. package/dist/esm/factories/createClient.js.map +1 -1
  183. package/dist/esm/factories/createTransport.d.ts +1 -2
  184. package/dist/esm/factories/createTransport.d.ts.map +1 -1
  185. package/dist/esm/test/utils.d.ts +1 -2
  186. package/dist/esm/test/utils.d.ts.map +1 -1
  187. package/dist/esm/transports/ankr/ankr.d.ts +1 -2
  188. package/dist/esm/transports/ankr/ankr.d.ts.map +1 -1
  189. package/dist/esm/transports/ankr/ankr.types.d.ts +7 -8
  190. package/dist/esm/transports/ankr/ankr.types.d.ts.map +1 -1
  191. package/dist/esm/transports/ankr/getBalance.d.ts +1 -2
  192. package/dist/esm/transports/ankr/getBalance.d.ts.map +1 -1
  193. package/dist/esm/transports/ankr/getTransactionFee.d.ts +1 -2
  194. package/dist/esm/transports/ankr/getTransactionFee.d.ts.map +1 -1
  195. package/dist/esm/transports/ankr/getTransactions.d.ts +1 -2
  196. package/dist/esm/transports/ankr/getTransactions.d.ts.map +1 -1
  197. package/dist/esm/transports/ankr/methods.d.ts +1 -2
  198. package/dist/esm/transports/ankr/methods.d.ts.map +1 -1
  199. package/dist/esm/transports/ankr/utils.d.ts +1 -2
  200. package/dist/esm/transports/ankr/utils.d.ts.map +1 -1
  201. package/dist/esm/transports/blockchair/blockchair.d.ts +1 -2
  202. package/dist/esm/transports/blockchair/blockchair.d.ts.map +1 -1
  203. package/dist/esm/transports/blockchair/blockchair.types.d.ts +13 -14
  204. package/dist/esm/transports/blockchair/blockchair.types.d.ts.map +1 -1
  205. package/dist/esm/transports/blockchair/getBalance.d.ts +1 -2
  206. package/dist/esm/transports/blockchair/getBalance.d.ts.map +1 -1
  207. package/dist/esm/transports/blockchair/getTransactionFee.d.ts +1 -2
  208. package/dist/esm/transports/blockchair/getTransactionFee.d.ts.map +1 -1
  209. package/dist/esm/transports/blockchair/getUTXOs.d.ts +1 -2
  210. package/dist/esm/transports/blockchair/getUTXOs.d.ts.map +1 -1
  211. package/dist/esm/transports/blockchair/getXPubAddresses.d.ts +1 -2
  212. package/dist/esm/transports/blockchair/getXPubAddresses.d.ts.map +1 -1
  213. package/dist/esm/transports/blockchair/methods.d.ts +1 -2
  214. package/dist/esm/transports/blockchair/methods.d.ts.map +1 -1
  215. package/dist/esm/transports/blockcypher/blockcypher.d.ts +1 -2
  216. package/dist/esm/transports/blockcypher/blockcypher.d.ts.map +1 -1
  217. package/dist/esm/transports/blockcypher/blockcypher.types.d.ts +8 -9
  218. package/dist/esm/transports/blockcypher/blockcypher.types.d.ts.map +1 -1
  219. package/dist/esm/transports/blockcypher/getBalance.d.ts +1 -2
  220. package/dist/esm/transports/blockcypher/getBalance.d.ts.map +1 -1
  221. package/dist/esm/transports/blockcypher/getTransactionFee.d.ts +1 -2
  222. package/dist/esm/transports/blockcypher/getTransactionFee.d.ts.map +1 -1
  223. package/dist/esm/transports/blockcypher/getUTXOs.d.ts +1 -2
  224. package/dist/esm/transports/blockcypher/getUTXOs.d.ts.map +1 -1
  225. package/dist/esm/transports/blockcypher/methods.d.ts +1 -2
  226. package/dist/esm/transports/blockcypher/methods.d.ts.map +1 -1
  227. package/dist/esm/transports/blockcypher/utils.d.ts +1 -2
  228. package/dist/esm/transports/blockcypher/utils.d.ts.map +1 -1
  229. package/dist/esm/transports/custom.d.ts +4 -5
  230. package/dist/esm/transports/custom.d.ts.map +1 -1
  231. package/dist/esm/transports/fallback.d.ts +7 -8
  232. package/dist/esm/transports/fallback.d.ts.map +1 -1
  233. package/dist/esm/transports/fallback.js.map +1 -1
  234. package/dist/esm/transports/getHttpRpcClient.d.ts +6 -7
  235. package/dist/esm/transports/getHttpRpcClient.d.ts.map +1 -1
  236. package/dist/esm/transports/getRpcProviderMethods.d.ts +1 -2
  237. package/dist/esm/transports/getRpcProviderMethods.d.ts.map +1 -1
  238. package/dist/esm/transports/http.d.ts +4 -5
  239. package/dist/esm/transports/http.d.ts.map +1 -1
  240. package/dist/esm/transports/mempool/getBalance.d.ts +1 -2
  241. package/dist/esm/transports/mempool/getBalance.d.ts.map +1 -1
  242. package/dist/esm/transports/mempool/getTransactionFee.d.ts +1 -2
  243. package/dist/esm/transports/mempool/getTransactionFee.d.ts.map +1 -1
  244. package/dist/esm/transports/mempool/getTransactions.d.ts +1 -2
  245. package/dist/esm/transports/mempool/getTransactions.d.ts.map +1 -1
  246. package/dist/esm/transports/mempool/mempool.d.ts +1 -2
  247. package/dist/esm/transports/mempool/mempool.d.ts.map +1 -1
  248. package/dist/esm/transports/mempool/mempool.types.d.ts +7 -8
  249. package/dist/esm/transports/mempool/mempool.types.d.ts.map +1 -1
  250. package/dist/esm/transports/mempool/methods.d.ts +1 -2
  251. package/dist/esm/transports/mempool/methods.d.ts.map +1 -1
  252. package/dist/esm/transports/mempool/utils.d.ts +1 -2
  253. package/dist/esm/transports/mempool/utils.d.ts.map +1 -1
  254. package/dist/esm/transports/types.d.ts +12 -13
  255. package/dist/esm/transports/types.d.ts.map +1 -1
  256. package/dist/esm/transports/utxo.d.ts +1 -2
  257. package/dist/esm/transports/utxo.d.ts.map +1 -1
  258. package/dist/esm/types/account.d.ts +1 -2
  259. package/dist/esm/types/account.d.ts.map +1 -1
  260. package/dist/esm/types/address.d.ts +4 -5
  261. package/dist/esm/types/address.d.ts.map +1 -1
  262. package/dist/esm/types/block.d.ts +1 -2
  263. package/dist/esm/types/block.d.ts.map +1 -1
  264. package/dist/esm/types/blockStats.d.ts +2 -3
  265. package/dist/esm/types/blockStats.d.ts.map +1 -1
  266. package/dist/esm/types/chain.d.ts +6 -7
  267. package/dist/esm/types/chain.d.ts.map +1 -1
  268. package/dist/esm/types/client.d.ts +3 -4
  269. package/dist/esm/types/client.d.ts.map +1 -1
  270. package/dist/esm/types/hash.d.ts +1 -2
  271. package/dist/esm/types/hash.d.ts.map +1 -1
  272. package/dist/esm/types/request.d.ts +5 -6
  273. package/dist/esm/types/request.d.ts.map +1 -1
  274. package/dist/esm/types/rpc.d.ts +4 -5
  275. package/dist/esm/types/rpc.d.ts.map +1 -1
  276. package/dist/esm/types/transaction.d.ts +2 -3
  277. package/dist/esm/types/transaction.d.ts.map +1 -1
  278. package/dist/esm/types/transport.d.ts +3 -4
  279. package/dist/esm/types/transport.d.ts.map +1 -1
  280. package/dist/esm/types/utils.d.ts +19 -20
  281. package/dist/esm/types/utils.d.ts.map +1 -1
  282. package/dist/esm/types/xpub.d.ts +1 -2
  283. package/dist/esm/types/xpub.d.ts.map +1 -1
  284. package/dist/esm/utils/buildRequest.d.ts +3 -4
  285. package/dist/esm/utils/buildRequest.d.ts.map +1 -1
  286. package/dist/esm/utils/buildRequest.js +2 -1
  287. package/dist/esm/utils/buildRequest.js.map +1 -1
  288. package/dist/esm/utils/cancelTransaction.d.ts +1 -2
  289. package/dist/esm/utils/cancelTransaction.d.ts.map +1 -1
  290. package/dist/esm/utils/converter.d.ts +5 -6
  291. package/dist/esm/utils/converter.d.ts.map +1 -1
  292. package/dist/esm/utils/createBatchScheduler.d.ts +2 -3
  293. package/dist/esm/utils/createBatchScheduler.d.ts.map +1 -1
  294. package/dist/esm/utils/deepEqual.d.ts +1 -2
  295. package/dist/esm/utils/deepEqual.d.ts.map +1 -1
  296. package/dist/esm/utils/getAction.d.ts +1 -2
  297. package/dist/esm/utils/getAction.d.ts.map +1 -1
  298. package/dist/esm/utils/getAddressInfo.d.ts +2 -3
  299. package/dist/esm/utils/getAddressInfo.d.ts.map +1 -1
  300. package/dist/esm/utils/getAddressInfo.js +2 -1
  301. package/dist/esm/utils/getAddressInfo.js.map +1 -1
  302. package/dist/esm/utils/idCache.d.ts +1 -2
  303. package/dist/esm/utils/idCache.d.ts.map +1 -1
  304. package/dist/esm/utils/isAddress.d.ts +1 -2
  305. package/dist/esm/utils/isAddress.d.ts.map +1 -1
  306. package/dist/esm/utils/lru.d.ts +1 -2
  307. package/dist/esm/utils/lru.d.ts.map +1 -1
  308. package/dist/esm/utils/modifyFee.d.ts +1 -2
  309. package/dist/esm/utils/modifyFee.d.ts.map +1 -1
  310. package/dist/esm/utils/observe.d.ts +3 -4
  311. package/dist/esm/utils/observe.d.ts.map +1 -1
  312. package/dist/esm/utils/parseAccount.d.ts +2 -3
  313. package/dist/esm/utils/parseAccount.d.ts.map +1 -1
  314. package/dist/esm/utils/poll.d.ts +1 -2
  315. package/dist/esm/utils/poll.d.ts.map +1 -1
  316. package/dist/esm/utils/poll.js +2 -1
  317. package/dist/esm/utils/poll.js.map +1 -1
  318. package/dist/esm/utils/retryUntil.d.ts +1 -2
  319. package/dist/esm/utils/retryUntil.d.ts.map +1 -1
  320. package/dist/esm/utils/sleep.d.ts +1 -2
  321. package/dist/esm/utils/sleep.d.ts.map +1 -1
  322. package/dist/esm/utils/stringify.d.ts +2 -3
  323. package/dist/esm/utils/stringify.d.ts.map +1 -1
  324. package/dist/esm/utils/uid.d.ts +1 -2
  325. package/dist/esm/utils/uid.d.ts.map +1 -1
  326. package/dist/esm/utils/url.d.ts +1 -2
  327. package/dist/esm/utils/url.d.ts.map +1 -1
  328. package/dist/esm/utils/wait.d.ts +1 -2
  329. package/dist/esm/utils/wait.d.ts.map +1 -1
  330. package/dist/esm/utils/withDedupe.d.ts +2 -3
  331. package/dist/esm/utils/withDedupe.d.ts.map +1 -1
  332. package/dist/esm/utils/withResolvers.d.ts +2 -3
  333. package/dist/esm/utils/withResolvers.d.ts.map +1 -1
  334. package/dist/esm/utils/withRetry.d.ts +3 -4
  335. package/dist/esm/utils/withRetry.d.ts.map +1 -1
  336. package/dist/esm/utils/withTimeout.d.ts +2 -3
  337. package/dist/esm/utils/withTimeout.d.ts.map +1 -1
  338. package/dist/esm/version.d.ts +2 -3
  339. package/dist/esm/version.d.ts.map +1 -1
  340. package/dist/esm/version.js +1 -1
  341. package/dist/esm/version.js.map +1 -1
  342. package/dist/esm/vite-env.d.ts +1 -1
  343. package/package.json +3 -3
  344. package/src/factories/createClient.ts +1 -2
  345. package/src/types/client.ts +1 -2
  346. package/src/version.ts +1 -1
@@ -2,7 +2,7 @@ import { Chain } from "../types/chain.js";
2
2
  import { ErrorType } from "../errors/utils.js";
3
3
  import { CreateTransportErrorType, Transport, TransportConfig } from "../types/transport.js";
4
4
  //#region src/transports/fallback.d.ts
5
- type OnResponseFn = (args: {
5
+ export type OnResponseFn = (args: {
6
6
  method: string;
7
7
  params: unknown[];
8
8
  transport: ReturnType<Transport>;
@@ -53,7 +53,7 @@ type RankOptions = {
53
53
  stability?: number | undefined;
54
54
  } | undefined;
55
55
  };
56
- type FallbackTransportConfig = {
56
+ export type FallbackTransportConfig = {
57
57
  /** The key of the Fallback transport. */
58
58
  key?: TransportConfig["key"] | undefined;
59
59
  /** The name of the Fallback transport. */
@@ -67,15 +67,15 @@ type FallbackTransportConfig = {
67
67
  /** Callback on whether an error should throw or try the next transport in the fallback. */
68
68
  shouldThrow?: (error: Error) => boolean | undefined;
69
69
  };
70
- type FallbackTransport<transports extends readonly Transport[] = readonly Transport[]> = Transport<"fallback", {
70
+ export type FallbackTransport<transports extends readonly Transport[] = readonly Transport[]> = Transport<"fallback", {
71
71
  onResponse: (fn: OnResponseFn) => void;
72
72
  transports: { [key in keyof transports]: ReturnType<transports[key]>; };
73
73
  }>;
74
- type FallbackTransportErrorType = CreateTransportErrorType | ErrorType;
75
- declare function fallback<const transports extends readonly Transport[]>(transports_: transports, config?: FallbackTransportConfig): FallbackTransport<transports>;
76
- declare function shouldThrow(error: Error): boolean;
74
+ export type FallbackTransportErrorType = CreateTransportErrorType | ErrorType;
75
+ export declare function fallback<const transports extends readonly Transport[]>(transports_: transports, config?: FallbackTransportConfig): FallbackTransport<transports>;
76
+ export declare function shouldThrow(error: Error): boolean;
77
77
  /** @internal */
78
- declare function rankTransports({ chain, interval, onTransports, ping, sampleCount, timeout, transports, weights }: {
78
+ export declare function rankTransports({ chain, interval, onTransports, ping, sampleCount, timeout, transports, weights }: {
79
79
  chain?: Chain | undefined;
80
80
  interval: RankOptions["interval"];
81
81
  onTransports: (transports: readonly Transport[]) => void;
@@ -86,5 +86,4 @@ declare function rankTransports({ chain, interval, onTransports, ping, sampleCou
86
86
  weights?: RankOptions["weights"] | undefined;
87
87
  }): void;
88
88
  //#endregion
89
- export { FallbackTransport, FallbackTransportConfig, FallbackTransportErrorType, OnResponseFn, fallback, rankTransports, shouldThrow };
90
89
  //# sourceMappingURL=fallback.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fallback.js","names":["createTransport","TransportMethodNotSupportedError","AllTransportsFailedError","InsufficientUTXOBalanceError","wait"],"sources":["../../../src/transports/fallback.ts"],"sourcesContent":["import { RpcErrorCode } from '../errors/rpc.js'\nimport {\n AllTransportsFailedError,\n TransportMethodNotSupportedError,\n} from '../errors/transport.js'\nimport type { ErrorType } from '../errors/utils.js'\nimport { InsufficientUTXOBalanceError } from '../errors/utxo.js'\nimport { createTransport } from '../factories/createTransport.js'\nimport type { Chain } from '../types/chain.js'\nimport type {\n CreateTransportErrorType,\n Transport,\n TransportConfig,\n} from '../types/transport.js'\nimport { wait } from '../utils/wait.js'\n\n// TODO: Narrow `method` & `params` types.\nexport type OnResponseFn = (\n args: {\n method: string\n params: unknown[]\n transport: ReturnType<Transport>\n } & (\n | {\n error?: undefined\n response: unknown\n status: 'success'\n }\n | {\n error: Error\n response?: undefined\n status: 'error'\n }\n )\n) => void\n\ntype RankOptions = {\n /**\n * The polling interval (in ms) at which the ranker should ping the RPC URL.\n * @default client.pollingInterval\n */\n interval?: number | undefined\n /**\n * Ping method to determine latency.\n */\n ping?: (parameters: {\n transport: ReturnType<Transport>\n }) => Promise<unknown> | undefined\n /**\n * The number of previous samples to perform ranking on.\n * @default 10\n */\n sampleCount?: number | undefined\n /**\n * Timeout when sampling transports.\n * @default 1_000\n */\n timeout?: number | undefined\n /**\n * Weights to apply to the scores. Weight values are proportional.\n */\n weights?:\n | {\n /**\n * The weight to apply to the latency score.\n * @default 0.3\n */\n latency?: number | undefined\n /**\n * The weight to apply to the stability score.\n * @default 0.7\n */\n stability?: number | undefined\n }\n | undefined\n}\n\nexport type FallbackTransportConfig = {\n /** The key of the Fallback transport. */\n key?: TransportConfig['key'] | undefined\n /** The name of the Fallback transport. */\n name?: TransportConfig['name'] | undefined\n /** Toggle to enable ranking, or rank options. */\n rank?: boolean | RankOptions | undefined\n /** The max number of times to retry. */\n retryCount?: TransportConfig['retryCount'] | undefined\n /** The base delay (in ms) between retries. */\n retryDelay?: TransportConfig['retryDelay'] | undefined\n /** Callback on whether an error should throw or try the next transport in the fallback. */\n shouldThrow?: (error: Error) => boolean | undefined\n}\n\nexport type FallbackTransport<\n transports extends readonly Transport[] = readonly Transport[],\n> = Transport<\n 'fallback',\n {\n onResponse: (fn: OnResponseFn) => void\n transports: {\n [key in keyof transports]: ReturnType<transports[key]>\n }\n }\n>\n\nexport type FallbackTransportErrorType = CreateTransportErrorType | ErrorType\n\nexport function fallback<const transports extends readonly Transport[]>(\n transports_: transports,\n config: FallbackTransportConfig = {}\n): FallbackTransport<transports> {\n const {\n key = 'fallback',\n name = 'Fallback',\n rank = false,\n shouldThrow: shouldThrow_ = shouldThrow,\n retryCount,\n retryDelay,\n } = config\n return (({ chain, pollingInterval = 4_000, timeout, ...rest }) => {\n let transports = transports_\n\n let onResponse: OnResponseFn = () => {}\n\n const transport = createTransport(\n {\n key,\n name,\n async request({ method, params }) {\n // Filter transports to only those that support the requested method\n const supportedTransports = transports.reduce<\n ReturnType<Transport>[]\n >((supportedTransports, transport) => {\n const instance = transport({\n ...rest,\n chain,\n retryCount: 0,\n timeout,\n })\n const { include, exclude } = instance.config.methods || {}\n if (include) {\n if (include.includes(method)) {\n supportedTransports.push(instance)\n }\n return supportedTransports\n }\n if (exclude) {\n if (!exclude.includes(method)) {\n supportedTransports.push(instance)\n }\n return supportedTransports\n }\n supportedTransports.push(instance)\n return supportedTransports\n }, [])\n\n if (!supportedTransports.length) {\n throw new TransportMethodNotSupportedError({ method })\n }\n\n const collectedErrors: Array<{\n transport: string\n error: Error\n attempt: number\n }> = []\n\n const fetch = async (i = 0): Promise<any> => {\n const transport = supportedTransports[i]\n try {\n const response = await transport.request({\n method,\n params,\n })\n\n onResponse({\n method,\n params: params as unknown[],\n response,\n transport,\n status: 'success',\n })\n\n return response\n } catch (err) {\n onResponse({\n error: err as Error,\n method,\n params: params as unknown[],\n transport,\n status: 'error',\n })\n\n if (shouldThrow_(err as Error)) {\n throw err\n }\n\n collectedErrors.push({\n transport: transport.config.name,\n error: err as Error,\n attempt: i + 1,\n })\n\n // If we've reached the end of the fallbacks, throw all collected errors.\n if (i === supportedTransports.length - 1) {\n throw new AllTransportsFailedError({\n method,\n params,\n errors: collectedErrors,\n totalAttempts: i + 1,\n })\n }\n\n // Otherwise, try the next fallback.\n return fetch(i + 1)\n }\n }\n return fetch()\n },\n retryCount,\n retryDelay,\n type: 'fallback',\n },\n {\n onResponse: (fn: OnResponseFn) => {\n onResponse = fn\n },\n transports: transports.map((fn) => fn({ chain, retryCount: 0 })),\n }\n )\n\n if (rank) {\n const rankOptions = (typeof rank === 'object' ? rank : {}) as RankOptions\n rankTransports({\n chain,\n interval: rankOptions.interval ?? pollingInterval,\n onTransports: (transports_) => {\n transports = transports_ as transports\n },\n ping: rankOptions.ping,\n sampleCount: rankOptions.sampleCount,\n timeout: rankOptions.timeout,\n transports,\n weights: rankOptions.weights,\n })\n }\n return transport\n }) as FallbackTransport<transports>\n}\n\nexport function shouldThrow(error: Error): boolean {\n if (error instanceof InsufficientUTXOBalanceError) {\n return true\n }\n\n if ('code' in error && typeof error.code === 'number') {\n if (\n error.code === RpcErrorCode.INTERNAL_ERROR ||\n error.code === RpcErrorCode.USER_REJECTION ||\n error.code === 5000 // CAIP UserRejectedRequestError\n ) {\n return true\n }\n }\n\n return false\n}\n\n/** @internal */\nexport function rankTransports({\n chain,\n interval = 4_000,\n onTransports,\n ping,\n sampleCount = 10,\n timeout = 1_000,\n transports,\n weights = {},\n}: {\n chain?: Chain | undefined\n interval: RankOptions['interval']\n onTransports: (transports: readonly Transport[]) => void\n ping?: RankOptions['ping'] | undefined\n sampleCount?: RankOptions['sampleCount'] | undefined\n timeout?: RankOptions['timeout'] | undefined\n transports: readonly Transport[]\n weights?: RankOptions['weights'] | undefined\n}): void {\n const { stability: stabilityWeight = 0.7, latency: latencyWeight = 0.3 } =\n weights\n\n type SampleData = { latency: number; success: number }\n type Sample = SampleData[]\n const samples: Sample[] = []\n\n const rankTransports_ = async () => {\n // 1. Take a sample from each Transport.\n const sample: Sample = await Promise.all(\n transports.map(async (transport) => {\n const transport_ = transport({ chain, retryCount: 0, timeout })\n\n const start = Date.now()\n let end: number\n let success: number\n try {\n await (ping\n ? ping({ transport: transport_ })\n : transport_.request({\n method: 'net_listening',\n params: undefined,\n }))\n success = 1\n } catch {\n success = 0\n } finally {\n end = Date.now()\n }\n const latency = end - start\n return { latency, success }\n })\n )\n\n // 2. Store the sample. If we have more than `sampleCount` samples, remove\n // the oldest sample.\n samples.push(sample)\n if (samples.length > sampleCount) {\n samples.shift()\n }\n\n // 3. Calculate the max latency from samples.\n const maxLatency = Math.max(\n ...samples.map((sample) =>\n Math.max(...sample.map(({ latency }) => latency))\n )\n )\n\n // 4. Calculate the score for each Transport.\n const scores = transports\n .map((_, i) => {\n const latencies = samples.map((sample) => sample[i].latency)\n const meanLatency =\n latencies.reduce((acc, latency) => acc + latency, 0) /\n latencies.length\n const latencyScore = 1 - meanLatency / maxLatency\n\n const successes = samples.map((sample) => sample[i].success)\n const stabilityScore =\n successes.reduce((acc, success) => acc + success, 0) /\n successes.length\n\n if (stabilityScore === 0) {\n return [0, i]\n }\n return [\n latencyWeight * latencyScore + stabilityWeight * stabilityScore,\n i,\n ]\n })\n .sort((a, b) => b[0] - a[0])\n\n // 5. Sort the Transports by score.\n onTransports(scores.map(([, i]) => transports[i]))\n\n // 6. Wait, and then rank again.\n await wait(interval)\n rankTransports_()\n }\n rankTransports_()\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"fallback.js","names":["createTransport","TransportMethodNotSupportedError","AllTransportsFailedError","InsufficientUTXOBalanceError","wait"],"sources":["../../../src/transports/fallback.ts"],"sourcesContent":["import { RpcErrorCode } from '../errors/rpc.js'\nimport {\n AllTransportsFailedError,\n TransportMethodNotSupportedError,\n} from '../errors/transport.js'\nimport type { ErrorType } from '../errors/utils.js'\nimport { InsufficientUTXOBalanceError } from '../errors/utxo.js'\nimport { createTransport } from '../factories/createTransport.js'\nimport type { Chain } from '../types/chain.js'\nimport type {\n CreateTransportErrorType,\n Transport,\n TransportConfig,\n} from '../types/transport.js'\nimport { wait } from '../utils/wait.js'\n\n// TODO: Narrow `method` & `params` types.\nexport type OnResponseFn = (\n args: {\n method: string\n params: unknown[]\n transport: ReturnType<Transport>\n } & (\n | {\n error?: undefined\n response: unknown\n status: 'success'\n }\n | {\n error: Error\n response?: undefined\n status: 'error'\n }\n )\n) => void\n\ntype RankOptions = {\n /**\n * The polling interval (in ms) at which the ranker should ping the RPC URL.\n * @default client.pollingInterval\n */\n interval?: number | undefined\n /**\n * Ping method to determine latency.\n */\n ping?: (parameters: {\n transport: ReturnType<Transport>\n }) => Promise<unknown> | undefined\n /**\n * The number of previous samples to perform ranking on.\n * @default 10\n */\n sampleCount?: number | undefined\n /**\n * Timeout when sampling transports.\n * @default 1_000\n */\n timeout?: number | undefined\n /**\n * Weights to apply to the scores. Weight values are proportional.\n */\n weights?:\n | {\n /**\n * The weight to apply to the latency score.\n * @default 0.3\n */\n latency?: number | undefined\n /**\n * The weight to apply to the stability score.\n * @default 0.7\n */\n stability?: number | undefined\n }\n | undefined\n}\n\nexport type FallbackTransportConfig = {\n /** The key of the Fallback transport. */\n key?: TransportConfig['key'] | undefined\n /** The name of the Fallback transport. */\n name?: TransportConfig['name'] | undefined\n /** Toggle to enable ranking, or rank options. */\n rank?: boolean | RankOptions | undefined\n /** The max number of times to retry. */\n retryCount?: TransportConfig['retryCount'] | undefined\n /** The base delay (in ms) between retries. */\n retryDelay?: TransportConfig['retryDelay'] | undefined\n /** Callback on whether an error should throw or try the next transport in the fallback. */\n shouldThrow?: (error: Error) => boolean | undefined\n}\n\nexport type FallbackTransport<\n transports extends readonly Transport[] = readonly Transport[],\n> = Transport<\n 'fallback',\n {\n onResponse: (fn: OnResponseFn) => void\n transports: {\n [key in keyof transports]: ReturnType<transports[key]>\n }\n }\n>\n\nexport type FallbackTransportErrorType = CreateTransportErrorType | ErrorType\n\nexport function fallback<const transports extends readonly Transport[]>(\n transports_: transports,\n config: FallbackTransportConfig = {}\n): FallbackTransport<transports> {\n const {\n key = 'fallback',\n name = 'Fallback',\n rank = false,\n shouldThrow: shouldThrow_ = shouldThrow,\n retryCount,\n retryDelay,\n } = config\n return (({ chain, pollingInterval = 4_000, timeout, ...rest }) => {\n let transports = transports_\n\n let onResponse: OnResponseFn = () => {}\n\n const transport = createTransport(\n {\n key,\n name,\n async request({ method, params }) {\n // Filter transports to only those that support the requested method\n const supportedTransports = transports.reduce<\n ReturnType<Transport>[]\n >((supportedTransports, transport) => {\n const instance = transport({\n ...rest,\n chain,\n retryCount: 0,\n timeout,\n })\n const { include, exclude } = instance.config.methods || {}\n if (include) {\n if (include.includes(method)) {\n supportedTransports.push(instance)\n }\n return supportedTransports\n }\n if (exclude) {\n if (!exclude.includes(method)) {\n supportedTransports.push(instance)\n }\n return supportedTransports\n }\n supportedTransports.push(instance)\n return supportedTransports\n }, [])\n\n if (!supportedTransports.length) {\n throw new TransportMethodNotSupportedError({ method })\n }\n\n const collectedErrors: Array<{\n transport: string\n error: Error\n attempt: number\n }> = []\n\n const fetch = async (i = 0): Promise<any> => {\n const transport = supportedTransports[i]\n try {\n const response = await transport.request({\n method,\n params,\n })\n\n onResponse({\n method,\n params: params as unknown[],\n response,\n transport,\n status: 'success',\n })\n\n return response\n } catch (err) {\n onResponse({\n error: err as Error,\n method,\n params: params as unknown[],\n transport,\n status: 'error',\n })\n\n if (shouldThrow_(err as Error)) {\n throw err\n }\n\n collectedErrors.push({\n transport: transport.config.name,\n error: err as Error,\n attempt: i + 1,\n })\n\n // If we've reached the end of the fallbacks, throw all collected errors.\n if (i === supportedTransports.length - 1) {\n throw new AllTransportsFailedError({\n method,\n params,\n errors: collectedErrors,\n totalAttempts: i + 1,\n })\n }\n\n // Otherwise, try the next fallback.\n return fetch(i + 1)\n }\n }\n return fetch()\n },\n retryCount,\n retryDelay,\n type: 'fallback',\n },\n {\n onResponse: (fn: OnResponseFn) => {\n onResponse = fn\n },\n transports: transports.map((fn) => fn({ chain, retryCount: 0 })),\n }\n )\n\n if (rank) {\n const rankOptions = (typeof rank === 'object' ? rank : {}) as RankOptions\n rankTransports({\n chain,\n interval: rankOptions.interval ?? pollingInterval,\n onTransports: (transports_) => {\n transports = transports_ as transports\n },\n ping: rankOptions.ping,\n sampleCount: rankOptions.sampleCount,\n timeout: rankOptions.timeout,\n transports,\n weights: rankOptions.weights,\n })\n }\n return transport\n }) as FallbackTransport<transports>\n}\n\nexport function shouldThrow(error: Error): boolean {\n if (error instanceof InsufficientUTXOBalanceError) {\n return true\n }\n\n if ('code' in error && typeof error.code === 'number') {\n if (\n error.code === RpcErrorCode.INTERNAL_ERROR ||\n error.code === RpcErrorCode.USER_REJECTION ||\n error.code === 5000 // CAIP UserRejectedRequestError\n ) {\n return true\n }\n }\n\n return false\n}\n\n/** @internal */\nexport function rankTransports({\n chain,\n interval = 4_000,\n onTransports,\n ping,\n sampleCount = 10,\n timeout = 1_000,\n transports,\n weights = {},\n}: {\n chain?: Chain | undefined\n interval: RankOptions['interval']\n onTransports: (transports: readonly Transport[]) => void\n ping?: RankOptions['ping'] | undefined\n sampleCount?: RankOptions['sampleCount'] | undefined\n timeout?: RankOptions['timeout'] | undefined\n transports: readonly Transport[]\n weights?: RankOptions['weights'] | undefined\n}): void {\n const { stability: stabilityWeight = 0.7, latency: latencyWeight = 0.3 } =\n weights\n\n type SampleData = { latency: number; success: number }\n type Sample = SampleData[]\n const samples: Sample[] = []\n\n const rankTransports_ = async () => {\n // 1. Take a sample from each Transport.\n const sample: Sample = await Promise.all(\n transports.map(async (transport) => {\n const transport_ = transport({ chain, retryCount: 0, timeout })\n\n const start = Date.now()\n let end: number\n let success: number\n try {\n await (ping\n ? ping({ transport: transport_ })\n : transport_.request({\n method: 'net_listening',\n params: undefined,\n }))\n success = 1\n } catch {\n success = 0\n } finally {\n end = Date.now()\n }\n const latency = end - start\n return { latency, success }\n })\n )\n\n // 2. Store the sample. If we have more than `sampleCount` samples, remove\n // the oldest sample.\n samples.push(sample)\n if (samples.length > sampleCount) {\n samples.shift()\n }\n\n // 3. Calculate the max latency from samples.\n const maxLatency = Math.max(\n ...samples.map((sample) =>\n Math.max(...sample.map(({ latency }) => latency))\n )\n )\n\n // 4. Calculate the score for each Transport.\n const scores = transports\n .map((_, i) => {\n const latencies = samples.map((sample) => sample[i].latency)\n const meanLatency =\n latencies.reduce((acc, latency) => acc + latency, 0) /\n latencies.length\n const latencyScore = 1 - meanLatency / maxLatency\n\n const successes = samples.map((sample) => sample[i].success)\n const stabilityScore =\n successes.reduce((acc, success) => acc + success, 0) /\n successes.length\n\n if (stabilityScore === 0) {\n return [0, i]\n }\n return [\n latencyWeight * latencyScore + stabilityWeight * stabilityScore,\n i,\n ]\n })\n .sort((a, b) => b[0] - a[0])\n\n // 5. Sort the Transports by score.\n onTransports(scores.map(([, i]) => transports[i]))\n\n // 6. Wait, and then rank again.\n await wait(interval)\n rankTransports_()\n }\n rankTransports_()\n}\n"],"mappings":"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"}
@@ -1,14 +1,14 @@
1
1
  import { RpcResponse } from "../types/rpc.js";
2
2
  import { MaybePromise } from "../types/utils.js";
3
3
  //#region src/transports/getHttpRpcClient.d.ts
4
- type RpcRequest = {
4
+ export type RpcRequest = {
5
5
  jsonrpc?: "2.0";
6
6
  method: string;
7
7
  params?: any;
8
8
  id?: number;
9
9
  };
10
- type HttpRequestReturnType<body extends RpcRequest | RpcRequest[] = RpcRequest> = body extends RpcRequest[] ? RpcResponse[] : RpcResponse;
11
- type HttpRpcClientOptions = {
10
+ export type HttpRequestReturnType<body extends RpcRequest | RpcRequest[] = RpcRequest> = body extends RpcRequest[] ? RpcResponse[] : RpcResponse;
11
+ export type HttpRpcClientOptions = {
12
12
  /** Request configuration to pass to `fetch`. */
13
13
  fetchOptions?: Omit<RequestInit, "body"> | undefined;
14
14
  /** A callback to handle the request. */
@@ -20,7 +20,7 @@ type HttpRpcClientOptions = {
20
20
  /** The timeout (in ms) for the request. */
21
21
  timeout?: number | undefined;
22
22
  };
23
- type HttpRequestParameters<body extends RpcRequest | RpcRequest[] = RpcRequest> = {
23
+ export type HttpRequestParameters<body extends RpcRequest | RpcRequest[] = RpcRequest> = {
24
24
  url?: string;
25
25
  /** The RPC request body. */
26
26
  body?: body;
@@ -33,10 +33,9 @@ type HttpRequestParameters<body extends RpcRequest | RpcRequest[] = RpcRequest>
33
33
  /** The timeout (in ms) for the request. */
34
34
  timeout?: HttpRpcClientOptions["timeout"] | undefined;
35
35
  };
36
- type HttpRpcClient = {
36
+ export type HttpRpcClient = {
37
37
  request<body extends RpcRequest | RpcRequest[]>(params: HttpRequestParameters<body>): Promise<HttpRequestReturnType<body>>;
38
38
  };
39
- declare function getHttpRpcClient(url: string, options?: HttpRpcClientOptions): HttpRpcClient;
39
+ export declare function getHttpRpcClient(url: string, options?: HttpRpcClientOptions): HttpRpcClient;
40
40
  //#endregion
41
- export { HttpRequestParameters, HttpRequestReturnType, HttpRpcClient, HttpRpcClientOptions, RpcRequest, getHttpRpcClient };
42
41
  //# sourceMappingURL=getHttpRpcClient.d.ts.map
@@ -1,7 +1,6 @@
1
1
  import { RpcMethods } from "./types.js";
2
2
  //#region src/transports/getRpcProviderMethods.d.ts
3
3
  type providers = "blockchair" | "ankr" | "blockcypher" | "mempool" | string;
4
- declare function getRpcProviderMethods(key: providers): RpcMethods | null;
4
+ export declare function getRpcProviderMethods(key: providers): RpcMethods | null;
5
5
  //#endregion
6
- export { getRpcProviderMethods };
7
6
  //# sourceMappingURL=getRpcProviderMethods.d.ts.map
@@ -4,7 +4,7 @@ import { BtcRpcRequestFn, RpcSchema } from "../types/request.js";
4
4
  import { CreateTransportErrorType, Transport, TransportConfig } from "../types/transport.js";
5
5
  import { UrlRequiredErrorType } from "../errors/transport.js";
6
6
  //#region src/transports/http.d.ts
7
- type HttpTransportConfig<rpcSchema extends RpcSchema | undefined = undefined, raw extends boolean = false> = {
7
+ export type HttpTransportConfig<rpcSchema extends RpcSchema | undefined = undefined, raw extends boolean = false> = {
8
8
  /**
9
9
  * Whether to enable Batch JSON-RPC.
10
10
  * @link https://www.jsonrpc.org/specification#batch
@@ -41,15 +41,14 @@ type HttpTransportConfig<rpcSchema extends RpcSchema | undefined = undefined, ra
41
41
  /** The timeout (in ms) for the HTTP request. Default: 10_000 */
42
42
  timeout?: TransportConfig["timeout"] | undefined;
43
43
  };
44
- type HttpTransport<rpcSchema extends RpcSchema | undefined = undefined, raw extends boolean = false> = Transport<"http", {
44
+ export type HttpTransport<rpcSchema extends RpcSchema | undefined = undefined, raw extends boolean = false> = Transport<"http", {
45
45
  fetchOptions?: HttpTransportConfig["fetchOptions"] | undefined;
46
46
  url?: string | undefined;
47
47
  }, BtcRpcRequestFn<rpcSchema, raw>>;
48
- type HttpTransportErrorType = CreateTransportErrorType | UrlRequiredErrorType | ErrorType;
48
+ export type HttpTransportErrorType = CreateTransportErrorType | UrlRequiredErrorType | ErrorType;
49
49
  /**
50
50
  * @description Creates a HTTP transport that connects to a JSON-RPC API.
51
51
  */
52
- declare function http<rpcSchema extends RpcSchema | undefined = undefined, raw extends boolean = false>(url?: string | undefined, config?: HttpTransportConfig<rpcSchema, raw>): HttpTransport<rpcSchema, raw>;
52
+ export declare function http<rpcSchema extends RpcSchema | undefined = undefined, raw extends boolean = false>(url?: string | undefined, config?: HttpTransportConfig<rpcSchema, raw>): HttpTransport<rpcSchema, raw>;
53
53
  //#endregion
54
- export { HttpTransport, HttpTransportConfig, HttpTransportErrorType, http };
55
54
  //# sourceMappingURL=http.d.ts.map
@@ -1,6 +1,5 @@
1
1
  import { RpcMethodHandler } from "../types.js";
2
2
  //#region src/transports/mempool/getBalance.d.ts
3
- declare const getBalance: RpcMethodHandler<"getBalance">;
3
+ export declare const getBalance: RpcMethodHandler<"getBalance">;
4
4
  //#endregion
5
- export { getBalance };
6
5
  //# sourceMappingURL=getBalance.d.ts.map
@@ -1,6 +1,5 @@
1
1
  import { RpcMethodHandler } from "../types.js";
2
2
  //#region src/transports/mempool/getTransactionFee.d.ts
3
- declare const getTransactionFee: RpcMethodHandler<"getTransactionFee">;
3
+ export declare const getTransactionFee: RpcMethodHandler<"getTransactionFee">;
4
4
  //#endregion
5
- export { getTransactionFee };
6
5
  //# sourceMappingURL=getTransactionFee.d.ts.map
@@ -1,6 +1,5 @@
1
1
  import { RpcMethodHandler } from "../types.js";
2
2
  //#region src/transports/mempool/getTransactions.d.ts
3
- declare const getTransactions: RpcMethodHandler<"getTransactions">;
3
+ export declare const getTransactions: RpcMethodHandler<"getTransactions">;
4
4
  //#endregion
5
- export { getTransactions };
6
5
  //# sourceMappingURL=getTransactions.d.ts.map
@@ -3,7 +3,6 @@ import { HttpTransport, HttpTransportConfig } from "../http.js";
3
3
  type MempoolConfig = {
4
4
  baseUrl?: string;
5
5
  } & HttpTransportConfig;
6
- declare const mempool: (config?: MempoolConfig) => HttpTransport;
6
+ export declare const mempool: (config?: MempoolConfig) => HttpTransport;
7
7
  //#endregion
8
- export { mempool };
9
8
  //# sourceMappingURL=mempool.d.ts.map
@@ -1,5 +1,5 @@
1
1
  //#region src/transports/mempool/mempool.types.d.ts
2
- type MempoolBalanceResponse = {
2
+ export type MempoolBalanceResponse = {
3
3
  address: string;
4
4
  chain_stats: {
5
5
  funded_txo_count: number;
@@ -16,7 +16,7 @@ type MempoolBalanceResponse = {
16
16
  tx_count: number;
17
17
  };
18
18
  };
19
- type MempoolVin = {
19
+ export type MempoolVin = {
20
20
  txid: string;
21
21
  vout: number;
22
22
  prevout: MempoolVout;
@@ -26,14 +26,14 @@ type MempoolVin = {
26
26
  is_coinbase: boolean;
27
27
  sequence: number;
28
28
  };
29
- type MempoolVout = {
29
+ export type MempoolVout = {
30
30
  scriptpubkey: string;
31
31
  scriptpubkey_asm: string;
32
32
  scriptpubkey_type: string;
33
33
  scriptpubkey_address: string;
34
34
  value: number;
35
35
  };
36
- type MempoolUTXOResponse = {
36
+ export type MempoolUTXOResponse = {
37
37
  txid: string;
38
38
  vout: number;
39
39
  status: {
@@ -44,7 +44,7 @@ type MempoolUTXOResponse = {
44
44
  };
45
45
  value: number;
46
46
  }[];
47
- type MempoolTransaction = {
47
+ export type MempoolTransaction = {
48
48
  txid: string;
49
49
  version: number;
50
50
  locktime: number;
@@ -60,8 +60,7 @@ type MempoolTransaction = {
60
60
  block_time: number;
61
61
  };
62
62
  };
63
- type MempoolUTXOTransactionsResponse = Array<MempoolTransaction>;
64
- type MempoolErrorResponse = string;
63
+ export type MempoolUTXOTransactionsResponse = Array<MempoolTransaction>;
64
+ export type MempoolErrorResponse = string;
65
65
  //#endregion
66
- export { MempoolBalanceResponse, MempoolErrorResponse, MempoolTransaction, MempoolUTXOResponse, MempoolUTXOTransactionsResponse, MempoolVin, MempoolVout };
67
66
  //# sourceMappingURL=mempool.types.d.ts.map
@@ -1,6 +1,5 @@
1
1
  import { RpcMethods } from "../types.js";
2
2
  //#region src/transports/mempool/methods.d.ts
3
- declare const mempoolMethods: RpcMethods;
3
+ export declare const mempoolMethods: RpcMethods;
4
4
  //#endregion
5
- export { mempoolMethods };
6
5
  //# sourceMappingURL=methods.d.ts.map
@@ -1,7 +1,6 @@
1
1
  import { UTXOTransaction } from "../../types/transaction.js";
2
2
  import { MempoolTransaction } from "./mempool.types.js";
3
3
  //#region src/transports/mempool/utils.d.ts
4
- declare const mempoolTransactionTransformer: (txn: MempoolTransaction) => Partial<UTXOTransaction>;
4
+ export declare const mempoolTransactionTransformer: (txn: MempoolTransaction) => Partial<UTXOTransaction>;
5
5
  //#endregion
6
- export { mempoolTransactionTransformer };
7
6
  //# sourceMappingURL=utils.d.ts.map
@@ -3,8 +3,8 @@ import { UTXO, UTXOTransaction } from "../types/transaction.js";
3
3
  import { xPubAccount } from "../types/xpub.js";
4
4
  import { HttpRpcClient } from "./getHttpRpcClient.js";
5
5
  //#region src/transports/types.d.ts
6
- declare const UTXOAPISchemaMethods: UTXOMethod[];
7
- type UTXOAPISchema = [{
6
+ export declare const UTXOAPISchemaMethods: UTXOMethod[];
7
+ export type UTXOAPISchema = [{
8
8
  Method: "getBalance";
9
9
  Parameters: {
10
10
  address: string;
@@ -44,7 +44,7 @@ type UTXOAPISchema = [{
44
44
  };
45
45
  ReturnType: xPubAccount;
46
46
  }];
47
- type UTXOSchema = [{
47
+ export type UTXOSchema = [{
48
48
  Method: "getblockcount";
49
49
  Parameters: [];
50
50
  ReturnType: number;
@@ -69,8 +69,8 @@ type UTXOSchema = [{
69
69
  Parameters: [string, boolean, string?];
70
70
  ReturnType: UTXOTransaction;
71
71
  }, ...UTXOAPISchema];
72
- type UTXOMethod = UTXOSchema[number]["Method"];
73
- type SignPsbtParameters = {
72
+ export type UTXOMethod = UTXOSchema[number]["Method"];
73
+ export type SignPsbtParameters = {
74
74
  /** The PSBT encoded as a hexadecimal string */
75
75
  psbt: string;
76
76
  /**
@@ -95,24 +95,24 @@ type SignPsbtParameters = {
95
95
  */
96
96
  finalize?: boolean;
97
97
  };
98
- type SignPsbtReturnType = string;
99
- type UTXOWalletSchema = readonly [{
98
+ export type SignPsbtReturnType = string;
99
+ export type UTXOWalletSchema = readonly [{
100
100
  Method: "signPsbt";
101
101
  Parameters: SignPsbtParameters;
102
102
  ReturnType: SignPsbtReturnType;
103
103
  }];
104
- type SuccessResult<result> = {
104
+ export type SuccessResult<result> = {
105
105
  method?: undefined;
106
106
  result: result;
107
107
  error?: undefined;
108
108
  };
109
- type ErrorResult<error> = {
109
+ export type ErrorResult<error> = {
110
110
  method?: undefined;
111
111
  result?: undefined;
112
112
  error: error;
113
113
  };
114
- type RpcResponse<result = any, error = any> = SuccessResult<result> | ErrorResult<error>;
115
- type RpcMethodHandler<M extends UTXOMethod = UTXOMethod> = (client: HttpRpcClient, config: {
114
+ export type RpcResponse<result = any, error = any> = SuccessResult<result> | ErrorResult<error>;
115
+ export type RpcMethodHandler<M extends UTXOMethod = UTXOMethod> = (client: HttpRpcClient, config: {
116
116
  baseUrl: string;
117
117
  apiKey?: string;
118
118
  }, params: Extract<UTXOSchema[number], {
@@ -120,7 +120,6 @@ type RpcMethodHandler<M extends UTXOMethod = UTXOMethod> = (client: HttpRpcClien
120
120
  }>["Parameters"]) => Promise<RpcResponse<Extract<UTXOSchema[number], {
121
121
  Method: M;
122
122
  }>["ReturnType"]>>;
123
- type RpcMethods = { [key in UTXOMethod]?: RpcMethodHandler<key>; };
123
+ export type RpcMethods = { [key in UTXOMethod]?: RpcMethodHandler<key>; };
124
124
  //#endregion
125
- export { ErrorResult, RpcMethodHandler, RpcMethods, RpcResponse, SignPsbtParameters, SignPsbtReturnType, SuccessResult, UTXOAPISchema, UTXOAPISchemaMethods, UTXOMethod, UTXOSchema, UTXOWalletSchema };
126
125
  //# sourceMappingURL=types.d.ts.map
@@ -4,7 +4,6 @@ type UTXOHttpTransportConfig = HttpTransportConfig & {
4
4
  includeChainToURL?: boolean;
5
5
  apiKey?: string;
6
6
  };
7
- declare function utxo(url?: string, config?: UTXOHttpTransportConfig): HttpTransport;
7
+ export declare function utxo(url?: string, config?: UTXOHttpTransportConfig): HttpTransport;
8
8
  //#endregion
9
- export { utxo };
10
9
  //# sourceMappingURL=utxo.d.ts.map
@@ -1,11 +1,10 @@
1
1
  import { Address, AddressPurpose, AddressType } from "./address.js";
2
2
  //#region src/types/account.d.ts
3
- interface Account {
3
+ export interface Account {
4
4
  address: Address;
5
5
  addressType: AddressType;
6
6
  publicKey: string;
7
7
  purpose: AddressPurpose;
8
8
  }
9
9
  //#endregion
10
- export { Account };
11
10
  //# sourceMappingURL=account.d.ts.map
@@ -1,15 +1,15 @@
1
1
  import { Network } from "./chain.js";
2
2
  //#region src/types/address.d.ts
3
- type Address = string;
4
- type AddressPurpose = "payment" | "ordinals" | "stacks";
5
- declare enum AddressType {
3
+ export type Address = string;
4
+ export type AddressPurpose = "payment" | "ordinals" | "stacks";
5
+ export declare enum AddressType {
6
6
  p2pkh = "p2pkh",
7
7
  p2sh = "p2sh",
8
8
  p2wpkh = "p2wpkh",
9
9
  p2wsh = "p2wsh",
10
10
  p2tr = "p2tr"
11
11
  }
12
- type AddressInfo = {
12
+ export type AddressInfo = {
13
13
  bech32: boolean;
14
14
  network: Network;
15
15
  address: Address;
@@ -17,5 +17,4 @@ type AddressInfo = {
17
17
  purpose: AddressPurpose;
18
18
  };
19
19
  //#endregion
20
- export { Address, AddressInfo, AddressPurpose, AddressType };
21
20
  //# sourceMappingURL=address.d.ts.map
@@ -17,7 +17,6 @@
17
17
  * the usage of `pending` may lead to inconsistencies as a result of an
18
18
  * overly aggressive cache system. This may cause downstream errors/invalid states.
19
19
  */
20
- type BlockTag = "latest" | "earliest" | "pending" | "safe" | "finalized";
20
+ export type BlockTag = "latest" | "earliest" | "pending" | "safe" | "finalized";
21
21
  //#endregion
22
- export { BlockTag };
23
22
  //# sourceMappingURL=block.d.ts.map
@@ -1,5 +1,5 @@
1
1
  //#region src/types/blockStats.d.ts
2
- type BlockStats = Partial<{
2
+ export type BlockStats = Partial<{
3
3
  avgfee: number;
4
4
  avgfeerate: number;
5
5
  avgtxsize: number;
@@ -32,7 +32,6 @@ type BlockStats = Partial<{
32
32
  utxo_increase_actual: number;
33
33
  utxo_size_inc_actual: number;
34
34
  }>;
35
- type BlockStatsKeys = keyof BlockStats;
35
+ export type BlockStatsKeys = keyof BlockStats;
36
36
  //#endregion
37
- export { BlockStats, BlockStatsKeys };
38
37
  //# sourceMappingURL=blockStats.d.ts.map
@@ -1,5 +1,5 @@
1
1
  //#region src/types/chain.d.ts
2
- declare enum ChainId {
2
+ export declare enum ChainId {
3
3
  BITCOIN_MAINNET = "bitcoin:mainnet",
4
4
  BITCOIN_TESTNET = "bitcoin:testnet",
5
5
  BITCOIN_TESTNET4 = "bitcoin:testnet4",
@@ -9,12 +9,12 @@ declare enum ChainId {
9
9
  STACKS_MAINNET = "stacks:mainnet",
10
10
  STACKS_TESTNET = "stacks:testnet"
11
11
  }
12
- declare enum Network {
12
+ export declare enum Network {
13
13
  Mainnet = "mainnet",
14
14
  Testnet = "testnet",
15
15
  Regtest = "regtest"
16
16
  }
17
- type Chain<formatters extends ChainFormatters | undefined = ChainFormatters | undefined, custom extends Record<string, unknown> | undefined = Record<string, unknown> | undefined> = {
17
+ export type Chain<formatters extends ChainFormatters | undefined = ChainFormatters | undefined, custom extends Record<string, unknown> | undefined = Record<string, unknown> | undefined> = {
18
18
  /** Collection of block explorers */
19
19
  blockExplorers?: {
20
20
  [key: string]: ChainBlockExplorer;
@@ -32,13 +32,13 @@ type Chain<formatters extends ChainFormatters | undefined = ChainFormatters | un
32
32
  /** Flag for test networks */
33
33
  testnet?: boolean | undefined;
34
34
  } & ChainConfig<formatters, custom>;
35
- type ChainConfig<formatters extends ChainFormatters | undefined = ChainFormatters | undefined, custom extends Record<string, unknown> | undefined = Record<string, unknown> | undefined> = {
35
+ export type ChainConfig<formatters extends ChainFormatters | undefined = ChainFormatters | undefined, custom extends Record<string, unknown> | undefined = Record<string, unknown> | undefined> = {
36
36
  /** Custom chain data. */
37
37
  custom?: custom | undefined;
38
38
  /** Modifies how data is formatted and typed (e.g. blocks and transactions) */
39
39
  formatters?: formatters | undefined;
40
40
  };
41
- type ChainFormatters = {
41
+ export type ChainFormatters = {
42
42
  /** Modifies how the Block structure is formatted & typed. */
43
43
  block?: ChainFormatter<"block"> | undefined;
44
44
  /** Modifies how the Transaction structure is formatted & typed. */
@@ -48,7 +48,7 @@ type ChainFormatters = {
48
48
  /** Modifies how the TransactionRequest structure is formatted & typed. */
49
49
  transactionRequest?: ChainFormatter<"transactionRequest"> | undefined;
50
50
  };
51
- type ChainFormatter<type extends string = string> = {
51
+ export type ChainFormatter<type extends string = string> = {
52
52
  format: (args: any) => any;
53
53
  type: type;
54
54
  };
@@ -62,5 +62,4 @@ type ChainRpcUrls = {
62
62
  webSocket?: readonly string[] | undefined;
63
63
  };
64
64
  //#endregion
65
- export { Chain, ChainConfig, ChainFormatter, ChainFormatters, ChainId, Network };
66
65
  //# sourceMappingURL=chain.d.ts.map
@@ -7,7 +7,7 @@ import { ErrorType } from "../errors/utils.js";
7
7
  import { BtcRpcRequestFn, RpcSchema } from "./request.js";
8
8
  import { Transport } from "./transport.js";
9
9
  //#region src/types/client.d.ts
10
- type ClientConfig<transport extends Transport = Transport, chain extends Chain | undefined = Chain | undefined, accountOrAddress extends Account | Address | undefined = Account | Address | undefined, rpcSchema extends RpcSchema | undefined = undefined> = {
10
+ export type ClientConfig<transport extends Transport = Transport, chain extends Chain | undefined = Chain | undefined, accountOrAddress extends Account | Address | undefined = Account | Address | undefined, rpcSchema extends RpcSchema | undefined = undefined> = {
11
11
  /** The Account to use for the Client. This will be used for Actions that require an account as an argument. */
12
12
  account?: accountOrAddress | Account | Address | undefined;
13
13
  /**
@@ -35,7 +35,7 @@ type ClientConfig<transport extends Transport = Transport, chain extends Chain |
35
35
  /** The type of client. */
36
36
  type?: string | undefined;
37
37
  };
38
- type Client<transport extends Transport = Transport, chain extends Chain | undefined = Chain | undefined, account extends Account | undefined = Account | undefined, rpcSchema extends RpcSchema | undefined = undefined, extended extends Extended | undefined = Extended | undefined> = Client_Base<transport, chain, account, rpcSchema> & (extended extends Extended ? extended : unknown) & {
38
+ export type Client<transport extends Transport = Transport, chain extends Chain | undefined = Chain | undefined, account extends Account | undefined = Account | undefined, rpcSchema extends RpcSchema | undefined = undefined, extended extends Extended | undefined = Extended | undefined> = Client_Base<transport, chain, account, rpcSchema> & (extended extends Extended ? extended : unknown) & {
39
39
  extend: <const client extends Extended>(fn: (client: Client<transport, chain, account, rpcSchema, extended>) => client) => Client<transport, chain, account, rpcSchema, Prettify<client> & (extended extends Extended ? extended : unknown)>;
40
40
  };
41
41
  type Client_Base<transport extends Transport = Transport, chain extends Chain | undefined = Chain | undefined, account extends Account | undefined = Account | undefined, rpcSchema extends RpcSchema | undefined = undefined> = {
@@ -63,7 +63,6 @@ type Client_Base<transport extends Transport = Transport, chain extends Chain |
63
63
  type Extended = Prettify<{ [_ in keyof Client_Base]?: undefined; } & {
64
64
  [key: string]: unknown;
65
65
  }>;
66
- type CreateClientErrorType = ErrorType;
66
+ export type CreateClientErrorType = ErrorType;
67
67
  //#endregion
68
- export { Client, ClientConfig, CreateClientErrorType };
69
68
  //# sourceMappingURL=client.d.ts.map
@@ -1,5 +1,4 @@
1
1
  //#region src/types/hash.d.ts
2
- type Hash = `0x${string}`;
2
+ export type Hash = `0x${string}`;
3
3
  //#endregion
4
- export { Hash };
5
4
  //# sourceMappingURL=hash.d.ts.map
@@ -2,21 +2,21 @@ import { OneOf } from "./utils.js";
2
2
  import { UTXOMethod } from "../transports/types.js";
3
3
  import { ErrorType } from "../errors/utils.js";
4
4
  //#region src/types/request.d.ts
5
- type RpcSchema = readonly {
5
+ export type RpcSchema = readonly {
6
6
  Method: string;
7
7
  Parameters?: unknown | undefined;
8
8
  ReturnType: unknown;
9
9
  }[];
10
- type RpcSchemaOverride = Omit<RpcSchema[number], "Method">;
10
+ export type RpcSchemaOverride = Omit<RpcSchema[number], "Method">;
11
11
  type DerivedRpcSchema<rpcSchema extends RpcSchema | undefined> = rpcSchema extends RpcSchema ? rpcSchema : never;
12
- type RpcParameters<rpcSchema extends RpcSchema | undefined = undefined> = rpcSchema extends RpcSchema ? { [K in keyof rpcSchema]: rpcSchema[K] extends RpcSchema[number] ? {
12
+ export type RpcParameters<rpcSchema extends RpcSchema | undefined = undefined> = rpcSchema extends RpcSchema ? { [K in keyof rpcSchema]: rpcSchema[K] extends RpcSchema[number] ? {
13
13
  method: rpcSchema[K]["Method"];
14
14
  params: rpcSchema[K]["Parameters"];
15
15
  } : never; }[number] : {
16
16
  method: string;
17
17
  params?: unknown | undefined;
18
18
  };
19
- type BtcRpcRequestOptions = {
19
+ export type BtcRpcRequestOptions = {
20
20
  /** Deduplicate in-flight requests. */
21
21
  dedupe?: boolean | undefined;
22
22
  /** Methods to include or exclude from executing RPC requests. */
@@ -32,7 +32,7 @@ type BtcRpcRequestOptions = {
32
32
  /** Unique identifier for the request. */
33
33
  uid?: string | undefined;
34
34
  };
35
- type BtcRpcRequestFn<rpcSchema extends RpcSchema | undefined = undefined, raw extends boolean = false> = <_parameters extends RpcParameters<DerivedRpcSchema<rpcSchema>> = RpcParameters<DerivedRpcSchema<rpcSchema>>, _returnType = DerivedRpcSchema<rpcSchema> extends RpcSchema ? raw extends true ? OneOf<{
35
+ export type BtcRpcRequestFn<rpcSchema extends RpcSchema | undefined = undefined, raw extends boolean = false> = <_parameters extends RpcParameters<DerivedRpcSchema<rpcSchema>> = RpcParameters<DerivedRpcSchema<rpcSchema>>, _returnType = DerivedRpcSchema<rpcSchema> extends RpcSchema ? raw extends true ? OneOf<{
36
36
  result: Extract<DerivedRpcSchema<rpcSchema>[number], {
37
37
  Method: _parameters["method"];
38
38
  }>["ReturnType"];
@@ -46,5 +46,4 @@ type BtcRpcRequestFn<rpcSchema extends RpcSchema | undefined = undefined, raw ex
46
46
  error: ErrorType;
47
47
  }> : unknown>(args: _parameters, options?: BtcRpcRequestOptions | undefined) => Promise<_returnType>;
48
48
  //#endregion
49
- export { BtcRpcRequestFn, BtcRpcRequestOptions, RpcParameters, RpcSchema, RpcSchemaOverride };
50
49
  //# sourceMappingURL=request.d.ts.map
@@ -1,11 +1,11 @@
1
1
  //#region src/types/rpc.d.ts
2
- type RpcRequest = {
2
+ export type RpcRequest = {
3
3
  jsonrpc?: "2.0" | undefined;
4
4
  method: string;
5
5
  params?: any | undefined;
6
6
  id?: number | undefined;
7
7
  };
8
- type RpcResponse<result = any, error = any> = {
8
+ export type RpcResponse<result = any, error = any> = {
9
9
  jsonrpc: `${number}`;
10
10
  id: number;
11
11
  } & (SuccessResult<result> | ErrorResult<error>);
@@ -19,8 +19,8 @@ type ErrorResult<error> = {
19
19
  result?: undefined;
20
20
  error: error;
21
21
  };
22
- type BitcoinRpcMethods = [...WalletRpcSchema];
23
- type WalletRpcSchema = [{
22
+ export type BitcoinRpcMethods = [...WalletRpcSchema];
23
+ export type WalletRpcSchema = [{
24
24
  Method: "getAddressInfo";
25
25
  Parameters?: undefined;
26
26
  ReturnType: string;
@@ -30,5 +30,4 @@ type WalletRpcSchema = [{
30
30
  ReturnType: bigint;
31
31
  }];
32
32
  //#endregion
33
- export { BitcoinRpcMethods, RpcRequest, RpcResponse, WalletRpcSchema };
34
33
  //# sourceMappingURL=rpc.d.ts.map
@@ -1,5 +1,5 @@
1
1
  //#region src/types/transaction.d.ts
2
- type UTXOTransaction = {
2
+ export type UTXOTransaction = {
3
3
  blockhash?: string;
4
4
  blocktime?: number;
5
5
  confirmations?: number;
@@ -39,7 +39,7 @@ type UTXOTransaction = {
39
39
  };
40
40
  }[];
41
41
  };
42
- type UTXO = {
42
+ export type UTXO = {
43
43
  txId: string;
44
44
  vout: number;
45
45
  value: number;
@@ -49,5 +49,4 @@ type UTXO = {
49
49
  scriptHex: string;
50
50
  };
51
51
  //#endregion
52
- export { UTXO, UTXOTransaction };
53
52
  //# sourceMappingURL=transaction.d.ts.map