tapass 0.1.0 → 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 (502) hide show
  1. package/README.md +2792 -3
  2. package/dist/index.d.ts +21 -0
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/tapd_methods/address/create_asset_address.d.ts +2 -26
  5. package/dist/tapd_methods/address/create_asset_address.d.ts.map +1 -1
  6. package/dist/tapd_methods/address/create_asset_address.js +5 -37
  7. package/dist/tapd_methods/address/create_asset_address.js.map +1 -1
  8. package/dist/tapd_methods/address/decode_asset_address.d.ts +38 -0
  9. package/dist/tapd_methods/address/decode_asset_address.d.ts.map +1 -0
  10. package/dist/tapd_methods/address/decode_asset_address.js +81 -0
  11. package/dist/tapd_methods/address/decode_asset_address.js.map +1 -0
  12. package/dist/tapd_methods/address/get_asset_addresses.d.ts +54 -0
  13. package/dist/tapd_methods/address/get_asset_addresses.d.ts.map +1 -0
  14. package/dist/tapd_methods/address/get_asset_addresses.js +153 -0
  15. package/dist/tapd_methods/address/get_asset_addresses.js.map +1 -0
  16. package/dist/tapd_methods/address/get_asset_receives.d.ts +72 -0
  17. package/dist/tapd_methods/address/get_asset_receives.d.ts.map +1 -0
  18. package/dist/tapd_methods/address/get_asset_receives.js +191 -0
  19. package/dist/tapd_methods/address/get_asset_receives.js.map +1 -0
  20. package/dist/tapd_methods/address/index.d.ts +11 -0
  21. package/dist/tapd_methods/address/index.d.ts.map +1 -1
  22. package/dist/tapd_methods/address/index.js +4 -0
  23. package/dist/tapd_methods/address/index.js.map +1 -1
  24. package/dist/tapd_methods/address/subscribe_to_asset_receives.d.ts +53 -0
  25. package/dist/tapd_methods/address/subscribe_to_asset_receives.d.ts.map +1 -0
  26. package/dist/tapd_methods/address/subscribe_to_asset_receives.js +93 -0
  27. package/dist/tapd_methods/address/subscribe_to_asset_receives.js.map +1 -0
  28. package/dist/tapd_methods/assets/get_asset_balances.d.ts +64 -0
  29. package/dist/tapd_methods/assets/get_asset_balances.d.ts.map +1 -0
  30. package/dist/tapd_methods/assets/get_asset_balances.js +177 -0
  31. package/dist/tapd_methods/assets/get_asset_balances.js.map +1 -0
  32. package/dist/tapd_methods/assets/get_asset_burns.d.ts +40 -0
  33. package/dist/tapd_methods/assets/get_asset_burns.d.ts.map +1 -0
  34. package/dist/tapd_methods/assets/get_asset_burns.js +92 -0
  35. package/dist/tapd_methods/assets/get_asset_burns.js.map +1 -0
  36. package/dist/tapd_methods/assets/get_asset_groups.d.ts +35 -0
  37. package/dist/tapd_methods/assets/get_asset_groups.d.ts.map +1 -0
  38. package/dist/tapd_methods/assets/get_asset_groups.js +78 -0
  39. package/dist/tapd_methods/assets/get_asset_groups.js.map +1 -0
  40. package/dist/tapd_methods/assets/get_asset_metadata.d.ts +40 -0
  41. package/dist/tapd_methods/assets/get_asset_metadata.d.ts.map +1 -0
  42. package/dist/tapd_methods/assets/get_asset_metadata.js +99 -0
  43. package/dist/tapd_methods/assets/get_asset_metadata.js.map +1 -0
  44. package/dist/tapd_methods/assets/get_asset_utxos.d.ts +83 -0
  45. package/dist/tapd_methods/assets/get_asset_utxos.d.ts.map +1 -0
  46. package/dist/tapd_methods/assets/get_asset_utxos.js +135 -0
  47. package/dist/tapd_methods/assets/get_asset_utxos.js.map +1 -0
  48. package/dist/tapd_methods/assets/get_assets.d.ts +113 -0
  49. package/dist/tapd_methods/assets/get_assets.d.ts.map +1 -0
  50. package/dist/tapd_methods/assets/get_assets.js +243 -0
  51. package/dist/tapd_methods/assets/get_assets.js.map +1 -0
  52. package/dist/tapd_methods/assets/index.d.ts +19 -0
  53. package/dist/tapd_methods/assets/index.d.ts.map +1 -0
  54. package/dist/tapd_methods/assets/index.js +7 -0
  55. package/dist/tapd_methods/assets/index.js.map +1 -0
  56. package/dist/tapd_methods/channels/asset_payment_args_error.d.ts +18 -0
  57. package/dist/tapd_methods/channels/asset_payment_args_error.d.ts.map +1 -0
  58. package/dist/tapd_methods/channels/asset_payment_args_error.js +59 -0
  59. package/dist/tapd_methods/channels/asset_payment_args_error.js.map +1 -0
  60. package/dist/tapd_methods/channels/asset_payment_request.d.ts +68 -0
  61. package/dist/tapd_methods/channels/asset_payment_request.d.ts.map +1 -0
  62. package/dist/tapd_methods/channels/asset_payment_request.js +54 -0
  63. package/dist/tapd_methods/channels/asset_payment_request.js.map +1 -0
  64. package/dist/tapd_methods/channels/create_asset_invoice.d.ts +134 -0
  65. package/dist/tapd_methods/channels/create_asset_invoice.d.ts.map +1 -0
  66. package/dist/tapd_methods/channels/create_asset_invoice.js +264 -0
  67. package/dist/tapd_methods/channels/create_asset_invoice.js.map +1 -0
  68. package/dist/tapd_methods/channels/decode_asset_payment_request.d.ts +72 -0
  69. package/dist/tapd_methods/channels/decode_asset_payment_request.d.ts.map +1 -0
  70. package/dist/tapd_methods/channels/decode_asset_payment_request.js +143 -0
  71. package/dist/tapd_methods/channels/decode_asset_payment_request.js.map +1 -0
  72. package/dist/tapd_methods/channels/emit_asset_payment.d.ts +30 -0
  73. package/dist/tapd_methods/channels/emit_asset_payment.d.ts.map +1 -0
  74. package/dist/tapd_methods/channels/emit_asset_payment.js +59 -0
  75. package/dist/tapd_methods/channels/emit_asset_payment.js.map +1 -0
  76. package/dist/tapd_methods/channels/encode_asset_custom_records.d.ts +51 -0
  77. package/dist/tapd_methods/channels/encode_asset_custom_records.d.ts.map +1 -0
  78. package/dist/tapd_methods/channels/encode_asset_custom_records.js +127 -0
  79. package/dist/tapd_methods/channels/encode_asset_custom_records.js.map +1 -0
  80. package/dist/tapd_methods/channels/get_asset_invoices.d.ts +84 -0
  81. package/dist/tapd_methods/channels/get_asset_invoices.d.ts.map +1 -0
  82. package/dist/tapd_methods/channels/get_asset_invoices.js +193 -0
  83. package/dist/tapd_methods/channels/get_asset_invoices.js.map +1 -0
  84. package/dist/tapd_methods/channels/get_asset_payments.d.ts +69 -0
  85. package/dist/tapd_methods/channels/get_asset_payments.d.ts.map +1 -0
  86. package/dist/tapd_methods/channels/get_asset_payments.js +180 -0
  87. package/dist/tapd_methods/channels/get_asset_payments.js.map +1 -0
  88. package/dist/tapd_methods/channels/index.d.ts +31 -0
  89. package/dist/tapd_methods/channels/index.d.ts.map +1 -0
  90. package/dist/tapd_methods/channels/index.js +12 -0
  91. package/dist/tapd_methods/channels/index.js.map +1 -0
  92. package/dist/tapd_methods/channels/open_asset_channel.d.ts +53 -0
  93. package/dist/tapd_methods/channels/open_asset_channel.d.ts.map +1 -0
  94. package/dist/tapd_methods/channels/open_asset_channel.js +128 -0
  95. package/dist/tapd_methods/channels/open_asset_channel.js.map +1 -0
  96. package/dist/tapd_methods/channels/pay_asset_invoice.d.ts +95 -0
  97. package/dist/tapd_methods/channels/pay_asset_invoice.d.ts.map +1 -0
  98. package/dist/tapd_methods/channels/pay_asset_invoice.js +132 -0
  99. package/dist/tapd_methods/channels/pay_asset_invoice.js.map +1 -0
  100. package/dist/tapd_methods/channels/send_asset_keysend.d.ts +84 -0
  101. package/dist/tapd_methods/channels/send_asset_keysend.d.ts.map +1 -0
  102. package/dist/tapd_methods/channels/send_asset_keysend.js +144 -0
  103. package/dist/tapd_methods/channels/send_asset_keysend.js.map +1 -0
  104. package/dist/tapd_methods/channels/send_asset_payment.d.ts +33 -0
  105. package/dist/tapd_methods/channels/send_asset_payment.d.ts.map +1 -0
  106. package/dist/tapd_methods/channels/send_asset_payment.js +114 -0
  107. package/dist/tapd_methods/channels/send_asset_payment.js.map +1 -0
  108. package/dist/tapd_methods/channels/subscribe_to_asset_invoices.d.ts +51 -0
  109. package/dist/tapd_methods/channels/subscribe_to_asset_invoices.d.ts.map +1 -0
  110. package/dist/tapd_methods/channels/subscribe_to_asset_invoices.js +104 -0
  111. package/dist/tapd_methods/channels/subscribe_to_asset_invoices.js.map +1 -0
  112. package/dist/tapd_methods/channels/subscribe_to_asset_payments.d.ts +59 -0
  113. package/dist/tapd_methods/channels/subscribe_to_asset_payments.d.ts.map +1 -0
  114. package/dist/tapd_methods/channels/subscribe_to_asset_payments.js +104 -0
  115. package/dist/tapd_methods/channels/subscribe_to_asset_payments.js.map +1 -0
  116. package/dist/tapd_methods/channels/subscribe_to_past_asset_payment.d.ts +62 -0
  117. package/dist/tapd_methods/channels/subscribe_to_past_asset_payment.d.ts.map +1 -0
  118. package/dist/tapd_methods/channels/subscribe_to_past_asset_payment.js +106 -0
  119. package/dist/tapd_methods/channels/subscribe_to_past_asset_payment.js.map +1 -0
  120. package/dist/tapd_methods/daemon/create_tapd_macaroon.d.ts +45 -0
  121. package/dist/tapd_methods/daemon/create_tapd_macaroon.d.ts.map +1 -0
  122. package/dist/tapd_methods/daemon/create_tapd_macaroon.js +99 -0
  123. package/dist/tapd_methods/daemon/create_tapd_macaroon.js.map +1 -0
  124. package/dist/tapd_methods/daemon/index.d.ts +8 -0
  125. package/dist/tapd_methods/daemon/index.d.ts.map +1 -0
  126. package/dist/tapd_methods/daemon/index.js +4 -0
  127. package/dist/tapd_methods/daemon/index.js.map +1 -0
  128. package/dist/tapd_methods/daemon/set_tapd_debug_level.d.ts +23 -0
  129. package/dist/tapd_methods/daemon/set_tapd_debug_level.d.ts.map +1 -0
  130. package/dist/tapd_methods/daemon/set_tapd_debug_level.js +60 -0
  131. package/dist/tapd_methods/daemon/set_tapd_debug_level.js.map +1 -0
  132. package/dist/tapd_methods/daemon/stop_tapd.d.ts +16 -0
  133. package/dist/tapd_methods/daemon/stop_tapd.d.ts.map +1 -0
  134. package/dist/tapd_methods/daemon/stop_tapd.js +50 -0
  135. package/dist/tapd_methods/daemon/stop_tapd.js.map +1 -0
  136. package/dist/tapd_methods/index.d.ts +8 -0
  137. package/dist/tapd_methods/index.d.ts.map +1 -1
  138. package/dist/tapd_methods/index.js +8 -0
  139. package/dist/tapd_methods/index.js.map +1 -1
  140. package/dist/tapd_methods/info/get_tapd_info.d.ts +44 -0
  141. package/dist/tapd_methods/info/get_tapd_info.d.ts.map +1 -0
  142. package/dist/tapd_methods/info/get_tapd_info.js +80 -0
  143. package/dist/tapd_methods/info/get_tapd_info.js.map +1 -0
  144. package/dist/tapd_methods/info/index.d.ts +4 -0
  145. package/dist/tapd_methods/info/index.d.ts.map +1 -0
  146. package/dist/tapd_methods/info/index.js +2 -0
  147. package/dist/tapd_methods/info/index.js.map +1 -0
  148. package/dist/tapd_methods/mint/add_asset_to_mint_batch.d.ts +124 -0
  149. package/dist/tapd_methods/mint/add_asset_to_mint_batch.d.ts.map +1 -0
  150. package/dist/tapd_methods/mint/add_asset_to_mint_batch.js +283 -0
  151. package/dist/tapd_methods/mint/add_asset_to_mint_batch.js.map +1 -0
  152. package/dist/tapd_methods/mint/cancel_mint_batch.d.ts +23 -0
  153. package/dist/tapd_methods/mint/cancel_mint_batch.d.ts.map +1 -0
  154. package/dist/tapd_methods/mint/cancel_mint_batch.js +62 -0
  155. package/dist/tapd_methods/mint/cancel_mint_batch.js.map +1 -0
  156. package/dist/tapd_methods/mint/finalize_mint_batch.d.ts +64 -0
  157. package/dist/tapd_methods/mint/finalize_mint_batch.d.ts.map +1 -0
  158. package/dist/tapd_methods/mint/finalize_mint_batch.js +130 -0
  159. package/dist/tapd_methods/mint/finalize_mint_batch.js.map +1 -0
  160. package/dist/tapd_methods/mint/fund_mint_batch.d.ts +82 -0
  161. package/dist/tapd_methods/mint/fund_mint_batch.d.ts.map +1 -0
  162. package/dist/tapd_methods/mint/fund_mint_batch.js +145 -0
  163. package/dist/tapd_methods/mint/fund_mint_batch.js.map +1 -0
  164. package/dist/tapd_methods/mint/get_mint_batches.d.ts +72 -0
  165. package/dist/tapd_methods/mint/get_mint_batches.d.ts.map +1 -0
  166. package/dist/tapd_methods/mint/get_mint_batches.js +123 -0
  167. package/dist/tapd_methods/mint/get_mint_batches.js.map +1 -0
  168. package/dist/tapd_methods/mint/index.d.ts +21 -0
  169. package/dist/tapd_methods/mint/index.d.ts.map +1 -0
  170. package/dist/tapd_methods/mint/index.js +8 -0
  171. package/dist/tapd_methods/mint/index.js.map +1 -0
  172. package/dist/tapd_methods/mint/seal_mint_batch.d.ts +64 -0
  173. package/dist/tapd_methods/mint/seal_mint_batch.d.ts.map +1 -0
  174. package/dist/tapd_methods/mint/seal_mint_batch.js +135 -0
  175. package/dist/tapd_methods/mint/seal_mint_batch.js.map +1 -0
  176. package/dist/tapd_methods/mint/subscribe_to_mint_events.d.ts +52 -0
  177. package/dist/tapd_methods/mint/subscribe_to_mint_events.d.ts.map +1 -0
  178. package/dist/tapd_methods/mint/subscribe_to_mint_events.js +91 -0
  179. package/dist/tapd_methods/mint/subscribe_to_mint_events.js.map +1 -0
  180. package/dist/tapd_methods/proofs/decode_asset_proof.d.ts +61 -0
  181. package/dist/tapd_methods/proofs/decode_asset_proof.d.ts.map +1 -0
  182. package/dist/tapd_methods/proofs/decode_asset_proof.js +129 -0
  183. package/dist/tapd_methods/proofs/decode_asset_proof.js.map +1 -0
  184. package/dist/tapd_methods/proofs/export_asset_proof.d.ts +39 -0
  185. package/dist/tapd_methods/proofs/export_asset_proof.d.ts.map +1 -0
  186. package/dist/tapd_methods/proofs/export_asset_proof.js +113 -0
  187. package/dist/tapd_methods/proofs/export_asset_proof.js.map +1 -0
  188. package/dist/tapd_methods/proofs/index.d.ts +13 -0
  189. package/dist/tapd_methods/proofs/index.d.ts.map +1 -0
  190. package/dist/tapd_methods/proofs/index.js +5 -0
  191. package/dist/tapd_methods/proofs/index.js.map +1 -0
  192. package/dist/tapd_methods/proofs/unpack_asset_proof_file.d.ts +29 -0
  193. package/dist/tapd_methods/proofs/unpack_asset_proof_file.d.ts.map +1 -0
  194. package/dist/tapd_methods/proofs/unpack_asset_proof_file.js +85 -0
  195. package/dist/tapd_methods/proofs/unpack_asset_proof_file.js.map +1 -0
  196. package/dist/tapd_methods/proofs/verify_asset_proof.d.ts +58 -0
  197. package/dist/tapd_methods/proofs/verify_asset_proof.d.ts.map +1 -0
  198. package/dist/tapd_methods/proofs/verify_asset_proof.js +110 -0
  199. package/dist/tapd_methods/proofs/verify_asset_proof.js.map +1 -0
  200. package/dist/tapd_methods/rfq/add_asset_buy_offer.d.ts +31 -0
  201. package/dist/tapd_methods/rfq/add_asset_buy_offer.d.ts.map +1 -0
  202. package/dist/tapd_methods/rfq/add_asset_buy_offer.js +88 -0
  203. package/dist/tapd_methods/rfq/add_asset_buy_offer.js.map +1 -0
  204. package/dist/tapd_methods/rfq/add_asset_buy_order.d.ts +79 -0
  205. package/dist/tapd_methods/rfq/add_asset_buy_order.d.ts.map +1 -0
  206. package/dist/tapd_methods/rfq/add_asset_buy_order.js +200 -0
  207. package/dist/tapd_methods/rfq/add_asset_buy_order.js.map +1 -0
  208. package/dist/tapd_methods/rfq/add_asset_sell_offer.d.ts +30 -0
  209. package/dist/tapd_methods/rfq/add_asset_sell_offer.d.ts.map +1 -0
  210. package/dist/tapd_methods/rfq/add_asset_sell_offer.js +87 -0
  211. package/dist/tapd_methods/rfq/add_asset_sell_offer.js.map +1 -0
  212. package/dist/tapd_methods/rfq/add_asset_sell_order.d.ts +79 -0
  213. package/dist/tapd_methods/rfq/add_asset_sell_order.d.ts.map +1 -0
  214. package/dist/tapd_methods/rfq/add_asset_sell_order.js +200 -0
  215. package/dist/tapd_methods/rfq/add_asset_sell_order.js.map +1 -0
  216. package/dist/tapd_methods/rfq/get_accepted_quotes.d.ts +52 -0
  217. package/dist/tapd_methods/rfq/get_accepted_quotes.d.ts.map +1 -0
  218. package/dist/tapd_methods/rfq/get_accepted_quotes.js +100 -0
  219. package/dist/tapd_methods/rfq/get_accepted_quotes.js.map +1 -0
  220. package/dist/tapd_methods/rfq/get_asset_forwards.d.ts +70 -0
  221. package/dist/tapd_methods/rfq/get_asset_forwards.d.ts.map +1 -0
  222. package/dist/tapd_methods/rfq/get_asset_forwards.js +185 -0
  223. package/dist/tapd_methods/rfq/get_asset_forwards.js.map +1 -0
  224. package/dist/tapd_methods/rfq/index.d.ts +19 -0
  225. package/dist/tapd_methods/rfq/index.d.ts.map +1 -0
  226. package/dist/tapd_methods/rfq/index.js +8 -0
  227. package/dist/tapd_methods/rfq/index.js.map +1 -0
  228. package/dist/tapd_methods/rfq/subscribe_to_rfq_events.d.ts +68 -0
  229. package/dist/tapd_methods/rfq/subscribe_to_rfq_events.d.ts.map +1 -0
  230. package/dist/tapd_methods/rfq/subscribe_to_rfq_events.js +107 -0
  231. package/dist/tapd_methods/rfq/subscribe_to_rfq_events.js.map +1 -0
  232. package/dist/tapd_methods/send/burn_asset.d.ts +135 -0
  233. package/dist/tapd_methods/send/burn_asset.d.ts.map +1 -0
  234. package/dist/tapd_methods/send/burn_asset.js +220 -0
  235. package/dist/tapd_methods/send/burn_asset.js.map +1 -0
  236. package/dist/tapd_methods/send/get_asset_transfers.d.ts +73 -0
  237. package/dist/tapd_methods/send/get_asset_transfers.d.ts.map +1 -0
  238. package/dist/tapd_methods/send/get_asset_transfers.js +122 -0
  239. package/dist/tapd_methods/send/get_asset_transfers.js.map +1 -0
  240. package/dist/tapd_methods/send/index.d.ts +15 -0
  241. package/dist/tapd_methods/send/index.d.ts.map +1 -0
  242. package/dist/tapd_methods/send/index.js +6 -0
  243. package/dist/tapd_methods/send/index.js.map +1 -0
  244. package/dist/tapd_methods/send/register_asset_transfer.d.ts +77 -0
  245. package/dist/tapd_methods/send/register_asset_transfer.d.ts.map +1 -0
  246. package/dist/tapd_methods/send/register_asset_transfer.js +165 -0
  247. package/dist/tapd_methods/send/register_asset_transfer.js.map +1 -0
  248. package/dist/tapd_methods/send/send_asset.d.ts +94 -0
  249. package/dist/tapd_methods/send/send_asset.d.ts.map +1 -0
  250. package/dist/tapd_methods/send/send_asset.js +169 -0
  251. package/dist/tapd_methods/send/send_asset.js.map +1 -0
  252. package/dist/tapd_methods/send/subscribe_to_asset_sends.d.ts +117 -0
  253. package/dist/tapd_methods/send/subscribe_to_asset_sends.d.ts.map +1 -0
  254. package/dist/tapd_methods/send/subscribe_to_asset_sends.js +159 -0
  255. package/dist/tapd_methods/send/subscribe_to_asset_sends.js.map +1 -0
  256. package/dist/tapd_requests/decimal_as_fixed_point.d.ts +23 -0
  257. package/dist/tapd_requests/decimal_as_fixed_point.d.ts.map +1 -0
  258. package/dist/tapd_requests/decimal_as_fixed_point.js +31 -0
  259. package/dist/tapd_requests/decimal_as_fixed_point.js.map +1 -0
  260. package/dist/tapd_requests/fee_rate_as_tokens_per_kw.d.ts +13 -0
  261. package/dist/tapd_requests/fee_rate_as_tokens_per_kw.d.ts.map +1 -0
  262. package/dist/tapd_requests/fee_rate_as_tokens_per_kw.js +21 -0
  263. package/dist/tapd_requests/fee_rate_as_tokens_per_kw.js.map +1 -0
  264. package/dist/tapd_requests/index.d.ts +5 -0
  265. package/dist/tapd_requests/index.d.ts.map +1 -1
  266. package/dist/tapd_requests/index.js +5 -0
  267. package/dist/tapd_requests/index.js.map +1 -1
  268. package/dist/tapd_requests/is_method_unsupported.d.ts +24 -0
  269. package/dist/tapd_requests/is_method_unsupported.d.ts.map +1 -0
  270. package/dist/tapd_requests/is_method_unsupported.js +27 -0
  271. package/dist/tapd_requests/is_method_unsupported.js.map +1 -0
  272. package/dist/tapd_requests/mint_funding_request.d.ts +53 -0
  273. package/dist/tapd_requests/mint_funding_request.d.ts.map +1 -0
  274. package/dist/tapd_requests/mint_funding_request.js +48 -0
  275. package/dist/tapd_requests/mint_funding_request.js.map +1 -0
  276. package/dist/tapd_requests/script_key_type_query.d.ts +26 -0
  277. package/dist/tapd_requests/script_key_type_query.d.ts.map +1 -0
  278. package/dist/tapd_requests/script_key_type_query.js +41 -0
  279. package/dist/tapd_requests/script_key_type_query.js.map +1 -0
  280. package/dist/tapd_responses/asset_channel_rpc_error.d.ts +19 -0
  281. package/dist/tapd_responses/asset_channel_rpc_error.d.ts.map +1 -0
  282. package/dist/tapd_responses/asset_channel_rpc_error.js +69 -0
  283. package/dist/tapd_responses/asset_channel_rpc_error.js.map +1 -0
  284. package/dist/tapd_responses/batch_states.d.ts +4 -0
  285. package/dist/tapd_responses/batch_states.d.ts.map +1 -0
  286. package/dist/tapd_responses/batch_states.js +13 -0
  287. package/dist/tapd_responses/batch_states.js.map +1 -0
  288. package/dist/tapd_responses/fixed_point_as_decimal.d.ts +25 -0
  289. package/dist/tapd_responses/fixed_point_as_decimal.d.ts.map +1 -0
  290. package/dist/tapd_responses/fixed_point_as_decimal.js +39 -0
  291. package/dist/tapd_responses/fixed_point_as_decimal.js.map +1 -0
  292. package/dist/tapd_responses/index.d.ts +76 -0
  293. package/dist/tapd_responses/index.d.ts.map +1 -0
  294. package/dist/tapd_responses/index.js +30 -0
  295. package/dist/tapd_responses/index.js.map +1 -0
  296. package/dist/tapd_responses/long_key_as_number.d.ts +16 -0
  297. package/dist/tapd_responses/long_key_as_number.d.ts.map +1 -0
  298. package/dist/tapd_responses/long_key_as_number.js +28 -0
  299. package/dist/tapd_responses/long_key_as_number.js.map +1 -0
  300. package/dist/tapd_responses/mint_rpc_error.d.ts +19 -0
  301. package/dist/tapd_responses/mint_rpc_error.d.ts.map +1 -0
  302. package/dist/tapd_responses/mint_rpc_error.js +35 -0
  303. package/dist/tapd_responses/mint_rpc_error.js.map +1 -0
  304. package/dist/tapd_responses/outpoint_as_transaction.d.ts +19 -0
  305. package/dist/tapd_responses/outpoint_as_transaction.d.ts.map +1 -0
  306. package/dist/tapd_responses/outpoint_as_transaction.js +23 -0
  307. package/dist/tapd_responses/outpoint_as_transaction.js.map +1 -0
  308. package/dist/tapd_responses/receive_statuses.d.ts +4 -0
  309. package/dist/tapd_responses/receive_statuses.d.ts.map +1 -0
  310. package/dist/tapd_responses/receive_statuses.js +9 -0
  311. package/dist/tapd_responses/receive_statuses.js.map +1 -0
  312. package/dist/tapd_responses/rpc_addr_as_address.d.ts +79 -0
  313. package/dist/tapd_responses/rpc_addr_as_address.d.ts.map +1 -0
  314. package/dist/tapd_responses/rpc_addr_as_address.js +87 -0
  315. package/dist/tapd_responses/rpc_addr_as_address.js.map +1 -0
  316. package/dist/tapd_responses/rpc_addr_event_as_receive.d.ts +63 -0
  317. package/dist/tapd_responses/rpc_addr_event_as_receive.d.ts.map +1 -0
  318. package/dist/tapd_responses/rpc_addr_event_as_receive.js +64 -0
  319. package/dist/tapd_responses/rpc_addr_event_as_receive.js.map +1 -0
  320. package/dist/tapd_responses/rpc_asset_amount_as_amount.d.ts +34 -0
  321. package/dist/tapd_responses/rpc_asset_amount_as_amount.d.ts.map +1 -0
  322. package/dist/tapd_responses/rpc_asset_amount_as_amount.js +38 -0
  323. package/dist/tapd_responses/rpc_asset_amount_as_amount.js.map +1 -0
  324. package/dist/tapd_responses/rpc_asset_as_asset.d.ts +204 -0
  325. package/dist/tapd_responses/rpc_asset_as_asset.d.ts.map +1 -0
  326. package/dist/tapd_responses/rpc_asset_as_asset.js +174 -0
  327. package/dist/tapd_responses/rpc_asset_as_asset.js.map +1 -0
  328. package/dist/tapd_responses/rpc_asset_balance_as_balance.d.ts +53 -0
  329. package/dist/tapd_responses/rpc_asset_balance_as_balance.d.ts.map +1 -0
  330. package/dist/tapd_responses/rpc_asset_balance_as_balance.js +53 -0
  331. package/dist/tapd_responses/rpc_asset_balance_as_balance.js.map +1 -0
  332. package/dist/tapd_responses/rpc_asset_burn_as_burn.d.ts +51 -0
  333. package/dist/tapd_responses/rpc_asset_burn_as_burn.d.ts.map +1 -0
  334. package/dist/tapd_responses/rpc_asset_burn_as_burn.js +54 -0
  335. package/dist/tapd_responses/rpc_asset_burn_as_burn.js.map +1 -0
  336. package/dist/tapd_responses/rpc_asset_invoice_as_invoice.d.ts +39 -0
  337. package/dist/tapd_responses/rpc_asset_invoice_as_invoice.d.ts.map +1 -0
  338. package/dist/tapd_responses/rpc_asset_invoice_as_invoice.js +45 -0
  339. package/dist/tapd_responses/rpc_asset_invoice_as_invoice.js.map +1 -0
  340. package/dist/tapd_responses/rpc_asset_meta_as_metadata.d.ts +68 -0
  341. package/dist/tapd_responses/rpc_asset_meta_as_metadata.d.ts.map +1 -0
  342. package/dist/tapd_responses/rpc_asset_meta_as_metadata.js +70 -0
  343. package/dist/tapd_responses/rpc_asset_meta_as_metadata.js.map +1 -0
  344. package/dist/tapd_responses/rpc_asset_pay_req_as_request.d.ts +76 -0
  345. package/dist/tapd_responses/rpc_asset_pay_req_as_request.d.ts.map +1 -0
  346. package/dist/tapd_responses/rpc_asset_pay_req_as_request.js +73 -0
  347. package/dist/tapd_responses/rpc_asset_pay_req_as_request.js.map +1 -0
  348. package/dist/tapd_responses/rpc_asset_payment_as_payment.d.ts +39 -0
  349. package/dist/tapd_responses/rpc_asset_payment_as_payment.d.ts.map +1 -0
  350. package/dist/tapd_responses/rpc_asset_payment_as_payment.js +45 -0
  351. package/dist/tapd_responses/rpc_asset_payment_as_payment.js.map +1 -0
  352. package/dist/tapd_responses/rpc_batch_as_batch.d.ts +158 -0
  353. package/dist/tapd_responses/rpc_batch_as_batch.d.ts.map +1 -0
  354. package/dist/tapd_responses/rpc_batch_as_batch.js +181 -0
  355. package/dist/tapd_responses/rpc_batch_as_batch.js.map +1 -0
  356. package/dist/tapd_responses/rpc_buy_quote_as_quote.d.ts +83 -0
  357. package/dist/tapd_responses/rpc_buy_quote_as_quote.d.ts.map +1 -0
  358. package/dist/tapd_responses/rpc_buy_quote_as_quote.js +85 -0
  359. package/dist/tapd_responses/rpc_buy_quote_as_quote.js.map +1 -0
  360. package/dist/tapd_responses/rpc_decoded_proof_as_proof.d.ts +161 -0
  361. package/dist/tapd_responses/rpc_decoded_proof_as_proof.d.ts.map +1 -0
  362. package/dist/tapd_responses/rpc_decoded_proof_as_proof.js +138 -0
  363. package/dist/tapd_responses/rpc_decoded_proof_as_proof.js.map +1 -0
  364. package/dist/tapd_responses/rpc_forward_as_asset_forward.d.ts +100 -0
  365. package/dist/tapd_responses/rpc_forward_as_asset_forward.d.ts.map +1 -0
  366. package/dist/tapd_responses/rpc_forward_as_asset_forward.js +101 -0
  367. package/dist/tapd_responses/rpc_forward_as_asset_forward.js.map +1 -0
  368. package/dist/tapd_responses/rpc_grouped_assets_as_group.d.ts +76 -0
  369. package/dist/tapd_responses/rpc_grouped_assets_as_group.d.ts.map +1 -0
  370. package/dist/tapd_responses/rpc_grouped_assets_as_group.js +71 -0
  371. package/dist/tapd_responses/rpc_grouped_assets_as_group.js.map +1 -0
  372. package/dist/tapd_responses/rpc_managed_utxo_as_utxo.d.ts +63 -0
  373. package/dist/tapd_responses/rpc_managed_utxo_as_utxo.d.ts.map +1 -0
  374. package/dist/tapd_responses/rpc_managed_utxo_as_utxo.js +65 -0
  375. package/dist/tapd_responses/rpc_managed_utxo_as_utxo.js.map +1 -0
  376. package/dist/tapd_responses/rpc_receive_event_as_receive_update.d.ts +53 -0
  377. package/dist/tapd_responses/rpc_receive_event_as_receive_update.d.ts.map +1 -0
  378. package/dist/tapd_responses/rpc_receive_event_as_receive_update.js +52 -0
  379. package/dist/tapd_responses/rpc_receive_event_as_receive_update.js.map +1 -0
  380. package/dist/tapd_responses/rpc_rfq_event_as_event.d.ts +70 -0
  381. package/dist/tapd_responses/rpc_rfq_event_as_event.d.ts.map +1 -0
  382. package/dist/tapd_responses/rpc_rfq_event_as_event.js +89 -0
  383. package/dist/tapd_responses/rpc_rfq_event_as_event.js.map +1 -0
  384. package/dist/tapd_responses/rpc_sell_quote_as_quote.d.ts +80 -0
  385. package/dist/tapd_responses/rpc_sell_quote_as_quote.d.ts.map +1 -0
  386. package/dist/tapd_responses/rpc_sell_quote_as_quote.js +85 -0
  387. package/dist/tapd_responses/rpc_sell_quote_as_quote.js.map +1 -0
  388. package/dist/tapd_responses/rpc_send_event_as_send_event.d.ts +124 -0
  389. package/dist/tapd_responses/rpc_send_event_as_send_event.d.ts.map +1 -0
  390. package/dist/tapd_responses/rpc_send_event_as_send_event.js +161 -0
  391. package/dist/tapd_responses/rpc_send_event_as_send_event.js.map +1 -0
  392. package/dist/tapd_responses/rpc_transfer_as_transfer.d.ts +241 -0
  393. package/dist/tapd_responses/rpc_transfer_as_transfer.d.ts.map +1 -0
  394. package/dist/tapd_responses/rpc_transfer_as_transfer.js +212 -0
  395. package/dist/tapd_responses/rpc_transfer_as_transfer.js.map +1 -0
  396. package/dist/tapd_responses/short_channel_id_as_channel.d.ts +13 -0
  397. package/dist/tapd_responses/short_channel_id_as_channel.d.ts.map +1 -0
  398. package/dist/tapd_responses/short_channel_id_as_channel.js +26 -0
  399. package/dist/tapd_responses/short_channel_id_as_channel.js.map +1 -0
  400. package/package.json +7 -2
  401. package/src/index.ts +21 -0
  402. package/src/tapd_methods/address/create_asset_address.ts +7 -72
  403. package/src/tapd_methods/address/decode_asset_address.ts +117 -0
  404. package/src/tapd_methods/address/get_asset_addresses.ts +212 -0
  405. package/src/tapd_methods/address/get_asset_receives.ts +265 -0
  406. package/src/tapd_methods/address/index.ts +11 -0
  407. package/src/tapd_methods/address/subscribe_to_asset_receives.ts +114 -0
  408. package/src/tapd_methods/assets/get_asset_balances.ts +249 -0
  409. package/src/tapd_methods/assets/get_asset_burns.ts +133 -0
  410. package/src/tapd_methods/assets/get_asset_groups.ts +109 -0
  411. package/src/tapd_methods/assets/get_asset_metadata.ts +141 -0
  412. package/src/tapd_methods/assets/get_asset_utxos.ts +175 -0
  413. package/src/tapd_methods/assets/get_assets.ts +327 -0
  414. package/src/tapd_methods/assets/index.ts +18 -0
  415. package/src/tapd_methods/channels/asset_payment_args_error.ts +83 -0
  416. package/src/tapd_methods/channels/asset_payment_request.ts +76 -0
  417. package/src/tapd_methods/channels/create_asset_invoice.ts +387 -0
  418. package/src/tapd_methods/channels/decode_asset_payment_request.ts +192 -0
  419. package/src/tapd_methods/channels/emit_asset_payment.ts +78 -0
  420. package/src/tapd_methods/channels/encode_asset_custom_records.ts +187 -0
  421. package/src/tapd_methods/channels/get_asset_invoices.ts +258 -0
  422. package/src/tapd_methods/channels/get_asset_payments.ts +243 -0
  423. package/src/tapd_methods/channels/index.ts +30 -0
  424. package/src/tapd_methods/channels/open_asset_channel.ts +193 -0
  425. package/src/tapd_methods/channels/pay_asset_invoice.ts +171 -0
  426. package/src/tapd_methods/channels/send_asset_keysend.ts +196 -0
  427. package/src/tapd_methods/channels/send_asset_payment.ts +158 -0
  428. package/src/tapd_methods/channels/subscribe_to_asset_invoices.ts +134 -0
  429. package/src/tapd_methods/channels/subscribe_to_asset_payments.ts +126 -0
  430. package/src/tapd_methods/channels/subscribe_to_past_asset_payment.ts +132 -0
  431. package/src/tapd_methods/daemon/create_tapd_macaroon.ts +153 -0
  432. package/src/tapd_methods/daemon/index.ts +7 -0
  433. package/src/tapd_methods/daemon/set_tapd_debug_level.ts +90 -0
  434. package/src/tapd_methods/daemon/stop_tapd.ts +75 -0
  435. package/src/tapd_methods/index.ts +8 -0
  436. package/src/tapd_methods/info/get_tapd_info.ts +129 -0
  437. package/src/tapd_methods/info/index.ts +3 -0
  438. package/src/tapd_methods/mint/add_asset_to_mint_batch.ts +396 -0
  439. package/src/tapd_methods/mint/cancel_mint_batch.ts +95 -0
  440. package/src/tapd_methods/mint/finalize_mint_batch.ts +181 -0
  441. package/src/tapd_methods/mint/fund_mint_batch.ts +193 -0
  442. package/src/tapd_methods/mint/get_mint_batches.ts +162 -0
  443. package/src/tapd_methods/mint/index.ts +20 -0
  444. package/src/tapd_methods/mint/seal_mint_batch.ts +184 -0
  445. package/src/tapd_methods/mint/subscribe_to_mint_events.ts +104 -0
  446. package/src/tapd_methods/proofs/decode_asset_proof.ts +175 -0
  447. package/src/tapd_methods/proofs/export_asset_proof.ts +169 -0
  448. package/src/tapd_methods/proofs/index.ts +12 -0
  449. package/src/tapd_methods/proofs/unpack_asset_proof_file.ts +126 -0
  450. package/src/tapd_methods/proofs/verify_asset_proof.ts +156 -0
  451. package/src/tapd_methods/rfq/add_asset_buy_offer.ts +127 -0
  452. package/src/tapd_methods/rfq/add_asset_buy_order.ts +279 -0
  453. package/src/tapd_methods/rfq/add_asset_sell_offer.ts +126 -0
  454. package/src/tapd_methods/rfq/add_asset_sell_order.ts +279 -0
  455. package/src/tapd_methods/rfq/get_accepted_quotes.ts +137 -0
  456. package/src/tapd_methods/rfq/get_asset_forwards.ts +259 -0
  457. package/src/tapd_methods/rfq/index.ts +18 -0
  458. package/src/tapd_methods/rfq/subscribe_to_rfq_events.ts +130 -0
  459. package/src/tapd_methods/send/burn_asset.ts +280 -0
  460. package/src/tapd_methods/send/get_asset_transfers.ts +161 -0
  461. package/src/tapd_methods/send/index.ts +14 -0
  462. package/src/tapd_methods/send/register_asset_transfer.ts +219 -0
  463. package/src/tapd_methods/send/send_asset.ts +223 -0
  464. package/src/tapd_methods/send/subscribe_to_asset_sends.ts +181 -0
  465. package/src/tapd_requests/decimal_as_fixed_point.ts +36 -0
  466. package/src/tapd_requests/fee_rate_as_tokens_per_kw.ts +23 -0
  467. package/src/tapd_requests/index.ts +5 -0
  468. package/src/tapd_requests/is_method_unsupported.ts +33 -0
  469. package/src/tapd_requests/mint_funding_request.ts +57 -0
  470. package/src/tapd_requests/script_key_type_query.ts +44 -0
  471. package/src/tapd_responses/asset_channel_rpc_error.ts +73 -0
  472. package/src/tapd_responses/batch_states.ts +12 -0
  473. package/src/tapd_responses/fixed_point_as_decimal.ts +51 -0
  474. package/src/tapd_responses/index.ts +75 -0
  475. package/src/tapd_responses/long_key_as_number.ts +31 -0
  476. package/src/tapd_responses/mint_rpc_error.ts +39 -0
  477. package/src/tapd_responses/outpoint_as_transaction.ts +25 -0
  478. package/src/tapd_responses/receive_statuses.ts +8 -0
  479. package/src/tapd_responses/rpc_addr_as_address.ts +138 -0
  480. package/src/tapd_responses/rpc_addr_event_as_receive.ts +103 -0
  481. package/src/tapd_responses/rpc_asset_amount_as_amount.ts +57 -0
  482. package/src/tapd_responses/rpc_asset_as_asset.ts +299 -0
  483. package/src/tapd_responses/rpc_asset_balance_as_balance.ts +85 -0
  484. package/src/tapd_responses/rpc_asset_burn_as_burn.ts +85 -0
  485. package/src/tapd_responses/rpc_asset_invoice_as_invoice.ts +62 -0
  486. package/src/tapd_responses/rpc_asset_meta_as_metadata.ts +113 -0
  487. package/src/tapd_responses/rpc_asset_pay_req_as_request.ts +114 -0
  488. package/src/tapd_responses/rpc_asset_payment_as_payment.ts +62 -0
  489. package/src/tapd_responses/rpc_batch_as_batch.ts +281 -0
  490. package/src/tapd_responses/rpc_buy_quote_as_quote.ts +139 -0
  491. package/src/tapd_responses/rpc_decoded_proof_as_proof.ts +229 -0
  492. package/src/tapd_responses/rpc_forward_as_asset_forward.ts +164 -0
  493. package/src/tapd_responses/rpc_grouped_assets_as_group.ts +117 -0
  494. package/src/tapd_responses/rpc_managed_utxo_as_utxo.ts +105 -0
  495. package/src/tapd_responses/rpc_receive_event_as_receive_update.ts +84 -0
  496. package/src/tapd_responses/rpc_rfq_event_as_event.ts +123 -0
  497. package/src/tapd_responses/rpc_sell_quote_as_quote.ts +136 -0
  498. package/src/tapd_responses/rpc_send_event_as_send_event.ts +245 -0
  499. package/src/tapd_responses/rpc_transfer_as_transfer.ts +366 -0
  500. package/src/tapd_responses/short_channel_id_as_channel.ts +30 -0
  501. package/src/typescript/invoices.d.ts +30 -0
  502. package/src/typescript/lightning_lnd_responses.d.ts +44 -0
@@ -0,0 +1,83 @@
1
+ import type {TapdError} from '../../typescript/index.js';
2
+ import type {AssetPaymentRequestArgs} from './asset_payment_request.js';
3
+
4
+ const isAssetId = (n: string) => /^[0-9A-F]{64}$/i.test(n);
5
+ const isNumeric = (n: unknown) => typeof n === 'string' && /^\d+$/.test(n);
6
+ const isPublicKey = (n: string) => /^0[23][0-9A-F]{64}$/i.test(n);
7
+ const {isSafeInteger} = Number;
8
+ const maxMetadataBytes = 32768;
9
+
10
+ /** Error for arguments of an asset payment that are not valid
11
+
12
+ {
13
+ args: <Asset Payment Request Arguments Object>
14
+ name: <Method Name For Error Messages String>
15
+ }
16
+
17
+ @returns
18
+ <Error Array> or <Undefined> // when the arguments are valid
19
+ */
20
+ export default ({
21
+ args,
22
+ name,
23
+ }: {
24
+ args: AssetPaymentRequestArgs;
25
+ name: string;
26
+ }) => {
27
+ if (!args.asset_id && !args.group_key) {
28
+ return [400, `ExpectedAssetIdOrGroupKeyTo${name}`] as TapdError;
29
+ }
30
+
31
+ if (!!args.asset_id && !!args.group_key) {
32
+ return [400, `UnexpectedAssetIdAndGroupKeyTo${name}`] as TapdError;
33
+ }
34
+
35
+ if (!!args.asset_id && !isAssetId(args.asset_id)) {
36
+ return [400, `ExpectedAssetIdHexTo${name}`] as TapdError;
37
+ }
38
+
39
+ if (!!args.group_key && !isPublicKey(args.group_key)) {
40
+ return [400, `ExpectedGroupKeyHexTo${name}`] as TapdError;
41
+ }
42
+
43
+ if (args.max_fee !== undefined && args.max_fee_mtokens !== undefined) {
44
+ return [400, `ExpectedEitherMaxFeeOrMaxFeeMtokensTo${name}`] as TapdError;
45
+ }
46
+
47
+ const maxFee = args.max_fee;
48
+
49
+ if (maxFee !== undefined && (!isSafeInteger(maxFee) || maxFee < 0)) {
50
+ return [400, `ExpectedMaxFeeTokensTo${name}`] as TapdError;
51
+ }
52
+
53
+ if (!!args.max_fee_mtokens && !isNumeric(args.max_fee_mtokens)) {
54
+ return [400, `ExpectedMaxFeeMillitokensTo${name}`] as TapdError;
55
+ }
56
+
57
+ const paths = args.max_paths;
58
+
59
+ if (paths !== undefined && (!isSafeInteger(paths) || paths < 1)) {
60
+ return [400, `ExpectedMaxPathsCountTo${name}`] as TapdError;
61
+ }
62
+
63
+ const timeout = args.pathfinding_timeout;
64
+
65
+ if (timeout !== undefined && (!isSafeInteger(timeout) || timeout < 0)) {
66
+ return [
67
+ 400,
68
+ `ExpectedPathfindingTimeoutMillisecondsTo${name}`,
69
+ ] as TapdError;
70
+ }
71
+
72
+ if (!!args.peer_public_key && !isPublicKey(args.peer_public_key)) {
73
+ return [400, `ExpectedPeerPublicKeyHexTo${name}`] as TapdError;
74
+ }
75
+
76
+ const metadata = args.price_oracle_metadata || '';
77
+
78
+ if (Buffer.byteLength(metadata) > maxMetadataBytes) {
79
+ return [400, `ExpectedShorterPriceOracleMetadataTo${name}`] as TapdError;
80
+ }
81
+
82
+ return undefined;
83
+ };
@@ -0,0 +1,76 @@
1
+ const defaultMaxPaths = 1;
2
+ const defaultTimeoutSeconds = 25;
3
+ const {from} = Buffer;
4
+ const msPerSecond = 1e3;
5
+
6
+ export type AssetPaymentRequestArgs = {
7
+ /** Asset Id Hex String */
8
+ asset_id?: string;
9
+ /** Asset Group Key Hex String */
10
+ group_key?: string;
11
+ /** Allow a Payment Above the Request Amount Bool */
12
+ is_overpay_allowed?: boolean;
13
+ /** Maximum Fee Tokens Number */
14
+ max_fee?: number;
15
+ /** Maximum Fee Millitokens String */
16
+ max_fee_mtokens?: string;
17
+ /** Maximum Payment Paths Number */
18
+ max_paths?: number;
19
+ /** Time To Spend Finding a Route Milliseconds Number */
20
+ pathfinding_timeout?: number;
21
+ /** RFQ Peer Public Key Hex String */
22
+ peer_public_key?: string;
23
+ /** Price Oracle Metadata String */
24
+ price_oracle_metadata?: string;
25
+ };
26
+
27
+ /** tapchannel SendPayment request fields that are the same for each payment
28
+
29
+ The lnd payment fields work the same way as in lightning pay methods
30
+
31
+ {
32
+ [asset_id]: <Asset Id Hex String>
33
+ [group_key]: <Asset Group Key Hex String>
34
+ [is_overpay_allowed]: <Allow a Payment Above the Request Amount Bool>
35
+ [max_fee]: <Maximum Fee Tokens Number>
36
+ [max_fee_mtokens]: <Maximum Fee Millitokens String>
37
+ [max_paths]: <Maximum Payment Paths Number>
38
+ [pathfinding_timeout]: <Time To Spend Finding a Route Milliseconds Number>
39
+ [peer_public_key]: <RFQ Peer Public Key Hex String>
40
+ [price_oracle_metadata]: <Price Oracle Metadata String>
41
+ }
42
+
43
+ @returns
44
+ {
45
+ allow_overpay: <Allow Overpay Bool>
46
+ asset_id: <Asset Id Buffer Object>
47
+ group_key: <Asset Group Key Buffer Object>
48
+ payment_request: {
49
+ [fee_limit_msat]: <Maximum Fee Millitokens String>
50
+ [fee_limit_sat]: <Maximum Fee Tokens Number>
51
+ max_parts: <Maximum Payment Paths Number>
52
+ no_inflight_updates: <No In-Flight Updates Bool>
53
+ timeout_seconds: <Payment Timeout Seconds Number>
54
+ }
55
+ peer_pubkey: <RFQ Peer Public Key Buffer Object>
56
+ price_oracle_metadata: <Price Oracle Metadata String>
57
+ }
58
+ */
59
+ export default (args: AssetPaymentRequestArgs) => {
60
+ const timeout = Math.round((args.pathfinding_timeout || 0) / msPerSecond);
61
+
62
+ return {
63
+ allow_overpay: !!args.is_overpay_allowed,
64
+ asset_id: from(args.asset_id || '', 'hex'),
65
+ group_key: from(args.group_key || '', 'hex'),
66
+ payment_request: {
67
+ fee_limit_msat: args.max_fee_mtokens || undefined,
68
+ fee_limit_sat: args.max_fee || undefined,
69
+ max_parts: args.max_paths || defaultMaxPaths,
70
+ no_inflight_updates: false,
71
+ timeout_seconds: timeout || defaultTimeoutSeconds,
72
+ },
73
+ peer_pubkey: from(args.peer_public_key || '', 'hex'),
74
+ price_oracle_metadata: args.price_oracle_metadata || '',
75
+ };
76
+ };
@@ -0,0 +1,387 @@
1
+ import {createHash} from 'node:crypto';
2
+ import {randomBytes} from 'node:crypto';
3
+
4
+ import {auto as asyncAuto} from 'async';
5
+ import {returnResult} from 'asyncjs-util';
6
+ import {parsePaymentRequest} from 'invoices';
7
+
8
+ import {decimalAsFixedPoint} from '../../tapd_requests/index.js';
9
+ import {isConnectionFailure} from '../../tapd_requests/index.js';
10
+ import {isPermissionDenied} from '../../tapd_requests/index.js';
11
+ import {isTapd} from '../../tapd_requests/index.js';
12
+ import {assetChannelRpcError} from '../../tapd_responses/index.js';
13
+ import {rpcBuyQuoteAsQuote} from '../../tapd_responses/index.js';
14
+ import type {BuyQuote} from '../../tapd_responses/index.js';
15
+ import type {AuthenticatedTapdArgs} from '../../typescript/index.js';
16
+ import type {TapdCallback} from '../../typescript/index.js';
17
+ import type {TapdError} from '../../typescript/index.js';
18
+ import type {TapdMethod} from '../../typescript/index.js';
19
+
20
+ const fillOrKill = 'EXECUTION_POLICY_FOK';
21
+ const {from} = Buffer;
22
+ const immediateOrCancel = 'EXECUTION_POLICY_IOC';
23
+ const isAssetId = (n: string) => /^[0-9A-F]{64}$/i.test(n);
24
+ const isBuffer = (n: unknown): n is Buffer => Buffer.isBuffer(n);
25
+ const isDate = (n: string) => Date.parse(n) > Date.now();
26
+ const isDecimal = (n: string) => /^\d+(\.\d+)?$/.test(n);
27
+ const isHash = (n: string) => /^[0-9A-F]{64}$/i.test(n);
28
+ const isNumeric = (n: unknown) => typeof n === 'string' && /^\d+$/.test(n);
29
+ const isPositive = (n: string) => isNumeric(n) && BigInt(n) > BigInt(0);
30
+ const isPublicKey = (n: string) => /^0[23][0-9A-F]{64}$/i.test(n);
31
+ const {isSafeInteger} = Number;
32
+ const maxMetadataBytes = 32768;
33
+ const method = 'addInvoice';
34
+ const msPerSecond = 1e3;
35
+ const preimageByteLength = 32;
36
+ const sha256 = (n: Buffer) => createHash('sha256').update(n).digest();
37
+ const type = 'tapchannel';
38
+
39
+ export type CreateAssetInvoiceArgs = AuthenticatedTapdArgs<{
40
+ /** Asset Units To Receive Numeric String */
41
+ amount?: string;
42
+ /** Asset Id Hex String */
43
+ asset_id?: string;
44
+ /** Final CLTV Delta Number */
45
+ cltv_delta?: number;
46
+ /** Invoice Description String */
47
+ description?: string;
48
+ /** Hashed Description of Payment Hex String */
49
+ description_hash?: string;
50
+ /** Expires At ISO 8601 Date String */
51
+ expires_at?: string;
52
+ /** Asset Group Key Hex String */
53
+ group_key?: string;
54
+ /** Hold Invoice Payment Hash Hex String */
55
+ id?: string;
56
+ /** Reject a Quote That Does Not Fill the Amount Bool */
57
+ is_fill_or_kill?: boolean;
58
+ /** Include Private Channels Bool */
59
+ is_including_private_channels?: boolean;
60
+ /** Minimum Asset Units Numeric String */
61
+ min_amount?: string;
62
+ /** Minimum Rate Asset Units Per BTC Decimal String */
63
+ min_rate?: string;
64
+ /** Millitokens To Receive String */
65
+ mtokens?: string;
66
+ /** RFQ Peer Public Key Hex String */
67
+ peer_public_key?: string;
68
+ /** Price Oracle Metadata String */
69
+ price_oracle_metadata?: string;
70
+ /** Payment Preimage Hex String */
71
+ secret?: string;
72
+ /** Tokens To Receive Number */
73
+ tokens?: number;
74
+ }>;
75
+
76
+ export type CreateAssetInvoiceResult = {
77
+ /** Fallback Chain Address */
78
+ chain_address?: string;
79
+ /** Created At ISO 8601 Date */
80
+ created_at: string;
81
+ /** Invoice Description */
82
+ description?: string;
83
+ /** Payment Hash Hex */
84
+ id: string;
85
+ /** Millitokens To Receive */
86
+ mtokens: string;
87
+ /** Payment Identifier Hex */
88
+ payment?: string;
89
+ /** Accepted Buy Quote */
90
+ quote?: BuyQuote;
91
+ /** BOLT 11 Encoded Payment Request */
92
+ request: string;
93
+ /** Payment Preimage Hex */
94
+ secret?: string;
95
+ /** Tokens To Receive Rounded Down */
96
+ tokens: number;
97
+ };
98
+
99
+ type Tasks = {
100
+ create: CreateAssetInvoiceResult;
101
+ validate: undefined;
102
+ };
103
+
104
+ /** Create an invoice that is paid with an asset, over an asset channel
105
+
106
+ The channel peer buys the asset for satoshis, at a rate in an RFQ quote
107
+
108
+ tapd must run inside litd, with lnd and tapd in integrated mode
109
+
110
+ Requires `channels:write` permission
111
+
112
+ An `asset_id` or a `group_key` is required, but not both
113
+
114
+ One of `amount`, `tokens`, or `mtokens` is required. With `tokens` or
115
+ `mtokens`, the payer pays that satoshi value in the asset.
116
+
117
+ Use an `id` to make a hold invoice. A hold invoice has no `secret`.
118
+
119
+ A random `secret` is used when there is no `secret` and no `id`
120
+
121
+ When there is no `min_amount`, the quote must fill the `amount`. Use `"0"` to
122
+ accept a partial fill.
123
+
124
+ `min_amount`, `min_rate`, and `is_fill_or_kill` need tapd v0.8.0 or later.
125
+ Older tapd versions ignore them.
126
+
127
+ {
128
+ [amount]: <Asset Units To Receive Numeric String>
129
+ [asset_id]: <Asset Id Hex String>
130
+ [cltv_delta]: <Final CLTV Delta Number>
131
+ [description]: <Invoice Description String>
132
+ [description_hash]: <Hashed Description of Payment Hex String>
133
+ [expires_at]: <Expires At ISO 8601 Date String>
134
+ [group_key]: <Asset Group Key Hex String>
135
+ [id]: <Hold Invoice Payment Hash Hex String>
136
+ [is_fill_or_kill]: <Reject a Quote That Does Not Fill the Amount Bool>
137
+ [is_including_private_channels]: <Include Private Channels Bool>
138
+ [min_amount]: <Minimum Asset Units Numeric String>
139
+ [min_rate]: <Minimum Rate Asset Units Per BTC Decimal String>
140
+ [mtokens]: <Millitokens To Receive String>
141
+ [peer_public_key]: <RFQ Peer Public Key Hex String>
142
+ [price_oracle_metadata]: <Price Oracle Metadata String>
143
+ [secret]: <Payment Preimage Hex String>
144
+ tapd: <Authenticated tapd API Object>
145
+ [tokens]: <Tokens To Receive Number>
146
+ }
147
+
148
+ @returns via cbk or Promise
149
+ {
150
+ [chain_address]: <Fallback Chain Address String>
151
+ created_at: <Created At ISO 8601 Date String>
152
+ [description]: <Invoice Description String>
153
+ id: <Payment Hash Hex String>
154
+ mtokens: <Millitokens To Receive String>
155
+ [payment]: <Payment Identifier Hex String>
156
+ [quote]: {
157
+ [accepted_max_amount]: <Accepted Maximum Asset Units Numeric String>
158
+ [asset_id]: <Asset Id Hex String>
159
+ channel: <Channel To Pay Over Standard Format Channel Id String>
160
+ expires_at: <Quote Expires At ISO 8601 Date String>
161
+ [group_key]: <Asset Group BIP340 Public Key Hex String>
162
+ id: <Quote Request Id Hex String>
163
+ max_amount: <Maximum Asset Units Numeric String>
164
+ min_transportable_amount: <Minimum Asset Units In One HTLC Numeric String>
165
+ peer_public_key: <Peer Public Key Hex String>
166
+ [price_oracle_metadata]: <Price Oracle Metadata String>
167
+ rate: <Ask Rate Asset Units Per BTC Exact Decimal String>
168
+ }
169
+ request: <BOLT 11 Encoded Payment Request String>
170
+ [secret]: <Payment Preimage Hex String>
171
+ tokens: <Tokens To Receive Rounded Down Number>
172
+ }
173
+ */
174
+ const createAssetInvoice: TapdMethod<
175
+ CreateAssetInvoiceArgs,
176
+ CreateAssetInvoiceResult
177
+ > = (
178
+ args: CreateAssetInvoiceArgs,
179
+ cbk?: TapdCallback<CreateAssetInvoiceResult>,
180
+ ) => {
181
+ return new Promise((resolve, reject) => {
182
+ return asyncAuto<Tasks, TapdError>(
183
+ {
184
+ // Check arguments
185
+ validate: cbk => {
186
+ const values = [args.amount, args.tokens, args.mtokens];
187
+
188
+ if (values.filter(n => n !== undefined).length !== 1) {
189
+ return cbk([400, 'ExpectedOneOfAmountTokensOrMtokensForInvoice']);
190
+ }
191
+
192
+ if (args.amount !== undefined && !isPositive(args.amount)) {
193
+ return cbk([400, 'ExpectedAssetAmountToCreateAssetInvoice']);
194
+ }
195
+
196
+ if (!args.asset_id && !args.group_key) {
197
+ return cbk([400, 'ExpectedAssetIdOrGroupKeyToCreateAssetInvoice']);
198
+ }
199
+
200
+ if (!!args.asset_id && !!args.group_key) {
201
+ return cbk([400, 'UnexpectedAssetIdAndGroupKeyForAssetInvoice']);
202
+ }
203
+
204
+ if (!!args.asset_id && !isAssetId(args.asset_id)) {
205
+ return cbk([400, 'ExpectedAssetIdHexToCreateAssetInvoice']);
206
+ }
207
+
208
+ const cltv = args.cltv_delta;
209
+
210
+ if (cltv !== undefined && (!isSafeInteger(cltv) || cltv < 1)) {
211
+ return cbk([400, 'ExpectedCltvDeltaToCreateAssetInvoice']);
212
+ }
213
+
214
+ if (!!args.description_hash && !isHash(args.description_hash)) {
215
+ return cbk([400, 'ExpectedDescriptionHashToCreateAssetInvoice']);
216
+ }
217
+
218
+ if (args.expires_at !== undefined && !isDate(args.expires_at)) {
219
+ return cbk([400, 'ExpectedFutureExpiresAtToCreateAssetInvoice']);
220
+ }
221
+
222
+ if (!!args.group_key && !isPublicKey(args.group_key)) {
223
+ return cbk([400, 'ExpectedGroupKeyHexToCreateAssetInvoice']);
224
+ }
225
+
226
+ if (!!args.id && !isHash(args.id)) {
227
+ return cbk([400, 'ExpectedPaymentHashToCreateAssetHoldInvoice']);
228
+ }
229
+
230
+ if (!!args.id && !!args.secret) {
231
+ return cbk([400, 'UnexpectedSecretForAssetHoldInvoice']);
232
+ }
233
+
234
+ if (args.min_amount !== undefined && !isNumeric(args.min_amount)) {
235
+ return cbk([400, 'ExpectedNumericMinAmountForAssetInvoice']);
236
+ }
237
+
238
+ if (args.min_rate !== undefined && !isDecimal(args.min_rate)) {
239
+ return cbk([400, 'ExpectedDecimalMinRateForAssetInvoice']);
240
+ }
241
+
242
+ if (args.mtokens !== undefined && !isPositive(args.mtokens)) {
243
+ return cbk([400, 'ExpectedMillitokensToCreateAssetInvoice']);
244
+ }
245
+
246
+ if (!!args.peer_public_key && !isPublicKey(args.peer_public_key)) {
247
+ return cbk([400, 'ExpectedPeerPublicKeyHexForAssetInvoice']);
248
+ }
249
+
250
+ const metadata = args.price_oracle_metadata || '';
251
+
252
+ if (Buffer.byteLength(metadata) > maxMetadataBytes) {
253
+ return cbk([400, 'ExpectedShorterOracleMetadataForAssetInvoice']);
254
+ }
255
+
256
+ if (!!args.secret && !isHash(args.secret)) {
257
+ return cbk([400, 'ExpectedPreimageHexToCreateAssetInvoice']);
258
+ }
259
+
260
+ if (!isTapd({method, type, tapd: args.tapd})) {
261
+ return cbk([400, 'ExpectedAuthenticatedTapdToCreateAssetInvoice']);
262
+ }
263
+
264
+ const tokens = args.tokens;
265
+
266
+ if (tokens !== undefined && (!isSafeInteger(tokens) || tokens < 1)) {
267
+ return cbk([400, 'ExpectedTokensToCreateAssetInvoice']);
268
+ }
269
+
270
+ return cbk();
271
+ },
272
+
273
+ // Create the invoice
274
+ create: [
275
+ 'validate',
276
+ ({}, cbk) => {
277
+ const expiresAt = args.expires_at;
278
+
279
+ const secret = !!args.id
280
+ ? undefined
281
+ : !!args.secret
282
+ ? from(args.secret, 'hex')
283
+ : randomBytes(preimageByteLength);
284
+
285
+ const expiry = !expiresAt
286
+ ? undefined
287
+ : Math.round((Date.parse(expiresAt) - Date.now()) / msPerSecond);
288
+
289
+ const request = {
290
+ asset_amount: args.amount || '0',
291
+ asset_id: from(args.asset_id || '', 'hex'),
292
+ asset_min_amt: args.min_amount,
293
+ asset_rate_limit: !!args.min_rate
294
+ ? decimalAsFixedPoint(args.min_rate)
295
+ : undefined,
296
+ execution_policy: !!args.is_fill_or_kill
297
+ ? fillOrKill
298
+ : immediateOrCancel,
299
+ group_key: from(args.group_key || '', 'hex'),
300
+ hodl_invoice: !args.id
301
+ ? undefined
302
+ : {payment_hash: from(args.id, 'hex')},
303
+ invoice_request: {
304
+ cltv_expiry: args.cltv_delta || undefined,
305
+ description_hash: from(args.description_hash || '', 'hex'),
306
+ expiry,
307
+ memo: args.description || '',
308
+ private: !!args.is_including_private_channels,
309
+ r_preimage: secret,
310
+ value: args.tokens || undefined,
311
+ value_msat: args.mtokens || undefined,
312
+ },
313
+ peer_pubkey: from(args.peer_public_key || '', 'hex'),
314
+ price_oracle_metadata: args.price_oracle_metadata || '',
315
+ };
316
+
317
+ return args.tapd[type][method](request, (err: any, res: any) => {
318
+ if (isConnectionFailure({err})) {
319
+ return cbk([503, 'FailedToConnectToTapdToCreateAssetInvoice']);
320
+ }
321
+
322
+ if (isPermissionDenied({err})) {
323
+ return cbk([403, 'PermissionDeniedToCreateAssetInvoice']);
324
+ }
325
+
326
+ const knownError = assetChannelRpcError({err});
327
+
328
+ if (!!knownError) {
329
+ return cbk(knownError);
330
+ }
331
+
332
+ if (!!err) {
333
+ return cbk([503, 'UnexpectedErrorCreatingAssetInvoice', {err}]);
334
+ }
335
+
336
+ const invoice = res?.invoice_result;
337
+
338
+ if (!invoice || !invoice.payment_request) {
339
+ return cbk([503, 'ExpectedPaymentRequestForAssetInvoice']);
340
+ }
341
+
342
+ if (!isBuffer(invoice.r_hash) || !invoice.r_hash.length) {
343
+ return cbk([503, 'ExpectedPaymentHashForAssetInvoice']);
344
+ }
345
+
346
+ const id = invoice.r_hash.toString('hex');
347
+
348
+ if (!!secret && sha256(secret).toString('hex') !== id) {
349
+ return cbk([503, 'ExpectedPaymentHashOfSecretForAssetInvoice']);
350
+ }
351
+
352
+ try {
353
+ const details = parsePaymentRequest({
354
+ request: invoice.payment_request,
355
+ });
356
+
357
+ const quote = res.accepted_buy_quote;
358
+ const payment = invoice.payment_addr;
359
+
360
+ return cbk(null, {
361
+ id,
362
+ chain_address: details.chain_addresses?.[0],
363
+ created_at: details.created_at,
364
+ description: details.description,
365
+ mtokens: details.mtokens,
366
+ payment:
367
+ isBuffer(payment) && !!payment.length
368
+ ? payment.toString('hex')
369
+ : undefined,
370
+ quote: !quote ? undefined : rpcBuyQuoteAsQuote(quote),
371
+ request: invoice.payment_request,
372
+ secret: secret?.toString('hex'),
373
+ tokens: details.tokens,
374
+ });
375
+ } catch (err: any) {
376
+ return cbk([503, err.message]);
377
+ }
378
+ });
379
+ },
380
+ ],
381
+ },
382
+ returnResult({reject, resolve, of: 'create'}, cbk),
383
+ );
384
+ });
385
+ };
386
+
387
+ export default createAssetInvoice;