@bigmi/core 0.1.1 → 0.2.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (574) hide show
  1. package/README.md +6 -4
  2. package/dist/cjs/actions/getBalance.d.ts +6 -3
  3. package/dist/cjs/actions/getBalance.js.map +1 -1
  4. package/dist/cjs/actions/getBlock.d.ts +4 -1
  5. package/dist/cjs/actions/getBlock.js +3 -3
  6. package/dist/cjs/actions/getBlock.js.map +1 -1
  7. package/dist/cjs/actions/getBlockCount.d.ts +4 -1
  8. package/dist/cjs/actions/getBlockCount.js.map +1 -1
  9. package/dist/cjs/actions/getBlockStats.d.ts +4 -1
  10. package/dist/cjs/actions/getBlockStats.js +3 -3
  11. package/dist/cjs/actions/getBlockStats.js.map +1 -1
  12. package/dist/cjs/actions/getUTXOTransaction.d.ts +4 -1
  13. package/dist/cjs/actions/getUTXOTransaction.js +2 -2
  14. package/dist/cjs/actions/getUTXOTransaction.js.map +1 -1
  15. package/dist/cjs/actions/sendUTXOTransaction.d.ts +4 -1
  16. package/dist/cjs/actions/sendUTXOTransaction.js.map +1 -1
  17. package/dist/cjs/actions/signPsbt.d.ts +5 -2
  18. package/dist/cjs/actions/signPsbt.js.map +1 -1
  19. package/dist/cjs/actions/waitForTransaction.d.ts +3 -1
  20. package/dist/cjs/actions/waitForTransaction.js +16 -14
  21. package/dist/cjs/actions/waitForTransaction.js.map +1 -1
  22. package/dist/cjs/actions/watchBlockNumber.d.ts +3 -1
  23. package/dist/cjs/actions/watchBlockNumber.js +4 -4
  24. package/dist/cjs/actions/watchBlockNumber.js.map +1 -1
  25. package/dist/cjs/chains/bitcoin.d.ts +5 -17
  26. package/dist/cjs/chains/bitcoin.js +2 -2
  27. package/dist/cjs/chains/bitcoin.js.map +1 -1
  28. package/dist/cjs/chains/defineChain.d.ts +3 -0
  29. package/dist/cjs/chains/defineChain.js +12 -0
  30. package/dist/cjs/chains/defineChain.js.map +1 -0
  31. package/dist/cjs/clients/decorators/public.d.ts +18 -0
  32. package/dist/cjs/clients/decorators/public.js +18 -0
  33. package/dist/cjs/clients/decorators/public.js.map +1 -0
  34. package/dist/cjs/clients/decorators/wallet.d.ts +11 -0
  35. package/dist/cjs/clients/decorators/wallet.js +12 -0
  36. package/dist/cjs/clients/decorators/wallet.js.map +1 -0
  37. package/dist/cjs/errors/address.d.ts +9 -0
  38. package/dist/cjs/errors/address.js +17 -0
  39. package/dist/cjs/errors/address.js.map +1 -0
  40. package/dist/cjs/errors/base.d.ts +27 -0
  41. package/dist/cjs/errors/base.js +55 -0
  42. package/dist/cjs/errors/base.js.map +1 -0
  43. package/dist/cjs/errors/block.d.ts +11 -0
  44. package/dist/cjs/errors/block.js +18 -0
  45. package/dist/cjs/errors/block.js.map +1 -0
  46. package/dist/cjs/errors/config.d.ts +61 -0
  47. package/dist/cjs/errors/config.js +65 -0
  48. package/dist/cjs/errors/config.js.map +1 -0
  49. package/dist/cjs/errors/provider.d.ts +4 -0
  50. package/dist/cjs/errors/provider.js +15 -0
  51. package/dist/cjs/errors/provider.js.map +1 -0
  52. package/dist/cjs/errors/request.d.ts +80 -0
  53. package/dist/cjs/errors/request.js +72 -0
  54. package/dist/cjs/errors/request.js.map +1 -0
  55. package/dist/cjs/errors/rpc.d.ts +23 -0
  56. package/dist/cjs/errors/rpc.js +49 -0
  57. package/dist/cjs/errors/rpc.js.map +1 -0
  58. package/dist/cjs/errors/transaction.d.ts +31 -0
  59. package/dist/cjs/errors/transaction.js +40 -0
  60. package/dist/cjs/errors/transaction.js.map +1 -0
  61. package/dist/cjs/errors/transport.d.ts +7 -0
  62. package/dist/cjs/errors/transport.js +13 -0
  63. package/dist/cjs/errors/transport.js.map +1 -0
  64. package/dist/cjs/errors/utils.d.ts +6 -0
  65. package/dist/cjs/errors/utils.js +8 -0
  66. package/dist/cjs/errors/utils.js.map +1 -0
  67. package/dist/cjs/factories/createClient.d.ts +50 -0
  68. package/dist/cjs/factories/createClient.js +45 -0
  69. package/dist/cjs/factories/createClient.js.map +1 -0
  70. package/dist/cjs/factories/createTransport.d.ts +31 -0
  71. package/dist/cjs/factories/createTransport.js +23 -0
  72. package/dist/cjs/factories/createTransport.js.map +1 -0
  73. package/dist/cjs/index.d.ts +37 -4
  74. package/dist/cjs/index.js +63 -5
  75. package/dist/cjs/index.js.map +1 -1
  76. package/dist/cjs/transports/custom.d.ts +16 -0
  77. package/dist/cjs/transports/custom.js +17 -0
  78. package/dist/cjs/transports/custom.js.map +1 -0
  79. package/dist/cjs/transports/fallback.d.ts +56 -0
  80. package/dist/cjs/transports/fallback.js +165 -0
  81. package/dist/cjs/transports/fallback.js.map +1 -0
  82. package/dist/cjs/transports/getHttpRpcClient.d.ts +11 -1
  83. package/dist/cjs/transports/getHttpRpcClient.js +12 -10
  84. package/dist/cjs/transports/getHttpRpcClient.js.map +1 -1
  85. package/dist/cjs/transports/http.d.ts +28 -0
  86. package/dist/cjs/transports/http.js +72 -0
  87. package/dist/cjs/transports/http.js.map +1 -0
  88. package/dist/cjs/transports/types.d.ts +20 -5
  89. package/dist/cjs/transports/utxo.d.ts +1 -1
  90. package/dist/cjs/transports/utxo.js +6 -4
  91. package/dist/cjs/transports/utxo.js.map +1 -1
  92. package/dist/cjs/types/account.d.ts +9 -0
  93. package/dist/cjs/types/account.js +3 -0
  94. package/dist/cjs/types/account.js.map +1 -0
  95. package/dist/cjs/types/actions.d.ts +17 -0
  96. package/dist/cjs/types/actions.js +3 -0
  97. package/dist/cjs/types/actions.js.map +1 -0
  98. package/dist/cjs/types/address.d.ts +1 -0
  99. package/dist/cjs/types/address.js +3 -0
  100. package/dist/cjs/types/address.js.map +1 -0
  101. package/dist/cjs/types/base.d.ts +0 -0
  102. package/dist/cjs/types/base.js +2 -0
  103. package/dist/cjs/types/base.js.map +1 -0
  104. package/dist/cjs/types/block.d.ts +1 -0
  105. package/dist/cjs/{clients/types.js → types/block.js} +1 -1
  106. package/dist/cjs/types/block.js.map +1 -0
  107. package/dist/cjs/types/chain.d.ts +37 -0
  108. package/dist/cjs/types/chain.js +3 -0
  109. package/dist/cjs/types/chain.js.map +1 -0
  110. package/dist/cjs/types/client.d.ts +41 -0
  111. package/dist/cjs/types/client.js +3 -0
  112. package/dist/cjs/types/client.js.map +1 -0
  113. package/dist/cjs/types/hash.d.ts +1 -0
  114. package/dist/cjs/types/hash.js +3 -0
  115. package/dist/cjs/types/hash.js.map +1 -0
  116. package/dist/cjs/types/request.d.ts +43 -0
  117. package/dist/cjs/types/request.js +3 -0
  118. package/dist/cjs/types/request.js.map +1 -0
  119. package/dist/cjs/types/rpc.d.ts +34 -0
  120. package/dist/cjs/types/rpc.js +3 -0
  121. package/dist/cjs/types/rpc.js.map +1 -0
  122. package/dist/cjs/types/storage.d.ts +22 -0
  123. package/dist/cjs/types/storage.js +3 -0
  124. package/dist/cjs/types/storage.js.map +1 -0
  125. package/dist/cjs/types/transport.d.ts +29 -0
  126. package/dist/cjs/types/transport.js +3 -0
  127. package/dist/cjs/types/transport.js.map +1 -0
  128. package/dist/cjs/types/utils.d.ts +36 -0
  129. package/dist/cjs/types/utils.js +3 -0
  130. package/dist/cjs/types/utils.js.map +1 -0
  131. package/dist/cjs/utils/buildRequest.d.ts +5 -0
  132. package/dist/cjs/utils/buildRequest.js +102 -0
  133. package/dist/cjs/utils/buildRequest.js.map +1 -0
  134. package/dist/cjs/utils/converter.d.ts +3 -0
  135. package/dist/cjs/utils/converter.js +28 -0
  136. package/dist/cjs/utils/converter.js.map +1 -0
  137. package/dist/cjs/utils/createBatchScheduler.d.ts +20 -0
  138. package/dist/cjs/utils/createBatchScheduler.js +54 -0
  139. package/dist/cjs/utils/createBatchScheduler.js.map +1 -0
  140. package/dist/cjs/utils/deepEqual.d.ts +1 -0
  141. package/dist/cjs/utils/deepEqual.js +52 -0
  142. package/dist/cjs/utils/deepEqual.js.map +1 -0
  143. package/dist/cjs/utils/getAction.d.ts +10 -0
  144. package/dist/cjs/utils/getAction.js +15 -0
  145. package/dist/cjs/utils/getAction.js.map +1 -0
  146. package/dist/cjs/utils/getUTXOAddress.d.ts +3 -2
  147. package/dist/cjs/utils/getUTXOAddress.js.map +1 -1
  148. package/dist/cjs/utils/isUTXOAddress.js.map +1 -1
  149. package/dist/cjs/utils/lru.d.ts +6 -0
  150. package/dist/cjs/utils/lru.js +29 -0
  151. package/dist/cjs/utils/lru.js.map +1 -0
  152. package/dist/cjs/utils/observe.d.ts +1 -1
  153. package/dist/cjs/utils/parseAccount.d.ts +5 -0
  154. package/dist/cjs/utils/parseAccount.js +10 -0
  155. package/dist/cjs/utils/parseAccount.js.map +1 -0
  156. package/dist/cjs/utils/stringify.d.ts +3 -0
  157. package/dist/cjs/utils/stringify.js +9 -0
  158. package/dist/cjs/utils/stringify.js.map +1 -0
  159. package/dist/cjs/utils/uid.d.ts +1 -0
  160. package/dist/cjs/utils/uid.js +17 -0
  161. package/dist/cjs/utils/uid.js.map +1 -0
  162. package/dist/cjs/utils/wait.d.ts +1 -0
  163. package/dist/cjs/utils/wait.js +7 -0
  164. package/dist/cjs/utils/wait.js.map +1 -0
  165. package/dist/cjs/utils/withDedupe.d.ts +8 -0
  166. package/dist/cjs/utils/withDedupe.js +18 -0
  167. package/dist/cjs/utils/withDedupe.js.map +1 -0
  168. package/dist/cjs/utils/withResolvers.d.ts +6 -0
  169. package/dist/cjs/utils/withResolvers.js +13 -0
  170. package/dist/cjs/utils/withResolvers.js.map +1 -0
  171. package/dist/cjs/utils/withRetry.d.ts +14 -0
  172. package/dist/cjs/utils/withRetry.js +30 -0
  173. package/dist/cjs/utils/withRetry.js.map +1 -0
  174. package/dist/cjs/utils/withTimeout.d.ts +9 -0
  175. package/dist/cjs/utils/withTimeout.js +35 -0
  176. package/dist/cjs/utils/withTimeout.js.map +1 -0
  177. package/dist/cjs/version.d.ts +1 -0
  178. package/dist/cjs/version.js +5 -0
  179. package/dist/cjs/version.js.map +1 -0
  180. package/dist/esm/actions/getBalance.d.ts +6 -3
  181. package/dist/esm/actions/getBalance.js.map +1 -1
  182. package/dist/esm/actions/getBlock.d.ts +4 -1
  183. package/dist/esm/actions/getBlock.js +1 -1
  184. package/dist/esm/actions/getBlock.js.map +1 -1
  185. package/dist/esm/actions/getBlockCount.d.ts +4 -1
  186. package/dist/esm/actions/getBlockCount.js.map +1 -1
  187. package/dist/esm/actions/getBlockStats.d.ts +4 -1
  188. package/dist/esm/actions/getBlockStats.js +1 -1
  189. package/dist/esm/actions/getBlockStats.js.map +1 -1
  190. package/dist/esm/actions/getUTXOTransaction.d.ts +4 -1
  191. package/dist/esm/actions/getUTXOTransaction.js +1 -1
  192. package/dist/esm/actions/getUTXOTransaction.js.map +1 -1
  193. package/dist/esm/actions/sendUTXOTransaction.d.ts +4 -1
  194. package/dist/esm/actions/sendUTXOTransaction.js.map +1 -1
  195. package/dist/esm/actions/signPsbt.d.ts +5 -2
  196. package/dist/esm/actions/signPsbt.js.map +1 -1
  197. package/dist/esm/actions/waitForTransaction.d.ts +3 -1
  198. package/dist/esm/actions/waitForTransaction.js +4 -2
  199. package/dist/esm/actions/waitForTransaction.js.map +1 -1
  200. package/dist/esm/actions/watchBlockNumber.d.ts +3 -1
  201. package/dist/esm/actions/watchBlockNumber.js +2 -2
  202. package/dist/esm/actions/watchBlockNumber.js.map +1 -1
  203. package/dist/esm/chains/bitcoin.d.ts +5 -17
  204. package/dist/esm/chains/bitcoin.js +1 -1
  205. package/dist/esm/chains/bitcoin.js.map +1 -1
  206. package/dist/esm/chains/defineChain.d.ts +3 -0
  207. package/dist/esm/chains/defineChain.js +9 -0
  208. package/dist/esm/chains/defineChain.js.map +1 -0
  209. package/dist/esm/clients/decorators/public.d.ts +18 -0
  210. package/dist/esm/clients/decorators/public.js +15 -0
  211. package/dist/esm/clients/decorators/public.js.map +1 -0
  212. package/dist/esm/clients/decorators/wallet.d.ts +14 -0
  213. package/dist/esm/clients/decorators/wallet.js +9 -0
  214. package/dist/esm/clients/decorators/wallet.js.map +1 -0
  215. package/dist/esm/errors/address.d.ts +9 -0
  216. package/dist/esm/errors/address.js +13 -0
  217. package/dist/esm/errors/address.js.map +1 -0
  218. package/dist/esm/errors/base.d.ts +27 -0
  219. package/dist/esm/errors/base.js +50 -0
  220. package/dist/esm/errors/base.js.map +1 -0
  221. package/dist/esm/errors/block.d.ts +11 -0
  222. package/dist/esm/errors/block.js +14 -0
  223. package/dist/esm/errors/block.js.map +1 -0
  224. package/dist/esm/errors/config.d.ts +61 -0
  225. package/dist/esm/errors/config.js +55 -0
  226. package/dist/esm/errors/config.js.map +1 -0
  227. package/dist/esm/errors/provider.d.ts +4 -0
  228. package/dist/esm/errors/provider.js +11 -0
  229. package/dist/esm/errors/provider.js.map +1 -0
  230. package/dist/esm/errors/request.d.ts +80 -0
  231. package/dist/esm/errors/request.js +64 -0
  232. package/dist/esm/errors/request.js.map +1 -0
  233. package/dist/esm/errors/rpc.d.ts +53 -0
  234. package/dist/esm/errors/rpc.js +73 -0
  235. package/dist/esm/errors/rpc.js.map +1 -0
  236. package/dist/esm/errors/transaction.d.ts +31 -0
  237. package/dist/esm/errors/transaction.js +34 -0
  238. package/dist/esm/errors/transaction.js.map +1 -0
  239. package/dist/esm/errors/transport.d.ts +7 -0
  240. package/dist/esm/errors/transport.js +9 -0
  241. package/dist/esm/errors/transport.js.map +1 -0
  242. package/dist/esm/errors/utils.d.ts +6 -0
  243. package/dist/esm/errors/utils.js +3 -0
  244. package/dist/esm/errors/utils.js.map +1 -0
  245. package/dist/esm/factories/createClient.d.ts +85 -0
  246. package/dist/esm/factories/createClient.js +45 -0
  247. package/dist/esm/factories/createClient.js.map +1 -0
  248. package/dist/esm/factories/createTransport.d.ts +42 -0
  249. package/dist/esm/factories/createTransport.js +23 -0
  250. package/dist/esm/factories/createTransport.js.map +1 -0
  251. package/dist/esm/index.d.ts +37 -4
  252. package/dist/esm/index.js +26 -3
  253. package/dist/esm/index.js.map +1 -1
  254. package/dist/esm/transports/custom.d.ts +24 -0
  255. package/dist/esm/transports/custom.js +17 -0
  256. package/dist/esm/transports/custom.js.map +1 -0
  257. package/dist/esm/transports/fallback.d.ts +89 -0
  258. package/dist/esm/transports/fallback.js +172 -0
  259. package/dist/esm/transports/fallback.js.map +1 -0
  260. package/dist/esm/transports/getHttpRpcClient.d.ts +15 -1
  261. package/dist/esm/transports/getHttpRpcClient.js +4 -2
  262. package/dist/esm/transports/getHttpRpcClient.js.map +1 -1
  263. package/dist/esm/transports/http.d.ts +53 -0
  264. package/dist/esm/transports/http.js +74 -0
  265. package/dist/esm/transports/http.js.map +1 -0
  266. package/dist/esm/transports/types.d.ts +36 -5
  267. package/dist/esm/transports/utxo.d.ts +1 -1
  268. package/dist/esm/transports/utxo.js +3 -1
  269. package/dist/esm/transports/utxo.js.map +1 -1
  270. package/dist/esm/types/account.d.ts +9 -0
  271. package/dist/esm/types/account.js +2 -0
  272. package/dist/esm/types/account.js.map +1 -0
  273. package/dist/esm/types/actions.d.ts +20 -0
  274. package/dist/esm/types/actions.js +2 -0
  275. package/dist/esm/types/actions.js.map +1 -0
  276. package/dist/esm/types/address.d.ts +1 -0
  277. package/dist/esm/types/address.js +2 -0
  278. package/dist/esm/types/address.js.map +1 -0
  279. package/dist/esm/types/base.d.ts +0 -0
  280. package/dist/esm/types/base.js +2 -0
  281. package/dist/esm/types/base.js.map +1 -0
  282. package/dist/esm/types/block.d.ts +19 -0
  283. package/dist/esm/types/block.js +2 -0
  284. package/dist/esm/types/block.js.map +1 -0
  285. package/dist/esm/types/chain.d.ts +48 -0
  286. package/dist/esm/types/chain.js +2 -0
  287. package/dist/esm/types/chain.js.map +1 -0
  288. package/dist/esm/types/client.d.ts +68 -0
  289. package/dist/esm/types/client.js +2 -0
  290. package/dist/esm/types/client.js.map +1 -0
  291. package/dist/esm/types/hash.d.ts +1 -0
  292. package/dist/esm/types/hash.js +2 -0
  293. package/dist/esm/types/hash.js.map +1 -0
  294. package/dist/esm/types/request.d.ts +48 -0
  295. package/dist/esm/types/request.js +2 -0
  296. package/dist/esm/types/request.js.map +1 -0
  297. package/dist/esm/types/rpc.d.ts +34 -0
  298. package/dist/esm/types/rpc.js +2 -0
  299. package/dist/esm/types/rpc.js.map +1 -0
  300. package/dist/esm/types/storage.d.ts +22 -0
  301. package/dist/esm/types/storage.js +2 -0
  302. package/dist/esm/types/storage.js.map +1 -0
  303. package/dist/esm/types/transport.d.ts +37 -0
  304. package/dist/esm/types/transport.js +2 -0
  305. package/dist/esm/types/transport.js.map +1 -0
  306. package/dist/esm/types/utils.d.ts +72 -0
  307. package/dist/esm/types/utils.js +2 -0
  308. package/dist/esm/types/utils.js.map +1 -0
  309. package/dist/esm/utils/buildRequest.d.ts +6 -0
  310. package/dist/esm/utils/buildRequest.js +111 -0
  311. package/dist/esm/utils/buildRequest.js.map +1 -0
  312. package/dist/esm/utils/converter.d.ts +3 -0
  313. package/dist/esm/utils/converter.js +23 -0
  314. package/dist/esm/utils/converter.js.map +1 -0
  315. package/dist/esm/utils/createBatchScheduler.d.ts +21 -0
  316. package/dist/esm/utils/createBatchScheduler.js +52 -0
  317. package/dist/esm/utils/createBatchScheduler.js.map +1 -0
  318. package/dist/esm/utils/deepEqual.d.ts +2 -0
  319. package/dist/esm/utils/deepEqual.js +52 -0
  320. package/dist/esm/utils/deepEqual.js.map +1 -0
  321. package/dist/esm/utils/getAction.d.ts +17 -0
  322. package/dist/esm/utils/getAction.js +23 -0
  323. package/dist/esm/utils/getAction.js.map +1 -0
  324. package/dist/esm/utils/getUTXOAddress.d.ts +3 -2
  325. package/dist/esm/utils/getUTXOAddress.js.map +1 -1
  326. package/dist/esm/utils/isUTXOAddress.js.map +1 -1
  327. package/dist/esm/utils/lru.d.ts +11 -0
  328. package/dist/esm/utils/lru.js +30 -0
  329. package/dist/esm/utils/lru.js.map +1 -0
  330. package/dist/esm/utils/observe.d.ts +1 -1
  331. package/dist/esm/utils/parseAccount.d.ts +5 -0
  332. package/dist/esm/utils/parseAccount.js +7 -0
  333. package/dist/esm/utils/parseAccount.js.map +1 -0
  334. package/dist/esm/utils/stringify.d.ts +3 -0
  335. package/dist/esm/utils/stringify.js +5 -0
  336. package/dist/esm/utils/stringify.js.map +1 -0
  337. package/dist/esm/utils/uid.d.ts +1 -0
  338. package/dist/esm/utils/uid.js +14 -0
  339. package/dist/esm/utils/uid.js.map +1 -0
  340. package/dist/esm/utils/wait.d.ts +1 -0
  341. package/dist/esm/utils/wait.js +4 -0
  342. package/dist/esm/utils/wait.js.map +1 -0
  343. package/dist/esm/utils/withDedupe.d.ts +10 -0
  344. package/dist/esm/utils/withDedupe.js +16 -0
  345. package/dist/esm/utils/withDedupe.js.map +1 -0
  346. package/dist/esm/utils/withResolvers.d.ts +8 -0
  347. package/dist/esm/utils/withResolvers.js +11 -0
  348. package/dist/esm/utils/withResolvers.js.map +1 -0
  349. package/dist/esm/utils/withRetry.d.ts +14 -0
  350. package/dist/esm/utils/withRetry.js +27 -0
  351. package/dist/esm/utils/withRetry.js.map +1 -0
  352. package/dist/esm/utils/withTimeout.d.ts +9 -0
  353. package/dist/esm/utils/withTimeout.js +32 -0
  354. package/dist/esm/utils/withTimeout.js.map +1 -0
  355. package/dist/esm/version.d.ts +1 -0
  356. package/dist/esm/version.js +2 -0
  357. package/dist/esm/version.js.map +1 -0
  358. package/dist/types/actions/getBalance.d.ts +6 -3
  359. package/dist/types/actions/getBalance.d.ts.map +1 -1
  360. package/dist/types/actions/getBlock.d.ts +4 -1
  361. package/dist/types/actions/getBlock.d.ts.map +1 -1
  362. package/dist/types/actions/getBlockCount.d.ts +4 -1
  363. package/dist/types/actions/getBlockCount.d.ts.map +1 -1
  364. package/dist/types/actions/getBlockStats.d.ts +4 -1
  365. package/dist/types/actions/getBlockStats.d.ts.map +1 -1
  366. package/dist/types/actions/getUTXOTransaction.d.ts +4 -1
  367. package/dist/types/actions/getUTXOTransaction.d.ts.map +1 -1
  368. package/dist/types/actions/sendUTXOTransaction.d.ts +4 -1
  369. package/dist/types/actions/sendUTXOTransaction.d.ts.map +1 -1
  370. package/dist/types/actions/signPsbt.d.ts +5 -2
  371. package/dist/types/actions/signPsbt.d.ts.map +1 -1
  372. package/dist/types/actions/waitForTransaction.d.ts +3 -1
  373. package/dist/types/actions/waitForTransaction.d.ts.map +1 -1
  374. package/dist/types/actions/watchBlockNumber.d.ts +3 -1
  375. package/dist/types/actions/watchBlockNumber.d.ts.map +1 -1
  376. package/dist/types/chains/bitcoin.d.ts +5 -17
  377. package/dist/types/chains/bitcoin.d.ts.map +1 -1
  378. package/dist/types/chains/defineChain.d.ts +4 -0
  379. package/dist/types/chains/defineChain.d.ts.map +1 -0
  380. package/dist/types/clients/decorators/public.d.ts +19 -0
  381. package/dist/types/clients/decorators/public.d.ts.map +1 -0
  382. package/dist/types/clients/decorators/wallet.d.ts +15 -0
  383. package/dist/types/clients/decorators/wallet.d.ts.map +1 -0
  384. package/dist/types/errors/address.d.ts +10 -0
  385. package/dist/types/errors/address.d.ts.map +1 -0
  386. package/dist/types/errors/base.d.ts +28 -0
  387. package/dist/types/errors/base.d.ts.map +1 -0
  388. package/dist/types/errors/block.d.ts +12 -0
  389. package/dist/types/errors/block.d.ts.map +1 -0
  390. package/dist/types/errors/config.d.ts +62 -0
  391. package/dist/types/errors/config.d.ts.map +1 -0
  392. package/dist/types/errors/provider.d.ts +5 -0
  393. package/dist/types/errors/provider.d.ts.map +1 -0
  394. package/dist/types/errors/request.d.ts +81 -0
  395. package/dist/types/errors/request.d.ts.map +1 -0
  396. package/dist/types/errors/rpc.d.ts +54 -0
  397. package/dist/types/errors/rpc.d.ts.map +1 -0
  398. package/dist/types/errors/transaction.d.ts +32 -0
  399. package/dist/types/errors/transaction.d.ts.map +1 -0
  400. package/dist/types/errors/transport.d.ts +8 -0
  401. package/dist/types/errors/transport.d.ts.map +1 -0
  402. package/dist/types/errors/utils.d.ts +7 -0
  403. package/dist/types/errors/utils.d.ts.map +1 -0
  404. package/dist/types/factories/createClient.d.ts +86 -0
  405. package/dist/types/factories/createClient.d.ts.map +1 -0
  406. package/dist/types/factories/createTransport.d.ts +43 -0
  407. package/dist/types/factories/createTransport.d.ts.map +1 -0
  408. package/dist/types/index.d.ts +37 -4
  409. package/dist/types/index.d.ts.map +1 -1
  410. package/dist/types/transports/custom.d.ts +25 -0
  411. package/dist/types/transports/custom.d.ts.map +1 -0
  412. package/dist/types/transports/fallback.d.ts +90 -0
  413. package/dist/types/transports/fallback.d.ts.map +1 -0
  414. package/dist/types/transports/getHttpRpcClient.d.ts +15 -1
  415. package/dist/types/transports/getHttpRpcClient.d.ts.map +1 -1
  416. package/dist/types/transports/http.d.ts +54 -0
  417. package/dist/types/transports/http.d.ts.map +1 -0
  418. package/dist/types/transports/types.d.ts +36 -5
  419. package/dist/types/transports/types.d.ts.map +1 -1
  420. package/dist/types/transports/utxo.d.ts +1 -1
  421. package/dist/types/transports/utxo.d.ts.map +1 -1
  422. package/dist/types/types/account.d.ts +10 -0
  423. package/dist/types/types/account.d.ts.map +1 -0
  424. package/dist/types/types/actions.d.ts +21 -0
  425. package/dist/types/types/actions.d.ts.map +1 -0
  426. package/dist/types/types/address.d.ts +2 -0
  427. package/dist/types/types/address.d.ts.map +1 -0
  428. package/dist/types/types/base.d.ts +1 -0
  429. package/dist/types/types/base.d.ts.map +1 -0
  430. package/dist/types/types/block.d.ts +20 -0
  431. package/dist/types/types/block.d.ts.map +1 -0
  432. package/dist/types/types/chain.d.ts +49 -0
  433. package/dist/types/types/chain.d.ts.map +1 -0
  434. package/dist/types/types/client.d.ts +69 -0
  435. package/dist/types/types/client.d.ts.map +1 -0
  436. package/dist/types/types/hash.d.ts +2 -0
  437. package/dist/types/types/hash.d.ts.map +1 -0
  438. package/dist/types/types/request.d.ts +49 -0
  439. package/dist/types/types/request.d.ts.map +1 -0
  440. package/dist/types/types/rpc.d.ts +35 -0
  441. package/dist/types/types/rpc.d.ts.map +1 -0
  442. package/dist/types/types/storage.d.ts +23 -0
  443. package/dist/types/types/storage.d.ts.map +1 -0
  444. package/dist/types/types/transport.d.ts +38 -0
  445. package/dist/types/types/transport.d.ts.map +1 -0
  446. package/dist/types/types/utils.d.ts +73 -0
  447. package/dist/types/types/utils.d.ts.map +1 -0
  448. package/dist/types/utils/buildRequest.d.ts +7 -0
  449. package/dist/types/utils/buildRequest.d.ts.map +1 -0
  450. package/dist/types/utils/converter.d.ts +4 -0
  451. package/dist/types/utils/converter.d.ts.map +1 -0
  452. package/dist/types/utils/createBatchScheduler.d.ts +22 -0
  453. package/dist/types/utils/createBatchScheduler.d.ts.map +1 -0
  454. package/dist/types/utils/deepEqual.d.ts +3 -0
  455. package/dist/types/utils/deepEqual.d.ts.map +1 -0
  456. package/dist/types/utils/getAction.d.ts +18 -0
  457. package/dist/types/utils/getAction.d.ts.map +1 -0
  458. package/dist/types/utils/getUTXOAddress.d.ts +3 -2
  459. package/dist/types/utils/getUTXOAddress.d.ts.map +1 -1
  460. package/dist/types/utils/isUTXOAddress.d.ts.map +1 -1
  461. package/dist/types/utils/lru.d.ts +12 -0
  462. package/dist/types/utils/lru.d.ts.map +1 -0
  463. package/dist/types/utils/observe.d.ts +1 -1
  464. package/dist/types/utils/observe.d.ts.map +1 -1
  465. package/dist/types/utils/parseAccount.d.ts +6 -0
  466. package/dist/types/utils/parseAccount.d.ts.map +1 -0
  467. package/dist/types/utils/stringify.d.ts +4 -0
  468. package/dist/types/utils/stringify.d.ts.map +1 -0
  469. package/dist/types/utils/uid.d.ts +2 -0
  470. package/dist/types/utils/uid.d.ts.map +1 -0
  471. package/dist/types/utils/wait.d.ts +2 -0
  472. package/dist/types/utils/wait.d.ts.map +1 -0
  473. package/dist/types/utils/withDedupe.d.ts +11 -0
  474. package/dist/types/utils/withDedupe.d.ts.map +1 -0
  475. package/dist/types/utils/withResolvers.d.ts +9 -0
  476. package/dist/types/utils/withResolvers.d.ts.map +1 -0
  477. package/dist/types/utils/withRetry.d.ts +15 -0
  478. package/dist/types/utils/withRetry.d.ts.map +1 -0
  479. package/dist/types/utils/withTimeout.d.ts +10 -0
  480. package/dist/types/utils/withTimeout.d.ts.map +1 -0
  481. package/dist/types/version.d.ts +2 -0
  482. package/dist/types/version.d.ts.map +1 -0
  483. package/package.json +4 -3
  484. package/package.json.tmp +4 -3
  485. package/src/actions/getBalance.ts +6 -3
  486. package/src/actions/getBlock.ts +7 -7
  487. package/src/actions/getBlockCount.ts +4 -1
  488. package/src/actions/getBlockStats.ts +5 -7
  489. package/src/actions/getUTXOTransaction.ts +5 -7
  490. package/src/actions/sendUTXOTransaction.ts +4 -1
  491. package/src/actions/signPsbt.ts +5 -2
  492. package/src/actions/waitForTransaction.ts +9 -7
  493. package/src/actions/watchBlockNumber.ts +5 -2
  494. package/src/chains/bitcoin.ts +1 -1
  495. package/src/chains/defineChain.ts +14 -0
  496. package/src/clients/decorators/public.ts +62 -0
  497. package/src/clients/decorators/wallet.ts +37 -0
  498. package/src/errors/address.ts +16 -0
  499. package/src/errors/base.ts +85 -0
  500. package/src/errors/block.ts +24 -0
  501. package/src/errors/config.ts +102 -0
  502. package/src/errors/provider.ts +11 -0
  503. package/src/errors/request.ts +134 -0
  504. package/src/errors/rpc.ts +77 -0
  505. package/src/errors/transaction.ts +67 -0
  506. package/src/errors/transport.ts +15 -0
  507. package/src/errors/utils.ts +6 -0
  508. package/src/factories/createClient.ts +199 -0
  509. package/src/factories/createTransport.ts +93 -0
  510. package/src/index.ts +114 -13
  511. package/src/transports/custom.ts +56 -0
  512. package/src/transports/fallback.ts +332 -0
  513. package/src/transports/getHttpRpcClient.ts +28 -4
  514. package/src/transports/http.ts +176 -0
  515. package/src/transports/types.ts +38 -5
  516. package/src/transports/utxo.ts +6 -9
  517. package/src/types/account.ts +10 -0
  518. package/src/types/actions.ts +38 -0
  519. package/src/types/address.ts +1 -0
  520. package/src/types/base.ts +0 -0
  521. package/src/types/block.ts +19 -0
  522. package/src/types/chain.ts +72 -0
  523. package/src/types/client.ts +108 -0
  524. package/src/types/hash.ts +1 -0
  525. package/src/types/request.ts +87 -0
  526. package/src/types/rpc.ts +37 -0
  527. package/src/types/storage.ts +44 -0
  528. package/src/types/transport.ts +54 -0
  529. package/src/types/utils.ts +131 -0
  530. package/src/utils/buildRequest.ts +145 -0
  531. package/src/utils/converter.ts +25 -0
  532. package/src/utils/createBatchScheduler.ts +116 -0
  533. package/src/utils/deepEqual.ts +62 -0
  534. package/src/utils/getAction.ts +45 -0
  535. package/src/utils/getUTXOAddress.ts +4 -3
  536. package/src/utils/isUTXOAddress.ts +2 -1
  537. package/src/utils/lru.ts +35 -0
  538. package/src/utils/observe.ts +1 -1
  539. package/src/utils/parseAccount.ts +14 -0
  540. package/src/utils/stringify.ts +13 -0
  541. package/src/utils/uid.ts +14 -0
  542. package/src/utils/wait.ts +3 -0
  543. package/src/utils/withDedupe.ts +25 -0
  544. package/src/utils/withResolvers.ts +19 -0
  545. package/src/utils/withRetry.ts +60 -0
  546. package/src/utils/withTimeout.ts +47 -0
  547. package/src/version.ts +1 -0
  548. package/tsconfig.json +2 -1
  549. package/dist/cjs/clients/types.d.ts +0 -27
  550. package/dist/cjs/clients/types.js.map +0 -1
  551. package/dist/cjs/decorators/UTXOAPIActions.d.ts +0 -6
  552. package/dist/cjs/decorators/UTXOAPIActions.js +0 -10
  553. package/dist/cjs/decorators/UTXOAPIActions.js.map +0 -1
  554. package/dist/cjs/decorators/UTXOActions.d.ts +0 -10
  555. package/dist/cjs/decorators/UTXOActions.js +0 -14
  556. package/dist/cjs/decorators/UTXOActions.js.map +0 -1
  557. package/dist/esm/clients/types.d.ts +0 -43
  558. package/dist/esm/clients/types.js +0 -2
  559. package/dist/esm/clients/types.js.map +0 -1
  560. package/dist/esm/decorators/UTXOAPIActions.d.ts +0 -6
  561. package/dist/esm/decorators/UTXOAPIActions.js +0 -7
  562. package/dist/esm/decorators/UTXOAPIActions.js.map +0 -1
  563. package/dist/esm/decorators/UTXOActions.d.ts +0 -10
  564. package/dist/esm/decorators/UTXOActions.js +0 -11
  565. package/dist/esm/decorators/UTXOActions.js.map +0 -1
  566. package/dist/types/clients/types.d.ts +0 -44
  567. package/dist/types/clients/types.d.ts.map +0 -1
  568. package/dist/types/decorators/UTXOAPIActions.d.ts +0 -7
  569. package/dist/types/decorators/UTXOAPIActions.d.ts.map +0 -1
  570. package/dist/types/decorators/UTXOActions.d.ts +0 -11
  571. package/dist/types/decorators/UTXOActions.d.ts.map +0 -1
  572. package/src/clients/types.ts +0 -48
  573. package/src/decorators/UTXOAPIActions.ts +0 -20
  574. package/src/decorators/UTXOActions.ts +0 -37
@@ -0,0 +1,199 @@
1
+ import type { Address } from '../types/address.js'
2
+
3
+ import type { ErrorType } from '../errors/utils.js'
4
+ import type { Transport } from '../factories/createTransport.js'
5
+ import type { Account } from '../types/account.js'
6
+ import type { Chain } from '../types/chain.js'
7
+
8
+ import type { BtcRpcRequestFn, RpcSchema } from '../types/request.js'
9
+ import type { BitcoinRpcMethods } from '../types/rpc.js'
10
+ import type { Prettify } from '../types/utils.js'
11
+
12
+ import { parseAccount } from '../utils/parseAccount.js'
13
+ import { uid } from '../utils/uid.js'
14
+
15
+ export type ClientConfig<
16
+ transport extends Transport = Transport,
17
+ chain extends Chain | undefined = Chain | undefined,
18
+ accountOrAddress extends Account | Address | undefined =
19
+ | Account
20
+ | Address
21
+ | undefined,
22
+ rpcSchema extends RpcSchema | undefined = undefined,
23
+ > = {
24
+ /** The Account to use for the Client. This will be used for Actions that require an account as an argument. */
25
+ account?: accountOrAddress | Account | Address | undefined
26
+ /** Flags for batch settings. */
27
+ batch?:
28
+ | {
29
+ /** Toggle to enable `eth_call` multicall aggregation. */
30
+ multicall?: boolean | Prettify<MulticallBatchOptions> | undefined
31
+ }
32
+ | undefined
33
+ /**
34
+ * Time (in ms) that cached data will remain in memory.
35
+ * @default 4_000
36
+ */
37
+ cacheTime?: number | undefined
38
+ /** Chain for the client. */
39
+ chain?: Chain | undefined | chain
40
+ /** A key for the client. */
41
+ key?: string | undefined
42
+ /** A name for the client. */
43
+ name?: string | undefined
44
+ /**
45
+ * Frequency (in ms) for polling enabled actions & events.
46
+ * @default 4_000
47
+ */
48
+ pollingInterval?: number | undefined
49
+ /**
50
+ * Typed JSON-RPC schema for the client.
51
+ */
52
+ rpcSchema?: rpcSchema | undefined
53
+ /** The RPC transport */
54
+ transport: transport
55
+ /** The type of client. */
56
+ type?: string | undefined
57
+ }
58
+
59
+ // TODO: Move `transport` to slot index 2 since `chain` and `account` used more frequently.
60
+ // Otherwise, we end up with a lot of `Client<Transport, chain, account>` in actions.
61
+ export type Client<
62
+ transport extends Transport = Transport,
63
+ chain extends Chain | undefined = Chain | undefined,
64
+ account extends Account | undefined = Account | undefined,
65
+ rpcSchema extends RpcSchema | undefined = undefined,
66
+ extended extends Extended | undefined = Extended | undefined,
67
+ > = Client_Base<transport, chain, account, rpcSchema> &
68
+ (extended extends Extended ? extended : unknown) & {
69
+ extend: <const client extends Extended>(
70
+ fn: (
71
+ client: Client<transport, chain, account, rpcSchema, extended>
72
+ ) => client
73
+ ) => Client<
74
+ transport,
75
+ chain,
76
+ account,
77
+ rpcSchema,
78
+ Prettify<client> & (extended extends Extended ? extended : unknown)
79
+ >
80
+ }
81
+
82
+ type Client_Base<
83
+ transport extends Transport = Transport,
84
+ chain extends Chain | undefined = Chain | undefined,
85
+ account extends Account | undefined = Account | undefined,
86
+ rpcSchema extends RpcSchema | undefined = undefined,
87
+ > = {
88
+ /** The Account of the Client. */
89
+ account: account
90
+ /** Time (in ms) that cached data will remain in memory. */
91
+ cacheTime: number
92
+ /** Chain for the client. */
93
+ chain: chain
94
+ /** A key for the client. */
95
+ key: string
96
+ /** A name for the client. */
97
+ name: string
98
+ /** Frequency (in ms) for polling enabled actions & events. Defaults to 4_000 milliseconds. */
99
+ pollingInterval: number
100
+ /** Request function wrapped with friendly error handling */
101
+ request: BtcRpcRequestFn<
102
+ rpcSchema extends undefined ? BitcoinRpcMethods : rpcSchema
103
+ >
104
+ /** The RPC transport */
105
+ transport: ReturnType<transport>['config'] & ReturnType<transport>['value']
106
+ /** The type of client. */
107
+ type: string
108
+ /** A unique ID for the client. */
109
+ uid: string
110
+ }
111
+
112
+ type Extended = Prettify<
113
+ // disallow redefining base properties
114
+ { [_ in keyof Client_Base]?: undefined } & {
115
+ [key: string]: unknown
116
+ }
117
+ >
118
+
119
+ export type MulticallBatchOptions = {
120
+ /** The maximum size (in bytes) for each calldata chunk. @default 1_024 */
121
+ batchSize?: number | undefined
122
+ /** The maximum number of milliseconds to wait before sending a batch. @default 0 */
123
+ wait?: number | undefined
124
+ }
125
+
126
+ export type CreateClientErrorType = ErrorType
127
+
128
+ export function createClient<
129
+ transport extends Transport,
130
+ chain extends Chain | undefined = undefined,
131
+ accountOrAddress extends Account | Address | undefined = undefined,
132
+ rpcSchema extends RpcSchema | undefined = undefined,
133
+ >(
134
+ parameters: ClientConfig<transport, chain, accountOrAddress, rpcSchema>
135
+ ): Prettify<
136
+ Client<
137
+ transport,
138
+ chain,
139
+ accountOrAddress extends Address ? Prettify<Account> : accountOrAddress,
140
+ rpcSchema
141
+ >
142
+ >
143
+
144
+ export function createClient(parameters: ClientConfig): Client {
145
+ const {
146
+ cacheTime = parameters.pollingInterval ?? 4_000,
147
+
148
+ key = 'base',
149
+ name = 'Base Client',
150
+ pollingInterval = 4_000,
151
+ type = 'base',
152
+ } = parameters
153
+
154
+ const chain = parameters.chain
155
+ const account = parameters.account
156
+ ? parseAccount(parameters.account)
157
+ : undefined
158
+ const { config, request, value } = parameters.transport({
159
+ chain,
160
+ pollingInterval,
161
+ })
162
+ const transport = { ...config, ...value }
163
+
164
+ const client = {
165
+ account,
166
+ cacheTime,
167
+
168
+ chain,
169
+ key,
170
+ name,
171
+ pollingInterval,
172
+ request,
173
+ transport,
174
+ type,
175
+ uid: uid(),
176
+ }
177
+
178
+ function extend(base: typeof client) {
179
+ type ExtendFn = (base: typeof client) => unknown
180
+ return (extendFn: ExtendFn) => {
181
+ const extended = extendFn(base) as Extended
182
+ for (const key in client) {
183
+ delete extended[key]
184
+ }
185
+ const combined = { ...base, ...extended }
186
+ return Object.assign(combined, { extend: extend(combined as any) })
187
+ }
188
+ }
189
+
190
+ return Object.assign(client, { extend: extend(client) as any })
191
+ }
192
+
193
+ /**
194
+ * Defines a typed JSON-RPC schema for the client.
195
+ * Note: This is a runtime noop function.
196
+ */
197
+ export function rpcSchema<rpcSchema extends RpcSchema>(): rpcSchema {
198
+ return null as any
199
+ }
@@ -0,0 +1,93 @@
1
+ import type { ErrorType } from '../errors/utils.js'
2
+ import type { Chain } from '../types/chain.js'
3
+ import type { ClientConfig } from '../types/client.js'
4
+ import type { BtcRpcRequestFn } from '../types/request.js'
5
+ import type { OneOf } from '../types/utils.js'
6
+ import { buildRequest } from '../utils/buildRequest.js'
7
+ import { uid as uid_ } from '../utils/uid.js'
8
+
9
+ export type TransportConfig<
10
+ type extends string = string,
11
+ rpcRequestFn extends BtcRpcRequestFn = BtcRpcRequestFn,
12
+ > = {
13
+ /** The name of the transport. */
14
+ name: string
15
+ /** The key of the transport. */
16
+ key: string
17
+ /** Methods to include or exclude from executing RPC requests. */
18
+ methods?:
19
+ | OneOf<
20
+ | {
21
+ include?: string[] | undefined
22
+ }
23
+ | {
24
+ exclude?: string[] | undefined
25
+ }
26
+ >
27
+ | undefined
28
+ /** The JSON-RPC request function that matches the EIP-1193 request spec. */
29
+ request: rpcRequestFn
30
+ /** The base delay (in ms) between retries. */
31
+ retryDelay?: number | undefined
32
+ /** The max number of times to retry. */
33
+ retryCount?: number | undefined
34
+ /** The timeout (in ms) for requests. */
35
+ timeout?: number | undefined
36
+ /** The type of the transport. */
37
+ type: type
38
+ }
39
+
40
+ export type Transport<
41
+ type extends string = string,
42
+ rpcAttributes = Record<string, any>,
43
+ rpcRequestFn extends BtcRpcRequestFn = BtcRpcRequestFn,
44
+ > = <chain extends Chain | undefined = Chain>({
45
+ chain,
46
+ }: {
47
+ chain?: chain | undefined
48
+ pollingInterval?: ClientConfig['pollingInterval'] | undefined
49
+ retryCount?: TransportConfig['retryCount'] | undefined
50
+ timeout?: TransportConfig['timeout'] | undefined
51
+ }) => {
52
+ config: TransportConfig<type>
53
+ request: rpcRequestFn
54
+ value?: rpcAttributes | undefined
55
+ }
56
+
57
+ export type CreateTransportErrorType = ErrorType
58
+
59
+ /**
60
+ * @description Creates an transport intended to be used with a client.
61
+ */
62
+ export function createTransport<
63
+ type extends string,
64
+ rpcAttributes extends Record<string, any>,
65
+ >(
66
+ {
67
+ key,
68
+ methods,
69
+ name,
70
+ request,
71
+ retryCount = 3,
72
+ retryDelay = 150,
73
+ timeout,
74
+ type,
75
+ }: TransportConfig<type>,
76
+ value?: rpcAttributes | undefined
77
+ ): ReturnType<Transport<type, rpcAttributes>> {
78
+ const uid = uid_()
79
+ return {
80
+ config: {
81
+ key,
82
+ methods,
83
+ name,
84
+ request,
85
+ retryCount,
86
+ retryDelay,
87
+ timeout,
88
+ type,
89
+ },
90
+ request: buildRequest(request, { methods, retryCount, retryDelay, uid }),
91
+ value,
92
+ }
93
+ }
package/src/index.ts CHANGED
@@ -40,17 +40,14 @@ export type {
40
40
  } from './actions/watchBlockNumber.js'
41
41
 
42
42
  // Exporting clients
43
- export type {
44
- BtcAccount,
45
- SignPsbtParameters,
46
- SignPsbtReturnType,
47
- UTXOWalletProvider,
48
- UTXOWalletSchema,
49
- } from './clients/types.js'
50
-
51
- // Exporting decorators
52
- export { UTXOActions } from './decorators/UTXOActions.js'
53
- export { UTXOAPIActions } from './decorators/UTXOAPIActions.js'
43
+ export {
44
+ type PublicActions,
45
+ publicActions,
46
+ } from './clients/decorators/public.js'
47
+ export {
48
+ type WalletActions,
49
+ walletActions,
50
+ } from './clients/decorators/wallet.js'
54
51
 
55
52
  // Exporting transports
56
53
  export { ankrMethods } from './transports/ankr.js'
@@ -70,15 +67,54 @@ export type {
70
67
  RpcMethods,
71
68
  RpcResponse,
72
69
  SuccessResult,
73
- UTXOAPIMethod,
74
- UTXOAPISchema,
75
70
  UTXOSchema,
71
+ UTXOWalletSchema,
72
+ SignPsbtParameters,
73
+ SignPsbtReturnType,
76
74
  } from './transports/types.js'
77
75
  export { utxo } from './transports/utxo.js'
76
+ export { custom } from './transports/custom.js'
78
77
 
79
78
  // Exporting types
79
+ export type { Account } from './types/account.js'
80
+ export type { Address } from './types/address.js'
81
+ export type { BlockTag } from './types/block.js'
80
82
  export type { BlockStats, BlockStatsKeys } from './types/blockStats.js'
83
+ export type {
84
+ Chain,
85
+ ChainConfig,
86
+ ChainFormatter,
87
+ ChainFormatters,
88
+ } from './types/chain.js'
89
+ export type {
90
+ Client,
91
+ ClientConfig,
92
+ CreateClientErrorType,
93
+ } from './types/client.js'
94
+ export type { Hash } from './types/hash.js'
95
+ export type {
96
+ BtcRpcRequestFn,
97
+ BtcRpcRequestOptions,
98
+ RpcParameters,
99
+ RpcSchema,
100
+ RpcSchemaOverride,
101
+ } from './types/request.js'
102
+ export type {
103
+ BitcoinRpcMethods,
104
+ WalletRpcSchema,
105
+ } from './types/rpc.js'
81
106
  export type { UTXOTransaction } from './types/transaction.js'
107
+ export type {
108
+ Assign,
109
+ Compute,
110
+ ExactPartial,
111
+ IsNarrowable,
112
+ IsNever,
113
+ IsUnknown,
114
+ LooseOmit,
115
+ UnionStrictOmit,
116
+ } from './types/utils.js'
117
+ export type { BtcAccount } from './types/account.js'
82
118
 
83
119
  // Exporting utils
84
120
  export { cancelTransaction } from './utils/cancelTransaction.js'
@@ -92,6 +128,71 @@ export { isUTXOAddress } from './utils/isUTXOAddress.js'
92
128
  export { modifyFee } from './utils/modifyFee.js'
93
129
  export { cleanupCache, listenersCache, observe } from './utils/observe.js'
94
130
  export { poll } from './utils/poll.js'
131
+ export { base64ToHex, hexToBase64 } from './utils/converter.js'
132
+ export { withRetry } from './utils/withRetry.js'
133
+ export { parseAccount } from './utils/parseAccount.js'
134
+ export { deepEqual } from './utils/deepEqual.js'
135
+ export { withTimeout } from './utils/withTimeout.js'
136
+
137
+ // Exporting factories
138
+ export { createClient, rpcSchema } from './factories/createClient.js'
95
139
 
96
140
  // Exporting chains
97
141
  export { bitcoin } from './chains/bitcoin.js'
142
+ export { defineChain } from './chains/defineChain.js'
143
+
144
+ // Exporting errors
145
+ export {
146
+ InvalidAddressError,
147
+ type InvalidAddressErrorType,
148
+ } from './errors/address.js'
149
+ export { BaseError, type BaseErrorType } from './errors/base.js'
150
+ export { BlockNotFoundError } from './errors/block.js'
151
+ export {
152
+ ChainNotConfiguredError,
153
+ ConnectorAccountNotFoundError,
154
+ ConnectorAlreadyConnectedError,
155
+ ConnectorChainMismatchError,
156
+ ConnectorNotConnectedError,
157
+ ConnectorNotFoundError,
158
+ } from './errors/config.js'
159
+ export { ProviderNotFoundError } from './errors/provider.js'
160
+ export {
161
+ HttpRequestError,
162
+ RpcRequestError,
163
+ SocketClosedError,
164
+ TimeoutError,
165
+ } from './errors/request.js'
166
+ export {
167
+ MethodNotSupportedRpcError,
168
+ ParseError,
169
+ RpcErrorCode,
170
+ UserRejectedRequestError,
171
+ } from './errors/rpc.js'
172
+ export {
173
+ TransactionNotFoundError,
174
+ TransactionReceiptNotFoundError,
175
+ WaitForTransactionReceiptTimeoutError,
176
+ } from './errors/transaction.js'
177
+ export { UrlRequiredError } from './errors/transport.js'
178
+ export type { ErrorType } from './errors/utils.js'
179
+
180
+ export {
181
+ http,
182
+ type HttpTransport,
183
+ type HttpTransportConfig,
184
+ type HttpTransportErrorType,
185
+ } from './transports/http.js'
186
+
187
+ export {
188
+ fallback,
189
+ type FallbackTransport,
190
+ type FallbackTransportConfig,
191
+ type FallbackTransportErrorType,
192
+ } from './transports/fallback.js'
193
+
194
+ export type { Transport } from './types/transport.js'
195
+
196
+ export type { OneOf, RemoveUndefined } from './types/utils.js'
197
+ export { uid } from './utils/uid.js'
198
+ export { version } from './version.js'
@@ -0,0 +1,56 @@
1
+ import type { ErrorType } from '../errors/utils.js'
2
+ import {
3
+ type CreateTransportErrorType,
4
+ type Transport,
5
+ type TransportConfig,
6
+ createTransport,
7
+ } from '../factories/createTransport.js'
8
+
9
+ type BitcoinProvider = { request(...args: any): Promise<any> }
10
+
11
+ export type CustomTransportConfig = {
12
+ /** The key of the transport. */
13
+ key?: TransportConfig['key'] | undefined
14
+ /** Methods to include or exclude from executing RPC requests. */
15
+ methods?: TransportConfig['methods'] | undefined
16
+ /** The name of the transport. */
17
+ name?: TransportConfig['name'] | undefined
18
+ /** The max number of times to retry. */
19
+ retryCount?: TransportConfig['retryCount'] | undefined
20
+ /** The base delay (in ms) between retries. */
21
+ retryDelay?: TransportConfig['retryDelay'] | undefined
22
+ }
23
+
24
+ export type CustomTransport = Transport<
25
+ 'custom',
26
+ // biome-ignore lint/complexity/noBannedTypes: <explanation>
27
+ {},
28
+ BitcoinProvider['request']
29
+ >
30
+
31
+ export type CustomTransportErrorType = CreateTransportErrorType | ErrorType
32
+
33
+ /**
34
+ * @description Creates a custom transport given an EIP-1193 compliant `request` attribute.
35
+ */
36
+ export function custom<provider extends BitcoinProvider>(
37
+ provider: provider,
38
+ config: CustomTransportConfig = {}
39
+ ): CustomTransport {
40
+ const {
41
+ key = 'custom',
42
+ methods,
43
+ name = 'Custom Provider',
44
+ retryDelay,
45
+ } = config
46
+ return ({ retryCount: defaultRetryCount }) =>
47
+ createTransport({
48
+ key,
49
+ methods,
50
+ name,
51
+ request: provider.request.bind(provider),
52
+ retryCount: config.retryCount ?? defaultRetryCount,
53
+ retryDelay,
54
+ type: 'custom',
55
+ })
56
+ }