@getomnichain/omnichain 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +66 -0
- package/dist/abstract_gas_pricing.d.ts +31 -0
- package/dist/abstract_gas_pricing.d.ts.map +1 -0
- package/dist/abstract_gas_pricing.js +22 -0
- package/dist/abstract_gas_pricing.js.map +1 -0
- package/dist/address.d.ts +10 -0
- package/dist/address.d.ts.map +1 -0
- package/dist/address.factory.d.ts +26 -0
- package/dist/address.factory.d.ts.map +1 -0
- package/dist/address.factory.js +75 -0
- package/dist/address.factory.js.map +1 -0
- package/dist/address.js +13 -0
- package/dist/address.js.map +1 -0
- package/dist/address_field.decorator.d.ts +17 -0
- package/dist/address_field.decorator.d.ts.map +1 -0
- package/dist/address_field.decorator.js +34 -0
- package/dist/address_field.decorator.js.map +1 -0
- package/dist/chain.base.d.ts +79 -0
- package/dist/chain.base.d.ts.map +1 -0
- package/dist/chain.base.js +113 -0
- package/dist/chain.base.js.map +1 -0
- package/dist/chain_ids.d.ts +122 -0
- package/dist/chain_ids.d.ts.map +1 -0
- package/dist/chain_ids.js +193 -0
- package/dist/chain_ids.js.map +1 -0
- package/dist/errors.d.ts +42 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +62 -0
- package/dist/errors.js.map +1 -0
- package/dist/evm/evm_address.d.ts +11 -0
- package/dist/evm/evm_address.d.ts.map +1 -0
- package/dist/evm/evm_address.js +56 -0
- package/dist/evm/evm_address.js.map +1 -0
- package/dist/evm/evm_chain.d.ts +123 -0
- package/dist/evm/evm_chain.d.ts.map +1 -0
- package/dist/evm/evm_chain.js +685 -0
- package/dist/evm/evm_chain.js.map +1 -0
- package/dist/evm/evm_chains.d.ts +83 -0
- package/dist/evm/evm_chains.d.ts.map +1 -0
- package/dist/evm/evm_chains.js +493 -0
- package/dist/evm/evm_chains.js.map +1 -0
- package/dist/evm/evm_gas_estimate.d.ts +45 -0
- package/dist/evm/evm_gas_estimate.d.ts.map +1 -0
- package/dist/evm/evm_gas_estimate.js +70 -0
- package/dist/evm/evm_gas_estimate.js.map +1 -0
- package/dist/evm/evm_gas_pricing.d.ts +40 -0
- package/dist/evm/evm_gas_pricing.d.ts.map +1 -0
- package/dist/evm/evm_gas_pricing.js +56 -0
- package/dist/evm/evm_gas_pricing.js.map +1 -0
- package/dist/evm/evm_token.d.ts +7 -0
- package/dist/evm/evm_token.d.ts.map +1 -0
- package/dist/evm/evm_token.js +22 -0
- package/dist/evm/evm_token.js.map +1 -0
- package/dist/evm/evm_tokens.d.ts +81 -0
- package/dist/evm/evm_tokens.d.ts.map +1 -0
- package/dist/evm/evm_tokens.js +104 -0
- package/dist/evm/evm_tokens.js.map +1 -0
- package/dist/evm/evm_transaction_status.d.ts +108 -0
- package/dist/evm/evm_transaction_status.d.ts.map +1 -0
- package/dist/evm/evm_transaction_status.js +177 -0
- package/dist/evm/evm_transaction_status.js.map +1 -0
- package/dist/evm/index.d.ts +10 -0
- package/dist/evm/index.d.ts.map +1 -0
- package/dist/evm/index.js +10 -0
- package/dist/evm/index.js.map +1 -0
- package/dist/evm/unsigned_evm_transaction.d.ts +19 -0
- package/dist/evm/unsigned_evm_transaction.d.ts.map +1 -0
- package/dist/evm/unsigned_evm_transaction.js +18 -0
- package/dist/evm/unsigned_evm_transaction.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -0
- package/dist/is_address.decorator.d.ts +3 -0
- package/dist/is_address.decorator.d.ts.map +1 -0
- package/dist/is_address.decorator.js +51 -0
- package/dist/is_address.decorator.js.map +1 -0
- package/dist/network_type.d.ts +73 -0
- package/dist/network_type.d.ts.map +1 -0
- package/dist/network_type.js +144 -0
- package/dist/network_type.js.map +1 -0
- package/dist/priority.d.ts +23 -0
- package/dist/priority.d.ts.map +1 -0
- package/dist/priority.js +23 -0
- package/dist/priority.js.map +1 -0
- package/dist/solana/index.d.ts +9 -0
- package/dist/solana/index.d.ts.map +1 -0
- package/dist/solana/index.js +9 -0
- package/dist/solana/index.js.map +1 -0
- package/dist/solana/solana_address.d.ts +20 -0
- package/dist/solana/solana_address.d.ts.map +1 -0
- package/dist/solana/solana_address.js +45 -0
- package/dist/solana/solana_address.js.map +1 -0
- package/dist/solana/solana_chain.d.ts +213 -0
- package/dist/solana/solana_chain.d.ts.map +1 -0
- package/dist/solana/solana_chain.js +704 -0
- package/dist/solana/solana_chain.js.map +1 -0
- package/dist/solana/solana_chains.d.ts +24 -0
- package/dist/solana/solana_chains.d.ts.map +1 -0
- package/dist/solana/solana_chains.js +84 -0
- package/dist/solana/solana_chains.js.map +1 -0
- package/dist/solana/solana_gas_pricing.d.ts +30 -0
- package/dist/solana/solana_gas_pricing.d.ts.map +1 -0
- package/dist/solana/solana_gas_pricing.js +26 -0
- package/dist/solana/solana_gas_pricing.js.map +1 -0
- package/dist/solana/solana_token.d.ts +19 -0
- package/dist/solana/solana_token.d.ts.map +1 -0
- package/dist/solana/solana_token.js +34 -0
- package/dist/solana/solana_token.js.map +1 -0
- package/dist/solana/solana_tokens.d.ts +22 -0
- package/dist/solana/solana_tokens.d.ts.map +1 -0
- package/dist/solana/solana_tokens.js +26 -0
- package/dist/solana/solana_tokens.js.map +1 -0
- package/dist/solana/solana_transaction_status.d.ts +59 -0
- package/dist/solana/solana_transaction_status.d.ts.map +1 -0
- package/dist/solana/solana_transaction_status.js +144 -0
- package/dist/solana/solana_transaction_status.js.map +1 -0
- package/dist/solana/unsigned_solana_transaction.d.ts +31 -0
- package/dist/solana/unsigned_solana_transaction.d.ts.map +1 -0
- package/dist/solana/unsigned_solana_transaction.js +26 -0
- package/dist/solana/unsigned_solana_transaction.js.map +1 -0
- package/dist/token.d.ts +35 -0
- package/dist/token.d.ts.map +1 -0
- package/dist/token.js +62 -0
- package/dist/token.js.map +1 -0
- package/dist/ton/index.d.ts +2 -0
- package/dist/ton/index.d.ts.map +1 -0
- package/dist/ton/index.js +2 -0
- package/dist/ton/index.js.map +1 -0
- package/dist/ton/ton_address.d.ts +10 -0
- package/dist/ton/ton_address.d.ts.map +1 -0
- package/dist/ton/ton_address.js +53 -0
- package/dist/ton/ton_address.js.map +1 -0
- package/dist/transaction_status.d.ts +140 -0
- package/dist/transaction_status.d.ts.map +1 -0
- package/dist/transaction_status.js +271 -0
- package/dist/transaction_status.js.map +1 -0
- package/dist/unsigned_transaction.d.ts +7 -0
- package/dist/unsigned_transaction.d.ts.map +1 -0
- package/dist/unsigned_transaction.js +9 -0
- package/dist/unsigned_transaction.js.map +1 -0
- package/dist/utxo/btc/btc_address.d.ts +15 -0
- package/dist/utxo/btc/btc_address.d.ts.map +1 -0
- package/dist/utxo/btc/btc_address.js +39 -0
- package/dist/utxo/btc/btc_address.js.map +1 -0
- package/dist/utxo/btc/btc_chain.d.ts +34 -0
- package/dist/utxo/btc/btc_chain.d.ts.map +1 -0
- package/dist/utxo/btc/btc_chain.js +62 -0
- package/dist/utxo/btc/btc_chain.js.map +1 -0
- package/dist/utxo/btc/btc_chains.d.ts +25 -0
- package/dist/utxo/btc/btc_chains.d.ts.map +1 -0
- package/dist/utxo/btc/btc_chains.js +43 -0
- package/dist/utxo/btc/btc_chains.js.map +1 -0
- package/dist/utxo/btc/btc_token.d.ts +6 -0
- package/dist/utxo/btc/btc_token.d.ts.map +1 -0
- package/dist/utxo/btc/btc_token.js +11 -0
- package/dist/utxo/btc/btc_token.js.map +1 -0
- package/dist/utxo/btc/index.d.ts +14 -0
- package/dist/utxo/btc/index.d.ts.map +1 -0
- package/dist/utxo/btc/index.js +14 -0
- package/dist/utxo/btc/index.js.map +1 -0
- package/dist/utxo/btc/network_params.d.ts +50 -0
- package/dist/utxo/btc/network_params.d.ts.map +1 -0
- package/dist/utxo/btc/network_params.js +188 -0
- package/dist/utxo/btc/network_params.js.map +1 -0
- package/dist/utxo/btc/tools/asset_outpoint.d.ts +7 -0
- package/dist/utxo/btc/tools/asset_outpoint.d.ts.map +1 -0
- package/dist/utxo/btc/tools/asset_outpoint.js +12 -0
- package/dist/utxo/btc/tools/asset_outpoint.js.map +1 -0
- package/dist/utxo/btc/tools/bitcoin_core.tool.d.ts +41 -0
- package/dist/utxo/btc/tools/bitcoin_core.tool.d.ts.map +1 -0
- package/dist/utxo/btc/tools/bitcoin_core.tool.js +172 -0
- package/dist/utxo/btc/tools/bitcoin_core.tool.js.map +1 -0
- package/dist/utxo/btc/tools/esplora.tool.d.ts +27 -0
- package/dist/utxo/btc/tools/esplora.tool.d.ts.map +1 -0
- package/dist/utxo/btc/tools/esplora.tool.js +113 -0
- package/dist/utxo/btc/tools/esplora.tool.js.map +1 -0
- package/dist/utxo/btc/tools/inscription_index.d.ts +6 -0
- package/dist/utxo/btc/tools/inscription_index.d.ts.map +1 -0
- package/dist/utxo/btc/tools/inscription_index.js +2 -0
- package/dist/utxo/btc/tools/inscription_index.js.map +1 -0
- package/dist/utxo/btc/tools/ordiscan.tool.d.ts +19 -0
- package/dist/utxo/btc/tools/ordiscan.tool.d.ts.map +1 -0
- package/dist/utxo/btc/tools/ordiscan.tool.js +53 -0
- package/dist/utxo/btc/tools/ordiscan.tool.js.map +1 -0
- package/dist/utxo/btc/tools/rare_sat_index.d.ts +6 -0
- package/dist/utxo/btc/tools/rare_sat_index.d.ts.map +1 -0
- package/dist/utxo/btc/tools/rare_sat_index.js +2 -0
- package/dist/utxo/btc/tools/rare_sat_index.js.map +1 -0
- package/dist/utxo/btc/tools/rune_index.d.ts +6 -0
- package/dist/utxo/btc/tools/rune_index.d.ts.map +1 -0
- package/dist/utxo/btc/tools/rune_index.js +2 -0
- package/dist/utxo/btc/tools/rune_index.js.map +1 -0
- package/dist/utxo/btc/tools/unisat.tool.d.ts +18 -0
- package/dist/utxo/btc/tools/unisat.tool.d.ts.map +1 -0
- package/dist/utxo/btc/tools/unisat.tool.js +49 -0
- package/dist/utxo/btc/tools/unisat.tool.js.map +1 -0
- package/dist/utxo/coin_selection.d.ts +29 -0
- package/dist/utxo/coin_selection.d.ts.map +1 -0
- package/dist/utxo/coin_selection.js +156 -0
- package/dist/utxo/coin_selection.js.map +1 -0
- package/dist/utxo/doge/doge_chains.d.ts +17 -0
- package/dist/utxo/doge/doge_chains.d.ts.map +1 -0
- package/dist/utxo/doge/doge_chains.js +28 -0
- package/dist/utxo/doge/doge_chains.js.map +1 -0
- package/dist/utxo/doge/index.d.ts +3 -0
- package/dist/utxo/doge/index.d.ts.map +1 -0
- package/dist/utxo/doge/index.js +3 -0
- package/dist/utxo/doge/index.js.map +1 -0
- package/dist/utxo/doge/network_params.d.ts +4 -0
- package/dist/utxo/doge/network_params.d.ts.map +1 -0
- package/dist/utxo/doge/network_params.js +24 -0
- package/dist/utxo/doge/network_params.js.map +1 -0
- package/dist/utxo/ecc.d.ts +2 -0
- package/dist/utxo/ecc.d.ts.map +1 -0
- package/dist/utxo/ecc.js +11 -0
- package/dist/utxo/ecc.js.map +1 -0
- package/dist/utxo/fee.d.ts +12 -0
- package/dist/utxo/fee.d.ts.map +1 -0
- package/dist/utxo/fee.js +51 -0
- package/dist/utxo/fee.js.map +1 -0
- package/dist/utxo/index.d.ts +20 -0
- package/dist/utxo/index.d.ts.map +1 -0
- package/dist/utxo/index.js +20 -0
- package/dist/utxo/index.js.map +1 -0
- package/dist/utxo/ltc/index.d.ts +3 -0
- package/dist/utxo/ltc/index.d.ts.map +1 -0
- package/dist/utxo/ltc/index.js +3 -0
- package/dist/utxo/ltc/index.js.map +1 -0
- package/dist/utxo/ltc/ltc_chains.d.ts +17 -0
- package/dist/utxo/ltc/ltc_chains.d.ts.map +1 -0
- package/dist/utxo/ltc/ltc_chains.js +28 -0
- package/dist/utxo/ltc/ltc_chains.js.map +1 -0
- package/dist/utxo/ltc/network_params.d.ts +4 -0
- package/dist/utxo/ltc/network_params.d.ts.map +1 -0
- package/dist/utxo/ltc/network_params.js +27 -0
- package/dist/utxo/ltc/network_params.js.map +1 -0
- package/dist/utxo/script.d.ts +16 -0
- package/dist/utxo/script.d.ts.map +1 -0
- package/dist/utxo/script.js +52 -0
- package/dist/utxo/script.js.map +1 -0
- package/dist/utxo/tools/broadcaster.d.ts +6 -0
- package/dist/utxo/tools/broadcaster.d.ts.map +1 -0
- package/dist/utxo/tools/broadcaster.js +2 -0
- package/dist/utxo/tools/broadcaster.js.map +1 -0
- package/dist/utxo/tools/chain_tip_provider.d.ts +5 -0
- package/dist/utxo/tools/chain_tip_provider.d.ts.map +1 -0
- package/dist/utxo/tools/chain_tip_provider.js +2 -0
- package/dist/utxo/tools/chain_tip_provider.js.map +1 -0
- package/dist/utxo/tools/fee_estimator.d.ts +6 -0
- package/dist/utxo/tools/fee_estimator.d.ts.map +1 -0
- package/dist/utxo/tools/fee_estimator.js +2 -0
- package/dist/utxo/tools/fee_estimator.js.map +1 -0
- package/dist/utxo/tools/raw_transaction_provider.d.ts +8 -0
- package/dist/utxo/tools/raw_transaction_provider.d.ts.map +1 -0
- package/dist/utxo/tools/raw_transaction_provider.js +2 -0
- package/dist/utxo/tools/raw_transaction_provider.js.map +1 -0
- package/dist/utxo/tools/utxo_provider.d.ts +7 -0
- package/dist/utxo/tools/utxo_provider.d.ts.map +1 -0
- package/dist/utxo/tools/utxo_provider.js +2 -0
- package/dist/utxo/tools/utxo_provider.js.map +1 -0
- package/dist/utxo/unsigned_utxo_transaction.d.ts +32 -0
- package/dist/utxo/unsigned_utxo_transaction.d.ts.map +1 -0
- package/dist/utxo/unsigned_utxo_transaction.js +32 -0
- package/dist/utxo/unsigned_utxo_transaction.js.map +1 -0
- package/dist/utxo/utxo.d.ts +43 -0
- package/dist/utxo/utxo.d.ts.map +1 -0
- package/dist/utxo/utxo.js +2 -0
- package/dist/utxo/utxo.js.map +1 -0
- package/dist/utxo/utxo_chain.d.ts +102 -0
- package/dist/utxo/utxo_chain.d.ts.map +1 -0
- package/dist/utxo/utxo_chain.js +524 -0
- package/dist/utxo/utxo_chain.js.map +1 -0
- package/dist/utxo/utxo_chains.d.ts +29 -0
- package/dist/utxo/utxo_chains.d.ts.map +1 -0
- package/dist/utxo/utxo_chains.js +63 -0
- package/dist/utxo/utxo_chains.js.map +1 -0
- package/dist/utxo/utxo_gas_pricing.d.ts +22 -0
- package/dist/utxo/utxo_gas_pricing.d.ts.map +1 -0
- package/dist/utxo/utxo_gas_pricing.js +20 -0
- package/dist/utxo/utxo_gas_pricing.js.map +1 -0
- package/dist/utxo/utxo_network_params.d.ts +25 -0
- package/dist/utxo/utxo_network_params.d.ts.map +1 -0
- package/dist/utxo/utxo_network_params.js +15 -0
- package/dist/utxo/utxo_network_params.js.map +1 -0
- package/dist/utxo/utxo_transaction_status.d.ts +73 -0
- package/dist/utxo/utxo_transaction_status.d.ts.map +1 -0
- package/dist/utxo/utxo_transaction_status.js +89 -0
- package/dist/utxo/utxo_transaction_status.js.map +1 -0
- package/docs/PUBLISHING.md +119 -0
- package/docs/README.md +273 -0
- package/docs/evm.md +205 -0
- package/docs/solana.md +220 -0
- package/docs/utxo.md +364 -0
- package/package.json +94 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transaction_status.js","sourceRoot":"","sources":["../transaction_status.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { NetworkType } from './network_type.ts';
|
|
2
|
+
export declare abstract class UnsignedTransaction {
|
|
3
|
+
readonly chainId: number;
|
|
4
|
+
readonly networkType: NetworkType;
|
|
5
|
+
protected constructor(chainId: number, networkType: NetworkType);
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=unsigned_transaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unsigned_transaction.d.ts","sourceRoot":"","sources":["../unsigned_transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,8BAAsB,mBAAmB;IACvC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAElC,SAAS,aAAa,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW;CAIhE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unsigned_transaction.js","sourceRoot":"","sources":["../unsigned_transaction.ts"],"names":[],"mappings":"AAEA,MAAM,OAAgB,mBAAmB;IAC9B,OAAO,CAAS;IAChB,WAAW,CAAc;IAElC,YAAsB,OAAe,EAAE,WAAwB;QAC7D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;CACF"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Address } from '../../address.ts';
|
|
2
|
+
import { NetworkType } from '../../network_type.ts';
|
|
3
|
+
import '../ecc.ts';
|
|
4
|
+
import { UtxoScriptType } from '../script.ts';
|
|
5
|
+
import { BtcNetworkParams } from './network_params.ts';
|
|
6
|
+
export declare class BtcAddress extends Address {
|
|
7
|
+
readonly params: BtcNetworkParams;
|
|
8
|
+
readonly scriptType: UtxoScriptType;
|
|
9
|
+
constructor(raw: string, params: BtcNetworkParams);
|
|
10
|
+
canonical(): string;
|
|
11
|
+
get networkType(): NetworkType;
|
|
12
|
+
scriptPubKey(): Uint8Array;
|
|
13
|
+
private static assertValid;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=btc_address.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"btc_address.d.ts","sourceRoot":"","sources":["../../../utxo/btc/btc_address.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,WAAW,CAAC;AACnB,OAAO,EAAE,cAAc,EAAoB,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,qBAAa,UAAW,SAAQ,OAAO;IACrC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;gBAExB,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB;IAOjD,SAAS,IAAI,MAAM;IAInB,IAAI,WAAW,IAAI,WAAW,CAE7B;IAED,YAAY,IAAI,UAAU;IAI1B,OAAO,CAAC,MAAM,CAAC,WAAW;CAe3B"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { address as bjsAddress } from 'bitcoinjs-lib';
|
|
2
|
+
import { Address } from "../../address.js";
|
|
3
|
+
import { NetworkType } from "../../network_type.js";
|
|
4
|
+
import "../ecc.js";
|
|
5
|
+
import { detectScriptType } from "../script.js";
|
|
6
|
+
export class BtcAddress extends Address {
|
|
7
|
+
params;
|
|
8
|
+
scriptType;
|
|
9
|
+
constructor(raw, params) {
|
|
10
|
+
super(raw);
|
|
11
|
+
this.params = params;
|
|
12
|
+
const script = BtcAddress.assertValid(raw, params);
|
|
13
|
+
this.scriptType = detectScriptType(script);
|
|
14
|
+
}
|
|
15
|
+
canonical() {
|
|
16
|
+
return this.raw;
|
|
17
|
+
}
|
|
18
|
+
get networkType() {
|
|
19
|
+
return NetworkType.BTC;
|
|
20
|
+
}
|
|
21
|
+
scriptPubKey() {
|
|
22
|
+
return bjsAddress.toOutputScript(this.raw, this.params.networkInfo);
|
|
23
|
+
}
|
|
24
|
+
static assertValid(raw, params) {
|
|
25
|
+
if (typeof raw !== 'string' || raw.length === 0) {
|
|
26
|
+
throw new Error('BtcAddress: address must be a non-empty string');
|
|
27
|
+
}
|
|
28
|
+
if (!params.walletAddressRegex.test(raw)) {
|
|
29
|
+
throw new Error(`BtcAddress: "${raw}" does not match ${params.name} address format`);
|
|
30
|
+
}
|
|
31
|
+
try {
|
|
32
|
+
return bjsAddress.toOutputScript(raw, params.networkInfo);
|
|
33
|
+
}
|
|
34
|
+
catch (err) {
|
|
35
|
+
throw new Error(`BtcAddress: "${raw}" failed checksum/decode for ${params.name}: ${err.message}`);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=btc_address.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"btc_address.js","sourceRoot":"","sources":["../../../utxo/btc/btc_address.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,WAAW,CAAC;AACnB,OAAO,EAAkB,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGhE,MAAM,OAAO,UAAW,SAAQ,OAAO;IAC5B,MAAM,CAAmB;IACzB,UAAU,CAAiB;IAEpC,YAAY,GAAW,EAAE,MAAwB;QAC/C,KAAK,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,MAAM,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAED,IAAI,WAAW;QACb,OAAO,WAAW,CAAC,GAAG,CAAC;IACzB,CAAC;IAED,YAAY;QACV,OAAO,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACtE,CAAC;IAEO,MAAM,CAAC,WAAW,CAAC,GAAW,EAAE,MAAwB;QAC9D,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,oBAAoB,MAAM,CAAC,IAAI,iBAAiB,CAAC,CAAC;QACvF,CAAC;QACD,IAAI,CAAC;YACH,OAAO,UAAU,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QAC5D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CACb,gBAAgB,GAAG,gCAAgC,MAAM,CAAC,IAAI,KAAM,GAAa,CAAC,OAAO,EAAE,CAC5F,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { CreateTransferRequest } from '../../chain.base.ts';
|
|
2
|
+
import { CreateUtxoTransferOptions, GetUtxosOptions, UtxoChain, UtxoChainInit } from '../utxo_chain.ts';
|
|
3
|
+
import { UnsignedUtxoTransaction } from '../unsigned_utxo_transaction.ts';
|
|
4
|
+
import { UnspentTransactionOutput } from '../utxo.ts';
|
|
5
|
+
import { BtcInscriptionIndex } from './tools/inscription_index.ts';
|
|
6
|
+
import { BtcRareSatIndex } from './tools/rare_sat_index.ts';
|
|
7
|
+
import { BtcRuneIndex } from './tools/rune_index.ts';
|
|
8
|
+
import { BtcNetworkParams } from './network_params.ts';
|
|
9
|
+
export interface BtcChainInit extends Omit<UtxoChainInit, 'params'> {
|
|
10
|
+
params: BtcNetworkParams;
|
|
11
|
+
inscriptionIndex?: BtcInscriptionIndex;
|
|
12
|
+
runeIndex?: BtcRuneIndex;
|
|
13
|
+
rareSatIndex?: BtcRareSatIndex;
|
|
14
|
+
}
|
|
15
|
+
export interface BtcGetUtxosOptions extends GetUtxosOptions {
|
|
16
|
+
excludeInscriptions?: boolean;
|
|
17
|
+
excludeRunes?: boolean;
|
|
18
|
+
excludeRareSats?: boolean;
|
|
19
|
+
}
|
|
20
|
+
export interface CreateBtcTransferOptions extends CreateUtxoTransferOptions {
|
|
21
|
+
excludeInscriptions?: boolean;
|
|
22
|
+
excludeRunes?: boolean;
|
|
23
|
+
excludeRareSats?: boolean;
|
|
24
|
+
}
|
|
25
|
+
export declare class BtcChain extends UtxoChain {
|
|
26
|
+
readonly params: BtcNetworkParams;
|
|
27
|
+
readonly inscriptionIndex: BtcInscriptionIndex | null;
|
|
28
|
+
readonly runeIndex: BtcRuneIndex | null;
|
|
29
|
+
readonly rareSatIndex: BtcRareSatIndex | null;
|
|
30
|
+
constructor(init: BtcChainInit);
|
|
31
|
+
getUtxos(addresses: readonly string[], options?: BtcGetUtxosOptions): Promise<UnspentTransactionOutput[]>;
|
|
32
|
+
createTransferUnsignedTransaction(req: CreateBtcTransferOptions | CreateTransferRequest): Promise<UnsignedUtxoTransaction>;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=btc_chain.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"btc_chain.d.ts","sourceRoot":"","sources":["../../../utxo/btc/btc_chain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,OAAO,EAAE,yBAAyB,EAAE,eAAe,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACxG,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAEtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAA0B,MAAM,qBAAqB,CAAC;AAE/E,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC;IACjE,MAAM,EAAE,gBAAgB,CAAC;IACzB,gBAAgB,CAAC,EAAE,mBAAmB,CAAC;IACvC,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,YAAY,CAAC,EAAE,eAAe,CAAC;CAChC;AAED,MAAM,WAAW,kBAAmB,SAAQ,eAAe;IACzD,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,wBAAyB,SAAQ,yBAAyB;IACzE,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,qBAAa,QAAS,SAAQ,SAAS;IACrC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,gBAAgB,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACtD,QAAQ,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,YAAY,EAAE,eAAe,GAAG,IAAI,CAAC;gBAElC,IAAI,EAAE,YAAY;IASxB,QAAQ,CACZ,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,wBAAwB,EAAE,CAAC;IAiChC,iCAAiC,CACrC,GAAG,EAAE,wBAAwB,GAAG,qBAAqB,GACpD,OAAO,CAAC,uBAAuB,CAAC;CAYpC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { UtxoChain } from "../utxo_chain.js";
|
|
2
|
+
import { outpointKey, unionOutpoints } from "./tools/asset_outpoint.js";
|
|
3
|
+
import { registerBtcChainParams } from "./network_params.js";
|
|
4
|
+
export class BtcChain extends UtxoChain {
|
|
5
|
+
params;
|
|
6
|
+
inscriptionIndex;
|
|
7
|
+
runeIndex;
|
|
8
|
+
rareSatIndex;
|
|
9
|
+
constructor(init) {
|
|
10
|
+
super(init);
|
|
11
|
+
this.params = init.params;
|
|
12
|
+
this.inscriptionIndex = init.inscriptionIndex ?? null;
|
|
13
|
+
this.runeIndex = init.runeIndex ?? null;
|
|
14
|
+
this.rareSatIndex = init.rareSatIndex ?? null;
|
|
15
|
+
registerBtcChainParams(BigInt(init.chainId), init.params);
|
|
16
|
+
}
|
|
17
|
+
async getUtxos(addresses, options) {
|
|
18
|
+
const all = await super.getUtxos(addresses);
|
|
19
|
+
if (!options)
|
|
20
|
+
return all;
|
|
21
|
+
const { excludeInscriptions, excludeRunes, excludeRareSats } = options;
|
|
22
|
+
if (!excludeInscriptions && !excludeRunes && !excludeRareSats)
|
|
23
|
+
return all;
|
|
24
|
+
if (excludeInscriptions && this.inscriptionIndex === null) {
|
|
25
|
+
throw new Error(`${this.name}: excludeInscriptions requested but no inscriptionIndex was configured`);
|
|
26
|
+
}
|
|
27
|
+
if (excludeRunes && this.runeIndex === null) {
|
|
28
|
+
throw new Error(`${this.name}: excludeRunes requested but no runeIndex was configured`);
|
|
29
|
+
}
|
|
30
|
+
if (excludeRareSats && this.rareSatIndex === null) {
|
|
31
|
+
throw new Error(`${this.name}: excludeRareSats requested but no rareSatIndex was configured`);
|
|
32
|
+
}
|
|
33
|
+
const queries = [];
|
|
34
|
+
for (const address of addresses) {
|
|
35
|
+
if (excludeInscriptions)
|
|
36
|
+
queries.push(this.inscriptionIndex.outpointsWithInscriptions(address));
|
|
37
|
+
if (excludeRunes)
|
|
38
|
+
queries.push(this.runeIndex.outpointsWithRunes(address));
|
|
39
|
+
if (excludeRareSats)
|
|
40
|
+
queries.push(this.rareSatIndex.outpointsWithRareSats(address));
|
|
41
|
+
}
|
|
42
|
+
if (queries.length === 0)
|
|
43
|
+
return all;
|
|
44
|
+
const groups = await Promise.all(queries);
|
|
45
|
+
const tainted = unionOutpoints(groups);
|
|
46
|
+
if (tainted.size === 0)
|
|
47
|
+
return all;
|
|
48
|
+
return all.filter((u) => !tainted.has(outpointKey(u.txid, u.vout)));
|
|
49
|
+
}
|
|
50
|
+
async createTransferUnsignedTransaction(req) {
|
|
51
|
+
const opts = req;
|
|
52
|
+
const getUtxosOptions = opts.excludeInscriptions || opts.excludeRunes || opts.excludeRareSats
|
|
53
|
+
? {
|
|
54
|
+
excludeInscriptions: opts.excludeInscriptions,
|
|
55
|
+
excludeRunes: opts.excludeRunes,
|
|
56
|
+
excludeRareSats: opts.excludeRareSats,
|
|
57
|
+
}
|
|
58
|
+
: undefined;
|
|
59
|
+
return this.buildTransfer(req, getUtxosOptions);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=btc_chain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"btc_chain.js","sourceRoot":"","sources":["../../../utxo/btc/btc_chain.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { UtxoBroadcaster } from '../tools/broadcaster.ts';
|
|
2
|
+
import { UtxoChainTipProvider } from '../tools/chain_tip_provider.ts';
|
|
3
|
+
import { UtxoFeeEstimator } from '../tools/fee_estimator.ts';
|
|
4
|
+
import { UtxoRawTransactionProvider } from '../tools/raw_transaction_provider.ts';
|
|
5
|
+
import { UtxoProvider } from '../tools/utxo_provider.ts';
|
|
6
|
+
import { BtcChain } from './btc_chain.ts';
|
|
7
|
+
import { BtcInscriptionIndex } from './tools/inscription_index.ts';
|
|
8
|
+
import { BtcRareSatIndex } from './tools/rare_sat_index.ts';
|
|
9
|
+
import { BtcRuneIndex } from './tools/rune_index.ts';
|
|
10
|
+
export interface BitcoinChainFactoryOptions {
|
|
11
|
+
chainId: number;
|
|
12
|
+
utxoProvider: UtxoProvider;
|
|
13
|
+
rawTxProvider: UtxoRawTransactionProvider;
|
|
14
|
+
feeEstimator: UtxoFeeEstimator;
|
|
15
|
+
broadcaster: UtxoBroadcaster;
|
|
16
|
+
chainTipProvider: UtxoChainTipProvider;
|
|
17
|
+
inscriptionIndex?: BtcInscriptionIndex;
|
|
18
|
+
runeIndex?: BtcRuneIndex;
|
|
19
|
+
rareSatIndex?: BtcRareSatIndex;
|
|
20
|
+
}
|
|
21
|
+
export declare function bitcoinMainnetChain(options: BitcoinChainFactoryOptions): BtcChain;
|
|
22
|
+
export declare function bitcoinTestnetChain(options: BitcoinChainFactoryOptions): BtcChain;
|
|
23
|
+
export declare function bitcoinSignetChain(options: BitcoinChainFactoryOptions): BtcChain;
|
|
24
|
+
export declare function bitcoinRegtestChain(options: BitcoinChainFactoryOptions): BtcChain;
|
|
25
|
+
//# sourceMappingURL=btc_chains.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"btc_chains.d.ts","sourceRoot":"","sources":["../../../utxo/btc/btc_chains.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAO1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,YAAY,CAAC;IAC3B,aAAa,EAAE,0BAA0B,CAAC;IAC1C,YAAY,EAAE,gBAAgB,CAAC;IAC/B,WAAW,EAAE,eAAe,CAAC;IAC7B,gBAAgB,EAAE,oBAAoB,CAAC;IACvC,gBAAgB,CAAC,EAAE,mBAAmB,CAAC;IACvC,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,YAAY,CAAC,EAAE,eAAe,CAAC;CAChC;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,QAAQ,CASjF;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,QAAQ,CASjF;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,0BAA0B,GAAG,QAAQ,CAShF;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,QAAQ,CASjF"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { BtcChain } from "./btc_chain.js";
|
|
2
|
+
import { BITCOIN_MAINNET_PARAMS, BITCOIN_REGTEST_PARAMS, BITCOIN_SIGNET_PARAMS, BITCOIN_TESTNET_PARAMS, } from "./network_params.js";
|
|
3
|
+
export function bitcoinMainnetChain(options) {
|
|
4
|
+
return new BtcChain({
|
|
5
|
+
name: 'Bitcoin',
|
|
6
|
+
params: BITCOIN_MAINNET_PARAMS,
|
|
7
|
+
nativeSymbol: 'BTC',
|
|
8
|
+
...options,
|
|
9
|
+
walletExplorerUrlTemplate: 'https://www.blockchain.com/explorer/addresses/btc/{wallet_address}',
|
|
10
|
+
transactionExplorerUrlTemplate: 'https://www.blockchain.com/explorer/transactions/btc/{tx_hash}',
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
export function bitcoinTestnetChain(options) {
|
|
14
|
+
return new BtcChain({
|
|
15
|
+
name: 'Bitcoin Testnet',
|
|
16
|
+
params: BITCOIN_TESTNET_PARAMS,
|
|
17
|
+
nativeSymbol: 'tBTC',
|
|
18
|
+
...options,
|
|
19
|
+
walletExplorerUrlTemplate: 'https://blockstream.info/testnet/address/{wallet_address}',
|
|
20
|
+
transactionExplorerUrlTemplate: 'https://blockstream.info/testnet/tx/{tx_hash}',
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
export function bitcoinSignetChain(options) {
|
|
24
|
+
return new BtcChain({
|
|
25
|
+
name: 'Bitcoin Signet',
|
|
26
|
+
params: BITCOIN_SIGNET_PARAMS,
|
|
27
|
+
nativeSymbol: 'sBTC',
|
|
28
|
+
...options,
|
|
29
|
+
walletExplorerUrlTemplate: 'https://mempool.space/signet/address/{wallet_address}',
|
|
30
|
+
transactionExplorerUrlTemplate: 'https://mempool.space/signet/tx/{tx_hash}',
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
export function bitcoinRegtestChain(options) {
|
|
34
|
+
return new BtcChain({
|
|
35
|
+
name: 'Bitcoin Regtest',
|
|
36
|
+
params: BITCOIN_REGTEST_PARAMS,
|
|
37
|
+
nativeSymbol: 'rBTC',
|
|
38
|
+
...options,
|
|
39
|
+
walletExplorerUrlTemplate: 'http://localhost/address/{wallet_address}',
|
|
40
|
+
transactionExplorerUrlTemplate: 'http://localhost/tx/{tx_hash}',
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=btc_chains.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"btc_chains.js","sourceRoot":"","sources":["../../../utxo/btc/btc_chains.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAiB7B,MAAM,UAAU,mBAAmB,CAAC,OAAmC;IACrE,OAAO,IAAI,QAAQ,CAAC;QAClB,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,sBAAsB;QAC9B,YAAY,EAAE,KAAK;QACnB,GAAG,OAAO;QACV,yBAAyB,EAAE,oEAAoE;QAC/F,8BAA8B,EAAE,gEAAgE;KACjG,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAmC;IACrE,OAAO,IAAI,QAAQ,CAAC;QAClB,IAAI,EAAE,iBAAiB;QACvB,MAAM,EAAE,sBAAsB;QAC9B,YAAY,EAAE,MAAM;QACpB,GAAG,OAAO;QACV,yBAAyB,EAAE,2DAA2D;QACtF,8BAA8B,EAAE,+CAA+C;KAChF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAmC;IACpE,OAAO,IAAI,QAAQ,CAAC;QAClB,IAAI,EAAE,gBAAgB;QACtB,MAAM,EAAE,qBAAqB;QAC7B,YAAY,EAAE,MAAM;QACpB,GAAG,OAAO;QACV,yBAAyB,EAAE,uDAAuD;QAClF,8BAA8B,EAAE,2CAA2C;KAC5E,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAmC;IACrE,OAAO,IAAI,QAAQ,CAAC;QAClB,IAAI,EAAE,iBAAiB;QACvB,MAAM,EAAE,sBAAsB;QAC9B,YAAY,EAAE,MAAM;QACpB,GAAG,OAAO;QACV,yBAAyB,EAAE,2CAA2C;QACtE,8BAA8B,EAAE,+BAA+B;KAChE,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"btc_token.d.ts","sourceRoot":"","sources":["../../../utxo/btc/btc_token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAIvC,qBAAa,QAAS,SAAQ,KAAK;gBACrB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAI3C,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAQ,GAAG,QAAQ;CAGzD"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Token } from "../../token.js";
|
|
2
|
+
const BTC_DECIMALS = 8;
|
|
3
|
+
export class BtcToken extends Token {
|
|
4
|
+
constructor(chainId, symbol) {
|
|
5
|
+
super(chainId, symbol, undefined, BTC_DECIMALS);
|
|
6
|
+
}
|
|
7
|
+
static native(chainId, symbol = 'BTC') {
|
|
8
|
+
return new BtcToken(chainId, symbol);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=btc_token.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"btc_token.js","sourceRoot":"","sources":["../../../utxo/btc/btc_token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC,MAAM,YAAY,GAAG,CAAC,CAAC;AAEvB,MAAM,OAAO,QAAS,SAAQ,KAAK;IACjC,YAAY,OAAe,EAAE,MAAc;QACzC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,OAAe,EAAE,MAAM,GAAG,KAAK;QAC3C,OAAO,IAAI,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;CACF"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export * from './btc_address.ts';
|
|
2
|
+
export * from './btc_chain.ts';
|
|
3
|
+
export * from './btc_chains.ts';
|
|
4
|
+
export * from './btc_token.ts';
|
|
5
|
+
export * from './network_params.ts';
|
|
6
|
+
export * from './tools/asset_outpoint.ts';
|
|
7
|
+
export * from './tools/bitcoin_core.tool.ts';
|
|
8
|
+
export * from './tools/esplora.tool.ts';
|
|
9
|
+
export * from './tools/inscription_index.ts';
|
|
10
|
+
export * from './tools/ordiscan.tool.ts';
|
|
11
|
+
export * from './tools/rare_sat_index.ts';
|
|
12
|
+
export * from './tools/rune_index.ts';
|
|
13
|
+
export * from './tools/unisat.tool.ts';
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../utxo/btc/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export * from "./btc_address.js";
|
|
2
|
+
export * from "./btc_chain.js";
|
|
3
|
+
export * from "./btc_chains.js";
|
|
4
|
+
export * from "./btc_token.js";
|
|
5
|
+
export * from "./network_params.js";
|
|
6
|
+
export * from "./tools/asset_outpoint.js";
|
|
7
|
+
export * from "./tools/bitcoin_core.tool.js";
|
|
8
|
+
export * from "./tools/esplora.tool.js";
|
|
9
|
+
export * from "./tools/inscription_index.js";
|
|
10
|
+
export * from "./tools/ordiscan.tool.js";
|
|
11
|
+
export * from "./tools/rare_sat_index.js";
|
|
12
|
+
export * from "./tools/rune_index.js";
|
|
13
|
+
export * from "./tools/unisat.tool.js";
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../utxo/btc/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { UtxoNetworkParams } from '../utxo_network_params.ts';
|
|
2
|
+
export declare const BtcNetworks: {
|
|
3
|
+
readonly Mainnet: "mainnet";
|
|
4
|
+
readonly Testnet: "testnet";
|
|
5
|
+
readonly Signet: "signet";
|
|
6
|
+
readonly Regtest: "regtest";
|
|
7
|
+
};
|
|
8
|
+
export type BtcNetworkName = (typeof BtcNetworks)[keyof typeof BtcNetworks];
|
|
9
|
+
export interface BtcNetworkParams extends UtxoNetworkParams {
|
|
10
|
+
name: BtcNetworkName;
|
|
11
|
+
hrp: string;
|
|
12
|
+
}
|
|
13
|
+
export declare const BITCOIN_MAINNET_PARAMS: BtcNetworkParams;
|
|
14
|
+
export declare const BITCOIN_TESTNET_PARAMS: BtcNetworkParams;
|
|
15
|
+
export declare const BITCOIN_SIGNET_PARAMS: BtcNetworkParams;
|
|
16
|
+
export declare const BITCOIN_REGTEST_PARAMS: BtcNetworkParams;
|
|
17
|
+
export declare function btcParamsByName(name: BtcNetworkName): BtcNetworkParams;
|
|
18
|
+
/**
|
|
19
|
+
* Register BTC network params for a chainId.
|
|
20
|
+
*
|
|
21
|
+
* The three statically-seeded chainIds (BTC mainnet/testnet/signet) are
|
|
22
|
+
* **reserved**: a re-registration is only accepted if the incoming params
|
|
23
|
+
* are shape-identical to the seeded ones (idempotent — this is what
|
|
24
|
+
* `BtcChain`'s constructor does on the canonical ids). Any deviation
|
|
25
|
+
* (different `hrp`, `walletAddressRegex`, `pubKeyHash`, etc.) throws
|
|
26
|
+
* `ChainError(InvalidArgument)`. For custom BTC-shaped params, pick a
|
|
27
|
+
* distinct chainId.
|
|
28
|
+
*
|
|
29
|
+
* For non-seeded chainIds, the same shape check applies — silent-replace-
|
|
30
|
+
* with-different-grammar is not possible on any registered id, seeded or
|
|
31
|
+
* not.
|
|
32
|
+
*/
|
|
33
|
+
export declare function registerBtcChainParams(chainId: bigint, params: BtcNetworkParams): void;
|
|
34
|
+
/**
|
|
35
|
+
* Remove a BTC chainId entry from the params registry. Reserved seed ids
|
|
36
|
+
* (BTC mainnet/testnet/signet) are silently no-op'd rather than throwing,
|
|
37
|
+
* so a composable consumer teardown helper
|
|
38
|
+
* (`unregisterChain(id); unregisterBtcChainParams(BigInt(id));`) works for
|
|
39
|
+
* ANY id without id-specific branching.
|
|
40
|
+
*
|
|
41
|
+
* Paired with `unregisterChain(id)` from `network_type.ts` when the
|
|
42
|
+
* consumer wants a full teardown of a custom BTC-shaped id: both
|
|
43
|
+
* registries need clearing to avoid drift where `networkTypeOf(id)`
|
|
44
|
+
* throws `ChainNotSupported` but `btcParamsForChainId(id)` still returns
|
|
45
|
+
* stale params.
|
|
46
|
+
*/
|
|
47
|
+
export declare function unregisterBtcChainParams(chainId: bigint): void;
|
|
48
|
+
export declare function btcParamsShapeMatches(a: BtcNetworkParams, b: BtcNetworkParams): boolean;
|
|
49
|
+
export declare function btcParamsForChainId(chainId: bigint): BtcNetworkParams;
|
|
50
|
+
//# sourceMappingURL=network_params.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"network_params.d.ts","sourceRoot":"","sources":["../../../utxo/btc/network_params.ts"],"names":[],"mappings":"AAQA,OAAO,EAOL,iBAAiB,EAClB,MAAM,2BAA2B,CAAC;AAEnC,eAAO,MAAM,WAAW;;;;;CAKd,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,OAAO,WAAW,CAAC,CAAC;AAE5E,MAAM,WAAW,gBAAiB,SAAQ,iBAAiB;IACzD,IAAI,EAAE,cAAc,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;CACb;AASD,eAAO,MAAM,sBAAsB,EAAE,gBAQpC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,gBAQpC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,gBAGnC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,gBAQpC,CAAC;AAEF,wBAAgB,eAAe,CAAC,IAAI,EAAE,cAAc,GAAG,gBAAgB,CAetE;AAkBD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,IAAI,CA2BtF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAG9D;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAyBvF;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,CAerE"}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import { networks } from 'bitcoinjs-lib';
|
|
2
|
+
import { CHAIN_ID_BITCOIN_MAINNET, CHAIN_ID_BITCOIN_SIGNET, CHAIN_ID_BITCOIN_TESTNET, } from "../../chain_ids.js";
|
|
3
|
+
import { ChainError, ChainErrorKinds } from "../../errors.js";
|
|
4
|
+
import { BIP32_PURPOSE_P2PKH, BIP32_PURPOSE_P2SH_P2WPKH, BIP32_PURPOSE_P2TR, BIP32_PURPOSE_P2WPKH, DEFAULT_DUST_SATS, Slip44, } from "../utxo_network_params.js";
|
|
5
|
+
export const BtcNetworks = {
|
|
6
|
+
Mainnet: 'mainnet',
|
|
7
|
+
Testnet: 'testnet',
|
|
8
|
+
Signet: 'signet',
|
|
9
|
+
Regtest: 'regtest',
|
|
10
|
+
};
|
|
11
|
+
const ALL_BTC_PURPOSES = new Set([
|
|
12
|
+
BIP32_PURPOSE_P2PKH,
|
|
13
|
+
BIP32_PURPOSE_P2SH_P2WPKH,
|
|
14
|
+
BIP32_PURPOSE_P2WPKH,
|
|
15
|
+
BIP32_PURPOSE_P2TR,
|
|
16
|
+
]);
|
|
17
|
+
export const BITCOIN_MAINNET_PARAMS = {
|
|
18
|
+
name: BtcNetworks.Mainnet,
|
|
19
|
+
hrp: 'bc',
|
|
20
|
+
slip44CoinId: Slip44.BTC,
|
|
21
|
+
networkInfo: networks.bitcoin,
|
|
22
|
+
supportedDerivationPurposes: ALL_BTC_PURPOSES,
|
|
23
|
+
dustValueSats: DEFAULT_DUST_SATS,
|
|
24
|
+
walletAddressRegex: /^(bc1[qp][ac-hj-np-z02-9]{11,71}|[13][a-km-zA-HJ-NP-Z1-9]{25,34})$/,
|
|
25
|
+
};
|
|
26
|
+
export const BITCOIN_TESTNET_PARAMS = {
|
|
27
|
+
name: BtcNetworks.Testnet,
|
|
28
|
+
hrp: 'tb',
|
|
29
|
+
slip44CoinId: Slip44.Testnet,
|
|
30
|
+
networkInfo: networks.testnet,
|
|
31
|
+
supportedDerivationPurposes: ALL_BTC_PURPOSES,
|
|
32
|
+
dustValueSats: DEFAULT_DUST_SATS,
|
|
33
|
+
walletAddressRegex: /^(tb1[qp][ac-hj-np-z02-9]{11,71}|[mn2][a-km-zA-HJ-NP-Z1-9]{25,34})$/,
|
|
34
|
+
};
|
|
35
|
+
export const BITCOIN_SIGNET_PARAMS = {
|
|
36
|
+
...BITCOIN_TESTNET_PARAMS,
|
|
37
|
+
name: BtcNetworks.Signet,
|
|
38
|
+
};
|
|
39
|
+
export const BITCOIN_REGTEST_PARAMS = {
|
|
40
|
+
name: BtcNetworks.Regtest,
|
|
41
|
+
hrp: 'bcrt',
|
|
42
|
+
slip44CoinId: Slip44.Testnet,
|
|
43
|
+
networkInfo: networks.regtest,
|
|
44
|
+
supportedDerivationPurposes: ALL_BTC_PURPOSES,
|
|
45
|
+
dustValueSats: DEFAULT_DUST_SATS,
|
|
46
|
+
walletAddressRegex: /^(bcrt1[qp][ac-hj-np-z02-9]{11,71}|[mn2][a-km-zA-HJ-NP-Z1-9]{25,34})$/,
|
|
47
|
+
};
|
|
48
|
+
export function btcParamsByName(name) {
|
|
49
|
+
switch (name) {
|
|
50
|
+
case BtcNetworks.Mainnet:
|
|
51
|
+
return BITCOIN_MAINNET_PARAMS;
|
|
52
|
+
case BtcNetworks.Testnet:
|
|
53
|
+
return BITCOIN_TESTNET_PARAMS;
|
|
54
|
+
case BtcNetworks.Signet:
|
|
55
|
+
return BITCOIN_SIGNET_PARAMS;
|
|
56
|
+
case BtcNetworks.Regtest:
|
|
57
|
+
return BITCOIN_REGTEST_PARAMS;
|
|
58
|
+
default: {
|
|
59
|
+
const exhaustive = name;
|
|
60
|
+
throw new Error(`Unknown Bitcoin network: ${String(exhaustive)}`);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
const btcParamsByChainId = new Map();
|
|
65
|
+
const RESERVED_SEED_CHAIN_IDS = new Set([
|
|
66
|
+
BigInt(CHAIN_ID_BITCOIN_MAINNET),
|
|
67
|
+
BigInt(CHAIN_ID_BITCOIN_TESTNET),
|
|
68
|
+
BigInt(CHAIN_ID_BITCOIN_SIGNET),
|
|
69
|
+
]);
|
|
70
|
+
// Static seed for the canonical BTC chainIds so `addressFor(-1, 'bc1q…')`
|
|
71
|
+
// resolves without any consumer having constructed a BtcChain instance —
|
|
72
|
+
// symmetric with the NetworkType static seed. Custom BTC ids still register
|
|
73
|
+
// via the BtcChain constructor.
|
|
74
|
+
btcParamsByChainId.set(BigInt(CHAIN_ID_BITCOIN_MAINNET), BITCOIN_MAINNET_PARAMS);
|
|
75
|
+
btcParamsByChainId.set(BigInt(CHAIN_ID_BITCOIN_TESTNET), BITCOIN_TESTNET_PARAMS);
|
|
76
|
+
btcParamsByChainId.set(BigInt(CHAIN_ID_BITCOIN_SIGNET), BITCOIN_SIGNET_PARAMS);
|
|
77
|
+
/**
|
|
78
|
+
* Register BTC network params for a chainId.
|
|
79
|
+
*
|
|
80
|
+
* The three statically-seeded chainIds (BTC mainnet/testnet/signet) are
|
|
81
|
+
* **reserved**: a re-registration is only accepted if the incoming params
|
|
82
|
+
* are shape-identical to the seeded ones (idempotent — this is what
|
|
83
|
+
* `BtcChain`'s constructor does on the canonical ids). Any deviation
|
|
84
|
+
* (different `hrp`, `walletAddressRegex`, `pubKeyHash`, etc.) throws
|
|
85
|
+
* `ChainError(InvalidArgument)`. For custom BTC-shaped params, pick a
|
|
86
|
+
* distinct chainId.
|
|
87
|
+
*
|
|
88
|
+
* For non-seeded chainIds, the same shape check applies — silent-replace-
|
|
89
|
+
* with-different-grammar is not possible on any registered id, seeded or
|
|
90
|
+
* not.
|
|
91
|
+
*/
|
|
92
|
+
export function registerBtcChainParams(chainId, params) {
|
|
93
|
+
const existing = btcParamsByChainId.get(chainId);
|
|
94
|
+
const isReserved = RESERVED_SEED_CHAIN_IDS.has(chainId);
|
|
95
|
+
if (existing !== undefined && existing !== params) {
|
|
96
|
+
if (!btcParamsShapeMatches(existing, params)) {
|
|
97
|
+
throw new ChainError(ChainErrorKinds.InvalidArgument, isReserved
|
|
98
|
+
? `BTC chainId ${chainId} is a reserved static seed; refusing to re-register with different params ('${existing.name}' vs '${params.name}'). Pick a distinct chainId for custom BTC-shaped params.`
|
|
99
|
+
: `BTC chainId ${chainId} already registered with different identity-relevant params ('${existing.name}' vs '${params.name}'). Consumer must unregister first if intentional.`, { chainId: Number(chainId) });
|
|
100
|
+
}
|
|
101
|
+
// Reserved-id shape-match: return WITHOUT overwriting. The seed
|
|
102
|
+
// stays canonical (identity-equal to the exported BITCOIN_*_PARAMS
|
|
103
|
+
// constant); a consumer clone with the right shape doesn't replace
|
|
104
|
+
// the reference. Prevents post-registration mutation of the seed
|
|
105
|
+
// (`supportedDerivationPurposes.add(99)` on the passed clone would
|
|
106
|
+
// otherwise reach the seeded entry).
|
|
107
|
+
if (isReserved)
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
// Consumer-registered ids: defensive-copy the Set so caller mutations
|
|
111
|
+
// after registration can't reach the stored params.
|
|
112
|
+
btcParamsByChainId.set(chainId, {
|
|
113
|
+
...params,
|
|
114
|
+
supportedDerivationPurposes: new Set(params.supportedDerivationPurposes),
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Remove a BTC chainId entry from the params registry. Reserved seed ids
|
|
119
|
+
* (BTC mainnet/testnet/signet) are silently no-op'd rather than throwing,
|
|
120
|
+
* so a composable consumer teardown helper
|
|
121
|
+
* (`unregisterChain(id); unregisterBtcChainParams(BigInt(id));`) works for
|
|
122
|
+
* ANY id without id-specific branching.
|
|
123
|
+
*
|
|
124
|
+
* Paired with `unregisterChain(id)` from `network_type.ts` when the
|
|
125
|
+
* consumer wants a full teardown of a custom BTC-shaped id: both
|
|
126
|
+
* registries need clearing to avoid drift where `networkTypeOf(id)`
|
|
127
|
+
* throws `ChainNotSupported` but `btcParamsForChainId(id)` still returns
|
|
128
|
+
* stale params.
|
|
129
|
+
*/
|
|
130
|
+
export function unregisterBtcChainParams(chainId) {
|
|
131
|
+
if (RESERVED_SEED_CHAIN_IDS.has(chainId))
|
|
132
|
+
return;
|
|
133
|
+
btcParamsByChainId.delete(chainId);
|
|
134
|
+
}
|
|
135
|
+
export function btcParamsShapeMatches(a, b) {
|
|
136
|
+
if (a.name !== b.name)
|
|
137
|
+
return false;
|
|
138
|
+
if (a.hrp !== b.hrp)
|
|
139
|
+
return false;
|
|
140
|
+
if (a.slip44CoinId !== b.slip44CoinId)
|
|
141
|
+
return false;
|
|
142
|
+
if (a.dustValueSats !== b.dustValueSats)
|
|
143
|
+
return false;
|
|
144
|
+
if (a.walletAddressRegex.source !== b.walletAddressRegex.source)
|
|
145
|
+
return false;
|
|
146
|
+
if (a.walletAddressRegex.flags !== b.walletAddressRegex.flags)
|
|
147
|
+
return false;
|
|
148
|
+
if (a.networkInfo.pubKeyHash !== b.networkInfo.pubKeyHash)
|
|
149
|
+
return false;
|
|
150
|
+
if (a.networkInfo.scriptHash !== b.networkInfo.scriptHash)
|
|
151
|
+
return false;
|
|
152
|
+
if (a.networkInfo.bip32.public !== b.networkInfo.bip32.public)
|
|
153
|
+
return false;
|
|
154
|
+
if (a.networkInfo.bip32.private !== b.networkInfo.bip32.private)
|
|
155
|
+
return false;
|
|
156
|
+
// Also compare the address-grammar fields the bitcoinjs Network carries
|
|
157
|
+
// separately from bip32/pubKeyHash. A consumer who spoofs
|
|
158
|
+
// `{...seed, networkInfo: {...seed.networkInfo, bech32: 'tb'}}` would
|
|
159
|
+
// otherwise pass this check, replace the seeded entry, and payments/Psbt
|
|
160
|
+
// downstream would derive testnet-HRP addresses under the mainnet id
|
|
161
|
+
// while walletAddressRegex still validates mainnet strings.
|
|
162
|
+
if (a.networkInfo.bech32 !== b.networkInfo.bech32)
|
|
163
|
+
return false;
|
|
164
|
+
if (a.networkInfo.messagePrefix !== b.networkInfo.messagePrefix)
|
|
165
|
+
return false;
|
|
166
|
+
if (a.networkInfo.wif !== b.networkInfo.wif)
|
|
167
|
+
return false;
|
|
168
|
+
if (a.supportedDerivationPurposes.size !== b.supportedDerivationPurposes.size)
|
|
169
|
+
return false;
|
|
170
|
+
for (const p of a.supportedDerivationPurposes) {
|
|
171
|
+
if (!b.supportedDerivationPurposes.has(p))
|
|
172
|
+
return false;
|
|
173
|
+
}
|
|
174
|
+
return true;
|
|
175
|
+
}
|
|
176
|
+
export function btcParamsForChainId(chainId) {
|
|
177
|
+
const params = btcParamsByChainId.get(chainId);
|
|
178
|
+
if (!params) {
|
|
179
|
+
// Do NOT tell the caller to register — for non-BTC UTXO chainIds
|
|
180
|
+
// (LTC/DOGE/etc.), registering BITCOIN_MAINNET_PARAMS here would let
|
|
181
|
+
// BTC addresses validate as if they belonged to the wrong chain.
|
|
182
|
+
// The v0 workaround is `chain.validateAddress(raw)` on the chain
|
|
183
|
+
// instance directly.
|
|
184
|
+
throw new ChainError(ChainErrorKinds.ChainNotSupported, `No BTC network params registered for chainId ${chainId}`, { chainId: Number(chainId) });
|
|
185
|
+
}
|
|
186
|
+
return params;
|
|
187
|
+
}
|
|
188
|
+
//# sourceMappingURL=network_params.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"network_params.js","sourceRoot":"","sources":["../../../utxo/btc/network_params.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,MAAM,GAEP,MAAM,2BAA2B,CAAC;AAEnC,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;CACV,CAAC;AASX,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC;IAC/B,mBAAmB;IACnB,yBAAyB;IACzB,oBAAoB;IACpB,kBAAkB;CACnB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,sBAAsB,GAAqB;IACtD,IAAI,EAAE,WAAW,CAAC,OAAO;IACzB,GAAG,EAAE,IAAI;IACT,YAAY,EAAE,MAAM,CAAC,GAAG;IACxB,WAAW,EAAE,QAAQ,CAAC,OAAO;IAC7B,2BAA2B,EAAE,gBAAgB;IAC7C,aAAa,EAAE,iBAAiB;IAChC,kBAAkB,EAAE,oEAAoE;CACzF,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAqB;IACtD,IAAI,EAAE,WAAW,CAAC,OAAO;IACzB,GAAG,EAAE,IAAI;IACT,YAAY,EAAE,MAAM,CAAC,OAAO;IAC5B,WAAW,EAAE,QAAQ,CAAC,OAAO;IAC7B,2BAA2B,EAAE,gBAAgB;IAC7C,aAAa,EAAE,iBAAiB;IAChC,kBAAkB,EAAE,qEAAqE;CAC1F,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAqB;IACrD,GAAG,sBAAsB;IACzB,IAAI,EAAE,WAAW,CAAC,MAAM;CACzB,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAqB;IACtD,IAAI,EAAE,WAAW,CAAC,OAAO;IACzB,GAAG,EAAE,MAAM;IACX,YAAY,EAAE,MAAM,CAAC,OAAO;IAC5B,WAAW,EAAE,QAAQ,CAAC,OAAO;IAC7B,2BAA2B,EAAE,gBAAgB;IAC7C,aAAa,EAAE,iBAAiB;IAChC,kBAAkB,EAAE,uEAAuE;CAC5F,CAAC;AAEF,MAAM,UAAU,eAAe,CAAC,IAAoB;IAClD,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,WAAW,CAAC,OAAO;YACtB,OAAO,sBAAsB,CAAC;QAChC,KAAK,WAAW,CAAC,OAAO;YACtB,OAAO,sBAAsB,CAAC;QAChC,KAAK,WAAW,CAAC,MAAM;YACrB,OAAO,qBAAqB,CAAC;QAC/B,KAAK,WAAW,CAAC,OAAO;YACtB,OAAO,sBAAsB,CAAC;QAChC,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,UAAU,GAAU,IAAI,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,4BAA4B,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAA4B,CAAC;AAE/D,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAS;IAC9C,MAAM,CAAC,wBAAwB,CAAC;IAChC,MAAM,CAAC,wBAAwB,CAAC;IAChC,MAAM,CAAC,uBAAuB,CAAC;CAChC,CAAC,CAAC;AAEH,0EAA0E;AAC1E,yEAAyE;AACzE,4EAA4E;AAC5E,gCAAgC;AAChC,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,wBAAwB,CAAC,EAAE,sBAAsB,CAAC,CAAC;AACjF,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,wBAAwB,CAAC,EAAE,sBAAsB,CAAC,CAAC;AACjF,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,uBAAuB,CAAC,EAAE,qBAAqB,CAAC,CAAC;AAE/E;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAe,EAAE,MAAwB;IAC9E,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACjD,MAAM,UAAU,GAAG,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACxD,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QAClD,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,UAAU,CAClB,eAAe,CAAC,eAAe,EAC/B,UAAU;gBACR,CAAC,CAAC,eAAe,OAAO,+EAA+E,QAAQ,CAAC,IAAI,SAAS,MAAM,CAAC,IAAI,2DAA2D;gBACnM,CAAC,CAAC,eAAe,OAAO,iEAAiE,QAAQ,CAAC,IAAI,SAAS,MAAM,CAAC,IAAI,oDAAoD,EAChL,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,CAC7B,CAAC;QACJ,CAAC;QACD,gEAAgE;QAChE,mEAAmE;QACnE,mEAAmE;QACnE,iEAAiE;QACjE,mEAAmE;QACnE,qCAAqC;QACrC,IAAI,UAAU;YAAE,OAAO;IACzB,CAAC;IACD,sEAAsE;IACtE,oDAAoD;IACpD,kBAAkB,CAAC,GAAG,CAAC,OAAO,EAAE;QAC9B,GAAG,MAAM;QACT,2BAA2B,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,2BAA2B,CAAC;KACzE,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAe;IACtD,IAAI,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,OAAO;IACjD,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,CAAmB,EAAE,CAAmB;IAC5E,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACpC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IAClC,IAAI,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,YAAY;QAAE,OAAO,KAAK,CAAC;IACpD,IAAI,CAAC,CAAC,aAAa,KAAK,CAAC,CAAC,aAAa;QAAE,OAAO,KAAK,CAAC;IACtD,IAAI,CAAC,CAAC,kBAAkB,CAAC,MAAM,KAAK,CAAC,CAAC,kBAAkB,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC9E,IAAI,CAAC,CAAC,kBAAkB,CAAC,KAAK,KAAK,CAAC,CAAC,kBAAkB,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IAC5E,IAAI,CAAC,CAAC,WAAW,CAAC,UAAU,KAAK,CAAC,CAAC,WAAW,CAAC,UAAU;QAAE,OAAO,KAAK,CAAC;IACxE,IAAI,CAAC,CAAC,WAAW,CAAC,UAAU,KAAK,CAAC,CAAC,WAAW,CAAC,UAAU;QAAE,OAAO,KAAK,CAAC;IACxE,IAAI,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC5E,IAAI,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAC9E,wEAAwE;IACxE,0DAA0D;IAC1D,sEAAsE;IACtE,yEAAyE;IACzE,qEAAqE;IACrE,4DAA4D;IAC5D,IAAI,CAAC,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,WAAW,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAChE,IAAI,CAAC,CAAC,WAAW,CAAC,aAAa,KAAK,CAAC,CAAC,WAAW,CAAC,aAAa;QAAE,OAAO,KAAK,CAAC;IAC9E,IAAI,CAAC,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,CAAC,WAAW,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IAC1D,IAAI,CAAC,CAAC,2BAA2B,CAAC,IAAI,KAAK,CAAC,CAAC,2BAA2B,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IAC5F,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,2BAA2B,EAAE,CAAC;QAC9C,IAAI,CAAC,CAAC,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1D,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAe;IACjD,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC/C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,iEAAiE;QACjE,qEAAqE;QACrE,iEAAiE;QACjE,iEAAiE;QACjE,qBAAqB;QACrB,MAAM,IAAI,UAAU,CAClB,eAAe,CAAC,iBAAiB,EACjC,gDAAgD,OAAO,EAAE,EACzD,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,CAC7B,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export interface AssetBearingOutpoint {
|
|
2
|
+
txid: string;
|
|
3
|
+
vout: number;
|
|
4
|
+
}
|
|
5
|
+
export declare function outpointKey(txid: string, vout: number): string;
|
|
6
|
+
export declare function unionOutpoints(groups: ReadonlyArray<readonly AssetBearingOutpoint[]>): Set<string>;
|
|
7
|
+
//# sourceMappingURL=asset_outpoint.d.ts.map
|