@getomnichain/omnichain 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (576) hide show
  1. package/dist/cjs/abstract_gas_pricing.js +27 -0
  2. package/dist/cjs/abstract_gas_pricing.js.map +1 -0
  3. package/dist/cjs/address.factory.js +81 -0
  4. package/dist/cjs/address.factory.js.map +1 -0
  5. package/dist/cjs/address.js +17 -0
  6. package/dist/cjs/address.js.map +1 -0
  7. package/dist/cjs/address_field.decorator.js +37 -0
  8. package/dist/cjs/address_field.decorator.js.map +1 -0
  9. package/dist/cjs/chain.base.js +118 -0
  10. package/dist/cjs/chain.base.js.map +1 -0
  11. package/dist/cjs/chain_ids.js +205 -0
  12. package/dist/cjs/chain_ids.js.map +1 -0
  13. package/dist/cjs/errors.js +69 -0
  14. package/dist/cjs/errors.js.map +1 -0
  15. package/dist/cjs/evm/evm_address.js +63 -0
  16. package/dist/cjs/evm/evm_address.js.map +1 -0
  17. package/dist/cjs/evm/evm_chain.js +690 -0
  18. package/dist/cjs/evm/evm_chain.js.map +1 -0
  19. package/dist/cjs/evm/evm_chains.js +530 -0
  20. package/dist/cjs/evm/evm_chains.js.map +1 -0
  21. package/dist/cjs/evm/evm_gas_estimate.js +76 -0
  22. package/dist/cjs/evm/evm_gas_estimate.js.map +1 -0
  23. package/dist/cjs/evm/evm_gas_pricing.js +62 -0
  24. package/dist/cjs/evm/evm_gas_pricing.js.map +1 -0
  25. package/dist/cjs/evm/evm_token.js +26 -0
  26. package/dist/cjs/evm/evm_token.js.map +1 -0
  27. package/dist/cjs/evm/evm_tokens.js +109 -0
  28. package/dist/cjs/evm/evm_tokens.js.map +1 -0
  29. package/dist/cjs/evm/evm_transaction_status.js +183 -0
  30. package/dist/cjs/evm/evm_transaction_status.js.map +1 -0
  31. package/dist/cjs/evm/index.js +26 -0
  32. package/dist/cjs/evm/index.js.map +1 -0
  33. package/dist/cjs/evm/unsigned_evm_transaction.js +22 -0
  34. package/dist/cjs/evm/unsigned_evm_transaction.js.map +1 -0
  35. package/dist/cjs/index.js +34 -0
  36. package/dist/cjs/index.js.map +1 -0
  37. package/dist/cjs/is_address.decorator.js +54 -0
  38. package/dist/cjs/is_address.decorator.js.map +1 -0
  39. package/dist/cjs/network_type.js +152 -0
  40. package/dist/cjs/network_type.js.map +1 -0
  41. package/dist/cjs/package.json +3 -0
  42. package/dist/cjs/priority.js +26 -0
  43. package/dist/cjs/priority.js.map +1 -0
  44. package/dist/cjs/solana/index.js +25 -0
  45. package/dist/cjs/solana/index.js.map +1 -0
  46. package/dist/cjs/solana/solana_address.js +49 -0
  47. package/dist/cjs/solana/solana_address.js.map +1 -0
  48. package/dist/cjs/solana/solana_chain.js +708 -0
  49. package/dist/cjs/solana/solana_chain.js.map +1 -0
  50. package/dist/cjs/solana/solana_chains.js +88 -0
  51. package/dist/cjs/solana/solana_chains.js.map +1 -0
  52. package/dist/cjs/solana/solana_gas_pricing.js +30 -0
  53. package/dist/cjs/solana/solana_gas_pricing.js.map +1 -0
  54. package/dist/cjs/solana/solana_token.js +38 -0
  55. package/dist/cjs/solana/solana_token.js.map +1 -0
  56. package/dist/cjs/solana/solana_tokens.js +29 -0
  57. package/dist/cjs/solana/solana_tokens.js.map +1 -0
  58. package/dist/cjs/solana/solana_transaction_status.js +149 -0
  59. package/dist/cjs/solana/solana_transaction_status.js.map +1 -0
  60. package/dist/cjs/solana/unsigned_solana_transaction.js +30 -0
  61. package/dist/cjs/solana/unsigned_solana_transaction.js.map +1 -0
  62. package/dist/cjs/token.js +66 -0
  63. package/dist/cjs/token.js.map +1 -0
  64. package/dist/cjs/ton/index.js +18 -0
  65. package/dist/cjs/ton/index.js.map +1 -0
  66. package/dist/cjs/ton/ton_address.js +57 -0
  67. package/dist/cjs/ton/ton_address.js.map +1 -0
  68. package/dist/cjs/transaction_status.js +283 -0
  69. package/dist/cjs/transaction_status.js.map +1 -0
  70. package/dist/cjs/unsigned_transaction.js +13 -0
  71. package/dist/cjs/unsigned_transaction.js.map +1 -0
  72. package/dist/cjs/utxo/btc/btc_address.js +43 -0
  73. package/dist/cjs/utxo/btc/btc_address.js.map +1 -0
  74. package/dist/cjs/utxo/btc/btc_chain.js +66 -0
  75. package/dist/cjs/utxo/btc/btc_chain.js.map +1 -0
  76. package/dist/cjs/utxo/btc/btc_chains.js +49 -0
  77. package/dist/cjs/utxo/btc/btc_chains.js.map +1 -0
  78. package/dist/cjs/utxo/btc/btc_token.js +15 -0
  79. package/dist/cjs/utxo/btc/btc_token.js.map +1 -0
  80. package/dist/cjs/utxo/btc/index.js +30 -0
  81. package/dist/cjs/utxo/btc/index.js.map +1 -0
  82. package/dist/cjs/utxo/btc/network_params.js +196 -0
  83. package/dist/cjs/utxo/btc/network_params.js.map +1 -0
  84. package/dist/cjs/utxo/btc/tools/asset_outpoint.js +16 -0
  85. package/dist/cjs/utxo/btc/tools/asset_outpoint.js.map +1 -0
  86. package/dist/cjs/utxo/btc/tools/bitcoin_core.tool.js +179 -0
  87. package/dist/cjs/utxo/btc/tools/bitcoin_core.tool.js.map +1 -0
  88. package/dist/cjs/utxo/btc/tools/esplora.tool.js +120 -0
  89. package/dist/cjs/utxo/btc/tools/esplora.tool.js.map +1 -0
  90. package/dist/cjs/utxo/btc/tools/inscription_index.js +3 -0
  91. package/dist/cjs/utxo/btc/tools/inscription_index.js.map +1 -0
  92. package/dist/cjs/utxo/btc/tools/ordiscan.tool.js +60 -0
  93. package/dist/cjs/utxo/btc/tools/ordiscan.tool.js.map +1 -0
  94. package/dist/cjs/utxo/btc/tools/rare_sat_index.js +3 -0
  95. package/dist/cjs/utxo/btc/tools/rare_sat_index.js.map +1 -0
  96. package/dist/cjs/utxo/btc/tools/rune_index.js +3 -0
  97. package/dist/cjs/utxo/btc/tools/rune_index.js.map +1 -0
  98. package/dist/cjs/utxo/btc/tools/unisat.tool.js +56 -0
  99. package/dist/cjs/utxo/btc/tools/unisat.tool.js.map +1 -0
  100. package/dist/cjs/utxo/coin_selection.js +160 -0
  101. package/dist/cjs/utxo/coin_selection.js.map +1 -0
  102. package/dist/cjs/utxo/doge/doge_chains.js +32 -0
  103. package/dist/cjs/utxo/doge/doge_chains.js.map +1 -0
  104. package/dist/cjs/utxo/doge/index.js +19 -0
  105. package/dist/cjs/utxo/doge/index.js.map +1 -0
  106. package/dist/cjs/utxo/doge/network_params.js +30 -0
  107. package/dist/cjs/utxo/doge/network_params.js.map +1 -0
  108. package/dist/cjs/utxo/ecc.js +47 -0
  109. package/dist/cjs/utxo/ecc.js.map +1 -0
  110. package/dist/cjs/utxo/fee.js +61 -0
  111. package/dist/cjs/utxo/fee.js.map +1 -0
  112. package/dist/cjs/utxo/index.js +36 -0
  113. package/dist/cjs/utxo/index.js.map +1 -0
  114. package/dist/cjs/utxo/ltc/index.js +19 -0
  115. package/dist/cjs/utxo/ltc/index.js.map +1 -0
  116. package/dist/cjs/utxo/ltc/ltc_chains.js +32 -0
  117. package/dist/cjs/utxo/ltc/ltc_chains.js.map +1 -0
  118. package/dist/cjs/utxo/ltc/network_params.js +33 -0
  119. package/dist/cjs/utxo/ltc/network_params.js.map +1 -0
  120. package/dist/cjs/utxo/script.js +59 -0
  121. package/dist/cjs/utxo/script.js.map +1 -0
  122. package/dist/cjs/utxo/tools/broadcaster.js +3 -0
  123. package/dist/cjs/utxo/tools/broadcaster.js.map +1 -0
  124. package/dist/cjs/utxo/tools/chain_tip_provider.js +3 -0
  125. package/dist/cjs/utxo/tools/chain_tip_provider.js.map +1 -0
  126. package/dist/cjs/utxo/tools/fee_estimator.js +3 -0
  127. package/dist/cjs/utxo/tools/fee_estimator.js.map +1 -0
  128. package/dist/cjs/utxo/tools/raw_transaction_provider.js +3 -0
  129. package/dist/cjs/utxo/tools/raw_transaction_provider.js.map +1 -0
  130. package/dist/cjs/utxo/tools/utxo_provider.js +3 -0
  131. package/dist/cjs/utxo/tools/utxo_provider.js.map +1 -0
  132. package/dist/cjs/utxo/unsigned_utxo_transaction.js +36 -0
  133. package/dist/cjs/utxo/unsigned_utxo_transaction.js.map +1 -0
  134. package/dist/cjs/utxo/utxo.js +3 -0
  135. package/dist/{utxo → cjs/utxo}/utxo.js.map +1 -1
  136. package/dist/cjs/utxo/utxo_chain.js +528 -0
  137. package/dist/cjs/utxo/utxo_chain.js.map +1 -0
  138. package/dist/cjs/utxo/utxo_chains.js +68 -0
  139. package/dist/cjs/utxo/utxo_chains.js.map +1 -0
  140. package/dist/cjs/utxo/utxo_gas_pricing.js +24 -0
  141. package/dist/cjs/utxo/utxo_gas_pricing.js.map +1 -0
  142. package/dist/cjs/utxo/utxo_network_params.js +18 -0
  143. package/dist/cjs/utxo/utxo_network_params.js.map +1 -0
  144. package/dist/cjs/utxo/utxo_transaction_status.js +95 -0
  145. package/dist/cjs/utxo/utxo_transaction_status.js.map +1 -0
  146. package/dist/esm/abstract_gas_pricing.d.ts.map +1 -0
  147. package/dist/esm/abstract_gas_pricing.js.map +1 -0
  148. package/dist/esm/address.d.ts.map +1 -0
  149. package/dist/esm/address.factory.d.ts.map +1 -0
  150. package/dist/esm/address.factory.js.map +1 -0
  151. package/dist/esm/address.js.map +1 -0
  152. package/dist/esm/address_field.decorator.d.ts.map +1 -0
  153. package/dist/esm/address_field.decorator.js.map +1 -0
  154. package/dist/esm/chain.base.d.ts.map +1 -0
  155. package/dist/esm/chain.base.js.map +1 -0
  156. package/dist/esm/chain_ids.d.ts.map +1 -0
  157. package/dist/esm/chain_ids.js.map +1 -0
  158. package/dist/esm/errors.d.ts.map +1 -0
  159. package/dist/esm/errors.js.map +1 -0
  160. package/dist/esm/evm/evm_address.d.ts.map +1 -0
  161. package/dist/esm/evm/evm_address.js.map +1 -0
  162. package/dist/esm/evm/evm_chain.d.ts.map +1 -0
  163. package/dist/esm/evm/evm_chain.js.map +1 -0
  164. package/dist/esm/evm/evm_chains.d.ts.map +1 -0
  165. package/dist/esm/evm/evm_chains.js.map +1 -0
  166. package/dist/esm/evm/evm_gas_estimate.d.ts.map +1 -0
  167. package/dist/esm/evm/evm_gas_estimate.js.map +1 -0
  168. package/dist/esm/evm/evm_gas_pricing.d.ts.map +1 -0
  169. package/dist/esm/evm/evm_gas_pricing.js.map +1 -0
  170. package/dist/esm/evm/evm_token.d.ts.map +1 -0
  171. package/dist/esm/evm/evm_token.js.map +1 -0
  172. package/dist/esm/evm/evm_tokens.d.ts.map +1 -0
  173. package/dist/esm/evm/evm_tokens.js.map +1 -0
  174. package/dist/esm/evm/evm_transaction_status.d.ts.map +1 -0
  175. package/dist/esm/evm/evm_transaction_status.js.map +1 -0
  176. package/dist/esm/evm/index.d.ts.map +1 -0
  177. package/dist/esm/evm/index.js.map +1 -0
  178. package/dist/esm/evm/unsigned_evm_transaction.d.ts.map +1 -0
  179. package/dist/esm/evm/unsigned_evm_transaction.js.map +1 -0
  180. package/dist/esm/index.d.ts.map +1 -0
  181. package/dist/esm/index.js.map +1 -0
  182. package/dist/esm/is_address.decorator.d.ts.map +1 -0
  183. package/dist/esm/is_address.decorator.js.map +1 -0
  184. package/dist/esm/network_type.d.ts.map +1 -0
  185. package/dist/esm/network_type.js.map +1 -0
  186. package/dist/esm/package.json +3 -0
  187. package/dist/esm/priority.d.ts.map +1 -0
  188. package/dist/esm/priority.js.map +1 -0
  189. package/dist/esm/solana/index.d.ts.map +1 -0
  190. package/dist/esm/solana/index.js.map +1 -0
  191. package/dist/esm/solana/solana_address.d.ts.map +1 -0
  192. package/dist/esm/solana/solana_address.js.map +1 -0
  193. package/dist/esm/solana/solana_chain.d.ts.map +1 -0
  194. package/dist/esm/solana/solana_chain.js.map +1 -0
  195. package/dist/esm/solana/solana_chains.d.ts.map +1 -0
  196. package/dist/esm/solana/solana_chains.js.map +1 -0
  197. package/dist/esm/solana/solana_gas_pricing.d.ts.map +1 -0
  198. package/dist/esm/solana/solana_gas_pricing.js.map +1 -0
  199. package/dist/esm/solana/solana_token.d.ts.map +1 -0
  200. package/dist/esm/solana/solana_token.js.map +1 -0
  201. package/dist/esm/solana/solana_tokens.d.ts.map +1 -0
  202. package/dist/esm/solana/solana_tokens.js.map +1 -0
  203. package/dist/esm/solana/solana_transaction_status.d.ts.map +1 -0
  204. package/dist/esm/solana/solana_transaction_status.js.map +1 -0
  205. package/dist/esm/solana/unsigned_solana_transaction.d.ts.map +1 -0
  206. package/dist/esm/solana/unsigned_solana_transaction.js.map +1 -0
  207. package/dist/esm/token.d.ts.map +1 -0
  208. package/dist/esm/token.js.map +1 -0
  209. package/dist/esm/ton/index.d.ts.map +1 -0
  210. package/dist/esm/ton/index.js.map +1 -0
  211. package/dist/esm/ton/ton_address.d.ts.map +1 -0
  212. package/dist/esm/ton/ton_address.js.map +1 -0
  213. package/dist/esm/transaction_status.d.ts.map +1 -0
  214. package/dist/esm/transaction_status.js.map +1 -0
  215. package/dist/esm/unsigned_transaction.d.ts.map +1 -0
  216. package/dist/esm/unsigned_transaction.js.map +1 -0
  217. package/dist/esm/utxo/btc/btc_address.d.ts.map +1 -0
  218. package/dist/esm/utxo/btc/btc_address.js.map +1 -0
  219. package/dist/esm/utxo/btc/btc_chain.d.ts.map +1 -0
  220. package/dist/esm/utxo/btc/btc_chain.js.map +1 -0
  221. package/dist/esm/utxo/btc/btc_chains.d.ts.map +1 -0
  222. package/dist/esm/utxo/btc/btc_chains.js.map +1 -0
  223. package/dist/esm/utxo/btc/btc_token.d.ts.map +1 -0
  224. package/dist/esm/utxo/btc/btc_token.js.map +1 -0
  225. package/dist/esm/utxo/btc/index.d.ts.map +1 -0
  226. package/dist/esm/utxo/btc/index.js.map +1 -0
  227. package/dist/esm/utxo/btc/network_params.d.ts.map +1 -0
  228. package/dist/esm/utxo/btc/network_params.js.map +1 -0
  229. package/dist/esm/utxo/btc/tools/asset_outpoint.d.ts.map +1 -0
  230. package/dist/esm/utxo/btc/tools/asset_outpoint.js.map +1 -0
  231. package/dist/esm/utxo/btc/tools/bitcoin_core.tool.d.ts.map +1 -0
  232. package/dist/esm/utxo/btc/tools/bitcoin_core.tool.js.map +1 -0
  233. package/dist/esm/utxo/btc/tools/esplora.tool.d.ts.map +1 -0
  234. package/dist/esm/utxo/btc/tools/esplora.tool.js.map +1 -0
  235. package/dist/esm/utxo/btc/tools/inscription_index.d.ts.map +1 -0
  236. package/dist/esm/utxo/btc/tools/inscription_index.js.map +1 -0
  237. package/dist/esm/utxo/btc/tools/ordiscan.tool.d.ts.map +1 -0
  238. package/dist/esm/utxo/btc/tools/ordiscan.tool.js.map +1 -0
  239. package/dist/esm/utxo/btc/tools/rare_sat_index.d.ts.map +1 -0
  240. package/dist/esm/utxo/btc/tools/rare_sat_index.js.map +1 -0
  241. package/dist/esm/utxo/btc/tools/rune_index.d.ts.map +1 -0
  242. package/dist/esm/utxo/btc/tools/rune_index.js.map +1 -0
  243. package/dist/esm/utxo/btc/tools/unisat.tool.d.ts.map +1 -0
  244. package/dist/esm/utxo/btc/tools/unisat.tool.js.map +1 -0
  245. package/dist/esm/utxo/coin_selection.d.ts.map +1 -0
  246. package/dist/esm/utxo/coin_selection.js.map +1 -0
  247. package/dist/esm/utxo/doge/doge_chains.d.ts.map +1 -0
  248. package/dist/esm/utxo/doge/doge_chains.js.map +1 -0
  249. package/dist/esm/utxo/doge/index.d.ts.map +1 -0
  250. package/dist/esm/utxo/doge/index.js.map +1 -0
  251. package/dist/esm/utxo/doge/network_params.d.ts.map +1 -0
  252. package/dist/esm/utxo/doge/network_params.js.map +1 -0
  253. package/dist/esm/utxo/ecc.d.ts.map +1 -0
  254. package/dist/esm/utxo/ecc.js.map +1 -0
  255. package/dist/esm/utxo/fee.d.ts.map +1 -0
  256. package/dist/esm/utxo/fee.js.map +1 -0
  257. package/dist/esm/utxo/index.d.ts.map +1 -0
  258. package/dist/esm/utxo/index.js.map +1 -0
  259. package/dist/esm/utxo/ltc/index.d.ts.map +1 -0
  260. package/dist/esm/utxo/ltc/index.js.map +1 -0
  261. package/dist/{utxo/doge/doge_chains.d.ts.map → esm/utxo/ltc/ltc_chains.d.ts.map} +1 -1
  262. package/dist/{utxo/doge/doge_chains.js.map → esm/utxo/ltc/ltc_chains.js.map} +1 -1
  263. package/dist/esm/utxo/ltc/network_params.d.ts.map +1 -0
  264. package/dist/esm/utxo/ltc/network_params.js.map +1 -0
  265. package/dist/esm/utxo/script.d.ts.map +1 -0
  266. package/dist/esm/utxo/script.js.map +1 -0
  267. package/dist/esm/utxo/tools/broadcaster.d.ts.map +1 -0
  268. package/dist/esm/utxo/tools/broadcaster.js.map +1 -0
  269. package/dist/esm/utxo/tools/chain_tip_provider.d.ts.map +1 -0
  270. package/dist/esm/utxo/tools/chain_tip_provider.js.map +1 -0
  271. package/dist/esm/utxo/tools/fee_estimator.d.ts.map +1 -0
  272. package/dist/esm/utxo/tools/fee_estimator.js.map +1 -0
  273. package/dist/esm/utxo/tools/raw_transaction_provider.d.ts.map +1 -0
  274. package/dist/esm/utxo/tools/raw_transaction_provider.js.map +1 -0
  275. package/dist/esm/utxo/tools/utxo_provider.d.ts.map +1 -0
  276. package/dist/esm/utxo/tools/utxo_provider.js.map +1 -0
  277. package/dist/esm/utxo/unsigned_utxo_transaction.d.ts.map +1 -0
  278. package/dist/esm/utxo/unsigned_utxo_transaction.js.map +1 -0
  279. package/dist/esm/utxo/utxo.d.ts.map +1 -0
  280. package/dist/esm/utxo/utxo.js.map +1 -0
  281. package/dist/esm/utxo/utxo_chain.d.ts.map +1 -0
  282. package/dist/esm/utxo/utxo_chain.js.map +1 -0
  283. package/dist/esm/utxo/utxo_chains.d.ts.map +1 -0
  284. package/dist/esm/utxo/utxo_chains.js.map +1 -0
  285. package/dist/esm/utxo/utxo_gas_pricing.d.ts.map +1 -0
  286. package/dist/esm/utxo/utxo_gas_pricing.js.map +1 -0
  287. package/dist/esm/utxo/utxo_network_params.d.ts.map +1 -0
  288. package/dist/esm/utxo/utxo_network_params.js.map +1 -0
  289. package/dist/esm/utxo/utxo_transaction_status.d.ts.map +1 -0
  290. package/dist/esm/utxo/utxo_transaction_status.js.map +1 -0
  291. package/package.json +32 -16
  292. package/dist/abstract_gas_pricing.d.ts.map +0 -1
  293. package/dist/abstract_gas_pricing.js.map +0 -1
  294. package/dist/address.d.ts.map +0 -1
  295. package/dist/address.factory.d.ts.map +0 -1
  296. package/dist/address.factory.js.map +0 -1
  297. package/dist/address.js.map +0 -1
  298. package/dist/address_field.decorator.d.ts.map +0 -1
  299. package/dist/address_field.decorator.js.map +0 -1
  300. package/dist/chain.base.d.ts.map +0 -1
  301. package/dist/chain.base.js.map +0 -1
  302. package/dist/chain_ids.d.ts.map +0 -1
  303. package/dist/chain_ids.js.map +0 -1
  304. package/dist/errors.d.ts.map +0 -1
  305. package/dist/errors.js.map +0 -1
  306. package/dist/evm/evm_address.d.ts.map +0 -1
  307. package/dist/evm/evm_address.js.map +0 -1
  308. package/dist/evm/evm_chain.d.ts.map +0 -1
  309. package/dist/evm/evm_chain.js.map +0 -1
  310. package/dist/evm/evm_chains.d.ts.map +0 -1
  311. package/dist/evm/evm_chains.js.map +0 -1
  312. package/dist/evm/evm_gas_estimate.d.ts.map +0 -1
  313. package/dist/evm/evm_gas_estimate.js.map +0 -1
  314. package/dist/evm/evm_gas_pricing.d.ts.map +0 -1
  315. package/dist/evm/evm_gas_pricing.js.map +0 -1
  316. package/dist/evm/evm_token.d.ts.map +0 -1
  317. package/dist/evm/evm_token.js.map +0 -1
  318. package/dist/evm/evm_tokens.d.ts.map +0 -1
  319. package/dist/evm/evm_tokens.js.map +0 -1
  320. package/dist/evm/evm_transaction_status.d.ts.map +0 -1
  321. package/dist/evm/evm_transaction_status.js.map +0 -1
  322. package/dist/evm/index.d.ts.map +0 -1
  323. package/dist/evm/index.js.map +0 -1
  324. package/dist/evm/unsigned_evm_transaction.d.ts.map +0 -1
  325. package/dist/evm/unsigned_evm_transaction.js.map +0 -1
  326. package/dist/index.d.ts.map +0 -1
  327. package/dist/index.js.map +0 -1
  328. package/dist/is_address.decorator.d.ts.map +0 -1
  329. package/dist/is_address.decorator.js.map +0 -1
  330. package/dist/network_type.d.ts.map +0 -1
  331. package/dist/network_type.js.map +0 -1
  332. package/dist/priority.d.ts.map +0 -1
  333. package/dist/priority.js.map +0 -1
  334. package/dist/solana/index.d.ts.map +0 -1
  335. package/dist/solana/index.js.map +0 -1
  336. package/dist/solana/solana_address.d.ts.map +0 -1
  337. package/dist/solana/solana_address.js.map +0 -1
  338. package/dist/solana/solana_chain.d.ts.map +0 -1
  339. package/dist/solana/solana_chain.js.map +0 -1
  340. package/dist/solana/solana_chains.d.ts.map +0 -1
  341. package/dist/solana/solana_chains.js.map +0 -1
  342. package/dist/solana/solana_gas_pricing.d.ts.map +0 -1
  343. package/dist/solana/solana_gas_pricing.js.map +0 -1
  344. package/dist/solana/solana_token.d.ts.map +0 -1
  345. package/dist/solana/solana_token.js.map +0 -1
  346. package/dist/solana/solana_tokens.d.ts.map +0 -1
  347. package/dist/solana/solana_tokens.js.map +0 -1
  348. package/dist/solana/solana_transaction_status.d.ts.map +0 -1
  349. package/dist/solana/solana_transaction_status.js.map +0 -1
  350. package/dist/solana/unsigned_solana_transaction.d.ts.map +0 -1
  351. package/dist/solana/unsigned_solana_transaction.js.map +0 -1
  352. package/dist/token.d.ts.map +0 -1
  353. package/dist/token.js.map +0 -1
  354. package/dist/ton/index.d.ts.map +0 -1
  355. package/dist/ton/index.js.map +0 -1
  356. package/dist/ton/ton_address.d.ts.map +0 -1
  357. package/dist/ton/ton_address.js.map +0 -1
  358. package/dist/transaction_status.d.ts.map +0 -1
  359. package/dist/transaction_status.js.map +0 -1
  360. package/dist/unsigned_transaction.d.ts.map +0 -1
  361. package/dist/unsigned_transaction.js.map +0 -1
  362. package/dist/utxo/btc/btc_address.d.ts.map +0 -1
  363. package/dist/utxo/btc/btc_address.js.map +0 -1
  364. package/dist/utxo/btc/btc_chain.d.ts.map +0 -1
  365. package/dist/utxo/btc/btc_chain.js.map +0 -1
  366. package/dist/utxo/btc/btc_chains.d.ts.map +0 -1
  367. package/dist/utxo/btc/btc_chains.js.map +0 -1
  368. package/dist/utxo/btc/btc_token.d.ts.map +0 -1
  369. package/dist/utxo/btc/btc_token.js.map +0 -1
  370. package/dist/utxo/btc/index.d.ts.map +0 -1
  371. package/dist/utxo/btc/index.js.map +0 -1
  372. package/dist/utxo/btc/network_params.d.ts.map +0 -1
  373. package/dist/utxo/btc/network_params.js.map +0 -1
  374. package/dist/utxo/btc/tools/asset_outpoint.d.ts.map +0 -1
  375. package/dist/utxo/btc/tools/asset_outpoint.js.map +0 -1
  376. package/dist/utxo/btc/tools/bitcoin_core.tool.d.ts.map +0 -1
  377. package/dist/utxo/btc/tools/bitcoin_core.tool.js.map +0 -1
  378. package/dist/utxo/btc/tools/esplora.tool.d.ts.map +0 -1
  379. package/dist/utxo/btc/tools/esplora.tool.js.map +0 -1
  380. package/dist/utxo/btc/tools/inscription_index.d.ts.map +0 -1
  381. package/dist/utxo/btc/tools/inscription_index.js.map +0 -1
  382. package/dist/utxo/btc/tools/ordiscan.tool.d.ts.map +0 -1
  383. package/dist/utxo/btc/tools/ordiscan.tool.js.map +0 -1
  384. package/dist/utxo/btc/tools/rare_sat_index.d.ts.map +0 -1
  385. package/dist/utxo/btc/tools/rare_sat_index.js.map +0 -1
  386. package/dist/utxo/btc/tools/rune_index.d.ts.map +0 -1
  387. package/dist/utxo/btc/tools/rune_index.js.map +0 -1
  388. package/dist/utxo/btc/tools/unisat.tool.d.ts.map +0 -1
  389. package/dist/utxo/btc/tools/unisat.tool.js.map +0 -1
  390. package/dist/utxo/coin_selection.d.ts.map +0 -1
  391. package/dist/utxo/coin_selection.js.map +0 -1
  392. package/dist/utxo/doge/index.d.ts.map +0 -1
  393. package/dist/utxo/doge/index.js.map +0 -1
  394. package/dist/utxo/doge/network_params.d.ts.map +0 -1
  395. package/dist/utxo/doge/network_params.js.map +0 -1
  396. package/dist/utxo/ecc.d.ts.map +0 -1
  397. package/dist/utxo/ecc.js.map +0 -1
  398. package/dist/utxo/fee.d.ts.map +0 -1
  399. package/dist/utxo/fee.js.map +0 -1
  400. package/dist/utxo/index.d.ts.map +0 -1
  401. package/dist/utxo/index.js.map +0 -1
  402. package/dist/utxo/ltc/index.d.ts.map +0 -1
  403. package/dist/utxo/ltc/index.js.map +0 -1
  404. package/dist/utxo/ltc/ltc_chains.d.ts.map +0 -1
  405. package/dist/utxo/ltc/ltc_chains.js.map +0 -1
  406. package/dist/utxo/ltc/network_params.d.ts.map +0 -1
  407. package/dist/utxo/ltc/network_params.js.map +0 -1
  408. package/dist/utxo/script.d.ts.map +0 -1
  409. package/dist/utxo/script.js.map +0 -1
  410. package/dist/utxo/tools/broadcaster.d.ts.map +0 -1
  411. package/dist/utxo/tools/broadcaster.js.map +0 -1
  412. package/dist/utxo/tools/chain_tip_provider.d.ts.map +0 -1
  413. package/dist/utxo/tools/chain_tip_provider.js.map +0 -1
  414. package/dist/utxo/tools/fee_estimator.d.ts.map +0 -1
  415. package/dist/utxo/tools/fee_estimator.js.map +0 -1
  416. package/dist/utxo/tools/raw_transaction_provider.d.ts.map +0 -1
  417. package/dist/utxo/tools/raw_transaction_provider.js.map +0 -1
  418. package/dist/utxo/tools/utxo_provider.d.ts.map +0 -1
  419. package/dist/utxo/tools/utxo_provider.js.map +0 -1
  420. package/dist/utxo/unsigned_utxo_transaction.d.ts.map +0 -1
  421. package/dist/utxo/unsigned_utxo_transaction.js.map +0 -1
  422. package/dist/utxo/utxo.d.ts.map +0 -1
  423. package/dist/utxo/utxo_chain.d.ts.map +0 -1
  424. package/dist/utxo/utxo_chain.js.map +0 -1
  425. package/dist/utxo/utxo_chains.d.ts.map +0 -1
  426. package/dist/utxo/utxo_chains.js.map +0 -1
  427. package/dist/utxo/utxo_gas_pricing.d.ts.map +0 -1
  428. package/dist/utxo/utxo_gas_pricing.js.map +0 -1
  429. package/dist/utxo/utxo_network_params.d.ts.map +0 -1
  430. package/dist/utxo/utxo_network_params.js.map +0 -1
  431. package/dist/utxo/utxo_transaction_status.d.ts.map +0 -1
  432. package/dist/utxo/utxo_transaction_status.js.map +0 -1
  433. /package/dist/{abstract_gas_pricing.d.ts → esm/abstract_gas_pricing.d.ts} +0 -0
  434. /package/dist/{abstract_gas_pricing.js → esm/abstract_gas_pricing.js} +0 -0
  435. /package/dist/{address.d.ts → esm/address.d.ts} +0 -0
  436. /package/dist/{address.factory.d.ts → esm/address.factory.d.ts} +0 -0
  437. /package/dist/{address.factory.js → esm/address.factory.js} +0 -0
  438. /package/dist/{address.js → esm/address.js} +0 -0
  439. /package/dist/{address_field.decorator.d.ts → esm/address_field.decorator.d.ts} +0 -0
  440. /package/dist/{address_field.decorator.js → esm/address_field.decorator.js} +0 -0
  441. /package/dist/{chain.base.d.ts → esm/chain.base.d.ts} +0 -0
  442. /package/dist/{chain.base.js → esm/chain.base.js} +0 -0
  443. /package/dist/{chain_ids.d.ts → esm/chain_ids.d.ts} +0 -0
  444. /package/dist/{chain_ids.js → esm/chain_ids.js} +0 -0
  445. /package/dist/{errors.d.ts → esm/errors.d.ts} +0 -0
  446. /package/dist/{errors.js → esm/errors.js} +0 -0
  447. /package/dist/{evm → esm/evm}/evm_address.d.ts +0 -0
  448. /package/dist/{evm → esm/evm}/evm_address.js +0 -0
  449. /package/dist/{evm → esm/evm}/evm_chain.d.ts +0 -0
  450. /package/dist/{evm → esm/evm}/evm_chain.js +0 -0
  451. /package/dist/{evm → esm/evm}/evm_chains.d.ts +0 -0
  452. /package/dist/{evm → esm/evm}/evm_chains.js +0 -0
  453. /package/dist/{evm → esm/evm}/evm_gas_estimate.d.ts +0 -0
  454. /package/dist/{evm → esm/evm}/evm_gas_estimate.js +0 -0
  455. /package/dist/{evm → esm/evm}/evm_gas_pricing.d.ts +0 -0
  456. /package/dist/{evm → esm/evm}/evm_gas_pricing.js +0 -0
  457. /package/dist/{evm → esm/evm}/evm_token.d.ts +0 -0
  458. /package/dist/{evm → esm/evm}/evm_token.js +0 -0
  459. /package/dist/{evm → esm/evm}/evm_tokens.d.ts +0 -0
  460. /package/dist/{evm → esm/evm}/evm_tokens.js +0 -0
  461. /package/dist/{evm → esm/evm}/evm_transaction_status.d.ts +0 -0
  462. /package/dist/{evm → esm/evm}/evm_transaction_status.js +0 -0
  463. /package/dist/{evm → esm/evm}/index.d.ts +0 -0
  464. /package/dist/{evm → esm/evm}/index.js +0 -0
  465. /package/dist/{evm → esm/evm}/unsigned_evm_transaction.d.ts +0 -0
  466. /package/dist/{evm → esm/evm}/unsigned_evm_transaction.js +0 -0
  467. /package/dist/{index.d.ts → esm/index.d.ts} +0 -0
  468. /package/dist/{index.js → esm/index.js} +0 -0
  469. /package/dist/{is_address.decorator.d.ts → esm/is_address.decorator.d.ts} +0 -0
  470. /package/dist/{is_address.decorator.js → esm/is_address.decorator.js} +0 -0
  471. /package/dist/{network_type.d.ts → esm/network_type.d.ts} +0 -0
  472. /package/dist/{network_type.js → esm/network_type.js} +0 -0
  473. /package/dist/{priority.d.ts → esm/priority.d.ts} +0 -0
  474. /package/dist/{priority.js → esm/priority.js} +0 -0
  475. /package/dist/{solana → esm/solana}/index.d.ts +0 -0
  476. /package/dist/{solana → esm/solana}/index.js +0 -0
  477. /package/dist/{solana → esm/solana}/solana_address.d.ts +0 -0
  478. /package/dist/{solana → esm/solana}/solana_address.js +0 -0
  479. /package/dist/{solana → esm/solana}/solana_chain.d.ts +0 -0
  480. /package/dist/{solana → esm/solana}/solana_chain.js +0 -0
  481. /package/dist/{solana → esm/solana}/solana_chains.d.ts +0 -0
  482. /package/dist/{solana → esm/solana}/solana_chains.js +0 -0
  483. /package/dist/{solana → esm/solana}/solana_gas_pricing.d.ts +0 -0
  484. /package/dist/{solana → esm/solana}/solana_gas_pricing.js +0 -0
  485. /package/dist/{solana → esm/solana}/solana_token.d.ts +0 -0
  486. /package/dist/{solana → esm/solana}/solana_token.js +0 -0
  487. /package/dist/{solana → esm/solana}/solana_tokens.d.ts +0 -0
  488. /package/dist/{solana → esm/solana}/solana_tokens.js +0 -0
  489. /package/dist/{solana → esm/solana}/solana_transaction_status.d.ts +0 -0
  490. /package/dist/{solana → esm/solana}/solana_transaction_status.js +0 -0
  491. /package/dist/{solana → esm/solana}/unsigned_solana_transaction.d.ts +0 -0
  492. /package/dist/{solana → esm/solana}/unsigned_solana_transaction.js +0 -0
  493. /package/dist/{token.d.ts → esm/token.d.ts} +0 -0
  494. /package/dist/{token.js → esm/token.js} +0 -0
  495. /package/dist/{ton → esm/ton}/index.d.ts +0 -0
  496. /package/dist/{ton → esm/ton}/index.js +0 -0
  497. /package/dist/{ton → esm/ton}/ton_address.d.ts +0 -0
  498. /package/dist/{ton → esm/ton}/ton_address.js +0 -0
  499. /package/dist/{transaction_status.d.ts → esm/transaction_status.d.ts} +0 -0
  500. /package/dist/{transaction_status.js → esm/transaction_status.js} +0 -0
  501. /package/dist/{unsigned_transaction.d.ts → esm/unsigned_transaction.d.ts} +0 -0
  502. /package/dist/{unsigned_transaction.js → esm/unsigned_transaction.js} +0 -0
  503. /package/dist/{utxo → esm/utxo}/btc/btc_address.d.ts +0 -0
  504. /package/dist/{utxo → esm/utxo}/btc/btc_address.js +0 -0
  505. /package/dist/{utxo → esm/utxo}/btc/btc_chain.d.ts +0 -0
  506. /package/dist/{utxo → esm/utxo}/btc/btc_chain.js +0 -0
  507. /package/dist/{utxo → esm/utxo}/btc/btc_chains.d.ts +0 -0
  508. /package/dist/{utxo → esm/utxo}/btc/btc_chains.js +0 -0
  509. /package/dist/{utxo → esm/utxo}/btc/btc_token.d.ts +0 -0
  510. /package/dist/{utxo → esm/utxo}/btc/btc_token.js +0 -0
  511. /package/dist/{utxo → esm/utxo}/btc/index.d.ts +0 -0
  512. /package/dist/{utxo → esm/utxo}/btc/index.js +0 -0
  513. /package/dist/{utxo → esm/utxo}/btc/network_params.d.ts +0 -0
  514. /package/dist/{utxo → esm/utxo}/btc/network_params.js +0 -0
  515. /package/dist/{utxo → esm/utxo}/btc/tools/asset_outpoint.d.ts +0 -0
  516. /package/dist/{utxo → esm/utxo}/btc/tools/asset_outpoint.js +0 -0
  517. /package/dist/{utxo → esm/utxo}/btc/tools/bitcoin_core.tool.d.ts +0 -0
  518. /package/dist/{utxo → esm/utxo}/btc/tools/bitcoin_core.tool.js +0 -0
  519. /package/dist/{utxo → esm/utxo}/btc/tools/esplora.tool.d.ts +0 -0
  520. /package/dist/{utxo → esm/utxo}/btc/tools/esplora.tool.js +0 -0
  521. /package/dist/{utxo → esm/utxo}/btc/tools/inscription_index.d.ts +0 -0
  522. /package/dist/{utxo → esm/utxo}/btc/tools/inscription_index.js +0 -0
  523. /package/dist/{utxo → esm/utxo}/btc/tools/ordiscan.tool.d.ts +0 -0
  524. /package/dist/{utxo → esm/utxo}/btc/tools/ordiscan.tool.js +0 -0
  525. /package/dist/{utxo → esm/utxo}/btc/tools/rare_sat_index.d.ts +0 -0
  526. /package/dist/{utxo → esm/utxo}/btc/tools/rare_sat_index.js +0 -0
  527. /package/dist/{utxo → esm/utxo}/btc/tools/rune_index.d.ts +0 -0
  528. /package/dist/{utxo → esm/utxo}/btc/tools/rune_index.js +0 -0
  529. /package/dist/{utxo → esm/utxo}/btc/tools/unisat.tool.d.ts +0 -0
  530. /package/dist/{utxo → esm/utxo}/btc/tools/unisat.tool.js +0 -0
  531. /package/dist/{utxo → esm/utxo}/coin_selection.d.ts +0 -0
  532. /package/dist/{utxo → esm/utxo}/coin_selection.js +0 -0
  533. /package/dist/{utxo → esm/utxo}/doge/doge_chains.d.ts +0 -0
  534. /package/dist/{utxo → esm/utxo}/doge/doge_chains.js +0 -0
  535. /package/dist/{utxo → esm/utxo}/doge/index.d.ts +0 -0
  536. /package/dist/{utxo → esm/utxo}/doge/index.js +0 -0
  537. /package/dist/{utxo → esm/utxo}/doge/network_params.d.ts +0 -0
  538. /package/dist/{utxo → esm/utxo}/doge/network_params.js +0 -0
  539. /package/dist/{utxo → esm/utxo}/ecc.d.ts +0 -0
  540. /package/dist/{utxo → esm/utxo}/ecc.js +0 -0
  541. /package/dist/{utxo → esm/utxo}/fee.d.ts +0 -0
  542. /package/dist/{utxo → esm/utxo}/fee.js +0 -0
  543. /package/dist/{utxo → esm/utxo}/index.d.ts +0 -0
  544. /package/dist/{utxo → esm/utxo}/index.js +0 -0
  545. /package/dist/{utxo → esm/utxo}/ltc/index.d.ts +0 -0
  546. /package/dist/{utxo → esm/utxo}/ltc/index.js +0 -0
  547. /package/dist/{utxo → esm/utxo}/ltc/ltc_chains.d.ts +0 -0
  548. /package/dist/{utxo → esm/utxo}/ltc/ltc_chains.js +0 -0
  549. /package/dist/{utxo → esm/utxo}/ltc/network_params.d.ts +0 -0
  550. /package/dist/{utxo → esm/utxo}/ltc/network_params.js +0 -0
  551. /package/dist/{utxo → esm/utxo}/script.d.ts +0 -0
  552. /package/dist/{utxo → esm/utxo}/script.js +0 -0
  553. /package/dist/{utxo → esm/utxo}/tools/broadcaster.d.ts +0 -0
  554. /package/dist/{utxo → esm/utxo}/tools/broadcaster.js +0 -0
  555. /package/dist/{utxo → esm/utxo}/tools/chain_tip_provider.d.ts +0 -0
  556. /package/dist/{utxo → esm/utxo}/tools/chain_tip_provider.js +0 -0
  557. /package/dist/{utxo → esm/utxo}/tools/fee_estimator.d.ts +0 -0
  558. /package/dist/{utxo → esm/utxo}/tools/fee_estimator.js +0 -0
  559. /package/dist/{utxo → esm/utxo}/tools/raw_transaction_provider.d.ts +0 -0
  560. /package/dist/{utxo → esm/utxo}/tools/raw_transaction_provider.js +0 -0
  561. /package/dist/{utxo → esm/utxo}/tools/utxo_provider.d.ts +0 -0
  562. /package/dist/{utxo → esm/utxo}/tools/utxo_provider.js +0 -0
  563. /package/dist/{utxo → esm/utxo}/unsigned_utxo_transaction.d.ts +0 -0
  564. /package/dist/{utxo → esm/utxo}/unsigned_utxo_transaction.js +0 -0
  565. /package/dist/{utxo → esm/utxo}/utxo.d.ts +0 -0
  566. /package/dist/{utxo → esm/utxo}/utxo.js +0 -0
  567. /package/dist/{utxo → esm/utxo}/utxo_chain.d.ts +0 -0
  568. /package/dist/{utxo → esm/utxo}/utxo_chain.js +0 -0
  569. /package/dist/{utxo → esm/utxo}/utxo_chains.d.ts +0 -0
  570. /package/dist/{utxo → esm/utxo}/utxo_chains.js +0 -0
  571. /package/dist/{utxo → esm/utxo}/utxo_gas_pricing.d.ts +0 -0
  572. /package/dist/{utxo → esm/utxo}/utxo_gas_pricing.js +0 -0
  573. /package/dist/{utxo → esm/utxo}/utxo_network_params.d.ts +0 -0
  574. /package/dist/{utxo → esm/utxo}/utxo_network_params.js +0 -0
  575. /package/dist/{utxo → esm/utxo}/utxo_transaction_status.d.ts +0 -0
  576. /package/dist/{utxo → esm/utxo}/utxo_transaction_status.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"script.js","sourceRoot":"","sources":["../../../utxo/script.ts"],"names":[],"mappings":";;;AAgBA,4CA4BC;AAED,sDAEC;AAED,oDAGC;AAED,kDAOC;AA9DD,iDAA8F;AAE9F,qEAA+D;AAElD,QAAA,eAAe,GAAG;IAC7B,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,cAAc;CACnB,CAAC;AAIX,SAAgB,gBAAgB,CAAC,MAAkB;IACjD,MAAM,CAAC,GAAG,MAAM,CAAC;IACjB,IACE,CAAC,CAAC,MAAM,KAAK,EAAE;QACf,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI;QACb,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI;QACb,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI;QACb,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI;QACd,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,EACd,CAAC;QACD,OAAO,uBAAe,CAAC,KAAK,CAAC;IAC/B,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;QACxE,OAAO,uBAAe,CAAC,IAAI,CAAC;IAC9B,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACtD,OAAO,uBAAe,CAAC,MAAM,CAAC;IAChC,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACtD,OAAO,uBAAe,CAAC,KAAK,CAAC;IAC/B,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACtD,OAAO,uBAAe,CAAC,IAAI,CAAC;IAC9B,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAClC,OAAO,uBAAe,CAAC,QAAQ,CAAC;IAClC,CAAC;IACD,OAAO,uBAAe,CAAC,WAAW,CAAC;AACrC,CAAC;AAED,SAAgB,qBAAqB,CAAC,UAAkB,EAAE,OAAyB;IACjF,OAAO,uBAAU,CAAC,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AACxD,CAAC;AAED,SAAgB,oBAAoB,CAAC,UAAkB,EAAE,OAAyB;IAChF,MAAM,MAAM,GAAG,qBAAqB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC1D,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAClC,CAAC;AAED,SAAgB,mBAAmB,CAAC,IAAgB;IAClD,IAAI,IAAI,CAAC,MAAM,GAAG,4CAAmB,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CACb,yBAAyB,IAAI,CAAC,MAAM,gBAAgB,4CAAmB,QAAQ,CAChF,CAAC;IACJ,CAAC;IACD,OAAO,sBAAS,CAAC,OAAO,CAAC,CAAC,uBAAO,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACnE,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=broadcaster.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broadcaster.js","sourceRoot":"","sources":["../../../../utxo/tools/broadcaster.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=chain_tip_provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chain_tip_provider.js","sourceRoot":"","sources":["../../../../utxo/tools/chain_tip_provider.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=fee_estimator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fee_estimator.js","sourceRoot":"","sources":["../../../../utxo/tools/fee_estimator.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=raw_transaction_provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raw_transaction_provider.js","sourceRoot":"","sources":["../../../../utxo/tools/raw_transaction_provider.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=utxo_provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utxo_provider.js","sourceRoot":"","sources":["../../../../utxo/tools/utxo_provider.ts"],"names":[],"mappings":""}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UnsignedUtxoTransaction = void 0;
4
+ const bitcoinjs_lib_1 = require("bitcoinjs-lib");
5
+ const network_type_ts_1 = require("../network_type.js");
6
+ const unsigned_transaction_ts_1 = require("../unsigned_transaction.js");
7
+ class UnsignedUtxoTransaction extends unsigned_transaction_ts_1.UnsignedTransaction {
8
+ params;
9
+ psbtBase64;
10
+ selectedInputs;
11
+ feeSats;
12
+ feeRateSatsPerVByte;
13
+ estimatedVBytes;
14
+ totalInputSats;
15
+ totalOutputSats;
16
+ changeAddress;
17
+ inputsToSign;
18
+ constructor(init) {
19
+ super(init.chainId, network_type_ts_1.NetworkType.BTC);
20
+ this.params = init.params;
21
+ this.psbtBase64 = init.psbtBase64;
22
+ this.selectedInputs = init.selectedInputs;
23
+ this.feeSats = init.feeSats;
24
+ this.feeRateSatsPerVByte = init.feeRateSatsPerVByte;
25
+ this.estimatedVBytes = init.estimatedVBytes;
26
+ this.totalInputSats = init.totalInputSats;
27
+ this.totalOutputSats = init.totalOutputSats;
28
+ this.changeAddress = init.changeAddress;
29
+ this.inputsToSign = init.inputsToSign;
30
+ }
31
+ toPsbt() {
32
+ return bitcoinjs_lib_1.Psbt.fromBase64(this.psbtBase64, { network: this.params.networkInfo });
33
+ }
34
+ }
35
+ exports.UnsignedUtxoTransaction = UnsignedUtxoTransaction;
36
+ //# sourceMappingURL=unsigned_utxo_transaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unsigned_utxo_transaction.js","sourceRoot":"","sources":["../../../utxo/unsigned_utxo_transaction.ts"],"names":[],"mappings":";;;AAAA,iDAAqC;AAErC,wDAAiD;AACjD,wEAAiE;AAmBjE,MAAa,uBAAwB,SAAQ,6CAAmB;IACrD,MAAM,CAAoB;IAC1B,UAAU,CAAS;IACnB,cAAc,CAAsC;IACpD,OAAO,CAAS;IAChB,mBAAmB,CAAS;IAC5B,eAAe,CAAS;IACxB,cAAc,CAAS;IACvB,eAAe,CAAS;IACxB,aAAa,CAAgB;IAC7B,YAAY,CAAqC;IAE1D,YAAY,IAAiC;QAC3C,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,6BAAW,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAC1C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACpD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QAC5C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAC1C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QAC5C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;IACxC,CAAC;IAED,MAAM;QACJ,OAAO,oBAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;IAChF,CAAC;CACF;AA7BD,0DA6BC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=utxo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utxo.js","sourceRoot":"","sources":["../../utxo/utxo.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"utxo.js","sourceRoot":"","sources":["../../../utxo/utxo.ts"],"names":[],"mappings":""}
@@ -0,0 +1,528 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UtxoChain = void 0;
4
+ const bitcoinjs_lib_1 = require("bitcoinjs-lib");
5
+ const chain_ids_ts_1 = require("../chain_ids.js");
6
+ const network_params_ts_1 = require("./btc/network_params.js");
7
+ const chain_base_ts_1 = require("../chain.base.js");
8
+ const errors_ts_1 = require("../errors.js");
9
+ const network_type_ts_1 = require("../network_type.js");
10
+ const priority_ts_1 = require("../priority.js");
11
+ const token_ts_1 = require("../token.js");
12
+ const transaction_status_ts_1 = require("../transaction_status.js");
13
+ const utxo_transaction_status_ts_1 = require("./utxo_transaction_status.js");
14
+ require("./ecc.js");
15
+ const coin_selection_ts_1 = require("./coin_selection.js");
16
+ const fee_ts_1 = require("./fee.js");
17
+ const script_ts_1 = require("./script.js");
18
+ const utxo_network_params_ts_1 = require("./utxo_network_params.js");
19
+ const unsigned_utxo_transaction_ts_1 = require("./unsigned_utxo_transaction.js");
20
+ const RESERVED_BTC_CHAIN_IDS = [
21
+ chain_ids_ts_1.CHAIN_ID_BITCOIN_MAINNET,
22
+ chain_ids_ts_1.CHAIN_ID_BITCOIN_TESTNET,
23
+ chain_ids_ts_1.CHAIN_ID_BITCOIN_SIGNET,
24
+ ];
25
+ const DEFAULT_BLOCK_TIME_SECONDS = 600;
26
+ const DEFAULT_FEE_TARGET_BLOCKS = 3;
27
+ const DEFAULT_LONG_TERM_FEE_RATE = 5;
28
+ const DEFAULT_NATIVE_DECIMALS = 8;
29
+ class UtxoNativeToken extends token_ts_1.Token {
30
+ constructor(chainId, symbol, decimals) {
31
+ super(chainId, symbol, undefined, decimals);
32
+ }
33
+ }
34
+ class UtxoChain extends chain_base_ts_1.Chain {
35
+ params;
36
+ utxoProvider;
37
+ rawTxProvider;
38
+ feeEstimator;
39
+ broadcaster;
40
+ chainTipProvider;
41
+ walletExplorerTemplate;
42
+ tokenExplorerTemplate;
43
+ transactionExplorerTemplate;
44
+ _nativeToken;
45
+ defaultFeeTargetBlocks;
46
+ longTermFeeRateSatsPerVByte;
47
+ rbfEnabled;
48
+ constructor(init) {
49
+ // Reject a non-BTC UTXO chain (LTC/DOGE/DASH/ZEC/BCH — mainnet AND
50
+ // testnet) constructed with a reserved BTC chainId. The prior slip44
51
+ // heuristic let `litecoinTestnetChain({chainId: -2})` through because
52
+ // LTC testnet's slip44 is `Slip44.Testnet` (same as BTC testnet). Gate
53
+ // on the seeded BTC params directly: at reserved ids the constructor
54
+ // must present params shape-identical to what's already seeded, else
55
+ // it's a chain claiming a BTC id with foreign address rules.
56
+ if (RESERVED_BTC_CHAIN_IDS.includes(init.chainId)) {
57
+ const seeded = (0, network_params_ts_1.btcParamsForChainId)(BigInt(init.chainId));
58
+ const paramsAsBtc = init.params;
59
+ // Use the strict comparator exported from btc/network_params.ts so
60
+ // both this guard and registerBtcChainParams share ONE invariant.
61
+ // A non-BtcNetworkParams (missing `name`, `hrp`, etc.) fails the
62
+ // comparator on the first field mismatch.
63
+ if (init.params !== seeded && !(0, network_params_ts_1.btcParamsShapeMatches)(seeded, paramsAsBtc)) {
64
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidArgument, `chainId ${init.chainId} is reserved for BTC; UtxoChain construction with foreign params (slip44=${init.params.slip44CoinId}) is not permitted. Choose a distinct chainId for this network.`, { chainId: init.chainId });
65
+ }
66
+ }
67
+ super(init.chainId, init.name, network_type_ts_1.NetworkType.BTC, init.blockTimeSeconds ?? DEFAULT_BLOCK_TIME_SECONDS, init.nativeSymbol, init.walletExplorerUrlTemplate);
68
+ this.params = init.params;
69
+ this.utxoProvider = init.utxoProvider;
70
+ this.rawTxProvider = init.rawTxProvider;
71
+ this.feeEstimator = init.feeEstimator;
72
+ this.broadcaster = init.broadcaster;
73
+ this.chainTipProvider = init.chainTipProvider;
74
+ this.walletExplorerTemplate = init.walletExplorerUrlTemplate;
75
+ this.tokenExplorerTemplate = init.tokenExplorerUrlTemplate ?? init.walletExplorerUrlTemplate;
76
+ this.transactionExplorerTemplate = init.transactionExplorerUrlTemplate;
77
+ this._nativeToken = new UtxoNativeToken(init.chainId, init.nativeSymbol, init.nativeDecimals ?? DEFAULT_NATIVE_DECIMALS);
78
+ this.defaultFeeTargetBlocks = init.defaultFeeTargetBlocks ?? DEFAULT_FEE_TARGET_BLOCKS;
79
+ this.longTermFeeRateSatsPerVByte = init.longTermFeeRateSatsPerVByte ?? DEFAULT_LONG_TERM_FEE_RATE;
80
+ this.rbfEnabled = init.rbfEnabled ?? true;
81
+ (0, network_type_ts_1.registerNonEvmChain)(init.chainId, network_type_ts_1.NetworkType.BTC);
82
+ }
83
+ get nativeToken() {
84
+ return this._nativeToken;
85
+ }
86
+ get slip44CoinId() {
87
+ return this.params.slip44CoinId;
88
+ }
89
+ get supportedDerivationPurposes() {
90
+ return this.params.supportedDerivationPurposes;
91
+ }
92
+ get dustValueSats() {
93
+ return this.params.dustValueSats;
94
+ }
95
+ getWalletExplorerUrl(address) {
96
+ return this.walletExplorerTemplate.replace('{wallet_address}', address);
97
+ }
98
+ getTokenExplorerUrl(_tokenIdentifier) {
99
+ return this.tokenExplorerTemplate.replace('{wallet_address}', '');
100
+ }
101
+ getTransactionExplorerUrl(txHash) {
102
+ return this.transactionExplorerTemplate.replace('{tx_hash}', txHash);
103
+ }
104
+ validateAddress(raw) {
105
+ if (typeof raw !== 'string' || raw.length === 0)
106
+ return false;
107
+ return this.params.walletAddressRegex.test(raw);
108
+ }
109
+ validateTokenIdentifier(raw) {
110
+ return raw === undefined;
111
+ }
112
+ async getUtxos(addresses, _options) {
113
+ if (addresses.length === 0)
114
+ return [];
115
+ const lists = await Promise.all(addresses.map((address) => this.utxoProvider.getUtxos(address)));
116
+ return lists.flat();
117
+ }
118
+ async getBalance(owner, tokenIdentifier) {
119
+ if (!this.validateTokenIdentifier(tokenIdentifier)) {
120
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidTokenIdentifier, `${this.name}: only the native token is supported (got ${tokenIdentifier})`, { chainId: this.chainId, identifier: tokenIdentifier });
121
+ }
122
+ if (!this.validateAddress(owner)) {
123
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidAddress, `${this.name}: invalid wallet address ${owner}`, { chainId: this.chainId, address: owner });
124
+ }
125
+ const balance = await this.utxoProvider.getAddressBalance(owner);
126
+ return BigInt(balance.confirmedSats);
127
+ }
128
+ async getChainTipHeight() {
129
+ return this.chainTipProvider.getChainTipHeight();
130
+ }
131
+ async getTransactionStatus(txHash) {
132
+ // Narrow the try to the provider call only. Constructor asserts and
133
+ // upsert failures must NOT be silently coerced into NotFound.
134
+ // Classify: (a) provider signalled "no such tx" (Esplora HTTP 404,
135
+ // Bitcoin Core RPC code -5) → NotFound; (b) any other throw →
136
+ // RpcError so consumers can retry rather than treating a 429/timeout
137
+ // as a definitive miss.
138
+ let tx;
139
+ try {
140
+ tx = await this.rawTxProvider.getTransaction(txHash);
141
+ }
142
+ catch (err) {
143
+ if (err instanceof errors_ts_1.ChainError)
144
+ throw err;
145
+ if (isProviderNotFoundError(err)) {
146
+ return new utxo_transaction_status_ts_1.UtxoTransactionStatus({
147
+ chainId: this.chainId,
148
+ status: transaction_status_ts_1.TransactionStatusTypes.NotFound,
149
+ confirmationAt: null,
150
+ balanceChanges: null,
151
+ });
152
+ }
153
+ const rawMsg = err instanceof Error ? err.message : String(err);
154
+ const sanitizedMsg = sanitizeUtxoErrMessage(rawMsg);
155
+ // Build a scrubbed cause: sanitizeCause strips axios `.config`/
156
+ // `.request`/`.response` object trees (which carry Authorization
157
+ // headers + query-string keys) by rebuilding a plain Error with
158
+ // only sanitized message+stack. Consumers walking `.cause` in a
159
+ // structured logger no longer leak API keys.
160
+ const safeCause = err instanceof Error
161
+ ? sanitizedCauseForUtxo(err, sanitizedMsg)
162
+ : undefined;
163
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.RpcError, `Failed to read UTXO tx ${txHash}: ${sanitizedMsg}`, { chainId: this.chainId, txHash }, safeCause);
164
+ }
165
+ // Bitcoin Core reports `confirmations: -1` for a conflicted/RBF-
166
+ // replaced tx (a reorged-out deposit). Do not run the shape asserts
167
+ // that would throw InvalidArgument on the way out — surface as
168
+ // NotFound so the status poll doesn't crash.
169
+ if (tx.confirmations < 0) {
170
+ return new utxo_transaction_status_ts_1.UtxoTransactionStatus({
171
+ chainId: this.chainId,
172
+ status: transaction_status_ts_1.TransactionStatusTypes.NotFound,
173
+ confirmationAt: null,
174
+ balanceChanges: null,
175
+ error: {
176
+ code: 'CONFLICTED',
177
+ reason: `Provider reports confirmations=${tx.confirmations} (RBF-replaced / reorged)`,
178
+ },
179
+ });
180
+ }
181
+ // Wrap the decode block so a non-integer valueSats/absoluteSats from a
182
+ // consumer's provider tool (BTC-float→sats overflow) or a
183
+ // Transaction.fromHex failure surfaces as a typed
184
+ // ChainError(TransactionDecodeFailed) rather than a raw RangeError.
185
+ // Mirrors evm_chain.ts:decodeBalanceChanges catch.
186
+ try {
187
+ // Populate outputs on both pending AND confirmed paths — a 0-conf
188
+ // mempool tx still has visible outputs, and BTC/LTC/DOGE deposit
189
+ // detectors need them. balanceChanges stays null on Pending per the
190
+ // TransactionStatus base invariant.
191
+ const outputs = tx.vout.map((o) => new utxo_transaction_status_ts_1.UtxoTransactionOutput({
192
+ scriptPubkeyHex: o.scriptPubKeyHex,
193
+ address: o.address,
194
+ valueSats: BigInt(o.valueSats),
195
+ }));
196
+ // Derive vsize from the raw hex — bitcoinjs-lib is already a dep
197
+ // and both Esplora + Bitcoin Core populate tx.hex. Falls back to
198
+ // null on malformed hex so the status still returns.
199
+ let vsize = null;
200
+ try {
201
+ if (tx.hex && tx.hex.length > 0) {
202
+ vsize = bitcoinjs_lib_1.Transaction.fromHex(tx.hex).virtualSize();
203
+ }
204
+ }
205
+ catch {
206
+ vsize = null;
207
+ }
208
+ const fees = tx.fees !== null
209
+ ? new utxo_transaction_status_ts_1.UtxoTransactionFees({ absoluteSats: BigInt(tx.fees.absoluteSats), vsize })
210
+ : null;
211
+ const isPending = tx.confirmations === 0;
212
+ if (isPending) {
213
+ return new utxo_transaction_status_ts_1.UtxoTransactionStatus({
214
+ chainId: this.chainId,
215
+ status: transaction_status_ts_1.TransactionStatusTypes.Pending,
216
+ confirmationAt: null,
217
+ balanceChanges: null,
218
+ confirmations: 0,
219
+ outputs,
220
+ vsize,
221
+ fees,
222
+ });
223
+ }
224
+ // Outputs-only per-address native deltas. Full input-side accounting
225
+ // to compute net native change (Python's `_native_balance_changes`
226
+ // parity) is deferred — the raw-tx provider currently returns only
227
+ // vin.txid+vout, no address/value/scriptPubKeyHex. Noted in
228
+ // SINAN_OPEN_QUESTIONS.md.
229
+ const balanceChanges = new Map();
230
+ const perAddressSats = new Map();
231
+ for (const out of tx.vout) {
232
+ if (!out.address)
233
+ continue;
234
+ perAddressSats.set(out.address, (perAddressSats.get(out.address) ?? 0n) + BigInt(out.valueSats));
235
+ }
236
+ for (const [address, sats] of perAddressSats) {
237
+ transaction_status_ts_1.AssetBalanceChange.upsert(balanceChanges, address, this._nativeToken, transaction_status_ts_1.AssetBalanceChange.fromMr(sats, this._nativeToken.decimals));
238
+ }
239
+ return new utxo_transaction_status_ts_1.UtxoTransactionStatus({
240
+ chainId: this.chainId,
241
+ status: transaction_status_ts_1.TransactionStatusTypes.Success,
242
+ confirmationAt: tx.blockTime,
243
+ balanceChanges,
244
+ confirmations: tx.confirmations,
245
+ outputs,
246
+ vsize,
247
+ fees,
248
+ });
249
+ }
250
+ catch (err) {
251
+ if (err instanceof errors_ts_1.ChainError)
252
+ throw err;
253
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.TransactionDecodeFailed, `Failed to decode UTXO tx ${txHash}: ${err instanceof Error ? err.message : String(err)}`, { chainId: this.chainId, txHash }, err instanceof Error ? err : undefined);
254
+ }
255
+ }
256
+ async createTransferUnsignedTransaction(req) {
257
+ return this.buildTransfer(req, undefined);
258
+ }
259
+ async buildTransfer(req, getUtxosOptions) {
260
+ // UTXO builder does not yet consume the CreateTransferRequest fields
261
+ // introduced in Wave 2B (Python-parity amountHr / isFullBalance /
262
+ // gasPricing). Rejecting them at entry — silently letting an
263
+ // amountHr-only request through would produce `amount === undefined`
264
+ // downstream and end in a NaN cointoss after several RPC round-trips.
265
+ if (req.amountHr !== undefined) {
266
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidArgument, `${this.name}: CreateTransferRequest.amountHr is not yet supported — pass \`amount\` (bigint sats) or \`outputs\` (multi-recipient) instead.`, { chainId: this.chainId });
267
+ }
268
+ if (req.isFullBalance === true) {
269
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidArgument, `${this.name}: CreateTransferRequest.isFullBalance is not yet supported — pass \`amount\` explicitly and reserve fees yourself.`, { chainId: this.chainId });
270
+ }
271
+ if (req.gasPricing !== undefined) {
272
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidArgument, `${this.name}: CreateTransferRequest.gasPricing is not yet consumed by UtxoChain (Phase 2 follow-up). Use \`feeRateSatsPerVByte\` / \`feeTargetBlocks\` on CreateUtxoTransferOptions for now.`, { chainId: this.chainId });
273
+ }
274
+ if (!this.validateTokenIdentifier(req.tokenIdentifier)) {
275
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidTokenIdentifier, `${this.name}: only the native token is supported`, { chainId: this.chainId, identifier: req.tokenIdentifier });
276
+ }
277
+ if (req.from === undefined || !this.validateAddress(req.from)) {
278
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidAddress, `${this.name}: invalid sender address ${req.from ?? '<missing>'}`, { chainId: this.chainId, address: req.from });
279
+ }
280
+ const fromAddress = req.from;
281
+ const opts = req;
282
+ // Normalize: single-output form (to/amount) OR multi-output form (outputs[]).
283
+ // Exactly one must be provided; the multi-output form is preferred going forward.
284
+ const hasSingle = req.to !== undefined || req.amount !== undefined;
285
+ const hasMulti = Array.isArray(opts.outputs) && opts.outputs.length > 0;
286
+ if (hasSingle && hasMulti) {
287
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidArgument, `${this.name}: cannot specify both single-output (to/amount) and multi-output (outputs[]) forms`, { chainId: this.chainId });
288
+ }
289
+ if (!hasSingle && !hasMulti) {
290
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidArgument, `${this.name}: must specify either (to, amount) or a non-empty outputs[] array`, { chainId: this.chainId });
291
+ }
292
+ // Wave 2B made `amount` optional on the base CreateTransferRequest so
293
+ // `amountHr` could coexist. UTXO's single-output form still needs
294
+ // `amount: bigint` — reject `{to, memo}`-without-amount up front
295
+ // rather than let it propagate through as NaN downstream.
296
+ if (hasSingle && !hasMulti && req.amount === undefined) {
297
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidArgument, `${this.name}: single-output form requires \`amount: bigint\` (bitcoin satoshis) — omitting amount would produce NaN downstream`, { chainId: this.chainId });
298
+ }
299
+ const normalizedOutputs = hasMulti
300
+ ? opts.outputs.slice()
301
+ : [{ to: req.to, amount: req.amount }];
302
+ for (let i = 0; i < normalizedOutputs.length; i++) {
303
+ const o = normalizedOutputs[i];
304
+ if (!this.validateAddress(o.to)) {
305
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidAddress, `${this.name}: invalid recipient address at outputs[${i}]: ${o.to}`, { chainId: this.chainId, address: o.to });
306
+ }
307
+ if (typeof o.amount !== 'bigint') {
308
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidArgument, `${this.name}: outputs[${i}].amount must be a bigint (got ${typeof o.amount})`, { chainId: this.chainId });
309
+ }
310
+ if (o.amount <= 0n) {
311
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidArgument, `${this.name}: outputs[${i}] amount must be > 0`, { chainId: this.chainId });
312
+ }
313
+ const sats = bigintToNumber(o.amount);
314
+ if (sats < this.params.dustValueSats) {
315
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidArgument, `${this.name}: outputs[${i}] amount ${sats} below dust ${this.params.dustValueSats}`, { chainId: this.chainId });
316
+ }
317
+ }
318
+ const totalTargetSats = normalizedOutputs.reduce((acc, o) => acc + bigintToNumber(o.amount), 0);
319
+ const recipientTypes = normalizedOutputs.map((o) => (0, script_ts_1.scriptTypeForAddress)(o.to, this.params.networkInfo));
320
+ const memoBytes = encodeMemo(req.memo);
321
+ const feeRateSatsPerVByte = await this.resolveFeeRate(opts.feeRateSatsPerVByte, opts.feeTargetBlocks);
322
+ const utxos = await this.getUtxos([fromAddress], getUtxosOptions);
323
+ if (utxos.length === 0) {
324
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidArgument, `${this.name}: no spendable UTXOs available for ${fromAddress}`, { chainId: this.chainId, address: fromAddress });
325
+ }
326
+ const changeAddress = opts.changeAddress ?? fromAddress;
327
+ const changeType = (0, script_ts_1.scriptTypeForAddress)(changeAddress, this.params.networkInfo);
328
+ const outputsFixedVBytes = recipientTypes.reduce((acc, t) => acc + (0, fee_ts_1.outputVBytes)(t), 0) +
329
+ (memoBytes ? memoBytes.length + 11 : 0);
330
+ const selection = this.runCoinSelection({
331
+ utxos,
332
+ targetSats: totalTargetSats,
333
+ feeRateSatsPerVByte,
334
+ changeOutputType: changeType,
335
+ outputsFixedVBytes,
336
+ costOfChangeSats: (0, fee_ts_1.costOfChangeSats)(changeType, feeRateSatsPerVByte, this.longTermFeeRateSatsPerVByte),
337
+ });
338
+ if (selection.outcome !== coin_selection_ts_1.CoinSelectionOutcomes.Success) {
339
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidArgument, `${this.name}: coin selection failed (${selection.outcome}) for target ${totalTargetSats} sats`, { chainId: this.chainId });
340
+ }
341
+ const rbfEnabled = opts.rbfEnabled ?? this.rbfEnabled;
342
+ const sequence = rbfEnabled ? utxo_network_params_ts_1.RBF_SEQUENCE : utxo_network_params_ts_1.FINAL_SEQUENCE;
343
+ const psbt = new bitcoinjs_lib_1.Psbt({ network: this.params.networkInfo });
344
+ const rawTxByTxid = await this.fetchParentTransactions(selection.selected);
345
+ const inputsToSign = {};
346
+ selection.selected.forEach((utxo, index) => {
347
+ this.addInputToPsbt({
348
+ psbt,
349
+ utxo,
350
+ sequence,
351
+ parentTxHex: rawTxByTxid.get(utxo.txid),
352
+ });
353
+ const list = inputsToSign[utxo.ownerAddress] ?? [];
354
+ list.push(index);
355
+ inputsToSign[utxo.ownerAddress] = list;
356
+ });
357
+ for (const o of normalizedOutputs) {
358
+ psbt.addOutput({ address: o.to, value: BigInt(bigintToNumber(o.amount)) });
359
+ }
360
+ if (selection.hasChange) {
361
+ psbt.addOutput({ address: changeAddress, value: BigInt(selection.changeSats) });
362
+ }
363
+ if (memoBytes) {
364
+ psbt.addOutput({ script: (0, script_ts_1.buildOpReturnScript)(memoBytes), value: 0n });
365
+ }
366
+ const estimatedVBytes = (0, fee_ts_1.estimateTxVBytes)(selection.selected.map((u) => u.scriptType), selection.hasChange ? [...recipientTypes, changeType] : recipientTypes, memoBytes ? [memoBytes.length] : []);
367
+ return new unsigned_utxo_transaction_ts_1.UnsignedUtxoTransaction({
368
+ chainId: this.chainId,
369
+ params: this.params,
370
+ psbtBase64: psbt.toBase64(),
371
+ selectedInputs: selection.selected,
372
+ feeSats: selection.feeSats,
373
+ feeRateSatsPerVByte,
374
+ estimatedVBytes,
375
+ totalInputSats: selection.totalValueSats,
376
+ totalOutputSats: totalTargetSats + (selection.hasChange ? selection.changeSats : 0),
377
+ changeAddress: selection.hasChange ? changeAddress : null,
378
+ inputsToSign,
379
+ });
380
+ }
381
+ addInputToPsbt(args) {
382
+ const { psbt, utxo, sequence, parentTxHex } = args;
383
+ const scriptPubKey = Buffer.from(utxo.scriptPubKeyHex, 'hex');
384
+ const scriptType = (0, script_ts_1.detectScriptType)(scriptPubKey);
385
+ const parentTxBytes = Buffer.from(parentTxHex, 'hex');
386
+ const input = {
387
+ hash: utxo.txid,
388
+ index: utxo.vout,
389
+ sequence,
390
+ nonWitnessUtxo: parentTxBytes,
391
+ };
392
+ if (scriptType === script_ts_1.UtxoScriptTypes.P2WPKH ||
393
+ scriptType === script_ts_1.UtxoScriptTypes.P2WSH ||
394
+ scriptType === script_ts_1.UtxoScriptTypes.P2TR ||
395
+ scriptType === script_ts_1.UtxoScriptTypes.P2SH) {
396
+ input.witnessUtxo = { script: scriptPubKey, value: BigInt(utxo.valueSats) };
397
+ }
398
+ psbt.addInput(input);
399
+ }
400
+ async resolveFeeRate(overrideRate, targetBlocks) {
401
+ if (overrideRate !== undefined) {
402
+ if (overrideRate < 1) {
403
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidArgument, `${this.name}: feeRateSatsPerVByte must be >= 1 (got ${overrideRate})`, { chainId: this.chainId });
404
+ }
405
+ return Math.ceil(overrideRate);
406
+ }
407
+ const estimate = await this.feeEstimator.getFeeEstimate(targetBlocks ?? this.defaultFeeTargetBlocks);
408
+ return estimate.satsPerVByte;
409
+ }
410
+ static targetBlocksForPriority(priority) {
411
+ switch (priority) {
412
+ case priority_ts_1.Priority.FAST: return 1;
413
+ case priority_ts_1.Priority.NORMAL: return 3;
414
+ case priority_ts_1.Priority.SLOW: return 6;
415
+ default: {
416
+ const unreachable = priority;
417
+ throw new Error(`Unhandled Priority value: ${unreachable}`);
418
+ }
419
+ }
420
+ }
421
+ async suggestFeeRate(priority) {
422
+ return this.resolveFeeRate(undefined, UtxoChain.targetBlocksForPriority(priority));
423
+ }
424
+ async fetchParentTransactions(utxos) {
425
+ const uniqueTxids = Array.from(new Set(utxos.map((u) => u.txid)));
426
+ const hexes = await this.rawTxProvider.getRawTransactionHexBatch(uniqueTxids);
427
+ if (hexes.length !== uniqueTxids.length) {
428
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.RpcError, `${this.name}: provider returned ${hexes.length} parent txs for ${uniqueTxids.length} requested`, { chainId: this.chainId });
429
+ }
430
+ return new Map(uniqueTxids.map((txid, i) => [txid, hexes[i]]));
431
+ }
432
+ runCoinSelection(params) {
433
+ return (0, coin_selection_ts_1.selectCoins)(params);
434
+ }
435
+ }
436
+ exports.UtxoChain = UtxoChain;
437
+ function bigintToNumber(value) {
438
+ if (value > BigInt(Number.MAX_SAFE_INTEGER)) {
439
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidArgument, `UTXO amount ${value} exceeds Number.MAX_SAFE_INTEGER`);
440
+ }
441
+ return Number(value);
442
+ }
443
+ /**
444
+ * Detect whether the underlying provider signalled "no such tx" (as opposed
445
+ * to a transport failure). Two canonical shapes are recognised:
446
+ *
447
+ * - Esplora / any axios-based HTTP provider → `response.status === 404`
448
+ * - Bitcoin Core `getrawtransaction` on an unknown txid → RPC error code
449
+ * `-5` (surfaces via `bitcoin-core.tool.ts` as
450
+ * `Error("bitcoin-core getrawtransaction: -5 <msg>")`).
451
+ *
452
+ * Everything else is treated as a transport failure and wrapped in
453
+ * `ChainError(RpcError)` so consumers can retry.
454
+ */
455
+ function isProviderNotFoundError(err) {
456
+ if (!err || typeof err !== 'object')
457
+ return false;
458
+ const anyErr = err;
459
+ const status = anyErr.response?.status;
460
+ if (typeof status === 'number' && status === 404)
461
+ return true;
462
+ const message = typeof anyErr.message === 'string' ? anyErr.message : '';
463
+ if (/getrawtransaction:\s*-5\b/.test(message)) {
464
+ // Bitcoin Core RPC code -5 has TWO meanings:
465
+ // - "No such mempool or blockchain transaction" → genuinely unknown
466
+ // (node has -txindex enabled, or the tx is unknown even in mempool)
467
+ // - "No such mempool transaction. Use -txindex or provide a block hash…"
468
+ // → the tx MIGHT exist on-chain but the node can't look it up
469
+ // without a block hash. Reporting NotFound here would silently
470
+ // misreport every confirmed deposit as missing on a non-txindex
471
+ // node — a real-money fail-open. Route it as RpcError so the
472
+ // consumer sees a node-misconfiguration signal.
473
+ if (/mempool or blockchain/i.test(message))
474
+ return true;
475
+ return false;
476
+ }
477
+ return false;
478
+ }
479
+ /**
480
+ * Best-effort scrub for provider error messages so API keys and auth
481
+ * tokens don't leak into `TransactionErrorInfo.reason`. The UTXO
482
+ * providers (Esplora, Unisat, Ordiscan) carry keys in URL query strings,
483
+ * Authorization headers, AND URL paths (`/v1/<key>/tx/…`); a raw axios
484
+ * error stringifies the full request URL. Matches EVM's
485
+ * `sanitizeMessage` intent (errors.ts).
486
+ */
487
+ function sanitizeUtxoErrMessage(msg) {
488
+ return msg
489
+ // Basic-auth credentials in a URL: http://user:pass@host — the
490
+ // canonical Bitcoin Core RPC form, which the -5 branch above
491
+ // specifically expects and could otherwise expose.
492
+ .replace(/(:\/\/)[^:@\s/]+:[^@\s/]+@/g, '$1***:***@')
493
+ // Query-string API key params.
494
+ .replace(/([?&][A-Za-z_-]*(?:key|token|apikey|api_key|auth)=)[^&\s]+/gi, '$1***')
495
+ // Bearer / Authorization headers.
496
+ .replace(/(Authorization|Bearer)\s+[A-Za-z0-9._~+/=-]+/gi, '$1 ***')
497
+ // Hex/base58-ish 32+-char tokens embedded in URL paths (hosted
498
+ // Esplora often uses `/v1/<key>/…`).
499
+ .replace(/\/[A-Fa-f0-9]{32,}\b/g, '/***')
500
+ // Provider-prefixed key markers (Blockstream/Unisat/Ordiscan style).
501
+ .replace(/\b(?:pk|sk|ghp|gho)_[A-Za-z0-9]{20,}\b/g, '***');
502
+ }
503
+ /**
504
+ * Rebuild a fresh Error from `cause` with the sanitized message + a
505
+ * sanitized stack. Drops axios `.config` / `.response` / `.request`
506
+ * object trees that carry Authorization headers and full request URLs.
507
+ * Symmetric with `sanitizeCause` (errors.ts) but with the UTXO-specific
508
+ * regex sweeps applied instead of a per-chain rpcUrl scrub.
509
+ */
510
+ function sanitizedCauseForUtxo(cause, sanitizedMsg) {
511
+ const safe = new Error(sanitizedMsg);
512
+ safe.name = cause.name;
513
+ if (cause.stack)
514
+ safe.stack = sanitizeUtxoErrMessage(cause.stack);
515
+ return safe;
516
+ }
517
+ function encodeMemo(memo) {
518
+ if (memo === undefined || memo === null)
519
+ return null;
520
+ const buf = Buffer.from(memo, 'utf8');
521
+ if (buf.length === 0)
522
+ return null;
523
+ if (buf.length > utxo_network_params_ts_1.OP_RETURN_MAX_BYTES) {
524
+ throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidArgument, `memo length ${buf.length} bytes exceeds OP_RETURN max ${utxo_network_params_ts_1.OP_RETURN_MAX_BYTES}`);
525
+ }
526
+ return buf;
527
+ }
528
+ //# sourceMappingURL=utxo_chain.js.map