@btc-vision/transaction 1.0.59 → 1.0.61
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/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/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/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/TransactionFactory.js +3 -2
- 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/TransactionBuilder.js +1 -1
- 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 +1 -1
- 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 +97 -97
- package/src/keypair/interfaces/IWallet.ts +19 -19
- package/src/metadata/ContractBaseMetadata.ts +23 -23
- package/src/network/NetworkInformation.ts +7 -7
- package/src/opnet.ts +84 -84
- package/src/transaction/TransactionFactory.ts +3 -2
- 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 +80 -80
- 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/interfaces/Tap.ts +26 -26
- package/src/transaction/psbt/PSBTTypes.ts +3 -3
- package/src/transaction/shared/TweakedTransaction.ts +537 -537
- 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
|
@@ -1,66 +1,66 @@
|
|
|
1
|
-
import { crypto, Network, networks, opcodes, script } from 'bitcoinjs-lib';
|
|
2
|
-
import { Generator } from '../Generator.js';
|
|
3
|
-
|
|
4
|
-
export class DeploymentGenerator extends Generator {
|
|
5
|
-
constructor(
|
|
6
|
-
senderPubKey: Buffer,
|
|
7
|
-
contractSaltPubKey: Buffer,
|
|
8
|
-
network: Network = networks.bitcoin,
|
|
9
|
-
) {
|
|
10
|
-
super(senderPubKey, contractSaltPubKey, network);
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Compile a bitcoin script representing a contract deployment
|
|
15
|
-
* @param {Buffer} contractBytecode - The contract bytecode
|
|
16
|
-
* @param {Buffer} contractSalt - The contract salt
|
|
17
|
-
* @returns {Buffer} - The compiled script
|
|
18
|
-
*/
|
|
19
|
-
public compile(contractBytecode: Buffer, contractSalt: Buffer): Buffer {
|
|
20
|
-
const asm = this.getAsm(contractBytecode, contractSalt);
|
|
21
|
-
const compiled = script.compile(asm);
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Verify that the script can be decompiled
|
|
25
|
-
*/
|
|
26
|
-
const decompiled = script.decompile(compiled);
|
|
27
|
-
if (!decompiled) {
|
|
28
|
-
throw new Error('Failed to decompile script??');
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
return compiled;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
private getAsm(contractBytecode: Buffer, contractSalt: Buffer): (number | Buffer)[] {
|
|
35
|
-
const dataChunks = this.splitBufferIntoChunks(contractBytecode);
|
|
36
|
-
|
|
37
|
-
return [
|
|
38
|
-
this.senderPubKey,
|
|
39
|
-
opcodes.OP_CHECKSIGVERIFY,
|
|
40
|
-
|
|
41
|
-
this.contractSaltPubKey,
|
|
42
|
-
opcodes.OP_CHECKSIGVERIFY,
|
|
43
|
-
|
|
44
|
-
opcodes.OP_HASH160,
|
|
45
|
-
crypto.hash160(this.senderPubKey),
|
|
46
|
-
opcodes.OP_EQUALVERIFY,
|
|
47
|
-
|
|
48
|
-
opcodes.OP_HASH256,
|
|
49
|
-
crypto.hash256(contractSalt),
|
|
50
|
-
opcodes.OP_EQUALVERIFY,
|
|
51
|
-
|
|
52
|
-
opcodes.OP_DEPTH,
|
|
53
|
-
opcodes.OP_1,
|
|
54
|
-
opcodes.OP_NUMEQUAL,
|
|
55
|
-
opcodes.OP_IF,
|
|
56
|
-
|
|
57
|
-
Generator.MAGIC,
|
|
58
|
-
opcodes.OP_1NEGATE,
|
|
59
|
-
...dataChunks,
|
|
60
|
-
|
|
61
|
-
opcodes.OP_ELSE,
|
|
62
|
-
opcodes.OP_1,
|
|
63
|
-
opcodes.OP_ENDIF,
|
|
64
|
-
].flat();
|
|
65
|
-
}
|
|
66
|
-
}
|
|
1
|
+
import { crypto, Network, networks, opcodes, script } from 'bitcoinjs-lib';
|
|
2
|
+
import { Generator } from '../Generator.js';
|
|
3
|
+
|
|
4
|
+
export class DeploymentGenerator extends Generator {
|
|
5
|
+
constructor(
|
|
6
|
+
senderPubKey: Buffer,
|
|
7
|
+
contractSaltPubKey: Buffer,
|
|
8
|
+
network: Network = networks.bitcoin,
|
|
9
|
+
) {
|
|
10
|
+
super(senderPubKey, contractSaltPubKey, network);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Compile a bitcoin script representing a contract deployment
|
|
15
|
+
* @param {Buffer} contractBytecode - The contract bytecode
|
|
16
|
+
* @param {Buffer} contractSalt - The contract salt
|
|
17
|
+
* @returns {Buffer} - The compiled script
|
|
18
|
+
*/
|
|
19
|
+
public compile(contractBytecode: Buffer, contractSalt: Buffer): Buffer {
|
|
20
|
+
const asm = this.getAsm(contractBytecode, contractSalt);
|
|
21
|
+
const compiled = script.compile(asm);
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Verify that the script can be decompiled
|
|
25
|
+
*/
|
|
26
|
+
const decompiled = script.decompile(compiled);
|
|
27
|
+
if (!decompiled) {
|
|
28
|
+
throw new Error('Failed to decompile script??');
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
return compiled;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
private getAsm(contractBytecode: Buffer, contractSalt: Buffer): (number | Buffer)[] {
|
|
35
|
+
const dataChunks = this.splitBufferIntoChunks(contractBytecode);
|
|
36
|
+
|
|
37
|
+
return [
|
|
38
|
+
this.senderPubKey,
|
|
39
|
+
opcodes.OP_CHECKSIGVERIFY,
|
|
40
|
+
|
|
41
|
+
this.contractSaltPubKey,
|
|
42
|
+
opcodes.OP_CHECKSIGVERIFY,
|
|
43
|
+
|
|
44
|
+
opcodes.OP_HASH160,
|
|
45
|
+
crypto.hash160(this.senderPubKey),
|
|
46
|
+
opcodes.OP_EQUALVERIFY,
|
|
47
|
+
|
|
48
|
+
opcodes.OP_HASH256,
|
|
49
|
+
crypto.hash256(contractSalt),
|
|
50
|
+
opcodes.OP_EQUALVERIFY,
|
|
51
|
+
|
|
52
|
+
opcodes.OP_DEPTH,
|
|
53
|
+
opcodes.OP_1,
|
|
54
|
+
opcodes.OP_NUMEQUAL,
|
|
55
|
+
opcodes.OP_IF,
|
|
56
|
+
|
|
57
|
+
Generator.MAGIC,
|
|
58
|
+
opcodes.OP_1NEGATE,
|
|
59
|
+
...dataChunks,
|
|
60
|
+
|
|
61
|
+
opcodes.OP_ELSE,
|
|
62
|
+
opcodes.OP_1,
|
|
63
|
+
opcodes.OP_ENDIF,
|
|
64
|
+
].flat();
|
|
65
|
+
}
|
|
66
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as opnet from './opnet.js';
|
|
2
|
-
|
|
3
|
-
export { opnet };
|
|
4
|
-
export * from './opnet.js';
|
|
1
|
+
import * as opnet from './opnet.js';
|
|
2
|
+
|
|
3
|
+
export { opnet };
|
|
4
|
+
export * from './opnet.js';
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
import { address, initEccLib, networks } from 'bitcoinjs-lib';
|
|
2
|
-
import * as ecc from '@bitcoinerlab/secp256k1';
|
|
3
|
-
import { Address } from '@btc-vision/bsi-binary';
|
|
4
|
-
|
|
5
|
-
initEccLib(ecc);
|
|
6
|
-
|
|
7
|
-
export class AddressVerificator {
|
|
8
|
-
public static isValidP2TRAddress(inAddress: Address, network: networks.Network): boolean {
|
|
9
|
-
if (!inAddress || inAddress.length < 50) return false;
|
|
10
|
-
|
|
11
|
-
let isValidTapRootAddress: boolean = false;
|
|
12
|
-
try {
|
|
13
|
-
address.toOutputScript(inAddress, network);
|
|
14
|
-
|
|
15
|
-
const decodedAddress = address.fromBech32(inAddress);
|
|
16
|
-
isValidTapRootAddress = decodedAddress.version === 1;
|
|
17
|
-
} catch (e) {}
|
|
18
|
-
|
|
19
|
-
return isValidTapRootAddress;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
public static validatePKHAddress(inAddress: string, network: networks.Network): boolean {
|
|
23
|
-
if (!inAddress || inAddress.length < 20 || inAddress.length > 50) return false;
|
|
24
|
-
|
|
25
|
-
let isValidSegWitAddress: boolean = false;
|
|
26
|
-
try {
|
|
27
|
-
// Decode the address using Bech32
|
|
28
|
-
const decodedAddress = address.fromBech32(inAddress);
|
|
29
|
-
|
|
30
|
-
// Ensure the decoded address matches the provided network
|
|
31
|
-
address.toOutputScript(inAddress, network);
|
|
32
|
-
|
|
33
|
-
// Check if the address is P2WPKH (version 0)
|
|
34
|
-
isValidSegWitAddress =
|
|
35
|
-
decodedAddress.version === 0 && decodedAddress.data.length === 20;
|
|
36
|
-
} catch (e) {}
|
|
37
|
-
|
|
38
|
-
return isValidSegWitAddress;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
1
|
+
import { address, initEccLib, networks } from 'bitcoinjs-lib';
|
|
2
|
+
import * as ecc from '@bitcoinerlab/secp256k1';
|
|
3
|
+
import { Address } from '@btc-vision/bsi-binary';
|
|
4
|
+
|
|
5
|
+
initEccLib(ecc);
|
|
6
|
+
|
|
7
|
+
export class AddressVerificator {
|
|
8
|
+
public static isValidP2TRAddress(inAddress: Address, network: networks.Network): boolean {
|
|
9
|
+
if (!inAddress || inAddress.length < 50) return false;
|
|
10
|
+
|
|
11
|
+
let isValidTapRootAddress: boolean = false;
|
|
12
|
+
try {
|
|
13
|
+
address.toOutputScript(inAddress, network);
|
|
14
|
+
|
|
15
|
+
const decodedAddress = address.fromBech32(inAddress);
|
|
16
|
+
isValidTapRootAddress = decodedAddress.version === 1;
|
|
17
|
+
} catch (e) {}
|
|
18
|
+
|
|
19
|
+
return isValidTapRootAddress;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
public static validatePKHAddress(inAddress: string, network: networks.Network): boolean {
|
|
23
|
+
if (!inAddress || inAddress.length < 20 || inAddress.length > 50) return false;
|
|
24
|
+
|
|
25
|
+
let isValidSegWitAddress: boolean = false;
|
|
26
|
+
try {
|
|
27
|
+
// Decode the address using Bech32
|
|
28
|
+
const decodedAddress = address.fromBech32(inAddress);
|
|
29
|
+
|
|
30
|
+
// Ensure the decoded address matches the provided network
|
|
31
|
+
address.toOutputScript(inAddress, network);
|
|
32
|
+
|
|
33
|
+
// Check if the address is P2WPKH (version 0)
|
|
34
|
+
isValidSegWitAddress =
|
|
35
|
+
decodedAddress.version === 0 && decodedAddress.data.length === 20;
|
|
36
|
+
} catch (e) {}
|
|
37
|
+
|
|
38
|
+
return isValidSegWitAddress;
|
|
39
|
+
}
|
|
40
|
+
}
|