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