@getomnichain/omnichain 0.2.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/abstract_gas_pricing.js +27 -0
- package/dist/cjs/abstract_gas_pricing.js.map +1 -0
- package/dist/cjs/address.factory.js +81 -0
- package/dist/cjs/address.factory.js.map +1 -0
- package/dist/cjs/address.js +17 -0
- package/dist/cjs/address.js.map +1 -0
- package/dist/cjs/address_field.decorator.js +37 -0
- package/dist/cjs/address_field.decorator.js.map +1 -0
- package/dist/cjs/chain.base.js +118 -0
- package/dist/cjs/chain.base.js.map +1 -0
- package/dist/cjs/chain_ids.js +205 -0
- package/dist/cjs/chain_ids.js.map +1 -0
- package/dist/cjs/errors.js +69 -0
- package/dist/cjs/errors.js.map +1 -0
- package/dist/cjs/evm/evm_address.js +63 -0
- package/dist/cjs/evm/evm_address.js.map +1 -0
- package/dist/cjs/evm/evm_chain.js +690 -0
- package/dist/cjs/evm/evm_chain.js.map +1 -0
- package/dist/cjs/evm/evm_chains.js +530 -0
- package/dist/cjs/evm/evm_chains.js.map +1 -0
- package/dist/cjs/evm/evm_gas_estimate.js +76 -0
- package/dist/cjs/evm/evm_gas_estimate.js.map +1 -0
- package/dist/cjs/evm/evm_gas_pricing.js +62 -0
- package/dist/cjs/evm/evm_gas_pricing.js.map +1 -0
- package/dist/cjs/evm/evm_token.js +26 -0
- package/dist/cjs/evm/evm_token.js.map +1 -0
- package/dist/cjs/evm/evm_tokens.js +109 -0
- package/dist/cjs/evm/evm_tokens.js.map +1 -0
- package/dist/cjs/evm/evm_transaction_status.js +183 -0
- package/dist/cjs/evm/evm_transaction_status.js.map +1 -0
- package/dist/cjs/evm/index.js +26 -0
- package/dist/cjs/evm/index.js.map +1 -0
- package/dist/cjs/evm/unsigned_evm_transaction.js +22 -0
- package/dist/cjs/evm/unsigned_evm_transaction.js.map +1 -0
- package/dist/cjs/index.js +34 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/is_address.decorator.js +54 -0
- package/dist/cjs/is_address.decorator.js.map +1 -0
- package/dist/cjs/network_type.js +152 -0
- package/dist/cjs/network_type.js.map +1 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/priority.js +26 -0
- package/dist/cjs/priority.js.map +1 -0
- package/dist/cjs/solana/index.js +25 -0
- package/dist/cjs/solana/index.js.map +1 -0
- package/dist/cjs/solana/solana_address.js +49 -0
- package/dist/cjs/solana/solana_address.js.map +1 -0
- package/dist/cjs/solana/solana_chain.js +708 -0
- package/dist/cjs/solana/solana_chain.js.map +1 -0
- package/dist/cjs/solana/solana_chains.js +88 -0
- package/dist/cjs/solana/solana_chains.js.map +1 -0
- package/dist/cjs/solana/solana_gas_pricing.js +30 -0
- package/dist/cjs/solana/solana_gas_pricing.js.map +1 -0
- package/dist/cjs/solana/solana_token.js +38 -0
- package/dist/cjs/solana/solana_token.js.map +1 -0
- package/dist/cjs/solana/solana_tokens.js +29 -0
- package/dist/cjs/solana/solana_tokens.js.map +1 -0
- package/dist/cjs/solana/solana_transaction_status.js +149 -0
- package/dist/cjs/solana/solana_transaction_status.js.map +1 -0
- package/dist/cjs/solana/unsigned_solana_transaction.js +30 -0
- package/dist/cjs/solana/unsigned_solana_transaction.js.map +1 -0
- package/dist/cjs/token.js +66 -0
- package/dist/cjs/token.js.map +1 -0
- package/dist/cjs/ton/index.js +18 -0
- package/dist/cjs/ton/index.js.map +1 -0
- package/dist/cjs/ton/ton_address.js +57 -0
- package/dist/cjs/ton/ton_address.js.map +1 -0
- package/dist/cjs/transaction_status.js +283 -0
- package/dist/cjs/transaction_status.js.map +1 -0
- package/dist/cjs/unsigned_transaction.js +13 -0
- package/dist/cjs/unsigned_transaction.js.map +1 -0
- package/dist/cjs/utxo/btc/btc_address.js +43 -0
- package/dist/cjs/utxo/btc/btc_address.js.map +1 -0
- package/dist/cjs/utxo/btc/btc_chain.js +66 -0
- package/dist/cjs/utxo/btc/btc_chain.js.map +1 -0
- package/dist/cjs/utxo/btc/btc_chains.js +49 -0
- package/dist/cjs/utxo/btc/btc_chains.js.map +1 -0
- package/dist/cjs/utxo/btc/btc_token.js +15 -0
- package/dist/cjs/utxo/btc/btc_token.js.map +1 -0
- package/dist/cjs/utxo/btc/index.js +30 -0
- package/dist/cjs/utxo/btc/index.js.map +1 -0
- package/dist/cjs/utxo/btc/network_params.js +196 -0
- package/dist/cjs/utxo/btc/network_params.js.map +1 -0
- package/dist/cjs/utxo/btc/tools/asset_outpoint.js +16 -0
- package/dist/cjs/utxo/btc/tools/asset_outpoint.js.map +1 -0
- package/dist/cjs/utxo/btc/tools/bitcoin_core.tool.js +179 -0
- package/dist/cjs/utxo/btc/tools/bitcoin_core.tool.js.map +1 -0
- package/dist/cjs/utxo/btc/tools/esplora.tool.js +120 -0
- package/dist/cjs/utxo/btc/tools/esplora.tool.js.map +1 -0
- package/dist/cjs/utxo/btc/tools/inscription_index.js +3 -0
- package/dist/cjs/utxo/btc/tools/inscription_index.js.map +1 -0
- package/dist/cjs/utxo/btc/tools/ordiscan.tool.js +60 -0
- package/dist/cjs/utxo/btc/tools/ordiscan.tool.js.map +1 -0
- package/dist/cjs/utxo/btc/tools/rare_sat_index.js +3 -0
- package/dist/cjs/utxo/btc/tools/rare_sat_index.js.map +1 -0
- package/dist/cjs/utxo/btc/tools/rune_index.js +3 -0
- package/dist/cjs/utxo/btc/tools/rune_index.js.map +1 -0
- package/dist/cjs/utxo/btc/tools/unisat.tool.js +56 -0
- package/dist/cjs/utxo/btc/tools/unisat.tool.js.map +1 -0
- package/dist/cjs/utxo/coin_selection.js +160 -0
- package/dist/cjs/utxo/coin_selection.js.map +1 -0
- package/dist/cjs/utxo/doge/doge_chains.js +32 -0
- package/dist/cjs/utxo/doge/doge_chains.js.map +1 -0
- package/dist/cjs/utxo/doge/index.js +19 -0
- package/dist/cjs/utxo/doge/index.js.map +1 -0
- package/dist/cjs/utxo/doge/network_params.js +30 -0
- package/dist/cjs/utxo/doge/network_params.js.map +1 -0
- package/dist/cjs/utxo/ecc.js +47 -0
- package/dist/cjs/utxo/ecc.js.map +1 -0
- package/dist/cjs/utxo/fee.js +61 -0
- package/dist/cjs/utxo/fee.js.map +1 -0
- package/dist/cjs/utxo/index.js +36 -0
- package/dist/cjs/utxo/index.js.map +1 -0
- package/dist/cjs/utxo/ltc/index.js +19 -0
- package/dist/cjs/utxo/ltc/index.js.map +1 -0
- package/dist/cjs/utxo/ltc/ltc_chains.js +32 -0
- package/dist/cjs/utxo/ltc/ltc_chains.js.map +1 -0
- package/dist/cjs/utxo/ltc/network_params.js +33 -0
- package/dist/cjs/utxo/ltc/network_params.js.map +1 -0
- package/dist/cjs/utxo/script.js +59 -0
- package/dist/cjs/utxo/script.js.map +1 -0
- package/dist/cjs/utxo/tools/broadcaster.js +3 -0
- package/dist/cjs/utxo/tools/broadcaster.js.map +1 -0
- package/dist/cjs/utxo/tools/chain_tip_provider.js +3 -0
- package/dist/cjs/utxo/tools/chain_tip_provider.js.map +1 -0
- package/dist/cjs/utxo/tools/fee_estimator.js +3 -0
- package/dist/cjs/utxo/tools/fee_estimator.js.map +1 -0
- package/dist/cjs/utxo/tools/raw_transaction_provider.js +3 -0
- package/dist/cjs/utxo/tools/raw_transaction_provider.js.map +1 -0
- package/dist/cjs/utxo/tools/utxo_provider.js +3 -0
- package/dist/cjs/utxo/tools/utxo_provider.js.map +1 -0
- package/dist/cjs/utxo/unsigned_utxo_transaction.js +36 -0
- package/dist/cjs/utxo/unsigned_utxo_transaction.js.map +1 -0
- package/dist/cjs/utxo/utxo.js +3 -0
- package/dist/{utxo → cjs/utxo}/utxo.js.map +1 -1
- package/dist/cjs/utxo/utxo_chain.js +528 -0
- package/dist/cjs/utxo/utxo_chain.js.map +1 -0
- package/dist/cjs/utxo/utxo_chains.js +68 -0
- package/dist/cjs/utxo/utxo_chains.js.map +1 -0
- package/dist/cjs/utxo/utxo_gas_pricing.js +24 -0
- package/dist/cjs/utxo/utxo_gas_pricing.js.map +1 -0
- package/dist/cjs/utxo/utxo_network_params.js +18 -0
- package/dist/cjs/utxo/utxo_network_params.js.map +1 -0
- package/dist/cjs/utxo/utxo_transaction_status.js +95 -0
- package/dist/cjs/utxo/utxo_transaction_status.js.map +1 -0
- package/dist/esm/abstract_gas_pricing.d.ts.map +1 -0
- package/dist/esm/abstract_gas_pricing.js.map +1 -0
- package/dist/esm/address.d.ts.map +1 -0
- package/dist/esm/address.factory.d.ts.map +1 -0
- package/dist/esm/address.factory.js.map +1 -0
- package/dist/esm/address.js.map +1 -0
- package/dist/esm/address_field.decorator.d.ts.map +1 -0
- package/dist/esm/address_field.decorator.js.map +1 -0
- package/dist/esm/chain.base.d.ts.map +1 -0
- package/dist/esm/chain.base.js.map +1 -0
- package/dist/esm/chain_ids.d.ts.map +1 -0
- package/dist/esm/chain_ids.js.map +1 -0
- package/dist/esm/errors.d.ts.map +1 -0
- package/dist/esm/errors.js.map +1 -0
- package/dist/esm/evm/evm_address.d.ts.map +1 -0
- package/dist/esm/evm/evm_address.js.map +1 -0
- package/dist/esm/evm/evm_chain.d.ts.map +1 -0
- package/dist/esm/evm/evm_chain.js.map +1 -0
- package/dist/esm/evm/evm_chains.d.ts.map +1 -0
- package/dist/esm/evm/evm_chains.js.map +1 -0
- package/dist/esm/evm/evm_gas_estimate.d.ts.map +1 -0
- package/dist/esm/evm/evm_gas_estimate.js.map +1 -0
- package/dist/esm/evm/evm_gas_pricing.d.ts.map +1 -0
- package/dist/esm/evm/evm_gas_pricing.js.map +1 -0
- package/dist/esm/evm/evm_token.d.ts.map +1 -0
- package/dist/esm/evm/evm_token.js.map +1 -0
- package/dist/esm/evm/evm_tokens.d.ts.map +1 -0
- package/dist/esm/evm/evm_tokens.js.map +1 -0
- package/dist/esm/evm/evm_transaction_status.d.ts.map +1 -0
- package/dist/esm/evm/evm_transaction_status.js.map +1 -0
- package/dist/esm/evm/index.d.ts.map +1 -0
- package/dist/esm/evm/index.js.map +1 -0
- package/dist/esm/evm/unsigned_evm_transaction.d.ts.map +1 -0
- package/dist/esm/evm/unsigned_evm_transaction.js.map +1 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/is_address.decorator.d.ts.map +1 -0
- package/dist/esm/is_address.decorator.js.map +1 -0
- package/dist/esm/network_type.d.ts.map +1 -0
- package/dist/esm/network_type.js.map +1 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/priority.d.ts.map +1 -0
- package/dist/esm/priority.js.map +1 -0
- package/dist/esm/solana/index.d.ts.map +1 -0
- package/dist/esm/solana/index.js.map +1 -0
- package/dist/esm/solana/solana_address.d.ts.map +1 -0
- package/dist/esm/solana/solana_address.js.map +1 -0
- package/dist/esm/solana/solana_chain.d.ts.map +1 -0
- package/dist/esm/solana/solana_chain.js.map +1 -0
- package/dist/esm/solana/solana_chains.d.ts.map +1 -0
- package/dist/esm/solana/solana_chains.js.map +1 -0
- package/dist/esm/solana/solana_gas_pricing.d.ts.map +1 -0
- package/dist/esm/solana/solana_gas_pricing.js.map +1 -0
- package/dist/esm/solana/solana_token.d.ts.map +1 -0
- package/dist/esm/solana/solana_token.js.map +1 -0
- package/dist/esm/solana/solana_tokens.d.ts.map +1 -0
- package/dist/esm/solana/solana_tokens.js.map +1 -0
- package/dist/esm/solana/solana_transaction_status.d.ts.map +1 -0
- package/dist/esm/solana/solana_transaction_status.js.map +1 -0
- package/dist/esm/solana/unsigned_solana_transaction.d.ts.map +1 -0
- package/dist/esm/solana/unsigned_solana_transaction.js.map +1 -0
- package/dist/esm/token.d.ts.map +1 -0
- package/dist/esm/token.js.map +1 -0
- package/dist/esm/ton/index.d.ts.map +1 -0
- package/dist/esm/ton/index.js.map +1 -0
- package/dist/esm/ton/ton_address.d.ts.map +1 -0
- package/dist/esm/ton/ton_address.js.map +1 -0
- package/dist/esm/transaction_status.d.ts.map +1 -0
- package/dist/esm/transaction_status.js.map +1 -0
- package/dist/esm/unsigned_transaction.d.ts.map +1 -0
- package/dist/esm/unsigned_transaction.js.map +1 -0
- package/dist/esm/utxo/btc/btc_address.d.ts.map +1 -0
- package/dist/esm/utxo/btc/btc_address.js.map +1 -0
- package/dist/esm/utxo/btc/btc_chain.d.ts.map +1 -0
- package/dist/esm/utxo/btc/btc_chain.js.map +1 -0
- package/dist/esm/utxo/btc/btc_chains.d.ts.map +1 -0
- package/dist/esm/utxo/btc/btc_chains.js.map +1 -0
- package/dist/esm/utxo/btc/btc_token.d.ts.map +1 -0
- package/dist/esm/utxo/btc/btc_token.js.map +1 -0
- package/dist/esm/utxo/btc/index.d.ts.map +1 -0
- package/dist/esm/utxo/btc/index.js.map +1 -0
- package/dist/esm/utxo/btc/network_params.d.ts.map +1 -0
- package/dist/esm/utxo/btc/network_params.js.map +1 -0
- package/dist/esm/utxo/btc/tools/asset_outpoint.d.ts.map +1 -0
- package/dist/esm/utxo/btc/tools/asset_outpoint.js.map +1 -0
- package/dist/esm/utxo/btc/tools/bitcoin_core.tool.d.ts.map +1 -0
- package/dist/esm/utxo/btc/tools/bitcoin_core.tool.js.map +1 -0
- package/dist/esm/utxo/btc/tools/esplora.tool.d.ts.map +1 -0
- package/dist/esm/utxo/btc/tools/esplora.tool.js.map +1 -0
- package/dist/esm/utxo/btc/tools/inscription_index.d.ts.map +1 -0
- package/dist/esm/utxo/btc/tools/inscription_index.js.map +1 -0
- package/dist/esm/utxo/btc/tools/ordiscan.tool.d.ts.map +1 -0
- package/dist/esm/utxo/btc/tools/ordiscan.tool.js.map +1 -0
- package/dist/esm/utxo/btc/tools/rare_sat_index.d.ts.map +1 -0
- package/dist/esm/utxo/btc/tools/rare_sat_index.js.map +1 -0
- package/dist/esm/utxo/btc/tools/rune_index.d.ts.map +1 -0
- package/dist/esm/utxo/btc/tools/rune_index.js.map +1 -0
- package/dist/esm/utxo/btc/tools/unisat.tool.d.ts.map +1 -0
- package/dist/esm/utxo/btc/tools/unisat.tool.js.map +1 -0
- package/dist/esm/utxo/coin_selection.d.ts.map +1 -0
- package/dist/esm/utxo/coin_selection.js.map +1 -0
- package/dist/esm/utxo/doge/doge_chains.d.ts.map +1 -0
- package/dist/esm/utxo/doge/doge_chains.js.map +1 -0
- package/dist/esm/utxo/doge/index.d.ts.map +1 -0
- package/dist/esm/utxo/doge/index.js.map +1 -0
- package/dist/esm/utxo/doge/network_params.d.ts.map +1 -0
- package/dist/esm/utxo/doge/network_params.js.map +1 -0
- package/dist/esm/utxo/ecc.d.ts.map +1 -0
- package/dist/esm/utxo/ecc.js.map +1 -0
- package/dist/esm/utxo/fee.d.ts.map +1 -0
- package/dist/esm/utxo/fee.js.map +1 -0
- package/dist/esm/utxo/index.d.ts.map +1 -0
- package/dist/esm/utxo/index.js.map +1 -0
- package/dist/esm/utxo/ltc/index.d.ts.map +1 -0
- package/dist/esm/utxo/ltc/index.js.map +1 -0
- package/dist/{utxo/doge/doge_chains.d.ts.map → esm/utxo/ltc/ltc_chains.d.ts.map} +1 -1
- package/dist/{utxo/doge/doge_chains.js.map → esm/utxo/ltc/ltc_chains.js.map} +1 -1
- package/dist/esm/utxo/ltc/network_params.d.ts.map +1 -0
- package/dist/esm/utxo/ltc/network_params.js.map +1 -0
- package/dist/esm/utxo/script.d.ts.map +1 -0
- package/dist/esm/utxo/script.js.map +1 -0
- package/dist/esm/utxo/tools/broadcaster.d.ts.map +1 -0
- package/dist/esm/utxo/tools/broadcaster.js.map +1 -0
- package/dist/esm/utxo/tools/chain_tip_provider.d.ts.map +1 -0
- package/dist/esm/utxo/tools/chain_tip_provider.js.map +1 -0
- package/dist/esm/utxo/tools/fee_estimator.d.ts.map +1 -0
- package/dist/esm/utxo/tools/fee_estimator.js.map +1 -0
- package/dist/esm/utxo/tools/raw_transaction_provider.d.ts.map +1 -0
- package/dist/esm/utxo/tools/raw_transaction_provider.js.map +1 -0
- package/dist/esm/utxo/tools/utxo_provider.d.ts.map +1 -0
- package/dist/esm/utxo/tools/utxo_provider.js.map +1 -0
- package/dist/esm/utxo/unsigned_utxo_transaction.d.ts.map +1 -0
- package/dist/esm/utxo/unsigned_utxo_transaction.js.map +1 -0
- package/dist/esm/utxo/utxo.d.ts.map +1 -0
- package/dist/esm/utxo/utxo.js.map +1 -0
- package/dist/esm/utxo/utxo_chain.d.ts.map +1 -0
- package/dist/esm/utxo/utxo_chain.js.map +1 -0
- package/dist/esm/utxo/utxo_chains.d.ts.map +1 -0
- package/dist/esm/utxo/utxo_chains.js.map +1 -0
- package/dist/esm/utxo/utxo_gas_pricing.d.ts.map +1 -0
- package/dist/esm/utxo/utxo_gas_pricing.js.map +1 -0
- package/dist/esm/utxo/utxo_network_params.d.ts.map +1 -0
- package/dist/esm/utxo/utxo_network_params.js.map +1 -0
- package/dist/esm/utxo/utxo_transaction_status.d.ts.map +1 -0
- package/dist/esm/utxo/utxo_transaction_status.js.map +1 -0
- package/package.json +32 -16
- package/dist/abstract_gas_pricing.d.ts.map +0 -1
- package/dist/abstract_gas_pricing.js.map +0 -1
- package/dist/address.d.ts.map +0 -1
- package/dist/address.factory.d.ts.map +0 -1
- package/dist/address.factory.js.map +0 -1
- package/dist/address.js.map +0 -1
- package/dist/address_field.decorator.d.ts.map +0 -1
- package/dist/address_field.decorator.js.map +0 -1
- package/dist/chain.base.d.ts.map +0 -1
- package/dist/chain.base.js.map +0 -1
- package/dist/chain_ids.d.ts.map +0 -1
- package/dist/chain_ids.js.map +0 -1
- package/dist/errors.d.ts.map +0 -1
- package/dist/errors.js.map +0 -1
- package/dist/evm/evm_address.d.ts.map +0 -1
- package/dist/evm/evm_address.js.map +0 -1
- package/dist/evm/evm_chain.d.ts.map +0 -1
- package/dist/evm/evm_chain.js.map +0 -1
- package/dist/evm/evm_chains.d.ts.map +0 -1
- package/dist/evm/evm_chains.js.map +0 -1
- package/dist/evm/evm_gas_estimate.d.ts.map +0 -1
- package/dist/evm/evm_gas_estimate.js.map +0 -1
- package/dist/evm/evm_gas_pricing.d.ts.map +0 -1
- package/dist/evm/evm_gas_pricing.js.map +0 -1
- package/dist/evm/evm_token.d.ts.map +0 -1
- package/dist/evm/evm_token.js.map +0 -1
- package/dist/evm/evm_tokens.d.ts.map +0 -1
- package/dist/evm/evm_tokens.js.map +0 -1
- package/dist/evm/evm_transaction_status.d.ts.map +0 -1
- package/dist/evm/evm_transaction_status.js.map +0 -1
- package/dist/evm/index.d.ts.map +0 -1
- package/dist/evm/index.js.map +0 -1
- package/dist/evm/unsigned_evm_transaction.d.ts.map +0 -1
- package/dist/evm/unsigned_evm_transaction.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/is_address.decorator.d.ts.map +0 -1
- package/dist/is_address.decorator.js.map +0 -1
- package/dist/network_type.d.ts.map +0 -1
- package/dist/network_type.js.map +0 -1
- package/dist/priority.d.ts.map +0 -1
- package/dist/priority.js.map +0 -1
- package/dist/solana/index.d.ts.map +0 -1
- package/dist/solana/index.js.map +0 -1
- package/dist/solana/solana_address.d.ts.map +0 -1
- package/dist/solana/solana_address.js.map +0 -1
- package/dist/solana/solana_chain.d.ts.map +0 -1
- package/dist/solana/solana_chain.js.map +0 -1
- package/dist/solana/solana_chains.d.ts.map +0 -1
- package/dist/solana/solana_chains.js.map +0 -1
- package/dist/solana/solana_gas_pricing.d.ts.map +0 -1
- package/dist/solana/solana_gas_pricing.js.map +0 -1
- package/dist/solana/solana_token.d.ts.map +0 -1
- package/dist/solana/solana_token.js.map +0 -1
- package/dist/solana/solana_tokens.d.ts.map +0 -1
- package/dist/solana/solana_tokens.js.map +0 -1
- package/dist/solana/solana_transaction_status.d.ts.map +0 -1
- package/dist/solana/solana_transaction_status.js.map +0 -1
- package/dist/solana/unsigned_solana_transaction.d.ts.map +0 -1
- package/dist/solana/unsigned_solana_transaction.js.map +0 -1
- package/dist/token.d.ts.map +0 -1
- package/dist/token.js.map +0 -1
- package/dist/ton/index.d.ts.map +0 -1
- package/dist/ton/index.js.map +0 -1
- package/dist/ton/ton_address.d.ts.map +0 -1
- package/dist/ton/ton_address.js.map +0 -1
- package/dist/transaction_status.d.ts.map +0 -1
- package/dist/transaction_status.js.map +0 -1
- package/dist/unsigned_transaction.d.ts.map +0 -1
- package/dist/unsigned_transaction.js.map +0 -1
- package/dist/utxo/btc/btc_address.d.ts.map +0 -1
- package/dist/utxo/btc/btc_address.js.map +0 -1
- package/dist/utxo/btc/btc_chain.d.ts.map +0 -1
- package/dist/utxo/btc/btc_chain.js.map +0 -1
- package/dist/utxo/btc/btc_chains.d.ts.map +0 -1
- package/dist/utxo/btc/btc_chains.js.map +0 -1
- package/dist/utxo/btc/btc_token.d.ts.map +0 -1
- package/dist/utxo/btc/btc_token.js.map +0 -1
- package/dist/utxo/btc/index.d.ts.map +0 -1
- package/dist/utxo/btc/index.js.map +0 -1
- package/dist/utxo/btc/network_params.d.ts.map +0 -1
- package/dist/utxo/btc/network_params.js.map +0 -1
- package/dist/utxo/btc/tools/asset_outpoint.d.ts.map +0 -1
- package/dist/utxo/btc/tools/asset_outpoint.js.map +0 -1
- package/dist/utxo/btc/tools/bitcoin_core.tool.d.ts.map +0 -1
- package/dist/utxo/btc/tools/bitcoin_core.tool.js.map +0 -1
- package/dist/utxo/btc/tools/esplora.tool.d.ts.map +0 -1
- package/dist/utxo/btc/tools/esplora.tool.js.map +0 -1
- package/dist/utxo/btc/tools/inscription_index.d.ts.map +0 -1
- package/dist/utxo/btc/tools/inscription_index.js.map +0 -1
- package/dist/utxo/btc/tools/ordiscan.tool.d.ts.map +0 -1
- package/dist/utxo/btc/tools/ordiscan.tool.js.map +0 -1
- package/dist/utxo/btc/tools/rare_sat_index.d.ts.map +0 -1
- package/dist/utxo/btc/tools/rare_sat_index.js.map +0 -1
- package/dist/utxo/btc/tools/rune_index.d.ts.map +0 -1
- package/dist/utxo/btc/tools/rune_index.js.map +0 -1
- package/dist/utxo/btc/tools/unisat.tool.d.ts.map +0 -1
- package/dist/utxo/btc/tools/unisat.tool.js.map +0 -1
- package/dist/utxo/coin_selection.d.ts.map +0 -1
- package/dist/utxo/coin_selection.js.map +0 -1
- package/dist/utxo/doge/index.d.ts.map +0 -1
- package/dist/utxo/doge/index.js.map +0 -1
- package/dist/utxo/doge/network_params.d.ts.map +0 -1
- package/dist/utxo/doge/network_params.js.map +0 -1
- package/dist/utxo/ecc.d.ts.map +0 -1
- package/dist/utxo/ecc.js.map +0 -1
- package/dist/utxo/fee.d.ts.map +0 -1
- package/dist/utxo/fee.js.map +0 -1
- package/dist/utxo/index.d.ts.map +0 -1
- package/dist/utxo/index.js.map +0 -1
- package/dist/utxo/ltc/index.d.ts.map +0 -1
- package/dist/utxo/ltc/index.js.map +0 -1
- package/dist/utxo/ltc/ltc_chains.d.ts.map +0 -1
- package/dist/utxo/ltc/ltc_chains.js.map +0 -1
- package/dist/utxo/ltc/network_params.d.ts.map +0 -1
- package/dist/utxo/ltc/network_params.js.map +0 -1
- package/dist/utxo/script.d.ts.map +0 -1
- package/dist/utxo/script.js.map +0 -1
- package/dist/utxo/tools/broadcaster.d.ts.map +0 -1
- package/dist/utxo/tools/broadcaster.js.map +0 -1
- package/dist/utxo/tools/chain_tip_provider.d.ts.map +0 -1
- package/dist/utxo/tools/chain_tip_provider.js.map +0 -1
- package/dist/utxo/tools/fee_estimator.d.ts.map +0 -1
- package/dist/utxo/tools/fee_estimator.js.map +0 -1
- package/dist/utxo/tools/raw_transaction_provider.d.ts.map +0 -1
- package/dist/utxo/tools/raw_transaction_provider.js.map +0 -1
- package/dist/utxo/tools/utxo_provider.d.ts.map +0 -1
- package/dist/utxo/tools/utxo_provider.js.map +0 -1
- package/dist/utxo/unsigned_utxo_transaction.d.ts.map +0 -1
- package/dist/utxo/unsigned_utxo_transaction.js.map +0 -1
- package/dist/utxo/utxo.d.ts.map +0 -1
- package/dist/utxo/utxo_chain.d.ts.map +0 -1
- package/dist/utxo/utxo_chain.js.map +0 -1
- package/dist/utxo/utxo_chains.d.ts.map +0 -1
- package/dist/utxo/utxo_chains.js.map +0 -1
- package/dist/utxo/utxo_gas_pricing.d.ts.map +0 -1
- package/dist/utxo/utxo_gas_pricing.js.map +0 -1
- package/dist/utxo/utxo_network_params.d.ts.map +0 -1
- package/dist/utxo/utxo_network_params.js.map +0 -1
- package/dist/utxo/utxo_transaction_status.d.ts.map +0 -1
- package/dist/utxo/utxo_transaction_status.js.map +0 -1
- /package/dist/{abstract_gas_pricing.d.ts → esm/abstract_gas_pricing.d.ts} +0 -0
- /package/dist/{abstract_gas_pricing.js → esm/abstract_gas_pricing.js} +0 -0
- /package/dist/{address.d.ts → esm/address.d.ts} +0 -0
- /package/dist/{address.factory.d.ts → esm/address.factory.d.ts} +0 -0
- /package/dist/{address.factory.js → esm/address.factory.js} +0 -0
- /package/dist/{address.js → esm/address.js} +0 -0
- /package/dist/{address_field.decorator.d.ts → esm/address_field.decorator.d.ts} +0 -0
- /package/dist/{address_field.decorator.js → esm/address_field.decorator.js} +0 -0
- /package/dist/{chain.base.d.ts → esm/chain.base.d.ts} +0 -0
- /package/dist/{chain.base.js → esm/chain.base.js} +0 -0
- /package/dist/{chain_ids.d.ts → esm/chain_ids.d.ts} +0 -0
- /package/dist/{chain_ids.js → esm/chain_ids.js} +0 -0
- /package/dist/{errors.d.ts → esm/errors.d.ts} +0 -0
- /package/dist/{errors.js → esm/errors.js} +0 -0
- /package/dist/{evm → esm/evm}/evm_address.d.ts +0 -0
- /package/dist/{evm → esm/evm}/evm_address.js +0 -0
- /package/dist/{evm → esm/evm}/evm_chain.d.ts +0 -0
- /package/dist/{evm → esm/evm}/evm_chain.js +0 -0
- /package/dist/{evm → esm/evm}/evm_chains.d.ts +0 -0
- /package/dist/{evm → esm/evm}/evm_chains.js +0 -0
- /package/dist/{evm → esm/evm}/evm_gas_estimate.d.ts +0 -0
- /package/dist/{evm → esm/evm}/evm_gas_estimate.js +0 -0
- /package/dist/{evm → esm/evm}/evm_gas_pricing.d.ts +0 -0
- /package/dist/{evm → esm/evm}/evm_gas_pricing.js +0 -0
- /package/dist/{evm → esm/evm}/evm_token.d.ts +0 -0
- /package/dist/{evm → esm/evm}/evm_token.js +0 -0
- /package/dist/{evm → esm/evm}/evm_tokens.d.ts +0 -0
- /package/dist/{evm → esm/evm}/evm_tokens.js +0 -0
- /package/dist/{evm → esm/evm}/evm_transaction_status.d.ts +0 -0
- /package/dist/{evm → esm/evm}/evm_transaction_status.js +0 -0
- /package/dist/{evm → esm/evm}/index.d.ts +0 -0
- /package/dist/{evm → esm/evm}/index.js +0 -0
- /package/dist/{evm → esm/evm}/unsigned_evm_transaction.d.ts +0 -0
- /package/dist/{evm → esm/evm}/unsigned_evm_transaction.js +0 -0
- /package/dist/{index.d.ts → esm/index.d.ts} +0 -0
- /package/dist/{index.js → esm/index.js} +0 -0
- /package/dist/{is_address.decorator.d.ts → esm/is_address.decorator.d.ts} +0 -0
- /package/dist/{is_address.decorator.js → esm/is_address.decorator.js} +0 -0
- /package/dist/{network_type.d.ts → esm/network_type.d.ts} +0 -0
- /package/dist/{network_type.js → esm/network_type.js} +0 -0
- /package/dist/{priority.d.ts → esm/priority.d.ts} +0 -0
- /package/dist/{priority.js → esm/priority.js} +0 -0
- /package/dist/{solana → esm/solana}/index.d.ts +0 -0
- /package/dist/{solana → esm/solana}/index.js +0 -0
- /package/dist/{solana → esm/solana}/solana_address.d.ts +0 -0
- /package/dist/{solana → esm/solana}/solana_address.js +0 -0
- /package/dist/{solana → esm/solana}/solana_chain.d.ts +0 -0
- /package/dist/{solana → esm/solana}/solana_chain.js +0 -0
- /package/dist/{solana → esm/solana}/solana_chains.d.ts +0 -0
- /package/dist/{solana → esm/solana}/solana_chains.js +0 -0
- /package/dist/{solana → esm/solana}/solana_gas_pricing.d.ts +0 -0
- /package/dist/{solana → esm/solana}/solana_gas_pricing.js +0 -0
- /package/dist/{solana → esm/solana}/solana_token.d.ts +0 -0
- /package/dist/{solana → esm/solana}/solana_token.js +0 -0
- /package/dist/{solana → esm/solana}/solana_tokens.d.ts +0 -0
- /package/dist/{solana → esm/solana}/solana_tokens.js +0 -0
- /package/dist/{solana → esm/solana}/solana_transaction_status.d.ts +0 -0
- /package/dist/{solana → esm/solana}/solana_transaction_status.js +0 -0
- /package/dist/{solana → esm/solana}/unsigned_solana_transaction.d.ts +0 -0
- /package/dist/{solana → esm/solana}/unsigned_solana_transaction.js +0 -0
- /package/dist/{token.d.ts → esm/token.d.ts} +0 -0
- /package/dist/{token.js → esm/token.js} +0 -0
- /package/dist/{ton → esm/ton}/index.d.ts +0 -0
- /package/dist/{ton → esm/ton}/index.js +0 -0
- /package/dist/{ton → esm/ton}/ton_address.d.ts +0 -0
- /package/dist/{ton → esm/ton}/ton_address.js +0 -0
- /package/dist/{transaction_status.d.ts → esm/transaction_status.d.ts} +0 -0
- /package/dist/{transaction_status.js → esm/transaction_status.js} +0 -0
- /package/dist/{unsigned_transaction.d.ts → esm/unsigned_transaction.d.ts} +0 -0
- /package/dist/{unsigned_transaction.js → esm/unsigned_transaction.js} +0 -0
- /package/dist/{utxo → esm/utxo}/btc/btc_address.d.ts +0 -0
- /package/dist/{utxo → esm/utxo}/btc/btc_address.js +0 -0
- /package/dist/{utxo → esm/utxo}/btc/btc_chain.d.ts +0 -0
- /package/dist/{utxo → esm/utxo}/btc/btc_chain.js +0 -0
- /package/dist/{utxo → esm/utxo}/btc/btc_chains.d.ts +0 -0
- /package/dist/{utxo → esm/utxo}/btc/btc_chains.js +0 -0
- /package/dist/{utxo → esm/utxo}/btc/btc_token.d.ts +0 -0
- /package/dist/{utxo → esm/utxo}/btc/btc_token.js +0 -0
- /package/dist/{utxo → esm/utxo}/btc/index.d.ts +0 -0
- /package/dist/{utxo → esm/utxo}/btc/index.js +0 -0
- /package/dist/{utxo → esm/utxo}/btc/network_params.d.ts +0 -0
- /package/dist/{utxo → esm/utxo}/btc/network_params.js +0 -0
- /package/dist/{utxo → esm/utxo}/btc/tools/asset_outpoint.d.ts +0 -0
- /package/dist/{utxo → esm/utxo}/btc/tools/asset_outpoint.js +0 -0
- /package/dist/{utxo → esm/utxo}/btc/tools/bitcoin_core.tool.d.ts +0 -0
- /package/dist/{utxo → esm/utxo}/btc/tools/bitcoin_core.tool.js +0 -0
- /package/dist/{utxo → esm/utxo}/btc/tools/esplora.tool.d.ts +0 -0
- /package/dist/{utxo → esm/utxo}/btc/tools/esplora.tool.js +0 -0
- /package/dist/{utxo → esm/utxo}/btc/tools/inscription_index.d.ts +0 -0
- /package/dist/{utxo → esm/utxo}/btc/tools/inscription_index.js +0 -0
- /package/dist/{utxo → esm/utxo}/btc/tools/ordiscan.tool.d.ts +0 -0
- /package/dist/{utxo → esm/utxo}/btc/tools/ordiscan.tool.js +0 -0
- /package/dist/{utxo → esm/utxo}/btc/tools/rare_sat_index.d.ts +0 -0
- /package/dist/{utxo → esm/utxo}/btc/tools/rare_sat_index.js +0 -0
- /package/dist/{utxo → esm/utxo}/btc/tools/rune_index.d.ts +0 -0
- /package/dist/{utxo → esm/utxo}/btc/tools/rune_index.js +0 -0
- /package/dist/{utxo → esm/utxo}/btc/tools/unisat.tool.d.ts +0 -0
- /package/dist/{utxo → esm/utxo}/btc/tools/unisat.tool.js +0 -0
- /package/dist/{utxo → esm/utxo}/coin_selection.d.ts +0 -0
- /package/dist/{utxo → esm/utxo}/coin_selection.js +0 -0
- /package/dist/{utxo → esm/utxo}/doge/doge_chains.d.ts +0 -0
- /package/dist/{utxo → esm/utxo}/doge/doge_chains.js +0 -0
- /package/dist/{utxo → esm/utxo}/doge/index.d.ts +0 -0
- /package/dist/{utxo → esm/utxo}/doge/index.js +0 -0
- /package/dist/{utxo → esm/utxo}/doge/network_params.d.ts +0 -0
- /package/dist/{utxo → esm/utxo}/doge/network_params.js +0 -0
- /package/dist/{utxo → esm/utxo}/ecc.d.ts +0 -0
- /package/dist/{utxo → esm/utxo}/ecc.js +0 -0
- /package/dist/{utxo → esm/utxo}/fee.d.ts +0 -0
- /package/dist/{utxo → esm/utxo}/fee.js +0 -0
- /package/dist/{utxo → esm/utxo}/index.d.ts +0 -0
- /package/dist/{utxo → esm/utxo}/index.js +0 -0
- /package/dist/{utxo → esm/utxo}/ltc/index.d.ts +0 -0
- /package/dist/{utxo → esm/utxo}/ltc/index.js +0 -0
- /package/dist/{utxo → esm/utxo}/ltc/ltc_chains.d.ts +0 -0
- /package/dist/{utxo → esm/utxo}/ltc/ltc_chains.js +0 -0
- /package/dist/{utxo → esm/utxo}/ltc/network_params.d.ts +0 -0
- /package/dist/{utxo → esm/utxo}/ltc/network_params.js +0 -0
- /package/dist/{utxo → esm/utxo}/script.d.ts +0 -0
- /package/dist/{utxo → esm/utxo}/script.js +0 -0
- /package/dist/{utxo → esm/utxo}/tools/broadcaster.d.ts +0 -0
- /package/dist/{utxo → esm/utxo}/tools/broadcaster.js +0 -0
- /package/dist/{utxo → esm/utxo}/tools/chain_tip_provider.d.ts +0 -0
- /package/dist/{utxo → esm/utxo}/tools/chain_tip_provider.js +0 -0
- /package/dist/{utxo → esm/utxo}/tools/fee_estimator.d.ts +0 -0
- /package/dist/{utxo → esm/utxo}/tools/fee_estimator.js +0 -0
- /package/dist/{utxo → esm/utxo}/tools/raw_transaction_provider.d.ts +0 -0
- /package/dist/{utxo → esm/utxo}/tools/raw_transaction_provider.js +0 -0
- /package/dist/{utxo → esm/utxo}/tools/utxo_provider.d.ts +0 -0
- /package/dist/{utxo → esm/utxo}/tools/utxo_provider.js +0 -0
- /package/dist/{utxo → esm/utxo}/unsigned_utxo_transaction.d.ts +0 -0
- /package/dist/{utxo → esm/utxo}/unsigned_utxo_transaction.js +0 -0
- /package/dist/{utxo → esm/utxo}/utxo.d.ts +0 -0
- /package/dist/{utxo → esm/utxo}/utxo.js +0 -0
- /package/dist/{utxo → esm/utxo}/utxo_chain.d.ts +0 -0
- /package/dist/{utxo → esm/utxo}/utxo_chain.js +0 -0
- /package/dist/{utxo → esm/utxo}/utxo_chains.d.ts +0 -0
- /package/dist/{utxo → esm/utxo}/utxo_chains.js +0 -0
- /package/dist/{utxo → esm/utxo}/utxo_gas_pricing.d.ts +0 -0
- /package/dist/{utxo → esm/utxo}/utxo_gas_pricing.js +0 -0
- /package/dist/{utxo → esm/utxo}/utxo_network_params.d.ts +0 -0
- /package/dist/{utxo → esm/utxo}/utxo_network_params.js +0 -0
- /package/dist/{utxo → esm/utxo}/utxo_transaction_status.d.ts +0 -0
- /package/dist/{utxo → esm/utxo}/utxo_transaction_status.js +0 -0
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.UnisatIndex = void 0;
|
|
7
|
+
const axios_1 = __importDefault(require("axios"));
|
|
8
|
+
const DEFAULT_BASE_URL = 'https://open-api.unisat.io';
|
|
9
|
+
const DEFAULT_PAGE_SIZE = 100;
|
|
10
|
+
const DEFAULT_MAX_PAGES = 200;
|
|
11
|
+
class UnisatIndex {
|
|
12
|
+
client;
|
|
13
|
+
pageSize;
|
|
14
|
+
maxPages;
|
|
15
|
+
constructor(options) {
|
|
16
|
+
if (!options.apiKey || options.apiKey.trim().length === 0) {
|
|
17
|
+
throw new Error('UnisatIndex: apiKey is required');
|
|
18
|
+
}
|
|
19
|
+
this.client = axios_1.default.create({
|
|
20
|
+
baseURL: (options.baseUrl ?? DEFAULT_BASE_URL).replace(/\/$/, ''),
|
|
21
|
+
timeout: options.timeoutMs ?? 10_000,
|
|
22
|
+
headers: { Authorization: `Bearer ${options.apiKey}` },
|
|
23
|
+
});
|
|
24
|
+
this.pageSize = options.pageSize ?? DEFAULT_PAGE_SIZE;
|
|
25
|
+
this.maxPages = options.maxPages ?? DEFAULT_MAX_PAGES;
|
|
26
|
+
}
|
|
27
|
+
get name() {
|
|
28
|
+
return 'unisat';
|
|
29
|
+
}
|
|
30
|
+
async outpointsWithInscriptions(address) {
|
|
31
|
+
const seen = new Set();
|
|
32
|
+
const out = [];
|
|
33
|
+
let cursor = 0;
|
|
34
|
+
for (let page = 0; page < this.maxPages; page++) {
|
|
35
|
+
const { data } = await this.client.get(`/v1/indexer/address/${address}/inscription-data`, { params: { cursor, size: this.pageSize } });
|
|
36
|
+
if (data.code !== 0 && data.code !== undefined && data.code !== 200) {
|
|
37
|
+
throw new Error(`UnisatIndex: ${data.code} ${data.msg}`);
|
|
38
|
+
}
|
|
39
|
+
const utxos = data.data.inscription ?? data.data.utxo ?? [];
|
|
40
|
+
for (const u of utxos) {
|
|
41
|
+
const key = `${u.txid}:${u.vout}`;
|
|
42
|
+
if (seen.has(key))
|
|
43
|
+
continue;
|
|
44
|
+
seen.add(key);
|
|
45
|
+
out.push({ txid: u.txid, vout: u.vout });
|
|
46
|
+
}
|
|
47
|
+
cursor += utxos.length;
|
|
48
|
+
const total = data.data.total ?? 0;
|
|
49
|
+
if (utxos.length === 0 || cursor >= total)
|
|
50
|
+
break;
|
|
51
|
+
}
|
|
52
|
+
return out;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
exports.UnisatIndex = UnisatIndex;
|
|
56
|
+
//# sourceMappingURL=unisat.tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unisat.tool.js","sourceRoot":"","sources":["../../../../../utxo/btc/tools/unisat.tool.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA6C;AAiC7C,MAAM,gBAAgB,GAAG,4BAA4B,CAAC;AACtD,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAC9B,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAE9B,MAAa,WAAW;IACL,MAAM,CAAgB;IACtB,QAAQ,CAAS;IACjB,QAAQ,CAAS;IAElC,YAAY,OAA2B;QACrC,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1D,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,eAAK,CAAC,MAAM,CAAC;YACzB,OAAO,EAAE,CAAC,OAAO,CAAC,OAAO,IAAI,gBAAgB,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;YACjE,OAAO,EAAE,OAAO,CAAC,SAAS,IAAI,MAAM;YACpC,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,OAAO,CAAC,MAAM,EAAE,EAAE;SACvD,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,iBAAiB,CAAC;QACtD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,iBAAiB,CAAC;IACxD,CAAC;IAED,IAAI,IAAI;QACN,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,yBAAyB,CAAC,OAAe;QAC7C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,MAAM,GAAG,GAA2B,EAAE,CAAC;QACvC,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC;YAChD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CACpC,uBAAuB,OAAO,mBAAmB,EACjD,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,CAC5C,CAAC;YACF,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;gBACpE,MAAM,IAAI,KAAK,CAAC,gBAAgB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAC3D,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;YAC5D,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;gBACtB,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;gBAClC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;oBAAE,SAAS;gBAC5B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACd,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC3C,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC;YACvB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;YACnC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,IAAI,KAAK;gBAAE,MAAM;QACnD,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AA/CD,kCA+CC"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CoinSelectionOutcomes = void 0;
|
|
4
|
+
exports.selectCoins = selectCoins;
|
|
5
|
+
const fee_ts_1 = require("./fee.js");
|
|
6
|
+
const script_ts_1 = require("./script.js");
|
|
7
|
+
exports.CoinSelectionOutcomes = {
|
|
8
|
+
Success: 'success',
|
|
9
|
+
InsufficientFunds: 'insufficient_funds',
|
|
10
|
+
NoSolution: 'no_solution',
|
|
11
|
+
};
|
|
12
|
+
const DEFAULT_MAX_ITERATIONS = 100_000;
|
|
13
|
+
function selectCoins(params) {
|
|
14
|
+
const { utxos, targetSats, feeRateSatsPerVByte, changeOutputType, outputsFixedVBytes, costOfChangeSats, maxIterations = DEFAULT_MAX_ITERATIONS, } = params;
|
|
15
|
+
if (targetSats <= 0) {
|
|
16
|
+
return emptyResult(exports.CoinSelectionOutcomes.NoSolution);
|
|
17
|
+
}
|
|
18
|
+
const coins = utxos.map((utxo) => {
|
|
19
|
+
const inputCost = Math.ceil((0, fee_ts_1.inputVBytes)(utxo.scriptType) * feeRateSatsPerVByte);
|
|
20
|
+
return {
|
|
21
|
+
utxo,
|
|
22
|
+
rawValue: utxo.valueSats,
|
|
23
|
+
effectiveValue: (0, fee_ts_1.effectiveValueSats)(utxo.valueSats, utxo.scriptType, feeRateSatsPerVByte),
|
|
24
|
+
inputCost,
|
|
25
|
+
};
|
|
26
|
+
});
|
|
27
|
+
const positiveCoins = coins.filter((c) => c.effectiveValue > 0);
|
|
28
|
+
const totalEffective = positiveCoins.reduce((s, c) => s + c.effectiveValue, 0);
|
|
29
|
+
if (totalEffective < targetSats) {
|
|
30
|
+
return emptyResult(exports.CoinSelectionOutcomes.InsufficientFunds);
|
|
31
|
+
}
|
|
32
|
+
const bnbResult = branchAndBound(positiveCoins, targetSats, costOfChangeSats, maxIterations);
|
|
33
|
+
if (bnbResult) {
|
|
34
|
+
return finalize(bnbResult, params, outputsFixedVBytes, feeRateSatsPerVByte, changeOutputType, 'bnb');
|
|
35
|
+
}
|
|
36
|
+
const accumulator = accumulatorFallback(positiveCoins, targetSats);
|
|
37
|
+
if (!accumulator) {
|
|
38
|
+
return emptyResult(exports.CoinSelectionOutcomes.NoSolution);
|
|
39
|
+
}
|
|
40
|
+
return finalize(accumulator, params, outputsFixedVBytes, feeRateSatsPerVByte, changeOutputType, 'accumulator');
|
|
41
|
+
}
|
|
42
|
+
function branchAndBound(coins, target, costOfChange, maxIterations) {
|
|
43
|
+
const sorted = [...coins].sort((a, b) => b.effectiveValue - a.effectiveValue);
|
|
44
|
+
const tail = new Array(sorted.length + 1).fill(0);
|
|
45
|
+
for (let i = sorted.length - 1; i >= 0; i--) {
|
|
46
|
+
tail[i] = tail[i + 1] + sorted[i].effectiveValue;
|
|
47
|
+
}
|
|
48
|
+
let iterations = 0;
|
|
49
|
+
let best = null;
|
|
50
|
+
let bestOver = Infinity;
|
|
51
|
+
const current = [];
|
|
52
|
+
function recurse(depth, sum) {
|
|
53
|
+
if (++iterations > maxIterations)
|
|
54
|
+
return false;
|
|
55
|
+
if (sum > target + costOfChange)
|
|
56
|
+
return false;
|
|
57
|
+
if (sum >= target) {
|
|
58
|
+
const over = sum - target;
|
|
59
|
+
if (over < bestOver) {
|
|
60
|
+
bestOver = over;
|
|
61
|
+
best = [...current];
|
|
62
|
+
}
|
|
63
|
+
return over === 0;
|
|
64
|
+
}
|
|
65
|
+
if (sum + tail[depth] < target)
|
|
66
|
+
return false;
|
|
67
|
+
if (depth === sorted.length)
|
|
68
|
+
return false;
|
|
69
|
+
current.push(sorted[depth]);
|
|
70
|
+
if (recurse(depth + 1, sum + sorted[depth].effectiveValue)) {
|
|
71
|
+
current.pop();
|
|
72
|
+
return true;
|
|
73
|
+
}
|
|
74
|
+
current.pop();
|
|
75
|
+
return recurse(depth + 1, sum);
|
|
76
|
+
}
|
|
77
|
+
recurse(0, 0);
|
|
78
|
+
return best;
|
|
79
|
+
}
|
|
80
|
+
function accumulatorFallback(coins, target) {
|
|
81
|
+
const sorted = [...coins].sort((a, b) => b.effectiveValue - a.effectiveValue);
|
|
82
|
+
const selected = [];
|
|
83
|
+
let sum = 0;
|
|
84
|
+
for (const c of sorted) {
|
|
85
|
+
selected.push(c);
|
|
86
|
+
sum += c.effectiveValue;
|
|
87
|
+
if (sum >= target)
|
|
88
|
+
return selected;
|
|
89
|
+
}
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
function finalize(selected, params, outputsFixedVBytes, feeRateSatsPerVByte, changeOutputType, algorithm) {
|
|
93
|
+
const totalValueSats = selected.reduce((s, c) => s + c.rawValue, 0);
|
|
94
|
+
const inputsVBytes = selected.reduce((s, c) => s + (0, fee_ts_1.inputVBytes)(c.utxo.scriptType), 0);
|
|
95
|
+
const baseFeeSats = Math.ceil((outputsFixedVBytes + inputsVBytes) * feeRateSatsPerVByte);
|
|
96
|
+
const surplusBeforeChange = totalValueSats - params.targetSats - baseFeeSats;
|
|
97
|
+
if (surplusBeforeChange < 0) {
|
|
98
|
+
return {
|
|
99
|
+
outcome: exports.CoinSelectionOutcomes.InsufficientFunds,
|
|
100
|
+
selected: [],
|
|
101
|
+
totalValueSats: 0,
|
|
102
|
+
feeSats: 0,
|
|
103
|
+
changeSats: 0,
|
|
104
|
+
hasChange: false,
|
|
105
|
+
algorithm: null,
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
const changeOutputCost = Math.ceil(outputVBytesFor(changeOutputType) * feeRateSatsPerVByte);
|
|
109
|
+
const changeIfAdded = surplusBeforeChange - changeOutputCost;
|
|
110
|
+
const dustValue = params.costOfChangeSats;
|
|
111
|
+
let feeSats;
|
|
112
|
+
let changeSats;
|
|
113
|
+
let hasChange;
|
|
114
|
+
if (changeIfAdded >= dustValue) {
|
|
115
|
+
hasChange = true;
|
|
116
|
+
changeSats = changeIfAdded;
|
|
117
|
+
feeSats = baseFeeSats + changeOutputCost;
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
hasChange = false;
|
|
121
|
+
changeSats = 0;
|
|
122
|
+
feeSats = baseFeeSats + surplusBeforeChange;
|
|
123
|
+
}
|
|
124
|
+
return {
|
|
125
|
+
outcome: exports.CoinSelectionOutcomes.Success,
|
|
126
|
+
selected: selected.map((c) => c.utxo),
|
|
127
|
+
totalValueSats,
|
|
128
|
+
feeSats,
|
|
129
|
+
changeSats,
|
|
130
|
+
hasChange,
|
|
131
|
+
algorithm,
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
function outputVBytesFor(type) {
|
|
135
|
+
switch (type) {
|
|
136
|
+
case script_ts_1.UtxoScriptTypes.P2PKH:
|
|
137
|
+
return 34;
|
|
138
|
+
case script_ts_1.UtxoScriptTypes.P2SH:
|
|
139
|
+
return 32;
|
|
140
|
+
case script_ts_1.UtxoScriptTypes.P2WPKH:
|
|
141
|
+
return 31;
|
|
142
|
+
case script_ts_1.UtxoScriptTypes.P2WSH:
|
|
143
|
+
case script_ts_1.UtxoScriptTypes.P2TR:
|
|
144
|
+
return 43;
|
|
145
|
+
default:
|
|
146
|
+
return 0;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
function emptyResult(outcome) {
|
|
150
|
+
return {
|
|
151
|
+
outcome,
|
|
152
|
+
selected: [],
|
|
153
|
+
totalValueSats: 0,
|
|
154
|
+
feeSats: 0,
|
|
155
|
+
changeSats: 0,
|
|
156
|
+
hasChange: false,
|
|
157
|
+
algorithm: null,
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=coin_selection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coin_selection.js","sourceRoot":"","sources":["../../../utxo/coin_selection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.dogecoinMainnetChain = dogecoinMainnetChain;
|
|
4
|
+
exports.dogecoinTestnetChain = dogecoinTestnetChain;
|
|
5
|
+
const utxo_chain_ts_1 = require("../utxo_chain.js");
|
|
6
|
+
const network_params_ts_1 = require("./network_params.js");
|
|
7
|
+
function dogecoinMainnetChain(options) {
|
|
8
|
+
return new utxo_chain_ts_1.UtxoChain({
|
|
9
|
+
name: 'Dogecoin',
|
|
10
|
+
params: network_params_ts_1.DOGECOIN_MAINNET_PARAMS,
|
|
11
|
+
nativeSymbol: 'DOGE',
|
|
12
|
+
blockTimeSeconds: 60,
|
|
13
|
+
...options,
|
|
14
|
+
walletExplorerUrlTemplate: 'https://blockchair.com/dogecoin/address/{wallet_address}',
|
|
15
|
+
transactionExplorerUrlTemplate: 'https://blockchair.com/dogecoin/transaction/{tx_hash}',
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
function dogecoinTestnetChain(options) {
|
|
19
|
+
if (network_params_ts_1.DOGECOIN_TESTNET_PARAMS === null) {
|
|
20
|
+
throw new Error('Dogecoin testnet params unavailable (coininfo.dogecoin.test missing)');
|
|
21
|
+
}
|
|
22
|
+
return new utxo_chain_ts_1.UtxoChain({
|
|
23
|
+
name: 'Dogecoin Testnet',
|
|
24
|
+
params: network_params_ts_1.DOGECOIN_TESTNET_PARAMS,
|
|
25
|
+
nativeSymbol: 'tDOGE',
|
|
26
|
+
blockTimeSeconds: 60,
|
|
27
|
+
...options,
|
|
28
|
+
walletExplorerUrlTemplate: 'https://sochain.com/address/DOGETEST/{wallet_address}',
|
|
29
|
+
transactionExplorerUrlTemplate: 'https://sochain.com/tx/DOGETEST/{tx_hash}',
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=doge_chains.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doge_chains.js","sourceRoot":"","sources":["../../../../utxo/doge/doge_chains.ts"],"names":[],"mappings":";;AAiBA,oDAUC;AAED,oDAaC;AArCD,oDAA6C;AAC7C,2DAAuF;AAWvF,SAAgB,oBAAoB,CAAC,OAAoC;IACvE,OAAO,IAAI,yBAAS,CAAC;QACnB,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,2CAAuB;QAC/B,YAAY,EAAE,MAAM;QACpB,gBAAgB,EAAE,EAAE;QACpB,GAAG,OAAO;QACV,yBAAyB,EAAE,0DAA0D;QACrF,8BAA8B,EAAE,uDAAuD;KACxF,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,oBAAoB,CAAC,OAAoC;IACvE,IAAI,2CAAuB,KAAK,IAAI,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;IAC1F,CAAC;IACD,OAAO,IAAI,yBAAS,CAAC;QACnB,IAAI,EAAE,kBAAkB;QACxB,MAAM,EAAE,2CAAuB;QAC/B,YAAY,EAAE,OAAO;QACrB,gBAAgB,EAAE,EAAE;QACpB,GAAG,OAAO;QACV,yBAAyB,EAAE,uDAAuD;QAClF,8BAA8B,EAAE,2CAA2C;KAC5E,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./doge_chains.js"), exports);
|
|
18
|
+
__exportStar(require("./network_params.js"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../utxo/doge/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC;AACjC,sDAAoC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.DOGECOIN_TESTNET_PARAMS = exports.DOGECOIN_MAINNET_PARAMS = void 0;
|
|
7
|
+
const coininfo_1 = __importDefault(require("coininfo"));
|
|
8
|
+
const utxo_network_params_ts_1 = require("../utxo_network_params.js");
|
|
9
|
+
const DOGE_PURPOSES = new Set([utxo_network_params_ts_1.BIP32_PURPOSE_P2PKH]);
|
|
10
|
+
const DOGE_DUST_SATS = 1_000_000;
|
|
11
|
+
exports.DOGECOIN_MAINNET_PARAMS = {
|
|
12
|
+
name: 'mainnet',
|
|
13
|
+
slip44CoinId: utxo_network_params_ts_1.Slip44.DOGE,
|
|
14
|
+
networkInfo: coininfo_1.default.dogecoin.main.toBitcoinJS(),
|
|
15
|
+
supportedDerivationPurposes: DOGE_PURPOSES,
|
|
16
|
+
dustValueSats: DOGE_DUST_SATS,
|
|
17
|
+
walletAddressRegex: /^D[1-9A-HJ-NP-Za-km-z]{25,34}$/,
|
|
18
|
+
};
|
|
19
|
+
const dogecoinTest = coininfo_1.default.dogecoin.test;
|
|
20
|
+
exports.DOGECOIN_TESTNET_PARAMS = dogecoinTest
|
|
21
|
+
? {
|
|
22
|
+
name: 'testnet',
|
|
23
|
+
slip44CoinId: utxo_network_params_ts_1.Slip44.Testnet,
|
|
24
|
+
networkInfo: dogecoinTest.toBitcoinJS(),
|
|
25
|
+
supportedDerivationPurposes: DOGE_PURPOSES,
|
|
26
|
+
dustValueSats: DOGE_DUST_SATS,
|
|
27
|
+
walletAddressRegex: /^[mn][1-9A-HJ-NP-Za-km-z]{25,34}$/,
|
|
28
|
+
}
|
|
29
|
+
: null;
|
|
30
|
+
//# sourceMappingURL=network_params.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"network_params.js","sourceRoot":"","sources":["../../../../utxo/doge/network_params.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAgC;AAEhC,sEAImC;AAEnC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,4CAAmB,CAAC,CAAC,CAAC;AAErD,MAAM,cAAc,GAAG,SAAS,CAAC;AAEpB,QAAA,uBAAuB,GAAsB;IACxD,IAAI,EAAE,SAAS;IACf,YAAY,EAAE,+BAAM,CAAC,IAAI;IACzB,WAAW,EAAE,kBAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE;IACjD,2BAA2B,EAAE,aAAa;IAC1C,aAAa,EAAE,cAAc;IAC7B,kBAAkB,EAAE,gCAAgC;CACrD,CAAC;AAEF,MAAM,YAAY,GAAG,kBAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC/B,QAAA,uBAAuB,GAA6B,YAAY;IAC3E,CAAC,CAAC;QACE,IAAI,EAAE,SAAS;QACf,YAAY,EAAE,+BAAM,CAAC,OAAO;QAC5B,WAAW,EAAE,YAAY,CAAC,WAAW,EAAE;QACvC,2BAA2B,EAAE,aAAa;QAC1C,aAAa,EAAE,cAAc;QAC7B,kBAAkB,EAAE,mCAAmC;KACxD;IACH,CAAC,CAAC,IAAI,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.ensureEccInitialized = ensureEccInitialized;
|
|
37
|
+
const bitcoinjs_lib_1 = require("bitcoinjs-lib");
|
|
38
|
+
const ecc = __importStar(require("tiny-secp256k1"));
|
|
39
|
+
let initialized = false;
|
|
40
|
+
function ensureEccInitialized() {
|
|
41
|
+
if (initialized)
|
|
42
|
+
return;
|
|
43
|
+
(0, bitcoinjs_lib_1.initEccLib)(ecc);
|
|
44
|
+
initialized = true;
|
|
45
|
+
}
|
|
46
|
+
ensureEccInitialized();
|
|
47
|
+
//# sourceMappingURL=ecc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ecc.js","sourceRoot":"","sources":["../../../utxo/ecc.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,oDAIC;AATD,iDAA2C;AAC3C,oDAAsC;AAEtC,IAAI,WAAW,GAAG,KAAK,CAAC;AAExB,SAAgB,oBAAoB;IAClC,IAAI,WAAW;QAAE,OAAO;IACxB,IAAA,0BAAU,EAAC,GAAG,CAAC,CAAC;IAChB,WAAW,GAAG,IAAI,CAAC;AACrB,CAAC;AAED,oBAAoB,EAAE,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OUTPUT_VBYTES = exports.INPUT_VBYTES = exports.TX_OVERHEAD_VBYTES = void 0;
|
|
4
|
+
exports.inputVBytes = inputVBytes;
|
|
5
|
+
exports.outputVBytes = outputVBytes;
|
|
6
|
+
exports.opReturnOutputVBytes = opReturnOutputVBytes;
|
|
7
|
+
exports.estimateTxVBytes = estimateTxVBytes;
|
|
8
|
+
exports.feeForVBytes = feeForVBytes;
|
|
9
|
+
exports.effectiveValueSats = effectiveValueSats;
|
|
10
|
+
exports.costOfChangeSats = costOfChangeSats;
|
|
11
|
+
const script_ts_1 = require("./script.js");
|
|
12
|
+
exports.TX_OVERHEAD_VBYTES = 10.5;
|
|
13
|
+
exports.INPUT_VBYTES = {
|
|
14
|
+
[script_ts_1.UtxoScriptTypes.P2PKH]: 148,
|
|
15
|
+
[script_ts_1.UtxoScriptTypes.P2SH]: 91,
|
|
16
|
+
[script_ts_1.UtxoScriptTypes.P2WPKH]: 68,
|
|
17
|
+
[script_ts_1.UtxoScriptTypes.P2WSH]: 105,
|
|
18
|
+
[script_ts_1.UtxoScriptTypes.P2TR]: 57.5,
|
|
19
|
+
[script_ts_1.UtxoScriptTypes.OpReturn]: 0,
|
|
20
|
+
[script_ts_1.UtxoScriptTypes.NonStandard]: 0,
|
|
21
|
+
};
|
|
22
|
+
exports.OUTPUT_VBYTES = {
|
|
23
|
+
[script_ts_1.UtxoScriptTypes.P2PKH]: 34,
|
|
24
|
+
[script_ts_1.UtxoScriptTypes.P2SH]: 32,
|
|
25
|
+
[script_ts_1.UtxoScriptTypes.P2WPKH]: 31,
|
|
26
|
+
[script_ts_1.UtxoScriptTypes.P2WSH]: 43,
|
|
27
|
+
[script_ts_1.UtxoScriptTypes.P2TR]: 43,
|
|
28
|
+
[script_ts_1.UtxoScriptTypes.OpReturn]: 0,
|
|
29
|
+
[script_ts_1.UtxoScriptTypes.NonStandard]: 0,
|
|
30
|
+
};
|
|
31
|
+
function inputVBytes(type) {
|
|
32
|
+
return exports.INPUT_VBYTES[type];
|
|
33
|
+
}
|
|
34
|
+
function outputVBytes(type) {
|
|
35
|
+
return exports.OUTPUT_VBYTES[type];
|
|
36
|
+
}
|
|
37
|
+
function opReturnOutputVBytes(dataLengthBytes) {
|
|
38
|
+
return Math.ceil(8 + 1 + 1 + 1 + (dataLengthBytes < 76 ? 0 : 1) + dataLengthBytes);
|
|
39
|
+
}
|
|
40
|
+
function estimateTxVBytes(inputTypes, outputTypes, opReturnDataLengths = []) {
|
|
41
|
+
let total = exports.TX_OVERHEAD_VBYTES;
|
|
42
|
+
for (const t of inputTypes)
|
|
43
|
+
total += inputVBytes(t);
|
|
44
|
+
for (const t of outputTypes)
|
|
45
|
+
total += outputVBytes(t);
|
|
46
|
+
for (const len of opReturnDataLengths)
|
|
47
|
+
total += opReturnOutputVBytes(len);
|
|
48
|
+
return Math.ceil(total);
|
|
49
|
+
}
|
|
50
|
+
function feeForVBytes(vBytes, satsPerVByte) {
|
|
51
|
+
return Math.ceil(vBytes * satsPerVByte);
|
|
52
|
+
}
|
|
53
|
+
function effectiveValueSats(utxoValueSats, inputType, satsPerVByte) {
|
|
54
|
+
return utxoValueSats - Math.ceil(inputVBytes(inputType) * satsPerVByte);
|
|
55
|
+
}
|
|
56
|
+
function costOfChangeSats(changeOutputType, shortTermFeeRateSatsPerVByte, longTermFeeRateSatsPerVByte) {
|
|
57
|
+
const create = outputVBytes(changeOutputType) * shortTermFeeRateSatsPerVByte;
|
|
58
|
+
const spend = inputVBytes(changeOutputType) * longTermFeeRateSatsPerVByte;
|
|
59
|
+
return Math.ceil(create + spend);
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=fee.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fee.js","sourceRoot":"","sources":["../../../utxo/fee.ts"],"names":[],"mappings":";;;AAwBA,kCAEC;AAED,oCAEC;AAED,oDAEC;AAED,4CAUC;AAED,oCAEC;AAED,gDAEC;AAED,4CAQC;AAhED,2CAA8D;AAEjD,QAAA,kBAAkB,GAAG,IAAI,CAAC;AAE1B,QAAA,YAAY,GAAmC;IAC1D,CAAC,2BAAe,CAAC,KAAK,CAAC,EAAE,GAAG;IAC5B,CAAC,2BAAe,CAAC,IAAI,CAAC,EAAE,EAAE;IAC1B,CAAC,2BAAe,CAAC,MAAM,CAAC,EAAE,EAAE;IAC5B,CAAC,2BAAe,CAAC,KAAK,CAAC,EAAE,GAAG;IAC5B,CAAC,2BAAe,CAAC,IAAI,CAAC,EAAE,IAAI;IAC5B,CAAC,2BAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC7B,CAAC,2BAAe,CAAC,WAAW,CAAC,EAAE,CAAC;CACjC,CAAC;AAEW,QAAA,aAAa,GAAmC;IAC3D,CAAC,2BAAe,CAAC,KAAK,CAAC,EAAE,EAAE;IAC3B,CAAC,2BAAe,CAAC,IAAI,CAAC,EAAE,EAAE;IAC1B,CAAC,2BAAe,CAAC,MAAM,CAAC,EAAE,EAAE;IAC5B,CAAC,2BAAe,CAAC,KAAK,CAAC,EAAE,EAAE;IAC3B,CAAC,2BAAe,CAAC,IAAI,CAAC,EAAE,EAAE;IAC1B,CAAC,2BAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC7B,CAAC,2BAAe,CAAC,WAAW,CAAC,EAAE,CAAC;CACjC,CAAC;AAEF,SAAgB,WAAW,CAAC,IAAoB;IAC9C,OAAO,oBAAY,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,SAAgB,YAAY,CAAC,IAAoB;IAC/C,OAAO,qBAAa,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,SAAgB,oBAAoB,CAAC,eAAuB;IAC1D,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC;AACrF,CAAC;AAED,SAAgB,gBAAgB,CAC9B,UAAqC,EACrC,WAAsC,EACtC,sBAAyC,EAAE;IAE3C,IAAI,KAAK,GAAG,0BAAkB,CAAC;IAC/B,KAAK,MAAM,CAAC,IAAI,UAAU;QAAE,KAAK,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;IACpD,KAAK,MAAM,CAAC,IAAI,WAAW;QAAE,KAAK,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;IACtD,KAAK,MAAM,GAAG,IAAI,mBAAmB;QAAE,KAAK,IAAI,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAC1E,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC;AAED,SAAgB,YAAY,CAAC,MAAc,EAAE,YAAoB;IAC/D,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,CAAC;AAC1C,CAAC;AAED,SAAgB,kBAAkB,CAAC,aAAqB,EAAE,SAAyB,EAAE,YAAoB;IACvG,OAAO,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,YAAY,CAAC,CAAC;AAC1E,CAAC;AAED,SAAgB,gBAAgB,CAC9B,gBAAgC,EAChC,4BAAoC,EACpC,2BAAmC;IAEnC,MAAM,MAAM,GAAG,YAAY,CAAC,gBAAgB,CAAC,GAAG,4BAA4B,CAAC;IAC7E,MAAM,KAAK,GAAG,WAAW,CAAC,gBAAgB,CAAC,GAAG,2BAA2B,CAAC;IAC1E,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;AACnC,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./coin_selection.js"), exports);
|
|
18
|
+
__exportStar(require("./ecc.js"), exports);
|
|
19
|
+
__exportStar(require("./fee.js"), exports);
|
|
20
|
+
__exportStar(require("./script.js"), exports);
|
|
21
|
+
__exportStar(require("./tools/broadcaster.js"), exports);
|
|
22
|
+
__exportStar(require("./tools/chain_tip_provider.js"), exports);
|
|
23
|
+
__exportStar(require("./tools/fee_estimator.js"), exports);
|
|
24
|
+
__exportStar(require("./tools/raw_transaction_provider.js"), exports);
|
|
25
|
+
__exportStar(require("./tools/utxo_provider.js"), exports);
|
|
26
|
+
__exportStar(require("./unsigned_utxo_transaction.js"), exports);
|
|
27
|
+
__exportStar(require("./utxo.js"), exports);
|
|
28
|
+
__exportStar(require("./utxo_chain.js"), exports);
|
|
29
|
+
__exportStar(require("./utxo_chains.js"), exports);
|
|
30
|
+
__exportStar(require("./utxo_gas_pricing.js"), exports);
|
|
31
|
+
__exportStar(require("./utxo_network_params.js"), exports);
|
|
32
|
+
__exportStar(require("./utxo_transaction_status.js"), exports);
|
|
33
|
+
__exportStar(require("./btc/index.js"), exports);
|
|
34
|
+
__exportStar(require("./ltc/index.js"), exports);
|
|
35
|
+
__exportStar(require("./doge/index.js"), exports);
|
|
36
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../utxo/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,2CAAyB;AACzB,2CAAyB;AACzB,8CAA4B;AAC5B,yDAAuC;AACvC,gEAA8C;AAC9C,2DAAyC;AACzC,sEAAoD;AACpD,2DAAyC;AACzC,iEAA+C;AAC/C,4CAA0B;AAC1B,kDAAgC;AAChC,mDAAiC;AACjC,wDAAsC;AACtC,2DAAyC;AACzC,+DAA6C;AAC7C,iDAA+B;AAC/B,iDAA+B;AAC/B,kDAAgC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./ltc_chains.js"), exports);
|
|
18
|
+
__exportStar(require("./network_params.js"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../utxo/ltc/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,sDAAoC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.litecoinMainnetChain = litecoinMainnetChain;
|
|
4
|
+
exports.litecoinTestnetChain = litecoinTestnetChain;
|
|
5
|
+
const utxo_chain_ts_1 = require("../utxo_chain.js");
|
|
6
|
+
const network_params_ts_1 = require("./network_params.js");
|
|
7
|
+
function litecoinMainnetChain(options) {
|
|
8
|
+
return new utxo_chain_ts_1.UtxoChain({
|
|
9
|
+
name: 'Litecoin',
|
|
10
|
+
params: network_params_ts_1.LITECOIN_MAINNET_PARAMS,
|
|
11
|
+
nativeSymbol: 'LTC',
|
|
12
|
+
blockTimeSeconds: 150,
|
|
13
|
+
...options,
|
|
14
|
+
walletExplorerUrlTemplate: 'https://blockchair.com/litecoin/address/{wallet_address}',
|
|
15
|
+
transactionExplorerUrlTemplate: 'https://blockchair.com/litecoin/transaction/{tx_hash}',
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
function litecoinTestnetChain(options) {
|
|
19
|
+
if (network_params_ts_1.LITECOIN_TESTNET_PARAMS === null) {
|
|
20
|
+
throw new Error('Litecoin testnet params unavailable (coininfo.litecoin.test missing)');
|
|
21
|
+
}
|
|
22
|
+
return new utxo_chain_ts_1.UtxoChain({
|
|
23
|
+
name: 'Litecoin Testnet',
|
|
24
|
+
params: network_params_ts_1.LITECOIN_TESTNET_PARAMS,
|
|
25
|
+
nativeSymbol: 'tLTC',
|
|
26
|
+
blockTimeSeconds: 150,
|
|
27
|
+
...options,
|
|
28
|
+
walletExplorerUrlTemplate: 'https://blockexplorer.one/litecoin/testnet/address/{wallet_address}',
|
|
29
|
+
transactionExplorerUrlTemplate: 'https://blockexplorer.one/litecoin/testnet/tx/{tx_hash}',
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=ltc_chains.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ltc_chains.js","sourceRoot":"","sources":["../../../../utxo/ltc/ltc_chains.ts"],"names":[],"mappings":";;AAiBA,oDAUC;AAED,oDAaC;AArCD,oDAA6C;AAC7C,2DAAuF;AAWvF,SAAgB,oBAAoB,CAAC,OAAoC;IACvE,OAAO,IAAI,yBAAS,CAAC;QACnB,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,2CAAuB;QAC/B,YAAY,EAAE,KAAK;QACnB,gBAAgB,EAAE,GAAG;QACrB,GAAG,OAAO;QACV,yBAAyB,EAAE,0DAA0D;QACrF,8BAA8B,EAAE,uDAAuD;KACxF,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,oBAAoB,CAAC,OAAoC;IACvE,IAAI,2CAAuB,KAAK,IAAI,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;IAC1F,CAAC;IACD,OAAO,IAAI,yBAAS,CAAC;QACnB,IAAI,EAAE,kBAAkB;QACxB,MAAM,EAAE,2CAAuB;QAC/B,YAAY,EAAE,MAAM;QACpB,gBAAgB,EAAE,GAAG;QACrB,GAAG,OAAO;QACV,yBAAyB,EAAE,qEAAqE;QAChG,8BAA8B,EAAE,yDAAyD;KAC1F,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.LITECOIN_TESTNET_PARAMS = exports.LITECOIN_MAINNET_PARAMS = void 0;
|
|
7
|
+
const coininfo_1 = __importDefault(require("coininfo"));
|
|
8
|
+
const utxo_network_params_ts_1 = require("../utxo_network_params.js");
|
|
9
|
+
const LTC_PURPOSES = new Set([
|
|
10
|
+
utxo_network_params_ts_1.BIP32_PURPOSE_P2PKH,
|
|
11
|
+
utxo_network_params_ts_1.BIP32_PURPOSE_P2SH_P2WPKH,
|
|
12
|
+
utxo_network_params_ts_1.BIP32_PURPOSE_P2WPKH,
|
|
13
|
+
]);
|
|
14
|
+
exports.LITECOIN_MAINNET_PARAMS = {
|
|
15
|
+
name: 'mainnet',
|
|
16
|
+
slip44CoinId: utxo_network_params_ts_1.Slip44.LTC,
|
|
17
|
+
networkInfo: coininfo_1.default.litecoin.main.toBitcoinJS(),
|
|
18
|
+
supportedDerivationPurposes: LTC_PURPOSES,
|
|
19
|
+
dustValueSats: utxo_network_params_ts_1.DEFAULT_DUST_SATS,
|
|
20
|
+
walletAddressRegex: /^(ltc1[qp][ac-hj-np-z02-9]{11,71}|[LM3][a-km-zA-HJ-NP-Z1-9]{25,34})$/,
|
|
21
|
+
};
|
|
22
|
+
const litecoinTest = coininfo_1.default.litecoin.test;
|
|
23
|
+
exports.LITECOIN_TESTNET_PARAMS = litecoinTest
|
|
24
|
+
? {
|
|
25
|
+
name: 'testnet',
|
|
26
|
+
slip44CoinId: utxo_network_params_ts_1.Slip44.Testnet,
|
|
27
|
+
networkInfo: litecoinTest.toBitcoinJS(),
|
|
28
|
+
supportedDerivationPurposes: LTC_PURPOSES,
|
|
29
|
+
dustValueSats: utxo_network_params_ts_1.DEFAULT_DUST_SATS,
|
|
30
|
+
walletAddressRegex: /^(tltc1[qp][ac-hj-np-z02-9]{11,71}|[mn2][a-km-zA-HJ-NP-Z1-9]{25,34})$/,
|
|
31
|
+
}
|
|
32
|
+
: null;
|
|
33
|
+
//# sourceMappingURL=network_params.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"network_params.js","sourceRoot":"","sources":["../../../../utxo/ltc/network_params.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAgC;AAEhC,sEAOmC;AAEnC,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC;IAC3B,4CAAmB;IACnB,kDAAyB;IACzB,6CAAoB;CACrB,CAAC,CAAC;AAEU,QAAA,uBAAuB,GAAsB;IACxD,IAAI,EAAE,SAAS;IACf,YAAY,EAAE,+BAAM,CAAC,GAAG;IACxB,WAAW,EAAE,kBAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE;IACjD,2BAA2B,EAAE,YAAY;IACzC,aAAa,EAAE,0CAAiB;IAChC,kBAAkB,EAAE,sEAAsE;CAC3F,CAAC;AAEF,MAAM,YAAY,GAAG,kBAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC/B,QAAA,uBAAuB,GAA6B,YAAY;IAC3E,CAAC,CAAC;QACE,IAAI,EAAE,SAAS;QACf,YAAY,EAAE,+BAAM,CAAC,OAAO;QAC5B,WAAW,EAAE,YAAY,CAAC,WAAW,EAAE;QACvC,2BAA2B,EAAE,YAAY;QACzC,aAAa,EAAE,0CAAiB;QAChC,kBAAkB,EAAE,uEAAuE;KAC5F;IACH,CAAC,CAAC,IAAI,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UtxoScriptTypes = void 0;
|
|
4
|
+
exports.detectScriptType = detectScriptType;
|
|
5
|
+
exports.addressToScriptPubKey = addressToScriptPubKey;
|
|
6
|
+
exports.scriptTypeForAddress = scriptTypeForAddress;
|
|
7
|
+
exports.buildOpReturnScript = buildOpReturnScript;
|
|
8
|
+
const bitcoinjs_lib_1 = require("bitcoinjs-lib");
|
|
9
|
+
const utxo_network_params_ts_1 = require("./utxo_network_params.js");
|
|
10
|
+
exports.UtxoScriptTypes = {
|
|
11
|
+
P2PKH: 'p2pkh',
|
|
12
|
+
P2SH: 'p2sh',
|
|
13
|
+
P2WPKH: 'p2wpkh',
|
|
14
|
+
P2WSH: 'p2wsh',
|
|
15
|
+
P2TR: 'p2tr',
|
|
16
|
+
OpReturn: 'op_return',
|
|
17
|
+
NonStandard: 'non_standard',
|
|
18
|
+
};
|
|
19
|
+
function detectScriptType(script) {
|
|
20
|
+
const s = script;
|
|
21
|
+
if (s.length === 25 &&
|
|
22
|
+
s[0] === 0x76 &&
|
|
23
|
+
s[1] === 0xa9 &&
|
|
24
|
+
s[2] === 0x14 &&
|
|
25
|
+
s[23] === 0x88 &&
|
|
26
|
+
s[24] === 0xac) {
|
|
27
|
+
return exports.UtxoScriptTypes.P2PKH;
|
|
28
|
+
}
|
|
29
|
+
if (s.length === 23 && s[0] === 0xa9 && s[1] === 0x14 && s[22] === 0x87) {
|
|
30
|
+
return exports.UtxoScriptTypes.P2SH;
|
|
31
|
+
}
|
|
32
|
+
if (s.length === 22 && s[0] === 0x00 && s[1] === 0x14) {
|
|
33
|
+
return exports.UtxoScriptTypes.P2WPKH;
|
|
34
|
+
}
|
|
35
|
+
if (s.length === 34 && s[0] === 0x00 && s[1] === 0x20) {
|
|
36
|
+
return exports.UtxoScriptTypes.P2WSH;
|
|
37
|
+
}
|
|
38
|
+
if (s.length === 34 && s[0] === 0x51 && s[1] === 0x20) {
|
|
39
|
+
return exports.UtxoScriptTypes.P2TR;
|
|
40
|
+
}
|
|
41
|
+
if (s.length > 0 && s[0] === 0x6a) {
|
|
42
|
+
return exports.UtxoScriptTypes.OpReturn;
|
|
43
|
+
}
|
|
44
|
+
return exports.UtxoScriptTypes.NonStandard;
|
|
45
|
+
}
|
|
46
|
+
function addressToScriptPubKey(addressStr, network) {
|
|
47
|
+
return bitcoinjs_lib_1.address.toOutputScript(addressStr, network);
|
|
48
|
+
}
|
|
49
|
+
function scriptTypeForAddress(addressStr, network) {
|
|
50
|
+
const script = addressToScriptPubKey(addressStr, network);
|
|
51
|
+
return detectScriptType(script);
|
|
52
|
+
}
|
|
53
|
+
function buildOpReturnScript(data) {
|
|
54
|
+
if (data.length > utxo_network_params_ts_1.OP_RETURN_MAX_BYTES) {
|
|
55
|
+
throw new Error(`OP_RETURN data length ${data.length} exceeds max ${utxo_network_params_ts_1.OP_RETURN_MAX_BYTES} bytes`);
|
|
56
|
+
}
|
|
57
|
+
return bitcoinjs_lib_1.script.compile([bitcoinjs_lib_1.opcodes.OP_RETURN, Buffer.from(data)]);
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=script.js.map
|