@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,89 +1,89 @@
1
- import { crypto as bitCrypto, Network, networks, Payment, payments } from 'bitcoinjs-lib';
2
- import { toXOnly } from 'bitcoinjs-lib/src/psbt/bip371.js';
3
- import { Taptree } from 'bitcoinjs-lib/src/types.js';
4
- import { DeploymentGenerator } from '../generators/builders/DeploymentGenerator.js';
5
- import { TransactionBuilder } from '../transaction/builders/TransactionBuilder.js';
6
- import { AddressGenerator } from '../generators/AddressGenerator.js';
7
-
8
- export interface ContractAddressVerificationParams {
9
- readonly deployerPubKeyXOnly: Buffer;
10
- readonly contractSaltPubKey: Buffer;
11
- readonly originalSalt: Buffer;
12
- readonly bytecode: Buffer;
13
- readonly network?: Network;
14
- }
15
-
16
- export class TapscriptVerificator {
17
- private static readonly TAP_SCRIPT_VERSION: number = 192;
18
-
19
- public static getContractAddress(
20
- params: ContractAddressVerificationParams,
21
- ): string | undefined {
22
- const network = params.network || networks.bitcoin;
23
- const scriptBuilder: DeploymentGenerator = new DeploymentGenerator(
24
- params.deployerPubKeyXOnly,
25
- toXOnly(params.contractSaltPubKey),
26
- network,
27
- );
28
-
29
- const compiledTargetScript: Buffer = scriptBuilder.compile(
30
- params.bytecode,
31
- params.originalSalt,
32
- );
33
-
34
- const scriptTree: Taptree = [
35
- {
36
- output: compiledTargetScript,
37
- version: TapscriptVerificator.TAP_SCRIPT_VERSION,
38
- },
39
- {
40
- output: TransactionBuilder.LOCK_LEAF_SCRIPT,
41
- version: TapscriptVerificator.TAP_SCRIPT_VERSION,
42
- },
43
- ];
44
-
45
- return TapscriptVerificator.generateAddressFromScript(params, scriptTree);
46
- }
47
-
48
- public static getContractSeed(
49
- deployerPubKey: Buffer,
50
- bytecode: Buffer,
51
- saltHash: Buffer,
52
- ): Buffer {
53
- const sha256OfBytecode: Buffer = bitCrypto.hash256(bytecode);
54
- const buf: Buffer = Buffer.concat([deployerPubKey, saltHash, sha256OfBytecode]);
55
-
56
- return bitCrypto.hash256(buf);
57
- }
58
-
59
- public static generateContractVirtualAddress(
60
- deployerPubKey: Buffer,
61
- bytecode: Buffer,
62
- saltHash: Buffer,
63
- network: Network = networks.bitcoin,
64
- ): string {
65
- const virtualAddress: Buffer = TapscriptVerificator.getContractSeed(
66
- deployerPubKey,
67
- bytecode,
68
- saltHash,
69
- );
70
-
71
- return AddressGenerator.generatePKSH(virtualAddress, network);
72
- }
73
-
74
- public static generateAddressFromScript(
75
- params: ContractAddressVerificationParams,
76
- scriptTree: Taptree,
77
- ): string | undefined {
78
- const network = params.network || networks.bitcoin;
79
-
80
- const transactionData: Payment = {
81
- internalPubkey: params.deployerPubKeyXOnly,
82
- network: network,
83
- scriptTree: scriptTree,
84
- };
85
-
86
- const tx: Payment = payments.p2tr(transactionData);
87
- return tx.address;
88
- }
89
- }
1
+ import { crypto as bitCrypto, Network, networks, Payment, payments } from 'bitcoinjs-lib';
2
+ import { toXOnly } from 'bitcoinjs-lib/src/psbt/bip371.js';
3
+ import { Taptree } from 'bitcoinjs-lib/src/types.js';
4
+ import { DeploymentGenerator } from '../generators/builders/DeploymentGenerator.js';
5
+ import { TransactionBuilder } from '../transaction/builders/TransactionBuilder.js';
6
+ import { AddressGenerator } from '../generators/AddressGenerator.js';
7
+
8
+ export interface ContractAddressVerificationParams {
9
+ readonly deployerPubKeyXOnly: Buffer;
10
+ readonly contractSaltPubKey: Buffer;
11
+ readonly originalSalt: Buffer;
12
+ readonly bytecode: Buffer;
13
+ readonly network?: Network;
14
+ }
15
+
16
+ export class TapscriptVerificator {
17
+ private static readonly TAP_SCRIPT_VERSION: number = 192;
18
+
19
+ public static getContractAddress(
20
+ params: ContractAddressVerificationParams,
21
+ ): string | undefined {
22
+ const network = params.network || networks.bitcoin;
23
+ const scriptBuilder: DeploymentGenerator = new DeploymentGenerator(
24
+ params.deployerPubKeyXOnly,
25
+ toXOnly(params.contractSaltPubKey),
26
+ network,
27
+ );
28
+
29
+ const compiledTargetScript: Buffer = scriptBuilder.compile(
30
+ params.bytecode,
31
+ params.originalSalt,
32
+ );
33
+
34
+ const scriptTree: Taptree = [
35
+ {
36
+ output: compiledTargetScript,
37
+ version: TapscriptVerificator.TAP_SCRIPT_VERSION,
38
+ },
39
+ {
40
+ output: TransactionBuilder.LOCK_LEAF_SCRIPT,
41
+ version: TapscriptVerificator.TAP_SCRIPT_VERSION,
42
+ },
43
+ ];
44
+
45
+ return TapscriptVerificator.generateAddressFromScript(params, scriptTree);
46
+ }
47
+
48
+ public static getContractSeed(
49
+ deployerPubKey: Buffer,
50
+ bytecode: Buffer,
51
+ saltHash: Buffer,
52
+ ): Buffer {
53
+ const sha256OfBytecode: Buffer = bitCrypto.hash256(bytecode);
54
+ const buf: Buffer = Buffer.concat([deployerPubKey, saltHash, sha256OfBytecode]);
55
+
56
+ return bitCrypto.hash256(buf);
57
+ }
58
+
59
+ public static generateContractVirtualAddress(
60
+ deployerPubKey: Buffer,
61
+ bytecode: Buffer,
62
+ saltHash: Buffer,
63
+ network: Network = networks.bitcoin,
64
+ ): string {
65
+ const virtualAddress: Buffer = TapscriptVerificator.getContractSeed(
66
+ deployerPubKey,
67
+ bytecode,
68
+ saltHash,
69
+ );
70
+
71
+ return AddressGenerator.generatePKSH(virtualAddress, network);
72
+ }
73
+
74
+ public static generateAddressFromScript(
75
+ params: ContractAddressVerificationParams,
76
+ scriptTree: Taptree,
77
+ ): string | undefined {
78
+ const network = params.network || networks.bitcoin;
79
+
80
+ const transactionData: Payment = {
81
+ internalPubkey: params.deployerPubKeyXOnly,
82
+ network: network,
83
+ scriptTree: scriptTree,
84
+ };
85
+
86
+ const tx: Payment = payments.p2tr(transactionData);
87
+ return tx.address;
88
+ }
89
+ }
@@ -1,40 +1,40 @@
1
- import { VaultUTXOs } from '../transaction/processor/PsbtTransaction.js';
2
-
3
- export interface GenerationConstraints {
4
- /** Timestamp of the generation */
5
- readonly timestamp: number;
6
-
7
- /** Protocol version used for generation */
8
- readonly version: string;
9
-
10
- /** Minimum different trusted validators */
11
- readonly minimum: number;
12
-
13
- /** Minimum different trusted validator in a new generated transaction */
14
- readonly transactionMinimum: number;
15
- }
16
-
17
- export interface WrappedGenerationParameters {
18
- /** Public trusted keys */
19
- readonly keys: string[];
20
-
21
- /** Vault address (p2ms) */
22
- readonly vault: string;
23
-
24
- /** Public trusted entities */
25
- readonly entities: string[];
26
-
27
- /** OPNet Signature that verify the trusted keys and entities */
28
- readonly signature: string;
29
-
30
- /** Generation constraints */
31
- readonly constraints: GenerationConstraints;
32
- }
33
-
34
- export interface UnwrappedGenerationParameters {
35
- /** UTXOs to unwrap from */
36
- readonly vaultUTXOs: VaultUTXOs[];
37
-
38
- /** WBTC balance */
39
- readonly balance: string;
40
- }
1
+ import { VaultUTXOs } from '../transaction/processor/PsbtTransaction.js';
2
+
3
+ export interface GenerationConstraints {
4
+ /** Timestamp of the generation */
5
+ readonly timestamp: number;
6
+
7
+ /** Protocol version used for generation */
8
+ readonly version: string;
9
+
10
+ /** Minimum different trusted validators */
11
+ readonly minimum: number;
12
+
13
+ /** Minimum different trusted validator in a new generated transaction */
14
+ readonly transactionMinimum: number;
15
+ }
16
+
17
+ export interface WrappedGenerationParameters {
18
+ /** Public trusted keys */
19
+ readonly keys: string[];
20
+
21
+ /** Vault address (p2ms) */
22
+ readonly vault: string;
23
+
24
+ /** Public trusted entities */
25
+ readonly entities: string[];
26
+
27
+ /** OPNet Signature that verify the trusted keys and entities */
28
+ readonly signature: string;
29
+
30
+ /** Generation constraints */
31
+ readonly constraints: GenerationConstraints;
32
+ }
33
+
34
+ export interface UnwrappedGenerationParameters {
35
+ /** UTXOs to unwrap from */
36
+ readonly vaultUTXOs: VaultUTXOs[];
37
+
38
+ /** WBTC balance */
39
+ readonly balance: string;
40
+ }
@@ -1,13 +1,13 @@
1
- import { UnwrappedGenerationParameters } from './Generate.js';
2
- import { VaultUTXOs } from '../transaction/processor/PsbtTransaction.js';
3
-
4
- export class UnwrapGeneration implements Omit<UnwrappedGenerationParameters, 'balance'> {
5
- public readonly vaultUTXOs: VaultUTXOs[];
6
-
7
- public readonly balance: bigint;
8
-
9
- constructor(params: UnwrappedGenerationParameters) {
10
- this.vaultUTXOs = params.vaultUTXOs;
11
- this.balance = BigInt(params.balance);
12
- }
13
- }
1
+ import { UnwrappedGenerationParameters } from './Generate.js';
2
+ import { VaultUTXOs } from '../transaction/processor/PsbtTransaction.js';
3
+
4
+ export class UnwrapGeneration implements Omit<UnwrappedGenerationParameters, 'balance'> {
5
+ public readonly vaultUTXOs: VaultUTXOs[];
6
+
7
+ public readonly balance: bigint;
8
+
9
+ constructor(params: UnwrappedGenerationParameters) {
10
+ this.vaultUTXOs = params.vaultUTXOs;
11
+ this.balance = BigInt(params.balance);
12
+ }
13
+ }
@@ -1,33 +1,33 @@
1
- import { GenerationConstraints, WrappedGenerationParameters } from './Generate.js';
2
-
3
- export class WrappedGeneration implements WrappedGenerationParameters {
4
- /** Generation constraints */
5
- public readonly constraints: GenerationConstraints;
6
-
7
- /** Public trusted entities */
8
- public readonly entities: string[];
9
-
10
- /** Public trusted keys */
11
- public readonly keys: string[];
12
-
13
- /** OPNet Signature that verify the trusted keys and entities */
14
- public readonly signature: string;
15
-
16
- /** Vault address (p2ms) */
17
- public readonly vault: string;
18
-
19
- /**
20
- * Public keys of the trusted entities
21
- */
22
- public readonly pubKeys: Buffer[];
23
-
24
- constructor(params: WrappedGenerationParameters) {
25
- this.constraints = params.constraints;
26
- this.entities = params.entities;
27
- this.keys = params.keys;
28
- this.signature = params.signature;
29
- this.vault = params.vault;
30
-
31
- this.pubKeys = this.keys.map((key: string) => Buffer.from(key, 'base64'));
32
- }
33
- }
1
+ import { GenerationConstraints, WrappedGenerationParameters } from './Generate.js';
2
+
3
+ export class WrappedGeneration implements WrappedGenerationParameters {
4
+ /** Generation constraints */
5
+ public readonly constraints: GenerationConstraints;
6
+
7
+ /** Public trusted entities */
8
+ public readonly entities: string[];
9
+
10
+ /** Public trusted keys */
11
+ public readonly keys: string[];
12
+
13
+ /** OPNet Signature that verify the trusted keys and entities */
14
+ public readonly signature: string;
15
+
16
+ /** Vault address (p2ms) */
17
+ public readonly vault: string;
18
+
19
+ /**
20
+ * Public keys of the trusted entities
21
+ */
22
+ public readonly pubKeys: Buffer[];
23
+
24
+ constructor(params: WrappedGenerationParameters) {
25
+ this.constraints = params.constraints;
26
+ this.entities = params.entities;
27
+ this.keys = params.keys;
28
+ this.signature = params.signature;
29
+ this.vault = params.vault;
30
+
31
+ this.pubKeys = this.keys.map((key: string) => Buffer.from(key, 'base64'));
32
+ }
33
+ }
package/webpack.config.js CHANGED
@@ -1,78 +1,78 @@
1
- import webpack from 'webpack';
2
-
3
- export default {
4
- mode: 'production',
5
- entry: {
6
- index: {
7
- import: './src/index.ts',
8
- },
9
- },
10
- watch: false,
11
- output: {
12
- filename: 'index.js',
13
- path: import.meta.dirname + '/browser',
14
- libraryTarget: 'module',
15
- },
16
- node: {
17
- __dirname: false,
18
- },
19
- experiments: {
20
- outputModule: true,
21
- asyncWebAssembly: false,
22
- syncWebAssembly: true,
23
- },
24
- resolve: {
25
- extensionAlias: {
26
- '.js': ['.js', '.ts'],
27
- },
28
- modules: ['.', 'node_modules'],
29
- extensions: ['.*', '.js', '.jsx', '.tsx', '.ts', '.wasm'],
30
- fallback: {
31
- buffer: import.meta.resolve('buffer/'),
32
-
33
- assert: import.meta.resolve('assert/'),
34
- crypto: import.meta.resolve('./src/crypto/crypto-browser.js'),
35
- http: import.meta.resolve('stream-http/'),
36
- https: import.meta.resolve('https-browserify/'),
37
- os: import.meta.resolve('os-browserify/browser/'),
38
- stream: import.meta.resolve('stream-browserify'),
39
- process: import.meta.resolve('process/browser'),
40
- zlib: import.meta.resolve('browserify-zlib'),
41
- },
42
- },
43
- cache: false,
44
- module: {
45
- rules: [
46
- {
47
- test: /\.(js|jsx|tsx|ts)$/,
48
- exclude: /node_modules/,
49
- resolve: {
50
- fullySpecified: false,
51
- },
52
- use: [
53
- {
54
- loader: 'babel-loader',
55
- },
56
- {
57
- loader: 'ts-loader',
58
- options: {
59
- configFile: 'tsconfig.webpack.json',
60
- },
61
- },
62
- ],
63
- },
64
- ],
65
- },
66
- optimization: {
67
- usedExports: true,
68
- },
69
- plugins: [
70
- new webpack.ProvidePlugin({
71
- Buffer: ['buffer', 'Buffer'],
72
- process: 'process/browser',
73
- stream: 'stream-browserify',
74
- zlib: 'browserify-zlib',
75
- bitcoin: 'bitcoinjs-lib',
76
- }),
77
- ],
78
- };
1
+ import webpack from 'webpack';
2
+
3
+ export default {
4
+ mode: 'production',
5
+ entry: {
6
+ index: {
7
+ import: './src/index.ts',
8
+ },
9
+ },
10
+ watch: false,
11
+ output: {
12
+ filename: 'index.js',
13
+ path: import.meta.dirname + '/browser',
14
+ libraryTarget: 'module',
15
+ },
16
+ node: {
17
+ __dirname: false,
18
+ },
19
+ experiments: {
20
+ outputModule: true,
21
+ asyncWebAssembly: false,
22
+ syncWebAssembly: true,
23
+ },
24
+ resolve: {
25
+ extensionAlias: {
26
+ '.js': ['.js', '.ts'],
27
+ },
28
+ modules: ['.', 'node_modules'],
29
+ extensions: ['.*', '.js', '.jsx', '.tsx', '.ts', '.wasm'],
30
+ fallback: {
31
+ buffer: import.meta.resolve('buffer/'),
32
+
33
+ assert: import.meta.resolve('assert/'),
34
+ crypto: import.meta.resolve('./src/crypto/crypto-browser.js'),
35
+ http: import.meta.resolve('stream-http/'),
36
+ https: import.meta.resolve('https-browserify/'),
37
+ os: import.meta.resolve('os-browserify/browser/'),
38
+ stream: import.meta.resolve('stream-browserify'),
39
+ process: import.meta.resolve('process/browser'),
40
+ zlib: import.meta.resolve('browserify-zlib'),
41
+ },
42
+ },
43
+ cache: false,
44
+ module: {
45
+ rules: [
46
+ {
47
+ test: /\.(js|jsx|tsx|ts)$/,
48
+ exclude: /node_modules/,
49
+ resolve: {
50
+ fullySpecified: false,
51
+ },
52
+ use: [
53
+ {
54
+ loader: 'babel-loader',
55
+ },
56
+ {
57
+ loader: 'ts-loader',
58
+ options: {
59
+ configFile: 'tsconfig.webpack.json',
60
+ },
61
+ },
62
+ ],
63
+ },
64
+ ],
65
+ },
66
+ optimization: {
67
+ usedExports: true,
68
+ },
69
+ plugins: [
70
+ new webpack.ProvidePlugin({
71
+ Buffer: ['buffer', 'Buffer'],
72
+ process: 'process/browser',
73
+ stream: 'stream-browserify',
74
+ zlib: 'browserify-zlib',
75
+ bitcoin: 'bitcoinjs-lib',
76
+ }),
77
+ ],
78
+ };
File without changes