@lifi/sdk 3.3.0-beta.1 → 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,128 +0,0 @@
1
- import { sha256 } from '@noble/hashes/sha256';
2
- import { bech32, bech32m } from 'bech32';
3
- import bs58 from 'bs58';
4
- export var UTXONetwork;
5
- (function (UTXONetwork) {
6
- UTXONetwork["Mainnet"] = "mainnet";
7
- UTXONetwork["Testnet"] = "testnet";
8
- UTXONetwork["Regtest"] = "regtest";
9
- })(UTXONetwork || (UTXONetwork = {}));
10
- export var UTXOAddressType;
11
- (function (UTXOAddressType) {
12
- UTXOAddressType["p2pkh"] = "p2pkh";
13
- UTXOAddressType["p2sh"] = "p2sh";
14
- UTXOAddressType["p2wpkh"] = "p2wpkh";
15
- UTXOAddressType["p2wsh"] = "p2wsh";
16
- UTXOAddressType["p2tr"] = "p2tr";
17
- })(UTXOAddressType || (UTXOAddressType = {}));
18
- const addressTypes = {
19
- 0: {
20
- type: UTXOAddressType.p2pkh,
21
- network: UTXONetwork.Mainnet,
22
- },
23
- 111: {
24
- type: UTXOAddressType.p2pkh,
25
- network: UTXONetwork.Testnet,
26
- },
27
- 5: {
28
- type: UTXOAddressType.p2sh,
29
- network: UTXONetwork.Mainnet,
30
- },
31
- 196: {
32
- type: UTXOAddressType.p2sh,
33
- network: UTXONetwork.Testnet,
34
- },
35
- };
36
- const parseBech32 = (address) => {
37
- let decoded;
38
- try {
39
- if (address.startsWith('bc1p') ||
40
- address.startsWith('tb1p') ||
41
- address.startsWith('bcrt1p')) {
42
- decoded = bech32m.decode(address);
43
- }
44
- else {
45
- decoded = bech32.decode(address);
46
- }
47
- }
48
- catch (_error) {
49
- throw new Error('Invalid address');
50
- }
51
- const mapPrefixToNetwork = {
52
- bc: UTXONetwork.Mainnet,
53
- tb: UTXONetwork.Testnet,
54
- bcrt: UTXONetwork.Regtest,
55
- };
56
- const network = mapPrefixToNetwork[decoded.prefix];
57
- if (network === undefined) {
58
- throw new Error('Invalid address');
59
- }
60
- const witnessVersion = decoded.words[0];
61
- if (witnessVersion < 0 || witnessVersion > 16) {
62
- throw new Error('Invalid address');
63
- }
64
- const data = bech32.fromWords(decoded.words.slice(1));
65
- let type;
66
- if (data.length === 20) {
67
- type = UTXOAddressType.p2wpkh;
68
- }
69
- else if (witnessVersion === 1) {
70
- type = UTXOAddressType.p2tr;
71
- }
72
- else {
73
- type = UTXOAddressType.p2wsh;
74
- }
75
- return {
76
- bech32: true,
77
- network,
78
- address,
79
- type,
80
- };
81
- };
82
- export const getUTXOAddress = (address) => {
83
- let decoded;
84
- const prefix = address.substring(0, 2).toLowerCase();
85
- if (prefix === 'bc' || prefix === 'tb') {
86
- return parseBech32(address);
87
- }
88
- try {
89
- decoded = bs58.decode(address);
90
- }
91
- catch (_error) {
92
- throw new Error('Invalid address');
93
- }
94
- const { length } = decoded;
95
- if (length !== 25) {
96
- throw new Error('Invalid address');
97
- }
98
- const version = decoded[0];
99
- const checksum = decoded.slice(length - 4, length);
100
- const body = decoded.slice(0, length - 4);
101
- const expectedChecksum = sha256(sha256(body)).slice(0, 4);
102
- if (checksum.some((value, index) => value !== expectedChecksum[index])) {
103
- throw new Error('Invalid address');
104
- }
105
- const validVersions = Object.keys(addressTypes).map(Number);
106
- if (!validVersions.includes(version)) {
107
- throw new Error('Invalid address');
108
- }
109
- const addressType = addressTypes[version];
110
- return {
111
- ...addressType,
112
- address,
113
- bech32: false,
114
- };
115
- };
116
- export const isUTXOAddress = (address, network) => {
117
- try {
118
- const utxoAddress = getUTXOAddress(address);
119
- if (network) {
120
- return network === utxoAddress.network;
121
- }
122
- return true;
123
- }
124
- catch (_error) {
125
- return false;
126
- }
127
- };
128
- //# sourceMappingURL=isUTXOAddress.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"isUTXOAddress.js","sourceRoot":"","sources":["../../../core/UTXO/isUTXOAddress.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- export async function getBalance(client, params) {
2
- const data = await client.request({
3
- method: 'getBalance',
4
- params,
5
- }, { dedupe: true });
6
- return data;
7
- }
8
- //# sourceMappingURL=getBalance.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getBalance.js","sourceRoot":"","sources":["../../../../../core/UTXO/utxo-stack/actions/getBalance.ts"],"names":[],"mappings":"AAUA,MAAM,CAAC,KAAK,UAAU,UAAU,CAI9B,MAA8C,EAC9C,MAA4B;IAE5B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAC/B;QACE,MAAM,EAAE,YAAY;QACpB,MAAM;KACP,EACD,EAAE,MAAM,EAAE,IAAI,EAAE,CACjB,CAAA;IACD,OAAO,IAAI,CAAA;AACb,CAAC"}
@@ -1,28 +0,0 @@
1
- import { Block } from 'bitcoinjs-lib';
2
- import { BlockNotFoundError, } from 'viem';
3
- export async function getBlock(client, { blockHash, blockNumber }) {
4
- let blockHex;
5
- try {
6
- let _blockHash = blockHash;
7
- if (!_blockHash && blockNumber) {
8
- _blockHash = await client.request({
9
- method: 'getblockhash',
10
- params: [blockNumber],
11
- }, { dedupe: true });
12
- }
13
- if (_blockHash) {
14
- blockHex = await client.request({
15
- method: 'getblock',
16
- params: [_blockHash, 0],
17
- }, { dedupe: true });
18
- }
19
- }
20
- catch (_error) {
21
- throw new BlockNotFoundError({ blockHash, blockNumber });
22
- }
23
- if (!blockHex) {
24
- throw new BlockNotFoundError({ blockHash, blockNumber });
25
- }
26
- return Block.fromHex(blockHex);
27
- }
28
- //# sourceMappingURL=getBlock.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getBlock.js","sourceRoot":"","sources":["../../../../../core/UTXO/utxo-stack/actions/getBlock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AACrC,OAAO,EAEL,kBAAkB,GAInB,MAAM,MAAM,CAAA;AAeb,MAAM,CAAC,KAAK,UAAU,QAAQ,CAI5B,MAA2C,EAC3C,EAAE,SAAS,EAAE,WAAW,EAAsB;IAE9C,IAAI,QAA4B,CAAA;IAChC,IAAI,CAAC;QACH,IAAI,UAAU,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,UAAU,IAAI,WAAW,EAAE,CAAC;YAC/B,UAAU,GAAG,MAAM,MAAM,CAAC,OAAO,CAC/B;gBACE,MAAM,EAAE,cAAc;gBACtB,MAAM,EAAE,CAAC,WAAW,CAAC;aACtB,EACD,EAAE,MAAM,EAAE,IAAI,EAAE,CACjB,CAAA;QACH,CAAC;QACD,IAAI,UAAU,EAAE,CAAC;YACf,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAC7B;gBACE,MAAM,EAAE,UAAU;gBAClB,MAAM,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC;aACxB,EACD,EAAE,MAAM,EAAE,IAAI,EAAE,CACjB,CAAA;QACH,CAAC;IACH,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,MAAM,IAAI,kBAAkB,CAAC,EAAE,SAAS,EAAE,WAAW,EAAW,CAAC,CAAA;IACnE,CAAC;IACD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,kBAAkB,CAAC,EAAE,SAAS,EAAE,WAAW,EAAW,CAAC,CAAA;IACnE,CAAC;IACD,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;AAChC,CAAC"}
@@ -1,8 +0,0 @@
1
- export async function getBlockCount(client) {
2
- const data = await client.request({
3
- method: 'getblockcount',
4
- params: [],
5
- }, { dedupe: true });
6
- return data;
7
- }
8
- //# sourceMappingURL=getBlockCount.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getBlockCount.js","sourceRoot":"","sources":["../../../../../core/UTXO/utxo-stack/actions/getBlockCount.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,KAAK,UAAU,aAAa,CAIjC,MAA2C;IAE3C,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAC/B;QACE,MAAM,EAAE,eAAe;QACvB,MAAM,EAAE,EAAE;KACX,EACD,EAAE,MAAM,EAAE,IAAI,EAAE,CACjB,CAAA;IACD,OAAO,IAAI,CAAA;AACb,CAAC"}
@@ -1,24 +0,0 @@
1
- import { BlockNotFoundError, } from 'viem';
2
- export async function getBlockStats(client, { blockHash, blockNumber, stats }) {
3
- const blockHashOrNumber = blockHash || blockNumber;
4
- if (!blockHashOrNumber) {
5
- throw new BlockNotFoundError({ blockHash, blockNumber });
6
- }
7
- try {
8
- const params = [
9
- blockHashOrNumber,
10
- ];
11
- if (stats) {
12
- params.push(stats);
13
- }
14
- const data = await client.request({
15
- method: 'getblockstats',
16
- params: params,
17
- }, { dedupe: true });
18
- return data;
19
- }
20
- catch (_error) {
21
- throw new BlockNotFoundError({ blockHash, blockNumber });
22
- }
23
- }
24
- //# sourceMappingURL=getBlockStats.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getBlockStats.js","sourceRoot":"","sources":["../../../../../core/UTXO/utxo-stack/actions/getBlockStats.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,kBAAkB,GAInB,MAAM,MAAM,CAAA;AAmBb,MAAM,CAAC,KAAK,UAAU,aAAa,CAIjC,MAA2C,EAC3C,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAA2B;IAE1D,MAAM,iBAAiB,GAAG,SAAS,IAAI,WAAW,CAAA;IAClD,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,MAAM,IAAI,kBAAkB,CAAC,EAAE,SAAS,EAAE,WAAW,EAAW,CAAC,CAAA;IACnE,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAA8C;YACxD,iBAAiB;SAClB,CAAA;QACD,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACpB,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAC/B;YACE,MAAM,EAAE,eAAe;YACvB,MAAM,EAAE,MAAM;SACf,EACD,EAAE,MAAM,EAAE,IAAI,EAAE,CACjB,CAAA;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,MAAM,IAAI,kBAAkB,CAAC,EAAE,SAAS,EAAE,WAAW,EAAW,CAAC,CAAA;IACnE,CAAC;AACH,CAAC"}
@@ -1,21 +0,0 @@
1
- import { TransactionNotFoundError, } from 'viem';
2
- export async function getUTXOTransaction(client, { txId, blockHash }) {
3
- try {
4
- const params = [txId, true];
5
- if (blockHash) {
6
- params.push(blockHash);
7
- }
8
- const data = await client.request({
9
- method: 'getrawtransaction',
10
- params: params,
11
- });
12
- return data;
13
- }
14
- catch (_error) {
15
- throw new TransactionNotFoundError({
16
- blockHash: blockHash,
17
- hash: txId,
18
- });
19
- }
20
- }
21
- //# sourceMappingURL=getUTXOTransaction.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getUTXOTransaction.js","sourceRoot":"","sources":["../../../../../core/UTXO/utxo-stack/actions/getUTXOTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,wBAAwB,GAEzB,MAAM,MAAM,CAAA;AAab,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAItC,MAA2C,EAC3C,EAAE,IAAI,EAAE,SAAS,EAAgC;IAEjD,IAAI,CAAC;QACH,MAAM,MAAM,GAA+B,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QACvD,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACxB,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;YAChC,MAAM,EAAE,mBAAmB;YAC3B,MAAM,EAAE,MAAM;SACf,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,MAAM,IAAI,wBAAwB,CAAC;YACjC,SAAS,EAAE,SAAkB;YAC7B,IAAI,EAAE,IAAa;SACpB,CAAC,CAAA;IACJ,CAAC;AACH,CAAC"}
@@ -1,12 +0,0 @@
1
- export async function sendUTXOTransaction(client, { hex, maxFeeRate }) {
2
- const params = [hex];
3
- if (maxFeeRate) {
4
- params.push(maxFeeRate);
5
- }
6
- const data = await client.request({
7
- method: 'sendrawtransaction',
8
- params: params,
9
- });
10
- return data;
11
- }
12
- //# sourceMappingURL=sendUTXOTransaction.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sendUTXOTransaction.js","sourceRoot":"","sources":["../../../../../core/UTXO/utxo-stack/actions/sendUTXOTransaction.ts"],"names":[],"mappings":"AAYA,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAIvC,MAA2C,EAC3C,EAAE,GAAG,EAAE,UAAU,EAAiC;IAElD,MAAM,MAAM,GAAsB,CAAC,GAAG,CAAC,CAAA;IACvC,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACzB,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;QAChC,MAAM,EAAE,oBAAoB;QAC5B,MAAM,EAAE,MAAM;KACf,CAAC,CAAA;IACF,OAAO,IAAI,CAAA;AACb,CAAC"}
@@ -1,8 +0,0 @@
1
- export async function signPsbt(client, params) {
2
- const data = await client.request({
3
- method: 'signPsbt',
4
- params: params,
5
- }, { dedupe: true });
6
- return data;
7
- }
8
- //# sourceMappingURL=signPsbt.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"signPsbt.js","sourceRoot":"","sources":["../../../../../core/UTXO/utxo-stack/actions/signPsbt.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,KAAK,UAAU,QAAQ,CAI5B,MAAiD,EACjD,MAA0B;IAE1B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAC/B;QACE,MAAM,EAAE,UAAU;QAClB,MAAM,EAAE,MAAM;KACf,EACD,EAAE,MAAM,EAAE,IAAI,EAAE,CACjB,CAAA;IACD,OAAO,IAAI,CAAA;AACb,CAAC"}
@@ -1,230 +0,0 @@
1
- import { Transaction, address } from 'bitcoinjs-lib';
2
- import { TransactionNotFoundError, TransactionReceiptNotFoundError, WaitForTransactionReceiptTimeoutError, stringify, withRetry, } from 'viem';
3
- import { getAction } from 'viem/utils';
4
- import { observe } from '../utils/observe.js';
5
- import { getBlock } from './getBlock.js';
6
- import { getBlockStats } from './getBlockStats.js';
7
- import { getUTXOTransaction } from './getUTXOTransaction.js';
8
- import { watchBlockNumber } from './watchBlockNumber.js';
9
- /**
10
- * Waits for the transaction to be included on a block (one confirmation), and then returns the transaction.
11
- * - JSON-RPC Methods:
12
- * - Polls getrawtransaction on each block until it has been processed.
13
- * - If a transaction has been replaced:
14
- * - Calls getblock and extracts the transactions
15
- * - Checks if one of the transactions is a replacement
16
- * - If so, calls getrawtransaction.
17
- *
18
- * The `waitForTransaction` action additionally supports replacement detection (e.g. RBF - transactions replaced-by-fee ).
19
- *
20
- * Transactions can be replaced when a user modifies their transaction in their wallet (to speed up or cancel).
21
- * https://bitcoinops.org/en/topics/replace-by-fee/
22
- *
23
- * There are 3 types of Transaction Replacement reasons:
24
- *
25
- * - `repriced`: The fee has been modified (e.g. same outputs, different amounts)
26
- * - `cancelled`: The Transaction has been cancelled (e.g. output is sender address)
27
- * - `replaced`: The Transaction has been replaced (e.g. different outputs)
28
- * @param client - Client to use
29
- * @param parameters - {@link WaitForTransactionReceiptParameters}
30
- * @returns The UTXO transaction. {@link WaitForTransactionReceiptReturnType}
31
- */
32
- export async function waitForTransaction(client, { confirmations = 1, txId, txHex, senderAddress, onReplaced, pollingInterval = client.pollingInterval, retryCount = 10, retryDelay = 3_000, timeout, }) {
33
- const observerId = stringify(['waitForTransaction', client.uid, txId]);
34
- let count = 0;
35
- let transaction;
36
- let replacedTransaction;
37
- let retrying = false;
38
- return new Promise((resolve, reject) => {
39
- if (timeout) {
40
- setTimeout(() => reject(new WaitForTransactionReceiptTimeoutError({ hash: txId })), timeout);
41
- }
42
- const _unobserve = observe(observerId, { onReplaced, resolve, reject }, (emit) => {
43
- const _unwatch = getAction(client, watchBlockNumber, 'watchBlockNumber')({
44
- emitMissed: true,
45
- emitOnBegin: true,
46
- pollingInterval,
47
- async onBlockNumber(blockNumber_) {
48
- const done = (fn) => {
49
- _unwatch();
50
- fn();
51
- _unobserve();
52
- };
53
- let blockNumber = blockNumber_;
54
- if (retrying) {
55
- return;
56
- }
57
- if (count > retryCount) {
58
- done(() => emit.reject(new WaitForTransactionReceiptTimeoutError({
59
- hash: txId,
60
- })));
61
- }
62
- try {
63
- // If we already have a valid receipt, let's check if we have enough
64
- // confirmations. If we do, then we can resolve.
65
- if (transaction?.blockhash) {
66
- const blockStats = await getAction(client, getBlockStats, 'getBlockStats')({
67
- blockHash: transaction.blockhash,
68
- stats: ['height'],
69
- });
70
- if (confirmations > 1 &&
71
- (!blockStats.height ||
72
- blockNumber - blockStats.height + 1 < confirmations)) {
73
- return;
74
- }
75
- done(() => emit.resolve(transaction));
76
- return;
77
- }
78
- // Get the transaction to check if it's been replaced.
79
- // We need to retry as some RPC Providers may be slow to sync
80
- // up mined transactions.
81
- retrying = true;
82
- transaction = await withRetry(() => getAction(client, getUTXOTransaction, 'getUTXOTransaction'
83
- // If transaction exists it might be the replaced one with different txId
84
- )({ txId: transaction?.txid || txId }), {
85
- delay: retryDelay,
86
- retryCount,
87
- });
88
- if (transaction.blockhash) {
89
- const blockStats = await getAction(client, getBlockStats, 'getBlockStats')({
90
- blockHash: transaction.blockhash,
91
- stats: ['height'],
92
- });
93
- if (blockStats.height) {
94
- blockNumber = blockStats.height;
95
- }
96
- }
97
- retrying = false;
98
- // Check if transaction has been processed.
99
- if (!transaction?.confirmations) {
100
- throw new TransactionReceiptNotFoundError({
101
- hash: txId,
102
- });
103
- }
104
- // Check if we have enough confirmations. If not, continue polling.
105
- if (transaction.confirmations < confirmations) {
106
- return;
107
- }
108
- done(() => emit.resolve(transaction));
109
- }
110
- catch (err) {
111
- // If the receipt is not found, the transaction will be pending.
112
- // We need to check if it has potentially been replaced.
113
- if (err instanceof TransactionNotFoundError ||
114
- err instanceof TransactionReceiptNotFoundError) {
115
- try {
116
- replacedTransaction = Transaction.fromHex(transaction?.hex || txHex);
117
- // Let's retrieve the transactions from the current block.
118
- // We need to retry as some RPC Providers may be slow to sync
119
- // up mined blocks.
120
- retrying = true;
121
- const block = await withRetry(() => getAction(client, getBlock, 'getBlock')({
122
- blockNumber,
123
- }), {
124
- delay: retryDelay,
125
- retryCount,
126
- // shouldRetry: ({ error }) =>
127
- // error instanceof BlockNotFoundError,
128
- });
129
- retrying = false;
130
- // Create a set of input identifiers for mempool transaction
131
- const replacedTransactionInputs = new Set();
132
- for (const input of replacedTransaction.ins) {
133
- const txid = Array.from(input.hash)
134
- .reverse()
135
- .map((byte) => `00${byte.toString(16)}`.slice(-2))
136
- .join('');
137
- const vout = input.index;
138
- const inputId = `${txid}:${vout}`;
139
- replacedTransactionInputs.add(inputId);
140
- }
141
- let replacementTransaction;
142
- for (const tx of block.transactions) {
143
- if (tx.isCoinbase()) {
144
- continue;
145
- }
146
- // Check if any input of this transaction matches an input of mempool transaction
147
- for (const input of tx.ins) {
148
- const txid = Array.from(input.hash)
149
- .reverse()
150
- .map((byte) => `00${byte.toString(16)}`.slice(-2))
151
- .join('');
152
- const vout = input.index;
153
- const inputId = `${txid}:${vout}`;
154
- if (replacedTransactionInputs.has(inputId)) {
155
- replacementTransaction = tx;
156
- break;
157
- }
158
- }
159
- if (replacementTransaction) {
160
- break;
161
- }
162
- }
163
- // If we couldn't find a replacement transaction, continue polling.
164
- if (!replacementTransaction) {
165
- return;
166
- }
167
- // If we found a replacement transaction, return it's receipt.
168
- transaction = await getAction(client, getUTXOTransaction, 'getUTXOTransaction')({
169
- txId: replacementTransaction.getId(),
170
- });
171
- // Check if we have enough confirmations. If not, continue polling.
172
- if (transaction.confirmations &&
173
- transaction.confirmations < confirmations) {
174
- return;
175
- }
176
- let reason = 'replaced';
177
- // Function to get output addresses
178
- function getOutputAddresses(tx) {
179
- const addresses = [];
180
- for (const output of tx.outs) {
181
- try {
182
- const outputAddress = address.fromOutputScript(output.script);
183
- addresses.push(outputAddress);
184
- }
185
- catch (_e) {
186
- // Handle non-standard scripts (e.g., OP_RETURN)
187
- }
188
- }
189
- return addresses;
190
- }
191
- // Get the recipient addresses from the original transaction
192
- const originalOutputAddresses = getOutputAddresses(replacedTransaction);
193
- // Get the recipient addresses from the replacement transaction
194
- const replacementOutputAddresses = getOutputAddresses(replacementTransaction);
195
- if (originalOutputAddresses.length ===
196
- replacementOutputAddresses.length &&
197
- originalOutputAddresses.every((address) => replacementOutputAddresses.includes(address))) {
198
- reason = 'repriced';
199
- }
200
- else if (senderAddress &&
201
- replacementOutputAddresses.length === 1 &&
202
- replacementOutputAddresses.includes(senderAddress)) {
203
- reason = 'cancelled';
204
- }
205
- done(() => {
206
- emit.onReplaced?.({
207
- reason,
208
- replacedTransaction: replacedTransaction,
209
- transaction: transaction,
210
- });
211
- emit.resolve(transaction);
212
- });
213
- }
214
- catch (err_) {
215
- done(() => emit.reject(err_));
216
- }
217
- }
218
- else {
219
- done(() => emit.reject(err));
220
- }
221
- }
222
- finally {
223
- count++;
224
- }
225
- },
226
- });
227
- });
228
- });
229
- }
230
- //# sourceMappingURL=waitForTransaction.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"waitForTransaction.js","sourceRoot":"","sources":["../../../../../core/UTXO/utxo-stack/actions/waitForTransaction.ts"],"names":[],"mappings":"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"}
@@ -1,58 +0,0 @@
1
- import { stringify } from 'viem';
2
- import { getAction } from 'viem/utils';
3
- import { observe } from '../utils/observe.js';
4
- import { poll } from '../utils/poll.js';
5
- import { getBlockCount } from './getBlockCount.js';
6
- /**
7
- * Watches and returns incoming block numbers.
8
- * @param client - Client to use
9
- * @param parameters - {@link WatchBlockNumberParameters}
10
- * @returns A function that can be invoked to stop watching for new block numbers. {@link WatchBlockNumberReturnType}
11
- */
12
- export function watchBlockNumber(client, { emitOnBegin = false, emitMissed = false, onBlockNumber, onError, pollingInterval = client.pollingInterval, }) {
13
- let prevBlockNumber;
14
- const observerId = stringify([
15
- 'watchBlockNumber',
16
- client.uid,
17
- emitOnBegin,
18
- emitMissed,
19
- pollingInterval,
20
- ]);
21
- // TODO (edge cases):
22
- // 1) Stop iterating block numbers if we are happy with the result of one onBlockNumber execution but there is more in the queue.
23
- // 2) If we missed some time - user closed the page and came back when the block is already mined.
24
- // In this case we probably want to save the block when we send the transaction and track the currently checked blocks until we find the relevant one.
25
- return observe(observerId, { onBlockNumber, onError }, (emit) => poll(async () => {
26
- try {
27
- const blockNumber = await getAction(client, getBlockCount, 'getBlockCount')({ cacheTime: 0 });
28
- if (prevBlockNumber) {
29
- // If the current block number is the same as the previous,
30
- // we can skip.
31
- if (blockNumber === prevBlockNumber) {
32
- return;
33
- }
34
- // If we have missed out on some previous blocks, and the
35
- // `emitMissed` flag is truthy, let's emit those blocks.
36
- if (blockNumber - prevBlockNumber > 1 && emitMissed) {
37
- for (let i = prevBlockNumber + 1; i < blockNumber; i++) {
38
- await emit.onBlockNumber(i, prevBlockNumber);
39
- prevBlockNumber = i;
40
- }
41
- }
42
- }
43
- // If the next block number is greater than the previous,
44
- // it is not in the past, and we can emit the new block number.
45
- if (!prevBlockNumber || blockNumber > prevBlockNumber) {
46
- await emit.onBlockNumber(blockNumber, prevBlockNumber);
47
- prevBlockNumber = blockNumber;
48
- }
49
- }
50
- catch (err) {
51
- emit.onError?.(err);
52
- }
53
- }, {
54
- emitOnBegin,
55
- interval: pollingInterval,
56
- }));
57
- }
58
- //# sourceMappingURL=watchBlockNumber.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"watchBlockNumber.js","sourceRoot":"","sources":["../../../../../core/UTXO/utxo-stack/actions/watchBlockNumber.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2C,SAAS,EAAE,MAAM,MAAM,CAAA;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AACvC,OAAO,EAAgC,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAwBhF;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAI9B,MAAgC,EAChC,EACE,WAAW,GAAG,KAAK,EACnB,UAAU,GAAG,KAAK,EAClB,aAAa,EACb,OAAO,EACP,eAAe,GAAG,MAAM,CAAC,eAAe,GACb;IAE7B,IAAI,eAAoD,CAAA;IAExD,MAAM,UAAU,GAAG,SAAS,CAAC;QAC3B,kBAAkB;QAClB,MAAM,CAAC,GAAG;QACV,WAAW;QACX,UAAU;QACV,eAAe;KAChB,CAAC,CAAA;IAEF,qBAAqB;IACrB,iIAAiI;IACjI,kGAAkG;IAClG,sJAAsJ;IACtJ,OAAO,OAAO,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAC9D,IAAI,CACF,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,SAAS,CACjC,MAAM,EACN,aAAa,EACb,eAAe,CAChB,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAA;YAEnB,IAAI,eAAe,EAAE,CAAC;gBACpB,2DAA2D;gBAC3D,eAAe;gBACf,IAAI,WAAW,KAAK,eAAe,EAAE,CAAC;oBACpC,OAAM;gBACR,CAAC;gBAED,yDAAyD;gBACzD,wDAAwD;gBACxD,IAAI,WAAW,GAAG,eAAe,GAAG,CAAC,IAAI,UAAU,EAAE,CAAC;oBACpD,KAAK,IAAI,CAAC,GAAG,eAAe,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;wBACvD,MAAM,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,eAAe,CAAC,CAAA;wBAC5C,eAAe,GAAG,CAAC,CAAA;oBACrB,CAAC;gBACH,CAAC;YACH,CAAC;YAED,yDAAyD;YACzD,+DAA+D;YAC/D,IAAI,CAAC,eAAe,IAAI,WAAW,GAAG,eAAe,EAAE,CAAC;gBACtD,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,eAAe,CAAC,CAAA;gBACtD,eAAe,GAAG,WAAW,CAAA;YAC/B,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,OAAO,EAAE,CAAC,GAAY,CAAC,CAAA;QAC9B,CAAC;IACH,CAAC,EACD;QACE,WAAW;QACX,QAAQ,EAAE,eAAe;KAC1B,CACF,CACF,CAAA;AACH,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../core/UTXO/utxo-stack/clients/types.ts"],"names":[],"mappings":""}
@@ -1,7 +0,0 @@
1
- import { getBalance, } from '../actions/getBalance.js';
2
- export function UTXOAPIActions(client) {
3
- return {
4
- getBalance: (args) => getBalance(client, args),
5
- };
6
- }
7
- //# sourceMappingURL=UTXOAPIActions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"UTXOAPIActions.js","sourceRoot":"","sources":["../../../../../core/UTXO/utxo-stack/decorators/UTXOAPIActions.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,UAAU,GACX,MAAM,0BAA0B,CAAA;AAMjC,MAAM,UAAU,cAAc,CAI5B,MAAyC;IACzC,OAAO;QACL,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC;KAC/C,CAAA;AACH,CAAC"}
@@ -1,11 +0,0 @@
1
- import { getBlockCount, } from '../actions/getBlockCount.js';
2
- import { getUTXOTransaction, } from '../actions/getUTXOTransaction.js';
3
- import { sendUTXOTransaction, } from '../actions/sendUTXOTransaction.js';
4
- export function UTXOActions(client) {
5
- return {
6
- getBlockCount: () => getBlockCount(client),
7
- sendUTXOTransaction: (args) => sendUTXOTransaction(client, args),
8
- getUTXOTransaction: (args) => getUTXOTransaction(client, args),
9
- };
10
- }
11
- //# sourceMappingURL=UTXOActions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"UTXOActions.js","sourceRoot":"","sources":["../../../../../core/UTXO/utxo-stack/decorators/UTXOActions.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,aAAa,GACd,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAGL,kBAAkB,GACnB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAGL,mBAAmB,GACpB,MAAM,mCAAmC,CAAA;AAY1C,MAAM,UAAU,WAAW,CAIzB,MAAyC;IACzC,OAAO;QACL,aAAa,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC;QAC1C,mBAAmB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC;QAChE,kBAAkB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC;KAC/D,CAAA;AACH,CAAC"}