@btc-vision/transaction 1.0.84 → 1.0.86
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/.gitattributes +2 -2
- package/browser/_version.d.ts +1 -1
- package/browser/index.js +1 -1
- package/browser/keypair/Wallet.d.ts +3 -0
- package/browser/transaction/builders/TapUnwarpTransaction.d.ts +40 -40
- package/browser/transaction/builders/UnwarpTransaction.d.ts +34 -34
- package/browser/utxo/UTXOManager.d.ts +7 -7
- package/build/Utils.d.ts +0 -0
- package/build/Utils.js +1 -0
- package/build/_version.d.ts +1 -1
- package/build/_version.js +1 -1
- package/build/consensus/metadata/RoswsellConsensus.d.ts +2 -0
- package/build/consensus/metadata/RoswsellConsensus.js +4 -0
- package/build/contracts/ContractMetadataManager.d.ts +0 -0
- package/build/contracts/ContractMetadataManager.js +1 -0
- package/build/generators/OPNetAddressGenerator.d.ts +0 -0
- package/build/generators/OPNetAddressGenerator.js +1 -0
- package/build/generators/builders/UnwrapGenerator.d.ts +8 -0
- package/build/generators/builders/UnwrapGenerator.js +79 -0
- package/build/keypair/Wallet.d.ts +3 -0
- package/build/keypair/Wallet.js +8 -0
- package/build/keypair/interfaces/GeneratedWallet.d.ts +5 -0
- package/build/keypair/interfaces/GeneratedWallet.js +1 -0
- package/build/metadata/CommonContracts.d.ts +6 -0
- package/build/metadata/CommonContracts.js +5 -0
- package/build/metadata/ContractMetadataManager.d.ts +1 -0
- package/build/metadata/ContractMetadataManager.js +9 -0
- package/build/metadata/contracts/ContractBase.d.ts +9 -0
- package/build/metadata/contracts/ContractBase.js +13 -0
- package/build/metadata/contracts/ContractBaseMetadata.d.ts +9 -0
- package/build/metadata/contracts/ContractBaseMetadata.js +13 -0
- package/build/metadata/contracts/ContractMetadataManager.d.ts +0 -0
- package/build/metadata/contracts/ContractMetadataManager.js +1 -0
- package/build/metadata/tokens.js +5 -5
- package/build/network/NetworkConverter.d.ts +0 -0
- package/build/network/NetworkConverter.js +14 -0
- package/build/scripts/Regtest.d.ts +2 -0
- package/build/scripts/Regtest.js +15 -0
- package/build/scripts/test.d.ts +1 -0
- package/build/scripts/test.js +74 -0
- package/build/signer/Regtest.d.ts +2 -0
- package/build/signer/Regtest.js +15 -0
- package/build/tests/Regtest.d.ts +3 -0
- package/build/tests/Regtest.js +29 -0
- package/build/tests/adaptPSBT.d.ts +1 -0
- package/build/tests/adaptPSBT.js +44 -0
- package/build/tests/btc/send.d.ts +1 -0
- package/build/tests/btc/send.js +35 -0
- package/build/tests/btc/transfer.d.ts +1 -0
- package/build/tests/btc/transfer.js +35 -0
- package/build/tests/createPairReg.d.ts +1 -0
- package/build/tests/createPairReg.js +73 -0
- package/build/tests/deploy/deployMoto.d.ts +4 -0
- package/build/tests/deploy/deployMoto.js +89 -0
- package/build/tests/deploy/deployPool.d.ts +1 -0
- package/build/tests/deploy/deployPool.js +5 -0
- package/build/tests/deploy/deployStep1.d.ts +1 -0
- package/build/tests/deploy/deployStep1.js +5 -0
- package/build/tests/deploy/deployStep2.d.ts +1 -0
- package/build/tests/deploy/deployStep2.js +5 -0
- package/build/tests/deploy/deployStep3.d.ts +1 -0
- package/build/tests/deploy/deployStep3.js +5 -0
- package/build/tests/deploy.d.ts +1 -0
- package/build/tests/deploy.js +41 -0
- package/build/tests/deployMotoRegStep1.d.ts +1 -0
- package/build/tests/deployMotoRegStep1.js +85 -0
- package/build/tests/deployReg.d.ts +1 -0
- package/build/tests/deployReg.js +85 -0
- package/build/tests/factory/createPairReg.d.ts +1 -0
- package/build/tests/factory/createPairReg.js +13 -0
- package/build/tests/gen.d.ts +1 -0
- package/build/tests/gen.js +19 -0
- package/build/tests/interaction.d.ts +5 -0
- package/build/tests/interaction.js +62 -0
- package/build/tests/massWrapReg.d.ts +1 -0
- package/build/tests/massWrapReg.js +105 -0
- package/build/tests/mineReg.d.ts +1 -0
- package/build/tests/mineReg.js +19 -0
- package/build/tests/moto/airdropToken.d.ts +1 -0
- package/build/tests/moto/airdropToken.js +21 -0
- package/build/tests/moto/airdropTokens.d.ts +1 -0
- package/build/tests/moto/airdropTokens.js +60 -0
- package/build/tests/moto/allowance.d.ts +1 -0
- package/build/tests/moto/allowance.js +6 -0
- package/build/tests/moto/approve.d.ts +1 -0
- package/build/tests/moto/approve.js +10 -0
- package/build/tests/moto/approveWBTC.d.ts +1 -0
- package/build/tests/moto/approveWBTC.js +12 -0
- package/build/tests/moto/balanceOf.d.ts +1 -0
- package/build/tests/moto/balanceOf.js +12 -0
- package/build/tests/moto/transfer.d.ts +1 -0
- package/build/tests/moto/transfer.js +16 -0
- package/build/tests/motoswap/airdropToken.d.ts +11 -0
- package/build/tests/motoswap/airdropToken.js +36 -0
- package/build/tests/motoswap/deployMoto.d.ts +4 -0
- package/build/tests/motoswap/deployMoto.js +89 -0
- package/build/tests/motoswap/deployMotoRegStep1.d.ts +1 -0
- package/build/tests/motoswap/deployMotoRegStep1.js +91 -0
- package/build/tests/motoswap/deployMotoRegStep2.d.ts +1 -0
- package/build/tests/motoswap/deployMotoRegStep2.js +91 -0
- package/build/tests/motoswap/deployPool.d.ts +1 -0
- package/build/tests/motoswap/deployPool.js +5 -0
- package/build/tests/motoswap/deployStep1.d.ts +1 -0
- package/build/tests/motoswap/deployStep1.js +5 -0
- package/build/tests/motoswap/deployStep2.d.ts +1 -0
- package/build/tests/motoswap/deployStep2.js +5 -0
- package/build/tests/motoswap/deployStep3.d.ts +1 -0
- package/build/tests/motoswap/deployStep3.js +5 -0
- package/build/tests/motoswap/interaction.d.ts +3 -0
- package/build/tests/motoswap/interaction.js +63 -0
- package/build/tests/motoswap/routerAddLiquidity.d.ts +11 -0
- package/build/tests/motoswap/routerAddLiquidity.js +35 -0
- package/build/tests/motoswap-router/addLiquidity.d.ts +11 -0
- package/build/tests/motoswap-router/addLiquidity.js +36 -0
- package/build/tests/motoswap-router/deployMoto.d.ts +4 -0
- package/build/tests/motoswap-router/deployMoto.js +89 -0
- package/build/tests/motoswap-router/deployPool.d.ts +1 -0
- package/build/tests/motoswap-router/deployPool.js +5 -0
- package/build/tests/motoswap-router/deployStep1.d.ts +1 -0
- package/build/tests/motoswap-router/deployStep1.js +5 -0
- package/build/tests/motoswap-router/deployStep2.d.ts +1 -0
- package/build/tests/motoswap-router/deployStep2.js +5 -0
- package/build/tests/motoswap-router/deployStep3.d.ts +1 -0
- package/build/tests/motoswap-router/deployStep3.js +5 -0
- package/build/tests/motoswap-router/getAmountsOut.d.ts +5 -0
- package/build/tests/motoswap-router/getAmountsOut.js +34 -0
- package/build/tests/motoswap-router/routerAddLiquidity.d.ts +11 -0
- package/build/tests/motoswap-router/routerAddLiquidity.js +35 -0
- package/build/tests/motoswap-router/swap.d.ts +8 -0
- package/build/tests/motoswap-router/swap.js +24 -0
- package/build/tests/multisign.d.ts +1 -0
- package/build/tests/multisign.js +47 -0
- package/build/tests/multisign2.d.ts +1 -0
- package/build/tests/multisign2.js +27 -0
- package/build/tests/pool/DecodePoolAddress.d.ts +6 -0
- package/build/tests/pool/DecodePoolAddress.js +12 -0
- package/build/tests/pool/decodeReserves.d.ts +5 -0
- package/build/tests/pool/decodeReserves.js +13 -0
- package/build/tests/pool/reserves.d.ts +1 -0
- package/build/tests/pool/reserves.js +18 -0
- package/build/tests/shared/Utils.d.ts +2 -0
- package/build/tests/shared/Utils.js +14 -0
- package/build/tests/shared/interaction.d.ts +7 -0
- package/build/tests/shared/interaction.js +85 -0
- package/build/tests/shared/tokens.d.ts +6 -0
- package/build/tests/shared/tokens.js +5 -0
- package/build/tests/stakeReg.d.ts +1 -0
- package/build/tests/stakeReg.js +73 -0
- package/build/tests/stakedReg.d.ts +1 -0
- package/build/tests/stakedReg.js +28 -0
- package/build/tests/test.d.ts +1 -0
- package/build/tests/test.js +51 -0
- package/build/tests/test2.d.ts +1 -0
- package/build/tests/test2.js +73 -0
- package/build/tests/testReg.d.ts +1 -0
- package/build/tests/testReg.js +91 -0
- package/build/tests/tokens.d.ts +6 -0
- package/build/tests/tokens.js +5 -0
- package/build/tests/totalRewardReg.d.ts +1 -0
- package/build/tests/totalRewardReg.js +28 -0
- package/build/tests/transfer.d.ts +1 -0
- package/build/tests/transfer.js +74 -0
- package/build/tests/transferReg.d.ts +1 -0
- package/build/tests/transferReg.js +74 -0
- package/build/tests/unStakeReg.d.ts +1 -0
- package/build/tests/unStakeReg.js +72 -0
- package/build/tests/unwrapReg.d.ts +1 -0
- package/build/tests/unwrapReg.js +61 -0
- package/build/tests/unwrapReg2.d.ts +1 -0
- package/build/tests/unwrapReg2.js +56 -0
- package/build/tests/unwrapRegSegwit.d.ts +1 -0
- package/build/tests/unwrapRegSegwit.js +83 -0
- package/build/tests/wbtc/approve.d.ts +1 -0
- package/build/tests/wbtc/approve.js +6 -0
- package/build/tests/wbtc/approveWBTC.d.ts +1 -0
- package/build/tests/wbtc/approveWBTC.js +12 -0
- package/build/tests/wbtc/massWrapReg.d.ts +1 -0
- package/build/tests/wbtc/massWrapReg.js +105 -0
- package/build/tests/wbtc/transfer.d.ts +1 -0
- package/build/tests/wbtc/transfer.js +16 -0
- package/build/tests/wbtc/transferReg.d.ts +1 -0
- package/build/tests/wbtc/transferReg.js +16 -0
- package/build/tests/wbtc/unStakeReg.d.ts +1 -0
- package/build/tests/wbtc/unStakeReg.js +72 -0
- package/build/tests/wbtc/unwrapReg.d.ts +1 -0
- package/build/tests/wbtc/unwrapReg.js +60 -0
- package/build/tests/wbtc/unwrapRegSegwit.d.ts +1 -0
- package/build/tests/wbtc/unwrapRegSegwit.js +83 -0
- package/build/tests/wbtc/withdrawalRequestReg.d.ts +1 -0
- package/build/tests/wbtc/withdrawalRequestReg.js +71 -0
- package/build/tests/wbtc/wrapReg.d.ts +1 -0
- package/build/tests/wbtc/wrapReg.js +65 -0
- package/build/tests/wbtc/wrapTest.d.ts +1 -0
- package/build/tests/wbtc/wrapTest.js +66 -0
- package/build/tests/withdrawalRequestReg.d.ts +1 -0
- package/build/tests/withdrawalRequestReg.js +71 -0
- package/build/tests/wrap.d.ts +1 -0
- package/build/tests/wrap.js +65 -0
- package/build/tests/wrapReg.d.ts +1 -0
- package/build/tests/wrapReg.js +68 -0
- package/build/tests/wrapTest.d.ts +1 -0
- package/build/tests/wrapTest.js +66 -0
- package/build/tests/wrapTestg.d.ts +1 -0
- package/build/tests/wrapTestg.js +66 -0
- package/build/tests/writers/allowance.d.ts +3 -0
- package/build/tests/writers/allowance.js +10 -0
- package/build/tests/writers/approve.d.ts +4 -0
- package/build/tests/writers/approve.js +11 -0
- package/build/transaction/TransactionBuilder.d.ts +60 -0
- package/build/transaction/TransactionBuilder.js +244 -0
- package/build/transaction/browser/BrowserSigner.d.ts +11 -0
- package/build/transaction/browser/BrowserSigner.js +10 -0
- package/build/transaction/browser/extensions/Unisat.d.ts +54 -0
- package/build/transaction/browser/extensions/Unisat.js +11 -0
- package/build/transaction/builders/GenericTransaction.d.ts +11 -0
- package/build/transaction/builders/GenericTransaction.js +23 -0
- package/build/transaction/builders/TapUnwarpTransaction.d.ts +37 -0
- package/build/transaction/builders/TapUnwarpTransaction.js +201 -0
- package/build/transaction/builders/UnwarpSegwitTransaction.d.ts +34 -0
- package/build/transaction/builders/UnwarpSegwitTransaction.js +184 -0
- package/build/transaction/builders/UnwarpTransaction.d.ts +35 -0
- package/build/transaction/builders/UnwarpTransaction.js +199 -0
- package/build/transaction/interfaces/ITransactions.d.ts +32 -0
- package/build/transaction/interfaces/ITransactions.js +1 -0
- package/build/utxo/IUTXO.d.ts +0 -0
- package/build/utxo/IUTXO.js +1 -0
- package/build/utxo/OPNetUtils.d.ts +7 -0
- package/build/utxo/OPNetUtils.js +47 -0
- package/build/utxo/UTXOManager.d.ts +7 -0
- package/build/utxo/UTXOManager.js +47 -0
- package/build/wbtc/BroadcastResponse.d.ts +0 -0
- package/build/wbtc/BroadcastResponse.js +1 -0
- package/gulpfile.js +152 -152
- package/package.json +109 -109
- package/src/_version.ts +1 -1
- package/src/consensus/Consensus.ts +36 -36
- package/src/consensus/ConsensusConfig.ts +39 -39
- package/src/crypto/crypto-browser.js +75 -75
- package/src/generators/AddressGenerator.ts +24 -24
- package/src/generators/Features.ts +5 -5
- package/src/generators/Generator.ts +75 -75
- package/src/generators/builders/CalldataGenerator.ts +148 -148
- package/src/generators/builders/DeploymentGenerator.ts +66 -66
- package/src/index.ts +4 -4
- package/src/keypair/AddressVerificator.ts +40 -40
- package/src/keypair/EcKeyPair.ts +282 -282
- package/src/keypair/Wallet.ts +120 -97
- package/src/keypair/interfaces/IWallet.ts +19 -19
- package/src/metadata/ContractBaseMetadata.ts +23 -23
- package/src/metadata/contracts/wBTC.ts +60 -60
- package/src/metadata/tokens.ts +135 -135
- package/src/network/NetworkInformation.ts +7 -7
- package/src/transaction/TransactionFactory.ts +496 -496
- package/src/transaction/browser/BrowserSignerBase.ts +37 -37
- package/src/transaction/browser/Web3Provider.ts +46 -46
- package/src/transaction/browser/extensions/UnisatSigner.ts +218 -218
- package/src/transaction/browser/types/Unisat.ts +97 -97
- package/src/transaction/builders/FundingTransaction.ts +40 -40
- package/src/transaction/builders/InteractionTransaction.ts +38 -38
- package/src/transaction/builders/SharedInteractionTransaction.ts +368 -368
- package/src/transaction/builders/TransactionBuilder.ts +665 -665
- package/src/transaction/builders/UnwrapSegwitTransaction.ts +365 -365
- package/src/transaction/builders/UnwrapTransaction.ts +507 -507
- package/src/transaction/builders/WrapTransaction.ts +346 -346
- package/src/transaction/interfaces/ITransactionParameters.ts +59 -59
- package/src/transaction/interfaces/Tap.ts +26 -26
- package/src/transaction/psbt/PSBTTypes.ts +3 -3
- package/src/transaction/shared/TweakedTransaction.ts +539 -539
- package/src/utxo/OPNetLimitedProvider.ts +244 -244
- package/src/utxo/interfaces/BroadcastResponse.ts +10 -10
- package/src/utxo/interfaces/IUTXO.ts +29 -29
- package/src/verification/TapscriptVerificator.ts +89 -89
- package/src/wbtc/Generate.ts +40 -40
- package/src/wbtc/UnwrapGeneration.ts +13 -13
- package/src/wbtc/WrappedGenerationParameters.ts +33 -33
- package/webpack.config.js +78 -78
- /package/build/generators/builders/{MultiSignGenerator.d.ts → MultisignGenerator.d.ts} +0 -0
- /package/build/generators/builders/{MultiSignGenerator.js → MultisignGenerator.js} +0 -0
- /package/build/generators/{Features.d.ts → features.d.ts} +0 -0
- /package/build/generators/{Features.js → features.js} +0 -0
package/src/keypair/Wallet.ts
CHANGED
|
@@ -1,97 +1,120 @@
|
|
|
1
|
-
import { IWallet } from './interfaces/IWallet.js';
|
|
2
|
-
import { ECPairInterface } from 'ecpair';
|
|
3
|
-
import { EcKeyPair } from './EcKeyPair.js';
|
|
4
|
-
import { Network, networks } from 'bitcoinjs-lib';
|
|
5
|
-
import { Address } from '@btc-vision/bsi-binary';
|
|
6
|
-
import { toXOnly } from 'bitcoinjs-lib/src/psbt/bip371.js';
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Wallet class
|
|
10
|
-
*/
|
|
11
|
-
export class Wallet {
|
|
12
|
-
/**
|
|
13
|
-
* Keypair for the wallet
|
|
14
|
-
* @private
|
|
15
|
-
*/
|
|
16
|
-
private readonly _keypair: ECPairInterface;
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* P2WPKH address for the wallet
|
|
20
|
-
* @private
|
|
21
|
-
*/
|
|
22
|
-
private readonly _p2wpkh: Address;
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* P2TR address for the wallet
|
|
26
|
-
* @private
|
|
27
|
-
*/
|
|
28
|
-
private readonly _p2tr: Address;
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
*
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
*
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
*
|
|
91
|
-
* @
|
|
92
|
-
* @returns {
|
|
93
|
-
*/
|
|
94
|
-
public
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
1
|
+
import { IWallet } from './interfaces/IWallet.js';
|
|
2
|
+
import { ECPairInterface } from 'ecpair';
|
|
3
|
+
import { EcKeyPair } from './EcKeyPair.js';
|
|
4
|
+
import { Network, networks } from 'bitcoinjs-lib';
|
|
5
|
+
import { Address } from '@btc-vision/bsi-binary';
|
|
6
|
+
import { toXOnly } from 'bitcoinjs-lib/src/psbt/bip371.js';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Wallet class
|
|
10
|
+
*/
|
|
11
|
+
export class Wallet {
|
|
12
|
+
/**
|
|
13
|
+
* Keypair for the wallet
|
|
14
|
+
* @private
|
|
15
|
+
*/
|
|
16
|
+
private readonly _keypair: ECPairInterface;
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* P2WPKH address for the wallet
|
|
20
|
+
* @private
|
|
21
|
+
*/
|
|
22
|
+
private readonly _p2wpkh: Address;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* P2TR address for the wallet
|
|
26
|
+
* @private
|
|
27
|
+
*/
|
|
28
|
+
private readonly _p2tr: Address;
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Legacy address for the wallet
|
|
32
|
+
* @private
|
|
33
|
+
*/
|
|
34
|
+
private readonly _legacy: Address;
|
|
35
|
+
|
|
36
|
+
constructor(
|
|
37
|
+
wallet: IWallet,
|
|
38
|
+
public readonly network: Network = networks.bitcoin,
|
|
39
|
+
) {
|
|
40
|
+
this._keypair = EcKeyPair.fromWIF(wallet.privateKey, this.network);
|
|
41
|
+
|
|
42
|
+
this._p2wpkh = EcKeyPair.getP2WPKHAddress(this._keypair, this.network);
|
|
43
|
+
this._p2tr = EcKeyPair.getTaprootAddress(this._keypair, this.network);
|
|
44
|
+
this._legacy = EcKeyPair.getLegacyAddress(this._keypair, this.network);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Get the keypair for the wallet
|
|
49
|
+
* @returns {ECPairInterface}
|
|
50
|
+
*/
|
|
51
|
+
public get keypair(): ECPairInterface {
|
|
52
|
+
if (!this._keypair) throw new Error('Keypair not set');
|
|
53
|
+
|
|
54
|
+
return this._keypair;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Get the P2WPKH address for the wallet
|
|
59
|
+
* @returns {Address}
|
|
60
|
+
*/
|
|
61
|
+
public get p2wpkh(): Address {
|
|
62
|
+
return this._p2wpkh;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Get the P2TR address for the wallet
|
|
67
|
+
* @returns {Address}
|
|
68
|
+
*/
|
|
69
|
+
public get p2tr(): Address {
|
|
70
|
+
return this._p2tr;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Get the legacy address for the wallet
|
|
75
|
+
* @returns {Address}
|
|
76
|
+
*/
|
|
77
|
+
public get legacy(): Address {
|
|
78
|
+
return this._legacy;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Get the addresses for the wallet
|
|
83
|
+
* @returns {Address[]}
|
|
84
|
+
*/
|
|
85
|
+
public get addresses(): Address[] {
|
|
86
|
+
return [this.p2wpkh, this.p2tr, this.legacy];
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Get the public key for the wallet
|
|
91
|
+
* @protected
|
|
92
|
+
* @returns {Buffer}
|
|
93
|
+
*/
|
|
94
|
+
public get publicKey(): Buffer {
|
|
95
|
+
if (!this.keypair) throw new Error('Keypair not set');
|
|
96
|
+
|
|
97
|
+
return this.keypair.publicKey;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Get the x-only public key for the wallet
|
|
102
|
+
* @public
|
|
103
|
+
* @returns {Buffer}
|
|
104
|
+
*/
|
|
105
|
+
public get xOnly(): Buffer {
|
|
106
|
+
if (!this.keypair) throw new Error('Keypair not set');
|
|
107
|
+
|
|
108
|
+
return toXOnly(this.keypair.publicKey);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Create a wallet from a WIF
|
|
113
|
+
* @param {string} wif The WIF
|
|
114
|
+
* @param {Network} network The network
|
|
115
|
+
* @returns {Wallet} The wallet
|
|
116
|
+
*/
|
|
117
|
+
public static fromWif(wif: string, network: Network = networks.bitcoin): Wallet {
|
|
118
|
+
return new Wallet({ privateKey: wif, address: '', publicKey: '' }, network);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Interface for the generated wallet
|
|
3
|
-
*/
|
|
4
|
-
export interface IWallet {
|
|
5
|
-
/**
|
|
6
|
-
* The address of the wallet
|
|
7
|
-
*/
|
|
8
|
-
readonly address: string;
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* The private key of the wallet
|
|
12
|
-
*/
|
|
13
|
-
readonly privateKey: string;
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* The public key of the wallet
|
|
17
|
-
*/
|
|
18
|
-
readonly publicKey: string;
|
|
19
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Interface for the generated wallet
|
|
3
|
+
*/
|
|
4
|
+
export interface IWallet {
|
|
5
|
+
/**
|
|
6
|
+
* The address of the wallet
|
|
7
|
+
*/
|
|
8
|
+
readonly address: string;
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* The private key of the wallet
|
|
12
|
+
*/
|
|
13
|
+
readonly privateKey: string;
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* The public key of the wallet
|
|
17
|
+
*/
|
|
18
|
+
readonly publicKey: string;
|
|
19
|
+
}
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import { Address } from '@btc-vision/bsi-binary';
|
|
2
|
-
import { Network, networks } from 'bitcoinjs-lib';
|
|
3
|
-
|
|
4
|
-
export abstract class ContractBaseMetadata {
|
|
5
|
-
protected abstract readonly address: Address;
|
|
6
|
-
|
|
7
|
-
protected constructor(protected network: Network = networks.bitcoin) {}
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* @description Get the contract address
|
|
11
|
-
* @param {Network} network - The network to get the address for
|
|
12
|
-
*/
|
|
13
|
-
public static getAddress(network: Network = networks.bitcoin): Address {
|
|
14
|
-
throw new Error('Method not implemented.');
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* @description Get the contract address
|
|
19
|
-
*/
|
|
20
|
-
public getAddress(): Address {
|
|
21
|
-
return this.address;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
1
|
+
import { Address } from '@btc-vision/bsi-binary';
|
|
2
|
+
import { Network, networks } from 'bitcoinjs-lib';
|
|
3
|
+
|
|
4
|
+
export abstract class ContractBaseMetadata {
|
|
5
|
+
protected abstract readonly address: Address;
|
|
6
|
+
|
|
7
|
+
protected constructor(protected network: Network = networks.bitcoin) {}
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @description Get the contract address
|
|
11
|
+
* @param {Network} network - The network to get the address for
|
|
12
|
+
*/
|
|
13
|
+
public static getAddress(network: Network = networks.bitcoin): Address {
|
|
14
|
+
throw new Error('Method not implemented.');
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* @description Get the contract address
|
|
19
|
+
*/
|
|
20
|
+
public getAddress(): Address {
|
|
21
|
+
return this.address;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -1,60 +1,60 @@
|
|
|
1
|
-
import { Network, networks } from 'bitcoinjs-lib';
|
|
2
|
-
import { ContractBaseMetadata } from '../ContractBaseMetadata.js';
|
|
3
|
-
import { Address } from '@btc-vision/bsi-binary';
|
|
4
|
-
import { WBTC_ADDRESS_FRACTAL, WBTC_ADDRESS_REGTEST, WBTC_ADDRESS_TESTNET } from '../tokens.js';
|
|
5
|
-
import { ChainId } from '../../network/ChainId.js';
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* @description Wrapped Bitcoin (wBTC) contract metadata.
|
|
9
|
-
* */
|
|
10
|
-
export class wBTC extends ContractBaseMetadata {
|
|
11
|
-
/**
|
|
12
|
-
* @description Token Name
|
|
13
|
-
*/
|
|
14
|
-
public readonly tokenName: string = 'Wrapped Bitcoin';
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* @description Token Symbol
|
|
18
|
-
*/
|
|
19
|
-
public readonly tokenSymbol: string = 'wBTC';
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* @description Token Decimals, same as Bitcoin
|
|
23
|
-
*/
|
|
24
|
-
public readonly decimals: number = 8;
|
|
25
|
-
|
|
26
|
-
protected readonly address: Address;
|
|
27
|
-
|
|
28
|
-
constructor(
|
|
29
|
-
protected network: Network = networks.bitcoin,
|
|
30
|
-
chainId: ChainId = ChainId.Bitcoin,
|
|
31
|
-
) {
|
|
32
|
-
super(network);
|
|
33
|
-
|
|
34
|
-
this.address = wBTC.getAddress(network, chainId);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
public static getAddress(network: Network = networks.bitcoin, chainId?: ChainId): Address {
|
|
38
|
-
switch (network.bech32) {
|
|
39
|
-
case networks.bitcoin.bech32:
|
|
40
|
-
return this.getWBTCAddressForChain(chainId ?? ChainId.Bitcoin);
|
|
41
|
-
case networks.regtest.bech32:
|
|
42
|
-
return WBTC_ADDRESS_REGTEST;
|
|
43
|
-
case networks.testnet.bech32:
|
|
44
|
-
return WBTC_ADDRESS_TESTNET;
|
|
45
|
-
default:
|
|
46
|
-
throw new Error(`Invalid network: ${network}`);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
private static getWBTCAddressForChain(chainId: ChainId): Address {
|
|
51
|
-
switch (chainId) {
|
|
52
|
-
case ChainId.Bitcoin:
|
|
53
|
-
return 'unknown';
|
|
54
|
-
case ChainId.Fractal:
|
|
55
|
-
return WBTC_ADDRESS_FRACTAL;
|
|
56
|
-
default:
|
|
57
|
-
throw new Error(`Invalid chainId: ${chainId}`);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
}
|
|
1
|
+
import { Network, networks } from 'bitcoinjs-lib';
|
|
2
|
+
import { ContractBaseMetadata } from '../ContractBaseMetadata.js';
|
|
3
|
+
import { Address } from '@btc-vision/bsi-binary';
|
|
4
|
+
import { WBTC_ADDRESS_FRACTAL, WBTC_ADDRESS_REGTEST, WBTC_ADDRESS_TESTNET } from '../tokens.js';
|
|
5
|
+
import { ChainId } from '../../network/ChainId.js';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* @description Wrapped Bitcoin (wBTC) contract metadata.
|
|
9
|
+
* */
|
|
10
|
+
export class wBTC extends ContractBaseMetadata {
|
|
11
|
+
/**
|
|
12
|
+
* @description Token Name
|
|
13
|
+
*/
|
|
14
|
+
public readonly tokenName: string = 'Wrapped Bitcoin';
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* @description Token Symbol
|
|
18
|
+
*/
|
|
19
|
+
public readonly tokenSymbol: string = 'wBTC';
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* @description Token Decimals, same as Bitcoin
|
|
23
|
+
*/
|
|
24
|
+
public readonly decimals: number = 8;
|
|
25
|
+
|
|
26
|
+
protected readonly address: Address;
|
|
27
|
+
|
|
28
|
+
constructor(
|
|
29
|
+
protected network: Network = networks.bitcoin,
|
|
30
|
+
chainId: ChainId = ChainId.Bitcoin,
|
|
31
|
+
) {
|
|
32
|
+
super(network);
|
|
33
|
+
|
|
34
|
+
this.address = wBTC.getAddress(network, chainId);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
public static getAddress(network: Network = networks.bitcoin, chainId?: ChainId): Address {
|
|
38
|
+
switch (network.bech32) {
|
|
39
|
+
case networks.bitcoin.bech32:
|
|
40
|
+
return this.getWBTCAddressForChain(chainId ?? ChainId.Bitcoin);
|
|
41
|
+
case networks.regtest.bech32:
|
|
42
|
+
return WBTC_ADDRESS_REGTEST;
|
|
43
|
+
case networks.testnet.bech32:
|
|
44
|
+
return WBTC_ADDRESS_TESTNET;
|
|
45
|
+
default:
|
|
46
|
+
throw new Error(`Invalid network: ${network}`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
private static getWBTCAddressForChain(chainId: ChainId): Address {
|
|
51
|
+
switch (chainId) {
|
|
52
|
+
case ChainId.Bitcoin:
|
|
53
|
+
return 'unknown';
|
|
54
|
+
case ChainId.Fractal:
|
|
55
|
+
return WBTC_ADDRESS_FRACTAL;
|
|
56
|
+
default:
|
|
57
|
+
throw new Error(`Invalid chainId: ${chainId}`);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|