@atomicfinance/types 4.0.0 → 4.0.2

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 (510) hide show
  1. package/.turbo/turbo-lint.log +1 -0
  2. package/.yalc/@node-dlc/bitcoin/.nyc_output/982e80bf-a70c-452f-b63d-d749ae385531.json +1 -0
  3. package/.yalc/@node-dlc/bitcoin/.nyc_output/processinfo/982e80bf-a70c-452f-b63d-d749ae385531.json +1 -0
  4. package/.yalc/@node-dlc/bitcoin/.nyc_output/processinfo/index.json +1 -0
  5. package/.yalc/@node-dlc/bitcoin/README.md +11 -0
  6. package/.yalc/@node-dlc/bitcoin/__tests__/bitcoin/amount.spec.ts +330 -0
  7. package/.yalc/@node-dlc/bitcoin/__tests__/bitcoin/value.spec.ts +320 -0
  8. package/.yalc/@node-dlc/bitcoin/__tests__/tsconfig.json +8 -0
  9. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/Amount.ts.html +290 -0
  10. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/Base58.ts.html +269 -0
  11. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/Base58Check.ts.html +182 -0
  12. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/BitcoinError.ts.html +173 -0
  13. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/BitcoinErrorCode.ts.html +110 -0
  14. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/HashByteOrder.ts.html +143 -0
  15. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/HashValue.ts.html +350 -0
  16. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/LexicographicalSorters.ts.html +191 -0
  17. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/LockTime.ts.html +386 -0
  18. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/OpCodes.ts.html +437 -0
  19. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/OutPoint.ts.html +383 -0
  20. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/Script.ts.html +1607 -0
  21. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/Sequence.ts.html +713 -0
  22. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/SigHashType.ts.html +137 -0
  23. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/Stack.ts.html +323 -0
  24. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/TimeLockMode.ts.html +128 -0
  25. package/.yalc/@node-dlc/{messaging/coverage/lcov-report/lib/serde/SerdeUtils.ts.html → bitcoin/coverage/lcov-report/Tx.ts.html} +617 -491
  26. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/TxBuilder.ts.html +971 -0
  27. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/TxIn.ts.html +425 -0
  28. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/TxOut.ts.html +341 -0
  29. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/Value.ts.html +683 -0
  30. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/Wif.ts.html +311 -0
  31. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/Witness.ts.html +275 -0
  32. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/base.css +224 -0
  33. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/block-navigation.js +79 -0
  34. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/favicon.png +0 -0
  35. package/.yalc/@node-dlc/{messaging/coverage/lcov-report/lib/serde → bitcoin/coverage/lcov-report}/index.html +45 -30
  36. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/index.ts.html +164 -0
  37. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/prettify.css +1 -0
  38. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/prettify.js +2 -0
  39. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  40. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/sorter.js +170 -0
  41. package/.yalc/@node-dlc/bitcoin/coverage/lcov.info +123 -0
  42. package/.yalc/@node-dlc/bitcoin/dist/Amount.d.ts +48 -0
  43. package/.yalc/@node-dlc/bitcoin/dist/Amount.js +68 -0
  44. package/.yalc/@node-dlc/bitcoin/dist/Amount.js.map +1 -0
  45. package/.yalc/@node-dlc/bitcoin/dist/Base58.d.ts +22 -0
  46. package/.yalc/@node-dlc/bitcoin/dist/Base58.js +62 -0
  47. package/.yalc/@node-dlc/bitcoin/dist/Base58.js.map +1 -0
  48. package/.yalc/@node-dlc/bitcoin/dist/Base58Check.d.ts +14 -0
  49. package/.yalc/@node-dlc/bitcoin/dist/Base58Check.js +36 -0
  50. package/.yalc/@node-dlc/bitcoin/dist/Base58Check.js.map +1 -0
  51. package/.yalc/@node-dlc/bitcoin/dist/BitcoinError.d.ts +6 -0
  52. package/.yalc/@node-dlc/bitcoin/dist/BitcoinError.js +36 -0
  53. package/.yalc/@node-dlc/bitcoin/dist/BitcoinError.js.map +1 -0
  54. package/.yalc/@node-dlc/bitcoin/dist/BitcoinErrorCode.d.ts +10 -0
  55. package/.yalc/@node-dlc/bitcoin/dist/BitcoinErrorCode.js +15 -0
  56. package/.yalc/@node-dlc/bitcoin/dist/BitcoinErrorCode.js.map +1 -0
  57. package/.yalc/@node-dlc/bitcoin/dist/Block.d.ts +19 -0
  58. package/.yalc/@node-dlc/bitcoin/dist/Block.js +3 -0
  59. package/.yalc/@node-dlc/bitcoin/dist/Block.js.map +1 -0
  60. package/.yalc/@node-dlc/bitcoin/dist/HashByteOrder.d.ts +20 -0
  61. package/.yalc/@node-dlc/bitcoin/dist/HashByteOrder.js +25 -0
  62. package/.yalc/@node-dlc/bitcoin/dist/HashByteOrder.js.map +1 -0
  63. package/.yalc/@node-dlc/bitcoin/dist/HashValue.d.ts +55 -0
  64. package/.yalc/@node-dlc/bitcoin/dist/HashValue.js +82 -0
  65. package/.yalc/@node-dlc/bitcoin/dist/HashValue.js.map +1 -0
  66. package/.yalc/@node-dlc/bitcoin/dist/ICloneable.d.ts +3 -0
  67. package/.yalc/@node-dlc/bitcoin/dist/ICloneable.js +3 -0
  68. package/.yalc/@node-dlc/bitcoin/dist/ICloneable.js.map +1 -0
  69. package/.yalc/@node-dlc/bitcoin/dist/LexicographicalSorters.d.ts +18 -0
  70. package/.yalc/@node-dlc/bitcoin/dist/LexicographicalSorters.js +41 -0
  71. package/.yalc/@node-dlc/bitcoin/dist/LexicographicalSorters.js.map +1 -0
  72. package/.yalc/@node-dlc/bitcoin/dist/LockTime.d.ts +61 -0
  73. package/.yalc/@node-dlc/bitcoin/dist/LockTime.js +94 -0
  74. package/.yalc/@node-dlc/bitcoin/dist/LockTime.js.map +1 -0
  75. package/.yalc/@node-dlc/bitcoin/dist/OpCodes.d.ts +102 -0
  76. package/.yalc/@node-dlc/bitcoin/dist/OpCodes.js +116 -0
  77. package/.yalc/@node-dlc/bitcoin/dist/OpCodes.js.map +1 -0
  78. package/.yalc/@node-dlc/bitcoin/dist/OutPoint.d.ts +57 -0
  79. package/.yalc/@node-dlc/bitcoin/dist/OutPoint.js +88 -0
  80. package/.yalc/@node-dlc/bitcoin/dist/OutPoint.js.map +1 -0
  81. package/.yalc/@node-dlc/bitcoin/dist/Script.d.ts +185 -0
  82. package/.yalc/@node-dlc/bitcoin/dist/Script.js +404 -0
  83. package/.yalc/@node-dlc/bitcoin/dist/Script.js.map +1 -0
  84. package/.yalc/@node-dlc/bitcoin/dist/ScriptCmd.d.ts +3 -0
  85. package/.yalc/@node-dlc/bitcoin/dist/ScriptCmd.js +3 -0
  86. package/.yalc/@node-dlc/bitcoin/dist/ScriptCmd.js.map +1 -0
  87. package/.yalc/@node-dlc/bitcoin/dist/Sequence.d.ts +116 -0
  88. package/.yalc/@node-dlc/bitcoin/dist/Sequence.js +187 -0
  89. package/.yalc/@node-dlc/bitcoin/dist/Sequence.js.map +1 -0
  90. package/.yalc/@node-dlc/bitcoin/dist/SigHashType.d.ts +7 -0
  91. package/.yalc/@node-dlc/bitcoin/dist/SigHashType.js +27 -0
  92. package/.yalc/@node-dlc/bitcoin/dist/SigHashType.js.map +1 -0
  93. package/.yalc/@node-dlc/bitcoin/dist/SizeResult.d.ts +5 -0
  94. package/.yalc/@node-dlc/bitcoin/dist/SizeResult.js +3 -0
  95. package/.yalc/@node-dlc/bitcoin/dist/SizeResult.js.map +1 -0
  96. package/.yalc/@node-dlc/bitcoin/dist/Sorter.d.ts +1 -0
  97. package/.yalc/@node-dlc/bitcoin/dist/Sorter.js +3 -0
  98. package/.yalc/@node-dlc/bitcoin/dist/Sorter.js.map +1 -0
  99. package/.yalc/@node-dlc/bitcoin/dist/Stack.d.ts +15 -0
  100. package/.yalc/@node-dlc/bitcoin/dist/Stack.js +77 -0
  101. package/.yalc/@node-dlc/bitcoin/dist/Stack.js.map +1 -0
  102. package/.yalc/@node-dlc/bitcoin/dist/TimeLockMode.d.ts +15 -0
  103. package/.yalc/@node-dlc/bitcoin/dist/TimeLockMode.js +20 -0
  104. package/.yalc/@node-dlc/bitcoin/dist/TimeLockMode.js.map +1 -0
  105. package/.yalc/@node-dlc/bitcoin/dist/Tx.d.ts +150 -0
  106. package/.yalc/@node-dlc/bitcoin/dist/Tx.js +408 -0
  107. package/.yalc/@node-dlc/bitcoin/dist/Tx.js.map +1 -0
  108. package/.yalc/@node-dlc/bitcoin/dist/TxBuilder.d.ts +110 -0
  109. package/.yalc/@node-dlc/bitcoin/dist/TxBuilder.js +238 -0
  110. package/.yalc/@node-dlc/bitcoin/dist/TxBuilder.js.map +1 -0
  111. package/.yalc/@node-dlc/bitcoin/dist/TxIn.d.ts +71 -0
  112. package/.yalc/@node-dlc/bitcoin/dist/TxIn.js +79 -0
  113. package/.yalc/@node-dlc/bitcoin/dist/TxIn.js.map +1 -0
  114. package/.yalc/@node-dlc/bitcoin/dist/TxOut.d.ts +57 -0
  115. package/.yalc/@node-dlc/bitcoin/dist/TxOut.js +68 -0
  116. package/.yalc/@node-dlc/bitcoin/dist/TxOut.js.map +1 -0
  117. package/.yalc/@node-dlc/bitcoin/dist/Value.d.ts +122 -0
  118. package/.yalc/@node-dlc/bitcoin/dist/Value.js +180 -0
  119. package/.yalc/@node-dlc/bitcoin/dist/Value.js.map +1 -0
  120. package/.yalc/@node-dlc/bitcoin/dist/Wif.d.ts +41 -0
  121. package/.yalc/@node-dlc/bitcoin/dist/Wif.js +62 -0
  122. package/.yalc/@node-dlc/bitcoin/dist/Wif.js.map +1 -0
  123. package/.yalc/@node-dlc/bitcoin/dist/Witness.d.ts +41 -0
  124. package/.yalc/@node-dlc/bitcoin/dist/Witness.js +63 -0
  125. package/.yalc/@node-dlc/bitcoin/dist/Witness.js.map +1 -0
  126. package/.yalc/@node-dlc/bitcoin/dist/index.d.ts +28 -0
  127. package/.yalc/@node-dlc/bitcoin/dist/index.js +45 -0
  128. package/.yalc/@node-dlc/bitcoin/dist/index.js.map +1 -0
  129. package/.yalc/@node-dlc/bitcoin/lib/Amount.ts +70 -0
  130. package/.yalc/@node-dlc/bitcoin/lib/Base58.ts +63 -0
  131. package/.yalc/@node-dlc/bitcoin/lib/Base58Check.ts +34 -0
  132. package/.yalc/@node-dlc/bitcoin/lib/BitcoinError.ts +31 -0
  133. package/.yalc/@node-dlc/bitcoin/lib/BitcoinErrorCode.ts +10 -0
  134. package/.yalc/@node-dlc/bitcoin/lib/Block.ts +20 -0
  135. package/.yalc/@node-dlc/bitcoin/lib/HashByteOrder.ts +21 -0
  136. package/.yalc/@node-dlc/bitcoin/lib/HashValue.ts +90 -0
  137. package/.yalc/@node-dlc/bitcoin/lib/ICloneable.ts +3 -0
  138. package/.yalc/@node-dlc/bitcoin/lib/LexicographicalSorters.ts +37 -0
  139. package/.yalc/@node-dlc/bitcoin/lib/LockTime.ts +102 -0
  140. package/.yalc/@node-dlc/bitcoin/lib/OpCodes.ts +119 -0
  141. package/.yalc/@node-dlc/bitcoin/lib/OutPoint.ts +101 -0
  142. package/.yalc/@node-dlc/bitcoin/lib/Script.ts +509 -0
  143. package/.yalc/@node-dlc/bitcoin/lib/ScriptCmd.ts +3 -0
  144. package/.yalc/@node-dlc/bitcoin/lib/Sequence.ts +211 -0
  145. package/.yalc/@node-dlc/bitcoin/lib/SigHashType.ts +19 -0
  146. package/.yalc/@node-dlc/bitcoin/lib/SizeResult.ts +5 -0
  147. package/.yalc/@node-dlc/bitcoin/lib/Sorter.ts +1 -0
  148. package/.yalc/@node-dlc/bitcoin/lib/Stack.ts +81 -0
  149. package/.yalc/@node-dlc/bitcoin/lib/TimeLockMode.ts +16 -0
  150. package/.yalc/@node-dlc/bitcoin/lib/Tx.ts +480 -0
  151. package/.yalc/@node-dlc/bitcoin/lib/TxBuilder.ts +297 -0
  152. package/.yalc/@node-dlc/bitcoin/lib/TxIn.ts +115 -0
  153. package/.yalc/@node-dlc/bitcoin/lib/TxOut.ts +87 -0
  154. package/.yalc/@node-dlc/bitcoin/lib/Value.ts +201 -0
  155. package/.yalc/@node-dlc/bitcoin/lib/Wif.ts +77 -0
  156. package/.yalc/@node-dlc/bitcoin/lib/Witness.ts +65 -0
  157. package/.yalc/@node-dlc/bitcoin/lib/index.ts +28 -0
  158. package/.yalc/@node-dlc/bitcoin/package.json +31 -0
  159. package/.yalc/@node-dlc/bitcoin/tsconfig.json +8 -0
  160. package/.yalc/@node-dlc/bitcoin/yalc.sig +1 -0
  161. package/.yalc/@node-dlc/messaging/.nyc_output/83d37f9d-cecf-4c52-a753-115ff80bbca0.json +1 -0
  162. package/.yalc/@node-dlc/messaging/.nyc_output/processinfo/83d37f9d-cecf-4c52-a753-115ff80bbca0.json +1 -0
  163. package/.yalc/@node-dlc/messaging/.nyc_output/processinfo/index.json +1 -1
  164. package/.yalc/@node-dlc/messaging/__tests__/_test-utils.ts +1 -0
  165. package/.yalc/@node-dlc/messaging/__tests__/compatibility/dlcspecs-compatibility.spec.ts +13 -47
  166. package/.yalc/@node-dlc/messaging/__tests__/compatibility/rust-dlc-cross-language.spec.ts +166 -253
  167. package/.yalc/@node-dlc/messaging/__tests__/compatibility/true-serialization-compatibility.spec.ts +214 -483
  168. package/.yalc/@node-dlc/messaging/__tests__/messages/ContractDescriptor.spec.ts +3 -1
  169. package/.yalc/@node-dlc/messaging/__tests__/messages/ContractInfo.spec.ts +1 -1
  170. package/.yalc/@node-dlc/messaging/__tests__/messages/DlcAccept.spec.ts +72 -0
  171. package/.yalc/@node-dlc/messaging/__tests__/messages/DlcInput.spec.ts +111 -0
  172. package/.yalc/@node-dlc/messaging/__tests__/messages/DlcOffer.spec.ts +99 -37
  173. package/.yalc/@node-dlc/messaging/__tests__/messages/FundingInput.spec.ts +148 -63
  174. package/.yalc/@node-dlc/messaging/__tests__/messages/OracleAttestation.spec.ts +2 -4
  175. package/.yalc/@node-dlc/messaging/__tests__/messages/OrderAccept.spec.ts +7 -9
  176. package/.yalc/@node-dlc/messaging/__tests__/messages/OrderNegotiationFields.spec.ts +135 -52
  177. package/.yalc/@node-dlc/messaging/__tests__/messages/OrderPositionInfo.spec.ts +6 -6
  178. package/.yalc/@node-dlc/messaging/__tests__/messages/PayoutCurvePiece.spec.ts +1 -1
  179. package/.yalc/@node-dlc/messaging/__tests__/messages/PayoutFunction.spec.ts +1 -1
  180. package/.yalc/@node-dlc/messaging/__tests__/serialize/F64.spec.ts +1 -0
  181. package/.yalc/@node-dlc/messaging/coverage/lcov-report/index.html +31 -31
  182. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/MessageType.ts.html +11 -5
  183. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/chain/ChainManager.ts.html +6 -3
  184. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/chain/ChainMemoryStore.ts.html +1 -1
  185. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/chain/index.html +1 -1
  186. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/domain/Address.ts.html +1 -1
  187. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/domain/index.html +1 -1
  188. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/index.html +9 -9
  189. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/index.ts.html +11 -8
  190. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/irc/IrcMessage.ts.html +1 -1
  191. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/irc/index.html +1 -1
  192. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/AddressCache.ts.html +1 -1
  193. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/BatchFundingGroup.ts.html +1 -1
  194. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/CetAdaptorSignatures.ts.html +22 -22
  195. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/CetAdaptorSignaturesV0.ts.html +46 -37
  196. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/CloseTLV.ts.html +344 -0
  197. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/ContractDescriptor.ts.html +61 -70
  198. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/ContractInfo.ts.html +59 -44
  199. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcAccept.ts.html +251 -119
  200. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcCancel.ts.html +1 -1
  201. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcClose.ts.html +12 -3
  202. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcCloseMetadata.ts.html +2 -11
  203. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcIds.ts.html +1 -1
  204. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcInfo.ts.html +1 -1
  205. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcInput.ts.html +581 -0
  206. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcMessage.ts.html +1 -1
  207. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcOffer.ts.html +307 -127
  208. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcSign.ts.html +61 -46
  209. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcTransactions.ts.html +1 -1
  210. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/EventDescriptor.ts.html +67 -52
  211. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/FundingInput.ts.html +202 -70
  212. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/FundingSignatures.ts.html +15 -15
  213. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/FundingSignaturesV0.ts.html +47 -77
  214. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/NegotiationFields.ts.html +16 -4
  215. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/NodeAnnouncementMessage.ts.html +3 -3
  216. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleAnnouncement.ts.html +22 -22
  217. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleAnnouncementV0.ts.html +48 -270
  218. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleAttestation.ts.html +1 -1
  219. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleAttestationV0.ts.html +113 -404
  220. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleEvent.ts.html +49 -49
  221. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleEventContainer.ts.html +1 -1
  222. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleEventContainerV0.ts.html +22 -22
  223. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleEventV0.ts.html +61 -385
  224. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleIdentifier.ts.html +1 -1
  225. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleIdentifierV0.ts.html +1 -1
  226. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleInfo.ts.html +46 -25
  227. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleInfoV0.ts.html +55 -1378
  228. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OrderAccept.ts.html +68 -23
  229. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OrderIrcInfo.ts.html +1 -1
  230. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OrderMetadata.ts.html +1 -1
  231. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OrderNegotiationFields.ts.html +266 -107
  232. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OrderOffer.ts.html +31 -34
  233. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OrderPositionInfo.ts.html +19 -88
  234. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/PayoutCurvePiece.ts.html +36 -21
  235. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/PayoutFunction.ts.html +34 -28
  236. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/RoundingIntervals.ts.html +18 -15
  237. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/RoundingIntervalsV0.ts.html +75 -129
  238. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/ScriptWitnessV0.ts.html +6 -6
  239. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/index.html +84 -69
  240. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/serialize/F64.ts.html +8 -53
  241. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/serialize/deserializeTlv.ts.html +1 -1
  242. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/serialize/getTlv.ts.html +9 -9
  243. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/serialize/index.html +15 -15
  244. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/util.ts.html +22 -10
  245. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/validation/index.html +1 -1
  246. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/validation/validate.ts.html +1 -1
  247. package/.yalc/@node-dlc/messaging/coverage/lcov.info +3049 -2826
  248. package/.yalc/@node-dlc/messaging/dist/MessageType.d.ts +2 -1
  249. package/.yalc/@node-dlc/messaging/dist/MessageType.js +2 -1
  250. package/.yalc/@node-dlc/messaging/dist/MessageType.js.map +1 -1
  251. package/.yalc/@node-dlc/messaging/dist/chain/ChainManager.js +1 -0
  252. package/.yalc/@node-dlc/messaging/dist/chain/ChainManager.js.map +1 -1
  253. package/.yalc/@node-dlc/messaging/dist/index.d.ts +5 -4
  254. package/.yalc/@node-dlc/messaging/dist/index.js +5 -4
  255. package/.yalc/@node-dlc/messaging/dist/index.js.map +1 -1
  256. package/.yalc/@node-dlc/messaging/dist/messages/CetAdaptorSignaturesV0.d.ts +42 -0
  257. package/.yalc/@node-dlc/messaging/dist/messages/CetAdaptorSignaturesV0.js +68 -0
  258. package/.yalc/@node-dlc/messaging/dist/messages/CetAdaptorSignaturesV0.js.map +1 -0
  259. package/.yalc/@node-dlc/messaging/dist/messages/CloseTLV.d.ts +38 -0
  260. package/.yalc/@node-dlc/messaging/dist/messages/CloseTLV.js +59 -0
  261. package/.yalc/@node-dlc/messaging/dist/messages/CloseTLV.js.map +1 -0
  262. package/.yalc/@node-dlc/messaging/dist/messages/ContractDescriptor.d.ts +11 -12
  263. package/.yalc/@node-dlc/messaging/dist/messages/ContractDescriptor.js +0 -1
  264. package/.yalc/@node-dlc/messaging/dist/messages/ContractDescriptor.js.map +1 -1
  265. package/.yalc/@node-dlc/messaging/dist/messages/ContractInfo.d.ts +10 -10
  266. package/.yalc/@node-dlc/messaging/dist/messages/ContractInfo.js +5 -1
  267. package/.yalc/@node-dlc/messaging/dist/messages/ContractInfo.js.map +1 -1
  268. package/.yalc/@node-dlc/messaging/dist/messages/DlcAccept.d.ts +15 -0
  269. package/.yalc/@node-dlc/messaging/dist/messages/DlcAccept.js +46 -5
  270. package/.yalc/@node-dlc/messaging/dist/messages/DlcAccept.js.map +1 -1
  271. package/.yalc/@node-dlc/messaging/dist/messages/DlcClose.js +6 -2
  272. package/.yalc/@node-dlc/messaging/dist/messages/DlcClose.js.map +1 -1
  273. package/.yalc/@node-dlc/messaging/dist/messages/DlcCloseMetadata.js.map +1 -1
  274. package/.yalc/@node-dlc/messaging/dist/messages/DlcInput.d.ts +56 -0
  275. package/.yalc/@node-dlc/messaging/dist/messages/DlcInput.js +135 -0
  276. package/.yalc/@node-dlc/messaging/dist/messages/DlcInput.js.map +1 -0
  277. package/.yalc/@node-dlc/messaging/dist/messages/DlcOffer.d.ts +16 -1
  278. package/.yalc/@node-dlc/messaging/dist/messages/DlcOffer.js +50 -5
  279. package/.yalc/@node-dlc/messaging/dist/messages/DlcOffer.js.map +1 -1
  280. package/.yalc/@node-dlc/messaging/dist/messages/DlcSign.js +11 -3
  281. package/.yalc/@node-dlc/messaging/dist/messages/DlcSign.js.map +1 -1
  282. package/.yalc/@node-dlc/messaging/dist/messages/EventDescriptor.d.ts +7 -6
  283. package/.yalc/@node-dlc/messaging/dist/messages/EventDescriptor.js +3 -0
  284. package/.yalc/@node-dlc/messaging/dist/messages/EventDescriptor.js.map +1 -1
  285. package/.yalc/@node-dlc/messaging/dist/messages/FundingInput.d.ts +7 -0
  286. package/.yalc/@node-dlc/messaging/dist/messages/FundingInput.js +31 -1
  287. package/.yalc/@node-dlc/messaging/dist/messages/FundingInput.js.map +1 -1
  288. package/.yalc/@node-dlc/messaging/dist/messages/FundingSignaturesV0.d.ts +34 -0
  289. package/.yalc/@node-dlc/messaging/dist/messages/FundingSignaturesV0.js +72 -0
  290. package/.yalc/@node-dlc/messaging/dist/messages/FundingSignaturesV0.js.map +1 -0
  291. package/.yalc/@node-dlc/messaging/dist/messages/NegotiationFields.d.ts +2 -2
  292. package/.yalc/@node-dlc/messaging/dist/messages/NegotiationFields.js +4 -0
  293. package/.yalc/@node-dlc/messaging/dist/messages/NegotiationFields.js.map +1 -1
  294. package/.yalc/@node-dlc/messaging/dist/messages/OracleAnnouncementV0.d.ts +47 -0
  295. package/.yalc/@node-dlc/messaging/dist/messages/OracleAnnouncementV0.js +76 -0
  296. package/.yalc/@node-dlc/messaging/dist/messages/OracleAnnouncementV0.js.map +1 -0
  297. package/.yalc/@node-dlc/messaging/dist/messages/OracleAttestationV0.d.ts +48 -0
  298. package/.yalc/@node-dlc/messaging/dist/messages/OracleAttestationV0.js +100 -0
  299. package/.yalc/@node-dlc/messaging/dist/messages/OracleAttestationV0.js.map +1 -0
  300. package/.yalc/@node-dlc/messaging/dist/messages/OracleEventContainerV0.d.ts +32 -0
  301. package/.yalc/@node-dlc/messaging/dist/messages/OracleEventContainerV0.js +67 -0
  302. package/.yalc/@node-dlc/messaging/dist/messages/OracleEventContainerV0.js.map +1 -0
  303. package/.yalc/@node-dlc/messaging/dist/messages/OracleEventV0.d.ts +54 -0
  304. package/.yalc/@node-dlc/messaging/dist/messages/OracleEventV0.js +100 -0
  305. package/.yalc/@node-dlc/messaging/dist/messages/OracleEventV0.js.map +1 -0
  306. package/.yalc/@node-dlc/messaging/dist/messages/OracleInfo.d.ts +8 -6
  307. package/.yalc/@node-dlc/messaging/dist/messages/OracleInfo.js +3 -0
  308. package/.yalc/@node-dlc/messaging/dist/messages/OracleInfo.js.map +1 -1
  309. package/.yalc/@node-dlc/messaging/dist/messages/OracleInfoV0.d.ts +15 -141
  310. package/.yalc/@node-dlc/messaging/dist/messages/OracleInfoV0.js +21 -350
  311. package/.yalc/@node-dlc/messaging/dist/messages/OracleInfoV0.js.map +1 -1
  312. package/.yalc/@node-dlc/messaging/dist/messages/OrderAccept.d.ts +3 -2
  313. package/.yalc/@node-dlc/messaging/dist/messages/OrderAccept.js +22 -7
  314. package/.yalc/@node-dlc/messaging/dist/messages/OrderAccept.js.map +1 -1
  315. package/.yalc/@node-dlc/messaging/dist/messages/OrderNegotiationFields.d.ts +48 -36
  316. package/.yalc/@node-dlc/messaging/dist/messages/OrderNegotiationFields.js +97 -50
  317. package/.yalc/@node-dlc/messaging/dist/messages/OrderNegotiationFields.js.map +1 -1
  318. package/.yalc/@node-dlc/messaging/dist/messages/OrderOffer.d.ts +1 -1
  319. package/.yalc/@node-dlc/messaging/dist/messages/OrderOffer.js +1 -1
  320. package/.yalc/@node-dlc/messaging/dist/messages/OrderOffer.js.map +1 -1
  321. package/.yalc/@node-dlc/messaging/dist/messages/OrderPositionInfo.d.ts +7 -13
  322. package/.yalc/@node-dlc/messaging/dist/messages/OrderPositionInfo.js +11 -25
  323. package/.yalc/@node-dlc/messaging/dist/messages/OrderPositionInfo.js.map +1 -1
  324. package/.yalc/@node-dlc/messaging/dist/messages/PayoutCurvePiece.js +5 -0
  325. package/.yalc/@node-dlc/messaging/dist/messages/PayoutCurvePiece.js.map +1 -1
  326. package/.yalc/@node-dlc/messaging/dist/messages/PayoutFunction.js +4 -1
  327. package/.yalc/@node-dlc/messaging/dist/messages/PayoutFunction.js.map +1 -1
  328. package/.yalc/@node-dlc/messaging/dist/messages/RoundingIntervals.js +1 -0
  329. package/.yalc/@node-dlc/messaging/dist/messages/RoundingIntervals.js.map +1 -1
  330. package/.yalc/@node-dlc/messaging/dist/messages/RoundingIntervalsV0.d.ts +47 -0
  331. package/.yalc/@node-dlc/messaging/dist/messages/RoundingIntervalsV0.js +86 -0
  332. package/.yalc/@node-dlc/messaging/dist/messages/RoundingIntervalsV0.js.map +1 -0
  333. package/.yalc/@node-dlc/messaging/dist/serialize/F64.d.ts +0 -8
  334. package/.yalc/@node-dlc/messaging/dist/serialize/F64.js +0 -13
  335. package/.yalc/@node-dlc/messaging/dist/serialize/F64.js.map +1 -1
  336. package/.yalc/@node-dlc/messaging/dist/util.d.ts +1 -1
  337. package/.yalc/@node-dlc/messaging/dist/util.js +2 -0
  338. package/.yalc/@node-dlc/messaging/dist/util.js.map +1 -1
  339. package/.yalc/@node-dlc/messaging/lib/MessageType.ts +3 -1
  340. package/.yalc/@node-dlc/messaging/lib/chain/ChainManager.ts +1 -0
  341. package/.yalc/@node-dlc/messaging/lib/index.ts +5 -4
  342. package/.yalc/@node-dlc/messaging/lib/messages/ContractDescriptor.ts +15 -16
  343. package/.yalc/@node-dlc/messaging/lib/messages/ContractInfo.ts +17 -12
  344. package/.yalc/@node-dlc/messaging/lib/messages/DlcAccept.ts +50 -6
  345. package/.yalc/@node-dlc/messaging/lib/messages/DlcClose.ts +4 -1
  346. package/.yalc/@node-dlc/messaging/lib/messages/DlcCloseMetadata.ts +0 -3
  347. package/.yalc/@node-dlc/messaging/lib/messages/DlcInput.ts +167 -0
  348. package/.yalc/@node-dlc/messaging/lib/messages/DlcOffer.ts +67 -7
  349. package/.yalc/@node-dlc/messaging/lib/messages/DlcSign.ts +5 -0
  350. package/.yalc/@node-dlc/messaging/lib/messages/EventDescriptor.ts +12 -7
  351. package/.yalc/@node-dlc/messaging/lib/messages/FundingInput.ts +45 -1
  352. package/.yalc/@node-dlc/messaging/lib/messages/NegotiationFields.ts +6 -2
  353. package/.yalc/@node-dlc/messaging/lib/messages/NodeAnnouncementMessage.ts +2 -2
  354. package/.yalc/@node-dlc/messaging/lib/messages/OracleInfo.ts +15 -8
  355. package/.yalc/@node-dlc/messaging/lib/messages/OrderAccept.ts +28 -13
  356. package/.yalc/@node-dlc/messaging/lib/messages/OrderNegotiationFields.ts +127 -74
  357. package/.yalc/@node-dlc/messaging/lib/messages/OrderOffer.ts +2 -3
  358. package/.yalc/@node-dlc/messaging/lib/messages/OrderPositionInfo.ts +10 -33
  359. package/.yalc/@node-dlc/messaging/lib/messages/PayoutCurvePiece.ts +5 -0
  360. package/.yalc/@node-dlc/messaging/lib/messages/PayoutFunction.ts +2 -0
  361. package/.yalc/@node-dlc/messaging/lib/messages/RoundingIntervals.ts +1 -0
  362. package/.yalc/@node-dlc/messaging/lib/serialize/F64.ts +0 -15
  363. package/.yalc/@node-dlc/messaging/lib/serialize/readTlvs.ts +1 -1
  364. package/.yalc/@node-dlc/messaging/lib/util.ts +5 -1
  365. package/.yalc/@node-dlc/messaging/package.json +8 -8
  366. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/enum_3_of_3_test.json +76 -74
  367. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/enum_3_of_5_test.json +90 -88
  368. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/enum_and_numerical_3_of_5_test.json +162 -160
  369. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/enum_and_numerical_5_of_5_test.json +162 -160
  370. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/enum_and_numerical_with_diff_3_of_5_test.json +164 -162
  371. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/enum_and_numerical_with_diff_5_of_5_test.json +164 -162
  372. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/enum_single_oracle_test.json +60 -58
  373. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/single_oracle_numerical_hyperbola_test.json +71 -69
  374. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/single_oracle_numerical_test.json +71 -69
  375. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/three_of_five_oracle_numerical_with_diff_test.json +119 -117
  376. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/three_of_three_oracle_numerical_test.json +95 -93
  377. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/three_of_three_oracle_numerical_with_diff_test.json +97 -95
  378. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/two_of_five_oracle_numerical_test.json +117 -115
  379. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/two_of_five_oracle_numerical_with_diff_test.json +119 -117
  380. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250718_132453/enum_3_of_3_test.json +210 -0
  381. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250718_132453/enum_3_of_5_test.json +468 -0
  382. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250718_132453/enum_and_numerical_3_of_5_test.json +1517 -0
  383. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250718_132453/enum_and_numerical_5_of_5_test.json +545 -0
  384. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250718_132453/enum_and_numerical_with_diff_3_of_5_test.json +4761 -0
  385. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250718_132453/enum_and_numerical_with_diff_5_of_5_test.json +2169 -0
  386. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250718_132453/enum_single_oracle_test.json +164 -0
  387. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250718_132453/single_oracle_numerical_hyperbola_test.json +502 -0
  388. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250718_132453/single_oracle_numerical_test.json +262 -0
  389. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250718_132453/three_of_five_oracle_numerical_with_diff_test.json +4382 -0
  390. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250718_132453/three_of_three_oracle_numerical_test.json +324 -0
  391. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250718_132453/three_of_three_oracle_numerical_with_diff_test.json +652 -0
  392. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250718_132453/two_of_five_oracle_numerical_test.json +1138 -0
  393. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250718_132453/two_of_five_oracle_numerical_with_diff_test.json +2222 -0
  394. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250719_185952/enum_3_of_3_test.json +212 -0
  395. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250719_185952/enum_3_of_5_test.json +470 -0
  396. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250719_185952/enum_and_numerical_3_of_5_test.json +1519 -0
  397. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250719_185952/enum_and_numerical_5_of_5_test.json +547 -0
  398. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250719_185952/enum_and_numerical_with_diff_3_of_5_test.json +4763 -0
  399. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250719_185952/enum_and_numerical_with_diff_5_of_5_test.json +2171 -0
  400. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250719_185952/enum_single_oracle_test.json +166 -0
  401. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250719_185952/single_oracle_numerical_hyperbola_test.json +504 -0
  402. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250719_185952/single_oracle_numerical_test.json +264 -0
  403. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250719_185952/three_of_five_oracle_numerical_with_diff_test.json +4384 -0
  404. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250719_185952/three_of_three_oracle_numerical_test.json +326 -0
  405. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250719_185952/three_of_three_oracle_numerical_with_diff_test.json +654 -0
  406. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250719_185952/two_of_five_oracle_numerical_test.json +1140 -0
  407. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250719_185952/two_of_five_oracle_numerical_with_diff_test.json +2224 -0
  408. package/.yalc/@node-dlc/messaging/yalc.sig +1 -1
  409. package/.yalc/@node-dlc/noise/.eslintrc +6 -0
  410. package/.yalc/@node-dlc/noise/.nyc_output/cce169d2-1730-4a39-9e05-4edcd8b14961.json +1 -0
  411. package/.yalc/@node-dlc/noise/.nyc_output/processinfo/cce169d2-1730-4a39-9e05-4edcd8b14961.json +1 -0
  412. package/.yalc/@node-dlc/noise/.nyc_output/processinfo/index.json +1 -0
  413. package/.yalc/@node-dlc/noise/README.md +165 -0
  414. package/.yalc/@node-dlc/noise/__integration__/ping-pong.spec.ts +85 -0
  415. package/.yalc/@node-dlc/noise/__tests__/noise-server.spec.ts +82 -0
  416. package/.yalc/@node-dlc/noise/__tests__/noise-socket.spec.ts +574 -0
  417. package/.yalc/@node-dlc/noise/__tests__/noise-state.spec.ts +485 -0
  418. package/.yalc/@node-dlc/noise/coverage/lcov-report/base.css +224 -0
  419. package/.yalc/@node-dlc/noise/coverage/lcov-report/block-navigation.js +79 -0
  420. package/.yalc/@node-dlc/noise/coverage/lcov-report/favicon.png +0 -0
  421. package/.yalc/@node-dlc/noise/coverage/lcov-report/handshake-state.ts.html +230 -0
  422. package/.yalc/@node-dlc/noise/coverage/lcov-report/index.html +201 -0
  423. package/.yalc/@node-dlc/noise/coverage/lcov-report/index.ts.html +344 -0
  424. package/.yalc/@node-dlc/noise/coverage/lcov-report/noise-error.ts.html +89 -0
  425. package/.yalc/@node-dlc/noise/coverage/lcov-report/noise-server.ts.html +485 -0
  426. package/.yalc/@node-dlc/noise/coverage/lcov-report/noise-socket.ts.html +1223 -0
  427. package/.yalc/@node-dlc/noise/coverage/lcov-report/noise-state.ts.html +1523 -0
  428. package/.yalc/@node-dlc/noise/coverage/lcov-report/prettify.css +1 -0
  429. package/.yalc/@node-dlc/noise/coverage/lcov-report/prettify.js +2 -0
  430. package/.yalc/@node-dlc/noise/coverage/lcov-report/read-state.ts.html +95 -0
  431. package/.yalc/@node-dlc/noise/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  432. package/.yalc/@node-dlc/noise/coverage/lcov-report/sorter.js +170 -0
  433. package/.yalc/@node-dlc/noise/coverage/lcov.info +565 -0
  434. package/.yalc/@node-dlc/noise/dist/handshake-state.d.ts +46 -0
  435. package/.yalc/@node-dlc/noise/dist/handshake-state.js +51 -0
  436. package/.yalc/@node-dlc/noise/dist/handshake-state.js.map +1 -0
  437. package/.yalc/@node-dlc/noise/dist/index.d.ts +46 -0
  438. package/.yalc/@node-dlc/noise/dist/index.js +69 -0
  439. package/.yalc/@node-dlc/noise/dist/index.js.map +1 -0
  440. package/.yalc/@node-dlc/noise/dist/noise-error.d.ts +3 -0
  441. package/.yalc/@node-dlc/noise/dist/noise-error.js +11 -0
  442. package/.yalc/@node-dlc/noise/dist/noise-error.js.map +1 -0
  443. package/.yalc/@node-dlc/noise/dist/noise-server-listen-options.d.ts +23 -0
  444. package/.yalc/@node-dlc/noise/dist/noise-server-listen-options.js +3 -0
  445. package/.yalc/@node-dlc/noise/dist/noise-server-listen-options.js.map +1 -0
  446. package/.yalc/@node-dlc/noise/dist/noise-server-options.d.ts +13 -0
  447. package/.yalc/@node-dlc/noise/dist/noise-server-options.js +3 -0
  448. package/.yalc/@node-dlc/noise/dist/noise-server-options.js.map +1 -0
  449. package/.yalc/@node-dlc/noise/dist/noise-server.d.ts +71 -0
  450. package/.yalc/@node-dlc/noise/dist/noise-server.js +125 -0
  451. package/.yalc/@node-dlc/noise/dist/noise-server.js.map +1 -0
  452. package/.yalc/@node-dlc/noise/dist/noise-socket-options.d.ts +28 -0
  453. package/.yalc/@node-dlc/noise/dist/noise-socket-options.js +3 -0
  454. package/.yalc/@node-dlc/noise/dist/noise-socket-options.js.map +1 -0
  455. package/.yalc/@node-dlc/noise/dist/noise-socket.d.ts +98 -0
  456. package/.yalc/@node-dlc/noise/dist/noise-socket.js +278 -0
  457. package/.yalc/@node-dlc/noise/dist/noise-socket.js.map +1 -0
  458. package/.yalc/@node-dlc/noise/dist/noise-state-options.d.ts +16 -0
  459. package/.yalc/@node-dlc/noise/dist/noise-state-options.js +3 -0
  460. package/.yalc/@node-dlc/noise/dist/noise-state-options.js.map +1 -0
  461. package/.yalc/@node-dlc/noise/dist/noise-state.d.ts +164 -0
  462. package/.yalc/@node-dlc/noise/dist/noise-state.js +304 -0
  463. package/.yalc/@node-dlc/noise/dist/noise-state.js.map +1 -0
  464. package/.yalc/@node-dlc/noise/dist/read-state.d.ts +5 -0
  465. package/.yalc/@node-dlc/noise/dist/read-state.js +10 -0
  466. package/.yalc/@node-dlc/noise/dist/read-state.js.map +1 -0
  467. package/.yalc/@node-dlc/noise/lib/handshake-state.ts +50 -0
  468. package/.yalc/@node-dlc/noise/lib/index.ts +88 -0
  469. package/.yalc/@node-dlc/noise/lib/noise-error.ts +3 -0
  470. package/.yalc/@node-dlc/noise/lib/noise-server-listen-options.ts +25 -0
  471. package/.yalc/@node-dlc/noise/lib/noise-server-options.ts +13 -0
  472. package/.yalc/@node-dlc/noise/lib/noise-server.ts +135 -0
  473. package/.yalc/@node-dlc/noise/lib/noise-socket-options.ts +32 -0
  474. package/.yalc/@node-dlc/noise/lib/noise-socket.ts +381 -0
  475. package/.yalc/@node-dlc/noise/lib/noise-state-options.ts +18 -0
  476. package/.yalc/@node-dlc/noise/lib/noise-state.ts +481 -0
  477. package/.yalc/@node-dlc/noise/lib/read-state.ts +5 -0
  478. package/.yalc/@node-dlc/noise/package.json +35 -0
  479. package/.yalc/@node-dlc/noise/tsconfig-build.json +7 -0
  480. package/.yalc/@node-dlc/noise/tsconfig.json +4 -0
  481. package/.yalc/@node-dlc/noise/yalc.sig +1 -0
  482. package/CHANGELOG.md +45 -5
  483. package/dist/dlc.d.ts +99 -2
  484. package/dist/index.d.ts +1 -1
  485. package/dist/index.js +2 -1
  486. package/dist/index.js.map +1 -1
  487. package/dist/models/Amount.js +4 -2
  488. package/dist/models/Amount.js.map +1 -1
  489. package/dist/models/Input.d.ts +30 -1
  490. package/dist/models/Input.js +45 -9
  491. package/dist/models/Input.js.map +1 -1
  492. package/dist/models/Outcome.js +1 -0
  493. package/dist/models/Outcome.js.map +1 -1
  494. package/dist/models/Utxo.d.ts +3 -3
  495. package/dist/models/Utxo.js +11 -13
  496. package/dist/models/Utxo.js.map +1 -1
  497. package/dist/transaction.js.map +1 -1
  498. package/lib/block.ts +1 -0
  499. package/lib/dlc.ts +125 -1
  500. package/lib/index.ts +7 -1
  501. package/lib/models/Amount.ts +4 -1
  502. package/lib/models/Input.ts +75 -8
  503. package/lib/models/Outcome.ts +1 -0
  504. package/lib/models/Utxo.ts +21 -13
  505. package/lib/transaction.ts +1 -0
  506. package/lib/wallet.ts +1 -0
  507. package/package.json +4 -4
  508. package/yalc.lock +12 -2
  509. package/.yalc/@node-dlc/messaging/.nyc_output/2cf48009-1094-4275-bb91-c164c932feb6.json +0 -1
  510. package/.yalc/@node-dlc/messaging/.nyc_output/processinfo/2cf48009-1094-4275-bb91-c164c932feb6.json +0 -1
@@ -3,15 +3,15 @@
3
3
  <html lang="en">
4
4
 
5
5
  <head>
6
- <title>Code coverage report for lib/serde/SerdeUtils.ts</title>
6
+ <title>Code coverage report for Tx.ts</title>
7
7
  <meta charset="utf-8" />
8
- <link rel="stylesheet" href="../../prettify.css" />
9
- <link rel="stylesheet" href="../../base.css" />
10
- <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
8
+ <link rel="stylesheet" href="prettify.css" />
9
+ <link rel="stylesheet" href="base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="favicon.png" />
11
11
  <meta name="viewport" content="width=device-width, initial-scale=1" />
12
12
  <style type='text/css'>
13
13
  .coverage-summary .sorter {
14
- background-image: url(../../sort-arrow-sprite.png);
14
+ background-image: url(sort-arrow-sprite.png);
15
15
  }
16
16
  </style>
17
17
  </head>
@@ -19,34 +19,34 @@
19
19
  <body>
20
20
  <div class='wrapper'>
21
21
  <div class='pad1'>
22
- <h1><a href="../../index.html">All files</a> / <a href="index.html">lib/serde</a> SerdeUtils.ts</h1>
22
+ <h1><a href="index.html">All files</a> Tx.ts</h1>
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">42.42% </span>
26
+ <span class="strong">8.14% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>70/165</span>
28
+ <span class='fraction'>14/172</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">24.8% </span>
33
+ <span class="strong">0% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>31/125</span>
35
+ <span class='fraction'>0/41</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">60% </span>
40
+ <span class="strong">0% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>15/25</span>
42
+ <span class='fraction'>0/29</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">38.89% </span>
47
+ <span class="strong">8.75% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>56/144</span>
49
+ <span class='fraction'>14/160</span>
50
50
  </div>
51
51
 
52
52
 
@@ -495,15 +495,70 @@
495
495
  <a name='L436'></a><a href='#L436'>436</a>
496
496
  <a name='L437'></a><a href='#L437'>437</a>
497
497
  <a name='L438'></a><a href='#L438'>438</a>
498
- <a name='L439'></a><a href='#L439'>439</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
498
+ <a name='L439'></a><a href='#L439'>439</a>
499
+ <a name='L440'></a><a href='#L440'>440</a>
500
+ <a name='L441'></a><a href='#L441'>441</a>
501
+ <a name='L442'></a><a href='#L442'>442</a>
502
+ <a name='L443'></a><a href='#L443'>443</a>
503
+ <a name='L444'></a><a href='#L444'>444</a>
504
+ <a name='L445'></a><a href='#L445'>445</a>
505
+ <a name='L446'></a><a href='#L446'>446</a>
506
+ <a name='L447'></a><a href='#L447'>447</a>
507
+ <a name='L448'></a><a href='#L448'>448</a>
508
+ <a name='L449'></a><a href='#L449'>449</a>
509
+ <a name='L450'></a><a href='#L450'>450</a>
510
+ <a name='L451'></a><a href='#L451'>451</a>
511
+ <a name='L452'></a><a href='#L452'>452</a>
512
+ <a name='L453'></a><a href='#L453'>453</a>
513
+ <a name='L454'></a><a href='#L454'>454</a>
514
+ <a name='L455'></a><a href='#L455'>455</a>
515
+ <a name='L456'></a><a href='#L456'>456</a>
516
+ <a name='L457'></a><a href='#L457'>457</a>
517
+ <a name='L458'></a><a href='#L458'>458</a>
518
+ <a name='L459'></a><a href='#L459'>459</a>
519
+ <a name='L460'></a><a href='#L460'>460</a>
520
+ <a name='L461'></a><a href='#L461'>461</a>
521
+ <a name='L462'></a><a href='#L462'>462</a>
522
+ <a name='L463'></a><a href='#L463'>463</a>
523
+ <a name='L464'></a><a href='#L464'>464</a>
524
+ <a name='L465'></a><a href='#L465'>465</a>
525
+ <a name='L466'></a><a href='#L466'>466</a>
526
+ <a name='L467'></a><a href='#L467'>467</a>
527
+ <a name='L468'></a><a href='#L468'>468</a>
528
+ <a name='L469'></a><a href='#L469'>469</a>
529
+ <a name='L470'></a><a href='#L470'>470</a>
530
+ <a name='L471'></a><a href='#L471'>471</a>
531
+ <a name='L472'></a><a href='#L472'>472</a>
532
+ <a name='L473'></a><a href='#L473'>473</a>
533
+ <a name='L474'></a><a href='#L474'>474</a>
534
+ <a name='L475'></a><a href='#L475'>475</a>
535
+ <a name='L476'></a><a href='#L476'>476</a>
536
+ <a name='L477'></a><a href='#L477'>477</a>
537
+ <a name='L478'></a><a href='#L478'>478</a>
538
+ <a name='L479'></a><a href='#L479'>479</a>
539
+ <a name='L480'></a><a href='#L480'>480</a>
540
+ <a name='L481'></a><a href='#L481'>481</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
541
+ <span class="cline-any cline-yes">1x</span>
542
+ <span class="cline-any cline-yes">1x</span>
499
543
  <span class="cline-any cline-neutral">&nbsp;</span>
544
+ <span class="cline-any cline-yes">1x</span>
545
+ <span class="cline-any cline-yes">1x</span>
546
+ <span class="cline-any cline-yes">1x</span>
547
+ <span class="cline-any cline-yes">1x</span>
548
+ <span class="cline-any cline-yes">1x</span>
549
+ <span class="cline-any cline-yes">1x</span>
500
550
  <span class="cline-any cline-neutral">&nbsp;</span>
551
+ <span class="cline-any cline-yes">1x</span>
552
+ <span class="cline-any cline-yes">1x</span>
553
+ <span class="cline-any cline-yes">1x</span>
554
+ <span class="cline-any cline-yes">1x</span>
501
555
  <span class="cline-any cline-neutral">&nbsp;</span>
502
556
  <span class="cline-any cline-neutral">&nbsp;</span>
503
557
  <span class="cline-any cline-neutral">&nbsp;</span>
504
558
  <span class="cline-any cline-neutral">&nbsp;</span>
505
559
  <span class="cline-any cline-neutral">&nbsp;</span>
506
560
  <span class="cline-any cline-neutral">&nbsp;</span>
561
+ <span class="cline-any cline-yes">1x</span>
507
562
  <span class="cline-any cline-neutral">&nbsp;</span>
508
563
  <span class="cline-any cline-neutral">&nbsp;</span>
509
564
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -512,66 +567,60 @@
512
567
  <span class="cline-any cline-neutral">&nbsp;</span>
513
568
  <span class="cline-any cline-neutral">&nbsp;</span>
514
569
  <span class="cline-any cline-neutral">&nbsp;</span>
570
+ <span class="cline-any cline-no">&nbsp;</span>
571
+ <span class="cline-any cline-no">&nbsp;</span>
572
+ <span class="cline-any cline-no">&nbsp;</span>
515
573
  <span class="cline-any cline-neutral">&nbsp;</span>
574
+ <span class="cline-any cline-no">&nbsp;</span>
516
575
  <span class="cline-any cline-neutral">&nbsp;</span>
517
576
  <span class="cline-any cline-neutral">&nbsp;</span>
518
577
  <span class="cline-any cline-neutral">&nbsp;</span>
519
578
  <span class="cline-any cline-neutral">&nbsp;</span>
520
579
  <span class="cline-any cline-neutral">&nbsp;</span>
521
- <span class="cline-any cline-yes">1x</span>
522
580
  <span class="cline-any cline-neutral">&nbsp;</span>
523
581
  <span class="cline-any cline-neutral">&nbsp;</span>
524
- <span class="cline-any cline-no">&nbsp;</span>
525
582
  <span class="cline-any cline-neutral">&nbsp;</span>
526
583
  <span class="cline-any cline-neutral">&nbsp;</span>
527
584
  <span class="cline-any cline-neutral">&nbsp;</span>
528
585
  <span class="cline-any cline-neutral">&nbsp;</span>
529
- <span class="cline-any cline-no">&nbsp;</span>
530
586
  <span class="cline-any cline-neutral">&nbsp;</span>
531
587
  <span class="cline-any cline-neutral">&nbsp;</span>
588
+ <span class="cline-any cline-no">&nbsp;</span>
589
+ <span class="cline-any cline-neutral">&nbsp;</span>
532
590
  <span class="cline-any cline-neutral">&nbsp;</span>
533
591
  <span class="cline-any cline-neutral">&nbsp;</span>
534
- <span class="cline-any cline-yes">40x</span>
535
- <span class="cline-any cline-yes">40x</span>
536
- <span class="cline-any cline-yes">40x</span>
537
- <span class="cline-any cline-yes">40x</span>
538
592
  <span class="cline-any cline-no">&nbsp;</span>
539
593
  <span class="cline-any cline-neutral">&nbsp;</span>
540
594
  <span class="cline-any cline-neutral">&nbsp;</span>
595
+ <span class="cline-any cline-no">&nbsp;</span>
541
596
  <span class="cline-any cline-neutral">&nbsp;</span>
542
597
  <span class="cline-any cline-neutral">&nbsp;</span>
543
- <span class="cline-any cline-yes">20x</span>
544
598
  <span class="cline-any cline-neutral">&nbsp;</span>
545
599
  <span class="cline-any cline-neutral">&nbsp;</span>
600
+ <span class="cline-any cline-no">&nbsp;</span>
601
+ <span class="cline-any cline-no">&nbsp;</span>
602
+ <span class="cline-any cline-no">&nbsp;</span>
603
+ <span class="cline-any cline-no">&nbsp;</span>
604
+ <span class="cline-any cline-no">&nbsp;</span>
546
605
  <span class="cline-any cline-neutral">&nbsp;</span>
547
- <span class="cline-any cline-yes">20x</span>
548
606
  <span class="cline-any cline-neutral">&nbsp;</span>
549
607
  <span class="cline-any cline-neutral">&nbsp;</span>
550
- <span class="cline-any cline-no">&nbsp;</span>
551
608
  <span class="cline-any cline-neutral">&nbsp;</span>
552
609
  <span class="cline-any cline-neutral">&nbsp;</span>
610
+ <span class="cline-any cline-no">&nbsp;</span>
553
611
  <span class="cline-any cline-neutral">&nbsp;</span>
554
612
  <span class="cline-any cline-neutral">&nbsp;</span>
555
- <span class="cline-any cline-yes">30x</span>
556
613
  <span class="cline-any cline-neutral">&nbsp;</span>
557
- <span class="cline-any cline-yes">30x</span>
558
- <span class="cline-any cline-yes">30x</span>
559
- <span class="cline-any cline-yes">3x</span>
560
- <span class="cline-any cline-yes">3x</span>
561
614
  <span class="cline-any cline-neutral">&nbsp;</span>
562
615
  <span class="cline-any cline-no">&nbsp;</span>
563
616
  <span class="cline-any cline-no">&nbsp;</span>
564
617
  <span class="cline-any cline-no">&nbsp;</span>
618
+ <span class="cline-any cline-no">&nbsp;</span>
619
+ <span class="cline-any cline-no">&nbsp;</span>
565
620
  <span class="cline-any cline-neutral">&nbsp;</span>
566
621
  <span class="cline-any cline-neutral">&nbsp;</span>
567
- <span class="cline-any cline-yes">27x</span>
568
- <span class="cline-any cline-yes">27x</span>
569
- <span class="cline-any cline-yes">27x</span>
570
622
  <span class="cline-any cline-neutral">&nbsp;</span>
571
623
  <span class="cline-any cline-neutral">&nbsp;</span>
572
- <span class="cline-any cline-no">&nbsp;</span>
573
- <span class="cline-any cline-no">&nbsp;</span>
574
- <span class="cline-any cline-no">&nbsp;</span>
575
624
  <span class="cline-any cline-neutral">&nbsp;</span>
576
625
  <span class="cline-any cline-no">&nbsp;</span>
577
626
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -581,48 +630,50 @@
581
630
  <span class="cline-any cline-neutral">&nbsp;</span>
582
631
  <span class="cline-any cline-neutral">&nbsp;</span>
583
632
  <span class="cline-any cline-neutral">&nbsp;</span>
633
+ <span class="cline-any cline-neutral">&nbsp;</span>
634
+ <span class="cline-any cline-neutral">&nbsp;</span>
635
+ <span class="cline-any cline-neutral">&nbsp;</span>
584
636
  <span class="cline-any cline-no">&nbsp;</span>
585
637
  <span class="cline-any cline-no">&nbsp;</span>
586
- <span class="cline-any cline-neutral">&nbsp;</span>
587
638
  <span class="cline-any cline-no">&nbsp;</span>
588
639
  <span class="cline-any cline-no">&nbsp;</span>
589
640
  <span class="cline-any cline-neutral">&nbsp;</span>
590
641
  <span class="cline-any cline-neutral">&nbsp;</span>
591
- <span class="cline-any cline-no">&nbsp;</span>
592
642
  <span class="cline-any cline-neutral">&nbsp;</span>
593
- <span class="cline-any cline-no">&nbsp;</span>
594
643
  <span class="cline-any cline-neutral">&nbsp;</span>
595
644
  <span class="cline-any cline-neutral">&nbsp;</span>
596
645
  <span class="cline-any cline-neutral">&nbsp;</span>
597
646
  <span class="cline-any cline-neutral">&nbsp;</span>
647
+ <span class="cline-any cline-no">&nbsp;</span>
648
+ <span class="cline-any cline-neutral">&nbsp;</span>
649
+ <span class="cline-any cline-neutral">&nbsp;</span>
598
650
  <span class="cline-any cline-neutral">&nbsp;</span>
599
651
  <span class="cline-any cline-neutral">&nbsp;</span>
600
652
  <span class="cline-any cline-neutral">&nbsp;</span>
601
653
  <span class="cline-any cline-neutral">&nbsp;</span>
602
654
  <span class="cline-any cline-neutral">&nbsp;</span>
603
- <span class="cline-any cline-yes">35x</span>
604
655
  <span class="cline-any cline-neutral">&nbsp;</span>
605
656
  <span class="cline-any cline-no">&nbsp;</span>
606
657
  <span class="cline-any cline-no">&nbsp;</span>
658
+ <span class="cline-any cline-no">&nbsp;</span>
659
+ <span class="cline-any cline-no">&nbsp;</span>
660
+ <span class="cline-any cline-neutral">&nbsp;</span>
607
661
  <span class="cline-any cline-neutral">&nbsp;</span>
608
662
  <span class="cline-any cline-neutral">&nbsp;</span>
609
- <span class="cline-any cline-no">&nbsp;</span>
610
663
  <span class="cline-any cline-neutral">&nbsp;</span>
664
+ <span class="cline-any cline-no">&nbsp;</span>
611
665
  <span class="cline-any cline-neutral">&nbsp;</span>
612
666
  <span class="cline-any cline-neutral">&nbsp;</span>
613
667
  <span class="cline-any cline-neutral">&nbsp;</span>
614
668
  <span class="cline-any cline-neutral">&nbsp;</span>
615
669
  <span class="cline-any cline-neutral">&nbsp;</span>
616
670
  <span class="cline-any cline-neutral">&nbsp;</span>
617
- <span class="cline-any cline-yes">20x</span>
618
671
  <span class="cline-any cline-neutral">&nbsp;</span>
619
- <span class="cline-any cline-yes">20x</span>
620
672
  <span class="cline-any cline-neutral">&nbsp;</span>
621
673
  <span class="cline-any cline-no">&nbsp;</span>
622
674
  <span class="cline-any cline-neutral">&nbsp;</span>
623
675
  <span class="cline-any cline-neutral">&nbsp;</span>
624
676
  <span class="cline-any cline-neutral">&nbsp;</span>
625
- <span class="cline-any cline-no">&nbsp;</span>
626
677
  <span class="cline-any cline-neutral">&nbsp;</span>
627
678
  <span class="cline-any cline-neutral">&nbsp;</span>
628
679
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -630,16 +681,12 @@
630
681
  <span class="cline-any cline-neutral">&nbsp;</span>
631
682
  <span class="cline-any cline-no">&nbsp;</span>
632
683
  <span class="cline-any cline-neutral">&nbsp;</span>
633
- <span class="cline-any cline-no">&nbsp;</span>
634
- <span class="cline-any cline-no">&nbsp;</span>
635
684
  <span class="cline-any cline-neutral">&nbsp;</span>
636
685
  <span class="cline-any cline-neutral">&nbsp;</span>
637
- <span class="cline-any cline-no">&nbsp;</span>
638
686
  <span class="cline-any cline-neutral">&nbsp;</span>
639
687
  <span class="cline-any cline-neutral">&nbsp;</span>
640
- <span class="cline-any cline-no">&nbsp;</span>
641
- <span class="cline-any cline-no">&nbsp;</span>
642
- <span class="cline-any cline-no">&nbsp;</span>
688
+ <span class="cline-any cline-neutral">&nbsp;</span>
689
+ <span class="cline-any cline-neutral">&nbsp;</span>
643
690
  <span class="cline-any cline-neutral">&nbsp;</span>
644
691
  <span class="cline-any cline-no">&nbsp;</span>
645
692
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -647,39 +694,39 @@
647
694
  <span class="cline-any cline-neutral">&nbsp;</span>
648
695
  <span class="cline-any cline-neutral">&nbsp;</span>
649
696
  <span class="cline-any cline-neutral">&nbsp;</span>
650
- <span class="cline-any cline-no">&nbsp;</span>
651
697
  <span class="cline-any cline-neutral">&nbsp;</span>
652
- <span class="cline-any cline-no">&nbsp;</span>
698
+ <span class="cline-any cline-neutral">&nbsp;</span>
699
+ <span class="cline-any cline-neutral">&nbsp;</span>
653
700
  <span class="cline-any cline-no">&nbsp;</span>
654
701
  <span class="cline-any cline-no">&nbsp;</span>
655
702
  <span class="cline-any cline-neutral">&nbsp;</span>
656
- <span class="cline-any cline-no">&nbsp;</span>
657
703
  <span class="cline-any cline-neutral">&nbsp;</span>
658
704
  <span class="cline-any cline-neutral">&nbsp;</span>
659
705
  <span class="cline-any cline-neutral">&nbsp;</span>
660
706
  <span class="cline-any cline-neutral">&nbsp;</span>
661
707
  <span class="cline-any cline-neutral">&nbsp;</span>
662
- <span class="cline-any cline-yes">20x</span>
663
708
  <span class="cline-any cline-neutral">&nbsp;</span>
664
709
  <span class="cline-any cline-neutral">&nbsp;</span>
665
- <span class="cline-any cline-yes">20x</span>
666
710
  <span class="cline-any cline-neutral">&nbsp;</span>
667
711
  <span class="cline-any cline-neutral">&nbsp;</span>
668
- <span class="cline-any cline-yes">20x</span>
669
712
  <span class="cline-any cline-neutral">&nbsp;</span>
670
713
  <span class="cline-any cline-neutral">&nbsp;</span>
714
+ <span class="cline-any cline-no">&nbsp;</span>
715
+ <span class="cline-any cline-no">&nbsp;</span>
671
716
  <span class="cline-any cline-neutral">&nbsp;</span>
672
717
  <span class="cline-any cline-neutral">&nbsp;</span>
673
718
  <span class="cline-any cline-neutral">&nbsp;</span>
674
719
  <span class="cline-any cline-neutral">&nbsp;</span>
675
720
  <span class="cline-any cline-neutral">&nbsp;</span>
676
721
  <span class="cline-any cline-neutral">&nbsp;</span>
722
+ <span class="cline-any cline-no">&nbsp;</span>
677
723
  <span class="cline-any cline-neutral">&nbsp;</span>
678
724
  <span class="cline-any cline-neutral">&nbsp;</span>
679
725
  <span class="cline-any cline-neutral">&nbsp;</span>
680
726
  <span class="cline-any cline-neutral">&nbsp;</span>
681
727
  <span class="cline-any cline-neutral">&nbsp;</span>
682
728
  <span class="cline-any cline-neutral">&nbsp;</span>
729
+ <span class="cline-any cline-no">&nbsp;</span>
683
730
  <span class="cline-any cline-neutral">&nbsp;</span>
684
731
  <span class="cline-any cline-neutral">&nbsp;</span>
685
732
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -687,21 +734,26 @@
687
734
  <span class="cline-any cline-neutral">&nbsp;</span>
688
735
  <span class="cline-any cline-neutral">&nbsp;</span>
689
736
  <span class="cline-any cline-neutral">&nbsp;</span>
690
- <span class="cline-any cline-yes">20x</span>
691
737
  <span class="cline-any cline-no">&nbsp;</span>
692
738
  <span class="cline-any cline-neutral">&nbsp;</span>
693
739
  <span class="cline-any cline-neutral">&nbsp;</span>
694
- <span class="cline-any cline-yes">20x</span>
740
+ <span class="cline-any cline-neutral">&nbsp;</span>
741
+ <span class="cline-any cline-no">&nbsp;</span>
695
742
  <span class="cline-any cline-neutral">&nbsp;</span>
696
743
  <span class="cline-any cline-neutral">&nbsp;</span>
697
744
  <span class="cline-any cline-neutral">&nbsp;</span>
745
+ <span class="cline-any cline-no">&nbsp;</span>
746
+ <span class="cline-any cline-no">&nbsp;</span>
698
747
  <span class="cline-any cline-neutral">&nbsp;</span>
699
748
  <span class="cline-any cline-neutral">&nbsp;</span>
700
749
  <span class="cline-any cline-neutral">&nbsp;</span>
750
+ <span class="cline-any cline-no">&nbsp;</span>
751
+ <span class="cline-any cline-no">&nbsp;</span>
701
752
  <span class="cline-any cline-neutral">&nbsp;</span>
702
753
  <span class="cline-any cline-neutral">&nbsp;</span>
703
754
  <span class="cline-any cline-neutral">&nbsp;</span>
704
- <span class="cline-any cline-yes">1x</span>
755
+ <span class="cline-any cline-no">&nbsp;</span>
756
+ <span class="cline-any cline-no">&nbsp;</span>
705
757
  <span class="cline-any cline-neutral">&nbsp;</span>
706
758
  <span class="cline-any cline-neutral">&nbsp;</span>
707
759
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -711,117 +763,128 @@
711
763
  <span class="cline-any cline-neutral">&nbsp;</span>
712
764
  <span class="cline-any cline-neutral">&nbsp;</span>
713
765
  <span class="cline-any cline-neutral">&nbsp;</span>
714
- <span class="cline-any cline-yes">5x</span>
715
- <span class="cline-any cline-yes">35x</span>
716
766
  <span class="cline-any cline-neutral">&nbsp;</span>
717
767
  <span class="cline-any cline-neutral">&nbsp;</span>
718
- <span class="cline-any cline-yes">35x</span>
719
- <span class="cline-any cline-yes">20x</span>
720
768
  <span class="cline-any cline-neutral">&nbsp;</span>
721
769
  <span class="cline-any cline-neutral">&nbsp;</span>
722
770
  <span class="cline-any cline-neutral">&nbsp;</span>
723
- <span class="cline-any cline-yes">35x</span>
724
- <span class="cline-any cline-no">&nbsp;</span>
725
771
  <span class="cline-any cline-neutral">&nbsp;</span>
726
772
  <span class="cline-any cline-neutral">&nbsp;</span>
727
- <span class="cline-any cline-yes">35x</span>
728
773
  <span class="cline-any cline-neutral">&nbsp;</span>
729
- <span class="cline-any cline-yes">35x</span>
730
774
  <span class="cline-any cline-no">&nbsp;</span>
731
775
  <span class="cline-any cline-no">&nbsp;</span>
732
776
  <span class="cline-any cline-no">&nbsp;</span>
777
+ <span class="cline-any cline-no">&nbsp;</span>
778
+ <span class="cline-any cline-no">&nbsp;</span>
779
+ <span class="cline-any cline-neutral">&nbsp;</span>
733
780
  <span class="cline-any cline-neutral">&nbsp;</span>
734
781
  <span class="cline-any cline-neutral">&nbsp;</span>
735
782
  <span class="cline-any cline-neutral">&nbsp;</span>
736
- <span class="cline-any cline-yes">35x</span>
737
- <span class="cline-any cline-yes">35x</span>
738
783
  <span class="cline-any cline-neutral">&nbsp;</span>
739
784
  <span class="cline-any cline-neutral">&nbsp;</span>
740
- <span class="cline-any cline-yes">35x</span>
785
+ <span class="cline-any cline-no">&nbsp;</span>
741
786
  <span class="cline-any cline-no">&nbsp;</span>
742
787
  <span class="cline-any cline-neutral">&nbsp;</span>
743
788
  <span class="cline-any cline-neutral">&nbsp;</span>
744
- <span class="cline-any cline-yes">35x</span>
745
- <span class="cline-any cline-yes">30x</span>
746
789
  <span class="cline-any cline-neutral">&nbsp;</span>
747
- <span class="cline-any cline-no">&nbsp;</span>
790
+ <span class="cline-any cline-neutral">&nbsp;</span>
748
791
  <span class="cline-any cline-no">&nbsp;</span>
749
792
  <span class="cline-any cline-neutral">&nbsp;</span>
750
793
  <span class="cline-any cline-no">&nbsp;</span>
751
794
  <span class="cline-any cline-no">&nbsp;</span>
752
795
  <span class="cline-any cline-neutral">&nbsp;</span>
753
- <span class="cline-any cline-yes">30x</span>
754
- <span class="cline-any cline-yes">30x</span>
755
796
  <span class="cline-any cline-neutral">&nbsp;</span>
756
- <span class="cline-any cline-no">&nbsp;</span>
757
- <span class="cline-any cline-no">&nbsp;</span>
797
+ <span class="cline-any cline-neutral">&nbsp;</span>
798
+ <span class="cline-any cline-neutral">&nbsp;</span>
758
799
  <span class="cline-any cline-neutral">&nbsp;</span>
759
800
  <span class="cline-any cline-no">&nbsp;</span>
760
801
  <span class="cline-any cline-no">&nbsp;</span>
761
802
  <span class="cline-any cline-neutral">&nbsp;</span>
762
803
  <span class="cline-any cline-neutral">&nbsp;</span>
804
+ <span class="cline-any cline-neutral">&nbsp;</span>
805
+ <span class="cline-any cline-no">&nbsp;</span>
763
806
  <span class="cline-any cline-no">&nbsp;</span>
764
807
  <span class="cline-any cline-no">&nbsp;</span>
765
808
  <span class="cline-any cline-no">&nbsp;</span>
766
- <span class="cline-any cline-neutral">&nbsp;</span>
767
809
  <span class="cline-any cline-no">&nbsp;</span>
768
- <span class="cline-any cline-neutral">&nbsp;</span>
769
810
  <span class="cline-any cline-no">&nbsp;</span>
770
- <span class="cline-any cline-neutral">&nbsp;</span>
771
811
  <span class="cline-any cline-neutral">&nbsp;</span>
772
812
  <span class="cline-any cline-no">&nbsp;</span>
813
+ <span class="cline-any cline-no">&nbsp;</span>
814
+ <span class="cline-any cline-no">&nbsp;</span>
773
815
  <span class="cline-any cline-neutral">&nbsp;</span>
774
816
  <span class="cline-any cline-neutral">&nbsp;</span>
817
+ <span class="cline-any cline-neutral">&nbsp;</span>
818
+ <span class="cline-any cline-no">&nbsp;</span>
819
+ <span class="cline-any cline-no">&nbsp;</span>
775
820
  <span class="cline-any cline-no">&nbsp;</span>
776
821
  <span class="cline-any cline-neutral">&nbsp;</span>
777
822
  <span class="cline-any cline-no">&nbsp;</span>
823
+ <span class="cline-any cline-no">&nbsp;</span>
824
+ <span class="cline-any cline-no">&nbsp;</span>
825
+ <span class="cline-any cline-no">&nbsp;</span>
826
+ <span class="cline-any cline-no">&nbsp;</span>
778
827
  <span class="cline-any cline-neutral">&nbsp;</span>
779
828
  <span class="cline-any cline-no">&nbsp;</span>
829
+ <span class="cline-any cline-no">&nbsp;</span>
830
+ <span class="cline-any cline-no">&nbsp;</span>
831
+ <span class="cline-any cline-no">&nbsp;</span>
832
+ <span class="cline-any cline-no">&nbsp;</span>
780
833
  <span class="cline-any cline-neutral">&nbsp;</span>
781
834
  <span class="cline-any cline-neutral">&nbsp;</span>
782
835
  <span class="cline-any cline-neutral">&nbsp;</span>
783
- <span class="cline-any cline-yes">35x</span>
836
+ <span class="cline-any cline-no">&nbsp;</span>
837
+ <span class="cline-any cline-no">&nbsp;</span>
784
838
  <span class="cline-any cline-neutral">&nbsp;</span>
785
839
  <span class="cline-any cline-neutral">&nbsp;</span>
786
840
  <span class="cline-any cline-neutral">&nbsp;</span>
787
- <span class="cline-any cline-yes">5x</span>
841
+ <span class="cline-any cline-no">&nbsp;</span>
788
842
  <span class="cline-any cline-neutral">&nbsp;</span>
789
843
  <span class="cline-any cline-neutral">&nbsp;</span>
844
+ <span class="cline-any cline-no">&nbsp;</span>
790
845
  <span class="cline-any cline-neutral">&nbsp;</span>
791
846
  <span class="cline-any cline-neutral">&nbsp;</span>
792
847
  <span class="cline-any cline-no">&nbsp;</span>
793
848
  <span class="cline-any cline-no">&nbsp;</span>
849
+ <span class="cline-any cline-no">&nbsp;</span>
850
+ <span class="cline-any cline-neutral">&nbsp;</span>
794
851
  <span class="cline-any cline-neutral">&nbsp;</span>
852
+ <span class="cline-any cline-neutral">&nbsp;</span>
853
+ <span class="cline-any cline-no">&nbsp;</span>
795
854
  <span class="cline-any cline-no">&nbsp;</span>
796
855
  <span class="cline-any cline-no">&nbsp;</span>
797
856
  <span class="cline-any cline-neutral">&nbsp;</span>
857
+ <span class="cline-any cline-neutral">&nbsp;</span>
858
+ <span class="cline-any cline-neutral">&nbsp;</span>
798
859
  <span class="cline-any cline-no">&nbsp;</span>
860
+ <span class="cline-any cline-neutral">&nbsp;</span>
799
861
  <span class="cline-any cline-no">&nbsp;</span>
800
862
  <span class="cline-any cline-neutral">&nbsp;</span>
801
863
  <span class="cline-any cline-neutral">&nbsp;</span>
864
+ <span class="cline-any cline-neutral">&nbsp;</span>
802
865
  <span class="cline-any cline-no">&nbsp;</span>
803
866
  <span class="cline-any cline-neutral">&nbsp;</span>
804
867
  <span class="cline-any cline-neutral">&nbsp;</span>
805
868
  <span class="cline-any cline-no">&nbsp;</span>
806
- <span class="cline-any cline-no">&nbsp;</span>
807
869
  <span class="cline-any cline-neutral">&nbsp;</span>
808
870
  <span class="cline-any cline-neutral">&nbsp;</span>
809
871
  <span class="cline-any cline-no">&nbsp;</span>
810
- <span class="cline-any cline-no">&nbsp;</span>
811
872
  <span class="cline-any cline-neutral">&nbsp;</span>
812
873
  <span class="cline-any cline-neutral">&nbsp;</span>
813
874
  <span class="cline-any cline-no">&nbsp;</span>
814
875
  <span class="cline-any cline-no">&nbsp;</span>
815
- <span class="cline-any cline-neutral">&nbsp;</span>
816
- <span class="cline-any cline-no">&nbsp;</span>
817
876
  <span class="cline-any cline-no">&nbsp;</span>
818
877
  <span class="cline-any cline-neutral">&nbsp;</span>
878
+ <span class="cline-any cline-neutral">&nbsp;</span>
879
+ <span class="cline-any cline-neutral">&nbsp;</span>
880
+ <span class="cline-any cline-no">&nbsp;</span>
819
881
  <span class="cline-any cline-no">&nbsp;</span>
820
882
  <span class="cline-any cline-no">&nbsp;</span>
821
883
  <span class="cline-any cline-neutral">&nbsp;</span>
884
+ <span class="cline-any cline-neutral">&nbsp;</span>
885
+ <span class="cline-any cline-neutral">&nbsp;</span>
822
886
  <span class="cline-any cline-no">&nbsp;</span>
823
887
  <span class="cline-any cline-no">&nbsp;</span>
824
- <span class="cline-any cline-neutral">&nbsp;</span>
825
888
  <span class="cline-any cline-no">&nbsp;</span>
826
889
  <span class="cline-any cline-no">&nbsp;</span>
827
890
  <span class="cline-any cline-no">&nbsp;</span>
@@ -829,103 +892,118 @@
829
892
  <span class="cline-any cline-neutral">&nbsp;</span>
830
893
  <span class="cline-any cline-neutral">&nbsp;</span>
831
894
  <span class="cline-any cline-neutral">&nbsp;</span>
832
- <span class="cline-any cline-no">&nbsp;</span>
833
895
  <span class="cline-any cline-neutral">&nbsp;</span>
834
896
  <span class="cline-any cline-no">&nbsp;</span>
835
- <span class="cline-any cline-no">&nbsp;</span>
836
897
  <span class="cline-any cline-neutral">&nbsp;</span>
837
898
  <span class="cline-any cline-no">&nbsp;</span>
838
899
  <span class="cline-any cline-neutral">&nbsp;</span>
839
900
  <span class="cline-any cline-neutral">&nbsp;</span>
840
901
  <span class="cline-any cline-neutral">&nbsp;</span>
841
902
  <span class="cline-any cline-neutral">&nbsp;</span>
842
- <span class="cline-any cline-no">&nbsp;</span>
843
- <span class="cline-any cline-no">&nbsp;</span>
844
903
  <span class="cline-any cline-neutral">&nbsp;</span>
845
904
  <span class="cline-any cline-neutral">&nbsp;</span>
846
- <span class="cline-any cline-no">&nbsp;</span>
847
905
  <span class="cline-any cline-neutral">&nbsp;</span>
848
906
  <span class="cline-any cline-neutral">&nbsp;</span>
849
907
  <span class="cline-any cline-neutral">&nbsp;</span>
850
908
  <span class="cline-any cline-neutral">&nbsp;</span>
851
- <span class="cline-any cline-yes">1x</span>
852
- <span class="cline-any cline-yes">8x</span>
853
909
  <span class="cline-any cline-neutral">&nbsp;</span>
854
910
  <span class="cline-any cline-neutral">&nbsp;</span>
855
- <span class="cline-any cline-yes">6x</span>
856
911
  <span class="cline-any cline-neutral">&nbsp;</span>
857
912
  <span class="cline-any cline-neutral">&nbsp;</span>
858
913
  <span class="cline-any cline-neutral">&nbsp;</span>
914
+ <span class="cline-any cline-no">&nbsp;</span>
915
+ <span class="cline-any cline-no">&nbsp;</span>
859
916
  <span class="cline-any cline-neutral">&nbsp;</span>
860
- <span class="cline-any cline-yes">6x</span>
861
917
  <span class="cline-any cline-neutral">&nbsp;</span>
918
+ <span class="cline-any cline-no">&nbsp;</span>
862
919
  <span class="cline-any cline-neutral">&nbsp;</span>
863
920
  <span class="cline-any cline-neutral">&nbsp;</span>
864
921
  <span class="cline-any cline-neutral">&nbsp;</span>
865
- <span class="cline-any cline-yes">30x</span>
866
922
  <span class="cline-any cline-neutral">&nbsp;</span>
867
923
  <span class="cline-any cline-neutral">&nbsp;</span>
868
924
  <span class="cline-any cline-neutral">&nbsp;</span>
869
925
  <span class="cline-any cline-neutral">&nbsp;</span>
870
- <span class="cline-any cline-yes">1x</span>
871
926
  <span class="cline-any cline-neutral">&nbsp;</span>
872
927
  <span class="cline-any cline-neutral">&nbsp;</span>
873
928
  <span class="cline-any cline-neutral">&nbsp;</span>
874
929
  <span class="cline-any cline-neutral">&nbsp;</span>
875
- <span class="cline-any cline-yes">1x</span>
876
930
  <span class="cline-any cline-neutral">&nbsp;</span>
877
- <span class="cline-any cline-yes">1x</span>
878
931
  <span class="cline-any cline-neutral">&nbsp;</span>
879
932
  <span class="cline-any cline-neutral">&nbsp;</span>
880
933
  <span class="cline-any cline-neutral">&nbsp;</span>
934
+ <span class="cline-any cline-no">&nbsp;</span>
881
935
  <span class="cline-any cline-neutral">&nbsp;</span>
882
- <span class="cline-any cline-yes">1x</span>
936
+ <span class="cline-any cline-no">&nbsp;</span>
937
+ <span class="cline-any cline-no">&nbsp;</span>
883
938
  <span class="cline-any cline-neutral">&nbsp;</span>
884
939
  <span class="cline-any cline-neutral">&nbsp;</span>
885
- <span class="cline-any cline-yes">1x</span>
940
+ <span class="cline-any cline-no">&nbsp;</span>
886
941
  <span class="cline-any cline-neutral">&nbsp;</span>
887
942
  <span class="cline-any cline-neutral">&nbsp;</span>
943
+ <span class="cline-any cline-no">&nbsp;</span>
944
+ <span class="cline-any cline-no">&nbsp;</span>
888
945
  <span class="cline-any cline-neutral">&nbsp;</span>
889
946
  <span class="cline-any cline-neutral">&nbsp;</span>
890
947
  <span class="cline-any cline-neutral">&nbsp;</span>
891
- <span class="cline-any cline-yes">1x</span>
948
+ <span class="cline-any cline-no">&nbsp;</span>
892
949
  <span class="cline-any cline-neutral">&nbsp;</span>
893
950
  <span class="cline-any cline-neutral">&nbsp;</span>
894
- <span class="cline-any cline-yes">1x</span>
951
+ <span class="cline-any cline-no">&nbsp;</span>
895
952
  <span class="cline-any cline-neutral">&nbsp;</span>
953
+ <span class="cline-any cline-no">&nbsp;</span>
896
954
  <span class="cline-any cline-neutral">&nbsp;</span>
897
955
  <span class="cline-any cline-neutral">&nbsp;</span>
956
+ <span class="cline-any cline-no">&nbsp;</span>
898
957
  <span class="cline-any cline-neutral">&nbsp;</span>
899
958
  <span class="cline-any cline-neutral">&nbsp;</span>
900
- <span class="cline-any cline-yes">1x</span>
959
+ <span class="cline-any cline-no">&nbsp;</span>
960
+ <span class="cline-any cline-no">&nbsp;</span>
961
+ <span class="cline-any cline-no">&nbsp;</span>
901
962
  <span class="cline-any cline-neutral">&nbsp;</span>
902
963
  <span class="cline-any cline-neutral">&nbsp;</span>
903
- <span class="cline-any cline-yes">1x</span>
964
+ <span class="cline-any cline-no">&nbsp;</span>
904
965
  <span class="cline-any cline-neutral">&nbsp;</span>
905
966
  <span class="cline-any cline-neutral">&nbsp;</span>
967
+ <span class="cline-any cline-no">&nbsp;</span>
906
968
  <span class="cline-any cline-neutral">&nbsp;</span>
969
+ <span class="cline-any cline-no">&nbsp;</span>
907
970
  <span class="cline-any cline-neutral">&nbsp;</span>
908
971
  <span class="cline-any cline-neutral">&nbsp;</span>
972
+ <span class="cline-any cline-no">&nbsp;</span>
973
+ <span class="cline-any cline-no">&nbsp;</span>
974
+ <span class="cline-any cline-no">&nbsp;</span>
909
975
  <span class="cline-any cline-neutral">&nbsp;</span>
910
- <span class="cline-any cline-yes">1x</span>
911
976
  <span class="cline-any cline-neutral">&nbsp;</span>
912
977
  <span class="cline-any cline-neutral">&nbsp;</span>
913
978
  <span class="cline-any cline-neutral">&nbsp;</span>
914
979
  <span class="cline-any cline-neutral">&nbsp;</span>
980
+ <span class="cline-any cline-no">&nbsp;</span>
915
981
  <span class="cline-any cline-neutral">&nbsp;</span>
916
982
  <span class="cline-any cline-neutral">&nbsp;</span>
983
+ <span class="cline-any cline-no">&nbsp;</span>
917
984
  <span class="cline-any cline-neutral">&nbsp;</span>
985
+ <span class="cline-any cline-no">&nbsp;</span>
918
986
  <span class="cline-any cline-neutral">&nbsp;</span>
919
987
  <span class="cline-any cline-neutral">&nbsp;</span>
988
+ <span class="cline-any cline-no">&nbsp;</span>
989
+ <span class="cline-any cline-no">&nbsp;</span>
990
+ <span class="cline-any cline-no">&nbsp;</span>
920
991
  <span class="cline-any cline-neutral">&nbsp;</span>
921
992
  <span class="cline-any cline-neutral">&nbsp;</span>
922
993
  <span class="cline-any cline-neutral">&nbsp;</span>
994
+ <span class="cline-any cline-no">&nbsp;</span>
923
995
  <span class="cline-any cline-neutral">&nbsp;</span>
924
996
  <span class="cline-any cline-neutral">&nbsp;</span>
997
+ <span class="cline-any cline-no">&nbsp;</span>
925
998
  <span class="cline-any cline-neutral">&nbsp;</span>
926
999
  <span class="cline-any cline-neutral">&nbsp;</span>
1000
+ <span class="cline-any cline-no">&nbsp;</span>
1001
+ <span class="cline-any cline-neutral">&nbsp;</span>
927
1002
  <span class="cline-any cline-neutral">&nbsp;</span>
928
1003
  <span class="cline-any cline-neutral">&nbsp;</span>
1004
+ <span class="cline-any cline-no">&nbsp;</span>
1005
+ <span class="cline-any cline-neutral">&nbsp;</span>
1006
+ <span class="cline-any cline-no">&nbsp;</span>
929
1007
  <span class="cline-any cline-neutral">&nbsp;</span>
930
1008
  <span class="cline-any cline-neutral">&nbsp;</span>
931
1009
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -933,444 +1011,492 @@
933
1011
  <span class="cline-any cline-neutral">&nbsp;</span>
934
1012
  <span class="cline-any cline-neutral">&nbsp;</span>
935
1013
  <span class="cline-any cline-neutral">&nbsp;</span>
936
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { F64 } from '@node-dlc/bufio';
1014
+ <span class="cline-any cline-no">&nbsp;</span>
1015
+ <span class="cline-any cline-no">&nbsp;</span>
1016
+ <span class="cline-any cline-no">&nbsp;</span>
1017
+ <span class="cline-any cline-no">&nbsp;</span>
1018
+ <span class="cline-any cline-neutral">&nbsp;</span>
1019
+ <span class="cline-any cline-neutral">&nbsp;</span>
1020
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { BufferWriter, StreamReader, varIntBytes } from '@node-dlc/bufio';
1021
+ import { Hex } from '@node-dlc/bufio';
1022
+ import { hash256 } from '@node-dlc/crypto';
937
1023
  &nbsp;
938
- // Field transformation options (similar to serde attributes)
939
- export interface SerdeFieldOptions {
940
- rename?: string; // For mapping different field names
941
- aliases?: string[]; // For handling multiple field name variations during deserialization
942
- transform?: {
943
- serialize?: (value: any) =&gt; any;
944
- deserialize?: (value: any) =&gt; any;
945
- };
946
- optional?: boolean;
947
- type?:
948
- | 'hex'
949
- | 'bigint'
950
- | 'f64'
951
- | 'buffer'
952
- | 'array'
953
- | 'object'
954
- | 'der_signature';
955
- itemType?: string; // For arrays of complex objects
956
- }
1024
+ import { HashByteOrder } from './HashByteOrder';
1025
+ import { HashValue } from './HashValue';
1026
+ import { LockTime } from './LockTime';
1027
+ import { OutPoint } from './OutPoint';
1028
+ import { Script } from './Script';
1029
+ import { Sequence } from './Sequence';
1030
+ import { SizeResult } from './SizeResult';
1031
+ import { TxIn } from './TxIn';
1032
+ import { TxOut } from './TxOut';
1033
+ import { Value } from './Value';
1034
+ import { Witness } from './Witness';
957
1035
  &nbsp;
958
- // Utility functions similar to Rust serde helpers
959
- export class SerdeHelpers {
960
- // Equivalent to serialize_hex helper in Rust
961
- <span class="fstat-no" title="function not covered" > static </span>serializeHex(value: Buffer): string {
962
- <span class="cstat-no" title="statement not covered" > return value.toString('hex');</span>
1036
+ /**
1037
+ * This class is an immutable Bitcoin transaction. This class is used
1038
+ * as a data container from parsed blocks, RPC, or other sources. To use
1039
+ * a mutable transaction, you should use `TxBuilder` class.
1040
+ */
1041
+ export class Tx {
1042
+ /**
1043
+ * Decodes a `Tx` stream similar to Bitcoin Core's DecodeTx method
1044
+ * in that it will first try to parse with SegWit markers enabled.
1045
+ * If there is an error (such as with a base transaction with no
1046
+ * inputs), then it will try parsing using the legacy method.
1047
+ * @param reader
1048
+ */
1049
+ public <span class="fstat-no" title="function not covered" >static </span>decode(reader: StreamReader): Tx {
1050
+ const data = <span class="cstat-no" title="statement not covered" >reader.readBytes();</span>
1051
+ <span class="cstat-no" title="statement not covered" > try {</span>
1052
+ <span class="cstat-no" title="statement not covered" > return Tx.parse(StreamReader.fromBuffer(data), true);</span>
1053
+ } catch (ex) {
1054
+ <span class="cstat-no" title="statement not covered" > return Tx.parse(StreamReader.fromBuffer(data), false);</span>
1055
+ }
963
1056
  }
964
1057
  &nbsp;
965
- // Equivalent to deserialize_hex_string helper in Rust
966
- <span class="fstat-no" title="function not covered" > static </span>deserializeHex(value: string): Buffer {
967
- <span class="cstat-no" title="statement not covered" > return Buffer.from(value, 'hex');</span>
968
- }
1058
+ /**
1059
+ * Parses a transaction from its byte format in a stream. Capable of
1060
+ * parsing both legacy and segwit transactions. This method is
1061
+ * similar to Bitcoin Core's `UnserializeTransaction` on the
1062
+ * `Transaction` type. This method is expected to throw if witness
1063
+ * is enabled and we have an ambiguous base transaction (zero inputs).
1064
+ * @param reader
1065
+ */
1066
+ private <span class="fstat-no" title="function not covered" >static </span>parse(reader: StreamReader, allowWitness: boolean): Tx {
1067
+ // Read the version
1068
+ const version = <span class="cstat-no" title="statement not covered" >reader.readUInt32LE();</span>
969
1069
  &nbsp;
970
- // Safe BigInt conversion (handles json-bigint compatibility)
971
- static toBigInt(value: any): bigint {
972
- <span class="missing-if-branch" title="if path not taken" >I</span>if (value === null || value === undefined) <span class="cstat-no" title="statement not covered" >return BigInt(0);</span>
973
- <span class="missing-if-branch" title="if path not taken" >I</span>if (typeof value === 'bigint') <span class="cstat-no" title="statement not covered" >return value;</span>
974
- <span class="missing-if-branch" title="if path not taken" >I</span>if (typeof value === 'string') <span class="cstat-no" title="statement not covered" >return BigInt(value);</span>
975
- <span class="missing-if-branch" title="else path not taken" >E</span>if (typeof value === 'number') return BigInt(value);
976
- <span class="cstat-no" title="statement not covered" > return BigInt(0);</span>
977
- }
1070
+ // Try reading inputs. If this is segwit or a base/dummy, we get
1071
+ // an empty array
1072
+ let vins: TxIn[] = <span class="cstat-no" title="statement not covered" >Tx.parseInputs(reader);</span>
1073
+ let vouts: TxOut[];
978
1074
  &nbsp;
979
- // Safe BigInt to number conversion (preserves precision)
980
- static bigIntToNumber(value: bigint): number {
981
- <span class="missing-if-branch" title="else path not taken" >E</span>if (
982
- value &lt;= BigInt(Number.MAX_SAFE_INTEGER) &amp;&amp;
983
- value &gt;= BigInt(Number.MIN_SAFE_INTEGER)
984
- ) {
985
- return Number(value);
1075
+ let flags = <span class="cstat-no" title="statement not covered" >0;</span>
1076
+ &nbsp;
1077
+ // If witness is allowed and we had an empty input array we
1078
+ // will try parsing a normal witness transaction. This may throw
1079
+ // if this is a base transaction.
1080
+ <span class="cstat-no" title="statement not covered" > if (allowWitness &amp;&amp; vins.length === 0) {</span>
1081
+ <span class="cstat-no" title="statement not covered" > flags = reader.readUInt8();</span>
1082
+ <span class="cstat-no" title="statement not covered" > if (flags !== 0) {</span>
1083
+ <span class="cstat-no" title="statement not covered" > vins = Tx.parseInputs(reader);</span>
1084
+ <span class="cstat-no" title="statement not covered" > vouts = Tx.parseOutputs(reader);</span>
1085
+ }
1086
+ }
1087
+ // Otherwise, we had success reading inputs and can move along
1088
+ // and parse the outputs!
1089
+ else {
1090
+ <span class="cstat-no" title="statement not covered" > vouts = Tx.parseOutputs(reader);</span>
986
1091
  }
987
- // For larger values, preserve as BigInt (json-bigint will handle serialization)
988
- <span class="cstat-no" title="statement not covered" > return value as any;</span>
989
- }
990
1092
  &nbsp;
991
- // F64 parsing (handles string/number precision issues)
992
- static parseF64(value: any): F64 | null {
993
- <span class="missing-if-branch" title="if path not taken" >I</span>if (value === null || value === undefined) <span class="cstat-no" title="statement not covered" >return null;</span>
994
- &nbsp;
995
- try {
996
- if (typeof value === 'string') {
997
- try {
998
- return F64.fromString(value);
999
- } catch {
1000
- const numValue = <span class="cstat-no" title="statement not covered" >parseFloat(value);</span>
1001
- <span class="cstat-no" title="statement not covered" > if (!isNaN(numValue) &amp;&amp; isFinite(numValue)) {</span>
1002
- <span class="cstat-no" title="statement not covered" > return F64.fromNumber(numValue);</span>
1003
- }
1093
+ // If we have witness and read a flag, then we we need to
1094
+ // process the witness for each input.
1095
+ <span class="cstat-no" title="statement not covered" > if (allowWitness &amp;&amp; flags &amp; 1) {</span>
1096
+ <span class="cstat-no" title="statement not covered" > for (let i = <span class="cstat-no" title="statement not covered" >0;</span> i &lt; vins.length; i++) {</span>
1097
+ const items = <span class="cstat-no" title="statement not covered" >Number(reader.readVarInt());</span>
1098
+ <span class="cstat-no" title="statement not covered" > for (let item = <span class="cstat-no" title="statement not covered" >0;</span> item &lt; items; item++) {</span>
1099
+ <span class="cstat-no" title="statement not covered" > vins[i].witness.push(Witness.parse(reader));</span>
1004
1100
  }
1005
- } else <span class="missing-if-branch" title="else path not taken" >E</span>if (typeof value === 'number') {
1006
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!isFinite(value)) <span class="cstat-no" title="statement not covered" >return null;</span>
1007
- return F64.fromNumber(value);
1008
1101
  }
1102
+ }
1009
1103
  &nbsp;
1010
- const numValue = <span class="cstat-no" title="statement not covered" >Number(value);</span>
1011
- <span class="cstat-no" title="statement not covered" > if (!isNaN(numValue) &amp;&amp; isFinite(numValue)) {</span>
1012
- <span class="cstat-no" title="statement not covered" > return F64.fromNumber(numValue);</span>
1013
- }
1014
- <span class="cstat-no" title="statement not covered" > return null;</span>
1015
- } catch {
1016
- <span class="cstat-no" title="statement not covered" > return null;</span>
1104
+ // Finally read the locktime
1105
+ const locktime = <span class="cstat-no" title="statement not covered" >LockTime.parse(reader);</span>
1106
+ &nbsp;
1107
+ <span class="cstat-no" title="statement not covered" > return new Tx(version, vins, vouts, locktime);</span>
1108
+ }
1109
+ &nbsp;
1110
+ /**
1111
+ * Parses the inputs for a transaction
1112
+ * @param reader
1113
+ * @returns
1114
+ */
1115
+ private <span class="fstat-no" title="function not covered" >static </span>parseInputs(reader: StreamReader): TxIn[] {
1116
+ const vinLen = <span class="cstat-no" title="statement not covered" >Number(reader.readVarInt());</span>
1117
+ const inputs: TxIn[] = <span class="cstat-no" title="statement not covered" >[];</span>
1118
+ <span class="cstat-no" title="statement not covered" > for (let idx = <span class="cstat-no" title="statement not covered" >0;</span> idx &lt; vinLen; idx++) {</span>
1119
+ <span class="cstat-no" title="statement not covered" > inputs.push(</span>
1120
+ new TxIn(
1121
+ OutPoint.parse(reader),
1122
+ Script.parse(reader),
1123
+ Sequence.parse(reader),
1124
+ ),
1125
+ );
1017
1126
  }
1127
+ <span class="cstat-no" title="statement not covered" > return inputs;</span>
1018
1128
  }
1019
1129
  &nbsp;
1020
- // F64 serialization to number or string based on precision needs
1021
- <span class="fstat-no" title="function not covered" > static </span>serializeF64(value: F64): number | string {
1022
- <span class="cstat-no" title="statement not covered" > try {</span>
1023
- const numValue = <span class="cstat-no" title="statement not covered" >value.toNumber();</span>
1024
- // If we can represent it as a safe number, do so
1025
- <span class="cstat-no" title="statement not covered" > if (Number.isSafeInteger(numValue) || Math.abs(numValue) &lt; 1e15) {</span>
1026
- <span class="cstat-no" title="statement not covered" > return numValue;</span>
1027
- }
1028
- // Otherwise, use string representation for precision
1029
- <span class="cstat-no" title="statement not covered" > return value.toString();</span>
1030
- } catch {
1031
- <span class="cstat-no" title="statement not covered" > return value.toString();</span>
1130
+ /**
1131
+ * Parses the outputs for a transaction
1132
+ * @param reader
1133
+ * @returns
1134
+ */
1135
+ private <span class="fstat-no" title="function not covered" >static </span>parseOutputs(reader: StreamReader): TxOut[] {
1136
+ const voutLen = <span class="cstat-no" title="statement not covered" >Number(reader.readVarInt());</span>
1137
+ const outputs: TxOut[] = <span class="cstat-no" title="statement not covered" >[];</span>
1138
+ <span class="cstat-no" title="statement not covered" > for (let idx = <span class="cstat-no" title="statement not covered" >0;</span> idx &lt; voutLen; idx++) {</span>
1139
+ <span class="cstat-no" title="statement not covered" > outputs.push(new TxOut(</span>
1140
+ Value.fromSats(reader.readBigUInt64LE()),
1141
+ Script.parse(reader),
1142
+ )); // prettier-ignore
1032
1143
  }
1144
+ <span class="cstat-no" title="statement not covered" > return outputs;</span>
1033
1145
  }
1034
1146
  &nbsp;
1035
- // Field name resolution with aliases (handles snake_case/camelCase variations)
1036
- static resolveFieldValue(
1037
- json: any,
1038
- fieldName: string,
1039
- aliases: string[] = <span class="branch-0 cbranch-no" title="branch not covered" >[],</span>
1040
- ): any {
1041
- <span class="missing-if-branch" title="else path not taken" >E</span>if (json[fieldName] !== undefined) return json[fieldName];
1147
+ /**
1148
+ * Parses a transaction from a buffer that contains the fully
1149
+ * serialization transaction bytes.
1150
+ * @param buf
1151
+ */
1152
+ public <span class="fstat-no" title="function not covered" >static </span>fromBuffer(buf: Buffer): Tx {
1153
+ <span class="cstat-no" title="statement not covered" > return Tx.decode(StreamReader.fromBuffer(buf));</span>
1154
+ }
1042
1155
  &nbsp;
1043
- <span class="cstat-no" title="statement not covered" > for (const alias of aliases) {</span>
1044
- <span class="cstat-no" title="statement not covered" > if (json[alias] !== undefined) <span class="cstat-no" title="statement not covered" >return json[alias];</span></span>
1045
- }
1156
+ /**
1157
+ * Parses a transaction from a hex string containing the fully
1158
+ * serialized transaction bytes.
1159
+ * @param hex
1160
+ */
1161
+ public <span class="fstat-no" title="function not covered" >static </span>fromHex(hex: string): Tx {
1162
+ <span class="cstat-no" title="statement not covered" > return Tx.decode(StreamReader.fromHex(hex));</span>
1163
+ }
1046
1164
  &nbsp;
1047
- <span class="cstat-no" title="statement not covered" > return undefined;</span>
1165
+ /**
1166
+ * Get the transaction version. The transaction version corresponds
1167
+ * to features that are enabled for the transaction such as time
1168
+ * locks.
1169
+ */
1170
+ <span class="fstat-no" title="function not covered" > public get v</span>ersion(): number {
1171
+ <span class="cstat-no" title="statement not covered" > return this._version;</span>
1048
1172
  }
1049
1173
  &nbsp;
1050
- // Convert field name based on naming convention
1051
- static convertFieldName(
1052
- fieldName: string,
1053
- convention: 'camelCase' | 'snake_case',
1054
- ): string {
1055
- switch (convention) {
1056
- case 'snake_case':
1057
- return fieldName.replace(
1058
- /[A-Z]/g,
1059
- <span class="fstat-no" title="function not covered" > (l</span>etter) =&gt; <span class="cstat-no" title="statement not covered" >`_${letter.toLowerCase()}`,</span>
1060
- );
1061
- <span class="branch-1 cbranch-no" title="branch not covered" > case 'camelCase':</span>
1062
- <span class="branch-2 cbranch-no" title="branch not covered" > default:</span>
1063
- <span class="cstat-no" title="statement not covered" > return fieldName;</span>
1064
- }
1174
+ /**
1175
+ * Gets the transaction identifier. The `txId` for both legacy and
1176
+ * segwit transaction is the hash256 of
1177
+ * `hash256(version||inputs||ouputs||locktime)`.
1178
+ */
1179
+ <span class="fstat-no" title="function not covered" > public get t</span>xId(): HashValue {
1180
+ <span class="cstat-no" title="statement not covered" > if (!this._txId) <span class="cstat-no" title="statement not covered" >this._lazyCalc();</span></span>
1181
+ <span class="cstat-no" title="statement not covered" > return this._txId;</span>
1065
1182
  }
1066
1183
  &nbsp;
1067
- // Parse DER signature to raw format (common pattern in DLC messages)
1068
- <span class="fstat-no" title="function not covered" > static </span>parseDerSignature(hexSig: string): Buffer {
1069
- const sigBuffer = <span class="cstat-no" title="statement not covered" >Buffer.from(hexSig, 'hex');</span>
1184
+ /**
1185
+ * Gets the transaction segwit transaction identifier. For legacy
1186
+ * transaction this is the same as the `txId` property. For segwit
1187
+ * transaction this is the hash256 of
1188
+ * `hash256(version||0x0001||inputs||outputs||witness||locktime)`.
1189
+ *
1190
+ * This is the same value as the `hash` property in bitcoind RPC
1191
+ * results.
1192
+ */
1193
+ <span class="fstat-no" title="function not covered" > public get w</span>itnessTxId(): HashValue {
1194
+ <span class="cstat-no" title="statement not covered" > if (!this._wtxid) <span class="cstat-no" title="statement not covered" >this._lazyCalc();</span></span>
1195
+ <span class="cstat-no" title="statement not covered" > return this._wtxid;</span>
1196
+ }
1070
1197
  &nbsp;
1071
- <span class="cstat-no" title="statement not covered" > if (sigBuffer.length === 64) {</span>
1072
- <span class="cstat-no" title="statement not covered" > return sigBuffer; </span>// Already raw format
1073
- }
1198
+ /**
1199
+ * Gets the transaction inputs.
1200
+ */
1201
+ <span class="fstat-no" title="function not covered" > public get i</span>nputs(): TxIn[] {
1202
+ <span class="cstat-no" title="statement not covered" > return this._inputs;</span>
1203
+ }
1074
1204
  &nbsp;
1075
- <span class="cstat-no" title="statement not covered" > try {</span>
1076
- // Import secp256k1 dynamically to avoid circular dependencies
1077
- // eslint-disable-next-line @typescript-eslint/no-var-requires
1078
- const secp256k1 = <span class="cstat-no" title="statement not covered" >require('secp256k1');</span>
1079
- const rawSig = <span class="cstat-no" title="statement not covered" >secp256k1.signatureImport(sigBuffer);</span>
1080
- <span class="cstat-no" title="statement not covered" > return Buffer.from(rawSig);</span>
1081
- } catch (ex) {
1082
- <span class="cstat-no" title="statement not covered" > throw new Error(`Invalid DER signature: ${(ex as Error).message}`);</span>
1083
- }
1205
+ /**
1206
+ * Gets the transaction outputs
1207
+ */
1208
+ <span class="fstat-no" title="function not covered" > public get o</span>utputs(): TxOut[] {
1209
+ <span class="cstat-no" title="statement not covered" > return this._outputs;</span>
1084
1210
  }
1085
1211
  &nbsp;
1086
- // Convert raw signature to DER format (for canonical JSON output)
1087
- <span class="fstat-no" title="function not covered" > static </span>serializeDerSignature(rawSig: Buffer): string {
1088
- <span class="cstat-no" title="statement not covered" > try {</span>
1089
- // eslint-disable-next-line @typescript-eslint/no-var-requires
1090
- const secp256k1 = <span class="cstat-no" title="statement not covered" >require('secp256k1');</span>
1091
- const derSig = <span class="cstat-no" title="statement not covered" >secp256k1.signatureExport(rawSig);</span>
1092
- <span class="cstat-no" title="statement not covered" > return Buffer.from(derSig).toString('hex');</span>
1093
- } catch (ex) {
1094
- <span class="cstat-no" title="statement not covered" > throw new Error(`Invalid raw signature: ${(ex as Error).message}`);</span>
1095
- }
1212
+ /**
1213
+ * Gets the transaction `nLocktime` value that is used to control
1214
+ * absolute timelocks.
1215
+ */
1216
+ <span class="fstat-no" title="function not covered" > public get l</span>ocktime(): LockTime {
1217
+ <span class="cstat-no" title="statement not covered" > return this._locktime;</span>
1096
1218
  }
1097
1219
  &nbsp;
1098
- // Get standard field aliases for a field name (handles common variations)
1099
- static getStandardAliases(fieldName: string): string[] {
1100
- const aliases: string[] = [];
1101
- &nbsp;
1102
- // Add snake_case variant
1103
- aliases.push(SerdeHelpers.convertFieldName(fieldName, 'snake_case'));
1104
- &nbsp;
1105
- // Handle specific common DLC field variations
1106
- const fieldVariations: Record&lt;string, string[]&gt; = {
1107
- fundingPubkey: ['fundingPubKey', 'funding_pubkey'],
1108
- payoutSpk: ['payoutSPK', 'payout_spk'],
1109
- changeSpk: ['changeSPK', 'change_spk'],
1110
- offerCollateral: ['offerCollateralSatoshis', 'offer_collateral'],
1111
- acceptCollateral: ['acceptCollateralSatoshis', 'accept_collateral'],
1112
- temporaryContractId: ['temporary_contract_id'],
1113
- contractFlags: ['contract_flags'],
1114
- chainHash: ['chain_hash'],
1115
- contractInfo: ['contract_info'],
1116
- fundingInputs: ['funding_inputs'],
1117
- payoutSerialId: ['payout_serial_id'],
1118
- changeSerialId: ['change_serial_id'],
1119
- fundOutputSerialId: ['fund_output_serial_id'],
1120
- feeRatePerVb: ['fee_rate_per_vb'],
1121
- cetLocktime: ['cet_locktime'],
1122
- refundLocktime: ['refund_locktime'],
1123
- refundSignature: ['refund_signature'],
1124
- cetAdaptorSignatures: ['cet_adaptor_signatures'],
1125
- negotiationFields: ['negotiation_fields'],
1126
- };
1220
+ <span class="fstat-no" title="function not covered" > public get i</span>sSegWit(): boolean {
1221
+ <span class="cstat-no" title="statement not covered" > return this._inputs.some(<span class="fstat-no" title="function not covered" >(p</span>) =&gt; <span class="cstat-no" title="statement not covered" >p.witness.length &gt; 0)</span>;</span>
1222
+ }
1127
1223
  &nbsp;
1128
- <span class="missing-if-branch" title="if path not taken" >I</span>if (fieldVariations[fieldName]) {
1129
- <span class="cstat-no" title="statement not covered" > aliases.push(...fieldVariations[fieldName]);</span>
1130
- }
1224
+ <span class="fstat-no" title="function not covered" > public get s</span>ize(): number {
1225
+ <span class="cstat-no" title="statement not covered" > if (!this._sizes) <span class="cstat-no" title="statement not covered" >this._lazyCalc();</span></span>
1226
+ <span class="cstat-no" title="statement not covered" > return this._sizes.size;</span>
1227
+ }
1131
1228
  &nbsp;
1132
- return aliases;
1229
+ <span class="fstat-no" title="function not covered" > public get v</span>size(): number {
1230
+ <span class="cstat-no" title="statement not covered" > if (!this._sizes) <span class="cstat-no" title="statement not covered" >this._lazyCalc();</span></span>
1231
+ <span class="cstat-no" title="statement not covered" > return this._sizes.vsize;</span>
1133
1232
  }
1134
- }
1135
1233
  &nbsp;
1136
- // Field mapping configuration type
1137
- export interface FieldMapping {
1138
- [propertyName: string]: SerdeFieldOptions;
1139
- }
1234
+ <span class="fstat-no" title="function not covered" > public get w</span>eight(): number {
1235
+ <span class="cstat-no" title="statement not covered" > if (!this._sizes) <span class="cstat-no" title="statement not covered" >this._lazyCalc();</span></span>
1236
+ <span class="cstat-no" title="statement not covered" > return this._sizes.weight;</span>
1237
+ }
1140
1238
  &nbsp;
1141
- // Base class that provides standardized fromJSON and toJSON using explicit field mappings
1142
- export abstract class SerdeBase {
1143
- // Abstract method that subclasses must implement to define their field mappings
1144
- protected abstract getFieldMappings(): FieldMapping;
1145
- &nbsp;
1146
- // Generic fromJSON that uses field mappings for deserialization
1147
- public static fromJSONWithMapping&lt;T extends SerdeBase&gt;(
1148
- json: any,
1149
- instance: T,
1150
- fieldMappings: FieldMapping,
1151
- ): T {
1152
- for (const [propKey, options] of Object.entries(fieldMappings)) {
1153
- let aliases = options.aliases || <span class="branch-1 cbranch-no" title="branch not covered" >[];</span>
1154
- &nbsp;
1155
- // Add standard aliases if not explicitly provided
1156
- if (aliases.length === 0) {
1157
- aliases = SerdeHelpers.getStandardAliases(propKey);
1158
- }
1239
+ private _version: number;
1240
+ private _txId: HashValue;
1241
+ private _wtxid: HashValue;
1242
+ private _inputs: TxIn[];
1243
+ private _outputs: TxOut[];
1244
+ private _locktime: LockTime;
1245
+ private _sizes: SizeResult;
1159
1246
  &nbsp;
1160
- // Add renamed field name
1161
- <span class="missing-if-branch" title="if path not taken" >I</span>if (options.rename) {
1162
- <span class="cstat-no" title="statement not covered" > aliases.unshift(options.rename);</span>
1163
- }
1247
+ <span class="fstat-no" title="function not covered" > public constructor(</span>
1248
+ version = <span class="branch-0 cbranch-no" title="branch not covered" >2,</span>
1249
+ inputs: TxIn[] = <span class="branch-0 cbranch-no" title="branch not covered" >[],</span>
1250
+ outputs: TxOut[] = <span class="branch-0 cbranch-no" title="branch not covered" >[],</span>
1251
+ locktime: LockTime = <span class="branch-0 cbranch-no" title="branch not covered" >new LockTime(),</span>
1252
+ sizes?: SizeResult,
1253
+ ) {
1254
+ <span class="cstat-no" title="statement not covered" > this._version = version;</span>
1255
+ <span class="cstat-no" title="statement not covered" > this._inputs = inputs;</span>
1256
+ <span class="cstat-no" title="statement not covered" > this._outputs = outputs;</span>
1257
+ <span class="cstat-no" title="statement not covered" > this._locktime = locktime;</span>
1258
+ <span class="cstat-no" title="statement not covered" > this._sizes = sizes;</span>
1259
+ }
1164
1260
  &nbsp;
1165
- const value = SerdeHelpers.resolveFieldValue(json, propKey, aliases);
1261
+ /**
1262
+ * Serializes legacy or segwit transactions into a Buffer
1263
+ */
1264
+ public <span class="fstat-no" title="function not covered" >serialize(</span>): Buffer {
1265
+ <span class="cstat-no" title="statement not covered" > if (this.isSegWit) <span class="cstat-no" title="statement not covered" >return this._serializeSegWit();</span></span>
1266
+ else <span class="cstat-no" title="statement not covered" >return this._serializeLegacy();</span>
1267
+ }
1166
1268
  &nbsp;
1167
- <span class="missing-if-branch" title="if path not taken" >I</span>if (value === undefined &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >!options.optional)</span> {
1168
- <span class="cstat-no" title="statement not covered" > if (options.type === 'bigint') {</span>
1169
- (<span class="cstat-no" title="statement not covered" >instance as any)[propKey] = BigInt(0);</span>
1170
- <span class="cstat-no" title="statement not covered" > continue;</span>
1269
+ // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
1270
+ public <span class="fstat-no" title="function not covered" >toJSON(</span>) {
1271
+ <span class="cstat-no" title="statement not covered" > return {</span>
1272
+ version: this.version,
1273
+ inputs: this.inputs.map(<span class="fstat-no" title="function not covered" >(v</span>in) =&gt; <span class="cstat-no" title="statement not covered" >vin.toJSON())</span>,
1274
+ outputs: this.outputs.map(<span class="fstat-no" title="function not covered" >(v</span>out) =&gt; <span class="cstat-no" title="statement not covered" >vout.toJSON())</span>,
1275
+ locktime: this.locktime.toJSON(),
1276
+ };
1277
+ }
1278
+ &nbsp;
1279
+ public <span class="fstat-no" title="function not covered" >toHex(</span>pretty = <span class="branch-0 cbranch-no" title="branch not covered" >false)</span>: string {
1280
+ <span class="cstat-no" title="statement not covered" > if (!pretty) <span class="cstat-no" title="statement not covered" >return this.serialize().toString('hex');</span></span>
1281
+ else <span class="cstat-no" title="statement not covered" >return this._prettyHex();</span>
1282
+ }
1283
+ &nbsp;
1284
+ private <span class="fstat-no" title="function not covered" >_prettyHex(</span>): string {
1285
+ const nl = <span class="cstat-no" title="statement not covered" >'\n';</span>
1286
+ const pad = <span class="cstat-no" title="statement not covered" >' ';</span>
1287
+ let s = <span class="cstat-no" title="statement not covered" >'';</span>
1288
+ <span class="cstat-no" title="statement not covered" > s += Hex.uint32LE(this.version) + nl;</span>
1289
+ <span class="cstat-no" title="statement not covered" > if (this.isSegWit) {</span>
1290
+ <span class="cstat-no" title="statement not covered" > s += '0001' + nl;</span>
1291
+ }
1292
+ <span class="cstat-no" title="statement not covered" > s += Hex.varint(this.inputs.length) + nl;</span>
1293
+ <span class="cstat-no" title="statement not covered" > for (const vin of this.inputs) {</span>
1294
+ <span class="cstat-no" title="statement not covered" > s +=</span>
1295
+ pad +
1296
+ vin.outpoint.txid.serialize(HashByteOrder.Internal).toString('hex') +
1297
+ nl;
1298
+ <span class="cstat-no" title="statement not covered" > s += pad + Hex.uint32LE(vin.outpoint.outputIndex) + nl;</span>
1299
+ <span class="cstat-no" title="statement not covered" > s += pad + vin.scriptSig.serialize().toString('hex') + nl;</span>
1300
+ <span class="cstat-no" title="statement not covered" > s += pad + Hex.uint32LE(vin.sequence.value) + nl;</span>
1301
+ }
1302
+ <span class="cstat-no" title="statement not covered" > s += Hex.varint(this.outputs.length) + nl;</span>
1303
+ <span class="cstat-no" title="statement not covered" > for (const vout of this.outputs) {</span>
1304
+ <span class="cstat-no" title="statement not covered" > s += pad + Hex.uint64LE(vout.value.sats) + nl;</span>
1305
+ <span class="cstat-no" title="statement not covered" > s += pad + vout.scriptPubKey.serialize().toString('hex');</span>
1306
+ <span class="cstat-no" title="statement not covered" > s += nl;</span>
1307
+ }
1308
+ <span class="cstat-no" title="statement not covered" > if (this.isSegWit) {</span>
1309
+ <span class="cstat-no" title="statement not covered" > for (const vin of this.inputs) {</span>
1310
+ <span class="cstat-no" title="statement not covered" > s += Hex.varint(vin.witness.length) + nl;</span>
1311
+ <span class="cstat-no" title="statement not covered" > for (const w of vin.witness) {</span>
1312
+ <span class="cstat-no" title="statement not covered" > s += pad + w.serialize().toString('hex') + nl;</span>
1171
1313
  }
1172
1314
  }
1315
+ }
1316
+ <span class="cstat-no" title="statement not covered" > s += Hex.uint32LE(this.locktime.value);</span>
1317
+ <span class="cstat-no" title="statement not covered" > return s;</span>
1318
+ }
1173
1319
  &nbsp;
1174
- <span class="missing-if-branch" title="else path not taken" >E</span>if (value !== undefined) {
1175
- let transformedValue = value;
1320
+ private <span class="fstat-no" title="function not covered" >_serializeLegacy(</span>): Buffer {
1321
+ const writer = <span class="cstat-no" title="statement not covered" >new BufferWriter();</span>
1176
1322
  &nbsp;
1177
- // Apply custom deserialize transformation first
1178
- <span class="missing-if-branch" title="if path not taken" >I</span>if (options.transform?.deserialize) {
1179
- <span class="cstat-no" title="statement not covered" > transformedValue = options.transform.deserialize(value);</span>
1180
- }
1181
- // Apply type-specific transformations
1182
- else if (options.type) {
1183
- switch (options.type) {
1184
- <span class="branch-0 cbranch-no" title="branch not covered" > case 'hex':</span>
1185
- <span class="cstat-no" title="statement not covered" > transformedValue = SerdeHelpers.deserializeHex(value);</span>
1186
- <span class="cstat-no" title="statement not covered" > break;</span>
1187
- <span class="branch-1 cbranch-no" title="branch not covered" > case 'bigint':</span>
1188
- <span class="cstat-no" title="statement not covered" > transformedValue = SerdeHelpers.toBigInt(value);</span>
1189
- <span class="cstat-no" title="statement not covered" > break;</span>
1190
- case 'f64':
1191
- transformedValue = SerdeHelpers.parseF64(value);
1192
- break;
1193
- <span class="branch-3 cbranch-no" title="branch not covered" > case 'buffer':</span>
1194
- <span class="cstat-no" title="statement not covered" > transformedValue = Buffer.from(value, 'hex');</span>
1195
- <span class="cstat-no" title="statement not covered" > break;</span>
1196
- <span class="branch-4 cbranch-no" title="branch not covered" > case 'der_signature':</span>
1197
- <span class="cstat-no" title="statement not covered" > transformedValue = SerdeHelpers.parseDerSignature(value);</span>
1198
- <span class="cstat-no" title="statement not covered" > break;</span>
1199
- <span class="branch-5 cbranch-no" title="branch not covered" > case 'array':</span>
1200
- // Handle arrays with specific item types
1201
- <span class="cstat-no" title="statement not covered" > if (Array.isArray(value)) {</span>
1202
- <span class="cstat-no" title="statement not covered" > transformedValue = value.map(<span class="fstat-no" title="function not covered" >(i</span>tem: any) =&gt; {</span>
1203
- <span class="cstat-no" title="statement not covered" > if (options.itemType &amp;&amp; item.fromJSON) {</span>
1204
- // Use the class's fromJSON method if available
1205
- <span class="cstat-no" title="statement not covered" > return item.fromJSON ? item.fromJSON(item) : item;</span>
1206
- }
1207
- <span class="cstat-no" title="statement not covered" > return item;</span>
1208
- });
1209
- }
1210
- <span class="cstat-no" title="statement not covered" > break;</span>
1211
- <span class="branch-6 cbranch-no" title="branch not covered" > case 'object':</span>
1212
- // For complex objects, try to use their fromJSON if available
1213
- <span class="cstat-no" title="statement not covered" > if (value &amp;&amp; typeof value === 'object' &amp;&amp; options.itemType) {</span>
1214
- // Dynamic import of the class and call fromJSON
1215
- <span class="cstat-no" title="statement not covered" > transformedValue = value;</span>
1216
- }
1217
- <span class="cstat-no" title="statement not covered" > break;</span>
1218
- }
1219
- }
1323
+ // version
1324
+ <span class="cstat-no" title="statement not covered" > writer.writeUInt32LE(this.version);</span>
1220
1325
  &nbsp;
1221
- (instance as any)[propKey] = transformedValue;
1222
- }
1326
+ // inputs
1327
+ <span class="cstat-no" title="statement not covered" > writer.writeVarInt(this.inputs.length);</span>
1328
+ <span class="cstat-no" title="statement not covered" > for (const input of this.inputs) {</span>
1329
+ <span class="cstat-no" title="statement not covered" > writer.writeBytes(input.serialize());</span>
1223
1330
  }
1224
1331
  &nbsp;
1225
- return instance;
1332
+ // outputs
1333
+ <span class="cstat-no" title="statement not covered" > writer.writeVarInt(this.outputs.length);</span>
1334
+ <span class="cstat-no" title="statement not covered" > for (const output of this.outputs) {</span>
1335
+ <span class="cstat-no" title="statement not covered" > writer.writeBytes(output.serialize());</span>
1336
+ }
1337
+ &nbsp;
1338
+ // locktime
1339
+ <span class="cstat-no" title="statement not covered" > writer.writeBytes(this.locktime.serialize());</span>
1340
+ &nbsp;
1341
+ <span class="cstat-no" title="statement not covered" > return writer.toBuffer();</span>
1226
1342
  }
1227
1343
  &nbsp;
1228
- // Generic toJSON using field mappings for serialization
1229
- <span class="fstat-no" title="function not covered" > toJSON(</span>): any {
1230
- const result: any = <span class="cstat-no" title="statement not covered" >{};</span>
1231
- const fieldMappings = <span class="cstat-no" title="statement not covered" >this.getFieldMappings();</span>
1344
+ private <span class="fstat-no" title="function not covered" >_serializeSegWit(</span>): Buffer {
1345
+ const writer = <span class="cstat-no" title="statement not covered" >new BufferWriter();</span>
1232
1346
  &nbsp;
1233
- <span class="cstat-no" title="statement not covered" > for (const [propKey, options] of Object.entries(fieldMappings)) {</span>
1234
- const value = (<span class="cstat-no" title="statement not covered" >this as any)[propKey];</span>
1347
+ // version
1348
+ <span class="cstat-no" title="statement not covered" > writer.writeUInt32LE(this.version);</span>
1235
1349
  &nbsp;
1236
- <span class="cstat-no" title="statement not covered" > if (value === undefined &amp;&amp; options.optional) {</span>
1237
- <span class="cstat-no" title="statement not covered" > continue; </span>// Skip optional undefined fields
1238
- }
1350
+ // write segwit marker and version
1351
+ <span class="cstat-no" title="statement not covered" > writer.writeBytes(Buffer.from([0x00, 0x01]));</span>
1239
1352
  &nbsp;
1240
- let serializedValue = <span class="cstat-no" title="statement not covered" >value;</span>
1353
+ // inputs
1354
+ <span class="cstat-no" title="statement not covered" > writer.writeVarInt(this.inputs.length);</span>
1355
+ <span class="cstat-no" title="statement not covered" > for (const input of this.inputs) {</span>
1356
+ <span class="cstat-no" title="statement not covered" > writer.writeBytes(input.serialize());</span>
1357
+ }
1358
+ &nbsp;
1359
+ // outputs
1360
+ <span class="cstat-no" title="statement not covered" > writer.writeVarInt(this.outputs.length);</span>
1361
+ <span class="cstat-no" title="statement not covered" > for (const output of this.outputs) {</span>
1362
+ <span class="cstat-no" title="statement not covered" > writer.writeBytes(output.serialize());</span>
1363
+ }
1241
1364
  &nbsp;
1242
- // Apply custom serialize transformation first
1243
- <span class="cstat-no" title="statement not covered" > if (options.transform?.serialize) {</span>
1244
- <span class="cstat-no" title="statement not covered" > serializedValue = options.transform.serialize(value);</span>
1365
+ // witness data
1366
+ <span class="cstat-no" title="statement not covered" > if (this.isSegWit) {</span>
1367
+ <span class="cstat-no" title="statement not covered" > for (const input of this.inputs) {</span>
1368
+ <span class="cstat-no" title="statement not covered" > writer.writeVarInt(input.witness.length);</span>
1369
+ <span class="cstat-no" title="statement not covered" > for (const witness of input.witness) {</span>
1370
+ <span class="cstat-no" title="statement not covered" > writer.writeBytes(witness.serialize());</span>
1371
+ }
1245
1372
  }
1246
- // Apply type-specific transformations
1247
- else <span class="cstat-no" title="statement not covered" >if (options.type &amp;&amp; value !== undefined &amp;&amp; value !== null) {</span>
1248
- <span class="cstat-no" title="statement not covered" > switch (options.type) {</span>
1249
- case 'hex':
1250
- case 'buffer':
1251
- <span class="cstat-no" title="statement not covered" > serializedValue = SerdeHelpers.serializeHex(value);</span>
1252
- <span class="cstat-no" title="statement not covered" > break;</span>
1253
- case 'bigint':
1254
- <span class="cstat-no" title="statement not covered" > serializedValue = SerdeHelpers.bigIntToNumber(value);</span>
1255
- <span class="cstat-no" title="statement not covered" > break;</span>
1256
- case 'f64':
1257
- <span class="cstat-no" title="statement not covered" > serializedValue = SerdeHelpers.serializeF64(value);</span>
1258
- <span class="cstat-no" title="statement not covered" > break;</span>
1259
- case 'der_signature':
1260
- <span class="cstat-no" title="statement not covered" > serializedValue = SerdeHelpers.serializeDerSignature(value);</span>
1261
- <span class="cstat-no" title="statement not covered" > break;</span>
1262
- case 'array':
1263
- <span class="cstat-no" title="statement not covered" > if (Array.isArray(value)) {</span>
1264
- <span class="cstat-no" title="statement not covered" > serializedValue = value.map(<span class="fstat-no" title="function not covered" >(i</span>tem: any) =&gt; {</span>
1265
- <span class="cstat-no" title="statement not covered" > return item &amp;&amp; typeof item.toJSON === 'function'</span>
1266
- ? item.toJSON()
1267
- : item;
1268
- });
1269
- }
1270
- <span class="cstat-no" title="statement not covered" > break;</span>
1271
- case 'object':
1272
- <span class="cstat-no" title="statement not covered" > if (value &amp;&amp; typeof value.toJSON === 'function') {</span>
1273
- <span class="cstat-no" title="statement not covered" > serializedValue = value.toJSON();</span>
1274
- }
1275
- <span class="cstat-no" title="statement not covered" > break;</span>
1373
+ }
1374
+ &nbsp;
1375
+ // locktime
1376
+ <span class="cstat-no" title="statement not covered" > writer.writeBytes(this.locktime.serialize());</span>
1377
+ &nbsp;
1378
+ <span class="cstat-no" title="statement not covered" > return writer.toBuffer();</span>
1379
+ }
1380
+ &nbsp;
1381
+ /**
1382
+ * Decodes the txId and hash from the Buffer.
1383
+ *
1384
+ * For non-segwit transitions, the hash value is the double-sha256 of
1385
+ * version|vins|vouts|locktime. The txid is the reverse of the hash.
1386
+ *
1387
+ * For segwit transactions, the hash value is returned as the wtxid as
1388
+ * calculated by the double-sha256 of
1389
+ * version|0x00|0x01|inputs|outputs|witness|locktime. The txId is
1390
+ * calculate the same as legacy transactions by performing a double
1391
+ * sha256 hash of the data minus segwit data and markers.
1392
+ */
1393
+ private <span class="fstat-no" title="function not covered" >_calcTxId(</span>): { txId: HashValue; hash: HashValue } {
1394
+ const txId: Buffer = <span class="cstat-no" title="statement not covered" >hash256(this._serializeLegacy());</span>
1395
+ const hash: Buffer = <span class="cstat-no" title="statement not covered" >this.isSegWit</span>
1396
+ ? hash256(this._serializeSegWit())
1397
+ : Buffer.from(txId); // prettier-ignore
1398
+ <span class="cstat-no" title="statement not covered" > return {</span>
1399
+ txId: new HashValue(txId),
1400
+ hash: new HashValue(hash),
1401
+ };
1402
+ }
1403
+ &nbsp;
1404
+ /**
1405
+ * Calculates the size, virtual size, and weight properties from the
1406
+ * based on the current inputs and outputs.
1407
+ *
1408
+ * `size` is the number of raw bytes.
1409
+ * `weight` is the number of witness bytes + the number of non-witness
1410
+ * bytes multiplied by four.
1411
+ * `vsize` is the weight divided by four.
1412
+ */
1413
+ private <span class="fstat-no" title="function not covered" >_calcSize(</span>): SizeResult {
1414
+ const hasWitness = <span class="cstat-no" title="statement not covered" >this.isSegWit;</span>
1415
+ &nbsp;
1416
+ let standardBytes = <span class="cstat-no" title="statement not covered" >0;</span>
1417
+ let witnessBytes = <span class="cstat-no" title="statement not covered" >0;</span>
1418
+ &nbsp;
1419
+ // version is 4-bytes
1420
+ <span class="cstat-no" title="statement not covered" > standardBytes += 4;</span>
1421
+ &nbsp;
1422
+ // witness flags are 2 bytes
1423
+ <span class="cstat-no" title="statement not covered" > if (hasWitness) {</span>
1424
+ <span class="cstat-no" title="statement not covered" > witnessBytes += 2;</span>
1425
+ }
1426
+ &nbsp;
1427
+ // number of inputs
1428
+ <span class="cstat-no" title="statement not covered" > standardBytes += varIntBytes(this.inputs.length);</span>
1429
+ &nbsp;
1430
+ // add each input
1431
+ <span class="cstat-no" title="statement not covered" > for (const input of this.inputs) {</span>
1432
+ // prev out hash
1433
+ <span class="cstat-no" title="statement not covered" > standardBytes += 32;</span>
1434
+ &nbsp;
1435
+ // prev out index
1436
+ <span class="cstat-no" title="statement not covered" > standardBytes += 4;</span>
1437
+ &nbsp;
1438
+ // scriptSig length
1439
+ const scriptSig = <span class="cstat-no" title="statement not covered" >input.scriptSig.serializeCmds();</span>
1440
+ <span class="cstat-no" title="statement not covered" > standardBytes += varIntBytes(scriptSig.length);</span>
1441
+ <span class="cstat-no" title="statement not covered" > standardBytes += scriptSig.length;</span>
1442
+ &nbsp;
1443
+ // sequence, 4-bytes
1444
+ <span class="cstat-no" title="statement not covered" > standardBytes += 4;</span>
1445
+ &nbsp;
1446
+ // input witness
1447
+ <span class="cstat-no" title="statement not covered" > if (hasWitness) {</span>
1448
+ // number of witness
1449
+ <span class="cstat-no" title="statement not covered" > witnessBytes += varIntBytes(input.witness.length);</span>
1450
+ &nbsp;
1451
+ // for each witness
1452
+ <span class="cstat-no" title="statement not covered" > for (const witness of input.witness) {</span>
1453
+ <span class="cstat-no" title="statement not covered" > witnessBytes += varIntBytes(witness.data.length);</span>
1454
+ <span class="cstat-no" title="statement not covered" > witnessBytes += witness.data.length;</span>
1276
1455
  }
1277
1456
  }
1457
+ }
1458
+ &nbsp;
1459
+ // number of outputs
1460
+ <span class="cstat-no" title="statement not covered" > standardBytes += varIntBytes(this.outputs.length);</span>
1461
+ &nbsp;
1462
+ // add each output
1463
+ <span class="cstat-no" title="statement not covered" > for (const output of this.outputs) {</span>
1464
+ // value
1465
+ <span class="cstat-no" title="statement not covered" > standardBytes += 8;</span>
1278
1466
  &nbsp;
1279
- // Use renamed field name if specified, otherwise use original property name
1280
- const fieldName = <span class="cstat-no" title="statement not covered" >options.rename || propKey;</span>
1281
- <span class="cstat-no" title="statement not covered" > result[fieldName] = serializedValue;</span>
1467
+ // scriptPubKey length
1468
+ const scriptPubKey = <span class="cstat-no" title="statement not covered" >output.scriptPubKey.serializeCmds();</span>
1469
+ <span class="cstat-no" title="statement not covered" > standardBytes += varIntBytes(scriptPubKey.length);</span>
1470
+ <span class="cstat-no" title="statement not covered" > standardBytes += scriptPubKey.length;</span>
1282
1471
  }
1283
1472
  &nbsp;
1284
- <span class="cstat-no" title="statement not covered" > return result;</span>
1473
+ // locktime
1474
+ <span class="cstat-no" title="statement not covered" > standardBytes += 4;</span>
1475
+ &nbsp;
1476
+ // size will be the raw length of bytes
1477
+ const size = <span class="cstat-no" title="statement not covered" >standardBytes + witnessBytes;</span>
1478
+ &nbsp;
1479
+ // weight is non-witness bytes * 4 + witness bytes
1480
+ const weight = <span class="cstat-no" title="statement not covered" >standardBytes * 4 + witnessBytes;</span>
1481
+ &nbsp;
1482
+ // virtual size is weight / 4
1483
+ // this is equivalent for non-segwit transactions
1484
+ const vsize = <span class="cstat-no" title="statement not covered" >Math.ceil(weight / 4);</span>
1485
+ &nbsp;
1486
+ <span class="cstat-no" title="statement not covered" > return {</span>
1487
+ size,
1488
+ vsize,
1489
+ weight,
1490
+ };
1285
1491
  }
1286
- }
1287
1492
  &nbsp;
1288
- // Helper functions for creating field configurations (similar to decorators)
1289
- export const field = (options: SerdeFieldOptions = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span>: SerdeFieldOptions =&gt;
1290
- options;
1291
- &nbsp;
1292
- // Common field type helpers
1293
- export const HexField = (aliases: string[] = <span class="branch-0 cbranch-no" title="branch not covered" >[])</span>: SerdeFieldOptions =&gt; ({
1294
- type: 'hex',
1295
- aliases,
1296
- });
1297
- &nbsp;
1298
- export const BigIntField = (aliases: string[] = <span class="branch-0 cbranch-no" title="branch not covered" >[])</span>: SerdeFieldOptions =&gt; ({
1299
- type: 'bigint',
1300
- aliases,
1301
- });
1302
- &nbsp;
1303
- export const F64Field = (aliases: string[] = []): SerdeFieldOptions =&gt; ({
1304
- type: 'f64',
1305
- aliases,
1306
- });
1307
- &nbsp;
1308
- export const BufferField = <span class="fstat-no" title="function not covered" >(a</span>liases: string[] = <span class="branch-0 cbranch-no" title="branch not covered" >[])</span>: SerdeFieldOptions =&gt; (<span class="cstat-no" title="statement not covered" >{</span>
1309
- type: 'buffer',
1310
- aliases,
1311
- });
1312
- &nbsp;
1313
- export const DerSignatureField = (
1314
- aliases: string[] = <span class="branch-0 cbranch-no" title="branch not covered" >[],</span>
1315
- ): SerdeFieldOptions =&gt; ({
1316
- type: 'der_signature',
1317
- aliases,
1318
- });
1319
- &nbsp;
1320
- export const ArrayField = (
1321
- itemType?: string,
1322
- aliases: string[] = <span class="branch-0 cbranch-no" title="branch not covered" >[],</span>
1323
- ): SerdeFieldOptions =&gt; ({
1324
- type: 'array',
1325
- itemType,
1326
- aliases,
1327
- });
1328
- &nbsp;
1329
- export const ObjectField = (
1330
- itemType?: string,
1331
- aliases: string[] = <span class="branch-0 cbranch-no" title="branch not covered" >[],</span>
1332
- ): SerdeFieldOptions =&gt; ({
1333
- type: 'object',
1334
- itemType,
1335
- aliases,
1336
- });
1337
- &nbsp;
1338
- export const OptionalField = (
1339
- type: SerdeFieldOptions['type'],
1340
- aliases: string[] = <span class="branch-0 cbranch-no" title="branch not covered" >[],</span>
1341
- ): SerdeFieldOptions =&gt; ({
1342
- type,
1343
- optional: true,
1344
- aliases,
1345
- });
1346
- &nbsp;
1347
- // Common DLC field configurations
1348
- export const DlcFields = {
1349
- protocolVersion: field({ type: 'bigint', aliases: ['protocol_version'] }),
1350
- temporaryContractId: HexField(['temporary_contract_id']),
1351
- contractFlags: HexField(['contract_flags']),
1352
- chainHash: HexField(['chain_hash']),
1353
- fundingPubkey: HexField(['fundingPubKey', 'funding_pubkey']),
1354
- payoutSpk: HexField(['payoutSPK', 'payout_spk']),
1355
- changeSpk: HexField(['changeSPK', 'change_spk']),
1356
- payoutSerialId: BigIntField(['payout_serial_id']),
1357
- changeSerialId: BigIntField(['change_serial_id']),
1358
- fundOutputSerialId: BigIntField(['fund_output_serial_id']),
1359
- feeRatePerVb: BigIntField(['fee_rate_per_vb']),
1360
- cetLocktime: field({ aliases: ['cet_locktime'] }),
1361
- refundLocktime: field({ aliases: ['refund_locktime'] }),
1362
- offerCollateral: BigIntField(['offerCollateralSatoshis', 'offer_collateral']),
1363
- acceptCollateral: BigIntField([
1364
- 'acceptCollateralSatoshis',
1365
- 'accept_collateral',
1366
- ]),
1367
- refundSignature: DerSignatureField(['refund_signature']),
1368
- fundingInputs: ArrayField('FundingInput', ['funding_inputs']),
1369
- cetAdaptorSignatures: ObjectField('CetAdaptorSignatures', [
1370
- 'cet_adaptor_signatures',
1371
- ]),
1372
- negotiationFields: OptionalField('object', ['negotiation_fields']),
1373
- };
1493
+ private <span class="fstat-no" title="function not covered" >_lazyCalc(</span>) {
1494
+ <span class="cstat-no" title="statement not covered" > this._sizes = this._calcSize();</span>
1495
+ const ids = <span class="cstat-no" title="statement not covered" >this._calcTxId();</span>
1496
+ <span class="cstat-no" title="statement not covered" > this._txId = ids.txId;</span>
1497
+ <span class="cstat-no" title="statement not covered" > this._wtxid = ids.hash;</span>
1498
+ }
1499
+ }
1374
1500
  &nbsp;</pre></td></tr></table></pre>
1375
1501
 
1376
1502
  <div class='push'></div><!-- for sticky footer -->
@@ -1378,17 +1504,17 @@ export const DlcFields = {
1378
1504
  <div class='footer quiet pad2 space-top1 center small'>
1379
1505
  Code coverage generated by
1380
1506
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
1381
- at Sun Jun 22 2025 13:46:15 GMT-0700 (Pacific Daylight Saving Time)
1507
+ at Mon Jul 14 2025 15:37:17 GMT-0700 (Pacific Daylight Saving Time)
1382
1508
  </div>
1383
1509
  </div>
1384
- <script src="../../prettify.js"></script>
1510
+ <script src="prettify.js"></script>
1385
1511
  <script>
1386
1512
  window.onload = function () {
1387
1513
  prettyPrint();
1388
1514
  };
1389
1515
  </script>
1390
- <script src="../../sorter.js"></script>
1391
- <script src="../../block-navigation.js"></script>
1516
+ <script src="sorter.js"></script>
1517
+ <script src="block-navigation.js"></script>
1392
1518
  </body>
1393
1519
  </html>
1394
1520