@btc-vision/transaction 1.8.0-beta.1 → 1.8.0-beta.4

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 (765) hide show
  1. package/browser/_version.d.ts +1 -0
  2. package/browser/_version.d.ts.map +1 -0
  3. package/browser/abi/ABICoder.d.ts +1 -1
  4. package/browser/abi/ABICoder.d.ts.map +1 -0
  5. package/browser/branded/Branded.d.ts +4 -0
  6. package/browser/branded/Branded.d.ts.map +1 -0
  7. package/browser/btc-vision-bitcoin.js +12420 -3637
  8. package/browser/buffer/BinaryReader.d.ts +120 -1
  9. package/browser/buffer/BinaryReader.d.ts.map +1 -0
  10. package/browser/buffer/BinaryWriter.d.ts +51 -1
  11. package/browser/buffer/BinaryWriter.d.ts.map +1 -0
  12. package/browser/bytecode/Compressor.d.ts +12 -0
  13. package/browser/bytecode/Compressor.d.ts.map +1 -0
  14. package/browser/chain/ChainData.d.ts +2 -2
  15. package/browser/chain/ChainData.d.ts.map +1 -0
  16. package/browser/consensus/Consensus.d.ts +11 -3
  17. package/browser/consensus/Consensus.d.ts.map +1 -0
  18. package/browser/consensus/ConsensusConfig.d.ts +1 -0
  19. package/browser/consensus/ConsensusConfig.d.ts.map +1 -0
  20. package/browser/consensus/IConsensusConfig.d.ts +1 -0
  21. package/browser/consensus/IConsensusConfig.d.ts.map +1 -0
  22. package/browser/consensus/metadata/RoswellConsensus.d.ts +1 -0
  23. package/browser/consensus/metadata/RoswellConsensus.d.ts.map +1 -0
  24. package/browser/crypto/crypto.d.ts +1 -0
  25. package/browser/crypto/crypto.d.ts.map +1 -0
  26. package/browser/deterministic/AddressMap.d.ts +6 -1
  27. package/browser/deterministic/AddressMap.d.ts.map +1 -0
  28. package/browser/deterministic/AddressSet.d.ts +3 -1
  29. package/browser/deterministic/AddressSet.d.ts.map +1 -0
  30. package/browser/deterministic/CustomMap.d.ts +3 -1
  31. package/browser/deterministic/CustomMap.d.ts.map +1 -0
  32. package/browser/deterministic/DeterministicMap.d.ts +3 -1
  33. package/browser/deterministic/DeterministicMap.d.ts.map +1 -0
  34. package/browser/deterministic/DeterministicSet.d.ts +3 -1
  35. package/browser/deterministic/DeterministicSet.d.ts.map +1 -0
  36. package/browser/deterministic/ExtendedAddressMap.d.ts +7 -1
  37. package/browser/deterministic/ExtendedAddressMap.d.ts.map +1 -0
  38. package/browser/deterministic/FastMap.d.ts +7 -1
  39. package/browser/deterministic/FastMap.d.ts.map +1 -0
  40. package/browser/ecc/backend.d.ts +13 -0
  41. package/browser/ecc/backend.d.ts.map +1 -0
  42. package/browser/epoch/ChallengeSolution.d.ts +33 -1
  43. package/browser/epoch/ChallengeSolution.d.ts.map +1 -0
  44. package/browser/epoch/interfaces/IChallengeSolution.d.ts +14 -13
  45. package/browser/epoch/interfaces/IChallengeSolution.d.ts.map +1 -0
  46. package/browser/epoch/validator/EpochValidator.d.ts +37 -7
  47. package/browser/epoch/validator/EpochValidator.d.ts.map +1 -0
  48. package/browser/event/NetEvent.d.ts +1 -0
  49. package/browser/event/NetEvent.d.ts.map +1 -0
  50. package/browser/generators/AddressGenerator.d.ts +4 -3
  51. package/browser/generators/AddressGenerator.d.ts.map +1 -0
  52. package/browser/generators/Features.d.ts +1 -0
  53. package/browser/generators/Features.d.ts.map +1 -0
  54. package/browser/generators/Generator.d.ts +46 -10
  55. package/browser/generators/Generator.d.ts.map +1 -0
  56. package/browser/generators/MLDSAData.d.ts +1 -0
  57. package/browser/generators/MLDSAData.d.ts.map +1 -0
  58. package/browser/generators/builders/CalldataGenerator.d.ts +25 -4
  59. package/browser/generators/builders/CalldataGenerator.d.ts.map +1 -0
  60. package/browser/generators/builders/CustomGenerator.d.ts +13 -3
  61. package/browser/generators/builders/CustomGenerator.d.ts.map +1 -0
  62. package/browser/generators/builders/DeploymentGenerator.d.ts +15 -4
  63. package/browser/generators/builders/DeploymentGenerator.d.ts.map +1 -0
  64. package/browser/generators/builders/HashCommitmentGenerator.d.ts +164 -12
  65. package/browser/generators/builders/HashCommitmentGenerator.d.ts.map +1 -0
  66. package/browser/generators/builders/LegacyCalldataGenerator.d.ts +26 -4
  67. package/browser/generators/builders/LegacyCalldataGenerator.d.ts.map +1 -0
  68. package/browser/generators/builders/MultiSignGenerator.d.ts +6 -1
  69. package/browser/generators/builders/MultiSignGenerator.d.ts.map +1 -0
  70. package/browser/generators/builders/P2WDAGenerator.d.ts +42 -4
  71. package/browser/generators/builders/P2WDAGenerator.d.ts.map +1 -0
  72. package/browser/index.d.ts +1 -0
  73. package/browser/index.d.ts.map +1 -0
  74. package/browser/index.js +3602 -3203
  75. package/browser/keypair/Address.d.ts +283 -13
  76. package/browser/keypair/Address.d.ts.map +1 -0
  77. package/browser/keypair/AddressVerificator.d.ts +7 -6
  78. package/browser/keypair/AddressVerificator.d.ts.map +1 -0
  79. package/browser/keypair/EcKeyPair.d.ts +183 -21
  80. package/browser/keypair/EcKeyPair.d.ts.map +1 -0
  81. package/browser/keypair/MessageSigner.d.ts +17 -16
  82. package/browser/keypair/MessageSigner.d.ts.map +1 -0
  83. package/browser/keypair/Secp256k1PointDeriver.d.ts +55 -0
  84. package/browser/keypair/Secp256k1PointDeriver.d.ts.map +1 -0
  85. package/browser/keypair/Wallet.d.ts +27 -13
  86. package/browser/keypair/Wallet.d.ts.map +1 -0
  87. package/browser/keypair/interfaces/IWallet.d.ts +19 -0
  88. package/browser/keypair/interfaces/IWallet.d.ts.map +1 -0
  89. package/browser/metadata/ContractBaseMetadata.d.ts +10 -2
  90. package/browser/metadata/ContractBaseMetadata.d.ts.map +1 -0
  91. package/browser/mnemonic/BIPStandard.d.ts +59 -0
  92. package/browser/mnemonic/BIPStandard.d.ts.map +1 -0
  93. package/browser/mnemonic/Mnemonic.d.ts +15 -3
  94. package/browser/mnemonic/Mnemonic.d.ts.map +1 -0
  95. package/browser/mnemonic/MnemonicStrength.d.ts +6 -0
  96. package/browser/mnemonic/MnemonicStrength.d.ts.map +1 -0
  97. package/browser/network/ChainId.d.ts +1 -0
  98. package/browser/network/ChainId.d.ts.map +1 -0
  99. package/browser/noble-curves.js +920 -2966
  100. package/browser/noble-hashes.js +2067 -1038
  101. package/browser/opnet.d.ts +22 -1
  102. package/browser/opnet.d.ts.map +1 -0
  103. package/browser/p2wda/P2WDADetector.d.ts +36 -9
  104. package/browser/p2wda/P2WDADetector.d.ts.map +1 -0
  105. package/browser/polyfill/disposable.d.ts +16 -0
  106. package/browser/polyfill/disposable.d.ts.map +1 -0
  107. package/browser/signer/AddressRotation.d.ts +36 -0
  108. package/browser/signer/AddressRotation.d.ts.map +1 -0
  109. package/browser/signer/IRotationSigner.d.ts +27 -3
  110. package/browser/signer/IRotationSigner.d.ts.map +1 -0
  111. package/browser/signer/ParallelSignerAdapter.d.ts +14 -0
  112. package/browser/signer/ParallelSignerAdapter.d.ts.map +1 -0
  113. package/browser/signer/SignerUtils.d.ts +11 -4
  114. package/browser/signer/SignerUtils.d.ts.map +1 -0
  115. package/browser/signer/TweakedSigner.d.ts +28 -4
  116. package/browser/signer/TweakedSigner.d.ts.map +1 -0
  117. package/browser/transaction/ContractAddress.d.ts +2 -2
  118. package/browser/transaction/ContractAddress.d.ts.map +1 -0
  119. package/browser/transaction/TransactionFactory.d.ts +140 -2
  120. package/browser/transaction/TransactionFactory.d.ts.map +1 -0
  121. package/browser/transaction/browser/BrowserSignerBase.d.ts +12 -6
  122. package/browser/transaction/browser/BrowserSignerBase.d.ts.map +1 -0
  123. package/browser/transaction/browser/WalletNetworks.d.ts +1 -0
  124. package/browser/transaction/browser/WalletNetworks.d.ts.map +1 -0
  125. package/browser/transaction/browser/Web3Provider.d.ts +27 -0
  126. package/browser/transaction/browser/Web3Provider.d.ts.map +1 -0
  127. package/browser/transaction/browser/extensions/UnisatSigner.d.ts +9 -7
  128. package/browser/transaction/browser/extensions/UnisatSigner.d.ts.map +1 -0
  129. package/browser/transaction/browser/extensions/XverseSigner.d.ts +9 -7
  130. package/browser/transaction/browser/extensions/XverseSigner.d.ts.map +1 -0
  131. package/browser/transaction/browser/types/OPWallet.d.ts +10 -0
  132. package/browser/transaction/browser/types/OPWallet.d.ts.map +1 -0
  133. package/browser/transaction/browser/types/Unisat.d.ts +1 -0
  134. package/browser/transaction/browser/types/Unisat.d.ts.map +1 -0
  135. package/browser/transaction/browser/types/Xverse.d.ts +1 -0
  136. package/browser/transaction/browser/types/Xverse.d.ts.map +1 -0
  137. package/browser/transaction/builders/CancelTransaction.d.ts +29 -4
  138. package/browser/transaction/builders/CancelTransaction.d.ts.map +1 -0
  139. package/browser/transaction/builders/ChallengeSolutionTransaction.d.ts +1 -0
  140. package/browser/transaction/builders/ChallengeSolutionTransaction.d.ts.map +1 -0
  141. package/browser/transaction/builders/ConsolidatedInteractionTransaction.d.ts +137 -10
  142. package/browser/transaction/builders/ConsolidatedInteractionTransaction.d.ts.map +1 -0
  143. package/browser/transaction/builders/CustomScriptTransaction.d.ts +106 -6
  144. package/browser/transaction/builders/CustomScriptTransaction.d.ts.map +1 -0
  145. package/browser/transaction/builders/DeploymentTransaction.d.ts +116 -5
  146. package/browser/transaction/builders/DeploymentTransaction.d.ts.map +1 -0
  147. package/browser/transaction/builders/FundingTransaction.d.ts +4 -3
  148. package/browser/transaction/builders/FundingTransaction.d.ts.map +1 -0
  149. package/browser/transaction/builders/InteractionTransaction.d.ts +12 -3
  150. package/browser/transaction/builders/InteractionTransaction.d.ts.map +1 -0
  151. package/browser/transaction/builders/InteractionTransactionP2WDA.d.ts +56 -5
  152. package/browser/transaction/builders/InteractionTransactionP2WDA.d.ts.map +1 -0
  153. package/browser/transaction/builders/MultiSignTransaction.d.ts +125 -16
  154. package/browser/transaction/builders/MultiSignTransaction.d.ts.map +1 -0
  155. package/browser/transaction/builders/SharedInteractionTransaction.d.ts +103 -15
  156. package/browser/transaction/builders/SharedInteractionTransaction.d.ts.map +1 -0
  157. package/browser/transaction/builders/TransactionBuilder.d.ts +243 -14
  158. package/browser/transaction/builders/TransactionBuilder.d.ts.map +1 -0
  159. package/browser/transaction/enums/TransactionType.d.ts +1 -0
  160. package/browser/transaction/enums/TransactionType.d.ts.map +1 -0
  161. package/browser/transaction/interfaces/ICancelTransactionParameters.d.ts +2 -1
  162. package/browser/transaction/interfaces/ICancelTransactionParameters.d.ts.map +1 -0
  163. package/browser/transaction/interfaces/IConsolidatedTransactionParameters.d.ts +46 -3
  164. package/browser/transaction/interfaces/IConsolidatedTransactionParameters.d.ts.map +1 -0
  165. package/browser/transaction/interfaces/ICustomTransactionParameters.d.ts +6 -4
  166. package/browser/transaction/interfaces/ICustomTransactionParameters.d.ts.map +1 -0
  167. package/browser/transaction/interfaces/ITransactionParameters.d.ts +22 -10
  168. package/browser/transaction/interfaces/ITransactionParameters.d.ts.map +1 -0
  169. package/browser/transaction/interfaces/ITransactionResponses.d.ts +1 -0
  170. package/browser/transaction/interfaces/ITransactionResponses.d.ts.map +1 -0
  171. package/browser/transaction/interfaces/ITweakedTransactionData.d.ts +18 -5
  172. package/browser/transaction/interfaces/ITweakedTransactionData.d.ts.map +1 -0
  173. package/browser/transaction/interfaces/IWeb3ProviderTypes.d.ts +26 -0
  174. package/browser/transaction/interfaces/IWeb3ProviderTypes.d.ts.map +1 -0
  175. package/browser/transaction/interfaces/Tap.d.ts +4 -3
  176. package/browser/transaction/interfaces/Tap.d.ts.map +1 -0
  177. package/browser/transaction/mineable/IP2WSHAddress.d.ts +2 -1
  178. package/browser/transaction/mineable/IP2WSHAddress.d.ts.map +1 -0
  179. package/browser/transaction/mineable/TimelockGenerator.d.ts +12 -3
  180. package/browser/transaction/mineable/TimelockGenerator.d.ts.map +1 -0
  181. package/browser/transaction/offline/OfflineTransactionManager.d.ts +190 -9
  182. package/browser/transaction/offline/OfflineTransactionManager.d.ts.map +1 -0
  183. package/browser/transaction/offline/TransactionReconstructor.d.ts +53 -3
  184. package/browser/transaction/offline/TransactionReconstructor.d.ts.map +1 -0
  185. package/browser/transaction/offline/TransactionSerializer.d.ts +53 -2
  186. package/browser/transaction/offline/TransactionSerializer.d.ts.map +1 -0
  187. package/browser/transaction/offline/TransactionStateCapture.d.ts +64 -5
  188. package/browser/transaction/offline/TransactionStateCapture.d.ts.map +1 -0
  189. package/browser/transaction/offline/interfaces/ISerializableState.d.ts +71 -0
  190. package/browser/transaction/offline/interfaces/ISerializableState.d.ts.map +1 -0
  191. package/browser/transaction/offline/interfaces/ITypeSpecificData.d.ts +76 -0
  192. package/browser/transaction/offline/interfaces/ITypeSpecificData.d.ts.map +1 -0
  193. package/browser/transaction/psbt/PSBTTypes.d.ts +1 -0
  194. package/browser/transaction/psbt/PSBTTypes.d.ts.map +1 -0
  195. package/browser/transaction/shared/P2TR_MS.d.ts +11 -2
  196. package/browser/transaction/shared/P2TR_MS.d.ts.map +1 -0
  197. package/browser/transaction/shared/TweakedTransaction.d.ts +275 -33
  198. package/browser/transaction/shared/TweakedTransaction.d.ts.map +1 -0
  199. package/browser/transaction/utils/WitnessUtils.d.ts +7 -1
  200. package/browser/transaction/utils/WitnessUtils.d.ts.map +1 -0
  201. package/browser/utils/BitcoinUtils.d.ts +19 -0
  202. package/browser/utils/BitcoinUtils.d.ts.map +1 -0
  203. package/browser/utils/BufferHelper.d.ts +1 -0
  204. package/browser/utils/BufferHelper.d.ts.map +1 -0
  205. package/browser/utils/StringToBuffer.d.ts +1 -0
  206. package/browser/utils/StringToBuffer.d.ts.map +1 -0
  207. package/browser/utils/lengths.d.ts +1 -0
  208. package/browser/utils/lengths.d.ts.map +1 -0
  209. package/browser/utils/types.d.ts +1 -0
  210. package/browser/utils/types.d.ts.map +1 -0
  211. package/browser/utxo/OPNetLimitedProvider.d.ts +37 -1
  212. package/browser/utxo/OPNetLimitedProvider.d.ts.map +1 -0
  213. package/browser/utxo/interfaces/BroadcastResponse.d.ts +1 -0
  214. package/browser/utxo/interfaces/BroadcastResponse.d.ts.map +1 -0
  215. package/browser/utxo/interfaces/IUTXO.d.ts +11 -5
  216. package/browser/utxo/interfaces/IUTXO.d.ts.map +1 -0
  217. package/browser/vendors.js +13940 -9389
  218. package/browser/verification/TapscriptVerificator.d.ts +10 -8
  219. package/browser/verification/TapscriptVerificator.d.ts.map +1 -0
  220. package/build/_version.d.ts +1 -0
  221. package/build/_version.d.ts.map +1 -0
  222. package/build/_version.js +1 -0
  223. package/build/_version.js.map +1 -0
  224. package/build/abi/ABICoder.d.ts +1 -1
  225. package/build/abi/ABICoder.d.ts.map +1 -0
  226. package/build/abi/ABICoder.js +9 -10
  227. package/build/abi/ABICoder.js.map +1 -0
  228. package/build/branded/Branded.d.ts +4 -0
  229. package/build/branded/Branded.d.ts.map +1 -0
  230. package/build/branded/Branded.js +2 -0
  231. package/build/branded/Branded.js.map +1 -0
  232. package/build/buffer/BinaryReader.d.ts +121 -2
  233. package/build/buffer/BinaryReader.d.ts.map +1 -0
  234. package/build/buffer/BinaryReader.js +129 -5
  235. package/build/buffer/BinaryReader.js.map +1 -0
  236. package/build/buffer/BinaryWriter.d.ts +52 -2
  237. package/build/buffer/BinaryWriter.d.ts.map +1 -0
  238. package/build/buffer/BinaryWriter.js +62 -2
  239. package/build/buffer/BinaryWriter.js.map +1 -0
  240. package/build/bytecode/Compressor.d.ts +12 -0
  241. package/build/bytecode/Compressor.d.ts.map +1 -0
  242. package/build/bytecode/Compressor.js +17 -5
  243. package/build/bytecode/Compressor.js.map +1 -0
  244. package/build/chain/ChainData.d.ts +2 -2
  245. package/build/chain/ChainData.d.ts.map +1 -0
  246. package/build/chain/ChainData.js +35 -17
  247. package/build/chain/ChainData.js.map +1 -0
  248. package/build/consensus/Consensus.d.ts +11 -3
  249. package/build/consensus/Consensus.d.ts.map +1 -0
  250. package/build/consensus/Consensus.js +8 -0
  251. package/build/consensus/Consensus.js.map +1 -0
  252. package/build/consensus/ConsensusConfig.d.ts +2 -1
  253. package/build/consensus/ConsensusConfig.d.ts.map +1 -0
  254. package/build/consensus/ConsensusConfig.js +1 -0
  255. package/build/consensus/ConsensusConfig.js.map +1 -0
  256. package/build/consensus/IConsensusConfig.d.ts +1 -0
  257. package/build/consensus/IConsensusConfig.d.ts.map +1 -0
  258. package/build/consensus/IConsensusConfig.js +2 -1
  259. package/build/consensus/IConsensusConfig.js.map +1 -0
  260. package/build/consensus/metadata/RoswellConsensus.d.ts +2 -1
  261. package/build/consensus/metadata/RoswellConsensus.d.ts.map +1 -0
  262. package/build/consensus/metadata/RoswellConsensus.js +2 -0
  263. package/build/consensus/metadata/RoswellConsensus.js.map +1 -0
  264. package/build/crypto/crypto.d.ts +1 -0
  265. package/build/crypto/crypto.d.ts.map +1 -0
  266. package/build/crypto/crypto.js +1 -0
  267. package/build/crypto/crypto.js.map +1 -0
  268. package/build/deterministic/AddressMap.d.ts +6 -1
  269. package/build/deterministic/AddressMap.d.ts.map +1 -0
  270. package/build/deterministic/AddressMap.js +8 -0
  271. package/build/deterministic/AddressMap.js.map +1 -0
  272. package/build/deterministic/AddressSet.d.ts +3 -1
  273. package/build/deterministic/AddressSet.d.ts.map +1 -0
  274. package/build/deterministic/AddressSet.js +7 -0
  275. package/build/deterministic/AddressSet.js.map +1 -0
  276. package/build/deterministic/CustomMap.d.ts +3 -1
  277. package/build/deterministic/CustomMap.d.ts.map +1 -0
  278. package/build/deterministic/CustomMap.js +65 -47
  279. package/build/deterministic/CustomMap.js.map +1 -0
  280. package/build/deterministic/DeterministicMap.d.ts +4 -2
  281. package/build/deterministic/DeterministicMap.d.ts.map +1 -0
  282. package/build/deterministic/DeterministicMap.js +24 -27
  283. package/build/deterministic/DeterministicMap.js.map +1 -0
  284. package/build/deterministic/DeterministicSet.d.ts +3 -1
  285. package/build/deterministic/DeterministicSet.d.ts.map +1 -0
  286. package/build/deterministic/DeterministicSet.js +6 -0
  287. package/build/deterministic/DeterministicSet.js.map +1 -0
  288. package/build/deterministic/ExtendedAddressMap.d.ts +7 -1
  289. package/build/deterministic/ExtendedAddressMap.d.ts.map +1 -0
  290. package/build/deterministic/ExtendedAddressMap.js +18 -2
  291. package/build/deterministic/ExtendedAddressMap.js.map +1 -0
  292. package/build/deterministic/FastMap.d.ts +7 -1
  293. package/build/deterministic/FastMap.d.ts.map +1 -0
  294. package/build/deterministic/FastMap.js +7 -2
  295. package/build/deterministic/FastMap.js.map +1 -0
  296. package/build/ecc/backend.d.ts +13 -0
  297. package/build/ecc/backend.d.ts.map +1 -0
  298. package/build/ecc/backend.js +15 -0
  299. package/build/ecc/backend.js.map +1 -0
  300. package/build/epoch/ChallengeSolution.d.ts +34 -2
  301. package/build/epoch/ChallengeSolution.d.ts.map +1 -0
  302. package/build/epoch/ChallengeSolution.js +52 -0
  303. package/build/epoch/ChallengeSolution.js.map +1 -0
  304. package/build/epoch/interfaces/IChallengeSolution.d.ts +14 -13
  305. package/build/epoch/interfaces/IChallengeSolution.d.ts.map +1 -0
  306. package/build/epoch/interfaces/IChallengeSolution.js +2 -1
  307. package/build/epoch/interfaces/IChallengeSolution.js.map +1 -0
  308. package/build/epoch/validator/EpochValidator.d.ts +38 -8
  309. package/build/epoch/validator/EpochValidator.d.ts.map +1 -0
  310. package/build/epoch/validator/EpochValidator.js +45 -19
  311. package/build/epoch/validator/EpochValidator.js.map +1 -0
  312. package/build/event/NetEvent.d.ts +1 -0
  313. package/build/event/NetEvent.d.ts.map +1 -0
  314. package/build/event/NetEvent.js +3 -0
  315. package/build/event/NetEvent.js.map +1 -0
  316. package/build/generators/AddressGenerator.d.ts +4 -3
  317. package/build/generators/AddressGenerator.d.ts.map +1 -0
  318. package/build/generators/AddressGenerator.js +10 -3
  319. package/build/generators/AddressGenerator.js.map +1 -0
  320. package/build/generators/Features.d.ts +4 -3
  321. package/build/generators/Features.d.ts.map +1 -0
  322. package/build/generators/Features.js +1 -0
  323. package/build/generators/Features.js.map +1 -0
  324. package/build/generators/Generator.d.ts +47 -11
  325. package/build/generators/Generator.d.ts.map +1 -0
  326. package/build/generators/Generator.js +48 -12
  327. package/build/generators/Generator.js.map +1 -0
  328. package/build/generators/MLDSAData.d.ts +1 -0
  329. package/build/generators/MLDSAData.d.ts.map +1 -0
  330. package/build/generators/MLDSAData.js +1 -0
  331. package/build/generators/MLDSAData.js.map +1 -0
  332. package/build/generators/builders/CalldataGenerator.d.ts +27 -6
  333. package/build/generators/builders/CalldataGenerator.d.ts.map +1 -0
  334. package/build/generators/builders/CalldataGenerator.js +33 -4
  335. package/build/generators/builders/CalldataGenerator.js.map +1 -0
  336. package/build/generators/builders/CustomGenerator.d.ts +13 -3
  337. package/build/generators/builders/CustomGenerator.d.ts.map +1 -0
  338. package/build/generators/builders/CustomGenerator.js +11 -0
  339. package/build/generators/builders/CustomGenerator.js.map +1 -0
  340. package/build/generators/builders/DeploymentGenerator.d.ts +17 -6
  341. package/build/generators/builders/DeploymentGenerator.d.ts.map +1 -0
  342. package/build/generators/builders/DeploymentGenerator.js +18 -2
  343. package/build/generators/builders/DeploymentGenerator.js.map +1 -0
  344. package/build/generators/builders/HashCommitmentGenerator.d.ts +166 -14
  345. package/build/generators/builders/HashCommitmentGenerator.d.ts.map +1 -0
  346. package/build/generators/builders/HashCommitmentGenerator.js +193 -27
  347. package/build/generators/builders/HashCommitmentGenerator.js.map +1 -0
  348. package/build/generators/builders/LegacyCalldataGenerator.d.ts +27 -5
  349. package/build/generators/builders/LegacyCalldataGenerator.d.ts.map +1 -0
  350. package/build/generators/builders/LegacyCalldataGenerator.js +35 -5
  351. package/build/generators/builders/LegacyCalldataGenerator.js.map +1 -0
  352. package/build/generators/builders/MultiSignGenerator.d.ts +6 -1
  353. package/build/generators/builders/MultiSignGenerator.d.ts.map +1 -0
  354. package/build/generators/builders/MultiSignGenerator.js +20 -10
  355. package/build/generators/builders/MultiSignGenerator.js.map +1 -0
  356. package/build/generators/builders/P2WDAGenerator.d.ts +44 -6
  357. package/build/generators/builders/P2WDAGenerator.d.ts.map +1 -0
  358. package/build/generators/builders/P2WDAGenerator.js +41 -2
  359. package/build/generators/builders/P2WDAGenerator.js.map +1 -0
  360. package/build/index.d.ts +1 -0
  361. package/build/index.d.ts.map +1 -0
  362. package/build/index.js +1 -0
  363. package/build/index.js.map +1 -0
  364. package/build/keypair/Address.d.ts +284 -14
  365. package/build/keypair/Address.d.ts.map +1 -0
  366. package/build/keypair/Address.js +447 -129
  367. package/build/keypair/Address.js.map +1 -0
  368. package/build/keypair/AddressVerificator.d.ts +7 -6
  369. package/build/keypair/AddressVerificator.d.ts.map +1 -0
  370. package/build/keypair/AddressVerificator.js +6 -5
  371. package/build/keypair/AddressVerificator.js.map +1 -0
  372. package/build/keypair/EcKeyPair.d.ts +185 -23
  373. package/build/keypair/EcKeyPair.d.ts.map +1 -0
  374. package/build/keypair/EcKeyPair.js +223 -54
  375. package/build/keypair/EcKeyPair.js.map +1 -0
  376. package/build/keypair/MessageSigner.d.ts +18 -17
  377. package/build/keypair/MessageSigner.d.ts.map +1 -0
  378. package/build/keypair/MessageSigner.js +34 -25
  379. package/build/keypair/MessageSigner.js.map +1 -0
  380. package/build/keypair/Secp256k1PointDeriver.d.ts +55 -0
  381. package/build/keypair/Secp256k1PointDeriver.d.ts.map +1 -0
  382. package/build/keypair/Secp256k1PointDeriver.js +66 -0
  383. package/build/keypair/Secp256k1PointDeriver.js.map +1 -0
  384. package/build/keypair/Wallet.d.ts +29 -15
  385. package/build/keypair/Wallet.d.ts.map +1 -0
  386. package/build/keypair/Wallet.js +48 -14
  387. package/build/keypair/Wallet.js.map +1 -0
  388. package/build/keypair/interfaces/IWallet.d.ts +19 -0
  389. package/build/keypair/interfaces/IWallet.d.ts.map +1 -0
  390. package/build/keypair/interfaces/IWallet.js +1 -0
  391. package/build/keypair/interfaces/IWallet.js.map +1 -0
  392. package/build/metadata/ContractBaseMetadata.d.ts +10 -2
  393. package/build/metadata/ContractBaseMetadata.d.ts.map +1 -0
  394. package/build/metadata/ContractBaseMetadata.js +10 -1
  395. package/build/metadata/ContractBaseMetadata.js.map +1 -0
  396. package/build/mnemonic/BIPStandard.d.ts +59 -0
  397. package/build/mnemonic/BIPStandard.d.ts.map +1 -0
  398. package/build/mnemonic/BIPStandard.js +59 -0
  399. package/build/mnemonic/BIPStandard.js.map +1 -0
  400. package/build/mnemonic/Mnemonic.d.ts +16 -4
  401. package/build/mnemonic/Mnemonic.d.ts.map +1 -0
  402. package/build/mnemonic/Mnemonic.js +36 -8
  403. package/build/mnemonic/Mnemonic.js.map +1 -0
  404. package/build/mnemonic/MnemonicStrength.d.ts +6 -0
  405. package/build/mnemonic/MnemonicStrength.d.ts.map +1 -0
  406. package/build/mnemonic/MnemonicStrength.js +6 -0
  407. package/build/mnemonic/MnemonicStrength.js.map +1 -0
  408. package/build/network/ChainId.d.ts +1 -0
  409. package/build/network/ChainId.d.ts.map +1 -0
  410. package/build/network/ChainId.js +1 -0
  411. package/build/network/ChainId.js.map +1 -0
  412. package/build/opnet.d.ts +26 -3
  413. package/build/opnet.d.ts.map +1 -0
  414. package/build/opnet.js +23 -0
  415. package/build/opnet.js.map +1 -0
  416. package/build/p2wda/P2WDADetector.d.ts +38 -11
  417. package/build/p2wda/P2WDADetector.d.ts.map +1 -0
  418. package/build/p2wda/P2WDADetector.js +43 -10
  419. package/build/p2wda/P2WDADetector.js.map +1 -0
  420. package/build/polyfill/disposable.d.ts +16 -0
  421. package/build/polyfill/disposable.d.ts.map +1 -0
  422. package/build/polyfill/disposable.js +23 -0
  423. package/build/polyfill/disposable.js.map +1 -0
  424. package/build/signer/AddressRotation.d.ts +37 -1
  425. package/build/signer/AddressRotation.d.ts.map +1 -0
  426. package/build/signer/AddressRotation.js +16 -0
  427. package/build/signer/AddressRotation.js.map +1 -0
  428. package/build/signer/IRotationSigner.d.ts +27 -3
  429. package/build/signer/IRotationSigner.d.ts.map +1 -0
  430. package/build/signer/IRotationSigner.js +2 -1
  431. package/build/signer/IRotationSigner.js.map +1 -0
  432. package/build/signer/ParallelSignerAdapter.d.ts +14 -0
  433. package/build/signer/ParallelSignerAdapter.d.ts.map +1 -0
  434. package/build/signer/ParallelSignerAdapter.js +51 -0
  435. package/build/signer/ParallelSignerAdapter.js.map +1 -0
  436. package/build/signer/SignerUtils.d.ts +11 -4
  437. package/build/signer/SignerUtils.d.ts.map +1 -0
  438. package/build/signer/SignerUtils.js +16 -0
  439. package/build/signer/SignerUtils.js.map +1 -0
  440. package/build/signer/TweakedSigner.d.ts +28 -4
  441. package/build/signer/TweakedSigner.d.ts.map +1 -0
  442. package/build/signer/TweakedSigner.js +24 -6
  443. package/build/signer/TweakedSigner.js.map +1 -0
  444. package/build/transaction/ContractAddress.d.ts +2 -2
  445. package/build/transaction/ContractAddress.d.ts.map +1 -0
  446. package/build/transaction/ContractAddress.js +4 -8
  447. package/build/transaction/ContractAddress.js.map +1 -0
  448. package/build/transaction/TransactionFactory.d.ts +147 -9
  449. package/build/transaction/TransactionFactory.d.ts.map +1 -0
  450. package/build/transaction/TransactionFactory.js +145 -26
  451. package/build/transaction/TransactionFactory.js.map +1 -0
  452. package/build/transaction/browser/BrowserSignerBase.d.ts +12 -6
  453. package/build/transaction/browser/BrowserSignerBase.d.ts.map +1 -0
  454. package/build/transaction/browser/BrowserSignerBase.js +7 -0
  455. package/build/transaction/browser/BrowserSignerBase.js.map +1 -0
  456. package/build/transaction/browser/WalletNetworks.d.ts +1 -0
  457. package/build/transaction/browser/WalletNetworks.d.ts.map +1 -0
  458. package/build/transaction/browser/WalletNetworks.js +1 -0
  459. package/build/transaction/browser/WalletNetworks.js.map +1 -0
  460. package/build/transaction/browser/Web3Provider.d.ts +30 -3
  461. package/build/transaction/browser/Web3Provider.d.ts.map +1 -0
  462. package/build/transaction/browser/Web3Provider.js +1 -0
  463. package/build/transaction/browser/Web3Provider.js.map +1 -0
  464. package/build/transaction/browser/extensions/UnisatSigner.d.ts +11 -9
  465. package/build/transaction/browser/extensions/UnisatSigner.d.ts.map +1 -0
  466. package/build/transaction/browser/extensions/UnisatSigner.js +27 -17
  467. package/build/transaction/browser/extensions/UnisatSigner.js.map +1 -0
  468. package/build/transaction/browser/extensions/XverseSigner.d.ts +10 -8
  469. package/build/transaction/browser/extensions/XverseSigner.d.ts.map +1 -0
  470. package/build/transaction/browser/extensions/XverseSigner.js +25 -15
  471. package/build/transaction/browser/extensions/XverseSigner.js.map +1 -0
  472. package/build/transaction/browser/types/OPWallet.d.ts +12 -2
  473. package/build/transaction/browser/types/OPWallet.d.ts.map +1 -0
  474. package/build/transaction/browser/types/OPWallet.js +4 -0
  475. package/build/transaction/browser/types/OPWallet.js.map +1 -0
  476. package/build/transaction/browser/types/Unisat.d.ts +2 -1
  477. package/build/transaction/browser/types/Unisat.d.ts.map +1 -0
  478. package/build/transaction/browser/types/Unisat.js +2 -0
  479. package/build/transaction/browser/types/Unisat.js.map +1 -0
  480. package/build/transaction/browser/types/Xverse.d.ts +1 -0
  481. package/build/transaction/browser/types/Xverse.d.ts.map +1 -0
  482. package/build/transaction/browser/types/Xverse.js +1 -0
  483. package/build/transaction/browser/types/Xverse.js.map +1 -0
  484. package/build/transaction/builders/CancelTransaction.d.ts +31 -6
  485. package/build/transaction/builders/CancelTransaction.d.ts.map +1 -0
  486. package/build/transaction/builders/CancelTransaction.js +116 -33
  487. package/build/transaction/builders/CancelTransaction.js.map +1 -0
  488. package/build/transaction/builders/ChallengeSolutionTransaction.d.ts +1 -0
  489. package/build/transaction/builders/ChallengeSolutionTransaction.d.ts.map +1 -0
  490. package/build/transaction/builders/ChallengeSolutionTransaction.js +88 -0
  491. package/build/transaction/builders/ChallengeSolutionTransaction.js.map +1 -0
  492. package/build/transaction/builders/ConsolidatedInteractionTransaction.d.ts +140 -13
  493. package/build/transaction/builders/ConsolidatedInteractionTransaction.d.ts.map +1 -0
  494. package/build/transaction/builders/ConsolidatedInteractionTransaction.js +197 -20
  495. package/build/transaction/builders/ConsolidatedInteractionTransaction.js.map +1 -0
  496. package/build/transaction/builders/CustomScriptTransaction.d.ts +108 -8
  497. package/build/transaction/builders/CustomScriptTransaction.d.ts.map +1 -0
  498. package/build/transaction/builders/CustomScriptTransaction.js +176 -39
  499. package/build/transaction/builders/CustomScriptTransaction.js.map +1 -0
  500. package/build/transaction/builders/DeploymentTransaction.d.ts +120 -9
  501. package/build/transaction/builders/DeploymentTransaction.d.ts.map +1 -0
  502. package/build/transaction/builders/DeploymentTransaction.js +194 -51
  503. package/build/transaction/builders/DeploymentTransaction.js.map +1 -0
  504. package/build/transaction/builders/FundingTransaction.d.ts +5 -4
  505. package/build/transaction/builders/FundingTransaction.d.ts.map +1 -0
  506. package/build/transaction/builders/FundingTransaction.js +15 -8
  507. package/build/transaction/builders/FundingTransaction.js.map +1 -0
  508. package/build/transaction/builders/InteractionTransaction.d.ts +14 -5
  509. package/build/transaction/builders/InteractionTransaction.d.ts.map +1 -0
  510. package/build/transaction/builders/InteractionTransaction.js +18 -5
  511. package/build/transaction/builders/InteractionTransaction.js.map +1 -0
  512. package/build/transaction/builders/InteractionTransactionP2WDA.d.ts +58 -7
  513. package/build/transaction/builders/InteractionTransactionP2WDA.d.ts.map +1 -0
  514. package/build/transaction/builders/InteractionTransactionP2WDA.js +95 -18
  515. package/build/transaction/builders/InteractionTransactionP2WDA.js.map +1 -0
  516. package/build/transaction/builders/MultiSignTransaction.d.ts +126 -17
  517. package/build/transaction/builders/MultiSignTransaction.d.ts.map +1 -0
  518. package/build/transaction/builders/MultiSignTransaction.js +201 -76
  519. package/build/transaction/builders/MultiSignTransaction.js.map +1 -0
  520. package/build/transaction/builders/SharedInteractionTransaction.d.ts +106 -18
  521. package/build/transaction/builders/SharedInteractionTransaction.d.ts.map +1 -0
  522. package/build/transaction/builders/SharedInteractionTransaction.js +158 -40
  523. package/build/transaction/builders/SharedInteractionTransaction.js.map +1 -0
  524. package/build/transaction/builders/TransactionBuilder.d.ts +249 -19
  525. package/build/transaction/builders/TransactionBuilder.d.ts.map +1 -0
  526. package/build/transaction/builders/TransactionBuilder.js +377 -60
  527. package/build/transaction/builders/TransactionBuilder.js.map +1 -0
  528. package/build/transaction/enums/TransactionType.d.ts +1 -0
  529. package/build/transaction/enums/TransactionType.d.ts.map +1 -0
  530. package/build/transaction/enums/TransactionType.js +1 -0
  531. package/build/transaction/enums/TransactionType.js.map +1 -0
  532. package/build/transaction/interfaces/ICancelTransactionParameters.d.ts +3 -2
  533. package/build/transaction/interfaces/ICancelTransactionParameters.d.ts.map +1 -0
  534. package/build/transaction/interfaces/ICancelTransactionParameters.js +1 -0
  535. package/build/transaction/interfaces/ICancelTransactionParameters.js.map +1 -0
  536. package/build/transaction/interfaces/IConsolidatedTransactionParameters.d.ts +48 -5
  537. package/build/transaction/interfaces/IConsolidatedTransactionParameters.d.ts.map +1 -0
  538. package/build/transaction/interfaces/IConsolidatedTransactionParameters.js +1 -0
  539. package/build/transaction/interfaces/IConsolidatedTransactionParameters.js.map +1 -0
  540. package/build/transaction/interfaces/ICustomTransactionParameters.d.ts +7 -5
  541. package/build/transaction/interfaces/ICustomTransactionParameters.d.ts.map +1 -0
  542. package/build/transaction/interfaces/ICustomTransactionParameters.js +1 -0
  543. package/build/transaction/interfaces/ICustomTransactionParameters.js.map +1 -0
  544. package/build/transaction/interfaces/ITransactionParameters.d.ts +27 -15
  545. package/build/transaction/interfaces/ITransactionParameters.d.ts.map +1 -0
  546. package/build/transaction/interfaces/ITransactionParameters.js +1 -0
  547. package/build/transaction/interfaces/ITransactionParameters.js.map +1 -0
  548. package/build/transaction/interfaces/ITransactionResponses.d.ts +3 -2
  549. package/build/transaction/interfaces/ITransactionResponses.d.ts.map +1 -0
  550. package/build/transaction/interfaces/ITransactionResponses.js +1 -0
  551. package/build/transaction/interfaces/ITransactionResponses.js.map +1 -0
  552. package/build/transaction/interfaces/ITweakedTransactionData.d.ts +21 -8
  553. package/build/transaction/interfaces/ITweakedTransactionData.d.ts.map +1 -0
  554. package/build/transaction/interfaces/ITweakedTransactionData.js +1 -0
  555. package/build/transaction/interfaces/ITweakedTransactionData.js.map +1 -0
  556. package/build/transaction/interfaces/IWeb3ProviderTypes.d.ts +29 -3
  557. package/build/transaction/interfaces/IWeb3ProviderTypes.d.ts.map +1 -0
  558. package/build/transaction/interfaces/IWeb3ProviderTypes.js +2 -1
  559. package/build/transaction/interfaces/IWeb3ProviderTypes.js.map +1 -0
  560. package/build/transaction/interfaces/Tap.d.ts +4 -3
  561. package/build/transaction/interfaces/Tap.d.ts.map +1 -0
  562. package/build/transaction/interfaces/Tap.js +1 -0
  563. package/build/transaction/interfaces/Tap.js.map +1 -0
  564. package/build/transaction/mineable/IP2WSHAddress.d.ts +2 -1
  565. package/build/transaction/mineable/IP2WSHAddress.d.ts.map +1 -0
  566. package/build/transaction/mineable/IP2WSHAddress.js +1 -0
  567. package/build/transaction/mineable/IP2WSHAddress.js.map +1 -0
  568. package/build/transaction/mineable/TimelockGenerator.d.ts +13 -4
  569. package/build/transaction/mineable/TimelockGenerator.d.ts.map +1 -0
  570. package/build/transaction/mineable/TimelockGenerator.js +12 -3
  571. package/build/transaction/mineable/TimelockGenerator.js.map +1 -0
  572. package/build/transaction/offline/OfflineTransactionManager.d.ts +193 -12
  573. package/build/transaction/offline/OfflineTransactionManager.d.ts.map +1 -0
  574. package/build/transaction/offline/OfflineTransactionManager.js +192 -8
  575. package/build/transaction/offline/OfflineTransactionManager.js.map +1 -0
  576. package/build/transaction/offline/TransactionReconstructor.d.ts +56 -6
  577. package/build/transaction/offline/TransactionReconstructor.d.ts.map +1 -0
  578. package/build/transaction/offline/TransactionReconstructor.js +111 -75
  579. package/build/transaction/offline/TransactionReconstructor.js.map +1 -0
  580. package/build/transaction/offline/TransactionSerializer.d.ts +54 -3
  581. package/build/transaction/offline/TransactionSerializer.d.ts.map +1 -0
  582. package/build/transaction/offline/TransactionSerializer.js +206 -95
  583. package/build/transaction/offline/TransactionSerializer.js.map +1 -0
  584. package/build/transaction/offline/TransactionStateCapture.d.ts +66 -7
  585. package/build/transaction/offline/TransactionStateCapture.d.ts.map +1 -0
  586. package/build/transaction/offline/TransactionStateCapture.js +124 -60
  587. package/build/transaction/offline/TransactionStateCapture.js.map +1 -0
  588. package/build/transaction/offline/interfaces/ISerializableState.d.ts +72 -1
  589. package/build/transaction/offline/interfaces/ISerializableState.d.ts.map +1 -0
  590. package/build/transaction/offline/interfaces/ISerializableState.js +10 -1
  591. package/build/transaction/offline/interfaces/ISerializableState.js.map +1 -0
  592. package/build/transaction/offline/interfaces/ITypeSpecificData.d.ts +77 -1
  593. package/build/transaction/offline/interfaces/ITypeSpecificData.d.ts.map +1 -0
  594. package/build/transaction/offline/interfaces/ITypeSpecificData.js +19 -0
  595. package/build/transaction/offline/interfaces/ITypeSpecificData.js.map +1 -0
  596. package/build/transaction/psbt/PSBTTypes.d.ts +1 -0
  597. package/build/transaction/psbt/PSBTTypes.d.ts.map +1 -0
  598. package/build/transaction/psbt/PSBTTypes.js +1 -0
  599. package/build/transaction/psbt/PSBTTypes.js.map +1 -0
  600. package/build/transaction/shared/P2TR_MS.d.ts +11 -2
  601. package/build/transaction/shared/P2TR_MS.d.ts.map +1 -0
  602. package/build/transaction/shared/P2TR_MS.js +10 -0
  603. package/build/transaction/shared/P2TR_MS.js.map +1 -0
  604. package/build/transaction/shared/TweakedTransaction.d.ts +281 -38
  605. package/build/transaction/shared/TweakedTransaction.d.ts.map +1 -0
  606. package/build/transaction/shared/TweakedTransaction.js +576 -114
  607. package/build/transaction/shared/TweakedTransaction.js.map +1 -0
  608. package/build/transaction/utils/WitnessUtils.d.ts +7 -1
  609. package/build/transaction/utils/WitnessUtils.d.ts.map +1 -0
  610. package/build/transaction/utils/WitnessUtils.js +17 -3
  611. package/build/transaction/utils/WitnessUtils.js.map +1 -0
  612. package/build/tsconfig.build.tsbuildinfo +1 -1
  613. package/build/utils/BitcoinUtils.d.ts +19 -0
  614. package/build/utils/BitcoinUtils.d.ts.map +1 -0
  615. package/build/utils/BitcoinUtils.js +19 -0
  616. package/build/utils/BitcoinUtils.js.map +1 -0
  617. package/build/utils/BufferHelper.d.ts +2 -1
  618. package/build/utils/BufferHelper.d.ts.map +1 -0
  619. package/build/utils/BufferHelper.js +38 -32
  620. package/build/utils/BufferHelper.js.map +1 -0
  621. package/build/utils/StringToBuffer.d.ts +1 -0
  622. package/build/utils/StringToBuffer.d.ts.map +1 -0
  623. package/build/utils/StringToBuffer.js +1 -0
  624. package/build/utils/StringToBuffer.js.map +1 -0
  625. package/build/utils/lengths.d.ts +1 -0
  626. package/build/utils/lengths.d.ts.map +1 -0
  627. package/build/utils/lengths.js +1 -0
  628. package/build/utils/lengths.js.map +1 -0
  629. package/build/utils/types.d.ts +1 -0
  630. package/build/utils/types.d.ts.map +1 -0
  631. package/build/utils/types.js +2 -1
  632. package/build/utils/types.js.map +1 -0
  633. package/build/utxo/OPNetLimitedProvider.d.ts +39 -3
  634. package/build/utxo/OPNetLimitedProvider.d.ts.map +1 -0
  635. package/build/utxo/OPNetLimitedProvider.js +41 -3
  636. package/build/utxo/OPNetLimitedProvider.js.map +1 -0
  637. package/build/utxo/interfaces/BroadcastResponse.d.ts +1 -0
  638. package/build/utxo/interfaces/BroadcastResponse.d.ts.map +1 -0
  639. package/build/utxo/interfaces/BroadcastResponse.js +1 -0
  640. package/build/utxo/interfaces/BroadcastResponse.js.map +1 -0
  641. package/build/utxo/interfaces/IUTXO.d.ts +13 -7
  642. package/build/utxo/interfaces/IUTXO.d.ts.map +1 -0
  643. package/build/utxo/interfaces/IUTXO.js +1 -0
  644. package/build/utxo/interfaces/IUTXO.js.map +1 -0
  645. package/build/verification/TapscriptVerificator.d.ts +12 -10
  646. package/build/verification/TapscriptVerificator.d.ts.map +1 -0
  647. package/build/verification/TapscriptVerificator.js +28 -38
  648. package/build/verification/TapscriptVerificator.js.map +1 -0
  649. package/eslint.config.js +0 -1
  650. package/package.json +16 -39
  651. package/src/abi/ABICoder.ts +0 -13
  652. package/src/branded/Branded.ts +5 -0
  653. package/src/buffer/BinaryReader.ts +7 -7
  654. package/src/buffer/BinaryWriter.ts +29 -24
  655. package/src/bytecode/Compressor.ts +1 -1
  656. package/src/chain/ChainData.ts +34 -27
  657. package/src/consensus/ConsensusConfig.ts +1 -1
  658. package/src/consensus/IConsensusConfig.ts +0 -17
  659. package/src/consensus/metadata/RoswellConsensus.ts +1 -17
  660. package/src/crypto/crypto-browser.js +3 -4
  661. package/src/deterministic/AddressMap.ts +5 -1
  662. package/src/deterministic/AddressSet.ts +5 -1
  663. package/src/deterministic/CustomMap.ts +6 -2
  664. package/src/deterministic/DeterministicMap.ts +8 -4
  665. package/src/deterministic/DeterministicSet.ts +6 -2
  666. package/src/deterministic/ExtendedAddressMap.ts +9 -4
  667. package/src/deterministic/FastMap.ts +9 -5
  668. package/src/ecc/backend.ts +17 -0
  669. package/src/epoch/ChallengeSolution.ts +3 -3
  670. package/src/epoch/interfaces/IChallengeSolution.ts +13 -13
  671. package/src/epoch/validator/EpochValidator.ts +24 -43
  672. package/src/generators/AddressGenerator.ts +6 -6
  673. package/src/generators/Features.ts +3 -3
  674. package/src/generators/Generator.ts +42 -26
  675. package/src/generators/builders/CalldataGenerator.ts +26 -24
  676. package/src/generators/builders/CustomGenerator.ts +4 -4
  677. package/src/generators/builders/DeploymentGenerator.ts +25 -23
  678. package/src/generators/builders/HashCommitmentGenerator.ts +31 -31
  679. package/src/generators/builders/LegacyCalldataGenerator.ts +26 -24
  680. package/src/generators/builders/MultiSignGenerator.ts +12 -12
  681. package/src/generators/builders/P2WDAGenerator.ts +10 -10
  682. package/src/keypair/Address.ts +115 -72
  683. package/src/keypair/AddressVerificator.ts +16 -147
  684. package/src/keypair/EcKeyPair.ts +109 -118
  685. package/src/keypair/MessageSigner.ts +70 -150
  686. package/src/keypair/Wallet.ts +59 -240
  687. package/src/metadata/ContractBaseMetadata.ts +2 -2
  688. package/src/mnemonic/Mnemonic.ts +32 -221
  689. package/src/opnet.ts +12 -6
  690. package/src/p2wda/P2WDADetector.ts +23 -72
  691. package/src/polyfill/disposable.ts +29 -0
  692. package/src/signer/AddressRotation.ts +1 -1
  693. package/src/signer/IRotationSigner.ts +3 -3
  694. package/src/signer/ParallelSignerAdapter.ts +59 -0
  695. package/src/signer/SignerUtils.ts +4 -4
  696. package/src/signer/TweakedSigner.ts +28 -13
  697. package/src/transaction/ContractAddress.ts +3 -7
  698. package/src/transaction/TransactionFactory.ts +28 -50
  699. package/src/transaction/browser/BrowserSignerBase.ts +12 -6
  700. package/src/transaction/browser/Web3Provider.ts +3 -3
  701. package/src/transaction/browser/extensions/UnisatSigner.ts +52 -48
  702. package/src/transaction/browser/extensions/XverseSigner.ts +55 -38
  703. package/src/transaction/browser/types/OPWallet.ts +2 -2
  704. package/src/transaction/browser/types/Unisat.ts +1 -1
  705. package/src/transaction/builders/CancelTransaction.ts +59 -24
  706. package/src/transaction/builders/ChallengeSolutionTransaction.ts +3 -3
  707. package/src/transaction/builders/ConsolidatedInteractionTransaction.ts +39 -34
  708. package/src/transaction/builders/CustomScriptTransaction.ts +79 -56
  709. package/src/transaction/builders/DeploymentTransaction.ts +82 -63
  710. package/src/transaction/builders/FundingTransaction.ts +11 -11
  711. package/src/transaction/builders/InteractionTransaction.ts +10 -10
  712. package/src/transaction/builders/InteractionTransactionP2WDA.ts +38 -40
  713. package/src/transaction/builders/MultiSignTransaction.ts +68 -61
  714. package/src/transaction/builders/SharedInteractionTransaction.ts +81 -57
  715. package/src/transaction/builders/TransactionBuilder.ts +101 -79
  716. package/src/transaction/interfaces/ICancelTransactionParameters.ts +2 -2
  717. package/src/transaction/interfaces/IConsolidatedTransactionParameters.ts +5 -5
  718. package/src/transaction/interfaces/ICustomTransactionParameters.ts +5 -5
  719. package/src/transaction/interfaces/ITransactionParameters.ts +15 -15
  720. package/src/transaction/interfaces/ITransactionResponses.ts +2 -2
  721. package/src/transaction/interfaces/ITweakedTransactionData.ts +17 -8
  722. package/src/transaction/interfaces/IWeb3ProviderTypes.ts +3 -3
  723. package/src/transaction/interfaces/Tap.ts +3 -3
  724. package/src/transaction/mineable/IP2WSHAddress.ts +1 -1
  725. package/src/transaction/mineable/TimelockGenerator.ts +19 -12
  726. package/src/transaction/offline/OfflineTransactionManager.ts +22 -23
  727. package/src/transaction/offline/TransactionReconstructor.ts +83 -91
  728. package/src/transaction/offline/TransactionSerializer.ts +151 -101
  729. package/src/transaction/offline/TransactionStateCapture.ts +83 -79
  730. package/src/transaction/offline/interfaces/ISerializableState.ts +1 -1
  731. package/src/transaction/offline/interfaces/ITypeSpecificData.ts +1 -1
  732. package/src/transaction/shared/P2TR_MS.ts +4 -4
  733. package/src/transaction/shared/TweakedTransaction.ts +326 -124
  734. package/src/transaction/utils/WitnessUtils.ts +18 -9
  735. package/src/utils/BufferHelper.ts +39 -37
  736. package/src/utxo/OPNetLimitedProvider.ts +7 -7
  737. package/src/utxo/interfaces/IUTXO.ts +7 -7
  738. package/src/verification/TapscriptVerificator.ts +73 -86
  739. package/test/address-rotation.test.ts +24 -24
  740. package/test/address.test.ts +12 -12
  741. package/test/addressmap.test.ts +30 -30
  742. package/test/binary-reader-writer.test.ts +8 -8
  743. package/test/browser/offline-transaction.test.ts +2206 -0
  744. package/test/browser/parallel-signing.test.ts +316 -0
  745. package/test/browser/setup.ts +11 -0
  746. package/test/browser/transaction-signing.test.ts +416 -0
  747. package/test/buffer-helper.test.ts +287 -0
  748. package/test/derivePath.test.ts +4 -3
  749. package/test/disposable.test.ts +279 -0
  750. package/test/fastmap-setall.test.ts +1 -1
  751. package/test/fastmap.test.ts +3 -3
  752. package/test/messagesigner-mldsa.test.ts +3 -3
  753. package/test/messagesigner-schnorr.test.ts +9 -9
  754. package/test/offline-transaction.test.ts +461 -288
  755. package/test/old/FastBigIntMap.ts +3 -3
  756. package/test/oldfastmap.test.ts +6 -6
  757. package/test/transaction-builders.test.ts +321 -0
  758. package/tsconfig.base.json +34 -18
  759. package/tsconfig.browser.json +15 -0
  760. package/tsconfig.json +3 -8
  761. package/vite.config.browser.ts +4 -5
  762. package/vitest.config.browser.ts +68 -0
  763. package/vitest.config.ts +1 -1
  764. package/browser/valibot.js +0 -4948
  765. package/tsconfig.webpack.json +0 -18
@@ -1,15 +1,11 @@
1
1
  import { Secp256k1PointDeriver } from '../keypair/Secp256k1PointDeriver.js';
2
2
  class ContractAddressBase {
3
- constructor() {
4
- this.deriver = new Secp256k1PointDeriver();
5
- }
3
+ deriver = new Secp256k1PointDeriver();
6
4
  generateHybridKeyFromHash(input) {
7
- const p = this.deriver.findOrDeriveValidPoint(this.cloneBuffer(input), false);
5
+ const p = this.deriver.findOrDeriveValidPoint(new Uint8Array(input), false);
8
6
  const y = this.deriver.getCanonicalY(p.y1, p.y2);
9
- return Buffer.from(this.deriver.getHybridPublicKey(p.x, y));
10
- }
11
- cloneBuffer(buffer) {
12
- return Buffer.from(buffer);
7
+ return new Uint8Array(this.deriver.getHybridPublicKey(p.x, y));
13
8
  }
14
9
  }
15
10
  export const ContractAddress = new ContractAddressBase();
11
+ //# sourceMappingURL=ContractAddress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContractAddress.js","sourceRoot":"","sources":["../../src/transaction/ContractAddress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAE5E,MAAM,mBAAmB;IACJ,OAAO,GAA0B,IAAI,qBAAqB,EAAE,CAAC;IAEvE,yBAAyB,CAAC,KAAiB;QAC9C,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;QAC5E,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QACjD,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACnE,CAAC;CACJ;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,mBAAmB,EAAE,CAAC"}
@@ -1,15 +1,15 @@
1
1
  import { Transaction } from '@btc-vision/bitcoin';
2
- import { UTXO } from '../utxo/interfaces/IUTXO.js';
2
+ import type { UTXO } from '../utxo/interfaces/IUTXO.js';
3
3
  import { FundingTransaction } from './builders/FundingTransaction.js';
4
4
  import { TransactionBuilder } from './builders/TransactionBuilder.js';
5
5
  import { TransactionType } from './enums/TransactionType.js';
6
- import { IDeploymentParameters, IFundingTransactionParameters, IInteractionParameters } from './interfaces/ITransactionParameters.js';
7
- import { ICancelTransactionParametersWithoutSigner, ICustomTransactionWithoutSigner, InteractionParametersWithoutSigner } from './interfaces/IWeb3ProviderTypes.js';
8
- import { RawChallenge } from '../epoch/interfaces/IChallengeSolution.js';
9
- import { IConsolidatedInteractionParameters } from './interfaces/IConsolidatedTransactionParameters.js';
10
- import { CancelledTransaction, DeploymentResult, InteractionResponse } from './interfaces/ITransactionResponses.js';
11
- import { ICancelTransactionParameters } from './interfaces/ICancelTransactionParameters.js';
12
- import { ICustomTransactionParameters } from './interfaces/ICustomTransactionParameters.js';
6
+ import type { IDeploymentParameters, IFundingTransactionParameters, IInteractionParameters } from './interfaces/ITransactionParameters.js';
7
+ import type { ICancelTransactionParametersWithoutSigner, ICustomTransactionWithoutSigner, InteractionParametersWithoutSigner } from './interfaces/IWeb3ProviderTypes.js';
8
+ import type { RawChallenge } from '../epoch/interfaces/IChallengeSolution.js';
9
+ import type { IConsolidatedInteractionParameters } from './interfaces/IConsolidatedTransactionParameters.js';
10
+ import type { CancelledTransaction, DeploymentResult, InteractionResponse } from './interfaces/ITransactionResponses.js';
11
+ import type { ICancelTransactionParameters } from './interfaces/ICancelTransactionParameters.js';
12
+ import type { ICustomTransactionParameters } from './interfaces/ICustomTransactionParameters.js';
13
13
  export interface FundingTransactionResponse {
14
14
  readonly tx: Transaction;
15
15
  readonly original: FundingTransaction;
@@ -26,16 +26,30 @@ export interface BitcoinTransferBase {
26
26
  export interface BitcoinTransferResponse extends BitcoinTransferBase {
27
27
  readonly original: FundingTransaction;
28
28
  }
29
+ /**
30
+ * Response from signConsolidatedInteraction.
31
+ * Contains both setup and reveal transactions for the CHCT system.
32
+ */
29
33
  export interface ConsolidatedInteractionResponse {
34
+ /** Setup transaction hex - creates P2WSH commitment outputs */
30
35
  readonly setupTransaction: string;
36
+ /** Reveal transaction hex - spends commitments, reveals data in witnesses */
31
37
  readonly revealTransaction: string;
38
+ /** Setup transaction ID */
32
39
  readonly setupTxId: string;
40
+ /** Reveal transaction ID */
33
41
  readonly revealTxId: string;
42
+ /** Total fees across both transactions in satoshis */
34
43
  readonly totalFees: bigint;
44
+ /** Number of data chunks */
35
45
  readonly chunkCount: number;
46
+ /** Total compiled data size in bytes */
36
47
  readonly dataSize: number;
48
+ /** Challenge for the interaction */
37
49
  readonly challenge: RawChallenge;
50
+ /** Input UTXOs used */
38
51
  readonly inputUtxos: UTXO[];
52
+ /** Compiled target script (same as InteractionTransaction) */
39
53
  readonly compiledTargetScript: string;
40
54
  }
41
55
  export declare class TransactionFactory {
@@ -44,22 +58,146 @@ export declare class TransactionFactory {
44
58
  private readonly P2TR_SCRIPT;
45
59
  private readonly INITIAL_FUNDING_ESTIMATE;
46
60
  private readonly MAX_ITERATIONS;
61
+ /**
62
+ * @description Creates a cancellable transaction.
63
+ * @param {ICancelTransactionParameters | ICancelTransactionParametersWithoutSigner} params - The cancel transaction parameters
64
+ * @returns {Promise<CancelledTransaction>} - The cancelled transaction result
65
+ */
47
66
  createCancellableTransaction(params: ICancelTransactionParameters | ICancelTransactionParametersWithoutSigner): Promise<CancelledTransaction>;
67
+ /**
68
+ * @description Generate a transaction with a custom script.
69
+ * @param {ICustomTransactionParameters | ICustomTransactionWithoutSigner} interactionParameters - The custom transaction parameters
70
+ * @returns {Promise<[string, string, UTXO[], UTXO[]]>} - The signed transaction tuple [fundingTx, customTx, nextUTXOs, inputUtxos]
71
+ */
48
72
  createCustomScriptTransaction(interactionParameters: ICustomTransactionParameters | ICustomTransactionWithoutSigner): Promise<[string, string, UTXO[], UTXO[]]>;
73
+ /**
74
+ * @description Generates the required transactions.
75
+ * @param {IInteractionParameters | InteractionParametersWithoutSigner} interactionParameters - The interaction parameters
76
+ * @returns {Promise<InteractionResponse>} - The signed transaction
77
+ */
49
78
  signInteraction(interactionParameters: IInteractionParameters | InteractionParametersWithoutSigner): Promise<InteractionResponse>;
79
+ /**
80
+ * @description Generates a consolidated interaction transaction (CHCT system).
81
+ *
82
+ * Drop-in replacement for signInteraction that bypasses BIP110/Bitcoin Knots censorship.
83
+ * Uses P2WSH with HASH160 commitments instead of Tapscript (which uses OP_IF and gets censored).
84
+ *
85
+ * Returns two transactions:
86
+ * - Setup: Creates P2WSH outputs with hash commitments to data chunks
87
+ * - Reveal: Spends those outputs, revealing data in witnesses
88
+ *
89
+ * Data integrity is consensus-enforced - if data is stripped/modified,
90
+ * HASH160(data) != committed_hash and the transaction is INVALID.
91
+ *
92
+ * @param {IConsolidatedInteractionParameters} interactionParameters - Same parameters as signInteraction
93
+ * @returns {Promise<ConsolidatedInteractionResponse>} - Both setup and reveal transactions
94
+ */
50
95
  signConsolidatedInteraction(interactionParameters: IConsolidatedInteractionParameters): Promise<ConsolidatedInteractionResponse>;
96
+ /**
97
+ * @description Generates the required transactions.
98
+ * @param {IDeploymentParameters} deploymentParameters - The deployment parameters
99
+ * @returns {Promise<DeploymentResult>} - The signed transaction
100
+ */
51
101
  signDeployment(deploymentParameters: IDeploymentParameters): Promise<DeploymentResult>;
102
+ /**
103
+ * @description Creates a funding transaction.
104
+ * @param {IFundingTransactionParameters} parameters - The funding transaction parameters
105
+ * @returns {Promise<BitcoinTransferResponse>} - The signed transaction
106
+ */
52
107
  createBTCTransfer(parameters: IFundingTransactionParameters): Promise<BitcoinTransferResponse>;
108
+ /**
109
+ * Get all new UTXOs of a generated transaction.
110
+ * @param {TransactionBuilder<TransactionType>} original - The original transaction
111
+ * @param {Transaction} tx - The transaction
112
+ * @param {string} to - The address to filter
113
+ * @returns {UTXO[]} - The new UTXOs belonging to the specified address
114
+ */
53
115
  getAllNewUTXOs(original: TransactionBuilder<TransactionType>, tx: Transaction, to: string): UTXO[];
116
+ /**
117
+ * Parse optional inputs and normalize nonWitnessUtxo format.
118
+ * @param {UTXO[]} optionalInputs - The optional inputs to parse
119
+ * @returns {UTXO[]} - The parsed inputs with normalized nonWitnessUtxo
120
+ */
54
121
  private parseOptionalInputs;
122
+ /**
123
+ * Detect and use OP_WALLET for cancel transactions if available.
124
+ * @param {ICancelTransactionParameters | ICancelTransactionParametersWithoutSigner} interactionParameters - The cancel parameters
125
+ * @returns {Promise<CancelledTransaction | null>} - The cancelled transaction or null if OP_WALLET not available
126
+ */
55
127
  private detectCancelOPWallet;
128
+ /**
129
+ * Detect and use OP_WALLET for interaction transactions if available.
130
+ * @param {IInteractionParameters | InteractionParametersWithoutSigner} interactionParameters - The interaction parameters
131
+ * @returns {Promise<InteractionResponse | null>} - The interaction response or null if OP_WALLET not available
132
+ */
56
133
  private detectInteractionOPWallet;
134
+ /**
135
+ * Detect and use OP_WALLET for deployment transactions if available.
136
+ * @param {IDeploymentParameters | IDeploymentParametersWithoutSigner} deploymentParameters - The deployment parameters
137
+ * @returns {Promise<DeploymentResult | null>} - The deployment result or null if OP_WALLET not available
138
+ */
57
139
  private detectDeploymentOPWallet;
140
+ /**
141
+ * Create and sign a funding transaction.
142
+ * @param {IFundingTransactionParameters} parameters - The funding transaction parameters
143
+ * @returns {Promise<FundingTransactionResponse>} - The funding transaction response
144
+ */
58
145
  private createFundTransaction;
146
+ /**
147
+ * Check if the UTXOs contain any P2WDA inputs
148
+ *
149
+ * This method examines both main UTXOs and optional inputs to determine
150
+ * if any of them are P2WDA addresses. P2WDA detection is based on the
151
+ * witness script pattern: (OP_2DROP * 5) <pubkey> OP_CHECKSIG
152
+ *
153
+ * @param {UTXO[]} utxos - The main UTXOs to check
154
+ * @returns {boolean} - true if any UTXO is P2WDA, false otherwise
155
+ */
59
156
  private hasP2WDAInputs;
60
- private writePSBTHeader;
157
+ /**
158
+ * Sign a P2WDA interaction transaction
159
+ *
160
+ * P2WDA interactions are fundamentally different from standard OP_NET interactions.
161
+ * Instead of using a two-transaction model (funding + interaction), P2WDA embeds
162
+ * the operation data directly in the witness field of a single transaction.
163
+ * This achieves significant cost savings through the witness discount.
164
+ *
165
+ * Key differences:
166
+ * - Single transaction instead of two
167
+ * - Operation data in witness field instead of taproot script
168
+ * - 75% cost reduction for data storage
169
+ * - No separate funding transaction needed
170
+ *
171
+ * @param {IInteractionParameters | InteractionParametersWithoutSigner} interactionParameters - The interaction parameters
172
+ * @returns {Promise<InteractionResponse>} - The signed P2WDA interaction response
173
+ */
61
174
  private signP2WDAInteraction;
175
+ /**
176
+ * Get the priority fee from transaction parameters.
177
+ * @param {ITransactionParameters} params - The transaction parameters
178
+ * @returns {bigint} - The priority fee, minimum dust if below threshold
179
+ */
62
180
  private getPriorityFee;
181
+ /**
182
+ * Common iteration logic for finding the correct funding amount.
183
+ *
184
+ * This method iteratively estimates the required funding amount by simulating
185
+ * transactions until the amount converges or max iterations is reached.
186
+ *
187
+ * @param {P} params - The transaction parameters
188
+ * @param {new (params: P) => T} TransactionClass - The transaction class constructor
189
+ * @param {(tx: T) => Promise<bigint>} calculateAmount - Function to calculate required amount
190
+ * @param {string} debugPrefix - Prefix for debug logging
191
+ * @returns {Promise<{finalTransaction: T, estimatedAmount: bigint, challenge: IChallengeSolution | null}>} - The final transaction and estimated amount
192
+ */
63
193
  private iterateFundingAmount;
194
+ /**
195
+ * Convert a transaction output to a UTXO.
196
+ * @param {Transaction} tx - The transaction
197
+ * @param {string} to - The address
198
+ * @param {number} index - The output index
199
+ * @returns {UTXO[]} - The UTXO array (empty if output doesn't exist)
200
+ */
64
201
  private getUTXOAsTransaction;
65
202
  }
203
+ //# sourceMappingURL=TransactionFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransactionFactory.d.ts","sourceRoot":"","sources":["../../src/transaction/TransactionFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0D,WAAW,EAAiB,MAAM,qBAAqB,CAAC;AACzH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAGxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAEtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EACR,qBAAqB,EACrB,6BAA6B,EAC7B,sBAAsB,EAEzB,MAAM,wCAAwC,CAAC;AAChD,OAAO,KAAK,EACR,yCAAyC,EACzC,+BAA+B,EAE/B,kCAAkC,EACrC,MAAM,oCAAoC,CAAC;AAE5C,OAAO,KAAK,EAAsB,YAAY,EAAE,MAAM,2CAA2C,CAAC;AAOlG,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,oDAAoD,CAAC;AAC7G,OAAO,KAAK,EACR,oBAAoB,EACpB,gBAAgB,EAChB,mBAAmB,EACtB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,8CAA8C,CAAC;AACjG,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,8CAA8C,CAAC;AAEjG,MAAM,WAAW,0BAA0B;IACvC,QAAQ,CAAC,EAAE,EAAE,WAAW,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,mBAAmB;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,uBAAwB,SAAQ,mBAAmB;IAChE,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;CACzC;AAED;;;GAGG;AACH,MAAM,WAAW,+BAA+B;IAC5C,+DAA+D;IAC/D,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,6EAA6E;IAC7E,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,2BAA2B;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,4BAA4B;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,sDAAsD;IACtD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,4BAA4B;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,wCAAwC;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,oCAAoC;IACpC,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC;IACjC,uBAAuB;IACvB,QAAQ,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC;IAC5B,8DAA8D;IAC9D,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;CACzC;AAED,qBAAa,kBAAkB;IACpB,KAAK,EAAE,OAAO,CAAS;IAE9B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA8B;IAC3D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAiE;IAC7F,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAS;IAClD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAM;IAErC;;;;OAIG;IACU,4BAA4B,CACrC,MAAM,EAAE,4BAA4B,GAAG,yCAAyC,GACjF,OAAO,CAAC,oBAAoB,CAAC;IA+BhC;;;;OAIG;IACU,6BAA6B,CACtC,qBAAqB,EAAE,4BAA4B,GAAG,+BAA+B,GACtF,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IA6E5C;;;;OAIG;IACU,eAAe,CACxB,qBAAqB,EAAE,sBAAsB,GAAG,kCAAkC,GACnF,OAAO,CAAC,mBAAmB,CAAC;IA0G/B;;;;;;;;;;;;;;;OAeG;IACU,2BAA2B,CACpC,qBAAqB,EAAE,kCAAkC,GAC1D,OAAO,CAAC,+BAA+B,CAAC;IAwC3C;;;;OAIG;IACU,cAAc,CACvB,oBAAoB,EAAE,qBAAqB,GAC5C,OAAO,CAAC,gBAAgB,CAAC;IAuG5B;;;;OAIG;IACU,iBAAiB,CAC1B,UAAU,EAAE,6BAA6B,GAC1C,OAAO,CAAC,uBAAuB,CAAC;IAenC;;;;;;OAMG;IACI,cAAc,CACjB,QAAQ,EAAE,kBAAkB,CAAC,eAAe,CAAC,EAC7C,EAAE,EAAE,WAAW,EACf,EAAE,EAAE,MAAM,GACX,IAAI,EAAE;IAkBT;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAkB3B;;;;OAIG;YACW,oBAAoB;IA+BlC;;;;OAIG;YACW,yBAAyB;IA6BvC;;;;OAIG;YACW,wBAAwB;IA6BtC;;;;OAIG;YACW,qBAAqB;IAoBnC;;;;;;;;;OASG;IACH,OAAO,CAAC,cAAc;IAItB;;;;;;;;;;;;;;;;OAgBG;YACW,oBAAoB;IAuClC;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAStB;;;;;;;;;;;OAWG;YACW,oBAAoB;IAiHlC;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;CAgB/B"}
@@ -1,10 +1,10 @@
1
- import { Transaction } from '@btc-vision/bitcoin';
2
- import { currentConsensus } from '../consensus/ConsensusConfig.js';
1
+ import { toHex, toSatoshi, Transaction } from '@btc-vision/bitcoin';
3
2
  import { CustomScriptTransaction } from './builders/CustomScriptTransaction.js';
4
3
  import { DeploymentTransaction } from './builders/DeploymentTransaction.js';
5
4
  import { FundingTransaction } from './builders/FundingTransaction.js';
6
5
  import { InteractionTransaction } from './builders/InteractionTransaction.js';
7
6
  import { TransactionBuilder } from './builders/TransactionBuilder.js';
7
+ import { TransactionType } from './enums/TransactionType.js';
8
8
  import { P2WDADetector } from '../p2wda/P2WDADetector.js';
9
9
  import { InteractionTransactionP2WDA } from './builders/InteractionTransactionP2WDA.js';
10
10
  import { Address } from '../keypair/Address.js';
@@ -12,13 +12,16 @@ import { BitcoinUtils } from '../utils/BitcoinUtils.js';
12
12
  import { CancelTransaction } from './builders/CancelTransaction.js';
13
13
  import { ConsolidatedInteractionTransaction } from './builders/ConsolidatedInteractionTransaction.js';
14
14
  export class TransactionFactory {
15
- constructor() {
16
- this.debug = false;
17
- this.DUMMY_PUBKEY = Buffer.alloc(32, 1);
18
- this.P2TR_SCRIPT = Buffer.concat([Buffer.from([0x51, 0x20]), this.DUMMY_PUBKEY]);
19
- this.INITIAL_FUNDING_ESTIMATE = 2000n;
20
- this.MAX_ITERATIONS = 10;
21
- }
15
+ debug = false;
16
+ DUMMY_PUBKEY = new Uint8Array(32).fill(1);
17
+ P2TR_SCRIPT = Uint8Array.from([0x51, 0x20, ...this.DUMMY_PUBKEY]);
18
+ INITIAL_FUNDING_ESTIMATE = 2000n;
19
+ MAX_ITERATIONS = 10;
20
+ /**
21
+ * @description Creates a cancellable transaction.
22
+ * @param {ICancelTransactionParameters | ICancelTransactionParametersWithoutSigner} params - The cancel transaction parameters
23
+ * @returns {Promise<CancelledTransaction>} - The cancelled transaction result
24
+ */
22
25
  async createCancellableTransaction(params) {
23
26
  if (!params.to) {
24
27
  throw new Error('Field "to" not provided.');
@@ -45,6 +48,11 @@ export class TransactionFactory {
45
48
  inputUtxos: params.utxos,
46
49
  };
47
50
  }
51
+ /**
52
+ * @description Generate a transaction with a custom script.
53
+ * @param {ICustomTransactionParameters | ICustomTransactionWithoutSigner} interactionParameters - The custom transaction parameters
54
+ * @returns {Promise<[string, string, UTXO[], UTXO[]]>} - The signed transaction tuple [fundingTx, customTx, nextUTXOs, inputUtxos]
55
+ */
48
56
  async createCustomScriptTransaction(interactionParameters) {
49
57
  if (!interactionParameters.to) {
50
58
  throw new Error('Field "to" not provided.');
@@ -59,7 +67,7 @@ export class TransactionFactory {
59
67
  throw new Error('Field "signer" not provided, OP_WALLET not detected.');
60
68
  }
61
69
  const inputs = this.parseOptionalInputs(interactionParameters.optionalInputs);
62
- const { finalTransaction, estimatedAmount, challenge } = await this.iterateFundingAmount({ ...interactionParameters, optionalInputs: inputs }, CustomScriptTransaction, async (tx) => {
70
+ const { finalTransaction, estimatedAmount } = await this.iterateFundingAmount({ ...interactionParameters, optionalInputs: inputs }, CustomScriptTransaction, async (tx) => {
63
71
  const fee = await tx.estimateTransactionFees();
64
72
  const priorityFee = this.getPriorityFee(interactionParameters);
65
73
  const optionalValue = tx.getOptionalOutputValue();
@@ -103,6 +111,11 @@ export class TransactionFactory {
103
111
  interactionParameters.utxos,
104
112
  ];
105
113
  }
114
+ /**
115
+ * @description Generates the required transactions.
116
+ * @param {IInteractionParameters | InteractionParametersWithoutSigner} interactionParameters - The interaction parameters
117
+ * @returns {Promise<InteractionResponse>} - The signed transaction
118
+ */
106
119
  async signInteraction(interactionParameters) {
107
120
  if (!interactionParameters.to) {
108
121
  throw new Error('Field "to" not provided.');
@@ -175,9 +188,25 @@ export class TransactionFactory {
175
188
  challenge: challenge.toRaw(),
176
189
  fundingUTXOs: fundingUTXO,
177
190
  fundingInputUtxos: interactionParameters.utxos,
178
- compiledTargetScript: interactionTx.exportCompiledTargetScript().toString('hex'),
191
+ compiledTargetScript: toHex(interactionTx.exportCompiledTargetScript()),
179
192
  };
180
193
  }
194
+ /**
195
+ * @description Generates a consolidated interaction transaction (CHCT system).
196
+ *
197
+ * Drop-in replacement for signInteraction that bypasses BIP110/Bitcoin Knots censorship.
198
+ * Uses P2WSH with HASH160 commitments instead of Tapscript (which uses OP_IF and gets censored).
199
+ *
200
+ * Returns two transactions:
201
+ * - Setup: Creates P2WSH outputs with hash commitments to data chunks
202
+ * - Reveal: Spends those outputs, revealing data in witnesses
203
+ *
204
+ * Data integrity is consensus-enforced - if data is stripped/modified,
205
+ * HASH160(data) != committed_hash and the transaction is INVALID.
206
+ *
207
+ * @param {IConsolidatedInteractionParameters} interactionParameters - Same parameters as signInteraction
208
+ * @returns {Promise<ConsolidatedInteractionResponse>} - Both setup and reveal transactions
209
+ */
181
210
  async signConsolidatedInteraction(interactionParameters) {
182
211
  if (!interactionParameters.to) {
183
212
  throw new Error('Field "to" not provided.');
@@ -210,9 +239,14 @@ export class TransactionFactory {
210
239
  dataSize: result.setup.totalDataSize,
211
240
  challenge: consolidatedTx.getChallenge().toRaw(),
212
241
  inputUtxos: interactionParameters.utxos,
213
- compiledTargetScript: consolidatedTx.exportCompiledTargetScript().toString('hex'),
242
+ compiledTargetScript: toHex(consolidatedTx.exportCompiledTargetScript()),
214
243
  };
215
244
  }
245
+ /**
246
+ * @description Generates the required transactions.
247
+ * @param {IDeploymentParameters} deploymentParameters - The deployment parameters
248
+ * @returns {Promise<DeploymentResult>} - The signed transaction
249
+ */
216
250
  async signDeployment(deploymentParameters) {
217
251
  const opWalletDeployment = await this.detectDeploymentOPWallet(deploymentParameters);
218
252
  if (opWalletDeployment) {
@@ -257,7 +291,7 @@ export class TransactionFactory {
257
291
  transactionId: signedTransaction.getId(),
258
292
  outputIndex: 0,
259
293
  scriptPubKey: {
260
- hex: out.script.toString('hex'),
294
+ hex: toHex(out.script),
261
295
  address: finalTransaction.getScriptAddress(),
262
296
  },
263
297
  value: BigInt(out.value),
@@ -279,7 +313,7 @@ export class TransactionFactory {
279
313
  transactionId: signedTransaction.getId(),
280
314
  outputIndex: 1,
281
315
  scriptPubKey: {
282
- hex: out2.script.toString('hex'),
316
+ hex: toHex(out2.script),
283
317
  address: deploymentParameters.from,
284
318
  },
285
319
  value: BigInt(out2.value),
@@ -293,6 +327,11 @@ export class TransactionFactory {
293
327
  inputUtxos: deploymentParameters.utxos,
294
328
  };
295
329
  }
330
+ /**
331
+ * @description Creates a funding transaction.
332
+ * @param {IFundingTransactionParameters} parameters - The funding transaction parameters
333
+ * @returns {Promise<BitcoinTransferResponse>} - The signed transaction
334
+ */
296
335
  async createBTCTransfer(parameters) {
297
336
  if (!parameters.from) {
298
337
  throw new Error('Field "from" not provided.');
@@ -306,6 +345,13 @@ export class TransactionFactory {
306
345
  inputUtxos: parameters.utxos,
307
346
  };
308
347
  }
348
+ /**
349
+ * Get all new UTXOs of a generated transaction.
350
+ * @param {TransactionBuilder<TransactionType>} original - The original transaction
351
+ * @param {Transaction} tx - The transaction
352
+ * @param {string} to - The address to filter
353
+ * @returns {UTXO[]} - The new UTXOs belonging to the specified address
354
+ */
309
355
  getAllNewUTXOs(original, tx, to) {
310
356
  const outputs = original.getOutputs();
311
357
  const utxos = [];
@@ -322,13 +368,18 @@ export class TransactionFactory {
322
368
  }
323
369
  return utxos;
324
370
  }
371
+ /**
372
+ * Parse optional inputs and normalize nonWitnessUtxo format.
373
+ * @param {UTXO[]} optionalInputs - The optional inputs to parse
374
+ * @returns {UTXO[]} - The parsed inputs with normalized nonWitnessUtxo
375
+ */
325
376
  parseOptionalInputs(optionalInputs) {
326
377
  return (optionalInputs || []).map((input) => {
327
378
  let nonWitness = input.nonWitnessUtxo;
328
379
  if (nonWitness &&
329
380
  !(nonWitness instanceof Uint8Array) &&
330
381
  typeof nonWitness === 'object') {
331
- nonWitness = Buffer.from(Uint8Array.from(Object.values(input.nonWitnessUtxo)));
382
+ nonWitness = Uint8Array.from(Object.values(nonWitness));
332
383
  }
333
384
  return {
334
385
  ...input,
@@ -336,6 +387,11 @@ export class TransactionFactory {
336
387
  };
337
388
  });
338
389
  }
390
+ /**
391
+ * Detect and use OP_WALLET for cancel transactions if available.
392
+ * @param {ICancelTransactionParameters | ICancelTransactionParametersWithoutSigner} interactionParameters - The cancel parameters
393
+ * @returns {Promise<CancelledTransaction | null>} - The cancelled transaction or null if OP_WALLET not available
394
+ */
339
395
  async detectCancelOPWallet(interactionParameters) {
340
396
  if (typeof window === 'undefined') {
341
397
  return null;
@@ -347,6 +403,7 @@ export class TransactionFactory {
347
403
  const opnet = _window.opnet.web3;
348
404
  const interaction = await opnet.cancelTransaction({
349
405
  ...interactionParameters,
406
+ // @ts-expect-error no, this is ok
350
407
  signer: undefined,
351
408
  });
352
409
  if (!interaction) {
@@ -357,6 +414,11 @@ export class TransactionFactory {
357
414
  inputUtxos: interaction.inputUtxos ?? interactionParameters.utxos,
358
415
  };
359
416
  }
417
+ /**
418
+ * Detect and use OP_WALLET for interaction transactions if available.
419
+ * @param {IInteractionParameters | InteractionParametersWithoutSigner} interactionParameters - The interaction parameters
420
+ * @returns {Promise<InteractionResponse | null>} - The interaction response or null if OP_WALLET not available
421
+ */
360
422
  async detectInteractionOPWallet(interactionParameters) {
361
423
  if (typeof window === 'undefined') {
362
424
  return null;
@@ -368,6 +430,7 @@ export class TransactionFactory {
368
430
  const opnet = _window.opnet.web3;
369
431
  const interaction = await opnet.signInteraction({
370
432
  ...interactionParameters,
433
+ // @ts-expect-error no, this is ok
371
434
  signer: undefined,
372
435
  });
373
436
  if (!interaction) {
@@ -378,6 +441,11 @@ export class TransactionFactory {
378
441
  fundingInputUtxos: interaction.fundingInputUtxos ?? interactionParameters.utxos,
379
442
  };
380
443
  }
444
+ /**
445
+ * Detect and use OP_WALLET for deployment transactions if available.
446
+ * @param {IDeploymentParameters | IDeploymentParametersWithoutSigner} deploymentParameters - The deployment parameters
447
+ * @returns {Promise<DeploymentResult | null>} - The deployment result or null if OP_WALLET not available
448
+ */
381
449
  async detectDeploymentOPWallet(deploymentParameters) {
382
450
  if (typeof window === 'undefined') {
383
451
  return null;
@@ -389,6 +457,7 @@ export class TransactionFactory {
389
457
  const opnet = _window.opnet.web3;
390
458
  const deployment = await opnet.deployContract({
391
459
  ...deploymentParameters,
460
+ // @ts-expect-error no, this is ok
392
461
  signer: undefined,
393
462
  });
394
463
  if (!deployment) {
@@ -399,6 +468,11 @@ export class TransactionFactory {
399
468
  inputUtxos: deployment.inputUtxos ?? deploymentParameters.utxos,
400
469
  };
401
470
  }
471
+ /**
472
+ * Create and sign a funding transaction.
473
+ * @param {IFundingTransactionParameters} parameters - The funding transaction parameters
474
+ * @returns {Promise<FundingTransactionResponse>} - The funding transaction response
475
+ */
402
476
  async createFundTransaction(parameters) {
403
477
  if (!parameters.to)
404
478
  throw new Error('Field "to" not provided.');
@@ -415,16 +489,36 @@ export class TransactionFactory {
415
489
  inputUtxos: parameters.utxos,
416
490
  };
417
491
  }
492
+ /**
493
+ * Check if the UTXOs contain any P2WDA inputs
494
+ *
495
+ * This method examines both main UTXOs and optional inputs to determine
496
+ * if any of them are P2WDA addresses. P2WDA detection is based on the
497
+ * witness script pattern: (OP_2DROP * 5) <pubkey> OP_CHECKSIG
498
+ *
499
+ * @param {UTXO[]} utxos - The main UTXOs to check
500
+ * @returns {boolean} - true if any UTXO is P2WDA, false otherwise
501
+ */
418
502
  hasP2WDAInputs(utxos) {
419
503
  return utxos.some((utxo) => P2WDADetector.isP2WDAUTXO(utxo));
420
504
  }
421
- writePSBTHeader(type, psbt) {
422
- const buf = Buffer.from(psbt, 'base64');
423
- const header = Buffer.alloc(2);
424
- header.writeUInt8(type, 0);
425
- header.writeUInt8(currentConsensus, 1);
426
- return Buffer.concat([header, buf]).toString('hex');
427
- }
505
+ /**
506
+ * Sign a P2WDA interaction transaction
507
+ *
508
+ * P2WDA interactions are fundamentally different from standard OP_NET interactions.
509
+ * Instead of using a two-transaction model (funding + interaction), P2WDA embeds
510
+ * the operation data directly in the witness field of a single transaction.
511
+ * This achieves significant cost savings through the witness discount.
512
+ *
513
+ * Key differences:
514
+ * - Single transaction instead of two
515
+ * - Operation data in witness field instead of taproot script
516
+ * - 75% cost reduction for data storage
517
+ * - No separate funding transaction needed
518
+ *
519
+ * @param {IInteractionParameters | InteractionParametersWithoutSigner} interactionParameters - The interaction parameters
520
+ * @returns {Promise<InteractionResponse>} - The signed P2WDA interaction response
521
+ */
428
522
  async signP2WDAInteraction(interactionParameters) {
429
523
  if (!interactionParameters.from) {
430
524
  throw new Error('Field "from" not provided.');
@@ -451,6 +545,11 @@ export class TransactionFactory {
451
545
  compiledTargetScript: null,
452
546
  };
453
547
  }
548
+ /**
549
+ * Get the priority fee from transaction parameters.
550
+ * @param {ITransactionParameters} params - The transaction parameters
551
+ * @returns {bigint} - The priority fee, minimum dust if below threshold
552
+ */
454
553
  getPriorityFee(params) {
455
554
  const totalFee = params.priorityFee + params.gasSatFee;
456
555
  if (totalFee < TransactionBuilder.MINIMUM_DUST) {
@@ -458,6 +557,18 @@ export class TransactionFactory {
458
557
  }
459
558
  return totalFee;
460
559
  }
560
+ /**
561
+ * Common iteration logic for finding the correct funding amount.
562
+ *
563
+ * This method iteratively estimates the required funding amount by simulating
564
+ * transactions until the amount converges or max iterations is reached.
565
+ *
566
+ * @param {P} params - The transaction parameters
567
+ * @param {new (params: P) => T} TransactionClass - The transaction class constructor
568
+ * @param {(tx: T) => Promise<bigint>} calculateAmount - Function to calculate required amount
569
+ * @param {string} debugPrefix - Prefix for debug logging
570
+ * @returns {Promise<{finalTransaction: T, estimatedAmount: bigint, challenge: IChallengeSolution | null}>} - The final transaction and estimated amount
571
+ */
461
572
  async iterateFundingAmount(params, TransactionClass, calculateAmount, debugPrefix) {
462
573
  const randomBytes = 'randomBytes' in params
463
574
  ? (params.randomBytes ?? BitcoinUtils.rndBytes())
@@ -471,12 +582,12 @@ export class TransactionFactory {
471
582
  while (iterations < this.MAX_ITERATIONS && estimatedFundingAmount !== previousAmount) {
472
583
  previousAmount = estimatedFundingAmount;
473
584
  const dummyTx = new Transaction();
474
- dummyTx.addOutput(this.P2TR_SCRIPT, Number(estimatedFundingAmount));
585
+ dummyTx.addOutput(this.P2TR_SCRIPT, toSatoshi(estimatedFundingAmount));
475
586
  const simulatedFundedUtxo = {
476
- transactionId: Buffer.alloc(32, 0).toString('hex'),
587
+ transactionId: toHex(new Uint8Array(32)),
477
588
  outputIndex: 0,
478
589
  scriptPubKey: {
479
- hex: this.P2TR_SCRIPT.toString('hex'),
590
+ hex: toHex(this.P2TR_SCRIPT),
480
591
  address: dummyAddress,
481
592
  },
482
593
  value: estimatedFundingAmount,
@@ -541,6 +652,13 @@ export class TransactionFactory {
541
652
  challenge,
542
653
  };
543
654
  }
655
+ /**
656
+ * Convert a transaction output to a UTXO.
657
+ * @param {Transaction} tx - The transaction
658
+ * @param {string} to - The address
659
+ * @param {number} index - The output index
660
+ * @returns {UTXO[]} - The UTXO array (empty if output doesn't exist)
661
+ */
544
662
  getUTXOAsTransaction(tx, to, index) {
545
663
  if (!tx.outs[index])
546
664
  return [];
@@ -549,7 +667,7 @@ export class TransactionFactory {
549
667
  transactionId: tx.getId(),
550
668
  outputIndex: index,
551
669
  scriptPubKey: {
552
- hex: out.script.toString('hex'),
670
+ hex: toHex(out.script),
553
671
  address: to,
554
672
  },
555
673
  value: BigInt(out.value),
@@ -557,3 +675,4 @@ export class TransactionFactory {
557
675
  return [newUtxo];
558
676
  }
559
677
  }
678
+ //# sourceMappingURL=TransactionFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransactionFactory.js","sourceRoot":"","sources":["../../src/transaction/TransactionFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwC,KAAK,EAAE,SAAS,EAAE,WAAW,EAAiB,MAAM,qBAAqB,CAAC;AAEzH,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAe7D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AACxF,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,kCAAkC,EAAE,MAAM,kDAAkD,CAAC;AAwDtG,MAAM,OAAO,kBAAkB;IACpB,KAAK,GAAY,KAAK,CAAC;IAEb,YAAY,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1C,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,CAAW,CAAC;IAC5E,wBAAwB,GAAG,KAAK,CAAC;IACjC,cAAc,GAAG,EAAE,CAAC;IAErC;;;;OAIG;IACI,KAAK,CAAC,4BAA4B,CACrC,MAAgF;QAEhF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAC/D,IAAI,cAAc,EAAE,CAAC;YACjB,OAAO,cAAc,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC,CAAC,QAAQ,IAAI,MAAM,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,eAAe,EAAE,CAAC;QAC9C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;QAE7B,OAAO;YACH,WAAW,EAAE,KAAK;YAClB,SAAS,EAAE,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAC5D,UAAU,EAAE,MAAM,CAAC,KAAK;SAC3B,CAAC;IACN,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,6BAA6B,CACtC,qBAAqF;QAErF,IAAI,CAAC,qBAAqB,CAAC,EAAE,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,CAAC,CAAC,QAAQ,IAAI,qBAAqB,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC;QAE9E,MAAM,EAAE,gBAAgB,EAAE,eAAe,EAAE,GAAG,MAAM,IAAI,CAAC,oBAAoB,CACzE,EAAE,GAAG,qBAAqB,EAAE,cAAc,EAAE,MAAM,EAAE,EACpD,uBAAuB,EACvB,KAAK,EAAE,EAAE,EAAE,EAAE;YACT,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,uBAAuB,EAAE,CAAC;YAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC;YAC/D,MAAM,aAAa,GAAG,EAAE,CAAC,sBAAsB,EAAE,CAAC;YAClD,OAAO,GAAG,GAAG,WAAW,GAAG,aAAa,CAAC;QAC7C,CAAC,EACD,cAAc,CACjB,CAAC;QAEF,MAAM,UAAU,GACZ,MAAM,gBAAgB,CAAC,+BAA+B,EAAE,CAAC;QAE7D,UAAU,CAAC,KAAK,GAAG,qBAAqB,CAAC,KAAK,CAAC;QAC/C,UAAU,CAAC,MAAM,GAAG,eAAe,CAAC;QAEpC,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC;YAC1D,GAAG,UAAU;YACb,eAAe,EAAE,EAAE;YACnB,cAAc,EAAE,EAAE;SACrB,CAAC,CAAC;QAEH,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAC3D,CAAC;QAED,UAAU,CAAC,aAAa,GAAG,oBAAoB,CAAC,aAAa,CAAC;QAE9D,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC;YACvD,GAAG,UAAU;YACb,eAAe,EAAE,EAAE;YACnB,cAAc,EAAE,EAAE;SACrB,CAAC,CAAC;QAEH,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAC3D,CAAC;QAED,MAAM,SAAS,GAAiC;YAC5C,GAAG,qBAAqB;YACxB,KAAK,EAAE,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,EAAE,qBAAqB,CAAC,EAAE,EAAE,CAAC,CAAC;YACnF,WAAW,EAAE,gBAAgB,CAAC,WAAW,EAAE;YAC3C,cAAc,EAAE,iBAAiB,CAAC,EAAE,CAAC,QAAQ,EAAE;YAC/C,aAAa,EAAE,gBAAgB,CAAC,aAAa;YAC7C,oBAAoB,EAAE,gBAAgB,CAAC,0BAA0B,EAAE;YACnE,cAAc,EAAE,MAAM;SACzB,CAAC;QAEF,MAAM,iBAAiB,GAAG,IAAI,uBAAuB,CAAC,SAAS,CAAC,CAAC;QACjE,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,eAAe,EAAE,CAAC;QAExD,OAAO;YACH,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE;YAC5B,KAAK,CAAC,KAAK,EAAE;YACb,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,EAAE,qBAAqB,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9E,qBAAqB,CAAC,KAAK;SAC9B,CAAC;IACN,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,eAAe,CACxB,qBAAkF;QAElF,IAAI,CAAC,qBAAqB,CAAC,EAAE,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,qBAAqB,CAAC,CAAC;QACxF,IAAI,mBAAmB,EAAE,CAAC;YACtB,OAAO,mBAAmB,CAAC;QAC/B,CAAC;QAED,IAAI,CAAC,CAAC,QAAQ,IAAI,qBAAqB,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAClE,IAAI,QAAQ,EAAE,CAAC;YACX,OAAO,IAAI,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC;QAE9E,MAAM,EAAE,gBAAgB,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,oBAAoB,CACpF,EAAE,GAAG,qBAAqB,EAAE,cAAc,EAAE,MAAM,EAAE,EACpD,sBAAsB,EACtB,KAAK,EAAE,EAAE,EAAE,EAAE;YACT,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,uBAAuB,EAAE,CAAC;YAC/C,MAAM,YAAY,GAAG,EAAE,CAAC,mBAAmB,EAAE,CAAC;YAC9C,OAAO,GAAG,GAAG,YAAY,CAAC;QAC9B,CAAC,EACD,aAAa,CAChB,CAAC;QAEF,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,UAAU,GACZ,MAAM,gBAAgB,CAAC,+BAA+B,EAAE,CAAC;QAE7D,UAAU,CAAC,KAAK,GAAG,qBAAqB,CAAC,KAAK,CAAC;QAC/C,UAAU,CAAC,MAAM,GAAG,eAAe,CAAC;QAEpC,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC;YAC1D,GAAG,UAAU;YACb,eAAe,EAAE,EAAE;YACnB,cAAc,EAAE,EAAE;SACrB,CAAC,CAAC;QAEH,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAC3D,CAAC;QAED,UAAU,CAAC,aAAa,GAAG,oBAAoB,CAAC,aAAa,CAAC;QAE9D,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC;YACvD,GAAG,UAAU;YACb,eAAe,EAAE,EAAE;YACnB,cAAc,EAAE,EAAE;SACrB,CAAC,CAAC;QAEH,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAC3D,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,CACzC,iBAAiB,CAAC,EAAE,EACpB,gBAAgB,CAAC,gBAAgB,EAAE,EACnC,CAAC,CACJ,CAAC;QACF,MAAM,SAAS,GAA2B;YACtC,GAAG,qBAAqB;YACxB,KAAK,EAAE,WAAW;YAClB,WAAW,EAAE,gBAAgB,CAAC,WAAW,EAAE;YAC3C,SAAS,EAAE,SAAS;YACpB,oBAAoB,EAAE,gBAAgB,CAAC,0BAA0B,EAAE;YACnE,cAAc,EAAE,iBAAiB,CAAC,EAAE,CAAC,QAAQ,EAAE;YAC/C,aAAa,EAAE,gBAAgB,CAAC,aAAa;YAC7C,cAAc,EAAE,MAAM;SACzB,CAAC;QAEF,MAAM,aAAa,GAAG,IAAI,sBAAsB,CAAC,SAAS,CAAC,CAAC;QAC5D,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,eAAe,EAAE,CAAC;QAEpD,OAAO;YACH,kBAAkB,EAAE,gBAAgB,CAAC,gBAAgB,EAAE;YACvD,kBAAkB,EAAE,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE;YAChD,sBAAsB,EAAE,KAAK,CAAC,KAAK,EAAE;YACrC,aAAa,EAAE,aAAa,CAAC,cAAc;YAC3C,SAAS,EAAE,IAAI,CAAC,oBAAoB,CAChC,iBAAiB,CAAC,EAAE,EACpB,qBAAqB,CAAC,IAAI,EAC1B,CAAC,CACJ;YACD,SAAS,EAAE,SAAS,CAAC,KAAK,EAAE;YAC5B,YAAY,EAAE,WAAW;YACzB,iBAAiB,EAAE,qBAAqB,CAAC,KAAK;YAC9C,oBAAoB,EAAE,KAAK,CAAC,aAAa,CAAC,0BAA0B,EAAE,CAAC;SAC1E,CAAC;IACN,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACI,KAAK,CAAC,2BAA2B,CACpC,qBAAyD;QAEzD,IAAI,CAAC,qBAAqB,CAAC,EAAE,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,CAAC,CAAC,QAAQ,IAAI,qBAAqB,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC;QAE9E,MAAM,cAAc,GAAG,IAAI,kCAAkC,CAAC;YAC1D,GAAG,qBAAqB;YACxB,cAAc,EAAE,MAAM;SACzB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,CAAC;QAE5C,OAAO;YACH,gBAAgB,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK;YACpC,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK;YACtC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI;YAC5B,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI;YAC9B,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU;YACnC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,aAAa;YACpC,SAAS,EAAE,cAAc,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE;YAChD,UAAU,EAAE,qBAAqB,CAAC,KAAK;YACvC,oBAAoB,EAAE,KAAK,CAAC,cAAc,CAAC,0BAA0B,EAAE,CAAC;SAC3E,CAAC;IACN,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,cAAc,CACvB,oBAA2C;QAE3C,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,oBAAoB,CAAC,CAAC;QACrF,IAAI,kBAAkB,EAAE,CAAC;YACrB,OAAO,kBAAkB,CAAC;QAC9B,CAAC;QAED,IAAI,CAAC,CAAC,QAAQ,IAAI,oBAAoB,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;QAE7E,MAAM,EAAE,gBAAgB,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,oBAAoB,CACpF,EAAE,GAAG,oBAAoB,EAAE,cAAc,EAAE,MAAM,EAAE,EACnD,qBAAqB,EACrB,KAAK,EAAE,EAAE,EAAE,EAAE;YACT,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,uBAAuB,EAAE,CAAC;YAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC;YAC9D,MAAM,aAAa,GAAG,EAAE,CAAC,sBAAsB,EAAE,CAAC;YAClD,OAAO,GAAG,GAAG,WAAW,GAAG,aAAa,CAAC;QAC7C,CAAC,EACD,YAAY,CACf,CAAC;QAEF,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QAC3E,CAAC;QAED,MAAM,UAAU,GACZ,MAAM,gBAAgB,CAAC,+BAA+B,EAAE,CAAC;QAE7D,UAAU,CAAC,KAAK,GAAG,oBAAoB,CAAC,KAAK,CAAC;QAC9C,UAAU,CAAC,MAAM,GAAG,eAAe,CAAC;QAEpC,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC;YAC1D,GAAG,UAAU;YACb,eAAe,EAAE,EAAE;YACnB,cAAc,EAAE,EAAE;SACrB,CAAC,CAAC;QAEH,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAC3D,CAAC;QAED,UAAU,CAAC,aAAa,GAAG,oBAAoB,CAAC,aAAa,CAAC;QAE9D,MAAM,kBAAkB,GAAG,IAAI,kBAAkB,CAAC;YAC9C,GAAG,UAAU;YACb,cAAc,EAAE,EAAE;YAClB,eAAe,EAAE,EAAE;SACtB,CAAC,CAAC;QAEH,MAAM,iBAAiB,GAAG,MAAM,kBAAkB,CAAC,eAAe,EAAE,CAAC;QACrE,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAC3D,CAAC;QAED,MAAM,GAAG,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAa,CAAC;QAClD,MAAM,OAAO,GAAS;YAClB,aAAa,EAAE,iBAAiB,CAAC,KAAK,EAAE;YACxC,WAAW,EAAE,CAAC;YACd,YAAY,EAAE;gBACV,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;gBACtB,OAAO,EAAE,gBAAgB,CAAC,gBAAgB,EAAE;aAC/C;YACD,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;SAC3B,CAAC;QAEF,MAAM,SAAS,GAA0B;YACrC,GAAG,oBAAoB;YACvB,KAAK,EAAE,CAAC,OAAO,CAAC;YAChB,WAAW,EAAE,gBAAgB,CAAC,WAAW,EAAE;YAC3C,oBAAoB,EAAE,gBAAgB,CAAC,0BAA0B,EAAE;YACnE,SAAS,EAAE,SAAS;YACpB,cAAc,EAAE,iBAAiB,CAAC,QAAQ,EAAE;YAC5C,aAAa,EAAE,gBAAgB,CAAC,aAAa;YAC7C,cAAc,EAAE,MAAM;SACzB,CAAC;QAEF,MAAM,YAAY,GAAG,IAAI,qBAAqB,CAAC,SAAS,CAAC,CAAC;QAC1D,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAC;QAEnD,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAa,CAAC;QACnD,MAAM,UAAU,GAAS;YACrB,aAAa,EAAE,iBAAiB,CAAC,KAAK,EAAE;YACxC,WAAW,EAAE,CAAC;YACd,YAAY,EAAE;gBACV,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;gBACvB,OAAO,EAAE,oBAAoB,CAAC,IAAc;aAC/C;YACD,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;SAC5B,CAAC;QAEF,OAAO;YACH,WAAW,EAAE,CAAC,iBAAiB,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;YACvD,eAAe,EAAE,YAAY,CAAC,kBAAkB,EAAE;YAClD,cAAc,EAAE,YAAY,CAAC,cAAc;YAC3C,KAAK,EAAE,CAAC,UAAU,CAAC;YACnB,SAAS,EAAE,SAAS,CAAC,KAAK,EAAE;YAC5B,UAAU,EAAE,oBAAoB,CAAC,KAAK;SACzC,CAAC;IACN,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,iBAAiB,CAC1B,UAAyC;QAEzC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;QAC1D,OAAO;YACH,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE;YACnB,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,IAAI,CAAC;YACvE,UAAU,EAAE,UAAU,CAAC,KAAK;SAC/B,CAAC;IACN,CAAC;IAED;;;;;;OAMG;IACI,cAAc,CACjB,QAA6C,EAC7C,EAAe,EACf,EAAU;QAEV,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC;QAEtC,MAAM,KAAK,GAAW,EAAE,CAAC;QACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAuB,CAAC;YAChD,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;gBACtB,IAAI,MAAM,CAAC,OAAO,KAAK,EAAE;oBAAE,SAAS;YACxC,CAAC;iBAAM,CAAC;gBACJ,SAAS;YACb,CAAC;YAED,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QACxD,CAAC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACK,mBAAmB,CAAC,cAAuB;QAC/C,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACxC,IAAI,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC;YACtC,IACI,UAAU;gBACV,CAAC,CAAC,UAAU,YAAY,UAAU,CAAC;gBACnC,OAAO,UAAU,KAAK,QAAQ,EAChC,CAAC;gBACC,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAoC,CAAC,CAAC,CAAC;YACtF,CAAC;YAED,OAAO;gBACH,GAAG,KAAK;gBACR,cAAc,EAAE,UAAU;aACrB,CAAC;QACd,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,oBAAoB,CAC9B,qBAE+C;QAE/C,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,OAAO,GAAG,MAA2B,CAAC;QAC5C,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YACpD,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;QACjC,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,iBAAiB,CAAC;YAC9C,GAAG,qBAAqB;YACxB,kCAAkC;YAClC,MAAM,EAAE,SAAS;SACpB,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO;YACH,GAAG,WAAW;YACd,UAAU,EAAE,WAAW,CAAC,UAAU,IAAI,qBAAqB,CAAC,KAAK;SACpE,CAAC;IACN,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,yBAAyB,CACnC,qBAAkF;QAElF,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,OAAO,GAAG,MAA2B,CAAC;QAC5C,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YACpD,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;QACjC,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,eAAe,CAAC;YAC5C,GAAG,qBAAqB;YACxB,kCAAkC;YAClC,MAAM,EAAE,SAAS;SACpB,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO;YACH,GAAG,WAAW;YACd,iBAAiB,EAAE,WAAW,CAAC,iBAAiB,IAAI,qBAAqB,CAAC,KAAK;SAClF,CAAC;IACN,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,wBAAwB,CAClC,oBAAgF;QAEhF,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,OAAO,GAAG,MAA2B,CAAC;QAC5C,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YACpD,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;QACjC,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC;YAC1C,GAAG,oBAAoB;YACvB,kCAAkC;YAClC,MAAM,EAAE,SAAS;SACpB,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO;YACH,GAAG,UAAU;YACb,UAAU,EAAE,UAAU,CAAC,UAAU,IAAI,oBAAoB,CAAC,KAAK;SAClE,CAAC;IACN,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,qBAAqB,CAC/B,UAAyC;QAEzC,IAAI,CAAC,UAAU,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAEhE,MAAM,kBAAkB,GAAuB,IAAI,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAClF,MAAM,iBAAiB,GAAgB,MAAM,kBAAkB,CAAC,eAAe,EAAE,CAAC;QAClF,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAC3D,CAAC;QAED,OAAO;YACH,EAAE,EAAE,iBAAiB;YACrB,QAAQ,EAAE,kBAAkB;YAC5B,aAAa,EAAE,kBAAkB,CAAC,aAAa;YAC/C,SAAS,EAAE,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;YACzE,UAAU,EAAE,UAAU,CAAC,KAAK;SAC/B,CAAC;IACN,CAAC;IAED;;;;;;;;;OASG;IACK,cAAc,CAAC,KAAa;QAChC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IACjE,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACK,KAAK,CAAC,oBAAoB,CAC9B,qBAAkF;QAElF,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAClD,CAAC;QAED,IAAI,CAAC,CAAC,QAAQ,IAAI,qBAAqB,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CACX,4EAA4E,CAC/E,CAAC;QACN,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC;QAC9E,MAAM,gBAAgB,GAAG,IAAI,2BAA2B,CAAC;YACrD,GAAG,qBAAqB;YACxB,cAAc,EAAE,MAAM;SACzB,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,eAAe,EAAE,CAAC;QAC1D,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC;QAE/B,OAAO;YACH,kBAAkB,EAAE,IAAI;YACxB,kBAAkB,EAAE,IAAI;YACxB,sBAAsB,EAAE,KAAK;YAC7B,aAAa,EAAE,gBAAgB,CAAC,aAAa;YAC7C,SAAS,EAAE,IAAI,CAAC,oBAAoB,CAChC,QAAQ,EACR,qBAAqB,CAAC,IAAI,EAC1B,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAC3B;YACD,YAAY,EAAE,CAAC,GAAG,qBAAqB,CAAC,KAAK,EAAE,GAAG,MAAM,CAAC;YACzD,iBAAiB,EAAE,qBAAqB,CAAC,KAAK;YAC9C,SAAS,EAAE,qBAAqB,CAAC,SAAS,CAAC,KAAK,EAAE;YAClD,oBAAoB,EAAE,IAAI;SAC7B,CAAC;IACN,CAAC;IAED;;;;OAIG;IACK,cAAc,CAAC,MAA8B;QACjD,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC;QACvD,IAAI,QAAQ,GAAG,kBAAkB,CAAC,YAAY,EAAE,CAAC;YAC7C,OAAO,kBAAkB,CAAC,YAAY,CAAC;QAC3C,CAAC;QAED,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED;;;;;;;;;;;OAWG;IACK,KAAK,CAAC,oBAAoB,CAI9B,MAAS,EACT,gBAAsC,EACtC,eAA2C,EAC3C,WAAmB;QAMnB,MAAM,WAAW,GACb,aAAa,IAAI,MAAM;YACnB,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC;YACjD,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;QAElC,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEzD,IAAI,sBAAsB,GAAG,IAAI,CAAC,wBAAwB,CAAC;QAC3D,IAAI,cAAc,GAAG,EAAE,CAAC;QACxB,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,mBAAmB,GAAa,IAAI,CAAC;QACzC,IAAI,SAAS,GAA8B,IAAI,CAAC;QAEhD,OAAO,UAAU,GAAG,IAAI,CAAC,cAAc,IAAI,sBAAsB,KAAK,cAAc,EAAE,CAAC;YACnF,cAAc,GAAG,sBAAsB,CAAC;YAExC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;YAClC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,sBAAsB,CAAC,CAAC,CAAC;YAEvE,MAAM,mBAAmB,GAAS;gBAC9B,aAAa,EAAE,KAAK,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;gBACxC,WAAW,EAAE,CAAC;gBACd,YAAY,EAAE;oBACV,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;oBAC5B,OAAO,EAAE,YAAY;iBACxB;gBACD,KAAK,EAAE,sBAAsB;gBAC7B,cAAc,EAAE,OAAO,CAAC,QAAQ,EAAE;aACrC,CAAC;YAEF,IAAI,QAAW,CAAC;YAChB,IAAI,WAAW,IAAI,MAAM,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBAC5C,MAAM,aAAa,GAAG;oBAClB,GAAG,MAAM;oBACT,KAAK,EAAE,CAAC,mBAAmB,CAAC;oBAC5B,WAAW,EAAE,WAAW;oBACxB,SAAS,EAAE,SAAS,IAAI,MAAM,CAAC,SAAS;iBAC3C,CAAC;gBACF,QAAQ,GAAG,aAAkB,CAAC;YAClC,CAAC;iBAAM,CAAC;gBACJ,MAAM,gBAAgB,GAAG;oBACrB,GAAG,MAAM;oBACT,KAAK,EAAE,CAAC,mBAAmB,CAAC;oBAC5B,WAAW,EAAE,WAAW;iBAC3B,CAAC;gBACF,QAAQ,GAAG,gBAAqB,CAAC;YACrC,CAAC;YAED,MAAM,cAAc,GAAM,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAEzD,IAAI,CAAC;gBACD,MAAM,cAAc,CAAC,oCAAoC,EAAE,CAAC;gBAC5D,sBAAsB,GAAG,MAAM,eAAe,CAAC,cAAc,CAAC,CAAC;YACnE,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACtB,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;oBACzB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;oBAC9E,IAAI,KAAK,EAAE,CAAC;wBACR,sBAAsB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAW,CAAC,CAAC;wBACpD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;4BACb,OAAO,CAAC,GAAG,CACP,GAAG,WAAW,4CAA4C,sBAAsB,EAAE,CACrF,CAAC;wBACN,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACJ,MAAM,KAAK,CAAC;oBAChB,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACJ,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;gBAC3D,CAAC;YACL,CAAC;YAED,mBAAmB,GAAG,cAAc,CAAC;YAErC,IACI,cAAc,IAAI,cAAc;gBAChC,OAAO,cAAc,CAAC,YAAY,KAAK,UAAU,EACnD,CAAC;gBACC,SAAS,GAAG,cAAc,CAAC,YAAY,EAAE,CAAC;YAC9C,CAAC;YAED,UAAU,EAAE,CAAC;YAEb,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACb,OAAO,CAAC,GAAG,CACP,GAAG,WAAW,cAAc,UAAU,cAAc,cAAc,SAAS,sBAAsB,EAAE,CACtG,CAAC;YACN,CAAC;QACL,CAAC;QAED,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,yBAAyB,WAAW,iBAAiB,CAAC,CAAC;QAC3E,CAAC;QAED,OAAO;YACH,gBAAgB,EAAE,mBAAmB;YACrC,eAAe,EAAE,sBAAsB;YACvC,SAAS;SACZ,CAAC;IACN,CAAC;IAED;;;;;;OAMG;IACK,oBAAoB,CAAC,EAAe,EAAE,EAAU,EAAE,KAAa;QACnE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAE/B,MAAM,GAAG,GAAa,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,MAAM,OAAO,GAAS;YAClB,aAAa,EAAE,EAAE,CAAC,KAAK,EAAE;YACzB,WAAW,EAAE,KAAK;YAClB,YAAY,EAAE;gBACV,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;gBACtB,OAAO,EAAE,EAAE;aACd;YACD,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;SAC3B,CAAC;QAEF,OAAO,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC;CACJ"}