@getomnichain/omnichain 0.2.0 → 0.3.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/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 +118 -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 +1109 -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 +187 -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 +34 -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 +1305 -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 +63 -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 +612 -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/{chain.base.d.ts → esm/chain.base.d.ts} +38 -1
- 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/{errors.d.ts → esm/errors.d.ts} +13 -0
- package/dist/esm/errors.d.ts.map +1 -0
- package/dist/esm/errors.js +107 -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/{evm → esm/evm}/evm_chain.d.ts +48 -2
- package/dist/esm/evm/evm_chain.d.ts.map +1 -0
- package/dist/{evm → esm/evm}/evm_chain.js +423 -4
- 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/{evm → esm/evm}/evm_transaction_status.d.ts +4 -0
- package/dist/esm/evm/evm_transaction_status.d.ts.map +1 -0
- package/dist/{evm → esm/evm}/evm_transaction_status.js +4 -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/{evm → esm/evm}/unsigned_evm_transaction.d.ts +13 -0
- package/dist/esm/evm/unsigned_evm_transaction.d.ts.map +1 -0
- package/dist/{evm → esm/evm}/unsigned_evm_transaction.js +12 -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/{solana → esm/solana}/solana_chain.d.ts +87 -3
- package/dist/esm/solana/solana_chain.d.ts.map +1 -0
- package/dist/{solana → esm/solana}/solana_chain.js +618 -23
- 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/{solana → esm/solana}/unsigned_solana_transaction.d.ts +20 -1
- package/dist/esm/solana/unsigned_solana_transaction.d.ts.map +1 -0
- package/dist/esm/solana/unsigned_solana_transaction.js +59 -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/{utxo → esm/utxo}/utxo_chain.d.ts +15 -2
- package/dist/esm/utxo/utxo_chain.d.ts.map +1 -0
- package/dist/{utxo → esm/utxo}/utxo_chain.js +96 -13
- 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/docs/CONNECTIONS.md +33 -0
- package/docs/EIP7702.md +77 -0
- package/docs/JITO.md +41 -0
- package/docs/MULTI_RPC.md +28 -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 +0 -62
- 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 +0 -26
- 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.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/{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_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}/index.d.ts +0 -0
- /package/dist/{evm → esm/evm}/index.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_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/{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_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,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AbstractGasPricing = void 0;
|
|
4
|
+
exports.isAbstractGasPricing = isAbstractGasPricing;
|
|
5
|
+
/**
|
|
6
|
+
* Base for chain-specific *explicit* fee overrides — mirrors Python's
|
|
7
|
+
* `AbstractGasPricing(pydantic.BaseModel)` at `base/base.py:141-158`.
|
|
8
|
+
* A subclass declares its `networkType` and carries the concrete fee
|
|
9
|
+
* fields for that chain (`EvmGasPricing`, `SolanaGasPricing`,
|
|
10
|
+
* `UtxoGasPricing`).
|
|
11
|
+
*
|
|
12
|
+
* A caller who wants exact numeric control passes an `AbstractGasPricing`
|
|
13
|
+
* subclass to `createTransferUnsignedTransaction`; passing a
|
|
14
|
+
* `FeePriority` tier (SLOW/NORMAL/FAST) instead defers to each chain's
|
|
15
|
+
* `suggest*` estimator. See `GasPricingType`.
|
|
16
|
+
*/
|
|
17
|
+
class AbstractGasPricing {
|
|
18
|
+
}
|
|
19
|
+
exports.AbstractGasPricing = AbstractGasPricing;
|
|
20
|
+
/**
|
|
21
|
+
* Runtime discriminator for `GasPricingType`. `FeePriority` is a
|
|
22
|
+
* string enum; `AbstractGasPricing` is a class instance.
|
|
23
|
+
*/
|
|
24
|
+
function isAbstractGasPricing(value) {
|
|
25
|
+
return value instanceof AbstractGasPricing;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=abstract_gas_pricing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"abstract_gas_pricing.js","sourceRoot":"","sources":["../../abstract_gas_pricing.ts"],"names":[],"mappings":";;;AAgCA,oDAEC;AA/BD;;;;;;;;;;;GAWG;AACH,MAAsB,kBAAkB;CAEvC;AAFD,gDAEC;AAWD;;;GAGG;AACH,SAAgB,oBAAoB,CAAC,KAAqB;IACxD,OAAO,KAAK,YAAY,kBAAkB,CAAC;AAC7C,CAAC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addressFor = addressFor;
|
|
4
|
+
exports.canonicalizeAddress = canonicalizeAddress;
|
|
5
|
+
exports.tryCanonicalizeAddress = tryCanonicalizeAddress;
|
|
6
|
+
exports.canonicalizeAddressStrict = canonicalizeAddressStrict;
|
|
7
|
+
const errors_ts_1 = require("./errors.js");
|
|
8
|
+
const network_type_ts_1 = require("./network_type.js");
|
|
9
|
+
const evm_address_ts_1 = require("./evm/evm_address.js");
|
|
10
|
+
const solana_address_ts_1 = require("./solana/solana_address.js");
|
|
11
|
+
const ton_address_ts_1 = require("./ton/ton_address.js");
|
|
12
|
+
const btc_address_ts_1 = require("./utxo/btc/btc_address.js");
|
|
13
|
+
const network_params_ts_1 = require("./utxo/btc/network_params.js");
|
|
14
|
+
function addressFor(chainId, raw) {
|
|
15
|
+
const family = (0, network_type_ts_1.networkTypeOf)(chainId);
|
|
16
|
+
switch (family) {
|
|
17
|
+
case network_type_ts_1.NetworkType.EVM:
|
|
18
|
+
return new evm_address_ts_1.EvmAddress(raw);
|
|
19
|
+
case network_type_ts_1.NetworkType.SOLANA:
|
|
20
|
+
return new solana_address_ts_1.SolanaAddress(raw);
|
|
21
|
+
case network_type_ts_1.NetworkType.BTC:
|
|
22
|
+
return new btc_address_ts_1.BtcAddress(raw, (0, network_params_ts_1.btcParamsForChainId)(BigInt(chainId)));
|
|
23
|
+
case network_type_ts_1.NetworkType.TON:
|
|
24
|
+
return new ton_address_ts_1.TonAddress(raw);
|
|
25
|
+
// TRON / COSMOS have no in-repo Address class yet. Rather than fall through
|
|
26
|
+
// to EvmAddress (which would silently accept a valid EVM address for a
|
|
27
|
+
// Tron chain and un-canonicalize base58 T… addresses), fail closed until
|
|
28
|
+
// the concrete implementations land.
|
|
29
|
+
case network_type_ts_1.NetworkType.TRON:
|
|
30
|
+
case network_type_ts_1.NetworkType.COSMOS:
|
|
31
|
+
throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.ChainNotSupported, `${family} address parsing is not implemented for chainId ${chainId}`, { chainId });
|
|
32
|
+
default: {
|
|
33
|
+
// Exhaustiveness guard — a new NetworkType value should force this
|
|
34
|
+
// switch to be updated rather than fall through to EVM.
|
|
35
|
+
const exhaustive = family;
|
|
36
|
+
throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.ChainNotSupported, `Unhandled NetworkType ${String(exhaustive)} for chainId ${chainId}`, { chainId });
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
function canonicalizeAddress(chainId, raw) {
|
|
41
|
+
return addressFor(chainId, raw).canonical();
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Total function — never throws. Returns the raw input on any failure
|
|
45
|
+
* (address-format error, unsupported chain, malformed args).
|
|
46
|
+
*
|
|
47
|
+
* Callers that need to fail loudly on stale/unsupported chainIds while
|
|
48
|
+
* still tolerating address-format errors should use
|
|
49
|
+
* `canonicalizeAddressStrict` instead.
|
|
50
|
+
*/
|
|
51
|
+
function tryCanonicalizeAddress(chainId, raw) {
|
|
52
|
+
try {
|
|
53
|
+
return canonicalizeAddress(chainId, raw);
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
return raw;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Swallows address-format errors (returns raw input) but re-throws
|
|
61
|
+
* `ChainError(ChainNotSupported)` so a stale chainId (e.g. un-migrated
|
|
62
|
+
* legacy Solana `-100`) fails loudly rather than passing a bogus routing
|
|
63
|
+
* signal downstream. Use in application code where an unsupported chain
|
|
64
|
+
* is a hard error the caller wants to surface, and address-format
|
|
65
|
+
* errors are reported by a separate validation layer.
|
|
66
|
+
*
|
|
67
|
+
* NOT for class-transformer `@Transform` callbacks — a throw there also
|
|
68
|
+
* fires during response serialization when an entity carries a stale
|
|
69
|
+
* chainId, killing every read of a legacy row.
|
|
70
|
+
*/
|
|
71
|
+
function canonicalizeAddressStrict(chainId, raw) {
|
|
72
|
+
try {
|
|
73
|
+
return canonicalizeAddress(chainId, raw);
|
|
74
|
+
}
|
|
75
|
+
catch (e) {
|
|
76
|
+
if ((0, errors_ts_1.isChainError)(e, errors_ts_1.ChainErrorKinds.ChainNotSupported))
|
|
77
|
+
throw e;
|
|
78
|
+
return raw;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=address.factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"address.factory.js","sourceRoot":"","sources":["../../address.factory.ts"],"names":[],"mappings":";;AAUA,gCAiCC;AAED,kDAEC;AAUD,wDAMC;AAcD,8DAOC;AApFD,2CAAwE;AACxE,uDAA+D;AAG/D,yDAAkD;AAClD,kEAA2D;AAC3D,yDAAkD;AAClD,8DAAuD;AACvD,oEAAmE;AAEnE,SAAgB,UAAU,CAAC,OAAe,EAAE,GAAW;IACrD,MAAM,MAAM,GAAG,IAAA,+BAAa,EAAC,OAAO,CAAC,CAAC;IACtC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,6BAAW,CAAC,GAAG;YAClB,OAAO,IAAI,2BAAU,CAAC,GAAG,CAAC,CAAC;QAC7B,KAAK,6BAAW,CAAC,MAAM;YACrB,OAAO,IAAI,iCAAa,CAAC,GAAG,CAAC,CAAC;QAChC,KAAK,6BAAW,CAAC,GAAG;YAClB,OAAO,IAAI,2BAAU,CAAC,GAAG,EAAE,IAAA,uCAAmB,EAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACnE,KAAK,6BAAW,CAAC,GAAG;YAClB,OAAO,IAAI,2BAAU,CAAC,GAAG,CAAC,CAAC;QAC7B,4EAA4E;QAC5E,uEAAuE;QACvE,yEAAyE;QACzE,qCAAqC;QACrC,KAAK,6BAAW,CAAC,IAAI,CAAC;QACtB,KAAK,6BAAW,CAAC,MAAM;YACrB,MAAM,IAAI,sBAAU,CAClB,2BAAe,CAAC,iBAAiB,EACjC,GAAG,MAAM,mDAAmD,OAAO,EAAE,EACrE,EAAE,OAAO,EAAE,CACZ,CAAC;QACJ,OAAO,CAAC,CAAC,CAAC;YACR,mEAAmE;YACnE,wDAAwD;YACxD,MAAM,UAAU,GAAU,MAAM,CAAC;YACjC,MAAM,IAAI,sBAAU,CAClB,2BAAe,CAAC,iBAAiB,EACjC,yBAAyB,MAAM,CAAC,UAAU,CAAC,gBAAgB,OAAO,EAAE,EACpE,EAAE,OAAO,EAAE,CACZ,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAgB,mBAAmB,CAAC,OAAe,EAAE,GAAW;IAC9D,OAAO,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC;AAC9C,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,sBAAsB,CAAC,OAAe,EAAE,GAAW;IACjE,IAAI,CAAC;QACH,OAAO,mBAAmB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,CAAC;IACb,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,yBAAyB,CAAC,OAAe,EAAE,GAAW;IACpE,IAAI,CAAC;QACH,OAAO,mBAAmB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,IAAA,wBAAY,EAAC,CAAC,EAAE,2BAAe,CAAC,iBAAiB,CAAC;YAAE,MAAM,CAAC,CAAC;QAChE,OAAO,GAAG,CAAC;IACb,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Address = void 0;
|
|
4
|
+
class Address {
|
|
5
|
+
raw;
|
|
6
|
+
constructor(raw) {
|
|
7
|
+
this.raw = raw;
|
|
8
|
+
}
|
|
9
|
+
equals(other) {
|
|
10
|
+
return (this.networkType === other.networkType && this.canonical() === other.canonical());
|
|
11
|
+
}
|
|
12
|
+
toString() {
|
|
13
|
+
return this.canonical();
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.Address = Address;
|
|
17
|
+
//# sourceMappingURL=address.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"address.js","sourceRoot":"","sources":["../../address.ts"],"names":[],"mappings":";;;AAEA,MAAsB,OAAO;IACc;IAAzC,YAAyC,GAAW;QAAX,QAAG,GAAH,GAAG,CAAQ;IAAG,CAAC;IAKxD,MAAM,CAAC,KAAc;QACnB,OAAO,CACL,IAAI,CAAC,WAAW,KAAK,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,KAAK,CAAC,SAAS,EAAE,CACjF,CAAC;IACJ,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;IAC1B,CAAC;CACF;AAfD,0BAeC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AddressField = AddressField;
|
|
4
|
+
const class_transformer_1 = require("class-transformer");
|
|
5
|
+
const address_factory_ts_1 = require("./address.factory.js");
|
|
6
|
+
const is_address_decorator_ts_1 = require("./is_address.decorator.js");
|
|
7
|
+
/**
|
|
8
|
+
* Combines a `class-transformer` `@Transform` that canonicalizes the address
|
|
9
|
+
* value with an `@IsAddress` validator.
|
|
10
|
+
*
|
|
11
|
+
* The transform uses `tryCanonicalizeAddress` — a total function that
|
|
12
|
+
* swallows **every** failure (including `ChainNotSupported`) and returns the
|
|
13
|
+
* raw input. `@IsAddress` is the sole reporter of the failure at DTO
|
|
14
|
+
* validation time. This is deliberate: a `@Transform` also runs during
|
|
15
|
+
* `instanceToPlain` (response serialization), and a throw there would fail
|
|
16
|
+
* every read of a legacy-chainId entity row.
|
|
17
|
+
*
|
|
18
|
+
* For application code outside a class-transformer boundary that wants
|
|
19
|
+
* `ChainNotSupported` to fail loud (e.g. a service layer processing a
|
|
20
|
+
* migration queue), use `canonicalizeAddressStrict` instead.
|
|
21
|
+
*/
|
|
22
|
+
function AddressField(chainIdProperty) {
|
|
23
|
+
const transform = (0, class_transformer_1.Transform)(({ obj, value }) => {
|
|
24
|
+
if (typeof value !== 'string')
|
|
25
|
+
return value;
|
|
26
|
+
const chainId = obj[chainIdProperty];
|
|
27
|
+
if (typeof chainId !== 'number')
|
|
28
|
+
return value;
|
|
29
|
+
return (0, address_factory_ts_1.tryCanonicalizeAddress)(chainId, value);
|
|
30
|
+
});
|
|
31
|
+
const validate = (0, is_address_decorator_ts_1.IsAddress)(chainIdProperty);
|
|
32
|
+
return (target, propertyKey) => {
|
|
33
|
+
transform(target, propertyKey);
|
|
34
|
+
validate(target, propertyKey);
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=address_field.decorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"address_field.decorator.js","sourceRoot":"","sources":["../../address_field.decorator.ts"],"names":[],"mappings":";;AAoBA,oCAYC;AAhCD,yDAA8C;AAE9C,6DAA8D;AAC9D,uEAAsD;AAEtD;;;;;;;;;;;;;;GAcG;AACH,SAAgB,YAAY,CAAC,eAAuB;IAClD,MAAM,SAAS,GAAG,IAAA,6BAAS,EAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE;QAC7C,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC5C,MAAM,OAAO,GAAI,GAA+B,CAAC,eAAe,CAAC,CAAC;QAClE,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC9C,OAAO,IAAA,2CAAsB,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,IAAA,mCAAS,EAAC,eAAe,CAAC,CAAC;IAC5C,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE;QAC7B,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAC/B,QAAQ,CAAC,MAAM,EAAE,WAAqB,CAAC,CAAC;IAC1C,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Chain = void 0;
|
|
4
|
+
exports.resolveTransferAmount = resolveTransferAmount;
|
|
5
|
+
const decimal_js_1 = require("decimal.js");
|
|
6
|
+
const errors_ts_1 = require("./errors.js");
|
|
7
|
+
const transaction_status_ts_1 = require("./transaction_status.js");
|
|
8
|
+
/**
|
|
9
|
+
* Validates that exactly one of `{amount, amountHr, isFullBalance}` was
|
|
10
|
+
* supplied and normalizes to a common shape the chain builders consume.
|
|
11
|
+
* Chain-agnostic — the caller supplies `decimals` (from the resolved
|
|
12
|
+
* token). Rounds `amountHr` via `Decimal.trunc()` matching Python's
|
|
13
|
+
* `hr_to_mr`.
|
|
14
|
+
*
|
|
15
|
+
* Non-integer decimals / negative amount / etc. throw
|
|
16
|
+
* `ChainError(InvalidArgument)`.
|
|
17
|
+
*/
|
|
18
|
+
function resolveTransferAmount(req, decimals) {
|
|
19
|
+
// Upfront typeof gate for isFullBalance — silently coercing a non-boolean
|
|
20
|
+
// to "unset" here would let `{amount, isFullBalance: 'true'}` (JSON boundary
|
|
21
|
+
// realistic) take the amount branch instead of failing the exactly-one-of.
|
|
22
|
+
if (req.isFullBalance !== undefined && typeof req.isFullBalance !== 'boolean') {
|
|
23
|
+
throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidArgument, `CreateTransferRequest.isFullBalance must be a boolean (got ${typeof req.isFullBalance})`);
|
|
24
|
+
}
|
|
25
|
+
const provided = [];
|
|
26
|
+
if (req.amount !== undefined)
|
|
27
|
+
provided.push('amount');
|
|
28
|
+
if (req.amountHr !== undefined)
|
|
29
|
+
provided.push('amountHr');
|
|
30
|
+
if (req.isFullBalance === true)
|
|
31
|
+
provided.push('isFullBalance');
|
|
32
|
+
if (provided.length === 0) {
|
|
33
|
+
throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidArgument, 'CreateTransferRequest: one of {amount, amountHr, isFullBalance} is required');
|
|
34
|
+
}
|
|
35
|
+
if (provided.length > 1) {
|
|
36
|
+
throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidArgument, `CreateTransferRequest: exactly one of {amount, amountHr, isFullBalance} may be set (got ${provided.join(', ')})`);
|
|
37
|
+
}
|
|
38
|
+
if (req.isFullBalance === true)
|
|
39
|
+
return { kind: 'full' };
|
|
40
|
+
if (req.amount !== undefined) {
|
|
41
|
+
// Explicit typeof check: JS mixed-type comparison lets '1000000' <= 0n
|
|
42
|
+
// return false (`StringToBigInt`), so a string/number amount would
|
|
43
|
+
// otherwise pass this guard and land verbatim in tx.value /
|
|
44
|
+
// lamports / ERC-20 calldata. Realistic vector: consumers
|
|
45
|
+
// deserializing amounts from HTTP/DB JSON.
|
|
46
|
+
if (typeof req.amount !== 'bigint') {
|
|
47
|
+
throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidArgument, `CreateTransferRequest.amount must be a bigint (got ${typeof req.amount})`);
|
|
48
|
+
}
|
|
49
|
+
if (req.amount <= 0n) {
|
|
50
|
+
throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidArgument, `CreateTransferRequest.amount must be > 0, got ${req.amount}`);
|
|
51
|
+
}
|
|
52
|
+
return { kind: 'exact', amountMr: req.amount };
|
|
53
|
+
}
|
|
54
|
+
// amountHr branch. Cross-copy-safe structural probe: `instanceof
|
|
55
|
+
// Decimal` and `Decimal.isDecimal` both key off constructor identity
|
|
56
|
+
// in practice (isDecimal's toStringTag branch is dead against the
|
|
57
|
+
// shipped prototype), so a `Decimal` from a nested/duplicated copy of
|
|
58
|
+
// decimal.js in the consumer tree would falsely reject. Instead:
|
|
59
|
+
// probe for the two methods we actually need (`toFixed`, `isFinite`),
|
|
60
|
+
// then normalize via `Decimal.prototype.toString` — an exact,
|
|
61
|
+
// always-reparseable serialization — into our own Decimal instance.
|
|
62
|
+
const rawHr = req.amountHr;
|
|
63
|
+
if (rawHr === null ||
|
|
64
|
+
typeof rawHr !== 'object' ||
|
|
65
|
+
typeof rawHr.toFixed !== 'function' ||
|
|
66
|
+
typeof rawHr.isFinite !== 'function' ||
|
|
67
|
+
typeof rawHr.toString !== 'function') {
|
|
68
|
+
throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidArgument, 'CreateTransferRequest.amountHr must be a Decimal value (structural probe: needs toFixed + isFinite + toString)');
|
|
69
|
+
}
|
|
70
|
+
let hr;
|
|
71
|
+
try {
|
|
72
|
+
hr = new decimal_js_1.Decimal(rawHr.toString());
|
|
73
|
+
}
|
|
74
|
+
catch (err) {
|
|
75
|
+
throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidArgument, 'CreateTransferRequest.amountHr: string round-trip failed', undefined, err instanceof Error ? err : undefined);
|
|
76
|
+
}
|
|
77
|
+
if (!hr.isFinite()) {
|
|
78
|
+
throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidArgument, `CreateTransferRequest.amountHr must be finite, got ${hr.toString()}`);
|
|
79
|
+
}
|
|
80
|
+
if (!Number.isInteger(decimals) || decimals < 0) {
|
|
81
|
+
throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidArgument, `CreateTransferRequest.amountHr requires a non-negative integer decimals, got ${decimals}`);
|
|
82
|
+
}
|
|
83
|
+
if (hr.isNegative()) {
|
|
84
|
+
throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidArgument, `CreateTransferRequest.amountHr must be >= 0, got ${hr.toString()}`);
|
|
85
|
+
}
|
|
86
|
+
// Exact conversion via string-shift (bypasses decimal.js's 20-sig-digit
|
|
87
|
+
// precision limit that would silently round the last wei on 18-decimal
|
|
88
|
+
// amounts ≥ ~100 tokens).
|
|
89
|
+
const amountMr = (0, transaction_status_ts_1.hrDecimalToMinorUnits)(hr, decimals);
|
|
90
|
+
if (amountMr <= 0n) {
|
|
91
|
+
throw new errors_ts_1.ChainError(errors_ts_1.ChainErrorKinds.InvalidArgument, `CreateTransferRequest.amountHr must convert to > 0 minor units, got ${amountMr} (from ${hr.toString()} @ ${decimals} decimals)`);
|
|
92
|
+
}
|
|
93
|
+
return { kind: 'exact', amountMr };
|
|
94
|
+
}
|
|
95
|
+
class Chain {
|
|
96
|
+
chainId;
|
|
97
|
+
name;
|
|
98
|
+
networkType;
|
|
99
|
+
blockTimeSeconds;
|
|
100
|
+
nativeSymbol;
|
|
101
|
+
explorerBaseUrl;
|
|
102
|
+
constructor(chainId, name, networkType, blockTimeSeconds, nativeSymbol, explorerBaseUrl) {
|
|
103
|
+
if (!Number.isInteger(chainId)) {
|
|
104
|
+
throw new Error('Chain chainId must be an integer');
|
|
105
|
+
}
|
|
106
|
+
this.chainId = chainId;
|
|
107
|
+
this.name = name;
|
|
108
|
+
this.networkType = networkType;
|
|
109
|
+
this.blockTimeSeconds = blockTimeSeconds;
|
|
110
|
+
this.nativeSymbol = nativeSymbol;
|
|
111
|
+
this.explorerBaseUrl = explorerBaseUrl.replace(/\/$/, '');
|
|
112
|
+
}
|
|
113
|
+
toString() {
|
|
114
|
+
return `Chain[chainId=${this.chainId}, name=${this.name}, networkType=${this.networkType}]`;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
exports.Chain = Chain;
|
|
118
|
+
//# sourceMappingURL=chain.base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chain.base.js","sourceRoot":"","sources":["../../chain.base.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Chain ID constants — mirrors omnichain-py/src/omnichain/chain_ids.py.
|
|
4
|
+
* Source of truth: https://github.com/getomnichain/omnichain-py
|
|
5
|
+
*
|
|
6
|
+
* EVM chain IDs are the canonical EIP-155 numbers.
|
|
7
|
+
* Non-EVM chains use synthetic negative IDs (Python convention) so a single
|
|
8
|
+
* `number` fits every chain and the sign disambiguates families.
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.CHAIN_ID_HYPER_EVM = exports.CHAIN_ID_STABLE = exports.CHAIN_ID_WANCHAIN = exports.CHAIN_ID_WORLD_CHAIN = exports.CHAIN_ID_ZKSYNC = exports.CHAIN_ID_BOBA = exports.CHAIN_ID_FANTOM = exports.CHAIN_ID_OPBNB = exports.CHAIN_ID_XLAYER = exports.CHAIN_ID_SHIMMER = exports.CHAIN_ID_SONIC = exports.CHAIN_ID_MONAD = exports.CHAIN_ID_POLYGON = exports.CHAIN_ID_UNICHAIN = exports.CHAIN_ID_GNOSIS = exports.CHAIN_ID_OKX_CHAIN = exports.CHAIN_ID_BNB_CHAIN = exports.CHAIN_ID_CRONOS = exports.CHAIN_ID_OPTIMISM = exports.CHAIN_ID_GOERLI = exports.CHAIN_ID_ETHEREUM = exports.CHAIN_FAMILY_TRON = exports.CHAIN_ID_TRON_SHASTA = exports.CHAIN_ID_TRON_MAINNET = exports.CHAIN_FAMILY_TON = exports.CHAIN_ID_TON_TESTNET = exports.CHAIN_ID_TON_MAINNET = exports.CHAIN_FAMILY_STELLAR = exports.CHAIN_ID_STELLAR_TESTNET = exports.CHAIN_ID_STELLAR_MAINNET = exports.CHAIN_FAMILY_XRPL = exports.CHAIN_ID_XRPL_TESTNET = exports.CHAIN_ID_XRPL_MAINNET = exports.CHAIN_FAMILY_SUI = exports.CHAIN_ID_SUI_DEVNET = exports.CHAIN_ID_SUI_TESTNET = exports.CHAIN_ID_SUI_MAINNET = exports.CHAIN_FAMILY_SOLANA = exports.CHAIN_ID_SOLANA_DEVNET = exports.CHAIN_ID_SOLANA_TESTNET = exports.CHAIN_ID_SOLANA_MAINNET = exports.CHAIN_FAMILY_UTXO = exports.CHAIN_ID_BITCOIN_CASH_MAINNET = exports.CHAIN_ID_ZCASH_MAINNET = exports.CHAIN_ID_DASH_MAINNET = exports.CHAIN_ID_DOGECOIN_MAINNET = exports.CHAIN_ID_LITECOIN_MAINNET = exports.CHAIN_ID_BITCOIN_SIGNET = exports.CHAIN_ID_BITCOIN_TESTNET = exports.CHAIN_ID_BITCOIN_MAINNET = void 0;
|
|
12
|
+
exports.CHAIN_ID_AURORA = exports.CHAIN_ID_CELO_SEPOLIA = exports.CHAIN_ID_SEPOLIA = exports.CHAIN_ID_ZORA = exports.CHAIN_ID_ZKLINK_NOVA = exports.CHAIN_ID_KATANA = exports.CHAIN_ID_SCROLL = exports.CHAIN_ID_TAIKO = exports.CHAIN_ID_BLAST = exports.CHAIN_ID_BERA_CHAIN = exports.CHAIN_ID_BOB = exports.CHAIN_ID_LINEA = exports.CHAIN_ID_INK = exports.CHAIN_ID_AVALANCHE_C_CHAIN = exports.CHAIN_ID_CELO = exports.CHAIN_ID_ARBITRUM = exports.CHAIN_ID_MODE = exports.CHAIN_ID_PLASMA = exports.CHAIN_ID_IOTA_EVM = exports.CHAIN_ID_BASE = exports.CHAIN_ID_ZETACHAIN = exports.CHAIN_ID_MANTLE = exports.CHAIN_ID_MEGA_ETH = exports.CHAIN_ID_TEMPO = exports.CHAIN_ID_CITREA = exports.CHAIN_ID_ABSTRACT = exports.CHAIN_ID_SONEIUM = exports.CHAIN_ID_SEI_EVM = exports.CHAIN_ID_MOONRIVER = exports.CHAIN_ID_MOONBEAM = exports.CHAIN_ID_POLYGON_ZKEVM = exports.CHAIN_ID_METIS = void 0;
|
|
13
|
+
exports.isUtxo = isUtxo;
|
|
14
|
+
exports.isSolana = isSolana;
|
|
15
|
+
exports.isSui = isSui;
|
|
16
|
+
exports.isXrpl = isXrpl;
|
|
17
|
+
exports.isStellar = isStellar;
|
|
18
|
+
exports.isTon = isTon;
|
|
19
|
+
exports.isTron = isTron;
|
|
20
|
+
exports.isEvm = isEvm;
|
|
21
|
+
// -----------------------------------------------------------------------------
|
|
22
|
+
// UTXO family (mirrors chain_ids.py:17-25)
|
|
23
|
+
// -----------------------------------------------------------------------------
|
|
24
|
+
exports.CHAIN_ID_BITCOIN_MAINNET = -1;
|
|
25
|
+
exports.CHAIN_ID_BITCOIN_TESTNET = -2;
|
|
26
|
+
exports.CHAIN_ID_BITCOIN_SIGNET = -3;
|
|
27
|
+
exports.CHAIN_ID_LITECOIN_MAINNET = -10;
|
|
28
|
+
exports.CHAIN_ID_DOGECOIN_MAINNET = -12;
|
|
29
|
+
exports.CHAIN_ID_DASH_MAINNET = -14;
|
|
30
|
+
exports.CHAIN_ID_ZCASH_MAINNET = -16;
|
|
31
|
+
exports.CHAIN_ID_BITCOIN_CASH_MAINNET = -18;
|
|
32
|
+
exports.CHAIN_FAMILY_UTXO = new Set([
|
|
33
|
+
exports.CHAIN_ID_BITCOIN_MAINNET,
|
|
34
|
+
exports.CHAIN_ID_BITCOIN_TESTNET,
|
|
35
|
+
exports.CHAIN_ID_BITCOIN_SIGNET,
|
|
36
|
+
exports.CHAIN_ID_LITECOIN_MAINNET,
|
|
37
|
+
exports.CHAIN_ID_DOGECOIN_MAINNET,
|
|
38
|
+
exports.CHAIN_ID_DASH_MAINNET,
|
|
39
|
+
exports.CHAIN_ID_ZCASH_MAINNET,
|
|
40
|
+
exports.CHAIN_ID_BITCOIN_CASH_MAINNET,
|
|
41
|
+
]);
|
|
42
|
+
/**
|
|
43
|
+
* True for any chainId in the static UTXO family set (Python parity).
|
|
44
|
+
*
|
|
45
|
+
* **Divergence warning**: `networkTypeOf` currently routes only `-1/-2/-3`
|
|
46
|
+
* (BTC) statically. `LTC (-10)`, `DOGE (-12)`, `DASH (-14)`, `ZCASH (-16)`,
|
|
47
|
+
* `BCH (-18)` return `true` here for family membership, but v0 has no
|
|
48
|
+
* `addressFor` path for them — construct the chain instance and call
|
|
49
|
+
* `chain.validateAddress(raw)` directly. Do not use `isUtxo` as a routing
|
|
50
|
+
* precondition; use `tryNetworkTypeOf` or per-chain registration checks.
|
|
51
|
+
*/
|
|
52
|
+
function isUtxo(chainId) {
|
|
53
|
+
return exports.CHAIN_FAMILY_UTXO.has(chainId);
|
|
54
|
+
}
|
|
55
|
+
// -----------------------------------------------------------------------------
|
|
56
|
+
// Solana family (mirrors chain_ids.py:43-55)
|
|
57
|
+
// -----------------------------------------------------------------------------
|
|
58
|
+
exports.CHAIN_ID_SOLANA_MAINNET = -2000;
|
|
59
|
+
exports.CHAIN_ID_SOLANA_TESTNET = -2001;
|
|
60
|
+
exports.CHAIN_ID_SOLANA_DEVNET = -2002;
|
|
61
|
+
exports.CHAIN_FAMILY_SOLANA = new Set([
|
|
62
|
+
exports.CHAIN_ID_SOLANA_MAINNET,
|
|
63
|
+
exports.CHAIN_ID_SOLANA_TESTNET,
|
|
64
|
+
exports.CHAIN_ID_SOLANA_DEVNET,
|
|
65
|
+
]);
|
|
66
|
+
function isSolana(chainId) {
|
|
67
|
+
return exports.CHAIN_FAMILY_SOLANA.has(chainId);
|
|
68
|
+
}
|
|
69
|
+
// -----------------------------------------------------------------------------
|
|
70
|
+
// Sui family (mirrors chain_ids.py:57-67) — not implemented on TS v0.
|
|
71
|
+
// -----------------------------------------------------------------------------
|
|
72
|
+
exports.CHAIN_ID_SUI_MAINNET = -2500;
|
|
73
|
+
exports.CHAIN_ID_SUI_TESTNET = -2501;
|
|
74
|
+
exports.CHAIN_ID_SUI_DEVNET = -2502;
|
|
75
|
+
exports.CHAIN_FAMILY_SUI = new Set([
|
|
76
|
+
exports.CHAIN_ID_SUI_MAINNET,
|
|
77
|
+
exports.CHAIN_ID_SUI_TESTNET,
|
|
78
|
+
exports.CHAIN_ID_SUI_DEVNET,
|
|
79
|
+
]);
|
|
80
|
+
function isSui(chainId) {
|
|
81
|
+
return exports.CHAIN_FAMILY_SUI.has(chainId);
|
|
82
|
+
}
|
|
83
|
+
// -----------------------------------------------------------------------------
|
|
84
|
+
// XRPL family (mirrors chain_ids.py:69-78) — not implemented on TS v0.
|
|
85
|
+
// -----------------------------------------------------------------------------
|
|
86
|
+
exports.CHAIN_ID_XRPL_MAINNET = -3000;
|
|
87
|
+
exports.CHAIN_ID_XRPL_TESTNET = -3001;
|
|
88
|
+
exports.CHAIN_FAMILY_XRPL = new Set([
|
|
89
|
+
exports.CHAIN_ID_XRPL_MAINNET,
|
|
90
|
+
exports.CHAIN_ID_XRPL_TESTNET,
|
|
91
|
+
]);
|
|
92
|
+
function isXrpl(chainId) {
|
|
93
|
+
return exports.CHAIN_FAMILY_XRPL.has(chainId);
|
|
94
|
+
}
|
|
95
|
+
// -----------------------------------------------------------------------------
|
|
96
|
+
// Stellar family (mirrors chain_ids.py:80-89) — not implemented on TS v0.
|
|
97
|
+
// -----------------------------------------------------------------------------
|
|
98
|
+
exports.CHAIN_ID_STELLAR_MAINNET = -3500;
|
|
99
|
+
exports.CHAIN_ID_STELLAR_TESTNET = -3501;
|
|
100
|
+
exports.CHAIN_FAMILY_STELLAR = new Set([
|
|
101
|
+
exports.CHAIN_ID_STELLAR_MAINNET,
|
|
102
|
+
exports.CHAIN_ID_STELLAR_TESTNET,
|
|
103
|
+
]);
|
|
104
|
+
function isStellar(chainId) {
|
|
105
|
+
return exports.CHAIN_FAMILY_STELLAR.has(chainId);
|
|
106
|
+
}
|
|
107
|
+
// -----------------------------------------------------------------------------
|
|
108
|
+
// TON family (mirrors chain_ids.py:92-100) — not implemented on TS v0
|
|
109
|
+
// (only TonAddress is exported; TonChain deferred).
|
|
110
|
+
// -----------------------------------------------------------------------------
|
|
111
|
+
exports.CHAIN_ID_TON_MAINNET = -4000;
|
|
112
|
+
exports.CHAIN_ID_TON_TESTNET = -4001;
|
|
113
|
+
exports.CHAIN_FAMILY_TON = new Set([
|
|
114
|
+
exports.CHAIN_ID_TON_MAINNET,
|
|
115
|
+
exports.CHAIN_ID_TON_TESTNET,
|
|
116
|
+
]);
|
|
117
|
+
function isTon(chainId) {
|
|
118
|
+
return exports.CHAIN_FAMILY_TON.has(chainId);
|
|
119
|
+
}
|
|
120
|
+
// -----------------------------------------------------------------------------
|
|
121
|
+
// Tron family (mirrors chain_ids.py:103-111) — not implemented on TS v0.
|
|
122
|
+
// Note: Tron uses positive numeric IDs (not synthetic negatives).
|
|
123
|
+
// -----------------------------------------------------------------------------
|
|
124
|
+
exports.CHAIN_ID_TRON_MAINNET = 728126428;
|
|
125
|
+
exports.CHAIN_ID_TRON_SHASTA = 2494104990;
|
|
126
|
+
exports.CHAIN_FAMILY_TRON = new Set([
|
|
127
|
+
exports.CHAIN_ID_TRON_MAINNET,
|
|
128
|
+
exports.CHAIN_ID_TRON_SHASTA,
|
|
129
|
+
]);
|
|
130
|
+
function isTron(chainId) {
|
|
131
|
+
return exports.CHAIN_FAMILY_TRON.has(chainId);
|
|
132
|
+
}
|
|
133
|
+
// -----------------------------------------------------------------------------
|
|
134
|
+
// EVM chain IDs (mirrors chain_ids.py:114-167).
|
|
135
|
+
// -----------------------------------------------------------------------------
|
|
136
|
+
exports.CHAIN_ID_ETHEREUM = 1;
|
|
137
|
+
exports.CHAIN_ID_GOERLI = 5;
|
|
138
|
+
exports.CHAIN_ID_OPTIMISM = 10;
|
|
139
|
+
exports.CHAIN_ID_CRONOS = 25;
|
|
140
|
+
exports.CHAIN_ID_BNB_CHAIN = 56;
|
|
141
|
+
exports.CHAIN_ID_OKX_CHAIN = 66;
|
|
142
|
+
exports.CHAIN_ID_GNOSIS = 100;
|
|
143
|
+
exports.CHAIN_ID_UNICHAIN = 130;
|
|
144
|
+
exports.CHAIN_ID_POLYGON = 137;
|
|
145
|
+
exports.CHAIN_ID_MONAD = 143;
|
|
146
|
+
exports.CHAIN_ID_SONIC = 146;
|
|
147
|
+
exports.CHAIN_ID_SHIMMER = 148;
|
|
148
|
+
exports.CHAIN_ID_XLAYER = 196;
|
|
149
|
+
exports.CHAIN_ID_OPBNB = 204;
|
|
150
|
+
exports.CHAIN_ID_FANTOM = 250;
|
|
151
|
+
exports.CHAIN_ID_BOBA = 288;
|
|
152
|
+
exports.CHAIN_ID_ZKSYNC = 324;
|
|
153
|
+
exports.CHAIN_ID_WORLD_CHAIN = 480;
|
|
154
|
+
exports.CHAIN_ID_WANCHAIN = 888;
|
|
155
|
+
exports.CHAIN_ID_STABLE = 988;
|
|
156
|
+
exports.CHAIN_ID_HYPER_EVM = 999;
|
|
157
|
+
exports.CHAIN_ID_METIS = 1088;
|
|
158
|
+
exports.CHAIN_ID_POLYGON_ZKEVM = 1101;
|
|
159
|
+
exports.CHAIN_ID_MOONBEAM = 1284;
|
|
160
|
+
exports.CHAIN_ID_MOONRIVER = 1285;
|
|
161
|
+
exports.CHAIN_ID_SEI_EVM = 1329;
|
|
162
|
+
exports.CHAIN_ID_SONEIUM = 1868;
|
|
163
|
+
exports.CHAIN_ID_ABSTRACT = 2741;
|
|
164
|
+
exports.CHAIN_ID_CITREA = 4114;
|
|
165
|
+
exports.CHAIN_ID_TEMPO = 4217;
|
|
166
|
+
exports.CHAIN_ID_MEGA_ETH = 4326;
|
|
167
|
+
exports.CHAIN_ID_MANTLE = 5000;
|
|
168
|
+
exports.CHAIN_ID_ZETACHAIN = 7000;
|
|
169
|
+
exports.CHAIN_ID_BASE = 8453;
|
|
170
|
+
exports.CHAIN_ID_IOTA_EVM = 8822;
|
|
171
|
+
exports.CHAIN_ID_PLASMA = 9745;
|
|
172
|
+
exports.CHAIN_ID_MODE = 34443;
|
|
173
|
+
exports.CHAIN_ID_ARBITRUM = 42161;
|
|
174
|
+
exports.CHAIN_ID_CELO = 42220;
|
|
175
|
+
exports.CHAIN_ID_AVALANCHE_C_CHAIN = 43114;
|
|
176
|
+
exports.CHAIN_ID_INK = 57073;
|
|
177
|
+
exports.CHAIN_ID_LINEA = 59144;
|
|
178
|
+
exports.CHAIN_ID_BOB = 60808;
|
|
179
|
+
exports.CHAIN_ID_BERA_CHAIN = 80094;
|
|
180
|
+
exports.CHAIN_ID_BLAST = 81457;
|
|
181
|
+
exports.CHAIN_ID_TAIKO = 167000;
|
|
182
|
+
exports.CHAIN_ID_SCROLL = 534352;
|
|
183
|
+
exports.CHAIN_ID_KATANA = 747474;
|
|
184
|
+
exports.CHAIN_ID_ZKLINK_NOVA = 810180;
|
|
185
|
+
exports.CHAIN_ID_ZORA = 7777777;
|
|
186
|
+
exports.CHAIN_ID_SEPOLIA = 11155111;
|
|
187
|
+
exports.CHAIN_ID_CELO_SEPOLIA = 11142220;
|
|
188
|
+
exports.CHAIN_ID_AURORA = 1313161554;
|
|
189
|
+
/**
|
|
190
|
+
* Sign/family test — returns `true` for any positive integer chainId that
|
|
191
|
+
* isn't a Tron chain. Does NOT assert that the chainId corresponds to a
|
|
192
|
+
* pre-baked `EvmChain`. Consumers wanting a support check should look up the
|
|
193
|
+
* chain in `ALL_DECLARED_EVM_CHAINS` (48 pre-baked chains); the smaller
|
|
194
|
+
* `ALL_EVM_CHAINS` is the pre-v0 "wired" set of 4 kept for backward compat.
|
|
195
|
+
*
|
|
196
|
+
* **Caveat on all `is*` predicates**: they operate on the immutable Python-
|
|
197
|
+
* parity family sets in this file. `networkTypeOf()` (in `network_type.ts`)
|
|
198
|
+
* reads the runtime registry that also includes consumer-registered chains,
|
|
199
|
+
* and is the authoritative routing check. The two can disagree for any
|
|
200
|
+
* chainId a consumer registered.
|
|
201
|
+
*/
|
|
202
|
+
function isEvm(chainId) {
|
|
203
|
+
return Number.isInteger(chainId) && chainId > 0 && !exports.CHAIN_FAMILY_TRON.has(chainId);
|
|
204
|
+
}
|
|
205
|
+
//# sourceMappingURL=chain_ids.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chain_ids.js","sourceRoot":"","sources":["../../chain_ids.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ChainError = exports.ChainErrorKinds = void 0;
|
|
4
|
+
exports.sanitizeMessage = sanitizeMessage;
|
|
5
|
+
exports.sanitizeCause = sanitizeCause;
|
|
6
|
+
exports.isChainError = isChainError;
|
|
7
|
+
exports.isBlockhashExpiredError = isBlockhashExpiredError;
|
|
8
|
+
exports.isSimulationError = isSimulationError;
|
|
9
|
+
exports.isNonceError = isNonceError;
|
|
10
|
+
exports.isTransactionTooLargeError = isTransactionTooLargeError;
|
|
11
|
+
/**
|
|
12
|
+
* Replace `rpcUrl` in `message` with its host-only form so API keys carried
|
|
13
|
+
* in the URL path/query don't leak into error strings. Falls back to a
|
|
14
|
+
* `<rpc>` placeholder if the URL is unparseable.
|
|
15
|
+
*/
|
|
16
|
+
function sanitizeMessage(message, rpcUrl) {
|
|
17
|
+
let out = message;
|
|
18
|
+
// Long hex runs (with or without 0x prefix) are signed-tx bytes or opaque
|
|
19
|
+
// payloads. Threshold 128 hex chars = 64 bytes, above the largest transient
|
|
20
|
+
// identifier (tx hash / signature = 64 hex / 88 base58) so we don't clobber
|
|
21
|
+
// hashes but do catch even a minimal signed EVM tx (~110 bytes).
|
|
22
|
+
out = out.replace(/(?:0x)?[0-9a-fA-F]{128,}/g, (m) => {
|
|
23
|
+
const hexLen = m.startsWith('0x') || m.startsWith('0X') ? m.length - 2 : m.length;
|
|
24
|
+
return `<signed-bytes:${hexLen / 2}B>`;
|
|
25
|
+
});
|
|
26
|
+
// Long base64 runs (Solana / Jito payloads). base64 signed-tx is ~200 chars.
|
|
27
|
+
out = out.replace(/[A-Za-z0-9+/]{160,}={0,2}/g, (m) => `<signed-bytes-b64:${m.length}c>`);
|
|
28
|
+
out = out.replace(/([?&])([a-zA-Z_-]*(?:api[-_]?key|key|token|access[-_]?token|secret|auth))=[^\s"&]+/gi, '$1$2=<redacted>');
|
|
29
|
+
out = out.replace(/Bearer\s+[A-Za-z0-9._~+/=-]+/gi, 'Bearer <redacted>');
|
|
30
|
+
out = out.replace(/Authorization:\s*[A-Za-z0-9._~+/=-]+/gi, 'Authorization: <redacted>');
|
|
31
|
+
out = out.replace(/((?:x-)?api[-_]?key)\s*:\s*[A-Za-z0-9._~+/=-]+/gi, '$1: <redacted>');
|
|
32
|
+
out = out.replace(/(\/v\d+|\/api|\/rpc)\/[A-Za-z0-9_-]{16,}(?=[\s/,)\];.'"]|$)/gi, '$1/<redacted>');
|
|
33
|
+
out = out.replace(/https?:\/\/[^\s"'`]*\.(?:alchemy\.com|infura\.io|quiknode\.pro|helius-rpc\.com|ankr\.com|blastapi\.io|drpc\.org)\/[A-Za-z0-9_./=-]{8,}/gi, (m) => {
|
|
34
|
+
try {
|
|
35
|
+
const u = new URL(m);
|
|
36
|
+
return `${u.protocol}//${u.host}/<redacted>`;
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
return '<rpc>';
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
if (!rpcUrl)
|
|
43
|
+
return out;
|
|
44
|
+
try {
|
|
45
|
+
const u = new URL(rpcUrl);
|
|
46
|
+
const host = `${u.protocol}//${u.host}`;
|
|
47
|
+
return out.replaceAll(rpcUrl, host);
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
return out.replaceAll(rpcUrl, '<rpc>');
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Build a fresh `Error` from `cause` with a sanitized message and stack,
|
|
55
|
+
* dropping every other property (axios errors carry `.config.headers`
|
|
56
|
+
* `Authorization` and `.config.url`/`baseURL` with API keys). Consumers'
|
|
57
|
+
* structured loggers (pino `err` serializer, `util.inspect({showHidden})`)
|
|
58
|
+
* walk `error.cause`; this ensures the API key never lands in logs.
|
|
59
|
+
* Returns `undefined` for non-Error causes so the ChainError constructor
|
|
60
|
+
* leaves cause unset.
|
|
61
|
+
*/
|
|
62
|
+
function sanitizeCause(cause, rpcUrl) {
|
|
63
|
+
if (!(cause instanceof Error))
|
|
64
|
+
return undefined;
|
|
65
|
+
const short = cause.shortMessage;
|
|
66
|
+
const source = typeof short === 'string' && short.length > 0 ? short : cause.message;
|
|
67
|
+
const safe = new Error(sanitizeMessage(source, rpcUrl));
|
|
68
|
+
safe.name = cause.name;
|
|
69
|
+
if (cause.stack)
|
|
70
|
+
safe.stack = sanitizeMessage(cause.stack, rpcUrl);
|
|
71
|
+
return safe;
|
|
72
|
+
}
|
|
73
|
+
exports.ChainErrorKinds = {
|
|
74
|
+
ChainNotSupported: 'chain_not_supported',
|
|
75
|
+
DuplicateToken: 'duplicate_token',
|
|
76
|
+
RpcNotConfigured: 'rpc_not_configured',
|
|
77
|
+
RpcError: 'rpc_error',
|
|
78
|
+
TransactionDecodeFailed: 'transaction_decode_failed',
|
|
79
|
+
InvalidAddress: 'invalid_address',
|
|
80
|
+
InvalidTokenIdentifier: 'invalid_token_identifier',
|
|
81
|
+
InvalidArgument: 'invalid_argument',
|
|
82
|
+
BroadcastRejected: 'broadcast_rejected',
|
|
83
|
+
NonceTooLow: 'nonce_too_low',
|
|
84
|
+
InsufficientFunds: 'insufficient_funds',
|
|
85
|
+
BlockhashExpired: 'blockhash_expired',
|
|
86
|
+
SimulationFailed: 'simulation_failed',
|
|
87
|
+
TransactionTooLarge: 'transaction_too_large',
|
|
88
|
+
FeatureNotSupported: 'feature_not_supported',
|
|
89
|
+
};
|
|
90
|
+
class ChainError extends Error {
|
|
91
|
+
kind;
|
|
92
|
+
meta;
|
|
93
|
+
constructor(kind, message, meta = {}, cause) {
|
|
94
|
+
super(message, cause === undefined ? undefined : { cause });
|
|
95
|
+
this.name = 'ChainError';
|
|
96
|
+
this.kind = kind;
|
|
97
|
+
this.meta = meta;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
exports.ChainError = ChainError;
|
|
101
|
+
function isChainError(err, kind) {
|
|
102
|
+
if (!(err instanceof ChainError))
|
|
103
|
+
return false;
|
|
104
|
+
return kind === undefined || err.kind === kind;
|
|
105
|
+
}
|
|
106
|
+
function isBlockhashExpiredError(err) {
|
|
107
|
+
return isChainError(err, exports.ChainErrorKinds.BlockhashExpired);
|
|
108
|
+
}
|
|
109
|
+
function isSimulationError(err) {
|
|
110
|
+
return isChainError(err, exports.ChainErrorKinds.SimulationFailed);
|
|
111
|
+
}
|
|
112
|
+
function isNonceError(err) {
|
|
113
|
+
return isChainError(err, exports.ChainErrorKinds.NonceTooLow);
|
|
114
|
+
}
|
|
115
|
+
function isTransactionTooLargeError(err) {
|
|
116
|
+
return isChainError(err, exports.ChainErrorKinds.TransactionTooLarge);
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../errors.ts"],"names":[],"mappings":"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"}
|