@lifi/sdk 3.3.0-beta.2 → 3.3.0-beta.3

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 (232) hide show
  1. package/package.json +4 -3
  2. package/src/_cjs/core/Solana/SolanaStepExecutor.js +10 -0
  3. package/src/_cjs/core/Solana/SolanaStepExecutor.js.map +1 -1
  4. package/src/_cjs/core/UTXO/UTXO.js +2 -2
  5. package/src/_cjs/core/UTXO/UTXO.js.map +1 -1
  6. package/src/_cjs/core/UTXO/UTXOStepExecutor.js +3 -4
  7. package/src/_cjs/core/UTXO/UTXOStepExecutor.js.map +1 -1
  8. package/src/_cjs/core/UTXO/getUTXOAPIPublicClient.js +7 -7
  9. package/src/_cjs/core/UTXO/getUTXOAPIPublicClient.js.map +1 -1
  10. package/src/_cjs/core/UTXO/getUTXOPublicClient.js +2 -2
  11. package/src/_cjs/core/UTXO/getUTXOPublicClient.js.map +1 -1
  12. package/src/_cjs/index.js +2 -4
  13. package/src/_cjs/index.js.map +1 -1
  14. package/src/_cjs/version.js +1 -1
  15. package/src/_esm/core/Solana/SolanaStepExecutor.js +10 -0
  16. package/src/_esm/core/Solana/SolanaStepExecutor.js.map +1 -1
  17. package/src/_esm/core/UTXO/UTXO.js +1 -1
  18. package/src/_esm/core/UTXO/UTXO.js.map +1 -1
  19. package/src/_esm/core/UTXO/UTXOStepExecutor.js +1 -2
  20. package/src/_esm/core/UTXO/UTXOStepExecutor.js.map +1 -1
  21. package/src/_esm/core/UTXO/getUTXOAPIPublicClient.js +2 -2
  22. package/src/_esm/core/UTXO/getUTXOAPIPublicClient.js.map +1 -1
  23. package/src/_esm/core/UTXO/getUTXOPublicClient.js +1 -1
  24. package/src/_esm/core/UTXO/getUTXOPublicClient.js.map +1 -1
  25. package/src/_esm/index.js +0 -1
  26. package/src/_esm/index.js.map +1 -1
  27. package/src/_esm/version.js +1 -1
  28. package/src/_types/core/Solana/SolanaStepExecutor.d.ts.map +1 -1
  29. package/src/_types/core/UTXO/UTXOStepExecutor.d.ts.map +1 -1
  30. package/src/_types/core/UTXO/getUTXOAPIPublicClient.d.ts +2 -2
  31. package/src/_types/core/UTXO/getUTXOAPIPublicClient.d.ts.map +1 -1
  32. package/src/_types/core/UTXO/getUTXOPublicClient.d.ts +2 -2
  33. package/src/_types/core/UTXO/getUTXOPublicClient.d.ts.map +1 -1
  34. package/src/_types/index.d.ts +0 -2
  35. package/src/_types/index.d.ts.map +1 -1
  36. package/src/_types/version.d.ts +1 -1
  37. package/src/core/Solana/SolanaStepExecutor.ts +12 -0
  38. package/src/core/UTXO/UTXO.ts +1 -1
  39. package/src/core/UTXO/UTXOStepExecutor.ts +2 -5
  40. package/src/core/UTXO/getUTXOAPIPublicClient.ts +3 -3
  41. package/src/core/UTXO/getUTXOPublicClient.ts +2 -2
  42. package/src/index.ts +0 -8
  43. package/src/version.ts +1 -1
  44. package/src/_cjs/core/UTXO/isUTXOAddress.js +0 -133
  45. package/src/_cjs/core/UTXO/isUTXOAddress.js.map +0 -1
  46. package/src/_cjs/core/UTXO/utxo-stack/actions/getBalance.js +0 -11
  47. package/src/_cjs/core/UTXO/utxo-stack/actions/getBalance.js.map +0 -1
  48. package/src/_cjs/core/UTXO/utxo-stack/actions/getBlock.js +0 -31
  49. package/src/_cjs/core/UTXO/utxo-stack/actions/getBlock.js.map +0 -1
  50. package/src/_cjs/core/UTXO/utxo-stack/actions/getBlockCount.js +0 -11
  51. package/src/_cjs/core/UTXO/utxo-stack/actions/getBlockCount.js.map +0 -1
  52. package/src/_cjs/core/UTXO/utxo-stack/actions/getBlockStats.js +0 -27
  53. package/src/_cjs/core/UTXO/utxo-stack/actions/getBlockStats.js.map +0 -1
  54. package/src/_cjs/core/UTXO/utxo-stack/actions/getUTXOTransaction.js +0 -24
  55. package/src/_cjs/core/UTXO/utxo-stack/actions/getUTXOTransaction.js.map +0 -1
  56. package/src/_cjs/core/UTXO/utxo-stack/actions/sendUTXOTransaction.js +0 -15
  57. package/src/_cjs/core/UTXO/utxo-stack/actions/sendUTXOTransaction.js.map +0 -1
  58. package/src/_cjs/core/UTXO/utxo-stack/actions/signPsbt.js +0 -11
  59. package/src/_cjs/core/UTXO/utxo-stack/actions/signPsbt.js.map +0 -1
  60. package/src/_cjs/core/UTXO/utxo-stack/actions/waitForTransaction.js +0 -185
  61. package/src/_cjs/core/UTXO/utxo-stack/actions/waitForTransaction.js.map +0 -1
  62. package/src/_cjs/core/UTXO/utxo-stack/actions/watchBlockNumber.js +0 -45
  63. package/src/_cjs/core/UTXO/utxo-stack/actions/watchBlockNumber.js.map +0 -1
  64. package/src/_cjs/core/UTXO/utxo-stack/clients/types.js +0 -3
  65. package/src/_cjs/core/UTXO/utxo-stack/clients/types.js.map +0 -1
  66. package/src/_cjs/core/UTXO/utxo-stack/decorators/UTXOAPIActions.js +0 -10
  67. package/src/_cjs/core/UTXO/utxo-stack/decorators/UTXOAPIActions.js.map +0 -1
  68. package/src/_cjs/core/UTXO/utxo-stack/decorators/UTXOActions.js +0 -14
  69. package/src/_cjs/core/UTXO/utxo-stack/decorators/UTXOActions.js.map +0 -1
  70. package/src/_cjs/core/UTXO/utxo-stack/transports/utxo/ankr.js +0 -21
  71. package/src/_cjs/core/UTXO/utxo-stack/transports/utxo/ankr.js.map +0 -1
  72. package/src/_cjs/core/UTXO/utxo-stack/transports/utxo/blockchair.js +0 -24
  73. package/src/_cjs/core/UTXO/utxo-stack/transports/utxo/blockchair.js.map +0 -1
  74. package/src/_cjs/core/UTXO/utxo-stack/transports/utxo/blockcypher.js +0 -21
  75. package/src/_cjs/core/UTXO/utxo-stack/transports/utxo/blockcypher.js.map +0 -1
  76. package/src/_cjs/core/UTXO/utxo-stack/transports/utxo/getHttpRpcClient.js +0 -77
  77. package/src/_cjs/core/UTXO/utxo-stack/transports/utxo/getHttpRpcClient.js.map +0 -1
  78. package/src/_cjs/core/UTXO/utxo-stack/transports/utxo/getRpcProviderMethods.js +0 -22
  79. package/src/_cjs/core/UTXO/utxo-stack/transports/utxo/getRpcProviderMethods.js.map +0 -1
  80. package/src/_cjs/core/UTXO/utxo-stack/transports/utxo/mempool.js +0 -17
  81. package/src/_cjs/core/UTXO/utxo-stack/transports/utxo/mempool.js.map +0 -1
  82. package/src/_cjs/core/UTXO/utxo-stack/transports/utxo/types.js +0 -3
  83. package/src/_cjs/core/UTXO/utxo-stack/transports/utxo/types.js.map +0 -1
  84. package/src/_cjs/core/UTXO/utxo-stack/transports/utxo/utxo.js +0 -56
  85. package/src/_cjs/core/UTXO/utxo-stack/transports/utxo/utxo.js.map +0 -1
  86. package/src/_cjs/core/UTXO/utxo-stack/types/blockStats.js +0 -3
  87. package/src/_cjs/core/UTXO/utxo-stack/types/blockStats.js.map +0 -1
  88. package/src/_cjs/core/UTXO/utxo-stack/types/transaction.js +0 -3
  89. package/src/_cjs/core/UTXO/utxo-stack/types/transaction.js.map +0 -1
  90. package/src/_cjs/core/UTXO/utxo-stack/utils/cancelTransaction.js +0 -51
  91. package/src/_cjs/core/UTXO/utxo-stack/utils/cancelTransaction.js.map +0 -1
  92. package/src/_cjs/core/UTXO/utxo-stack/utils/modifyFee.js +0 -50
  93. package/src/_cjs/core/UTXO/utxo-stack/utils/modifyFee.js.map +0 -1
  94. package/src/_cjs/core/UTXO/utxo-stack/utils/observe.js +0 -48
  95. package/src/_cjs/core/UTXO/utxo-stack/utils/observe.js.map +0 -1
  96. package/src/_cjs/core/UTXO/utxo-stack/utils/poll.js +0 -30
  97. package/src/_cjs/core/UTXO/utxo-stack/utils/poll.js.map +0 -1
  98. package/src/_esm/core/UTXO/isUTXOAddress.js +0 -128
  99. package/src/_esm/core/UTXO/isUTXOAddress.js.map +0 -1
  100. package/src/_esm/core/UTXO/utxo-stack/actions/getBalance.js +0 -8
  101. package/src/_esm/core/UTXO/utxo-stack/actions/getBalance.js.map +0 -1
  102. package/src/_esm/core/UTXO/utxo-stack/actions/getBlock.js +0 -28
  103. package/src/_esm/core/UTXO/utxo-stack/actions/getBlock.js.map +0 -1
  104. package/src/_esm/core/UTXO/utxo-stack/actions/getBlockCount.js +0 -8
  105. package/src/_esm/core/UTXO/utxo-stack/actions/getBlockCount.js.map +0 -1
  106. package/src/_esm/core/UTXO/utxo-stack/actions/getBlockStats.js +0 -24
  107. package/src/_esm/core/UTXO/utxo-stack/actions/getBlockStats.js.map +0 -1
  108. package/src/_esm/core/UTXO/utxo-stack/actions/getUTXOTransaction.js +0 -21
  109. package/src/_esm/core/UTXO/utxo-stack/actions/getUTXOTransaction.js.map +0 -1
  110. package/src/_esm/core/UTXO/utxo-stack/actions/sendUTXOTransaction.js +0 -12
  111. package/src/_esm/core/UTXO/utxo-stack/actions/sendUTXOTransaction.js.map +0 -1
  112. package/src/_esm/core/UTXO/utxo-stack/actions/signPsbt.js +0 -8
  113. package/src/_esm/core/UTXO/utxo-stack/actions/signPsbt.js.map +0 -1
  114. package/src/_esm/core/UTXO/utxo-stack/actions/waitForTransaction.js +0 -230
  115. package/src/_esm/core/UTXO/utxo-stack/actions/waitForTransaction.js.map +0 -1
  116. package/src/_esm/core/UTXO/utxo-stack/actions/watchBlockNumber.js +0 -58
  117. package/src/_esm/core/UTXO/utxo-stack/actions/watchBlockNumber.js.map +0 -1
  118. package/src/_esm/core/UTXO/utxo-stack/clients/types.js +0 -2
  119. package/src/_esm/core/UTXO/utxo-stack/clients/types.js.map +0 -1
  120. package/src/_esm/core/UTXO/utxo-stack/decorators/UTXOAPIActions.js +0 -7
  121. package/src/_esm/core/UTXO/utxo-stack/decorators/UTXOAPIActions.js.map +0 -1
  122. package/src/_esm/core/UTXO/utxo-stack/decorators/UTXOActions.js +0 -11
  123. package/src/_esm/core/UTXO/utxo-stack/decorators/UTXOActions.js.map +0 -1
  124. package/src/_esm/core/UTXO/utxo-stack/transports/utxo/ankr.js +0 -18
  125. package/src/_esm/core/UTXO/utxo-stack/transports/utxo/ankr.js.map +0 -1
  126. package/src/_esm/core/UTXO/utxo-stack/transports/utxo/blockchair.js +0 -21
  127. package/src/_esm/core/UTXO/utxo-stack/transports/utxo/blockchair.js.map +0 -1
  128. package/src/_esm/core/UTXO/utxo-stack/transports/utxo/blockcypher.js +0 -18
  129. package/src/_esm/core/UTXO/utxo-stack/transports/utxo/blockcypher.js.map +0 -1
  130. package/src/_esm/core/UTXO/utxo-stack/transports/utxo/getHttpRpcClient.js +0 -74
  131. package/src/_esm/core/UTXO/utxo-stack/transports/utxo/getHttpRpcClient.js.map +0 -1
  132. package/src/_esm/core/UTXO/utxo-stack/transports/utxo/getRpcProviderMethods.js +0 -19
  133. package/src/_esm/core/UTXO/utxo-stack/transports/utxo/getRpcProviderMethods.js.map +0 -1
  134. package/src/_esm/core/UTXO/utxo-stack/transports/utxo/mempool.js +0 -14
  135. package/src/_esm/core/UTXO/utxo-stack/transports/utxo/mempool.js.map +0 -1
  136. package/src/_esm/core/UTXO/utxo-stack/transports/utxo/types.js +0 -2
  137. package/src/_esm/core/UTXO/utxo-stack/transports/utxo/types.js.map +0 -1
  138. package/src/_esm/core/UTXO/utxo-stack/transports/utxo/utxo.js +0 -53
  139. package/src/_esm/core/UTXO/utxo-stack/transports/utxo/utxo.js.map +0 -1
  140. package/src/_esm/core/UTXO/utxo-stack/types/blockStats.js +0 -2
  141. package/src/_esm/core/UTXO/utxo-stack/types/blockStats.js.map +0 -1
  142. package/src/_esm/core/UTXO/utxo-stack/types/transaction.js +0 -2
  143. package/src/_esm/core/UTXO/utxo-stack/types/transaction.js.map +0 -1
  144. package/src/_esm/core/UTXO/utxo-stack/utils/cancelTransaction.js +0 -55
  145. package/src/_esm/core/UTXO/utxo-stack/utils/cancelTransaction.js.map +0 -1
  146. package/src/_esm/core/UTXO/utxo-stack/utils/modifyFee.js +0 -53
  147. package/src/_esm/core/UTXO/utxo-stack/utils/modifyFee.js.map +0 -1
  148. package/src/_esm/core/UTXO/utxo-stack/utils/observe.js +0 -51
  149. package/src/_esm/core/UTXO/utxo-stack/utils/observe.js.map +0 -1
  150. package/src/_esm/core/UTXO/utxo-stack/utils/poll.js +0 -30
  151. package/src/_esm/core/UTXO/utxo-stack/utils/poll.js.map +0 -1
  152. package/src/_types/core/UTXO/isUTXOAddress.d.ts +0 -21
  153. package/src/_types/core/UTXO/isUTXOAddress.d.ts.map +0 -1
  154. package/src/_types/core/UTXO/utxo-stack/actions/getBalance.d.ts +0 -9
  155. package/src/_types/core/UTXO/utxo-stack/actions/getBalance.d.ts.map +0 -1
  156. package/src/_types/core/UTXO/utxo-stack/actions/getBlock.d.ts +0 -13
  157. package/src/_types/core/UTXO/utxo-stack/actions/getBlock.d.ts.map +0 -1
  158. package/src/_types/core/UTXO/utxo-stack/actions/getBlockCount.d.ts +0 -5
  159. package/src/_types/core/UTXO/utxo-stack/actions/getBlockCount.d.ts.map +0 -1
  160. package/src/_types/core/UTXO/utxo-stack/actions/getBlockStats.d.ts +0 -15
  161. package/src/_types/core/UTXO/utxo-stack/actions/getBlockStats.d.ts.map +0 -1
  162. package/src/_types/core/UTXO/utxo-stack/actions/getUTXOTransaction.d.ts +0 -12
  163. package/src/_types/core/UTXO/utxo-stack/actions/getUTXOTransaction.d.ts.map +0 -1
  164. package/src/_types/core/UTXO/utxo-stack/actions/sendUTXOTransaction.d.ts +0 -11
  165. package/src/_types/core/UTXO/utxo-stack/actions/sendUTXOTransaction.d.ts.map +0 -1
  166. package/src/_types/core/UTXO/utxo-stack/actions/signPsbt.d.ts +0 -4
  167. package/src/_types/core/UTXO/utxo-stack/actions/signPsbt.d.ts.map +0 -1
  168. package/src/_types/core/UTXO/utxo-stack/actions/waitForTransaction.d.ts +0 -76
  169. package/src/_types/core/UTXO/utxo-stack/actions/waitForTransaction.d.ts.map +0 -1
  170. package/src/_types/core/UTXO/utxo-stack/actions/watchBlockNumber.d.ts +0 -26
  171. package/src/_types/core/UTXO/utxo-stack/actions/watchBlockNumber.d.ts.map +0 -1
  172. package/src/_types/core/UTXO/utxo-stack/clients/types.d.ts +0 -44
  173. package/src/_types/core/UTXO/utxo-stack/clients/types.d.ts.map +0 -1
  174. package/src/_types/core/UTXO/utxo-stack/decorators/UTXOAPIActions.d.ts +0 -7
  175. package/src/_types/core/UTXO/utxo-stack/decorators/UTXOAPIActions.d.ts.map +0 -1
  176. package/src/_types/core/UTXO/utxo-stack/decorators/UTXOActions.d.ts +0 -11
  177. package/src/_types/core/UTXO/utxo-stack/decorators/UTXOActions.d.ts.map +0 -1
  178. package/src/_types/core/UTXO/utxo-stack/transports/utxo/ankr.d.ts +0 -3
  179. package/src/_types/core/UTXO/utxo-stack/transports/utxo/ankr.d.ts.map +0 -1
  180. package/src/_types/core/UTXO/utxo-stack/transports/utxo/blockchair.d.ts +0 -3
  181. package/src/_types/core/UTXO/utxo-stack/transports/utxo/blockchair.d.ts.map +0 -1
  182. package/src/_types/core/UTXO/utxo-stack/transports/utxo/blockcypher.d.ts +0 -3
  183. package/src/_types/core/UTXO/utxo-stack/transports/utxo/blockcypher.d.ts.map +0 -1
  184. package/src/_types/core/UTXO/utxo-stack/transports/utxo/getHttpRpcClient.d.ts +0 -25
  185. package/src/_types/core/UTXO/utxo-stack/transports/utxo/getHttpRpcClient.d.ts.map +0 -1
  186. package/src/_types/core/UTXO/utxo-stack/transports/utxo/getRpcProviderMethods.d.ts +0 -3
  187. package/src/_types/core/UTXO/utxo-stack/transports/utxo/getRpcProviderMethods.d.ts.map +0 -1
  188. package/src/_types/core/UTXO/utxo-stack/transports/utxo/mempool.d.ts +0 -3
  189. package/src/_types/core/UTXO/utxo-stack/transports/utxo/mempool.d.ts.map +0 -1
  190. package/src/_types/core/UTXO/utxo-stack/transports/utxo/types.d.ts +0 -61
  191. package/src/_types/core/UTXO/utxo-stack/transports/utxo/types.d.ts.map +0 -1
  192. package/src/_types/core/UTXO/utxo-stack/transports/utxo/utxo.d.ts +0 -7
  193. package/src/_types/core/UTXO/utxo-stack/transports/utxo/utxo.d.ts.map +0 -1
  194. package/src/_types/core/UTXO/utxo-stack/types/blockStats.d.ts +0 -35
  195. package/src/_types/core/UTXO/utxo-stack/types/blockStats.d.ts.map +0 -1
  196. package/src/_types/core/UTXO/utxo-stack/types/transaction.d.ts +0 -42
  197. package/src/_types/core/UTXO/utxo-stack/types/transaction.d.ts.map +0 -1
  198. package/src/_types/core/UTXO/utxo-stack/utils/cancelTransaction.d.ts +0 -3
  199. package/src/_types/core/UTXO/utxo-stack/utils/cancelTransaction.d.ts.map +0 -1
  200. package/src/_types/core/UTXO/utxo-stack/utils/modifyFee.d.ts +0 -3
  201. package/src/_types/core/UTXO/utxo-stack/utils/modifyFee.d.ts.map +0 -1
  202. package/src/_types/core/UTXO/utxo-stack/utils/observe.d.ts +0 -19
  203. package/src/_types/core/UTXO/utxo-stack/utils/observe.d.ts.map +0 -1
  204. package/src/_types/core/UTXO/utxo-stack/utils/poll.d.ts +0 -13
  205. package/src/_types/core/UTXO/utxo-stack/utils/poll.d.ts.map +0 -1
  206. package/src/core/UTXO/isUTXOAddress.ts +0 -165
  207. package/src/core/UTXO/utxo-stack/actions/getBalance.ts +0 -26
  208. package/src/core/UTXO/utxo-stack/actions/getBlock.ts +0 -58
  209. package/src/core/UTXO/utxo-stack/actions/getBlockCount.ts +0 -20
  210. package/src/core/UTXO/utxo-stack/actions/getBlockStats.ts +0 -55
  211. package/src/core/UTXO/utxo-stack/actions/getUTXOTransaction.ts +0 -43
  212. package/src/core/UTXO/utxo-stack/actions/sendUTXOTransaction.ts +0 -29
  213. package/src/core/UTXO/utxo-stack/actions/signPsbt.ts +0 -23
  214. package/src/core/UTXO/utxo-stack/actions/waitForTransaction.ts +0 -387
  215. package/src/core/UTXO/utxo-stack/actions/watchBlockNumber.ts +0 -105
  216. package/src/core/UTXO/utxo-stack/clients/types.ts +0 -48
  217. package/src/core/UTXO/utxo-stack/decorators/UTXOAPIActions.ts +0 -20
  218. package/src/core/UTXO/utxo-stack/decorators/UTXOActions.ts +0 -37
  219. package/src/core/UTXO/utxo-stack/transports/utxo/ankr.ts +0 -30
  220. package/src/core/UTXO/utxo-stack/transports/utxo/blockchair.ts +0 -27
  221. package/src/core/UTXO/utxo-stack/transports/utxo/blockcypher.ts +0 -32
  222. package/src/core/UTXO/utxo-stack/transports/utxo/getHttpRpcClient.ts +0 -122
  223. package/src/core/UTXO/utxo-stack/transports/utxo/getRpcProviderMethods.ts +0 -22
  224. package/src/core/UTXO/utxo-stack/transports/utxo/mempool.ts +0 -34
  225. package/src/core/UTXO/utxo-stack/transports/utxo/types.ts +0 -71
  226. package/src/core/UTXO/utxo-stack/transports/utxo/utxo.ts +0 -84
  227. package/src/core/UTXO/utxo-stack/types/blockStats.ts +0 -35
  228. package/src/core/UTXO/utxo-stack/types/transaction.ts +0 -43
  229. package/src/core/UTXO/utxo-stack/utils/cancelTransaction.ts +0 -75
  230. package/src/core/UTXO/utxo-stack/utils/modifyFee.ts +0 -78
  231. package/src/core/UTXO/utxo-stack/utils/observe.ts +0 -81
  232. package/src/core/UTXO/utxo-stack/utils/poll.ts +0 -48
@@ -1,165 +0,0 @@
1
- import { sha256 } from '@noble/hashes/sha256'
2
- import { type Decoded, bech32, bech32m } from 'bech32'
3
- import bs58 from 'bs58'
4
-
5
- export enum UTXONetwork {
6
- Mainnet = 'mainnet',
7
- Testnet = 'testnet',
8
- Regtest = 'regtest',
9
- }
10
-
11
- export enum UTXOAddressType {
12
- p2pkh = 'p2pkh',
13
- p2sh = 'p2sh',
14
- p2wpkh = 'p2wpkh',
15
- p2wsh = 'p2wsh',
16
- p2tr = 'p2tr',
17
- }
18
-
19
- export type UTXOAddress = {
20
- bech32: boolean
21
- network: UTXONetwork
22
- address: string
23
- type: UTXOAddressType
24
- }
25
-
26
- const addressTypes: {
27
- [key: number]: { type: UTXOAddressType; network: UTXONetwork }
28
- } = {
29
- 0: {
30
- type: UTXOAddressType.p2pkh,
31
- network: UTXONetwork.Mainnet,
32
- },
33
- 111: {
34
- type: UTXOAddressType.p2pkh,
35
- network: UTXONetwork.Testnet,
36
- },
37
- 5: {
38
- type: UTXOAddressType.p2sh,
39
- network: UTXONetwork.Mainnet,
40
- },
41
- 196: {
42
- type: UTXOAddressType.p2sh,
43
- network: UTXONetwork.Testnet,
44
- },
45
- }
46
-
47
- const parseBech32 = (address: string): UTXOAddress => {
48
- let decoded: Decoded
49
-
50
- try {
51
- if (
52
- address.startsWith('bc1p') ||
53
- address.startsWith('tb1p') ||
54
- address.startsWith('bcrt1p')
55
- ) {
56
- decoded = bech32m.decode(address)
57
- } else {
58
- decoded = bech32.decode(address)
59
- }
60
- } catch (_error) {
61
- throw new Error('Invalid address')
62
- }
63
-
64
- const mapPrefixToNetwork: { [key: string]: UTXONetwork } = {
65
- bc: UTXONetwork.Mainnet,
66
- tb: UTXONetwork.Testnet,
67
- bcrt: UTXONetwork.Regtest,
68
- }
69
-
70
- const network: UTXONetwork = mapPrefixToNetwork[decoded.prefix]
71
-
72
- if (network === undefined) {
73
- throw new Error('Invalid address')
74
- }
75
-
76
- const witnessVersion = decoded.words[0]
77
-
78
- if (witnessVersion < 0 || witnessVersion > 16) {
79
- throw new Error('Invalid address')
80
- }
81
- const data = bech32.fromWords(decoded.words.slice(1))
82
-
83
- let type: UTXOAddressType
84
- if (data.length === 20) {
85
- type = UTXOAddressType.p2wpkh
86
- } else if (witnessVersion === 1) {
87
- type = UTXOAddressType.p2tr
88
- } else {
89
- type = UTXOAddressType.p2wsh
90
- }
91
-
92
- return {
93
- bech32: true,
94
- network,
95
- address,
96
- type,
97
- }
98
- }
99
-
100
- export const getUTXOAddress = (address: string): UTXOAddress => {
101
- let decoded: Uint8Array
102
- const prefix = address.substring(0, 2).toLowerCase()
103
-
104
- if (prefix === 'bc' || prefix === 'tb') {
105
- return parseBech32(address)
106
- }
107
-
108
- try {
109
- decoded = bs58.decode(address)
110
- } catch (_error) {
111
- throw new Error('Invalid address')
112
- }
113
-
114
- const { length } = decoded
115
-
116
- if (length !== 25) {
117
- throw new Error('Invalid address')
118
- }
119
-
120
- const version = decoded[0]
121
-
122
- const checksum = decoded.slice(length - 4, length)
123
- const body = decoded.slice(0, length - 4)
124
-
125
- const expectedChecksum = sha256(sha256(body)).slice(0, 4)
126
-
127
- if (
128
- checksum.some(
129
- (value: number, index: number) => value !== expectedChecksum[index]
130
- )
131
- ) {
132
- throw new Error('Invalid address')
133
- }
134
-
135
- const validVersions = Object.keys(addressTypes).map(Number)
136
-
137
- if (!validVersions.includes(version)) {
138
- throw new Error('Invalid address')
139
- }
140
-
141
- const addressType = addressTypes[version]
142
-
143
- return {
144
- ...addressType,
145
- address,
146
- bech32: false,
147
- }
148
- }
149
-
150
- export const isUTXOAddress = (
151
- address: string,
152
- network?: UTXONetwork
153
- ): boolean => {
154
- try {
155
- const utxoAddress = getUTXOAddress(address)
156
-
157
- if (network) {
158
- return network === utxoAddress.network
159
- }
160
-
161
- return true
162
- } catch (_error) {
163
- return false
164
- }
165
- }
@@ -1,26 +0,0 @@
1
- import type { Account, Chain, Client, Transport } from 'viem'
2
- import type { UTXOAPISchema } from '../transports/utxo/types.js'
3
-
4
- export type GetBalanceParameters = {
5
- /** The address of the account. */
6
- address: string
7
- }
8
-
9
- export type GetBalanceReturnType = bigint
10
-
11
- export async function getBalance<
12
- C extends Chain | undefined,
13
- A extends Account | undefined = Account | undefined,
14
- >(
15
- client: Client<Transport, C, A, UTXOAPISchema>,
16
- params: GetBalanceParameters
17
- ): Promise<GetBalanceReturnType> {
18
- const data = await client.request(
19
- {
20
- method: 'getBalance',
21
- params,
22
- },
23
- { dedupe: true }
24
- )
25
- return data
26
- }
@@ -1,58 +0,0 @@
1
- import { Block } from 'bitcoinjs-lib'
2
- import {
3
- type Account,
4
- BlockNotFoundError,
5
- type Chain,
6
- type Client,
7
- type Transport,
8
- } from 'viem'
9
- import type { UTXOSchema } from '../transports/utxo/types.js'
10
-
11
- export type GetBlockParameters =
12
- | {
13
- blockHash: string
14
- blockNumber?: never
15
- }
16
- | {
17
- blockHash?: never
18
- blockNumber: number
19
- }
20
-
21
- export type GetBlockReturnType = Block
22
-
23
- export async function getBlock<
24
- C extends Chain | undefined,
25
- A extends Account | undefined = Account | undefined,
26
- >(
27
- client: Client<Transport, C, A, UTXOSchema>,
28
- { blockHash, blockNumber }: GetBlockParameters
29
- ): Promise<GetBlockReturnType> {
30
- let blockHex: string | undefined
31
- try {
32
- let _blockHash = blockHash
33
- if (!_blockHash && blockNumber) {
34
- _blockHash = await client.request(
35
- {
36
- method: 'getblockhash',
37
- params: [blockNumber],
38
- },
39
- { dedupe: true }
40
- )
41
- }
42
- if (_blockHash) {
43
- blockHex = await client.request(
44
- {
45
- method: 'getblock',
46
- params: [_blockHash, 0],
47
- },
48
- { dedupe: true }
49
- )
50
- }
51
- } catch (_error) {
52
- throw new BlockNotFoundError({ blockHash, blockNumber } as never)
53
- }
54
- if (!blockHex) {
55
- throw new BlockNotFoundError({ blockHash, blockNumber } as never)
56
- }
57
- return Block.fromHex(blockHex)
58
- }
@@ -1,20 +0,0 @@
1
- import type { Account, Chain, Client, Transport } from 'viem'
2
- import type { UTXOSchema } from '../transports/utxo/types.js'
3
-
4
- export type GetBlockCountReturnType = number
5
-
6
- export async function getBlockCount<
7
- C extends Chain | undefined,
8
- A extends Account | undefined = Account | undefined,
9
- >(
10
- client: Client<Transport, C, A, UTXOSchema>
11
- ): Promise<GetBlockCountReturnType> {
12
- const data = await client.request(
13
- {
14
- method: 'getblockcount',
15
- params: [],
16
- },
17
- { dedupe: true }
18
- )
19
- return data
20
- }
@@ -1,55 +0,0 @@
1
- import {
2
- type Account,
3
- BlockNotFoundError,
4
- type Chain,
5
- type Client,
6
- type Transport,
7
- } from 'viem'
8
- import type { UTXOSchema } from '../transports/utxo/types.js'
9
- import type { BlockStats, BlockStatsKeys } from '../types/blockStats.js'
10
-
11
- export type GetBlockStatsParameters = (
12
- | {
13
- blockHash: string
14
- blockNumber?: never
15
- }
16
- | {
17
- blockHash?: never
18
- blockNumber: number
19
- }
20
- ) & {
21
- stats?: Array<BlockStatsKeys>
22
- }
23
-
24
- export type GetBlockStatsReturnType = BlockStats
25
-
26
- export async function getBlockStats<
27
- C extends Chain | undefined,
28
- A extends Account | undefined = Account | undefined,
29
- >(
30
- client: Client<Transport, C, A, UTXOSchema>,
31
- { blockHash, blockNumber, stats }: GetBlockStatsParameters
32
- ): Promise<GetBlockStatsReturnType> {
33
- const blockHashOrNumber = blockHash || blockNumber
34
- if (!blockHashOrNumber) {
35
- throw new BlockNotFoundError({ blockHash, blockNumber } as never)
36
- }
37
- try {
38
- const params: [string | number, Array<BlockStatsKeys>?] = [
39
- blockHashOrNumber,
40
- ]
41
- if (stats) {
42
- params.push(stats)
43
- }
44
- const data = await client.request(
45
- {
46
- method: 'getblockstats',
47
- params: params,
48
- },
49
- { dedupe: true }
50
- )
51
- return data
52
- } catch (_error) {
53
- throw new BlockNotFoundError({ blockHash, blockNumber } as never)
54
- }
55
- }
@@ -1,43 +0,0 @@
1
- import {
2
- type Account,
3
- type Chain,
4
- type Client,
5
- TransactionNotFoundError,
6
- type Transport,
7
- } from 'viem'
8
- import type { UTXOSchema } from '../transports/utxo/types.js'
9
- import type { UTXOTransaction } from '../types/transaction.js'
10
-
11
- export type GetUTXOTransactionParameters = {
12
- /** The Id of the transaction */
13
- txId: string
14
- /** The block in which to look for the transaction */
15
- blockHash?: string
16
- }
17
-
18
- export type GetUTXOTransactionReturnType = UTXOTransaction
19
-
20
- export async function getUTXOTransaction<
21
- C extends Chain | undefined,
22
- A extends Account | undefined = Account | undefined,
23
- >(
24
- client: Client<Transport, C, A, UTXOSchema>,
25
- { txId, blockHash }: GetUTXOTransactionParameters
26
- ): Promise<GetUTXOTransactionReturnType> {
27
- try {
28
- const params: [string, boolean, string?] = [txId, true]
29
- if (blockHash) {
30
- params.push(blockHash)
31
- }
32
- const data = await client.request({
33
- method: 'getrawtransaction',
34
- params: params,
35
- })
36
- return data
37
- } catch (_error) {
38
- throw new TransactionNotFoundError({
39
- blockHash: blockHash as never,
40
- hash: txId as never,
41
- })
42
- }
43
- }
@@ -1,29 +0,0 @@
1
- import type { Account, Chain, Client, Transport } from 'viem'
2
- import type { UTXOSchema } from '../transports/utxo/types.js'
3
-
4
- export type SendUTXOTransactionParameters = {
5
- /** The hex string of the raw transaction. */
6
- hex: string
7
- /** Rejects transactions whose fee rate is higher than the specified value, expressed in BTC/kB. Set to 0 to accept any fee rate. Default = 0.10 */
8
- maxFeeRate?: number
9
- }
10
-
11
- export type SendUTXOTransactionReturnType = string
12
-
13
- export async function sendUTXOTransaction<
14
- C extends Chain | undefined,
15
- A extends Account | undefined = Account | undefined,
16
- >(
17
- client: Client<Transport, C, A, UTXOSchema>,
18
- { hex, maxFeeRate }: SendUTXOTransactionParameters
19
- ): Promise<SendUTXOTransactionReturnType> {
20
- const params: [string, number?] = [hex]
21
- if (maxFeeRate) {
22
- params.push(maxFeeRate)
23
- }
24
- const data = await client.request({
25
- method: 'sendrawtransaction',
26
- params: params,
27
- })
28
- return data
29
- }
@@ -1,23 +0,0 @@
1
- import type { Account, Chain, Client, Transport } from 'viem'
2
- import type {
3
- SignPsbtParameters,
4
- SignPsbtReturnType,
5
- UTXOWalletSchema,
6
- } from '../clients/types.js'
7
-
8
- export async function signPsbt<
9
- C extends Chain | undefined,
10
- A extends Account | undefined = Account | undefined,
11
- >(
12
- client: Client<Transport, C, A, UTXOWalletSchema>,
13
- params: SignPsbtParameters
14
- ): Promise<SignPsbtReturnType> {
15
- const data = await client.request(
16
- {
17
- method: 'signPsbt',
18
- params: params,
19
- },
20
- { dedupe: true }
21
- )
22
- return data
23
- }