@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.
Files changed (273) hide show
  1. package/.gitattributes +2 -2
  2. package/browser/_version.d.ts +1 -1
  3. package/browser/index.js +1 -1
  4. package/browser/transaction/builders/TapUnwarpTransaction.d.ts +40 -40
  5. package/browser/transaction/builders/UnwarpTransaction.d.ts +34 -34
  6. package/browser/utxo/UTXOManager.d.ts +7 -7
  7. package/build/Utils.d.ts +0 -0
  8. package/build/Utils.js +1 -0
  9. package/build/_version.d.ts +1 -1
  10. package/build/_version.js +1 -1
  11. package/build/consensus/metadata/RoswsellConsensus.d.ts +2 -0
  12. package/build/consensus/metadata/RoswsellConsensus.js +4 -0
  13. package/build/contracts/ContractMetadataManager.d.ts +0 -0
  14. package/build/contracts/ContractMetadataManager.js +1 -0
  15. package/build/generators/OPNetAddressGenerator.d.ts +0 -0
  16. package/build/generators/OPNetAddressGenerator.js +1 -0
  17. package/build/generators/builders/UnwrapGenerator.d.ts +8 -0
  18. package/build/generators/builders/UnwrapGenerator.js +79 -0
  19. package/build/keypair/interfaces/GeneratedWallet.d.ts +5 -0
  20. package/build/keypair/interfaces/GeneratedWallet.js +1 -0
  21. package/build/metadata/CommonContracts.d.ts +6 -0
  22. package/build/metadata/CommonContracts.js +5 -0
  23. package/build/metadata/ContractMetadataManager.d.ts +1 -0
  24. package/build/metadata/ContractMetadataManager.js +9 -0
  25. package/build/metadata/contracts/ContractBase.d.ts +9 -0
  26. package/build/metadata/contracts/ContractBase.js +13 -0
  27. package/build/metadata/contracts/ContractBaseMetadata.d.ts +9 -0
  28. package/build/metadata/contracts/ContractBaseMetadata.js +13 -0
  29. package/build/metadata/contracts/ContractMetadataManager.d.ts +0 -0
  30. package/build/metadata/contracts/ContractMetadataManager.js +1 -0
  31. package/build/network/NetworkConverter.d.ts +0 -0
  32. package/build/network/NetworkConverter.js +14 -0
  33. package/build/scripts/Regtest.d.ts +2 -0
  34. package/build/scripts/Regtest.js +15 -0
  35. package/build/scripts/test.d.ts +1 -0
  36. package/build/scripts/test.js +74 -0
  37. package/build/signer/Regtest.d.ts +2 -0
  38. package/build/signer/Regtest.js +15 -0
  39. package/build/tests/Regtest.d.ts +3 -0
  40. package/build/tests/Regtest.js +29 -0
  41. package/build/tests/adaptPSBT.d.ts +1 -0
  42. package/build/tests/adaptPSBT.js +44 -0
  43. package/build/tests/btc/send.d.ts +1 -0
  44. package/build/tests/btc/send.js +35 -0
  45. package/build/tests/btc/transfer.d.ts +1 -0
  46. package/build/tests/btc/transfer.js +35 -0
  47. package/build/tests/createPairReg.d.ts +1 -0
  48. package/build/tests/createPairReg.js +73 -0
  49. package/build/tests/deploy/deployMoto.d.ts +4 -0
  50. package/build/tests/deploy/deployMoto.js +89 -0
  51. package/build/tests/deploy/deployPool.d.ts +1 -0
  52. package/build/tests/deploy/deployPool.js +5 -0
  53. package/build/tests/deploy/deployStep1.d.ts +1 -0
  54. package/build/tests/deploy/deployStep1.js +5 -0
  55. package/build/tests/deploy/deployStep2.d.ts +1 -0
  56. package/build/tests/deploy/deployStep2.js +5 -0
  57. package/build/tests/deploy/deployStep3.d.ts +1 -0
  58. package/build/tests/deploy/deployStep3.js +5 -0
  59. package/build/tests/deploy.d.ts +1 -0
  60. package/build/tests/deploy.js +41 -0
  61. package/build/tests/deployMotoRegStep1.d.ts +1 -0
  62. package/build/tests/deployMotoRegStep1.js +85 -0
  63. package/build/tests/deployReg.d.ts +1 -0
  64. package/build/tests/deployReg.js +85 -0
  65. package/build/tests/factory/createPairReg.d.ts +1 -0
  66. package/build/tests/factory/createPairReg.js +13 -0
  67. package/build/tests/gen.d.ts +1 -0
  68. package/build/tests/gen.js +19 -0
  69. package/build/tests/interaction.d.ts +5 -0
  70. package/build/tests/interaction.js +62 -0
  71. package/build/tests/massWrapReg.d.ts +1 -0
  72. package/build/tests/massWrapReg.js +105 -0
  73. package/build/tests/mineReg.d.ts +1 -0
  74. package/build/tests/mineReg.js +19 -0
  75. package/build/tests/moto/airdropToken.d.ts +1 -0
  76. package/build/tests/moto/airdropToken.js +21 -0
  77. package/build/tests/moto/airdropTokens.d.ts +1 -0
  78. package/build/tests/moto/airdropTokens.js +60 -0
  79. package/build/tests/moto/allowance.d.ts +1 -0
  80. package/build/tests/moto/allowance.js +6 -0
  81. package/build/tests/moto/approve.d.ts +1 -0
  82. package/build/tests/moto/approve.js +10 -0
  83. package/build/tests/moto/approveWBTC.d.ts +1 -0
  84. package/build/tests/moto/approveWBTC.js +12 -0
  85. package/build/tests/moto/balanceOf.d.ts +1 -0
  86. package/build/tests/moto/balanceOf.js +12 -0
  87. package/build/tests/moto/transfer.d.ts +1 -0
  88. package/build/tests/moto/transfer.js +16 -0
  89. package/build/tests/motoswap/airdropToken.d.ts +11 -0
  90. package/build/tests/motoswap/airdropToken.js +36 -0
  91. package/build/tests/motoswap/deployMoto.d.ts +4 -0
  92. package/build/tests/motoswap/deployMoto.js +89 -0
  93. package/build/tests/motoswap/deployMotoRegStep1.d.ts +1 -0
  94. package/build/tests/motoswap/deployMotoRegStep1.js +91 -0
  95. package/build/tests/motoswap/deployMotoRegStep2.d.ts +1 -0
  96. package/build/tests/motoswap/deployMotoRegStep2.js +91 -0
  97. package/build/tests/motoswap/deployPool.d.ts +1 -0
  98. package/build/tests/motoswap/deployPool.js +5 -0
  99. package/build/tests/motoswap/deployStep1.d.ts +1 -0
  100. package/build/tests/motoswap/deployStep1.js +5 -0
  101. package/build/tests/motoswap/deployStep2.d.ts +1 -0
  102. package/build/tests/motoswap/deployStep2.js +5 -0
  103. package/build/tests/motoswap/deployStep3.d.ts +1 -0
  104. package/build/tests/motoswap/deployStep3.js +5 -0
  105. package/build/tests/motoswap/interaction.d.ts +3 -0
  106. package/build/tests/motoswap/interaction.js +63 -0
  107. package/build/tests/motoswap/routerAddLiquidity.d.ts +11 -0
  108. package/build/tests/motoswap/routerAddLiquidity.js +35 -0
  109. package/build/tests/motoswap-router/addLiquidity.d.ts +11 -0
  110. package/build/tests/motoswap-router/addLiquidity.js +36 -0
  111. package/build/tests/motoswap-router/deployMoto.d.ts +4 -0
  112. package/build/tests/motoswap-router/deployMoto.js +89 -0
  113. package/build/tests/motoswap-router/deployPool.d.ts +1 -0
  114. package/build/tests/motoswap-router/deployPool.js +5 -0
  115. package/build/tests/motoswap-router/deployStep1.d.ts +1 -0
  116. package/build/tests/motoswap-router/deployStep1.js +5 -0
  117. package/build/tests/motoswap-router/deployStep2.d.ts +1 -0
  118. package/build/tests/motoswap-router/deployStep2.js +5 -0
  119. package/build/tests/motoswap-router/deployStep3.d.ts +1 -0
  120. package/build/tests/motoswap-router/deployStep3.js +5 -0
  121. package/build/tests/motoswap-router/getAmountsOut.d.ts +5 -0
  122. package/build/tests/motoswap-router/getAmountsOut.js +34 -0
  123. package/build/tests/motoswap-router/routerAddLiquidity.d.ts +11 -0
  124. package/build/tests/motoswap-router/routerAddLiquidity.js +35 -0
  125. package/build/tests/motoswap-router/swap.d.ts +8 -0
  126. package/build/tests/motoswap-router/swap.js +24 -0
  127. package/build/tests/multisign.d.ts +1 -0
  128. package/build/tests/multisign.js +47 -0
  129. package/build/tests/multisign2.d.ts +1 -0
  130. package/build/tests/multisign2.js +27 -0
  131. package/build/tests/pool/DecodePoolAddress.d.ts +6 -0
  132. package/build/tests/pool/DecodePoolAddress.js +12 -0
  133. package/build/tests/pool/decodeReserves.d.ts +5 -0
  134. package/build/tests/pool/decodeReserves.js +13 -0
  135. package/build/tests/pool/reserves.d.ts +1 -0
  136. package/build/tests/pool/reserves.js +18 -0
  137. package/build/tests/shared/Utils.d.ts +2 -0
  138. package/build/tests/shared/Utils.js +14 -0
  139. package/build/tests/shared/interaction.d.ts +7 -0
  140. package/build/tests/shared/interaction.js +85 -0
  141. package/build/tests/shared/tokens.d.ts +6 -0
  142. package/build/tests/shared/tokens.js +5 -0
  143. package/build/tests/stakeReg.d.ts +1 -0
  144. package/build/tests/stakeReg.js +73 -0
  145. package/build/tests/stakedReg.d.ts +1 -0
  146. package/build/tests/stakedReg.js +28 -0
  147. package/build/tests/test.d.ts +1 -0
  148. package/build/tests/test.js +51 -0
  149. package/build/tests/test2.d.ts +1 -0
  150. package/build/tests/test2.js +73 -0
  151. package/build/tests/testReg.d.ts +1 -0
  152. package/build/tests/testReg.js +91 -0
  153. package/build/tests/tokens.d.ts +6 -0
  154. package/build/tests/tokens.js +5 -0
  155. package/build/tests/totalRewardReg.d.ts +1 -0
  156. package/build/tests/totalRewardReg.js +28 -0
  157. package/build/tests/transfer.d.ts +1 -0
  158. package/build/tests/transfer.js +74 -0
  159. package/build/tests/transferReg.d.ts +1 -0
  160. package/build/tests/transferReg.js +74 -0
  161. package/build/tests/unStakeReg.d.ts +1 -0
  162. package/build/tests/unStakeReg.js +72 -0
  163. package/build/tests/unwrapReg.d.ts +1 -0
  164. package/build/tests/unwrapReg.js +61 -0
  165. package/build/tests/unwrapReg2.d.ts +1 -0
  166. package/build/tests/unwrapReg2.js +56 -0
  167. package/build/tests/unwrapRegSegwit.d.ts +1 -0
  168. package/build/tests/unwrapRegSegwit.js +83 -0
  169. package/build/tests/wbtc/approve.d.ts +1 -0
  170. package/build/tests/wbtc/approve.js +6 -0
  171. package/build/tests/wbtc/approveWBTC.d.ts +1 -0
  172. package/build/tests/wbtc/approveWBTC.js +12 -0
  173. package/build/tests/wbtc/massWrapReg.d.ts +1 -0
  174. package/build/tests/wbtc/massWrapReg.js +105 -0
  175. package/build/tests/wbtc/transfer.d.ts +1 -0
  176. package/build/tests/wbtc/transfer.js +16 -0
  177. package/build/tests/wbtc/transferReg.d.ts +1 -0
  178. package/build/tests/wbtc/transferReg.js +16 -0
  179. package/build/tests/wbtc/unStakeReg.d.ts +1 -0
  180. package/build/tests/wbtc/unStakeReg.js +72 -0
  181. package/build/tests/wbtc/unwrapReg.d.ts +1 -0
  182. package/build/tests/wbtc/unwrapReg.js +60 -0
  183. package/build/tests/wbtc/unwrapRegSegwit.d.ts +1 -0
  184. package/build/tests/wbtc/unwrapRegSegwit.js +83 -0
  185. package/build/tests/wbtc/withdrawalRequestReg.d.ts +1 -0
  186. package/build/tests/wbtc/withdrawalRequestReg.js +71 -0
  187. package/build/tests/wbtc/wrapReg.d.ts +1 -0
  188. package/build/tests/wbtc/wrapReg.js +65 -0
  189. package/build/tests/wbtc/wrapTest.d.ts +1 -0
  190. package/build/tests/wbtc/wrapTest.js +66 -0
  191. package/build/tests/withdrawalRequestReg.d.ts +1 -0
  192. package/build/tests/withdrawalRequestReg.js +71 -0
  193. package/build/tests/wrap.d.ts +1 -0
  194. package/build/tests/wrap.js +65 -0
  195. package/build/tests/wrapReg.d.ts +1 -0
  196. package/build/tests/wrapReg.js +68 -0
  197. package/build/tests/wrapTest.d.ts +1 -0
  198. package/build/tests/wrapTest.js +66 -0
  199. package/build/tests/wrapTestg.d.ts +1 -0
  200. package/build/tests/wrapTestg.js +66 -0
  201. package/build/tests/writers/allowance.d.ts +3 -0
  202. package/build/tests/writers/allowance.js +10 -0
  203. package/build/tests/writers/approve.d.ts +4 -0
  204. package/build/tests/writers/approve.js +11 -0
  205. package/build/transaction/TransactionBuilder.d.ts +60 -0
  206. package/build/transaction/TransactionBuilder.js +244 -0
  207. package/build/transaction/TransactionFactory.js +3 -2
  208. package/build/transaction/browser/BrowserSigner.d.ts +11 -0
  209. package/build/transaction/browser/BrowserSigner.js +10 -0
  210. package/build/transaction/browser/extensions/Unisat.d.ts +54 -0
  211. package/build/transaction/browser/extensions/Unisat.js +11 -0
  212. package/build/transaction/builders/GenericTransaction.d.ts +11 -0
  213. package/build/transaction/builders/GenericTransaction.js +23 -0
  214. package/build/transaction/builders/TapUnwarpTransaction.d.ts +37 -0
  215. package/build/transaction/builders/TapUnwarpTransaction.js +201 -0
  216. package/build/transaction/builders/TransactionBuilder.js +1 -1
  217. package/build/transaction/builders/UnwarpSegwitTransaction.d.ts +34 -0
  218. package/build/transaction/builders/UnwarpSegwitTransaction.js +184 -0
  219. package/build/transaction/builders/UnwarpTransaction.d.ts +35 -0
  220. package/build/transaction/builders/UnwarpTransaction.js +199 -0
  221. package/build/transaction/interfaces/ITransactions.d.ts +32 -0
  222. package/build/transaction/interfaces/ITransactions.js +1 -0
  223. package/build/utxo/IUTXO.d.ts +0 -0
  224. package/build/utxo/IUTXO.js +1 -0
  225. package/build/utxo/OPNetUtils.d.ts +7 -0
  226. package/build/utxo/OPNetUtils.js +47 -0
  227. package/build/utxo/UTXOManager.d.ts +7 -0
  228. package/build/utxo/UTXOManager.js +47 -0
  229. package/build/wbtc/BroadcastResponse.d.ts +0 -0
  230. package/build/wbtc/BroadcastResponse.js +1 -0
  231. package/gulpfile.js +152 -152
  232. package/package.json +1 -1
  233. package/src/_version.ts +1 -1
  234. package/src/consensus/Consensus.ts +36 -36
  235. package/src/consensus/ConsensusConfig.ts +39 -39
  236. package/src/crypto/crypto-browser.js +75 -75
  237. package/src/generators/AddressGenerator.ts +24 -24
  238. package/src/generators/Features.ts +5 -5
  239. package/src/generators/Generator.ts +75 -75
  240. package/src/generators/builders/CalldataGenerator.ts +148 -148
  241. package/src/generators/builders/DeploymentGenerator.ts +66 -66
  242. package/src/index.ts +4 -4
  243. package/src/keypair/AddressVerificator.ts +40 -40
  244. package/src/keypair/EcKeyPair.ts +282 -282
  245. package/src/keypair/Wallet.ts +97 -97
  246. package/src/keypair/interfaces/IWallet.ts +19 -19
  247. package/src/metadata/ContractBaseMetadata.ts +23 -23
  248. package/src/network/NetworkInformation.ts +7 -7
  249. package/src/opnet.ts +84 -84
  250. package/src/transaction/TransactionFactory.ts +3 -2
  251. package/src/transaction/browser/BrowserSignerBase.ts +37 -37
  252. package/src/transaction/browser/Web3Provider.ts +46 -46
  253. package/src/transaction/browser/extensions/UnisatSigner.ts +218 -218
  254. package/src/transaction/browser/types/Unisat.ts +80 -80
  255. package/src/transaction/builders/FundingTransaction.ts +40 -40
  256. package/src/transaction/builders/InteractionTransaction.ts +38 -38
  257. package/src/transaction/builders/SharedInteractionTransaction.ts +368 -368
  258. package/src/transaction/builders/TransactionBuilder.ts +665 -665
  259. package/src/transaction/interfaces/Tap.ts +26 -26
  260. package/src/transaction/psbt/PSBTTypes.ts +3 -3
  261. package/src/transaction/shared/TweakedTransaction.ts +537 -537
  262. package/src/utxo/OPNetLimitedProvider.ts +244 -244
  263. package/src/utxo/interfaces/BroadcastResponse.ts +10 -10
  264. package/src/utxo/interfaces/IUTXO.ts +29 -29
  265. package/src/verification/TapscriptVerificator.ts +89 -89
  266. package/src/wbtc/Generate.ts +40 -40
  267. package/src/wbtc/UnwrapGeneration.ts +13 -13
  268. package/src/wbtc/WrappedGenerationParameters.ts +33 -33
  269. package/webpack.config.js +78 -78
  270. /package/build/generators/builders/{MultiSignGenerator.d.ts → MultisignGenerator.d.ts} +0 -0
  271. /package/build/generators/builders/{MultiSignGenerator.js → MultisignGenerator.js} +0 -0
  272. /package/build/generators/{Features.d.ts → features.d.ts} +0 -0
  273. /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
+ }