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.
- package/README.md +2792 -3
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/tapd_methods/address/create_asset_address.d.ts +2 -26
- package/dist/tapd_methods/address/create_asset_address.d.ts.map +1 -1
- package/dist/tapd_methods/address/create_asset_address.js +5 -37
- package/dist/tapd_methods/address/create_asset_address.js.map +1 -1
- package/dist/tapd_methods/address/decode_asset_address.d.ts +38 -0
- package/dist/tapd_methods/address/decode_asset_address.d.ts.map +1 -0
- package/dist/tapd_methods/address/decode_asset_address.js +81 -0
- package/dist/tapd_methods/address/decode_asset_address.js.map +1 -0
- package/dist/tapd_methods/address/get_asset_addresses.d.ts +54 -0
- package/dist/tapd_methods/address/get_asset_addresses.d.ts.map +1 -0
- package/dist/tapd_methods/address/get_asset_addresses.js +153 -0
- package/dist/tapd_methods/address/get_asset_addresses.js.map +1 -0
- package/dist/tapd_methods/address/get_asset_receives.d.ts +72 -0
- package/dist/tapd_methods/address/get_asset_receives.d.ts.map +1 -0
- package/dist/tapd_methods/address/get_asset_receives.js +191 -0
- package/dist/tapd_methods/address/get_asset_receives.js.map +1 -0
- package/dist/tapd_methods/address/index.d.ts +11 -0
- package/dist/tapd_methods/address/index.d.ts.map +1 -1
- package/dist/tapd_methods/address/index.js +4 -0
- package/dist/tapd_methods/address/index.js.map +1 -1
- package/dist/tapd_methods/address/subscribe_to_asset_receives.d.ts +53 -0
- package/dist/tapd_methods/address/subscribe_to_asset_receives.d.ts.map +1 -0
- package/dist/tapd_methods/address/subscribe_to_asset_receives.js +93 -0
- package/dist/tapd_methods/address/subscribe_to_asset_receives.js.map +1 -0
- package/dist/tapd_methods/assets/get_asset_balances.d.ts +64 -0
- package/dist/tapd_methods/assets/get_asset_balances.d.ts.map +1 -0
- package/dist/tapd_methods/assets/get_asset_balances.js +177 -0
- package/dist/tapd_methods/assets/get_asset_balances.js.map +1 -0
- package/dist/tapd_methods/assets/get_asset_burns.d.ts +40 -0
- package/dist/tapd_methods/assets/get_asset_burns.d.ts.map +1 -0
- package/dist/tapd_methods/assets/get_asset_burns.js +92 -0
- package/dist/tapd_methods/assets/get_asset_burns.js.map +1 -0
- package/dist/tapd_methods/assets/get_asset_groups.d.ts +35 -0
- package/dist/tapd_methods/assets/get_asset_groups.d.ts.map +1 -0
- package/dist/tapd_methods/assets/get_asset_groups.js +78 -0
- package/dist/tapd_methods/assets/get_asset_groups.js.map +1 -0
- package/dist/tapd_methods/assets/get_asset_metadata.d.ts +40 -0
- package/dist/tapd_methods/assets/get_asset_metadata.d.ts.map +1 -0
- package/dist/tapd_methods/assets/get_asset_metadata.js +99 -0
- package/dist/tapd_methods/assets/get_asset_metadata.js.map +1 -0
- package/dist/tapd_methods/assets/get_asset_utxos.d.ts +83 -0
- package/dist/tapd_methods/assets/get_asset_utxos.d.ts.map +1 -0
- package/dist/tapd_methods/assets/get_asset_utxos.js +135 -0
- package/dist/tapd_methods/assets/get_asset_utxos.js.map +1 -0
- package/dist/tapd_methods/assets/get_assets.d.ts +113 -0
- package/dist/tapd_methods/assets/get_assets.d.ts.map +1 -0
- package/dist/tapd_methods/assets/get_assets.js +243 -0
- package/dist/tapd_methods/assets/get_assets.js.map +1 -0
- package/dist/tapd_methods/assets/index.d.ts +19 -0
- package/dist/tapd_methods/assets/index.d.ts.map +1 -0
- package/dist/tapd_methods/assets/index.js +7 -0
- package/dist/tapd_methods/assets/index.js.map +1 -0
- package/dist/tapd_methods/channels/asset_payment_args_error.d.ts +18 -0
- package/dist/tapd_methods/channels/asset_payment_args_error.d.ts.map +1 -0
- package/dist/tapd_methods/channels/asset_payment_args_error.js +59 -0
- package/dist/tapd_methods/channels/asset_payment_args_error.js.map +1 -0
- package/dist/tapd_methods/channels/asset_payment_request.d.ts +68 -0
- package/dist/tapd_methods/channels/asset_payment_request.d.ts.map +1 -0
- package/dist/tapd_methods/channels/asset_payment_request.js +54 -0
- package/dist/tapd_methods/channels/asset_payment_request.js.map +1 -0
- package/dist/tapd_methods/channels/create_asset_invoice.d.ts +134 -0
- package/dist/tapd_methods/channels/create_asset_invoice.d.ts.map +1 -0
- package/dist/tapd_methods/channels/create_asset_invoice.js +264 -0
- package/dist/tapd_methods/channels/create_asset_invoice.js.map +1 -0
- package/dist/tapd_methods/channels/decode_asset_payment_request.d.ts +72 -0
- package/dist/tapd_methods/channels/decode_asset_payment_request.d.ts.map +1 -0
- package/dist/tapd_methods/channels/decode_asset_payment_request.js +143 -0
- package/dist/tapd_methods/channels/decode_asset_payment_request.js.map +1 -0
- package/dist/tapd_methods/channels/emit_asset_payment.d.ts +30 -0
- package/dist/tapd_methods/channels/emit_asset_payment.d.ts.map +1 -0
- package/dist/tapd_methods/channels/emit_asset_payment.js +59 -0
- package/dist/tapd_methods/channels/emit_asset_payment.js.map +1 -0
- package/dist/tapd_methods/channels/encode_asset_custom_records.d.ts +51 -0
- package/dist/tapd_methods/channels/encode_asset_custom_records.d.ts.map +1 -0
- package/dist/tapd_methods/channels/encode_asset_custom_records.js +127 -0
- package/dist/tapd_methods/channels/encode_asset_custom_records.js.map +1 -0
- package/dist/tapd_methods/channels/get_asset_invoices.d.ts +84 -0
- package/dist/tapd_methods/channels/get_asset_invoices.d.ts.map +1 -0
- package/dist/tapd_methods/channels/get_asset_invoices.js +193 -0
- package/dist/tapd_methods/channels/get_asset_invoices.js.map +1 -0
- package/dist/tapd_methods/channels/get_asset_payments.d.ts +69 -0
- package/dist/tapd_methods/channels/get_asset_payments.d.ts.map +1 -0
- package/dist/tapd_methods/channels/get_asset_payments.js +180 -0
- package/dist/tapd_methods/channels/get_asset_payments.js.map +1 -0
- package/dist/tapd_methods/channels/index.d.ts +31 -0
- package/dist/tapd_methods/channels/index.d.ts.map +1 -0
- package/dist/tapd_methods/channels/index.js +12 -0
- package/dist/tapd_methods/channels/index.js.map +1 -0
- package/dist/tapd_methods/channels/open_asset_channel.d.ts +53 -0
- package/dist/tapd_methods/channels/open_asset_channel.d.ts.map +1 -0
- package/dist/tapd_methods/channels/open_asset_channel.js +128 -0
- package/dist/tapd_methods/channels/open_asset_channel.js.map +1 -0
- package/dist/tapd_methods/channels/pay_asset_invoice.d.ts +95 -0
- package/dist/tapd_methods/channels/pay_asset_invoice.d.ts.map +1 -0
- package/dist/tapd_methods/channels/pay_asset_invoice.js +132 -0
- package/dist/tapd_methods/channels/pay_asset_invoice.js.map +1 -0
- package/dist/tapd_methods/channels/send_asset_keysend.d.ts +84 -0
- package/dist/tapd_methods/channels/send_asset_keysend.d.ts.map +1 -0
- package/dist/tapd_methods/channels/send_asset_keysend.js +144 -0
- package/dist/tapd_methods/channels/send_asset_keysend.js.map +1 -0
- package/dist/tapd_methods/channels/send_asset_payment.d.ts +33 -0
- package/dist/tapd_methods/channels/send_asset_payment.d.ts.map +1 -0
- package/dist/tapd_methods/channels/send_asset_payment.js +114 -0
- package/dist/tapd_methods/channels/send_asset_payment.js.map +1 -0
- package/dist/tapd_methods/channels/subscribe_to_asset_invoices.d.ts +51 -0
- package/dist/tapd_methods/channels/subscribe_to_asset_invoices.d.ts.map +1 -0
- package/dist/tapd_methods/channels/subscribe_to_asset_invoices.js +104 -0
- package/dist/tapd_methods/channels/subscribe_to_asset_invoices.js.map +1 -0
- package/dist/tapd_methods/channels/subscribe_to_asset_payments.d.ts +59 -0
- package/dist/tapd_methods/channels/subscribe_to_asset_payments.d.ts.map +1 -0
- package/dist/tapd_methods/channels/subscribe_to_asset_payments.js +104 -0
- package/dist/tapd_methods/channels/subscribe_to_asset_payments.js.map +1 -0
- package/dist/tapd_methods/channels/subscribe_to_past_asset_payment.d.ts +62 -0
- package/dist/tapd_methods/channels/subscribe_to_past_asset_payment.d.ts.map +1 -0
- package/dist/tapd_methods/channels/subscribe_to_past_asset_payment.js +106 -0
- package/dist/tapd_methods/channels/subscribe_to_past_asset_payment.js.map +1 -0
- package/dist/tapd_methods/daemon/create_tapd_macaroon.d.ts +45 -0
- package/dist/tapd_methods/daemon/create_tapd_macaroon.d.ts.map +1 -0
- package/dist/tapd_methods/daemon/create_tapd_macaroon.js +99 -0
- package/dist/tapd_methods/daemon/create_tapd_macaroon.js.map +1 -0
- package/dist/tapd_methods/daemon/index.d.ts +8 -0
- package/dist/tapd_methods/daemon/index.d.ts.map +1 -0
- package/dist/tapd_methods/daemon/index.js +4 -0
- package/dist/tapd_methods/daemon/index.js.map +1 -0
- package/dist/tapd_methods/daemon/set_tapd_debug_level.d.ts +23 -0
- package/dist/tapd_methods/daemon/set_tapd_debug_level.d.ts.map +1 -0
- package/dist/tapd_methods/daemon/set_tapd_debug_level.js +60 -0
- package/dist/tapd_methods/daemon/set_tapd_debug_level.js.map +1 -0
- package/dist/tapd_methods/daemon/stop_tapd.d.ts +16 -0
- package/dist/tapd_methods/daemon/stop_tapd.d.ts.map +1 -0
- package/dist/tapd_methods/daemon/stop_tapd.js +50 -0
- package/dist/tapd_methods/daemon/stop_tapd.js.map +1 -0
- package/dist/tapd_methods/index.d.ts +8 -0
- package/dist/tapd_methods/index.d.ts.map +1 -1
- package/dist/tapd_methods/index.js +8 -0
- package/dist/tapd_methods/index.js.map +1 -1
- package/dist/tapd_methods/info/get_tapd_info.d.ts +44 -0
- package/dist/tapd_methods/info/get_tapd_info.d.ts.map +1 -0
- package/dist/tapd_methods/info/get_tapd_info.js +80 -0
- package/dist/tapd_methods/info/get_tapd_info.js.map +1 -0
- package/dist/tapd_methods/info/index.d.ts +4 -0
- package/dist/tapd_methods/info/index.d.ts.map +1 -0
- package/dist/tapd_methods/info/index.js +2 -0
- package/dist/tapd_methods/info/index.js.map +1 -0
- package/dist/tapd_methods/mint/add_asset_to_mint_batch.d.ts +124 -0
- package/dist/tapd_methods/mint/add_asset_to_mint_batch.d.ts.map +1 -0
- package/dist/tapd_methods/mint/add_asset_to_mint_batch.js +283 -0
- package/dist/tapd_methods/mint/add_asset_to_mint_batch.js.map +1 -0
- package/dist/tapd_methods/mint/cancel_mint_batch.d.ts +23 -0
- package/dist/tapd_methods/mint/cancel_mint_batch.d.ts.map +1 -0
- package/dist/tapd_methods/mint/cancel_mint_batch.js +62 -0
- package/dist/tapd_methods/mint/cancel_mint_batch.js.map +1 -0
- package/dist/tapd_methods/mint/finalize_mint_batch.d.ts +64 -0
- package/dist/tapd_methods/mint/finalize_mint_batch.d.ts.map +1 -0
- package/dist/tapd_methods/mint/finalize_mint_batch.js +130 -0
- package/dist/tapd_methods/mint/finalize_mint_batch.js.map +1 -0
- package/dist/tapd_methods/mint/fund_mint_batch.d.ts +82 -0
- package/dist/tapd_methods/mint/fund_mint_batch.d.ts.map +1 -0
- package/dist/tapd_methods/mint/fund_mint_batch.js +145 -0
- package/dist/tapd_methods/mint/fund_mint_batch.js.map +1 -0
- package/dist/tapd_methods/mint/get_mint_batches.d.ts +72 -0
- package/dist/tapd_methods/mint/get_mint_batches.d.ts.map +1 -0
- package/dist/tapd_methods/mint/get_mint_batches.js +123 -0
- package/dist/tapd_methods/mint/get_mint_batches.js.map +1 -0
- package/dist/tapd_methods/mint/index.d.ts +21 -0
- package/dist/tapd_methods/mint/index.d.ts.map +1 -0
- package/dist/tapd_methods/mint/index.js +8 -0
- package/dist/tapd_methods/mint/index.js.map +1 -0
- package/dist/tapd_methods/mint/seal_mint_batch.d.ts +64 -0
- package/dist/tapd_methods/mint/seal_mint_batch.d.ts.map +1 -0
- package/dist/tapd_methods/mint/seal_mint_batch.js +135 -0
- package/dist/tapd_methods/mint/seal_mint_batch.js.map +1 -0
- package/dist/tapd_methods/mint/subscribe_to_mint_events.d.ts +52 -0
- package/dist/tapd_methods/mint/subscribe_to_mint_events.d.ts.map +1 -0
- package/dist/tapd_methods/mint/subscribe_to_mint_events.js +91 -0
- package/dist/tapd_methods/mint/subscribe_to_mint_events.js.map +1 -0
- package/dist/tapd_methods/proofs/decode_asset_proof.d.ts +61 -0
- package/dist/tapd_methods/proofs/decode_asset_proof.d.ts.map +1 -0
- package/dist/tapd_methods/proofs/decode_asset_proof.js +129 -0
- package/dist/tapd_methods/proofs/decode_asset_proof.js.map +1 -0
- package/dist/tapd_methods/proofs/export_asset_proof.d.ts +39 -0
- package/dist/tapd_methods/proofs/export_asset_proof.d.ts.map +1 -0
- package/dist/tapd_methods/proofs/export_asset_proof.js +113 -0
- package/dist/tapd_methods/proofs/export_asset_proof.js.map +1 -0
- package/dist/tapd_methods/proofs/index.d.ts +13 -0
- package/dist/tapd_methods/proofs/index.d.ts.map +1 -0
- package/dist/tapd_methods/proofs/index.js +5 -0
- package/dist/tapd_methods/proofs/index.js.map +1 -0
- package/dist/tapd_methods/proofs/unpack_asset_proof_file.d.ts +29 -0
- package/dist/tapd_methods/proofs/unpack_asset_proof_file.d.ts.map +1 -0
- package/dist/tapd_methods/proofs/unpack_asset_proof_file.js +85 -0
- package/dist/tapd_methods/proofs/unpack_asset_proof_file.js.map +1 -0
- package/dist/tapd_methods/proofs/verify_asset_proof.d.ts +58 -0
- package/dist/tapd_methods/proofs/verify_asset_proof.d.ts.map +1 -0
- package/dist/tapd_methods/proofs/verify_asset_proof.js +110 -0
- package/dist/tapd_methods/proofs/verify_asset_proof.js.map +1 -0
- package/dist/tapd_methods/rfq/add_asset_buy_offer.d.ts +31 -0
- package/dist/tapd_methods/rfq/add_asset_buy_offer.d.ts.map +1 -0
- package/dist/tapd_methods/rfq/add_asset_buy_offer.js +88 -0
- package/dist/tapd_methods/rfq/add_asset_buy_offer.js.map +1 -0
- package/dist/tapd_methods/rfq/add_asset_buy_order.d.ts +79 -0
- package/dist/tapd_methods/rfq/add_asset_buy_order.d.ts.map +1 -0
- package/dist/tapd_methods/rfq/add_asset_buy_order.js +200 -0
- package/dist/tapd_methods/rfq/add_asset_buy_order.js.map +1 -0
- package/dist/tapd_methods/rfq/add_asset_sell_offer.d.ts +30 -0
- package/dist/tapd_methods/rfq/add_asset_sell_offer.d.ts.map +1 -0
- package/dist/tapd_methods/rfq/add_asset_sell_offer.js +87 -0
- package/dist/tapd_methods/rfq/add_asset_sell_offer.js.map +1 -0
- package/dist/tapd_methods/rfq/add_asset_sell_order.d.ts +79 -0
- package/dist/tapd_methods/rfq/add_asset_sell_order.d.ts.map +1 -0
- package/dist/tapd_methods/rfq/add_asset_sell_order.js +200 -0
- package/dist/tapd_methods/rfq/add_asset_sell_order.js.map +1 -0
- package/dist/tapd_methods/rfq/get_accepted_quotes.d.ts +52 -0
- package/dist/tapd_methods/rfq/get_accepted_quotes.d.ts.map +1 -0
- package/dist/tapd_methods/rfq/get_accepted_quotes.js +100 -0
- package/dist/tapd_methods/rfq/get_accepted_quotes.js.map +1 -0
- package/dist/tapd_methods/rfq/get_asset_forwards.d.ts +70 -0
- package/dist/tapd_methods/rfq/get_asset_forwards.d.ts.map +1 -0
- package/dist/tapd_methods/rfq/get_asset_forwards.js +185 -0
- package/dist/tapd_methods/rfq/get_asset_forwards.js.map +1 -0
- package/dist/tapd_methods/rfq/index.d.ts +19 -0
- package/dist/tapd_methods/rfq/index.d.ts.map +1 -0
- package/dist/tapd_methods/rfq/index.js +8 -0
- package/dist/tapd_methods/rfq/index.js.map +1 -0
- package/dist/tapd_methods/rfq/subscribe_to_rfq_events.d.ts +68 -0
- package/dist/tapd_methods/rfq/subscribe_to_rfq_events.d.ts.map +1 -0
- package/dist/tapd_methods/rfq/subscribe_to_rfq_events.js +107 -0
- package/dist/tapd_methods/rfq/subscribe_to_rfq_events.js.map +1 -0
- package/dist/tapd_methods/send/burn_asset.d.ts +135 -0
- package/dist/tapd_methods/send/burn_asset.d.ts.map +1 -0
- package/dist/tapd_methods/send/burn_asset.js +220 -0
- package/dist/tapd_methods/send/burn_asset.js.map +1 -0
- package/dist/tapd_methods/send/get_asset_transfers.d.ts +73 -0
- package/dist/tapd_methods/send/get_asset_transfers.d.ts.map +1 -0
- package/dist/tapd_methods/send/get_asset_transfers.js +122 -0
- package/dist/tapd_methods/send/get_asset_transfers.js.map +1 -0
- package/dist/tapd_methods/send/index.d.ts +15 -0
- package/dist/tapd_methods/send/index.d.ts.map +1 -0
- package/dist/tapd_methods/send/index.js +6 -0
- package/dist/tapd_methods/send/index.js.map +1 -0
- package/dist/tapd_methods/send/register_asset_transfer.d.ts +77 -0
- package/dist/tapd_methods/send/register_asset_transfer.d.ts.map +1 -0
- package/dist/tapd_methods/send/register_asset_transfer.js +165 -0
- package/dist/tapd_methods/send/register_asset_transfer.js.map +1 -0
- package/dist/tapd_methods/send/send_asset.d.ts +94 -0
- package/dist/tapd_methods/send/send_asset.d.ts.map +1 -0
- package/dist/tapd_methods/send/send_asset.js +169 -0
- package/dist/tapd_methods/send/send_asset.js.map +1 -0
- package/dist/tapd_methods/send/subscribe_to_asset_sends.d.ts +117 -0
- package/dist/tapd_methods/send/subscribe_to_asset_sends.d.ts.map +1 -0
- package/dist/tapd_methods/send/subscribe_to_asset_sends.js +159 -0
- package/dist/tapd_methods/send/subscribe_to_asset_sends.js.map +1 -0
- package/dist/tapd_requests/decimal_as_fixed_point.d.ts +23 -0
- package/dist/tapd_requests/decimal_as_fixed_point.d.ts.map +1 -0
- package/dist/tapd_requests/decimal_as_fixed_point.js +31 -0
- package/dist/tapd_requests/decimal_as_fixed_point.js.map +1 -0
- package/dist/tapd_requests/fee_rate_as_tokens_per_kw.d.ts +13 -0
- package/dist/tapd_requests/fee_rate_as_tokens_per_kw.d.ts.map +1 -0
- package/dist/tapd_requests/fee_rate_as_tokens_per_kw.js +21 -0
- package/dist/tapd_requests/fee_rate_as_tokens_per_kw.js.map +1 -0
- package/dist/tapd_requests/index.d.ts +5 -0
- package/dist/tapd_requests/index.d.ts.map +1 -1
- package/dist/tapd_requests/index.js +5 -0
- package/dist/tapd_requests/index.js.map +1 -1
- package/dist/tapd_requests/is_method_unsupported.d.ts +24 -0
- package/dist/tapd_requests/is_method_unsupported.d.ts.map +1 -0
- package/dist/tapd_requests/is_method_unsupported.js +27 -0
- package/dist/tapd_requests/is_method_unsupported.js.map +1 -0
- package/dist/tapd_requests/mint_funding_request.d.ts +53 -0
- package/dist/tapd_requests/mint_funding_request.d.ts.map +1 -0
- package/dist/tapd_requests/mint_funding_request.js +48 -0
- package/dist/tapd_requests/mint_funding_request.js.map +1 -0
- package/dist/tapd_requests/script_key_type_query.d.ts +26 -0
- package/dist/tapd_requests/script_key_type_query.d.ts.map +1 -0
- package/dist/tapd_requests/script_key_type_query.js +41 -0
- package/dist/tapd_requests/script_key_type_query.js.map +1 -0
- package/dist/tapd_responses/asset_channel_rpc_error.d.ts +19 -0
- package/dist/tapd_responses/asset_channel_rpc_error.d.ts.map +1 -0
- package/dist/tapd_responses/asset_channel_rpc_error.js +69 -0
- package/dist/tapd_responses/asset_channel_rpc_error.js.map +1 -0
- package/dist/tapd_responses/batch_states.d.ts +4 -0
- package/dist/tapd_responses/batch_states.d.ts.map +1 -0
- package/dist/tapd_responses/batch_states.js +13 -0
- package/dist/tapd_responses/batch_states.js.map +1 -0
- package/dist/tapd_responses/fixed_point_as_decimal.d.ts +25 -0
- package/dist/tapd_responses/fixed_point_as_decimal.d.ts.map +1 -0
- package/dist/tapd_responses/fixed_point_as_decimal.js +39 -0
- package/dist/tapd_responses/fixed_point_as_decimal.js.map +1 -0
- package/dist/tapd_responses/index.d.ts +76 -0
- package/dist/tapd_responses/index.d.ts.map +1 -0
- package/dist/tapd_responses/index.js +30 -0
- package/dist/tapd_responses/index.js.map +1 -0
- package/dist/tapd_responses/long_key_as_number.d.ts +16 -0
- package/dist/tapd_responses/long_key_as_number.d.ts.map +1 -0
- package/dist/tapd_responses/long_key_as_number.js +28 -0
- package/dist/tapd_responses/long_key_as_number.js.map +1 -0
- package/dist/tapd_responses/mint_rpc_error.d.ts +19 -0
- package/dist/tapd_responses/mint_rpc_error.d.ts.map +1 -0
- package/dist/tapd_responses/mint_rpc_error.js +35 -0
- package/dist/tapd_responses/mint_rpc_error.js.map +1 -0
- package/dist/tapd_responses/outpoint_as_transaction.d.ts +19 -0
- package/dist/tapd_responses/outpoint_as_transaction.d.ts.map +1 -0
- package/dist/tapd_responses/outpoint_as_transaction.js +23 -0
- package/dist/tapd_responses/outpoint_as_transaction.js.map +1 -0
- package/dist/tapd_responses/receive_statuses.d.ts +4 -0
- package/dist/tapd_responses/receive_statuses.d.ts.map +1 -0
- package/dist/tapd_responses/receive_statuses.js +9 -0
- package/dist/tapd_responses/receive_statuses.js.map +1 -0
- package/dist/tapd_responses/rpc_addr_as_address.d.ts +79 -0
- package/dist/tapd_responses/rpc_addr_as_address.d.ts.map +1 -0
- package/dist/tapd_responses/rpc_addr_as_address.js +87 -0
- package/dist/tapd_responses/rpc_addr_as_address.js.map +1 -0
- package/dist/tapd_responses/rpc_addr_event_as_receive.d.ts +63 -0
- package/dist/tapd_responses/rpc_addr_event_as_receive.d.ts.map +1 -0
- package/dist/tapd_responses/rpc_addr_event_as_receive.js +64 -0
- package/dist/tapd_responses/rpc_addr_event_as_receive.js.map +1 -0
- package/dist/tapd_responses/rpc_asset_amount_as_amount.d.ts +34 -0
- package/dist/tapd_responses/rpc_asset_amount_as_amount.d.ts.map +1 -0
- package/dist/tapd_responses/rpc_asset_amount_as_amount.js +38 -0
- package/dist/tapd_responses/rpc_asset_amount_as_amount.js.map +1 -0
- package/dist/tapd_responses/rpc_asset_as_asset.d.ts +204 -0
- package/dist/tapd_responses/rpc_asset_as_asset.d.ts.map +1 -0
- package/dist/tapd_responses/rpc_asset_as_asset.js +174 -0
- package/dist/tapd_responses/rpc_asset_as_asset.js.map +1 -0
- package/dist/tapd_responses/rpc_asset_balance_as_balance.d.ts +53 -0
- package/dist/tapd_responses/rpc_asset_balance_as_balance.d.ts.map +1 -0
- package/dist/tapd_responses/rpc_asset_balance_as_balance.js +53 -0
- package/dist/tapd_responses/rpc_asset_balance_as_balance.js.map +1 -0
- package/dist/tapd_responses/rpc_asset_burn_as_burn.d.ts +51 -0
- package/dist/tapd_responses/rpc_asset_burn_as_burn.d.ts.map +1 -0
- package/dist/tapd_responses/rpc_asset_burn_as_burn.js +54 -0
- package/dist/tapd_responses/rpc_asset_burn_as_burn.js.map +1 -0
- package/dist/tapd_responses/rpc_asset_invoice_as_invoice.d.ts +39 -0
- package/dist/tapd_responses/rpc_asset_invoice_as_invoice.d.ts.map +1 -0
- package/dist/tapd_responses/rpc_asset_invoice_as_invoice.js +45 -0
- package/dist/tapd_responses/rpc_asset_invoice_as_invoice.js.map +1 -0
- package/dist/tapd_responses/rpc_asset_meta_as_metadata.d.ts +68 -0
- package/dist/tapd_responses/rpc_asset_meta_as_metadata.d.ts.map +1 -0
- package/dist/tapd_responses/rpc_asset_meta_as_metadata.js +70 -0
- package/dist/tapd_responses/rpc_asset_meta_as_metadata.js.map +1 -0
- package/dist/tapd_responses/rpc_asset_pay_req_as_request.d.ts +76 -0
- package/dist/tapd_responses/rpc_asset_pay_req_as_request.d.ts.map +1 -0
- package/dist/tapd_responses/rpc_asset_pay_req_as_request.js +73 -0
- package/dist/tapd_responses/rpc_asset_pay_req_as_request.js.map +1 -0
- package/dist/tapd_responses/rpc_asset_payment_as_payment.d.ts +39 -0
- package/dist/tapd_responses/rpc_asset_payment_as_payment.d.ts.map +1 -0
- package/dist/tapd_responses/rpc_asset_payment_as_payment.js +45 -0
- package/dist/tapd_responses/rpc_asset_payment_as_payment.js.map +1 -0
- package/dist/tapd_responses/rpc_batch_as_batch.d.ts +158 -0
- package/dist/tapd_responses/rpc_batch_as_batch.d.ts.map +1 -0
- package/dist/tapd_responses/rpc_batch_as_batch.js +181 -0
- package/dist/tapd_responses/rpc_batch_as_batch.js.map +1 -0
- package/dist/tapd_responses/rpc_buy_quote_as_quote.d.ts +83 -0
- package/dist/tapd_responses/rpc_buy_quote_as_quote.d.ts.map +1 -0
- package/dist/tapd_responses/rpc_buy_quote_as_quote.js +85 -0
- package/dist/tapd_responses/rpc_buy_quote_as_quote.js.map +1 -0
- package/dist/tapd_responses/rpc_decoded_proof_as_proof.d.ts +161 -0
- package/dist/tapd_responses/rpc_decoded_proof_as_proof.d.ts.map +1 -0
- package/dist/tapd_responses/rpc_decoded_proof_as_proof.js +138 -0
- package/dist/tapd_responses/rpc_decoded_proof_as_proof.js.map +1 -0
- package/dist/tapd_responses/rpc_forward_as_asset_forward.d.ts +100 -0
- package/dist/tapd_responses/rpc_forward_as_asset_forward.d.ts.map +1 -0
- package/dist/tapd_responses/rpc_forward_as_asset_forward.js +101 -0
- package/dist/tapd_responses/rpc_forward_as_asset_forward.js.map +1 -0
- package/dist/tapd_responses/rpc_grouped_assets_as_group.d.ts +76 -0
- package/dist/tapd_responses/rpc_grouped_assets_as_group.d.ts.map +1 -0
- package/dist/tapd_responses/rpc_grouped_assets_as_group.js +71 -0
- package/dist/tapd_responses/rpc_grouped_assets_as_group.js.map +1 -0
- package/dist/tapd_responses/rpc_managed_utxo_as_utxo.d.ts +63 -0
- package/dist/tapd_responses/rpc_managed_utxo_as_utxo.d.ts.map +1 -0
- package/dist/tapd_responses/rpc_managed_utxo_as_utxo.js +65 -0
- package/dist/tapd_responses/rpc_managed_utxo_as_utxo.js.map +1 -0
- package/dist/tapd_responses/rpc_receive_event_as_receive_update.d.ts +53 -0
- package/dist/tapd_responses/rpc_receive_event_as_receive_update.d.ts.map +1 -0
- package/dist/tapd_responses/rpc_receive_event_as_receive_update.js +52 -0
- package/dist/tapd_responses/rpc_receive_event_as_receive_update.js.map +1 -0
- package/dist/tapd_responses/rpc_rfq_event_as_event.d.ts +70 -0
- package/dist/tapd_responses/rpc_rfq_event_as_event.d.ts.map +1 -0
- package/dist/tapd_responses/rpc_rfq_event_as_event.js +89 -0
- package/dist/tapd_responses/rpc_rfq_event_as_event.js.map +1 -0
- package/dist/tapd_responses/rpc_sell_quote_as_quote.d.ts +80 -0
- package/dist/tapd_responses/rpc_sell_quote_as_quote.d.ts.map +1 -0
- package/dist/tapd_responses/rpc_sell_quote_as_quote.js +85 -0
- package/dist/tapd_responses/rpc_sell_quote_as_quote.js.map +1 -0
- package/dist/tapd_responses/rpc_send_event_as_send_event.d.ts +124 -0
- package/dist/tapd_responses/rpc_send_event_as_send_event.d.ts.map +1 -0
- package/dist/tapd_responses/rpc_send_event_as_send_event.js +161 -0
- package/dist/tapd_responses/rpc_send_event_as_send_event.js.map +1 -0
- package/dist/tapd_responses/rpc_transfer_as_transfer.d.ts +241 -0
- package/dist/tapd_responses/rpc_transfer_as_transfer.d.ts.map +1 -0
- package/dist/tapd_responses/rpc_transfer_as_transfer.js +212 -0
- package/dist/tapd_responses/rpc_transfer_as_transfer.js.map +1 -0
- package/dist/tapd_responses/short_channel_id_as_channel.d.ts +13 -0
- package/dist/tapd_responses/short_channel_id_as_channel.d.ts.map +1 -0
- package/dist/tapd_responses/short_channel_id_as_channel.js +26 -0
- package/dist/tapd_responses/short_channel_id_as_channel.js.map +1 -0
- package/package.json +7 -2
- package/src/index.ts +21 -0
- package/src/tapd_methods/address/create_asset_address.ts +7 -72
- package/src/tapd_methods/address/decode_asset_address.ts +117 -0
- package/src/tapd_methods/address/get_asset_addresses.ts +212 -0
- package/src/tapd_methods/address/get_asset_receives.ts +265 -0
- package/src/tapd_methods/address/index.ts +11 -0
- package/src/tapd_methods/address/subscribe_to_asset_receives.ts +114 -0
- package/src/tapd_methods/assets/get_asset_balances.ts +249 -0
- package/src/tapd_methods/assets/get_asset_burns.ts +133 -0
- package/src/tapd_methods/assets/get_asset_groups.ts +109 -0
- package/src/tapd_methods/assets/get_asset_metadata.ts +141 -0
- package/src/tapd_methods/assets/get_asset_utxos.ts +175 -0
- package/src/tapd_methods/assets/get_assets.ts +327 -0
- package/src/tapd_methods/assets/index.ts +18 -0
- package/src/tapd_methods/channels/asset_payment_args_error.ts +83 -0
- package/src/tapd_methods/channels/asset_payment_request.ts +76 -0
- package/src/tapd_methods/channels/create_asset_invoice.ts +387 -0
- package/src/tapd_methods/channels/decode_asset_payment_request.ts +192 -0
- package/src/tapd_methods/channels/emit_asset_payment.ts +78 -0
- package/src/tapd_methods/channels/encode_asset_custom_records.ts +187 -0
- package/src/tapd_methods/channels/get_asset_invoices.ts +258 -0
- package/src/tapd_methods/channels/get_asset_payments.ts +243 -0
- package/src/tapd_methods/channels/index.ts +30 -0
- package/src/tapd_methods/channels/open_asset_channel.ts +193 -0
- package/src/tapd_methods/channels/pay_asset_invoice.ts +171 -0
- package/src/tapd_methods/channels/send_asset_keysend.ts +196 -0
- package/src/tapd_methods/channels/send_asset_payment.ts +158 -0
- package/src/tapd_methods/channels/subscribe_to_asset_invoices.ts +134 -0
- package/src/tapd_methods/channels/subscribe_to_asset_payments.ts +126 -0
- package/src/tapd_methods/channels/subscribe_to_past_asset_payment.ts +132 -0
- package/src/tapd_methods/daemon/create_tapd_macaroon.ts +153 -0
- package/src/tapd_methods/daemon/index.ts +7 -0
- package/src/tapd_methods/daemon/set_tapd_debug_level.ts +90 -0
- package/src/tapd_methods/daemon/stop_tapd.ts +75 -0
- package/src/tapd_methods/index.ts +8 -0
- package/src/tapd_methods/info/get_tapd_info.ts +129 -0
- package/src/tapd_methods/info/index.ts +3 -0
- package/src/tapd_methods/mint/add_asset_to_mint_batch.ts +396 -0
- package/src/tapd_methods/mint/cancel_mint_batch.ts +95 -0
- package/src/tapd_methods/mint/finalize_mint_batch.ts +181 -0
- package/src/tapd_methods/mint/fund_mint_batch.ts +193 -0
- package/src/tapd_methods/mint/get_mint_batches.ts +162 -0
- package/src/tapd_methods/mint/index.ts +20 -0
- package/src/tapd_methods/mint/seal_mint_batch.ts +184 -0
- package/src/tapd_methods/mint/subscribe_to_mint_events.ts +104 -0
- package/src/tapd_methods/proofs/decode_asset_proof.ts +175 -0
- package/src/tapd_methods/proofs/export_asset_proof.ts +169 -0
- package/src/tapd_methods/proofs/index.ts +12 -0
- package/src/tapd_methods/proofs/unpack_asset_proof_file.ts +126 -0
- package/src/tapd_methods/proofs/verify_asset_proof.ts +156 -0
- package/src/tapd_methods/rfq/add_asset_buy_offer.ts +127 -0
- package/src/tapd_methods/rfq/add_asset_buy_order.ts +279 -0
- package/src/tapd_methods/rfq/add_asset_sell_offer.ts +126 -0
- package/src/tapd_methods/rfq/add_asset_sell_order.ts +279 -0
- package/src/tapd_methods/rfq/get_accepted_quotes.ts +137 -0
- package/src/tapd_methods/rfq/get_asset_forwards.ts +259 -0
- package/src/tapd_methods/rfq/index.ts +18 -0
- package/src/tapd_methods/rfq/subscribe_to_rfq_events.ts +130 -0
- package/src/tapd_methods/send/burn_asset.ts +280 -0
- package/src/tapd_methods/send/get_asset_transfers.ts +161 -0
- package/src/tapd_methods/send/index.ts +14 -0
- package/src/tapd_methods/send/register_asset_transfer.ts +219 -0
- package/src/tapd_methods/send/send_asset.ts +223 -0
- package/src/tapd_methods/send/subscribe_to_asset_sends.ts +181 -0
- package/src/tapd_requests/decimal_as_fixed_point.ts +36 -0
- package/src/tapd_requests/fee_rate_as_tokens_per_kw.ts +23 -0
- package/src/tapd_requests/index.ts +5 -0
- package/src/tapd_requests/is_method_unsupported.ts +33 -0
- package/src/tapd_requests/mint_funding_request.ts +57 -0
- package/src/tapd_requests/script_key_type_query.ts +44 -0
- package/src/tapd_responses/asset_channel_rpc_error.ts +73 -0
- package/src/tapd_responses/batch_states.ts +12 -0
- package/src/tapd_responses/fixed_point_as_decimal.ts +51 -0
- package/src/tapd_responses/index.ts +75 -0
- package/src/tapd_responses/long_key_as_number.ts +31 -0
- package/src/tapd_responses/mint_rpc_error.ts +39 -0
- package/src/tapd_responses/outpoint_as_transaction.ts +25 -0
- package/src/tapd_responses/receive_statuses.ts +8 -0
- package/src/tapd_responses/rpc_addr_as_address.ts +138 -0
- package/src/tapd_responses/rpc_addr_event_as_receive.ts +103 -0
- package/src/tapd_responses/rpc_asset_amount_as_amount.ts +57 -0
- package/src/tapd_responses/rpc_asset_as_asset.ts +299 -0
- package/src/tapd_responses/rpc_asset_balance_as_balance.ts +85 -0
- package/src/tapd_responses/rpc_asset_burn_as_burn.ts +85 -0
- package/src/tapd_responses/rpc_asset_invoice_as_invoice.ts +62 -0
- package/src/tapd_responses/rpc_asset_meta_as_metadata.ts +113 -0
- package/src/tapd_responses/rpc_asset_pay_req_as_request.ts +114 -0
- package/src/tapd_responses/rpc_asset_payment_as_payment.ts +62 -0
- package/src/tapd_responses/rpc_batch_as_batch.ts +281 -0
- package/src/tapd_responses/rpc_buy_quote_as_quote.ts +139 -0
- package/src/tapd_responses/rpc_decoded_proof_as_proof.ts +229 -0
- package/src/tapd_responses/rpc_forward_as_asset_forward.ts +164 -0
- package/src/tapd_responses/rpc_grouped_assets_as_group.ts +117 -0
- package/src/tapd_responses/rpc_managed_utxo_as_utxo.ts +105 -0
- package/src/tapd_responses/rpc_receive_event_as_receive_update.ts +84 -0
- package/src/tapd_responses/rpc_rfq_event_as_event.ts +123 -0
- package/src/tapd_responses/rpc_sell_quote_as_quote.ts +136 -0
- package/src/tapd_responses/rpc_send_event_as_send_event.ts +245 -0
- package/src/tapd_responses/rpc_transfer_as_transfer.ts +366 -0
- package/src/tapd_responses/short_channel_id_as_channel.ts +30 -0
- package/src/typescript/invoices.d.ts +30 -0
- package/src/typescript/lightning_lnd_responses.d.ts +44 -0
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
import {auto as asyncAuto} from 'async';
|
|
2
|
+
import {returnResult} from 'asyncjs-util';
|
|
3
|
+
|
|
4
|
+
import {isConnectionFailure} from '../../tapd_requests/index.js';
|
|
5
|
+
import {isPermissionDenied} from '../../tapd_requests/index.js';
|
|
6
|
+
import {isTapd} from '../../tapd_requests/index.js';
|
|
7
|
+
import {assetChannelRpcError} from '../../tapd_responses/index.js';
|
|
8
|
+
import type {AuthenticatedTapdArgs} from '../../typescript/index.js';
|
|
9
|
+
import type {TapdCallback} from '../../typescript/index.js';
|
|
10
|
+
import type {TapdError} from '../../typescript/index.js';
|
|
11
|
+
import type {TapdMethod} from '../../typescript/index.js';
|
|
12
|
+
|
|
13
|
+
const {from} = Buffer;
|
|
14
|
+
const isAssetId = (n: string) => /^[0-9A-F]{64}$/i.test(n);
|
|
15
|
+
const isNumeric = (n: unknown) => typeof n === 'string' && /^\d+$/.test(n);
|
|
16
|
+
const isPositive = (n: string) => isNumeric(n) && BigInt(n) > BigInt(0);
|
|
17
|
+
const isPublicKey = (n: string) => /^0[23][0-9A-F]{64}$/i.test(n);
|
|
18
|
+
const {isSafeInteger} = Number;
|
|
19
|
+
const isTransactionId = (n: unknown) => /^[0-9a-f]{64}$/i.test(String(n));
|
|
20
|
+
const maxFeeRate = 4294967295;
|
|
21
|
+
const method = 'fundChannel';
|
|
22
|
+
const type = 'tapchannel';
|
|
23
|
+
|
|
24
|
+
export type OpenAssetChannelArgs = AuthenticatedTapdArgs<{
|
|
25
|
+
/** Asset Units To Fund the Channel With Numeric String */
|
|
26
|
+
amount: string;
|
|
27
|
+
/** Asset Id Hex String */
|
|
28
|
+
asset_id?: string;
|
|
29
|
+
/** Chain Fee Tokens Per Virtual Byte Number */
|
|
30
|
+
chain_fee_tokens_per_vbyte: number;
|
|
31
|
+
/** Tokens To Give To the Peer Number */
|
|
32
|
+
give_tokens?: number;
|
|
33
|
+
/** Asset Group Key Hex String */
|
|
34
|
+
group_key?: string;
|
|
35
|
+
/** Connected Peer Public Key Hex String */
|
|
36
|
+
partner_public_key: string;
|
|
37
|
+
}>;
|
|
38
|
+
|
|
39
|
+
export type OpenAssetChannelResult = {
|
|
40
|
+
/** Funding Transaction Id Hex */
|
|
41
|
+
transaction_id: string;
|
|
42
|
+
/** Funding Transaction Output Index */
|
|
43
|
+
transaction_vout: number;
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
type Tasks = {
|
|
47
|
+
open: OpenAssetChannelResult;
|
|
48
|
+
validate: undefined;
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
/** Open a channel that is funded with an asset
|
|
52
|
+
|
|
53
|
+
The peer must be connected. tapd sets the satoshi amount of the channel.
|
|
54
|
+
|
|
55
|
+
tapd must run inside litd, with lnd and tapd in integrated mode
|
|
56
|
+
|
|
57
|
+
Requires `channels:write` permission
|
|
58
|
+
|
|
59
|
+
An `asset_id` or a `group_key` is required, but not both
|
|
60
|
+
|
|
61
|
+
`give_tokens` is a gift to the peer, in the same way as with openChannel
|
|
62
|
+
|
|
63
|
+
{
|
|
64
|
+
amount: <Asset Units To Fund the Channel With Numeric String>
|
|
65
|
+
[asset_id]: <Asset Id Hex String>
|
|
66
|
+
chain_fee_tokens_per_vbyte: <Chain Fee Tokens Per Virtual Byte Number>
|
|
67
|
+
[give_tokens]: <Tokens To Give To the Peer Number>
|
|
68
|
+
[group_key]: <Asset Group Key Hex String>
|
|
69
|
+
partner_public_key: <Connected Peer Public Key Hex String>
|
|
70
|
+
tapd: <Authenticated tapd API Object>
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
@returns via cbk or Promise
|
|
74
|
+
{
|
|
75
|
+
transaction_id: <Funding Transaction Id Hex String>
|
|
76
|
+
transaction_vout: <Funding Transaction Output Index Number>
|
|
77
|
+
}
|
|
78
|
+
*/
|
|
79
|
+
const openAssetChannel: TapdMethod<
|
|
80
|
+
OpenAssetChannelArgs,
|
|
81
|
+
OpenAssetChannelResult
|
|
82
|
+
> = (
|
|
83
|
+
args: OpenAssetChannelArgs,
|
|
84
|
+
cbk?: TapdCallback<OpenAssetChannelResult>,
|
|
85
|
+
) => {
|
|
86
|
+
return new Promise((resolve, reject) => {
|
|
87
|
+
return asyncAuto<Tasks, TapdError>(
|
|
88
|
+
{
|
|
89
|
+
// Check arguments
|
|
90
|
+
validate: cbk => {
|
|
91
|
+
if (!isPositive(args.amount)) {
|
|
92
|
+
return cbk([400, 'ExpectedAssetAmountToOpenAssetChannel']);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
if (!args.asset_id && !args.group_key) {
|
|
96
|
+
return cbk([400, 'ExpectedAssetIdOrGroupKeyToOpenAssetChannel']);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
if (!!args.asset_id && !!args.group_key) {
|
|
100
|
+
return cbk([400, 'UnexpectedAssetIdAndGroupKeyForAssetChannel']);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
if (!!args.asset_id && !isAssetId(args.asset_id)) {
|
|
104
|
+
return cbk([400, 'ExpectedAssetIdHexToOpenAssetChannel']);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
const feeRate = args.chain_fee_tokens_per_vbyte;
|
|
108
|
+
|
|
109
|
+
if (!isSafeInteger(feeRate) || feeRate < 1 || feeRate > maxFeeRate) {
|
|
110
|
+
return cbk([400, 'ExpectedChainFeeRateToOpenAssetChannel']);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
const give = args.give_tokens;
|
|
114
|
+
|
|
115
|
+
if (give !== undefined && (!isSafeInteger(give) || give < 0)) {
|
|
116
|
+
return cbk([400, 'ExpectedGiveTokensToOpenAssetChannel']);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
if (!!args.group_key && !isPublicKey(args.group_key)) {
|
|
120
|
+
return cbk([400, 'ExpectedGroupKeyHexToOpenAssetChannel']);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
if (
|
|
124
|
+
!args.partner_public_key ||
|
|
125
|
+
!isPublicKey(args.partner_public_key)
|
|
126
|
+
) {
|
|
127
|
+
return cbk([400, 'ExpectedPartnerPublicKeyToOpenAssetChannel']);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
if (!isTapd({method, type, tapd: args.tapd})) {
|
|
131
|
+
return cbk([400, 'ExpectedAuthenticatedTapdToOpenAssetChannel']);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
return cbk();
|
|
135
|
+
},
|
|
136
|
+
|
|
137
|
+
// Open the channel
|
|
138
|
+
open: [
|
|
139
|
+
'validate',
|
|
140
|
+
({}, cbk) => {
|
|
141
|
+
const request = {
|
|
142
|
+
asset_amount: args.amount,
|
|
143
|
+
asset_id: from(args.asset_id || '', 'hex'),
|
|
144
|
+
fee_rate_sat_per_vbyte: args.chain_fee_tokens_per_vbyte,
|
|
145
|
+
group_key: from(args.group_key || '', 'hex'),
|
|
146
|
+
peer_pubkey: from(args.partner_public_key, 'hex'),
|
|
147
|
+
push_sat: args.give_tokens || 0,
|
|
148
|
+
};
|
|
149
|
+
|
|
150
|
+
return args.tapd[type][method](request, (err: any, res: any) => {
|
|
151
|
+
if (isConnectionFailure({err})) {
|
|
152
|
+
return cbk([503, 'FailedToConnectToTapdToOpenAssetChannel']);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
if (isPermissionDenied({err})) {
|
|
156
|
+
return cbk([403, 'PermissionDeniedToOpenAssetChannel']);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
const knownError = assetChannelRpcError({err});
|
|
160
|
+
|
|
161
|
+
if (!!knownError) {
|
|
162
|
+
return cbk(knownError);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
if (!!err) {
|
|
166
|
+
return cbk([503, 'UnexpectedErrorOpeningAssetChannel', {err}]);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
if (!res || !isTransactionId(res.txid)) {
|
|
170
|
+
return cbk([
|
|
171
|
+
503,
|
|
172
|
+
'ExpectedFundingTransactionIdForAssetChannel',
|
|
173
|
+
]);
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
if (!isSafeInteger(res.output_index) || res.output_index < 0) {
|
|
177
|
+
return cbk([503, 'ExpectedFundingOutputIndexForAssetChannel']);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
return cbk(null, {
|
|
181
|
+
transaction_id: res.txid,
|
|
182
|
+
transaction_vout: res.output_index,
|
|
183
|
+
});
|
|
184
|
+
});
|
|
185
|
+
},
|
|
186
|
+
],
|
|
187
|
+
},
|
|
188
|
+
returnResult({reject, resolve, of: 'open'}, cbk),
|
|
189
|
+
);
|
|
190
|
+
});
|
|
191
|
+
};
|
|
192
|
+
|
|
193
|
+
export default openAssetChannel;
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import {auto as asyncAuto} from 'async';
|
|
2
|
+
import {returnResult} from 'asyncjs-util';
|
|
3
|
+
|
|
4
|
+
import {isTapd} from '../../tapd_requests/index.js';
|
|
5
|
+
import type {AuthenticatedTapdArgs} from '../../typescript/index.js';
|
|
6
|
+
import type {TapdCallback} from '../../typescript/index.js';
|
|
7
|
+
import type {TapdError} from '../../typescript/index.js';
|
|
8
|
+
import type {TapdMethod} from '../../typescript/index.js';
|
|
9
|
+
import assetPaymentArgsError from './asset_payment_args_error.js';
|
|
10
|
+
import assetPaymentRequest from './asset_payment_request.js';
|
|
11
|
+
import type {AssetPaymentRequestArgs} from './asset_payment_request.js';
|
|
12
|
+
import sendAssetPayment from './send_asset_payment.js';
|
|
13
|
+
import type {SendAssetPaymentResult} from './send_asset_payment.js';
|
|
14
|
+
|
|
15
|
+
const isRfqId = (n: string) => /^[0-9A-F]{64}$/i.test(n);
|
|
16
|
+
const method = 'sendPayment';
|
|
17
|
+
const name = 'PayAssetInvoice';
|
|
18
|
+
const type = 'tapchannel';
|
|
19
|
+
|
|
20
|
+
export type PayAssetInvoiceArgs = AuthenticatedTapdArgs<
|
|
21
|
+
AssetPaymentRequestArgs & {
|
|
22
|
+
/** BOLT 11 Payment Request String */
|
|
23
|
+
request: string;
|
|
24
|
+
/** Accepted Sell Quote Id Hex String */
|
|
25
|
+
rfq_id?: string;
|
|
26
|
+
}
|
|
27
|
+
>;
|
|
28
|
+
|
|
29
|
+
export type PayAssetInvoiceResult = SendAssetPaymentResult;
|
|
30
|
+
|
|
31
|
+
type Tasks = {
|
|
32
|
+
pay: PayAssetInvoiceResult;
|
|
33
|
+
validate: undefined;
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
/** Pay a payment request with an asset, over an asset channel
|
|
37
|
+
|
|
38
|
+
The channel peer sells satoshis for the asset, at a rate in an RFQ quote
|
|
39
|
+
|
|
40
|
+
tapd must run inside litd, with lnd and tapd in integrated mode
|
|
41
|
+
|
|
42
|
+
Requires `channels:write` permission
|
|
43
|
+
|
|
44
|
+
An `asset_id` or a `group_key` is required, but not both
|
|
45
|
+
|
|
46
|
+
Use an `rfq_id` of an accepted sell quote to pay with that quote
|
|
47
|
+
|
|
48
|
+
Without `max_fee` or `max_fee_mtokens`, only routes with no fee are used,
|
|
49
|
+
the same as lnd
|
|
50
|
+
|
|
51
|
+
The default `pathfinding_timeout` is 25 seconds. The default `max_paths` is 1.
|
|
52
|
+
|
|
53
|
+
tapd rejects a payment that is too small to carry one asset unit, unless
|
|
54
|
+
`is_overpay_allowed` is set
|
|
55
|
+
|
|
56
|
+
{
|
|
57
|
+
[asset_id]: <Asset Id Hex String>
|
|
58
|
+
[group_key]: <Asset Group Key Hex String>
|
|
59
|
+
[is_overpay_allowed]: <Allow a Payment Above the Request Amount Bool>
|
|
60
|
+
[max_fee]: <Maximum Fee Tokens Number>
|
|
61
|
+
[max_fee_mtokens]: <Maximum Fee Millitokens String>
|
|
62
|
+
[max_paths]: <Maximum Payment Paths Number>
|
|
63
|
+
[pathfinding_timeout]: <Time To Spend Finding a Route Milliseconds Number>
|
|
64
|
+
[peer_public_key]: <RFQ Peer Public Key Hex String>
|
|
65
|
+
[price_oracle_metadata]: <Price Oracle Metadata String>
|
|
66
|
+
request: <BOLT 11 Payment Request String>
|
|
67
|
+
[rfq_id]: <Accepted Sell Quote Id Hex String>
|
|
68
|
+
tapd: <Authenticated tapd API Object>
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
@returns via cbk or Promise
|
|
72
|
+
{
|
|
73
|
+
confirmed_at: <Payment Confirmed At ISO 8601 Date String>
|
|
74
|
+
created_at: <Payment Created At ISO 8601 Date String>
|
|
75
|
+
destination: <Payment Destination Public Key Hex String>
|
|
76
|
+
fee: <Total Fee Tokens Paid Rounded Down Number>
|
|
77
|
+
fee_mtokens: <Total Fee Millitokens Paid String>
|
|
78
|
+
hops: [{
|
|
79
|
+
channel: <Standard Format Channel Id String>
|
|
80
|
+
channel_capacity: <Channel Capacity Tokens Number>
|
|
81
|
+
fee: <Fee Tokens Rounded Down Number>
|
|
82
|
+
fee_mtokens: <Fee Millitokens String>
|
|
83
|
+
forward: <Forward Tokens Number>
|
|
84
|
+
forward_mtokens: <Forward Millitokens String>
|
|
85
|
+
public_key: <Public Key Hex String>
|
|
86
|
+
timeout: <Timeout Block Height Number>
|
|
87
|
+
}]
|
|
88
|
+
id: <Payment Hash Hex String>
|
|
89
|
+
[index]: <Payment Index Number String>
|
|
90
|
+
mtokens: <Total Millitokens Paid String>
|
|
91
|
+
paths: [{
|
|
92
|
+
fee_mtokens: <Total Fee Millitokens Paid String>
|
|
93
|
+
hops: [<Hop Object>]
|
|
94
|
+
mtokens: <Total Millitokens Paid String>
|
|
95
|
+
}]
|
|
96
|
+
quotes: [{
|
|
97
|
+
[accepted_max_mtokens]: <Accepted Maximum Payment Millitokens String>
|
|
98
|
+
amount: <Asset Units Numeric String>
|
|
99
|
+
[asset_id]: <Asset Id Hex String>
|
|
100
|
+
channel: <Channel To Pay Over Standard Format Channel Id String>
|
|
101
|
+
expires_at: <Quote Expires At ISO 8601 Date String>
|
|
102
|
+
[group_key]: <Asset Group BIP340 Public Key Hex String>
|
|
103
|
+
id: <Quote Request Id Hex String>
|
|
104
|
+
min_transportable_mtokens: <Minimum Millitokens To Send One Unit String>
|
|
105
|
+
peer_public_key: <Peer Public Key Hex String>
|
|
106
|
+
[price_oracle_metadata]: <Price Oracle Metadata String>
|
|
107
|
+
rate: <Bid Rate Asset Units Per BTC Exact Decimal String>
|
|
108
|
+
}]
|
|
109
|
+
[request]: <BOLT 11 Payment Request String>
|
|
110
|
+
safe_fee: <Total Fee Tokens Paid Rounded Up Number>
|
|
111
|
+
safe_tokens: <Total Tokens Paid, Rounded Up Number>
|
|
112
|
+
secret: <Payment Preimage Hex String>
|
|
113
|
+
timeout: <Expiration Block Height Number>
|
|
114
|
+
tokens: <Total Tokens Paid Rounded Down Number>
|
|
115
|
+
}
|
|
116
|
+
*/
|
|
117
|
+
const payAssetInvoice: TapdMethod<
|
|
118
|
+
PayAssetInvoiceArgs,
|
|
119
|
+
PayAssetInvoiceResult
|
|
120
|
+
> = (args: PayAssetInvoiceArgs, cbk?: TapdCallback<PayAssetInvoiceResult>) => {
|
|
121
|
+
return new Promise((resolve, reject) => {
|
|
122
|
+
return asyncAuto<Tasks, TapdError>(
|
|
123
|
+
{
|
|
124
|
+
// Check arguments
|
|
125
|
+
validate: cbk => {
|
|
126
|
+
const argsError = assetPaymentArgsError({args, name});
|
|
127
|
+
|
|
128
|
+
if (!!argsError) {
|
|
129
|
+
return cbk(argsError);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
if (!args.request || typeof args.request !== 'string') {
|
|
133
|
+
return cbk([400, 'ExpectedPaymentRequestToPayAssetInvoice']);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
if (!!args.rfq_id && !isRfqId(args.rfq_id)) {
|
|
137
|
+
return cbk([400, 'ExpectedRfqIdHexToPayAssetInvoice']);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
if (!isTapd({method, type, tapd: args.tapd})) {
|
|
141
|
+
return cbk([400, 'ExpectedAuthenticatedTapdToPayAssetInvoice']);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
return cbk();
|
|
145
|
+
},
|
|
146
|
+
|
|
147
|
+
// Pay the payment request
|
|
148
|
+
pay: [
|
|
149
|
+
'validate',
|
|
150
|
+
({}, cbk) => {
|
|
151
|
+
const common = assetPaymentRequest(args);
|
|
152
|
+
|
|
153
|
+
const request = {
|
|
154
|
+
...common,
|
|
155
|
+
payment_request: {
|
|
156
|
+
...common.payment_request,
|
|
157
|
+
payment_request: args.request,
|
|
158
|
+
},
|
|
159
|
+
rfq_id: Buffer.from(args.rfq_id || '', 'hex'),
|
|
160
|
+
};
|
|
161
|
+
|
|
162
|
+
return sendAssetPayment({name, request, tapd: args.tapd}, cbk);
|
|
163
|
+
},
|
|
164
|
+
],
|
|
165
|
+
},
|
|
166
|
+
returnResult({reject, resolve, of: 'pay'}, cbk),
|
|
167
|
+
);
|
|
168
|
+
});
|
|
169
|
+
};
|
|
170
|
+
|
|
171
|
+
export default payAssetInvoice;
|
|
@@ -0,0 +1,196 @@
|
|
|
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
|
+
|
|
7
|
+
import {isTapd} from '../../tapd_requests/index.js';
|
|
8
|
+
import type {AuthenticatedTapdArgs} from '../../typescript/index.js';
|
|
9
|
+
import type {TapdCallback} from '../../typescript/index.js';
|
|
10
|
+
import type {TapdError} from '../../typescript/index.js';
|
|
11
|
+
import type {TapdMethod} from '../../typescript/index.js';
|
|
12
|
+
import assetPaymentArgsError from './asset_payment_args_error.js';
|
|
13
|
+
import assetPaymentRequest from './asset_payment_request.js';
|
|
14
|
+
import type {AssetPaymentRequestArgs} from './asset_payment_request.js';
|
|
15
|
+
import sendAssetPayment from './send_asset_payment.js';
|
|
16
|
+
import type {SendAssetPaymentResult} from './send_asset_payment.js';
|
|
17
|
+
|
|
18
|
+
const isHash = (n: string) => /^[0-9A-F]{64}$/i.test(n);
|
|
19
|
+
const isNumeric = (n: unknown) => typeof n === 'string' && /^\d+$/.test(n);
|
|
20
|
+
const isPositive = (n: string) => isNumeric(n) && BigInt(n) > BigInt(0);
|
|
21
|
+
const isPublicKey = (n: string) => /^0[23][0-9A-F]{64}$/i.test(n);
|
|
22
|
+
const {isSafeInteger} = Number;
|
|
23
|
+
const keySendRecordType = '5482373484';
|
|
24
|
+
const method = 'sendPayment';
|
|
25
|
+
// tapd needs at least the HTLC dust limit, litcli also sends this amount
|
|
26
|
+
const minTokens = 354;
|
|
27
|
+
const name = 'SendAssetKeysend';
|
|
28
|
+
const preimageByteLength = 32;
|
|
29
|
+
const sha256 = (n: Buffer) => createHash('sha256').update(n).digest();
|
|
30
|
+
const type = 'tapchannel';
|
|
31
|
+
|
|
32
|
+
export type SendAssetKeysendArgs = AuthenticatedTapdArgs<
|
|
33
|
+
Omit<AssetPaymentRequestArgs, 'is_overpay_allowed'> & {
|
|
34
|
+
/** Asset Units To Send Numeric String */
|
|
35
|
+
amount: string;
|
|
36
|
+
/** Destination Peer Public Key Hex String */
|
|
37
|
+
destination: string;
|
|
38
|
+
/** Payment Preimage Hex String */
|
|
39
|
+
secret?: string;
|
|
40
|
+
/** Tokens That Carry the Asset Units Number */
|
|
41
|
+
tokens?: number;
|
|
42
|
+
}
|
|
43
|
+
>;
|
|
44
|
+
|
|
45
|
+
export type SendAssetKeysendResult = SendAssetPaymentResult;
|
|
46
|
+
|
|
47
|
+
type Tasks = {
|
|
48
|
+
send: SendAssetKeysendResult;
|
|
49
|
+
validate: undefined;
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
/** Send an asset to a channel peer with a keysend payment
|
|
53
|
+
|
|
54
|
+
tapd only sends an asset keysend payment to a direct asset channel peer
|
|
55
|
+
|
|
56
|
+
tapd must run inside litd, with lnd and tapd in integrated mode
|
|
57
|
+
|
|
58
|
+
Requires `channels:write` permission
|
|
59
|
+
|
|
60
|
+
An `asset_id` or a `group_key` is required, but not both
|
|
61
|
+
|
|
62
|
+
The default `tokens` is 354, the smallest amount that tapd accepts
|
|
63
|
+
|
|
64
|
+
A random `secret` is used when there is no `secret`
|
|
65
|
+
|
|
66
|
+
Without `max_fee` or `max_fee_mtokens`, only routes with no fee are used,
|
|
67
|
+
the same as lnd
|
|
68
|
+
|
|
69
|
+
{
|
|
70
|
+
amount: <Asset Units To Send Numeric String>
|
|
71
|
+
[asset_id]: <Asset Id Hex String>
|
|
72
|
+
destination: <Destination Peer Public Key Hex String>
|
|
73
|
+
[group_key]: <Asset Group Key Hex String>
|
|
74
|
+
[max_fee]: <Maximum Fee Tokens Number>
|
|
75
|
+
[max_fee_mtokens]: <Maximum Fee Millitokens String>
|
|
76
|
+
[max_paths]: <Maximum Payment Paths Number>
|
|
77
|
+
[pathfinding_timeout]: <Time To Spend Finding a Route Milliseconds Number>
|
|
78
|
+
[peer_public_key]: <RFQ Peer Public Key Hex String>
|
|
79
|
+
[price_oracle_metadata]: <Price Oracle Metadata String>
|
|
80
|
+
[secret]: <Payment Preimage Hex String>
|
|
81
|
+
tapd: <Authenticated tapd API Object>
|
|
82
|
+
[tokens]: <Tokens That Carry the Asset Units Number>
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
@returns via cbk or Promise
|
|
86
|
+
{
|
|
87
|
+
confirmed_at: <Payment Confirmed At ISO 8601 Date String>
|
|
88
|
+
created_at: <Payment Created At ISO 8601 Date String>
|
|
89
|
+
destination: <Payment Destination Public Key Hex String>
|
|
90
|
+
fee: <Total Fee Tokens Paid Rounded Down Number>
|
|
91
|
+
fee_mtokens: <Total Fee Millitokens Paid String>
|
|
92
|
+
hops: [{
|
|
93
|
+
channel: <Standard Format Channel Id String>
|
|
94
|
+
channel_capacity: <Channel Capacity Tokens Number>
|
|
95
|
+
fee: <Fee Tokens Rounded Down Number>
|
|
96
|
+
fee_mtokens: <Fee Millitokens String>
|
|
97
|
+
forward: <Forward Tokens Number>
|
|
98
|
+
forward_mtokens: <Forward Millitokens String>
|
|
99
|
+
public_key: <Public Key Hex String>
|
|
100
|
+
timeout: <Timeout Block Height Number>
|
|
101
|
+
}]
|
|
102
|
+
id: <Payment Hash Hex String>
|
|
103
|
+
[index]: <Payment Index Number String>
|
|
104
|
+
mtokens: <Total Millitokens Paid String>
|
|
105
|
+
paths: [{
|
|
106
|
+
fee_mtokens: <Total Fee Millitokens Paid String>
|
|
107
|
+
hops: [<Hop Object>]
|
|
108
|
+
mtokens: <Total Millitokens Paid String>
|
|
109
|
+
}]
|
|
110
|
+
quotes: [<Accepted Sell Quote Object>]
|
|
111
|
+
safe_fee: <Total Fee Tokens Paid Rounded Up Number>
|
|
112
|
+
safe_tokens: <Total Tokens Paid, Rounded Up Number>
|
|
113
|
+
secret: <Payment Preimage Hex String>
|
|
114
|
+
timeout: <Expiration Block Height Number>
|
|
115
|
+
tokens: <Total Tokens Paid Rounded Down Number>
|
|
116
|
+
}
|
|
117
|
+
*/
|
|
118
|
+
const sendAssetKeysend: TapdMethod<
|
|
119
|
+
SendAssetKeysendArgs,
|
|
120
|
+
SendAssetKeysendResult
|
|
121
|
+
> = (
|
|
122
|
+
args: SendAssetKeysendArgs,
|
|
123
|
+
cbk?: TapdCallback<SendAssetKeysendResult>,
|
|
124
|
+
) => {
|
|
125
|
+
return new Promise((resolve, reject) => {
|
|
126
|
+
return asyncAuto<Tasks, TapdError>(
|
|
127
|
+
{
|
|
128
|
+
// Check arguments
|
|
129
|
+
validate: cbk => {
|
|
130
|
+
if (!isPositive(args.amount)) {
|
|
131
|
+
return cbk([400, 'ExpectedAssetAmountToSendAssetKeysend']);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
const argsError = assetPaymentArgsError({args, name});
|
|
135
|
+
|
|
136
|
+
if (!!argsError) {
|
|
137
|
+
return cbk(argsError);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
if (!args.destination || !isPublicKey(args.destination)) {
|
|
141
|
+
return cbk([400, 'ExpectedDestinationToSendAssetKeysend']);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
if (!!args.secret && !isHash(args.secret)) {
|
|
145
|
+
return cbk([400, 'ExpectedPreimageHexToSendAssetKeysend']);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
if (!isTapd({method, type, tapd: args.tapd})) {
|
|
149
|
+
return cbk([400, 'ExpectedAuthenticatedTapdToSendAssetKeysend']);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
const tokens = args.tokens;
|
|
153
|
+
|
|
154
|
+
if (tokens !== undefined && !isSafeInteger(tokens)) {
|
|
155
|
+
return cbk([400, 'ExpectedIntegerTokensToSendAssetKeysend']);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
if (tokens !== undefined && tokens < minTokens) {
|
|
159
|
+
return cbk([400, 'ExpectedAtLeast354TokensToSendAssetKeysend']);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
return cbk();
|
|
163
|
+
},
|
|
164
|
+
|
|
165
|
+
// Send the keysend payment
|
|
166
|
+
send: [
|
|
167
|
+
'validate',
|
|
168
|
+
({}, cbk) => {
|
|
169
|
+
const common = assetPaymentRequest(args);
|
|
170
|
+
|
|
171
|
+
const preimage = !!args.secret
|
|
172
|
+
? Buffer.from(args.secret, 'hex')
|
|
173
|
+
: randomBytes(preimageByteLength);
|
|
174
|
+
|
|
175
|
+
const request = {
|
|
176
|
+
...common,
|
|
177
|
+
asset_amount: args.amount,
|
|
178
|
+
payment_request: {
|
|
179
|
+
...common.payment_request,
|
|
180
|
+
amt: args.tokens || minTokens,
|
|
181
|
+
dest: Buffer.from(args.destination, 'hex'),
|
|
182
|
+
dest_custom_records: {[keySendRecordType]: preimage},
|
|
183
|
+
payment_hash: sha256(preimage),
|
|
184
|
+
},
|
|
185
|
+
};
|
|
186
|
+
|
|
187
|
+
return sendAssetPayment({name, request, tapd: args.tapd}, cbk);
|
|
188
|
+
},
|
|
189
|
+
],
|
|
190
|
+
},
|
|
191
|
+
returnResult({reject, resolve, of: 'send'}, cbk),
|
|
192
|
+
);
|
|
193
|
+
});
|
|
194
|
+
};
|
|
195
|
+
|
|
196
|
+
export default sendAssetKeysend;
|