@getomnichain/omnichain 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (296) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +66 -0
  3. package/dist/abstract_gas_pricing.d.ts +31 -0
  4. package/dist/abstract_gas_pricing.d.ts.map +1 -0
  5. package/dist/abstract_gas_pricing.js +22 -0
  6. package/dist/abstract_gas_pricing.js.map +1 -0
  7. package/dist/address.d.ts +10 -0
  8. package/dist/address.d.ts.map +1 -0
  9. package/dist/address.factory.d.ts +26 -0
  10. package/dist/address.factory.d.ts.map +1 -0
  11. package/dist/address.factory.js +75 -0
  12. package/dist/address.factory.js.map +1 -0
  13. package/dist/address.js +13 -0
  14. package/dist/address.js.map +1 -0
  15. package/dist/address_field.decorator.d.ts +17 -0
  16. package/dist/address_field.decorator.d.ts.map +1 -0
  17. package/dist/address_field.decorator.js +34 -0
  18. package/dist/address_field.decorator.js.map +1 -0
  19. package/dist/chain.base.d.ts +79 -0
  20. package/dist/chain.base.d.ts.map +1 -0
  21. package/dist/chain.base.js +113 -0
  22. package/dist/chain.base.js.map +1 -0
  23. package/dist/chain_ids.d.ts +122 -0
  24. package/dist/chain_ids.d.ts.map +1 -0
  25. package/dist/chain_ids.js +193 -0
  26. package/dist/chain_ids.js.map +1 -0
  27. package/dist/errors.d.ts +42 -0
  28. package/dist/errors.d.ts.map +1 -0
  29. package/dist/errors.js +62 -0
  30. package/dist/errors.js.map +1 -0
  31. package/dist/evm/evm_address.d.ts +11 -0
  32. package/dist/evm/evm_address.d.ts.map +1 -0
  33. package/dist/evm/evm_address.js +56 -0
  34. package/dist/evm/evm_address.js.map +1 -0
  35. package/dist/evm/evm_chain.d.ts +123 -0
  36. package/dist/evm/evm_chain.d.ts.map +1 -0
  37. package/dist/evm/evm_chain.js +685 -0
  38. package/dist/evm/evm_chain.js.map +1 -0
  39. package/dist/evm/evm_chains.d.ts +83 -0
  40. package/dist/evm/evm_chains.d.ts.map +1 -0
  41. package/dist/evm/evm_chains.js +493 -0
  42. package/dist/evm/evm_chains.js.map +1 -0
  43. package/dist/evm/evm_gas_estimate.d.ts +45 -0
  44. package/dist/evm/evm_gas_estimate.d.ts.map +1 -0
  45. package/dist/evm/evm_gas_estimate.js +70 -0
  46. package/dist/evm/evm_gas_estimate.js.map +1 -0
  47. package/dist/evm/evm_gas_pricing.d.ts +40 -0
  48. package/dist/evm/evm_gas_pricing.d.ts.map +1 -0
  49. package/dist/evm/evm_gas_pricing.js +56 -0
  50. package/dist/evm/evm_gas_pricing.js.map +1 -0
  51. package/dist/evm/evm_token.d.ts +7 -0
  52. package/dist/evm/evm_token.d.ts.map +1 -0
  53. package/dist/evm/evm_token.js +22 -0
  54. package/dist/evm/evm_token.js.map +1 -0
  55. package/dist/evm/evm_tokens.d.ts +81 -0
  56. package/dist/evm/evm_tokens.d.ts.map +1 -0
  57. package/dist/evm/evm_tokens.js +104 -0
  58. package/dist/evm/evm_tokens.js.map +1 -0
  59. package/dist/evm/evm_transaction_status.d.ts +108 -0
  60. package/dist/evm/evm_transaction_status.d.ts.map +1 -0
  61. package/dist/evm/evm_transaction_status.js +177 -0
  62. package/dist/evm/evm_transaction_status.js.map +1 -0
  63. package/dist/evm/index.d.ts +10 -0
  64. package/dist/evm/index.d.ts.map +1 -0
  65. package/dist/evm/index.js +10 -0
  66. package/dist/evm/index.js.map +1 -0
  67. package/dist/evm/unsigned_evm_transaction.d.ts +19 -0
  68. package/dist/evm/unsigned_evm_transaction.d.ts.map +1 -0
  69. package/dist/evm/unsigned_evm_transaction.js +18 -0
  70. package/dist/evm/unsigned_evm_transaction.js.map +1 -0
  71. package/dist/index.d.ts +18 -0
  72. package/dist/index.d.ts.map +1 -0
  73. package/dist/index.js +18 -0
  74. package/dist/index.js.map +1 -0
  75. package/dist/is_address.decorator.d.ts +3 -0
  76. package/dist/is_address.decorator.d.ts.map +1 -0
  77. package/dist/is_address.decorator.js +51 -0
  78. package/dist/is_address.decorator.js.map +1 -0
  79. package/dist/network_type.d.ts +73 -0
  80. package/dist/network_type.d.ts.map +1 -0
  81. package/dist/network_type.js +144 -0
  82. package/dist/network_type.js.map +1 -0
  83. package/dist/priority.d.ts +23 -0
  84. package/dist/priority.d.ts.map +1 -0
  85. package/dist/priority.js +23 -0
  86. package/dist/priority.js.map +1 -0
  87. package/dist/solana/index.d.ts +9 -0
  88. package/dist/solana/index.d.ts.map +1 -0
  89. package/dist/solana/index.js +9 -0
  90. package/dist/solana/index.js.map +1 -0
  91. package/dist/solana/solana_address.d.ts +20 -0
  92. package/dist/solana/solana_address.d.ts.map +1 -0
  93. package/dist/solana/solana_address.js +45 -0
  94. package/dist/solana/solana_address.js.map +1 -0
  95. package/dist/solana/solana_chain.d.ts +213 -0
  96. package/dist/solana/solana_chain.d.ts.map +1 -0
  97. package/dist/solana/solana_chain.js +704 -0
  98. package/dist/solana/solana_chain.js.map +1 -0
  99. package/dist/solana/solana_chains.d.ts +24 -0
  100. package/dist/solana/solana_chains.d.ts.map +1 -0
  101. package/dist/solana/solana_chains.js +84 -0
  102. package/dist/solana/solana_chains.js.map +1 -0
  103. package/dist/solana/solana_gas_pricing.d.ts +30 -0
  104. package/dist/solana/solana_gas_pricing.d.ts.map +1 -0
  105. package/dist/solana/solana_gas_pricing.js +26 -0
  106. package/dist/solana/solana_gas_pricing.js.map +1 -0
  107. package/dist/solana/solana_token.d.ts +19 -0
  108. package/dist/solana/solana_token.d.ts.map +1 -0
  109. package/dist/solana/solana_token.js +34 -0
  110. package/dist/solana/solana_token.js.map +1 -0
  111. package/dist/solana/solana_tokens.d.ts +22 -0
  112. package/dist/solana/solana_tokens.d.ts.map +1 -0
  113. package/dist/solana/solana_tokens.js +26 -0
  114. package/dist/solana/solana_tokens.js.map +1 -0
  115. package/dist/solana/solana_transaction_status.d.ts +59 -0
  116. package/dist/solana/solana_transaction_status.d.ts.map +1 -0
  117. package/dist/solana/solana_transaction_status.js +144 -0
  118. package/dist/solana/solana_transaction_status.js.map +1 -0
  119. package/dist/solana/unsigned_solana_transaction.d.ts +31 -0
  120. package/dist/solana/unsigned_solana_transaction.d.ts.map +1 -0
  121. package/dist/solana/unsigned_solana_transaction.js +26 -0
  122. package/dist/solana/unsigned_solana_transaction.js.map +1 -0
  123. package/dist/token.d.ts +35 -0
  124. package/dist/token.d.ts.map +1 -0
  125. package/dist/token.js +62 -0
  126. package/dist/token.js.map +1 -0
  127. package/dist/ton/index.d.ts +2 -0
  128. package/dist/ton/index.d.ts.map +1 -0
  129. package/dist/ton/index.js +2 -0
  130. package/dist/ton/index.js.map +1 -0
  131. package/dist/ton/ton_address.d.ts +10 -0
  132. package/dist/ton/ton_address.d.ts.map +1 -0
  133. package/dist/ton/ton_address.js +53 -0
  134. package/dist/ton/ton_address.js.map +1 -0
  135. package/dist/transaction_status.d.ts +140 -0
  136. package/dist/transaction_status.d.ts.map +1 -0
  137. package/dist/transaction_status.js +271 -0
  138. package/dist/transaction_status.js.map +1 -0
  139. package/dist/unsigned_transaction.d.ts +7 -0
  140. package/dist/unsigned_transaction.d.ts.map +1 -0
  141. package/dist/unsigned_transaction.js +9 -0
  142. package/dist/unsigned_transaction.js.map +1 -0
  143. package/dist/utxo/btc/btc_address.d.ts +15 -0
  144. package/dist/utxo/btc/btc_address.d.ts.map +1 -0
  145. package/dist/utxo/btc/btc_address.js +39 -0
  146. package/dist/utxo/btc/btc_address.js.map +1 -0
  147. package/dist/utxo/btc/btc_chain.d.ts +34 -0
  148. package/dist/utxo/btc/btc_chain.d.ts.map +1 -0
  149. package/dist/utxo/btc/btc_chain.js +62 -0
  150. package/dist/utxo/btc/btc_chain.js.map +1 -0
  151. package/dist/utxo/btc/btc_chains.d.ts +25 -0
  152. package/dist/utxo/btc/btc_chains.d.ts.map +1 -0
  153. package/dist/utxo/btc/btc_chains.js +43 -0
  154. package/dist/utxo/btc/btc_chains.js.map +1 -0
  155. package/dist/utxo/btc/btc_token.d.ts +6 -0
  156. package/dist/utxo/btc/btc_token.d.ts.map +1 -0
  157. package/dist/utxo/btc/btc_token.js +11 -0
  158. package/dist/utxo/btc/btc_token.js.map +1 -0
  159. package/dist/utxo/btc/index.d.ts +14 -0
  160. package/dist/utxo/btc/index.d.ts.map +1 -0
  161. package/dist/utxo/btc/index.js +14 -0
  162. package/dist/utxo/btc/index.js.map +1 -0
  163. package/dist/utxo/btc/network_params.d.ts +50 -0
  164. package/dist/utxo/btc/network_params.d.ts.map +1 -0
  165. package/dist/utxo/btc/network_params.js +188 -0
  166. package/dist/utxo/btc/network_params.js.map +1 -0
  167. package/dist/utxo/btc/tools/asset_outpoint.d.ts +7 -0
  168. package/dist/utxo/btc/tools/asset_outpoint.d.ts.map +1 -0
  169. package/dist/utxo/btc/tools/asset_outpoint.js +12 -0
  170. package/dist/utxo/btc/tools/asset_outpoint.js.map +1 -0
  171. package/dist/utxo/btc/tools/bitcoin_core.tool.d.ts +41 -0
  172. package/dist/utxo/btc/tools/bitcoin_core.tool.d.ts.map +1 -0
  173. package/dist/utxo/btc/tools/bitcoin_core.tool.js +172 -0
  174. package/dist/utxo/btc/tools/bitcoin_core.tool.js.map +1 -0
  175. package/dist/utxo/btc/tools/esplora.tool.d.ts +27 -0
  176. package/dist/utxo/btc/tools/esplora.tool.d.ts.map +1 -0
  177. package/dist/utxo/btc/tools/esplora.tool.js +113 -0
  178. package/dist/utxo/btc/tools/esplora.tool.js.map +1 -0
  179. package/dist/utxo/btc/tools/inscription_index.d.ts +6 -0
  180. package/dist/utxo/btc/tools/inscription_index.d.ts.map +1 -0
  181. package/dist/utxo/btc/tools/inscription_index.js +2 -0
  182. package/dist/utxo/btc/tools/inscription_index.js.map +1 -0
  183. package/dist/utxo/btc/tools/ordiscan.tool.d.ts +19 -0
  184. package/dist/utxo/btc/tools/ordiscan.tool.d.ts.map +1 -0
  185. package/dist/utxo/btc/tools/ordiscan.tool.js +53 -0
  186. package/dist/utxo/btc/tools/ordiscan.tool.js.map +1 -0
  187. package/dist/utxo/btc/tools/rare_sat_index.d.ts +6 -0
  188. package/dist/utxo/btc/tools/rare_sat_index.d.ts.map +1 -0
  189. package/dist/utxo/btc/tools/rare_sat_index.js +2 -0
  190. package/dist/utxo/btc/tools/rare_sat_index.js.map +1 -0
  191. package/dist/utxo/btc/tools/rune_index.d.ts +6 -0
  192. package/dist/utxo/btc/tools/rune_index.d.ts.map +1 -0
  193. package/dist/utxo/btc/tools/rune_index.js +2 -0
  194. package/dist/utxo/btc/tools/rune_index.js.map +1 -0
  195. package/dist/utxo/btc/tools/unisat.tool.d.ts +18 -0
  196. package/dist/utxo/btc/tools/unisat.tool.d.ts.map +1 -0
  197. package/dist/utxo/btc/tools/unisat.tool.js +49 -0
  198. package/dist/utxo/btc/tools/unisat.tool.js.map +1 -0
  199. package/dist/utxo/coin_selection.d.ts +29 -0
  200. package/dist/utxo/coin_selection.d.ts.map +1 -0
  201. package/dist/utxo/coin_selection.js +156 -0
  202. package/dist/utxo/coin_selection.js.map +1 -0
  203. package/dist/utxo/doge/doge_chains.d.ts +17 -0
  204. package/dist/utxo/doge/doge_chains.d.ts.map +1 -0
  205. package/dist/utxo/doge/doge_chains.js +28 -0
  206. package/dist/utxo/doge/doge_chains.js.map +1 -0
  207. package/dist/utxo/doge/index.d.ts +3 -0
  208. package/dist/utxo/doge/index.d.ts.map +1 -0
  209. package/dist/utxo/doge/index.js +3 -0
  210. package/dist/utxo/doge/index.js.map +1 -0
  211. package/dist/utxo/doge/network_params.d.ts +4 -0
  212. package/dist/utxo/doge/network_params.d.ts.map +1 -0
  213. package/dist/utxo/doge/network_params.js +24 -0
  214. package/dist/utxo/doge/network_params.js.map +1 -0
  215. package/dist/utxo/ecc.d.ts +2 -0
  216. package/dist/utxo/ecc.d.ts.map +1 -0
  217. package/dist/utxo/ecc.js +11 -0
  218. package/dist/utxo/ecc.js.map +1 -0
  219. package/dist/utxo/fee.d.ts +12 -0
  220. package/dist/utxo/fee.d.ts.map +1 -0
  221. package/dist/utxo/fee.js +51 -0
  222. package/dist/utxo/fee.js.map +1 -0
  223. package/dist/utxo/index.d.ts +20 -0
  224. package/dist/utxo/index.d.ts.map +1 -0
  225. package/dist/utxo/index.js +20 -0
  226. package/dist/utxo/index.js.map +1 -0
  227. package/dist/utxo/ltc/index.d.ts +3 -0
  228. package/dist/utxo/ltc/index.d.ts.map +1 -0
  229. package/dist/utxo/ltc/index.js +3 -0
  230. package/dist/utxo/ltc/index.js.map +1 -0
  231. package/dist/utxo/ltc/ltc_chains.d.ts +17 -0
  232. package/dist/utxo/ltc/ltc_chains.d.ts.map +1 -0
  233. package/dist/utxo/ltc/ltc_chains.js +28 -0
  234. package/dist/utxo/ltc/ltc_chains.js.map +1 -0
  235. package/dist/utxo/ltc/network_params.d.ts +4 -0
  236. package/dist/utxo/ltc/network_params.d.ts.map +1 -0
  237. package/dist/utxo/ltc/network_params.js +27 -0
  238. package/dist/utxo/ltc/network_params.js.map +1 -0
  239. package/dist/utxo/script.d.ts +16 -0
  240. package/dist/utxo/script.d.ts.map +1 -0
  241. package/dist/utxo/script.js +52 -0
  242. package/dist/utxo/script.js.map +1 -0
  243. package/dist/utxo/tools/broadcaster.d.ts +6 -0
  244. package/dist/utxo/tools/broadcaster.d.ts.map +1 -0
  245. package/dist/utxo/tools/broadcaster.js +2 -0
  246. package/dist/utxo/tools/broadcaster.js.map +1 -0
  247. package/dist/utxo/tools/chain_tip_provider.d.ts +5 -0
  248. package/dist/utxo/tools/chain_tip_provider.d.ts.map +1 -0
  249. package/dist/utxo/tools/chain_tip_provider.js +2 -0
  250. package/dist/utxo/tools/chain_tip_provider.js.map +1 -0
  251. package/dist/utxo/tools/fee_estimator.d.ts +6 -0
  252. package/dist/utxo/tools/fee_estimator.d.ts.map +1 -0
  253. package/dist/utxo/tools/fee_estimator.js +2 -0
  254. package/dist/utxo/tools/fee_estimator.js.map +1 -0
  255. package/dist/utxo/tools/raw_transaction_provider.d.ts +8 -0
  256. package/dist/utxo/tools/raw_transaction_provider.d.ts.map +1 -0
  257. package/dist/utxo/tools/raw_transaction_provider.js +2 -0
  258. package/dist/utxo/tools/raw_transaction_provider.js.map +1 -0
  259. package/dist/utxo/tools/utxo_provider.d.ts +7 -0
  260. package/dist/utxo/tools/utxo_provider.d.ts.map +1 -0
  261. package/dist/utxo/tools/utxo_provider.js +2 -0
  262. package/dist/utxo/tools/utxo_provider.js.map +1 -0
  263. package/dist/utxo/unsigned_utxo_transaction.d.ts +32 -0
  264. package/dist/utxo/unsigned_utxo_transaction.d.ts.map +1 -0
  265. package/dist/utxo/unsigned_utxo_transaction.js +32 -0
  266. package/dist/utxo/unsigned_utxo_transaction.js.map +1 -0
  267. package/dist/utxo/utxo.d.ts +43 -0
  268. package/dist/utxo/utxo.d.ts.map +1 -0
  269. package/dist/utxo/utxo.js +2 -0
  270. package/dist/utxo/utxo.js.map +1 -0
  271. package/dist/utxo/utxo_chain.d.ts +102 -0
  272. package/dist/utxo/utxo_chain.d.ts.map +1 -0
  273. package/dist/utxo/utxo_chain.js +524 -0
  274. package/dist/utxo/utxo_chain.js.map +1 -0
  275. package/dist/utxo/utxo_chains.d.ts +29 -0
  276. package/dist/utxo/utxo_chains.d.ts.map +1 -0
  277. package/dist/utxo/utxo_chains.js +63 -0
  278. package/dist/utxo/utxo_chains.js.map +1 -0
  279. package/dist/utxo/utxo_gas_pricing.d.ts +22 -0
  280. package/dist/utxo/utxo_gas_pricing.d.ts.map +1 -0
  281. package/dist/utxo/utxo_gas_pricing.js +20 -0
  282. package/dist/utxo/utxo_gas_pricing.js.map +1 -0
  283. package/dist/utxo/utxo_network_params.d.ts +25 -0
  284. package/dist/utxo/utxo_network_params.d.ts.map +1 -0
  285. package/dist/utxo/utxo_network_params.js +15 -0
  286. package/dist/utxo/utxo_network_params.js.map +1 -0
  287. package/dist/utxo/utxo_transaction_status.d.ts +73 -0
  288. package/dist/utxo/utxo_transaction_status.d.ts.map +1 -0
  289. package/dist/utxo/utxo_transaction_status.js +89 -0
  290. package/dist/utxo/utxo_transaction_status.js.map +1 -0
  291. package/docs/PUBLISHING.md +119 -0
  292. package/docs/README.md +273 -0
  293. package/docs/evm.md +205 -0
  294. package/docs/solana.md +220 -0
  295. package/docs/utxo.md +364 -0
  296. package/package.json +94 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unisat.tool.js","sourceRoot":"","sources":["../../../../utxo/btc/tools/unisat.tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAiC7C,MAAM,gBAAgB,GAAG,4BAA4B,CAAC;AACtD,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAC9B,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAE9B,MAAM,OAAO,WAAW;IACL,MAAM,CAAgB;IACtB,QAAQ,CAAS;IACjB,QAAQ,CAAS;IAElC,YAAY,OAA2B;QACrC,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1D,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YACzB,OAAO,EAAE,CAAC,OAAO,CAAC,OAAO,IAAI,gBAAgB,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;YACjE,OAAO,EAAE,OAAO,CAAC,SAAS,IAAI,MAAM;YACpC,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,OAAO,CAAC,MAAM,EAAE,EAAE;SACvD,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,iBAAiB,CAAC;QACtD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,iBAAiB,CAAC;IACxD,CAAC;IAED,IAAI,IAAI;QACN,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,yBAAyB,CAAC,OAAe;QAC7C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,MAAM,GAAG,GAA2B,EAAE,CAAC;QACvC,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC;YAChD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CACpC,uBAAuB,OAAO,mBAAmB,EACjD,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,CAC5C,CAAC;YACF,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;gBACpE,MAAM,IAAI,KAAK,CAAC,gBAAgB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAC3D,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;YAC5D,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;gBACtB,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;gBAClC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;oBAAE,SAAS;gBAC5B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACd,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC3C,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC;YACvB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;YACnC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,IAAI,KAAK;gBAAE,MAAM;QACnD,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;CACF"}
@@ -0,0 +1,29 @@
1
+ import { UtxoScriptType } from './script.ts';
2
+ import { UnspentTransactionOutput } from './utxo.ts';
3
+ export interface CoinSelectionParams {
4
+ utxos: readonly UnspentTransactionOutput[];
5
+ targetSats: number;
6
+ feeRateSatsPerVByte: number;
7
+ longTermFeeRateSatsPerVByte?: number;
8
+ changeOutputType: UtxoScriptType;
9
+ outputsFixedVBytes: number;
10
+ costOfChangeSats: number;
11
+ maxIterations?: number;
12
+ }
13
+ export declare const CoinSelectionOutcomes: {
14
+ readonly Success: "success";
15
+ readonly InsufficientFunds: "insufficient_funds";
16
+ readonly NoSolution: "no_solution";
17
+ };
18
+ export type CoinSelectionOutcome = (typeof CoinSelectionOutcomes)[keyof typeof CoinSelectionOutcomes];
19
+ export interface CoinSelectionResult {
20
+ outcome: CoinSelectionOutcome;
21
+ selected: UnspentTransactionOutput[];
22
+ totalValueSats: number;
23
+ feeSats: number;
24
+ changeSats: number;
25
+ hasChange: boolean;
26
+ algorithm: 'bnb' | 'accumulator' | null;
27
+ }
28
+ export declare function selectCoins(params: CoinSelectionParams): CoinSelectionResult;
29
+ //# sourceMappingURL=coin_selection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coin_selection.d.ts","sourceRoot":"","sources":["../../utxo/coin_selection.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAmB,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAErD,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,SAAS,wBAAwB,EAAE,CAAC;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,gBAAgB,EAAE,cAAc,CAAC;IACjC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,qBAAqB;;;;CAIxB,CAAC;AAEX,MAAM,MAAM,oBAAoB,GAC9B,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,OAAO,qBAAqB,CAAC,CAAC;AAErE,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,oBAAoB,CAAC;IAC9B,QAAQ,EAAE,wBAAwB,EAAE,CAAC;IACrC,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,KAAK,GAAG,aAAa,GAAG,IAAI,CAAC;CACzC;AAWD,wBAAgB,WAAW,CAAC,MAAM,EAAE,mBAAmB,GAAG,mBAAmB,CAgD5E"}
@@ -0,0 +1,156 @@
1
+ import { effectiveValueSats, inputVBytes } from "./fee.js";
2
+ import { UtxoScriptTypes } from "./script.js";
3
+ export const CoinSelectionOutcomes = {
4
+ Success: 'success',
5
+ InsufficientFunds: 'insufficient_funds',
6
+ NoSolution: 'no_solution',
7
+ };
8
+ const DEFAULT_MAX_ITERATIONS = 100_000;
9
+ export function selectCoins(params) {
10
+ const { utxos, targetSats, feeRateSatsPerVByte, changeOutputType, outputsFixedVBytes, costOfChangeSats, maxIterations = DEFAULT_MAX_ITERATIONS, } = params;
11
+ if (targetSats <= 0) {
12
+ return emptyResult(CoinSelectionOutcomes.NoSolution);
13
+ }
14
+ const coins = utxos.map((utxo) => {
15
+ const inputCost = Math.ceil(inputVBytes(utxo.scriptType) * feeRateSatsPerVByte);
16
+ return {
17
+ utxo,
18
+ rawValue: utxo.valueSats,
19
+ effectiveValue: effectiveValueSats(utxo.valueSats, utxo.scriptType, feeRateSatsPerVByte),
20
+ inputCost,
21
+ };
22
+ });
23
+ const positiveCoins = coins.filter((c) => c.effectiveValue > 0);
24
+ const totalEffective = positiveCoins.reduce((s, c) => s + c.effectiveValue, 0);
25
+ if (totalEffective < targetSats) {
26
+ return emptyResult(CoinSelectionOutcomes.InsufficientFunds);
27
+ }
28
+ const bnbResult = branchAndBound(positiveCoins, targetSats, costOfChangeSats, maxIterations);
29
+ if (bnbResult) {
30
+ return finalize(bnbResult, params, outputsFixedVBytes, feeRateSatsPerVByte, changeOutputType, 'bnb');
31
+ }
32
+ const accumulator = accumulatorFallback(positiveCoins, targetSats);
33
+ if (!accumulator) {
34
+ return emptyResult(CoinSelectionOutcomes.NoSolution);
35
+ }
36
+ return finalize(accumulator, params, outputsFixedVBytes, feeRateSatsPerVByte, changeOutputType, 'accumulator');
37
+ }
38
+ function branchAndBound(coins, target, costOfChange, maxIterations) {
39
+ const sorted = [...coins].sort((a, b) => b.effectiveValue - a.effectiveValue);
40
+ const tail = new Array(sorted.length + 1).fill(0);
41
+ for (let i = sorted.length - 1; i >= 0; i--) {
42
+ tail[i] = tail[i + 1] + sorted[i].effectiveValue;
43
+ }
44
+ let iterations = 0;
45
+ let best = null;
46
+ let bestOver = Infinity;
47
+ const current = [];
48
+ function recurse(depth, sum) {
49
+ if (++iterations > maxIterations)
50
+ return false;
51
+ if (sum > target + costOfChange)
52
+ return false;
53
+ if (sum >= target) {
54
+ const over = sum - target;
55
+ if (over < bestOver) {
56
+ bestOver = over;
57
+ best = [...current];
58
+ }
59
+ return over === 0;
60
+ }
61
+ if (sum + tail[depth] < target)
62
+ return false;
63
+ if (depth === sorted.length)
64
+ return false;
65
+ current.push(sorted[depth]);
66
+ if (recurse(depth + 1, sum + sorted[depth].effectiveValue)) {
67
+ current.pop();
68
+ return true;
69
+ }
70
+ current.pop();
71
+ return recurse(depth + 1, sum);
72
+ }
73
+ recurse(0, 0);
74
+ return best;
75
+ }
76
+ function accumulatorFallback(coins, target) {
77
+ const sorted = [...coins].sort((a, b) => b.effectiveValue - a.effectiveValue);
78
+ const selected = [];
79
+ let sum = 0;
80
+ for (const c of sorted) {
81
+ selected.push(c);
82
+ sum += c.effectiveValue;
83
+ if (sum >= target)
84
+ return selected;
85
+ }
86
+ return null;
87
+ }
88
+ function finalize(selected, params, outputsFixedVBytes, feeRateSatsPerVByte, changeOutputType, algorithm) {
89
+ const totalValueSats = selected.reduce((s, c) => s + c.rawValue, 0);
90
+ const inputsVBytes = selected.reduce((s, c) => s + inputVBytes(c.utxo.scriptType), 0);
91
+ const baseFeeSats = Math.ceil((outputsFixedVBytes + inputsVBytes) * feeRateSatsPerVByte);
92
+ const surplusBeforeChange = totalValueSats - params.targetSats - baseFeeSats;
93
+ if (surplusBeforeChange < 0) {
94
+ return {
95
+ outcome: CoinSelectionOutcomes.InsufficientFunds,
96
+ selected: [],
97
+ totalValueSats: 0,
98
+ feeSats: 0,
99
+ changeSats: 0,
100
+ hasChange: false,
101
+ algorithm: null,
102
+ };
103
+ }
104
+ const changeOutputCost = Math.ceil(outputVBytesFor(changeOutputType) * feeRateSatsPerVByte);
105
+ const changeIfAdded = surplusBeforeChange - changeOutputCost;
106
+ const dustValue = params.costOfChangeSats;
107
+ let feeSats;
108
+ let changeSats;
109
+ let hasChange;
110
+ if (changeIfAdded >= dustValue) {
111
+ hasChange = true;
112
+ changeSats = changeIfAdded;
113
+ feeSats = baseFeeSats + changeOutputCost;
114
+ }
115
+ else {
116
+ hasChange = false;
117
+ changeSats = 0;
118
+ feeSats = baseFeeSats + surplusBeforeChange;
119
+ }
120
+ return {
121
+ outcome: CoinSelectionOutcomes.Success,
122
+ selected: selected.map((c) => c.utxo),
123
+ totalValueSats,
124
+ feeSats,
125
+ changeSats,
126
+ hasChange,
127
+ algorithm,
128
+ };
129
+ }
130
+ function outputVBytesFor(type) {
131
+ switch (type) {
132
+ case UtxoScriptTypes.P2PKH:
133
+ return 34;
134
+ case UtxoScriptTypes.P2SH:
135
+ return 32;
136
+ case UtxoScriptTypes.P2WPKH:
137
+ return 31;
138
+ case UtxoScriptTypes.P2WSH:
139
+ case UtxoScriptTypes.P2TR:
140
+ return 43;
141
+ default:
142
+ return 0;
143
+ }
144
+ }
145
+ function emptyResult(outcome) {
146
+ return {
147
+ outcome,
148
+ selected: [],
149
+ totalValueSats: 0,
150
+ feeSats: 0,
151
+ changeSats: 0,
152
+ hasChange: false,
153
+ algorithm: null,
154
+ };
155
+ }
156
+ //# sourceMappingURL=coin_selection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coin_selection.js","sourceRoot":"","sources":["../../utxo/coin_selection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { UtxoBroadcaster } from '../tools/broadcaster.ts';
2
+ import { UtxoChainTipProvider } from '../tools/chain_tip_provider.ts';
3
+ import { UtxoFeeEstimator } from '../tools/fee_estimator.ts';
4
+ import { UtxoRawTransactionProvider } from '../tools/raw_transaction_provider.ts';
5
+ import { UtxoProvider } from '../tools/utxo_provider.ts';
6
+ import { UtxoChain } from '../utxo_chain.ts';
7
+ export interface DogecoinChainFactoryOptions {
8
+ chainId: number;
9
+ utxoProvider: UtxoProvider;
10
+ rawTxProvider: UtxoRawTransactionProvider;
11
+ feeEstimator: UtxoFeeEstimator;
12
+ broadcaster: UtxoBroadcaster;
13
+ chainTipProvider: UtxoChainTipProvider;
14
+ }
15
+ export declare function dogecoinMainnetChain(options: DogecoinChainFactoryOptions): UtxoChain;
16
+ export declare function dogecoinTestnetChain(options: DogecoinChainFactoryOptions): UtxoChain;
17
+ //# sourceMappingURL=doge_chains.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doge_chains.d.ts","sourceRoot":"","sources":["../../../utxo/doge/doge_chains.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAG7C,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,YAAY,CAAC;IAC3B,aAAa,EAAE,0BAA0B,CAAC;IAC1C,YAAY,EAAE,gBAAgB,CAAC;IAC/B,WAAW,EAAE,eAAe,CAAC;IAC7B,gBAAgB,EAAE,oBAAoB,CAAC;CACxC;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,2BAA2B,GAAG,SAAS,CAUpF;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,2BAA2B,GAAG,SAAS,CAapF"}
@@ -0,0 +1,28 @@
1
+ import { UtxoChain } from "../utxo_chain.js";
2
+ import { DOGECOIN_MAINNET_PARAMS, DOGECOIN_TESTNET_PARAMS } from "./network_params.js";
3
+ export function dogecoinMainnetChain(options) {
4
+ return new UtxoChain({
5
+ name: 'Dogecoin',
6
+ params: DOGECOIN_MAINNET_PARAMS,
7
+ nativeSymbol: 'DOGE',
8
+ blockTimeSeconds: 60,
9
+ ...options,
10
+ walletExplorerUrlTemplate: 'https://blockchair.com/dogecoin/address/{wallet_address}',
11
+ transactionExplorerUrlTemplate: 'https://blockchair.com/dogecoin/transaction/{tx_hash}',
12
+ });
13
+ }
14
+ export function dogecoinTestnetChain(options) {
15
+ if (DOGECOIN_TESTNET_PARAMS === null) {
16
+ throw new Error('Dogecoin testnet params unavailable (coininfo.dogecoin.test missing)');
17
+ }
18
+ return new UtxoChain({
19
+ name: 'Dogecoin Testnet',
20
+ params: DOGECOIN_TESTNET_PARAMS,
21
+ nativeSymbol: 'tDOGE',
22
+ blockTimeSeconds: 60,
23
+ ...options,
24
+ walletExplorerUrlTemplate: 'https://sochain.com/address/DOGETEST/{wallet_address}',
25
+ transactionExplorerUrlTemplate: 'https://sochain.com/tx/DOGETEST/{tx_hash}',
26
+ });
27
+ }
28
+ //# sourceMappingURL=doge_chains.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doge_chains.js","sourceRoot":"","sources":["../../../utxo/doge/doge_chains.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAWvF,MAAM,UAAU,oBAAoB,CAAC,OAAoC;IACvE,OAAO,IAAI,SAAS,CAAC;QACnB,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,uBAAuB;QAC/B,YAAY,EAAE,MAAM;QACpB,gBAAgB,EAAE,EAAE;QACpB,GAAG,OAAO;QACV,yBAAyB,EAAE,0DAA0D;QACrF,8BAA8B,EAAE,uDAAuD;KACxF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,OAAoC;IACvE,IAAI,uBAAuB,KAAK,IAAI,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;IAC1F,CAAC;IACD,OAAO,IAAI,SAAS,CAAC;QACnB,IAAI,EAAE,kBAAkB;QACxB,MAAM,EAAE,uBAAuB;QAC/B,YAAY,EAAE,OAAO;QACrB,gBAAgB,EAAE,EAAE;QACpB,GAAG,OAAO;QACV,yBAAyB,EAAE,uDAAuD;QAClF,8BAA8B,EAAE,2CAA2C;KAC5E,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './doge_chains.ts';
2
+ export * from './network_params.ts';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../utxo/doge/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./doge_chains.js";
2
+ export * from "./network_params.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../utxo/doge/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { UtxoNetworkParams } from '../utxo_network_params.ts';
2
+ export declare const DOGECOIN_MAINNET_PARAMS: UtxoNetworkParams;
3
+ export declare const DOGECOIN_TESTNET_PARAMS: UtxoNetworkParams | null;
4
+ //# sourceMappingURL=network_params.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network_params.d.ts","sourceRoot":"","sources":["../../../utxo/doge/network_params.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,iBAAiB,EAClB,MAAM,2BAA2B,CAAC;AAMnC,eAAO,MAAM,uBAAuB,EAAE,iBAOrC,CAAC;AAGF,eAAO,MAAM,uBAAuB,EAAE,iBAAiB,GAAG,IASlD,CAAC"}
@@ -0,0 +1,24 @@
1
+ import coininfo from 'coininfo';
2
+ import { BIP32_PURPOSE_P2PKH, Slip44, } from "../utxo_network_params.js";
3
+ const DOGE_PURPOSES = new Set([BIP32_PURPOSE_P2PKH]);
4
+ const DOGE_DUST_SATS = 1_000_000;
5
+ export const DOGECOIN_MAINNET_PARAMS = {
6
+ name: 'mainnet',
7
+ slip44CoinId: Slip44.DOGE,
8
+ networkInfo: coininfo.dogecoin.main.toBitcoinJS(),
9
+ supportedDerivationPurposes: DOGE_PURPOSES,
10
+ dustValueSats: DOGE_DUST_SATS,
11
+ walletAddressRegex: /^D[1-9A-HJ-NP-Za-km-z]{25,34}$/,
12
+ };
13
+ const dogecoinTest = coininfo.dogecoin.test;
14
+ export const DOGECOIN_TESTNET_PARAMS = dogecoinTest
15
+ ? {
16
+ name: 'testnet',
17
+ slip44CoinId: Slip44.Testnet,
18
+ networkInfo: dogecoinTest.toBitcoinJS(),
19
+ supportedDerivationPurposes: DOGE_PURPOSES,
20
+ dustValueSats: DOGE_DUST_SATS,
21
+ walletAddressRegex: /^[mn][1-9A-HJ-NP-Za-km-z]{25,34}$/,
22
+ }
23
+ : null;
24
+ //# sourceMappingURL=network_params.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network_params.js","sourceRoot":"","sources":["../../../utxo/doge/network_params.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,OAAO,EACL,mBAAmB,EACnB,MAAM,GAEP,MAAM,2BAA2B,CAAC;AAEnC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAErD,MAAM,cAAc,GAAG,SAAS,CAAC;AAEjC,MAAM,CAAC,MAAM,uBAAuB,GAAsB;IACxD,IAAI,EAAE,SAAS;IACf,YAAY,EAAE,MAAM,CAAC,IAAI;IACzB,WAAW,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE;IACjD,2BAA2B,EAAE,aAAa;IAC1C,aAAa,EAAE,cAAc;IAC7B,kBAAkB,EAAE,gCAAgC;CACrD,CAAC;AAEF,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC5C,MAAM,CAAC,MAAM,uBAAuB,GAA6B,YAAY;IAC3E,CAAC,CAAC;QACE,IAAI,EAAE,SAAS;QACf,YAAY,EAAE,MAAM,CAAC,OAAO;QAC5B,WAAW,EAAE,YAAY,CAAC,WAAW,EAAE;QACvC,2BAA2B,EAAE,aAAa;QAC1C,aAAa,EAAE,cAAc;QAC7B,kBAAkB,EAAE,mCAAmC;KACxD;IACH,CAAC,CAAC,IAAI,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function ensureEccInitialized(): void;
2
+ //# sourceMappingURL=ecc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ecc.d.ts","sourceRoot":"","sources":["../../utxo/ecc.ts"],"names":[],"mappings":"AAKA,wBAAgB,oBAAoB,IAAI,IAAI,CAI3C"}
@@ -0,0 +1,11 @@
1
+ import { initEccLib } from 'bitcoinjs-lib';
2
+ import * as ecc from 'tiny-secp256k1';
3
+ let initialized = false;
4
+ export function ensureEccInitialized() {
5
+ if (initialized)
6
+ return;
7
+ initEccLib(ecc);
8
+ initialized = true;
9
+ }
10
+ ensureEccInitialized();
11
+ //# sourceMappingURL=ecc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ecc.js","sourceRoot":"","sources":["../../utxo/ecc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AAEtC,IAAI,WAAW,GAAG,KAAK,CAAC;AAExB,MAAM,UAAU,oBAAoB;IAClC,IAAI,WAAW;QAAE,OAAO;IACxB,UAAU,CAAC,GAAG,CAAC,CAAC;IAChB,WAAW,GAAG,IAAI,CAAC;AACrB,CAAC;AAED,oBAAoB,EAAE,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { UtxoScriptType } from './script.ts';
2
+ export declare const TX_OVERHEAD_VBYTES = 10.5;
3
+ export declare const INPUT_VBYTES: Record<UtxoScriptType, number>;
4
+ export declare const OUTPUT_VBYTES: Record<UtxoScriptType, number>;
5
+ export declare function inputVBytes(type: UtxoScriptType): number;
6
+ export declare function outputVBytes(type: UtxoScriptType): number;
7
+ export declare function opReturnOutputVBytes(dataLengthBytes: number): number;
8
+ export declare function estimateTxVBytes(inputTypes: readonly UtxoScriptType[], outputTypes: readonly UtxoScriptType[], opReturnDataLengths?: readonly number[]): number;
9
+ export declare function feeForVBytes(vBytes: number, satsPerVByte: number): number;
10
+ export declare function effectiveValueSats(utxoValueSats: number, inputType: UtxoScriptType, satsPerVByte: number): number;
11
+ export declare function costOfChangeSats(changeOutputType: UtxoScriptType, shortTermFeeRateSatsPerVByte: number, longTermFeeRateSatsPerVByte: number): number;
12
+ //# sourceMappingURL=fee.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fee.d.ts","sourceRoot":"","sources":["../../utxo/fee.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAmB,MAAM,aAAa,CAAC;AAE9D,eAAO,MAAM,kBAAkB,OAAO,CAAC;AAEvC,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAQvD,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAQxD,CAAC;AAEF,wBAAgB,WAAW,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAExD;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAEzD;AAED,wBAAgB,oBAAoB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAEpE;AAED,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,SAAS,cAAc,EAAE,EACrC,WAAW,EAAE,SAAS,cAAc,EAAE,EACtC,mBAAmB,GAAE,SAAS,MAAM,EAAO,GAC1C,MAAM,CAMR;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAEzE;AAED,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAEjH;AAED,wBAAgB,gBAAgB,CAC9B,gBAAgB,EAAE,cAAc,EAChC,4BAA4B,EAAE,MAAM,EACpC,2BAA2B,EAAE,MAAM,GAClC,MAAM,CAIR"}
@@ -0,0 +1,51 @@
1
+ import { UtxoScriptTypes } from "./script.js";
2
+ export const TX_OVERHEAD_VBYTES = 10.5;
3
+ export const INPUT_VBYTES = {
4
+ [UtxoScriptTypes.P2PKH]: 148,
5
+ [UtxoScriptTypes.P2SH]: 91,
6
+ [UtxoScriptTypes.P2WPKH]: 68,
7
+ [UtxoScriptTypes.P2WSH]: 105,
8
+ [UtxoScriptTypes.P2TR]: 57.5,
9
+ [UtxoScriptTypes.OpReturn]: 0,
10
+ [UtxoScriptTypes.NonStandard]: 0,
11
+ };
12
+ export const OUTPUT_VBYTES = {
13
+ [UtxoScriptTypes.P2PKH]: 34,
14
+ [UtxoScriptTypes.P2SH]: 32,
15
+ [UtxoScriptTypes.P2WPKH]: 31,
16
+ [UtxoScriptTypes.P2WSH]: 43,
17
+ [UtxoScriptTypes.P2TR]: 43,
18
+ [UtxoScriptTypes.OpReturn]: 0,
19
+ [UtxoScriptTypes.NonStandard]: 0,
20
+ };
21
+ export function inputVBytes(type) {
22
+ return INPUT_VBYTES[type];
23
+ }
24
+ export function outputVBytes(type) {
25
+ return OUTPUT_VBYTES[type];
26
+ }
27
+ export function opReturnOutputVBytes(dataLengthBytes) {
28
+ return Math.ceil(8 + 1 + 1 + 1 + (dataLengthBytes < 76 ? 0 : 1) + dataLengthBytes);
29
+ }
30
+ export function estimateTxVBytes(inputTypes, outputTypes, opReturnDataLengths = []) {
31
+ let total = TX_OVERHEAD_VBYTES;
32
+ for (const t of inputTypes)
33
+ total += inputVBytes(t);
34
+ for (const t of outputTypes)
35
+ total += outputVBytes(t);
36
+ for (const len of opReturnDataLengths)
37
+ total += opReturnOutputVBytes(len);
38
+ return Math.ceil(total);
39
+ }
40
+ export function feeForVBytes(vBytes, satsPerVByte) {
41
+ return Math.ceil(vBytes * satsPerVByte);
42
+ }
43
+ export function effectiveValueSats(utxoValueSats, inputType, satsPerVByte) {
44
+ return utxoValueSats - Math.ceil(inputVBytes(inputType) * satsPerVByte);
45
+ }
46
+ export function costOfChangeSats(changeOutputType, shortTermFeeRateSatsPerVByte, longTermFeeRateSatsPerVByte) {
47
+ const create = outputVBytes(changeOutputType) * shortTermFeeRateSatsPerVByte;
48
+ const spend = inputVBytes(changeOutputType) * longTermFeeRateSatsPerVByte;
49
+ return Math.ceil(create + spend);
50
+ }
51
+ //# sourceMappingURL=fee.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fee.js","sourceRoot":"","sources":["../../utxo/fee.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9D,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAEvC,MAAM,CAAC,MAAM,YAAY,GAAmC;IAC1D,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,GAAG;IAC5B,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE;IAC1B,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,EAAE;IAC5B,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,GAAG;IAC5B,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI;IAC5B,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC7B,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC;CACjC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAmC;IAC3D,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,EAAE;IAC3B,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE;IAC1B,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,EAAE;IAC5B,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,EAAE;IAC3B,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE;IAC1B,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC7B,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC;CACjC,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,IAAoB;IAC9C,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAoB;IAC/C,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,eAAuB;IAC1D,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC;AACrF,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,UAAqC,EACrC,WAAsC,EACtC,sBAAyC,EAAE;IAE3C,IAAI,KAAK,GAAG,kBAAkB,CAAC;IAC/B,KAAK,MAAM,CAAC,IAAI,UAAU;QAAE,KAAK,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;IACpD,KAAK,MAAM,CAAC,IAAI,WAAW;QAAE,KAAK,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;IACtD,KAAK,MAAM,GAAG,IAAI,mBAAmB;QAAE,KAAK,IAAI,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAC1E,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAc,EAAE,YAAoB;IAC/D,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,aAAqB,EAAE,SAAyB,EAAE,YAAoB;IACvG,OAAO,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,YAAY,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,gBAAgC,EAChC,4BAAoC,EACpC,2BAAmC;IAEnC,MAAM,MAAM,GAAG,YAAY,CAAC,gBAAgB,CAAC,GAAG,4BAA4B,CAAC;IAC7E,MAAM,KAAK,GAAG,WAAW,CAAC,gBAAgB,CAAC,GAAG,2BAA2B,CAAC;IAC1E,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;AACnC,CAAC"}
@@ -0,0 +1,20 @@
1
+ export * from './coin_selection.ts';
2
+ export * from './ecc.ts';
3
+ export * from './fee.ts';
4
+ export * from './script.ts';
5
+ export * from './tools/broadcaster.ts';
6
+ export * from './tools/chain_tip_provider.ts';
7
+ export * from './tools/fee_estimator.ts';
8
+ export * from './tools/raw_transaction_provider.ts';
9
+ export * from './tools/utxo_provider.ts';
10
+ export * from './unsigned_utxo_transaction.ts';
11
+ export * from './utxo.ts';
12
+ export * from './utxo_chain.ts';
13
+ export * from './utxo_chains.ts';
14
+ export * from './utxo_gas_pricing.ts';
15
+ export * from './utxo_network_params.ts';
16
+ export * from './utxo_transaction_status.ts';
17
+ export * from './btc/index.ts';
18
+ export * from './ltc/index.ts';
19
+ export * from './doge/index.ts';
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../utxo/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,qCAAqC,CAAC;AACpD,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,20 @@
1
+ export * from "./coin_selection.js";
2
+ export * from "./ecc.js";
3
+ export * from "./fee.js";
4
+ export * from "./script.js";
5
+ export * from "./tools/broadcaster.js";
6
+ export * from "./tools/chain_tip_provider.js";
7
+ export * from "./tools/fee_estimator.js";
8
+ export * from "./tools/raw_transaction_provider.js";
9
+ export * from "./tools/utxo_provider.js";
10
+ export * from "./unsigned_utxo_transaction.js";
11
+ export * from "./utxo.js";
12
+ export * from "./utxo_chain.js";
13
+ export * from "./utxo_chains.js";
14
+ export * from "./utxo_gas_pricing.js";
15
+ export * from "./utxo_network_params.js";
16
+ export * from "./utxo_transaction_status.js";
17
+ export * from "./btc/index.js";
18
+ export * from "./ltc/index.js";
19
+ export * from "./doge/index.js";
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../utxo/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,qCAAqC,CAAC;AACpD,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './ltc_chains.ts';
2
+ export * from './network_params.ts';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../utxo/ltc/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./ltc_chains.js";
2
+ export * from "./network_params.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../utxo/ltc/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { UtxoBroadcaster } from '../tools/broadcaster.ts';
2
+ import { UtxoChainTipProvider } from '../tools/chain_tip_provider.ts';
3
+ import { UtxoFeeEstimator } from '../tools/fee_estimator.ts';
4
+ import { UtxoRawTransactionProvider } from '../tools/raw_transaction_provider.ts';
5
+ import { UtxoProvider } from '../tools/utxo_provider.ts';
6
+ import { UtxoChain } from '../utxo_chain.ts';
7
+ export interface LitecoinChainFactoryOptions {
8
+ chainId: number;
9
+ utxoProvider: UtxoProvider;
10
+ rawTxProvider: UtxoRawTransactionProvider;
11
+ feeEstimator: UtxoFeeEstimator;
12
+ broadcaster: UtxoBroadcaster;
13
+ chainTipProvider: UtxoChainTipProvider;
14
+ }
15
+ export declare function litecoinMainnetChain(options: LitecoinChainFactoryOptions): UtxoChain;
16
+ export declare function litecoinTestnetChain(options: LitecoinChainFactoryOptions): UtxoChain;
17
+ //# sourceMappingURL=ltc_chains.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ltc_chains.d.ts","sourceRoot":"","sources":["../../../utxo/ltc/ltc_chains.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAG7C,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,YAAY,CAAC;IAC3B,aAAa,EAAE,0BAA0B,CAAC;IAC1C,YAAY,EAAE,gBAAgB,CAAC;IAC/B,WAAW,EAAE,eAAe,CAAC;IAC7B,gBAAgB,EAAE,oBAAoB,CAAC;CACxC;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,2BAA2B,GAAG,SAAS,CAUpF;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,2BAA2B,GAAG,SAAS,CAapF"}
@@ -0,0 +1,28 @@
1
+ import { UtxoChain } from "../utxo_chain.js";
2
+ import { LITECOIN_MAINNET_PARAMS, LITECOIN_TESTNET_PARAMS } from "./network_params.js";
3
+ export function litecoinMainnetChain(options) {
4
+ return new UtxoChain({
5
+ name: 'Litecoin',
6
+ params: LITECOIN_MAINNET_PARAMS,
7
+ nativeSymbol: 'LTC',
8
+ blockTimeSeconds: 150,
9
+ ...options,
10
+ walletExplorerUrlTemplate: 'https://blockchair.com/litecoin/address/{wallet_address}',
11
+ transactionExplorerUrlTemplate: 'https://blockchair.com/litecoin/transaction/{tx_hash}',
12
+ });
13
+ }
14
+ export function litecoinTestnetChain(options) {
15
+ if (LITECOIN_TESTNET_PARAMS === null) {
16
+ throw new Error('Litecoin testnet params unavailable (coininfo.litecoin.test missing)');
17
+ }
18
+ return new UtxoChain({
19
+ name: 'Litecoin Testnet',
20
+ params: LITECOIN_TESTNET_PARAMS,
21
+ nativeSymbol: 'tLTC',
22
+ blockTimeSeconds: 150,
23
+ ...options,
24
+ walletExplorerUrlTemplate: 'https://blockexplorer.one/litecoin/testnet/address/{wallet_address}',
25
+ transactionExplorerUrlTemplate: 'https://blockexplorer.one/litecoin/testnet/tx/{tx_hash}',
26
+ });
27
+ }
28
+ //# sourceMappingURL=ltc_chains.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ltc_chains.js","sourceRoot":"","sources":["../../../utxo/ltc/ltc_chains.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAWvF,MAAM,UAAU,oBAAoB,CAAC,OAAoC;IACvE,OAAO,IAAI,SAAS,CAAC;QACnB,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,uBAAuB;QAC/B,YAAY,EAAE,KAAK;QACnB,gBAAgB,EAAE,GAAG;QACrB,GAAG,OAAO;QACV,yBAAyB,EAAE,0DAA0D;QACrF,8BAA8B,EAAE,uDAAuD;KACxF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,OAAoC;IACvE,IAAI,uBAAuB,KAAK,IAAI,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;IAC1F,CAAC;IACD,OAAO,IAAI,SAAS,CAAC;QACnB,IAAI,EAAE,kBAAkB;QACxB,MAAM,EAAE,uBAAuB;QAC/B,YAAY,EAAE,MAAM;QACpB,gBAAgB,EAAE,GAAG;QACrB,GAAG,OAAO;QACV,yBAAyB,EAAE,qEAAqE;QAChG,8BAA8B,EAAE,yDAAyD;KAC1F,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { UtxoNetworkParams } from '../utxo_network_params.ts';
2
+ export declare const LITECOIN_MAINNET_PARAMS: UtxoNetworkParams;
3
+ export declare const LITECOIN_TESTNET_PARAMS: UtxoNetworkParams | null;
4
+ //# sourceMappingURL=network_params.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network_params.d.ts","sourceRoot":"","sources":["../../../utxo/ltc/network_params.ts"],"names":[],"mappings":"AAEA,OAAO,EAML,iBAAiB,EAClB,MAAM,2BAA2B,CAAC;AAQnC,eAAO,MAAM,uBAAuB,EAAE,iBAOrC,CAAC;AAGF,eAAO,MAAM,uBAAuB,EAAE,iBAAiB,GAAG,IASlD,CAAC"}
@@ -0,0 +1,27 @@
1
+ import coininfo from 'coininfo';
2
+ import { BIP32_PURPOSE_P2PKH, BIP32_PURPOSE_P2SH_P2WPKH, BIP32_PURPOSE_P2WPKH, DEFAULT_DUST_SATS, Slip44, } from "../utxo_network_params.js";
3
+ const LTC_PURPOSES = new Set([
4
+ BIP32_PURPOSE_P2PKH,
5
+ BIP32_PURPOSE_P2SH_P2WPKH,
6
+ BIP32_PURPOSE_P2WPKH,
7
+ ]);
8
+ export const LITECOIN_MAINNET_PARAMS = {
9
+ name: 'mainnet',
10
+ slip44CoinId: Slip44.LTC,
11
+ networkInfo: coininfo.litecoin.main.toBitcoinJS(),
12
+ supportedDerivationPurposes: LTC_PURPOSES,
13
+ dustValueSats: DEFAULT_DUST_SATS,
14
+ walletAddressRegex: /^(ltc1[qp][ac-hj-np-z02-9]{11,71}|[LM3][a-km-zA-HJ-NP-Z1-9]{25,34})$/,
15
+ };
16
+ const litecoinTest = coininfo.litecoin.test;
17
+ export const LITECOIN_TESTNET_PARAMS = litecoinTest
18
+ ? {
19
+ name: 'testnet',
20
+ slip44CoinId: Slip44.Testnet,
21
+ networkInfo: litecoinTest.toBitcoinJS(),
22
+ supportedDerivationPurposes: LTC_PURPOSES,
23
+ dustValueSats: DEFAULT_DUST_SATS,
24
+ walletAddressRegex: /^(tltc1[qp][ac-hj-np-z02-9]{11,71}|[mn2][a-km-zA-HJ-NP-Z1-9]{25,34})$/,
25
+ }
26
+ : null;
27
+ //# sourceMappingURL=network_params.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network_params.js","sourceRoot":"","sources":["../../../utxo/ltc/network_params.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,oBAAoB,EACpB,iBAAiB,EACjB,MAAM,GAEP,MAAM,2BAA2B,CAAC;AAEnC,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC;IAC3B,mBAAmB;IACnB,yBAAyB;IACzB,oBAAoB;CACrB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAsB;IACxD,IAAI,EAAE,SAAS;IACf,YAAY,EAAE,MAAM,CAAC,GAAG;IACxB,WAAW,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE;IACjD,2BAA2B,EAAE,YAAY;IACzC,aAAa,EAAE,iBAAiB;IAChC,kBAAkB,EAAE,sEAAsE;CAC3F,CAAC;AAEF,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC5C,MAAM,CAAC,MAAM,uBAAuB,GAA6B,YAAY;IAC3E,CAAC,CAAC;QACE,IAAI,EAAE,SAAS;QACf,YAAY,EAAE,MAAM,CAAC,OAAO;QAC5B,WAAW,EAAE,YAAY,CAAC,WAAW,EAAE;QACvC,2BAA2B,EAAE,YAAY;QACzC,aAAa,EAAE,iBAAiB;QAChC,kBAAkB,EAAE,uEAAuE;KAC5F;IACH,CAAC,CAAC,IAAI,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { networks } from 'bitcoinjs-lib';
2
+ export declare const UtxoScriptTypes: {
3
+ readonly P2PKH: "p2pkh";
4
+ readonly P2SH: "p2sh";
5
+ readonly P2WPKH: "p2wpkh";
6
+ readonly P2WSH: "p2wsh";
7
+ readonly P2TR: "p2tr";
8
+ readonly OpReturn: "op_return";
9
+ readonly NonStandard: "non_standard";
10
+ };
11
+ export type UtxoScriptType = (typeof UtxoScriptTypes)[keyof typeof UtxoScriptTypes];
12
+ export declare function detectScriptType(script: Uint8Array): UtxoScriptType;
13
+ export declare function addressToScriptPubKey(addressStr: string, network: networks.Network): Uint8Array;
14
+ export declare function scriptTypeForAddress(addressStr: string, network: networks.Network): UtxoScriptType;
15
+ export declare function buildOpReturnScript(data: Uint8Array): Uint8Array;
16
+ //# sourceMappingURL=script.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"script.d.ts","sourceRoot":"","sources":["../../utxo/script.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,QAAQ,EAAgC,MAAM,eAAe,CAAC;AAI9F,eAAO,MAAM,eAAe;;;;;;;;CAQlB,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,OAAO,eAAe,CAAC,CAAC;AAEpF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,cAAc,CA4BnE;AAED,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,GAAG,UAAU,CAE/F;AAED,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,GAAG,cAAc,CAGlG;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,CAOhE"}