@atomicfinance/bitcoin-dlc-provider 3.6.0 → 4.0.0

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 (375) hide show
  1. package/.nvmrc +1 -1
  2. package/.turbo/turbo-build.log +1 -0
  3. package/.turbo/turbo-test.log +0 -0
  4. package/.yalc/@node-dlc/messaging/.nyc_output/2cf48009-1094-4275-bb91-c164c932feb6.json +1 -0
  5. package/.yalc/@node-dlc/messaging/.nyc_output/processinfo/2cf48009-1094-4275-bb91-c164c932feb6.json +1 -0
  6. package/.yalc/@node-dlc/messaging/.nyc_output/processinfo/index.json +1 -0
  7. package/.yalc/@node-dlc/messaging/README.md +24 -0
  8. package/.yalc/@node-dlc/messaging/__tests__/_test-utils.ts +12 -0
  9. package/.yalc/@node-dlc/messaging/__tests__/chain/ChainManager.spec.ts +178 -0
  10. package/.yalc/@node-dlc/messaging/__tests__/compatibility/dlcspecs-compatibility.spec.ts +473 -0
  11. package/.yalc/@node-dlc/messaging/__tests__/compatibility/rust-dlc-cross-language.spec.ts +342 -0
  12. package/.yalc/@node-dlc/messaging/__tests__/compatibility/true-serialization-compatibility.spec.ts +611 -0
  13. package/.yalc/@node-dlc/messaging/__tests__/dlc_message_test.json +155 -0
  14. package/.yalc/@node-dlc/messaging/__tests__/irc/IrcMessage.spec.ts +94 -0
  15. package/.yalc/@node-dlc/messaging/__tests__/messages/AddressCache.spec.ts +79 -0
  16. package/.yalc/@node-dlc/messaging/__tests__/messages/BatchFundingGroup.spec.ts +72 -0
  17. package/.yalc/@node-dlc/messaging/__tests__/messages/CetAdaptorSignatures.spec.ts +57 -0
  18. package/.yalc/@node-dlc/messaging/__tests__/messages/ContractDescriptor.spec.ts +264 -0
  19. package/.yalc/@node-dlc/messaging/__tests__/messages/ContractInfo.spec.ts +419 -0
  20. package/.yalc/@node-dlc/messaging/__tests__/messages/DigitDecompositionEventDescriptor.spec.ts +59 -0
  21. package/.yalc/@node-dlc/messaging/__tests__/messages/DlcAccept.spec.ts +242 -0
  22. package/.yalc/@node-dlc/messaging/__tests__/messages/DlcCancel.spec.ts +42 -0
  23. package/.yalc/@node-dlc/messaging/__tests__/messages/DlcClose.spec.ts +315 -0
  24. package/.yalc/@node-dlc/messaging/__tests__/messages/DlcOffer.spec.ts +527 -0
  25. package/.yalc/@node-dlc/messaging/__tests__/messages/DlcSign.spec.ts +118 -0
  26. package/.yalc/@node-dlc/messaging/__tests__/messages/DlcTransactions.spec.ts +157 -0
  27. package/.yalc/@node-dlc/messaging/__tests__/messages/EnumEventDescriptor.spec.ts +50 -0
  28. package/.yalc/@node-dlc/messaging/__tests__/messages/EventDescriptor.spec.ts +93 -0
  29. package/.yalc/@node-dlc/messaging/__tests__/messages/FundingInput.spec.ts +84 -0
  30. package/.yalc/@node-dlc/messaging/__tests__/messages/FundingSignatures.spec.ts +83 -0
  31. package/.yalc/@node-dlc/messaging/__tests__/messages/NegotiationFields.spec.ts +328 -0
  32. package/.yalc/@node-dlc/messaging/__tests__/messages/NodeAnnouncementMessage.spec.ts +115 -0
  33. package/.yalc/@node-dlc/messaging/__tests__/messages/OracleAnnouncement.spec.ts +415 -0
  34. package/.yalc/@node-dlc/messaging/__tests__/messages/OracleAttestation.spec.ts +326 -0
  35. package/.yalc/@node-dlc/messaging/__tests__/messages/OracleEvent.spec.ts +143 -0
  36. package/.yalc/@node-dlc/messaging/__tests__/messages/OracleEventContainer.spec.ts +95 -0
  37. package/.yalc/@node-dlc/messaging/__tests__/messages/OracleIdentifier.spec.ts +48 -0
  38. package/.yalc/@node-dlc/messaging/__tests__/messages/OracleInfo.spec.ts +116 -0
  39. package/.yalc/@node-dlc/messaging/__tests__/messages/OrderAccept.spec.ts +77 -0
  40. package/.yalc/@node-dlc/messaging/__tests__/messages/OrderNegotiationFields.spec.ts +216 -0
  41. package/.yalc/@node-dlc/messaging/__tests__/messages/OrderOffer.spec.ts +121 -0
  42. package/.yalc/@node-dlc/messaging/__tests__/messages/OrderPositionInfo.spec.ts +75 -0
  43. package/.yalc/@node-dlc/messaging/__tests__/messages/PayoutCurvePiece.spec.ts +220 -0
  44. package/.yalc/@node-dlc/messaging/__tests__/messages/PayoutFunction.spec.ts +101 -0
  45. package/.yalc/@node-dlc/messaging/__tests__/messages/RoundingIntervals.spec.ts +75 -0
  46. package/.yalc/@node-dlc/messaging/__tests__/serialize/F64.spec.ts +260 -0
  47. package/.yalc/@node-dlc/messaging/__tests__/tsconfig.json +8 -0
  48. package/.yalc/@node-dlc/messaging/coverage/lcov-report/base.css +224 -0
  49. package/.yalc/@node-dlc/messaging/coverage/lcov-report/block-navigation.js +79 -0
  50. package/.yalc/@node-dlc/messaging/coverage/lcov-report/favicon.png +0 -0
  51. package/.yalc/@node-dlc/messaging/coverage/lcov-report/index.html +201 -0
  52. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/MessageType.ts.html +494 -0
  53. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/chain/ChainManager.ts.html +1058 -0
  54. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/chain/ChainMemoryStore.ts.html +182 -0
  55. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/chain/index.html +126 -0
  56. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/domain/Address.ts.html +272 -0
  57. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/domain/index.html +111 -0
  58. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/index.html +141 -0
  59. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/index.ts.html +212 -0
  60. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/irc/IrcMessage.ts.html +563 -0
  61. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/irc/index.html +111 -0
  62. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/AddressCache.ts.html +302 -0
  63. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/BatchFundingGroup.ts.html +503 -0
  64. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/CetAdaptorSignatures.ts.html +347 -0
  65. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/CetAdaptorSignaturesV0.ts.html +347 -0
  66. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/ContractDescriptor.ts.html +1040 -0
  67. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/ContractInfo.ts.html +1382 -0
  68. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcAccept.ts.html +1865 -0
  69. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcCancel.ts.html +251 -0
  70. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcClose.ts.html +986 -0
  71. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcCloseMetadata.ts.html +443 -0
  72. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcIds.ts.html +281 -0
  73. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcInfo.ts.html +323 -0
  74. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcMessage.ts.html +341 -0
  75. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcOffer.ts.html +1895 -0
  76. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcSign.ts.html +1142 -0
  77. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcTransactions.ts.html +719 -0
  78. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/EventDescriptor.ts.html +947 -0
  79. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/FundingInput.ts.html +728 -0
  80. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/FundingSignatures.ts.html +374 -0
  81. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/FundingSignaturesV0.ts.html +374 -0
  82. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/NegotiationFields.ts.html +836 -0
  83. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/NodeAnnouncementMessage.ts.html +515 -0
  84. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleAnnouncement.ts.html +608 -0
  85. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleAnnouncementV0.ts.html +605 -0
  86. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleAttestation.ts.html +956 -0
  87. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleAttestationV0.ts.html +770 -0
  88. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleEvent.ts.html +830 -0
  89. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleEventContainer.ts.html +347 -0
  90. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleEventContainerV0.ts.html +347 -0
  91. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleEventV0.ts.html +827 -0
  92. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleIdentifier.ts.html +314 -0
  93. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleIdentifierV0.ts.html +314 -0
  94. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleInfo.ts.html +1637 -0
  95. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleInfoV0.ts.html +1631 -0
  96. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OrderAccept.ts.html +557 -0
  97. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OrderIrcInfo.ts.html +380 -0
  98. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OrderMetadata.ts.html +437 -0
  99. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OrderNegotiationFields.ts.html +551 -0
  100. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OrderOffer.ts.html +1337 -0
  101. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OrderPositionInfo.ts.html +590 -0
  102. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/PayoutCurvePiece.ts.html +1427 -0
  103. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/PayoutFunction.ts.html +800 -0
  104. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/RoundingIntervals.ts.html +461 -0
  105. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/RoundingIntervalsV0.ts.html +482 -0
  106. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/ScriptWitnessV0.ts.html +269 -0
  107. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/index.html +636 -0
  108. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/serde/SerdeUtils.ts.html +1394 -0
  109. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/serde/index.html +111 -0
  110. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/serialize/F64.ts.html +1136 -0
  111. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/serialize/deserializeTlv.ts.html +125 -0
  112. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/serialize/getTlv.ts.html +143 -0
  113. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/serialize/index.html +141 -0
  114. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/util.ts.html +179 -0
  115. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/validation/index.html +111 -0
  116. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/validation/validate.ts.html +182 -0
  117. package/.yalc/@node-dlc/messaging/coverage/lcov-report/prettify.css +1 -0
  118. package/.yalc/@node-dlc/messaging/coverage/lcov-report/prettify.js +2 -0
  119. package/.yalc/@node-dlc/messaging/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  120. package/.yalc/@node-dlc/messaging/coverage/lcov-report/sorter.js +170 -0
  121. package/.yalc/@node-dlc/messaging/coverage/lcov.info +5394 -0
  122. package/.yalc/@node-dlc/messaging/dist/MessageType.d.ts +100 -0
  123. package/.yalc/@node-dlc/messaging/dist/MessageType.js +117 -0
  124. package/.yalc/@node-dlc/messaging/dist/MessageType.js.map +1 -0
  125. package/.yalc/@node-dlc/messaging/dist/chain/ChainManager.d.ts +50 -0
  126. package/.yalc/@node-dlc/messaging/dist/chain/ChainManager.js +211 -0
  127. package/.yalc/@node-dlc/messaging/dist/chain/ChainManager.js.map +1 -0
  128. package/.yalc/@node-dlc/messaging/dist/chain/ChainMemoryStore.d.ts +14 -0
  129. package/.yalc/@node-dlc/messaging/dist/chain/ChainMemoryStore.js +28 -0
  130. package/.yalc/@node-dlc/messaging/dist/chain/ChainMemoryStore.js.map +1 -0
  131. package/.yalc/@node-dlc/messaging/dist/chain/DlcStore.d.ts +11 -0
  132. package/.yalc/@node-dlc/messaging/dist/chain/DlcStore.js +3 -0
  133. package/.yalc/@node-dlc/messaging/dist/chain/DlcStore.js.map +1 -0
  134. package/.yalc/@node-dlc/messaging/dist/chain/IChainFilterChainClient.d.ts +48 -0
  135. package/.yalc/@node-dlc/messaging/dist/chain/IChainFilterChainClient.js +3 -0
  136. package/.yalc/@node-dlc/messaging/dist/chain/IChainFilterChainClient.js.map +1 -0
  137. package/.yalc/@node-dlc/messaging/dist/domain/Address.d.ts +24 -0
  138. package/.yalc/@node-dlc/messaging/dist/domain/Address.js +46 -0
  139. package/.yalc/@node-dlc/messaging/dist/domain/Address.js.map +1 -0
  140. package/.yalc/@node-dlc/messaging/dist/index.d.ts +44 -0
  141. package/.yalc/@node-dlc/messaging/dist/index.js +63 -0
  142. package/.yalc/@node-dlc/messaging/dist/index.js.map +1 -0
  143. package/.yalc/@node-dlc/messaging/dist/irc/IrcMessage.d.ts +43 -0
  144. package/.yalc/@node-dlc/messaging/dist/irc/IrcMessage.js +116 -0
  145. package/.yalc/@node-dlc/messaging/dist/irc/IrcMessage.js.map +1 -0
  146. package/.yalc/@node-dlc/messaging/dist/messages/AddressCache.d.ts +15 -0
  147. package/.yalc/@node-dlc/messaging/dist/messages/AddressCache.js +51 -0
  148. package/.yalc/@node-dlc/messaging/dist/messages/AddressCache.js.map +1 -0
  149. package/.yalc/@node-dlc/messaging/dist/messages/BatchFundingGroup.d.ts +61 -0
  150. package/.yalc/@node-dlc/messaging/dist/messages/BatchFundingGroup.js +113 -0
  151. package/.yalc/@node-dlc/messaging/dist/messages/BatchFundingGroup.js.map +1 -0
  152. package/.yalc/@node-dlc/messaging/dist/messages/CetAdaptorSignatures.d.ts +40 -0
  153. package/.yalc/@node-dlc/messaging/dist/messages/CetAdaptorSignatures.js +67 -0
  154. package/.yalc/@node-dlc/messaging/dist/messages/CetAdaptorSignatures.js.map +1 -0
  155. package/.yalc/@node-dlc/messaging/dist/messages/ContractDescriptor.d.ts +122 -0
  156. package/.yalc/@node-dlc/messaging/dist/messages/ContractDescriptor.js +222 -0
  157. package/.yalc/@node-dlc/messaging/dist/messages/ContractDescriptor.js.map +1 -0
  158. package/.yalc/@node-dlc/messaging/dist/messages/ContractInfo.d.ts +135 -0
  159. package/.yalc/@node-dlc/messaging/dist/messages/ContractInfo.js +304 -0
  160. package/.yalc/@node-dlc/messaging/dist/messages/ContractInfo.js.map +1 -0
  161. package/.yalc/@node-dlc/messaging/dist/messages/DlcAccept.d.ts +145 -0
  162. package/.yalc/@node-dlc/messaging/dist/messages/DlcAccept.js +428 -0
  163. package/.yalc/@node-dlc/messaging/dist/messages/DlcAccept.js.map +1 -0
  164. package/.yalc/@node-dlc/messaging/dist/messages/DlcCancel.d.ts +31 -0
  165. package/.yalc/@node-dlc/messaging/dist/messages/DlcCancel.js +51 -0
  166. package/.yalc/@node-dlc/messaging/dist/messages/DlcCancel.js.map +1 -0
  167. package/.yalc/@node-dlc/messaging/dist/messages/DlcClose.d.ts +68 -0
  168. package/.yalc/@node-dlc/messaging/dist/messages/DlcClose.js +210 -0
  169. package/.yalc/@node-dlc/messaging/dist/messages/DlcClose.js.map +1 -0
  170. package/.yalc/@node-dlc/messaging/dist/messages/DlcCloseMetadata.d.ts +44 -0
  171. package/.yalc/@node-dlc/messaging/dist/messages/DlcCloseMetadata.js +74 -0
  172. package/.yalc/@node-dlc/messaging/dist/messages/DlcCloseMetadata.js.map +1 -0
  173. package/.yalc/@node-dlc/messaging/dist/messages/DlcIds.d.ts +26 -0
  174. package/.yalc/@node-dlc/messaging/dist/messages/DlcIds.js +58 -0
  175. package/.yalc/@node-dlc/messaging/dist/messages/DlcIds.js.map +1 -0
  176. package/.yalc/@node-dlc/messaging/dist/messages/DlcInfo.d.ts +31 -0
  177. package/.yalc/@node-dlc/messaging/dist/messages/DlcInfo.js +61 -0
  178. package/.yalc/@node-dlc/messaging/dist/messages/DlcInfo.js.map +1 -0
  179. package/.yalc/@node-dlc/messaging/dist/messages/DlcMessage.d.ts +23 -0
  180. package/.yalc/@node-dlc/messaging/dist/messages/DlcMessage.js +54 -0
  181. package/.yalc/@node-dlc/messaging/dist/messages/DlcMessage.js.map +1 -0
  182. package/.yalc/@node-dlc/messaging/dist/messages/DlcOffer.d.ts +131 -0
  183. package/.yalc/@node-dlc/messaging/dist/messages/DlcOffer.js +418 -0
  184. package/.yalc/@node-dlc/messaging/dist/messages/DlcOffer.js.map +1 -0
  185. package/.yalc/@node-dlc/messaging/dist/messages/DlcSign.d.ts +96 -0
  186. package/.yalc/@node-dlc/messaging/dist/messages/DlcSign.js +267 -0
  187. package/.yalc/@node-dlc/messaging/dist/messages/DlcSign.js.map +1 -0
  188. package/.yalc/@node-dlc/messaging/dist/messages/DlcTransactions.d.ts +69 -0
  189. package/.yalc/@node-dlc/messaging/dist/messages/DlcTransactions.js +149 -0
  190. package/.yalc/@node-dlc/messaging/dist/messages/DlcTransactions.js.map +1 -0
  191. package/.yalc/@node-dlc/messaging/dist/messages/EventDescriptor.d.ts +106 -0
  192. package/.yalc/@node-dlc/messaging/dist/messages/EventDescriptor.js +209 -0
  193. package/.yalc/@node-dlc/messaging/dist/messages/EventDescriptor.js.map +1 -0
  194. package/.yalc/@node-dlc/messaging/dist/messages/FundingInput.d.ts +62 -0
  195. package/.yalc/@node-dlc/messaging/dist/messages/FundingInput.js +163 -0
  196. package/.yalc/@node-dlc/messaging/dist/messages/FundingInput.js.map +1 -0
  197. package/.yalc/@node-dlc/messaging/dist/messages/FundingSignatures.d.ts +36 -0
  198. package/.yalc/@node-dlc/messaging/dist/messages/FundingSignatures.js +78 -0
  199. package/.yalc/@node-dlc/messaging/dist/messages/FundingSignatures.js.map +1 -0
  200. package/.yalc/@node-dlc/messaging/dist/messages/IWireMessage.d.ts +6 -0
  201. package/.yalc/@node-dlc/messaging/dist/messages/IWireMessage.js +3 -0
  202. package/.yalc/@node-dlc/messaging/dist/messages/IWireMessage.js.map +1 -0
  203. package/.yalc/@node-dlc/messaging/dist/messages/NegotiationFields.d.ts +86 -0
  204. package/.yalc/@node-dlc/messaging/dist/messages/NegotiationFields.js +185 -0
  205. package/.yalc/@node-dlc/messaging/dist/messages/NegotiationFields.js.map +1 -0
  206. package/.yalc/@node-dlc/messaging/dist/messages/NodeAnnouncementMessage.d.ts +57 -0
  207. package/.yalc/@node-dlc/messaging/dist/messages/NodeAnnouncementMessage.js +127 -0
  208. package/.yalc/@node-dlc/messaging/dist/messages/NodeAnnouncementMessage.js.map +1 -0
  209. package/.yalc/@node-dlc/messaging/dist/messages/OracleAnnouncement.d.ts +76 -0
  210. package/.yalc/@node-dlc/messaging/dist/messages/OracleAnnouncement.js +131 -0
  211. package/.yalc/@node-dlc/messaging/dist/messages/OracleAnnouncement.js.map +1 -0
  212. package/.yalc/@node-dlc/messaging/dist/messages/OracleAttestation.d.ts +68 -0
  213. package/.yalc/@node-dlc/messaging/dist/messages/OracleAttestation.js +239 -0
  214. package/.yalc/@node-dlc/messaging/dist/messages/OracleAttestation.js.map +1 -0
  215. package/.yalc/@node-dlc/messaging/dist/messages/OracleEvent.d.ts +90 -0
  216. package/.yalc/@node-dlc/messaging/dist/messages/OracleEvent.js +189 -0
  217. package/.yalc/@node-dlc/messaging/dist/messages/OracleEvent.js.map +1 -0
  218. package/.yalc/@node-dlc/messaging/dist/messages/OracleEventContainer.d.ts +32 -0
  219. package/.yalc/@node-dlc/messaging/dist/messages/OracleEventContainer.js +67 -0
  220. package/.yalc/@node-dlc/messaging/dist/messages/OracleEventContainer.js.map +1 -0
  221. package/.yalc/@node-dlc/messaging/dist/messages/OracleIdentifier.d.ts +32 -0
  222. package/.yalc/@node-dlc/messaging/dist/messages/OracleIdentifier.js +58 -0
  223. package/.yalc/@node-dlc/messaging/dist/messages/OracleIdentifier.js.map +1 -0
  224. package/.yalc/@node-dlc/messaging/dist/messages/OracleIdentifierV0.d.ts +32 -0
  225. package/.yalc/@node-dlc/messaging/dist/messages/OracleIdentifierV0.js +58 -0
  226. package/.yalc/@node-dlc/messaging/dist/messages/OracleIdentifierV0.js.map +1 -0
  227. package/.yalc/@node-dlc/messaging/dist/messages/OracleInfo.d.ts +161 -0
  228. package/.yalc/@node-dlc/messaging/dist/messages/OracleInfo.js +390 -0
  229. package/.yalc/@node-dlc/messaging/dist/messages/OracleInfo.js.map +1 -0
  230. package/.yalc/@node-dlc/messaging/dist/messages/OracleInfoV0.d.ts +161 -0
  231. package/.yalc/@node-dlc/messaging/dist/messages/OracleInfoV0.js +387 -0
  232. package/.yalc/@node-dlc/messaging/dist/messages/OracleInfoV0.js.map +1 -0
  233. package/.yalc/@node-dlc/messaging/dist/messages/OrderAccept.d.ts +65 -0
  234. package/.yalc/@node-dlc/messaging/dist/messages/OrderAccept.js +125 -0
  235. package/.yalc/@node-dlc/messaging/dist/messages/OrderAccept.js.map +1 -0
  236. package/.yalc/@node-dlc/messaging/dist/messages/OrderIrcInfo.d.ts +42 -0
  237. package/.yalc/@node-dlc/messaging/dist/messages/OrderIrcInfo.js +74 -0
  238. package/.yalc/@node-dlc/messaging/dist/messages/OrderIrcInfo.js.map +1 -0
  239. package/.yalc/@node-dlc/messaging/dist/messages/OrderMetadata.d.ts +56 -0
  240. package/.yalc/@node-dlc/messaging/dist/messages/OrderMetadata.js +87 -0
  241. package/.yalc/@node-dlc/messaging/dist/messages/OrderMetadata.js.map +1 -0
  242. package/.yalc/@node-dlc/messaging/dist/messages/OrderNegotiationFields.d.ts +69 -0
  243. package/.yalc/@node-dlc/messaging/dist/messages/OrderNegotiationFields.js +114 -0
  244. package/.yalc/@node-dlc/messaging/dist/messages/OrderNegotiationFields.js.map +1 -0
  245. package/.yalc/@node-dlc/messaging/dist/messages/OrderOffer.d.ts +97 -0
  246. package/.yalc/@node-dlc/messaging/dist/messages/OrderOffer.js +296 -0
  247. package/.yalc/@node-dlc/messaging/dist/messages/OrderOffer.js.map +1 -0
  248. package/.yalc/@node-dlc/messaging/dist/messages/OrderPositionInfo.d.ts +50 -0
  249. package/.yalc/@node-dlc/messaging/dist/messages/OrderPositionInfo.js +125 -0
  250. package/.yalc/@node-dlc/messaging/dist/messages/OrderPositionInfo.js.map +1 -0
  251. package/.yalc/@node-dlc/messaging/dist/messages/PayoutCurvePiece.d.ts +129 -0
  252. package/.yalc/@node-dlc/messaging/dist/messages/PayoutCurvePiece.js +327 -0
  253. package/.yalc/@node-dlc/messaging/dist/messages/PayoutCurvePiece.js.map +1 -0
  254. package/.yalc/@node-dlc/messaging/dist/messages/PayoutFunction.d.ts +66 -0
  255. package/.yalc/@node-dlc/messaging/dist/messages/PayoutFunction.js +170 -0
  256. package/.yalc/@node-dlc/messaging/dist/messages/PayoutFunction.js.map +1 -0
  257. package/.yalc/@node-dlc/messaging/dist/messages/RoundingIntervals.d.ts +52 -0
  258. package/.yalc/@node-dlc/messaging/dist/messages/RoundingIntervals.js +95 -0
  259. package/.yalc/@node-dlc/messaging/dist/messages/RoundingIntervals.js.map +1 -0
  260. package/.yalc/@node-dlc/messaging/dist/messages/ScriptWitnessV0.d.ts +29 -0
  261. package/.yalc/@node-dlc/messaging/dist/messages/ScriptWitnessV0.js +50 -0
  262. package/.yalc/@node-dlc/messaging/dist/messages/ScriptWitnessV0.js.map +1 -0
  263. package/.yalc/@node-dlc/messaging/dist/messages/Tlv.d.ts +15 -0
  264. package/.yalc/@node-dlc/messaging/dist/messages/Tlv.js +32 -0
  265. package/.yalc/@node-dlc/messaging/dist/messages/Tlv.js.map +1 -0
  266. package/.yalc/@node-dlc/messaging/dist/serialize/F64.d.ts +154 -0
  267. package/.yalc/@node-dlc/messaging/dist/serialize/F64.js +307 -0
  268. package/.yalc/@node-dlc/messaging/dist/serialize/F64.js.map +1 -0
  269. package/.yalc/@node-dlc/messaging/dist/serialize/deserializeTlv.d.ts +9 -0
  270. package/.yalc/@node-dlc/messaging/dist/serialize/deserializeTlv.js +11 -0
  271. package/.yalc/@node-dlc/messaging/dist/serialize/deserializeTlv.js.map +1 -0
  272. package/.yalc/@node-dlc/messaging/dist/serialize/getTlv.d.ts +4 -0
  273. package/.yalc/@node-dlc/messaging/dist/serialize/getTlv.js +23 -0
  274. package/.yalc/@node-dlc/messaging/dist/serialize/getTlv.js.map +1 -0
  275. package/.yalc/@node-dlc/messaging/dist/serialize/readTlvs.d.ts +8 -0
  276. package/.yalc/@node-dlc/messaging/dist/serialize/readTlvs.js +33 -0
  277. package/.yalc/@node-dlc/messaging/dist/serialize/readTlvs.js.map +1 -0
  278. package/.yalc/@node-dlc/messaging/dist/util.d.ts +13 -0
  279. package/.yalc/@node-dlc/messaging/dist/util.js +40 -0
  280. package/.yalc/@node-dlc/messaging/dist/util.js.map +1 -0
  281. package/.yalc/@node-dlc/messaging/dist/validation/validate.d.ts +4 -0
  282. package/.yalc/@node-dlc/messaging/dist/validation/validate.js +31 -0
  283. package/.yalc/@node-dlc/messaging/dist/validation/validate.js.map +1 -0
  284. package/.yalc/@node-dlc/messaging/lib/MessageType.ts +138 -0
  285. package/.yalc/@node-dlc/messaging/lib/chain/ChainManager.ts +326 -0
  286. package/.yalc/@node-dlc/messaging/lib/chain/ChainMemoryStore.ts +34 -0
  287. package/.yalc/@node-dlc/messaging/lib/chain/DlcStore.ts +11 -0
  288. package/.yalc/@node-dlc/messaging/lib/chain/IChainFilterChainClient.ts +57 -0
  289. package/.yalc/@node-dlc/messaging/lib/domain/Address.ts +64 -0
  290. package/.yalc/@node-dlc/messaging/lib/index.ts +44 -0
  291. package/.yalc/@node-dlc/messaging/lib/irc/IrcMessage.ts +161 -0
  292. package/.yalc/@node-dlc/messaging/lib/messages/AddressCache.ts +74 -0
  293. package/.yalc/@node-dlc/messaging/lib/messages/BatchFundingGroup.ts +141 -0
  294. package/.yalc/@node-dlc/messaging/lib/messages/CetAdaptorSignatures.ts +89 -0
  295. package/.yalc/@node-dlc/messaging/lib/messages/ContractDescriptor.ts +318 -0
  296. package/.yalc/@node-dlc/messaging/lib/messages/ContractInfo.ts +434 -0
  297. package/.yalc/@node-dlc/messaging/lib/messages/DlcAccept.ts +595 -0
  298. package/.yalc/@node-dlc/messaging/lib/messages/DlcCancel.ts +57 -0
  299. package/.yalc/@node-dlc/messaging/lib/messages/DlcClose.ts +302 -0
  300. package/.yalc/@node-dlc/messaging/lib/messages/DlcCloseMetadata.ts +121 -0
  301. package/.yalc/@node-dlc/messaging/lib/messages/DlcIds.ts +67 -0
  302. package/.yalc/@node-dlc/messaging/lib/messages/DlcInfo.ts +81 -0
  303. package/.yalc/@node-dlc/messaging/lib/messages/DlcMessage.ts +87 -0
  304. package/.yalc/@node-dlc/messaging/lib/messages/DlcOffer.ts +605 -0
  305. package/.yalc/@node-dlc/messaging/lib/messages/DlcSign.ts +354 -0
  306. package/.yalc/@node-dlc/messaging/lib/messages/DlcTransactions.ts +213 -0
  307. package/.yalc/@node-dlc/messaging/lib/messages/EventDescriptor.ts +289 -0
  308. package/.yalc/@node-dlc/messaging/lib/messages/FundingInput.ts +216 -0
  309. package/.yalc/@node-dlc/messaging/lib/messages/FundingSignatures.ts +98 -0
  310. package/.yalc/@node-dlc/messaging/lib/messages/IWireMessage.ts +6 -0
  311. package/.yalc/@node-dlc/messaging/lib/messages/NegotiationFields.ts +252 -0
  312. package/.yalc/@node-dlc/messaging/lib/messages/NodeAnnouncementMessage.ts +145 -0
  313. package/.yalc/@node-dlc/messaging/lib/messages/OracleAnnouncement.ts +176 -0
  314. package/.yalc/@node-dlc/messaging/lib/messages/OracleAttestation.ts +292 -0
  315. package/.yalc/@node-dlc/messaging/lib/messages/OracleEvent.ts +250 -0
  316. package/.yalc/@node-dlc/messaging/lib/messages/OracleEventContainer.ts +89 -0
  317. package/.yalc/@node-dlc/messaging/lib/messages/OracleIdentifier.ts +78 -0
  318. package/.yalc/@node-dlc/messaging/lib/messages/OracleInfo.ts +519 -0
  319. package/.yalc/@node-dlc/messaging/lib/messages/OrderAccept.ts +159 -0
  320. package/.yalc/@node-dlc/messaging/lib/messages/OrderIrcInfo.ts +100 -0
  321. package/.yalc/@node-dlc/messaging/lib/messages/OrderMetadata.ts +119 -0
  322. package/.yalc/@node-dlc/messaging/lib/messages/OrderNegotiationFields.ts +157 -0
  323. package/.yalc/@node-dlc/messaging/lib/messages/OrderOffer.ts +419 -0
  324. package/.yalc/@node-dlc/messaging/lib/messages/OrderPositionInfo.ts +170 -0
  325. package/.yalc/@node-dlc/messaging/lib/messages/PayoutCurvePiece.ts +449 -0
  326. package/.yalc/@node-dlc/messaging/lib/messages/PayoutFunction.ts +240 -0
  327. package/.yalc/@node-dlc/messaging/lib/messages/RoundingIntervals.ts +127 -0
  328. package/.yalc/@node-dlc/messaging/lib/messages/ScriptWitnessV0.ts +63 -0
  329. package/.yalc/@node-dlc/messaging/lib/messages/Tlv.ts +40 -0
  330. package/.yalc/@node-dlc/messaging/lib/serialize/F64.ts +352 -0
  331. package/.yalc/@node-dlc/messaging/lib/serialize/deserializeTlv.ts +15 -0
  332. package/.yalc/@node-dlc/messaging/lib/serialize/getTlv.ts +21 -0
  333. package/.yalc/@node-dlc/messaging/lib/serialize/readTlvs.ts +37 -0
  334. package/.yalc/@node-dlc/messaging/lib/util.ts +33 -0
  335. package/.yalc/@node-dlc/messaging/lib/validation/validate.ts +34 -0
  336. package/.yalc/@node-dlc/messaging/package.json +42 -0
  337. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/enum_3_of_3_test.json +210 -0
  338. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/enum_3_of_5_test.json +468 -0
  339. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/enum_and_numerical_3_of_5_test.json +1517 -0
  340. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/enum_and_numerical_5_of_5_test.json +545 -0
  341. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/enum_and_numerical_with_diff_3_of_5_test.json +4761 -0
  342. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/enum_and_numerical_with_diff_5_of_5_test.json +2169 -0
  343. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/enum_single_oracle_test.json +164 -0
  344. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/single_oracle_numerical_hyperbola_test.json +502 -0
  345. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/single_oracle_numerical_test.json +262 -0
  346. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/three_of_five_oracle_numerical_with_diff_test.json +4382 -0
  347. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/three_of_three_oracle_numerical_test.json +324 -0
  348. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/three_of_three_oracle_numerical_with_diff_test.json +652 -0
  349. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/two_of_five_oracle_numerical_test.json +1138 -0
  350. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/two_of_five_oracle_numerical_with_diff_test.json +2222 -0
  351. package/.yalc/@node-dlc/messaging/test_vectors/oracle/external_oracle_announcements.json +0 -0
  352. package/.yalc/@node-dlc/messaging/test_vectors/oracle/oracle_message_test_vectors.json +115 -0
  353. package/.yalc/@node-dlc/messaging/test_vectors/rust-dlc/accept_msg.json +1465 -0
  354. package/.yalc/@node-dlc/messaging/test_vectors/rust-dlc/dlc_fee_test.json +12362 -0
  355. package/.yalc/@node-dlc/messaging/test_vectors/rust-dlc/dlc_fee_test_scripts.json +57 -0
  356. package/.yalc/@node-dlc/messaging/test_vectors/rust-dlc/dlc_test.json +2766 -0
  357. package/.yalc/@node-dlc/messaging/test_vectors/rust-dlc/dlc_tx_test.json +2899 -0
  358. package/.yalc/@node-dlc/messaging/test_vectors/rust-dlc/offer_msg.json +163 -0
  359. package/.yalc/@node-dlc/messaging/test_vectors/rust-dlc/offer_msg_disjoint.json +352 -0
  360. package/.yalc/@node-dlc/messaging/test_vectors/rust-dlc/segment_chunk_msg.json +12635 -0
  361. package/.yalc/@node-dlc/messaging/test_vectors/rust-dlc/segment_start_msg.json +4022 -0
  362. package/.yalc/@node-dlc/messaging/test_vectors/rust-dlc/sign_msg.json +383 -0
  363. package/.yalc/@node-dlc/messaging/tsconfig.json +7 -0
  364. package/.yalc/@node-dlc/messaging/yalc.sig +1 -0
  365. package/CHANGELOG.md +83 -0
  366. package/dist/BitcoinDlcProvider.d.ts +17 -16
  367. package/dist/BitcoinDlcProvider.js +375 -317
  368. package/dist/BitcoinDlcProvider.js.map +1 -1
  369. package/dist/utils/Utils.d.ts +6 -6
  370. package/dist/utils/Utils.js +4 -4
  371. package/dist/utils/Utils.js.map +1 -1
  372. package/lib/BitcoinDlcProvider.ts +637 -621
  373. package/lib/utils/Utils.ts +19 -24
  374. package/package.json +13 -11
  375. package/yalc.lock +10 -0
@@ -0,0 +1,59 @@
1
+ import { expect } from 'chai';
2
+
3
+ import { DigitDecompositionEventDescriptor } from '../../lib/messages/EventDescriptor';
4
+
5
+ describe('DigitDecompositionEventDescriptorV0', () => {
6
+ describe('serialize', () => {
7
+ it('serializes', () => {
8
+ const instance = new DigitDecompositionEventDescriptor();
9
+
10
+ instance.length = BigInt(17);
11
+ /**
12
+ * NOTE: BASE IS INCORRECT FORMAT FOR DLC SPEC (SHOULD BE BIGSIZE)
13
+ * Will be fixed in oracle_announcement_v1
14
+ * https://github.com/discreetlogcontracts/dlcspecs/blob/master/Oracle.md#version-0-digit_decomposition_event_descriptor
15
+ */
16
+ instance.base = 2;
17
+ instance.isSigned = false;
18
+ instance.unit = 'btc/usd';
19
+ instance.precision = 0;
20
+ instance.nbDigits = 17;
21
+
22
+ expect(instance.serialize().toString("hex")).to.equal(
23
+ 'fdd80a' + // type
24
+ '11' + // length
25
+ '0002' + // base (Switch to '02' with oracle_announcement_v1)
26
+ '00' + // isSigned
27
+ '07' + // unit_Len
28
+ '6274632f757364' + // btc/usd (unit)
29
+ '00000000' + // precision
30
+ '0011' // nb_digits
31
+ ); // prettier-ignore
32
+ });
33
+ });
34
+
35
+ describe('deserialize', () => {
36
+ it('deserializes', () => {
37
+ const buf = Buffer.from(
38
+ 'fdd80a' + // type
39
+ '11' + // length
40
+ '0002' + // base (Switch to '02' with oracle_announcement_v1)
41
+ '00' + // isSigned
42
+ '07' + // unit_Len
43
+ '6274632f757364' + // btc/usd (unit)
44
+ '00000000' + // precision
45
+ '0011' // nb_digits
46
+ , "hex"
47
+ ); // prettier-ignore
48
+
49
+ const instance = DigitDecompositionEventDescriptor.deserialize(buf);
50
+
51
+ expect(Number(instance.length)).to.equal(17);
52
+ expect(instance.base).to.equal(2); // (Switch to Number(instance.base) with oracle_announcement_v1)
53
+ expect(instance.isSigned).to.equal(false);
54
+ expect(instance.unit).to.equal('btc/usd');
55
+ expect(instance.precision).to.equal(0);
56
+ expect(instance.nbDigits).to.equal(17);
57
+ });
58
+ });
59
+ });
@@ -0,0 +1,242 @@
1
+ import { expect } from 'chai';
2
+
3
+ import { CetAdaptorSignatures } from '../../lib/messages/CetAdaptorSignatures';
4
+ import { DlcAccept, DlcAcceptContainer } from '../../lib/messages/DlcAccept';
5
+ import { FundingInput } from '../../lib/messages/FundingInput';
6
+ import { MessageType } from '../../lib/MessageType';
7
+
8
+ describe('DlcAccept', () => {
9
+ let instance: DlcAccept;
10
+
11
+ const temporaryContractId = Buffer.from(
12
+ '960fb5f7960382ac7e76f3e24eb6b00059b1e68632a946843c22e1f65fdf216a',
13
+ 'hex',
14
+ );
15
+
16
+ const fundingPubkey = Buffer.from(
17
+ '026d8bec9093f96ccc42de166cb9a6c576c95fc24ee16b10e87c3baaa4e49684d9',
18
+ 'hex',
19
+ );
20
+
21
+ const payoutSpk = Buffer.from(
22
+ '001436054fa379f7564b5e458371db643666365c8fb3',
23
+ 'hex',
24
+ );
25
+
26
+ const fundingInput = Buffer.from(
27
+ 'fda714' + // type funding_input_v0
28
+ '3f' + // length
29
+ '000000000000dae8' + // input_serial_id
30
+ '0029' + // prevtx_len
31
+ '02000000000100c2eb0b000000001600149ea3bf2d6eb9c2ffa35e36f41e117403ed7fafe900000000' + // prevtx
32
+ '00000000' + // prevtx_vout
33
+ 'ffffffff' + // sequence
34
+ '006b' + // max_witness_len
35
+ '0000', // redeem_script_len
36
+ 'hex',
37
+ );
38
+
39
+ const changeSpk = Buffer.from(
40
+ '0014074c82dbe058212905bacc61814456b7415012ed',
41
+ 'hex',
42
+ );
43
+
44
+ const refundSignature = Buffer.alloc(64, 0x01); // Simple test signature
45
+
46
+ beforeEach(() => {
47
+ instance = new DlcAccept();
48
+ instance.protocolVersion = 1; // Set protocol version
49
+ instance.temporaryContractId = temporaryContractId;
50
+ instance.acceptCollateral = BigInt(100000000);
51
+ instance.fundingPubkey = fundingPubkey;
52
+ instance.payoutSpk = payoutSpk;
53
+ instance.payoutSerialId = BigInt(1594186);
54
+ instance.fundingInputs = [FundingInput.deserialize(fundingInput)];
55
+ instance.changeSpk = changeSpk;
56
+ instance.changeSerialId = BigInt(885015);
57
+
58
+ // Create test CET adaptor signatures
59
+ instance.cetAdaptorSignatures = new CetAdaptorSignatures();
60
+ instance.cetAdaptorSignatures.sigs = [
61
+ {
62
+ encryptedSig: Buffer.alloc(65),
63
+ dleqProof: Buffer.alloc(97),
64
+ },
65
+ ];
66
+
67
+ instance.refundSignature = refundSignature;
68
+ });
69
+
70
+ describe('deserialize', () => {
71
+ it('has correct type', () => {
72
+ expect(DlcAccept.deserialize(instance.serialize()).type).to.equal(
73
+ instance.type,
74
+ );
75
+ });
76
+
77
+ it('deserializes without cets', () => {
78
+ // Set parseCets to false
79
+ const dlcAccept = DlcAccept.deserialize(instance.serialize(), false);
80
+ expect(dlcAccept.cetAdaptorSignatures.sigs.length).to.be.equal(0);
81
+ });
82
+ });
83
+
84
+ describe('DlcAccept', () => {
85
+ describe('serialize', () => {
86
+ it('serializes', () => {
87
+ // Test round-trip consistency instead of exact hex match
88
+ const serialized = instance.serialize();
89
+ const deserialized = DlcAccept.deserialize(serialized);
90
+
91
+ expect(deserialized.temporaryContractId).to.deep.equal(
92
+ instance.temporaryContractId,
93
+ );
94
+ expect(deserialized.acceptCollateral).to.equal(
95
+ instance.acceptCollateral,
96
+ );
97
+ expect(deserialized.fundingPubkey).to.deep.equal(
98
+ instance.fundingPubkey,
99
+ );
100
+ expect(deserialized.payoutSpk).to.deep.equal(instance.payoutSpk);
101
+ expect(deserialized.payoutSerialId).to.equal(instance.payoutSerialId);
102
+ expect(deserialized.changeSpk).to.deep.equal(instance.changeSpk);
103
+ expect(deserialized.changeSerialId).to.equal(instance.changeSerialId);
104
+ expect(deserialized.refundSignature).to.deep.equal(
105
+ instance.refundSignature,
106
+ );
107
+ });
108
+
109
+ it('serializes a dlcAccept without cets', () => {
110
+ const _dlcAcceptWithoutSigs = DlcAccept.deserialize(
111
+ instance.serialize(),
112
+ false,
113
+ );
114
+ const dlcAcceptWithoutSigs = DlcAccept.deserialize(
115
+ _dlcAcceptWithoutSigs.serialize(),
116
+ true,
117
+ );
118
+
119
+ expect(
120
+ dlcAcceptWithoutSigs.cetAdaptorSignatures.sigs.length,
121
+ ).to.be.equal(0);
122
+ });
123
+ });
124
+
125
+ describe('deserialize', () => {
126
+ it('deserializes', () => {
127
+ // Test round-trip consistency
128
+ const serialized = instance.serialize();
129
+ const deserialized = DlcAccept.deserialize(serialized);
130
+
131
+ expect(deserialized.temporaryContractId).to.deep.equal(
132
+ temporaryContractId,
133
+ );
134
+ expect(Number(deserialized.acceptCollateral)).to.equal(100000000);
135
+ expect(deserialized.fundingPubkey).to.deep.equal(fundingPubkey);
136
+ expect(deserialized.payoutSpk).to.deep.equal(payoutSpk);
137
+ expect(Number(deserialized.payoutSerialId)).to.equal(1594186);
138
+ expect(deserialized.changeSpk).to.deep.equal(changeSpk);
139
+ expect(Number(deserialized.changeSerialId)).to.equal(885015);
140
+ expect(deserialized.refundSignature).to.deep.equal(refundSignature);
141
+ });
142
+
143
+ it('has correct type', () => {
144
+ expect(DlcAccept.deserialize(instance.serialize()).type).to.equal(
145
+ MessageType.DlcAccept,
146
+ );
147
+ });
148
+ });
149
+
150
+ describe('toJSON', () => {
151
+ it('convert to JSON', async () => {
152
+ const json = instance.toJSON();
153
+ // Basic structure validation - detailed field testing is done in cross-language tests
154
+ expect(json.temporaryContractId).to.be.a('string');
155
+ expect(json.fundingPubkey).to.be.a('string');
156
+ expect(json.payoutSpk).to.be.a('string');
157
+ expect(json.changeSpk).to.be.a('string');
158
+ expect(json.refundSignature).to.be.a('string');
159
+ expect(json.acceptCollateral).to.be.a('number');
160
+ });
161
+ });
162
+
163
+ describe('withoutSigs', () => {
164
+ it('does not contain sigs', () => {
165
+ const withoutSigs = DlcAccept.deserialize(
166
+ instance.serialize(),
167
+ ).withoutSigs();
168
+ expect(withoutSigs['cetAdaptorSignatures']).to.not.exist;
169
+ });
170
+ });
171
+
172
+ describe('validate', () => {
173
+ it('should throw if payout_spk is invalid', () => {
174
+ instance.payoutSpk = Buffer.from('fff', 'hex');
175
+ expect(function () {
176
+ instance.validate();
177
+ }).to.throw(Error);
178
+ });
179
+ it('should throw if change_spk is invalid', () => {
180
+ instance.changeSpk = Buffer.from('fff', 'hex');
181
+ expect(function () {
182
+ instance.validate();
183
+ }).to.throw(Error);
184
+ });
185
+ it('should throw if fundingpubkey is not a valid pubkey', () => {
186
+ instance.fundingPubkey = Buffer.from(
187
+ '00f003aa11f2a97b6be755a86b9fd798a7451c670196a5245b7bae971306b7c87e',
188
+ 'hex',
189
+ );
190
+ expect(function () {
191
+ instance.validate();
192
+ }).to.throw(Error);
193
+ });
194
+ it('should throw if fundingpubkey is not in compressed secp256k1 format', () => {
195
+ instance.fundingPubkey = Buffer.from(
196
+ '045162991c7299223973cabc99ef5087d7bab2dafe61f78e5388b2f9492f7978123f51fd05ef0693790c0b2d4f30848363a3f3fbcf2bd53a05ba0fd5bb708c3184',
197
+ 'hex',
198
+ );
199
+ expect(function () {
200
+ instance.validate();
201
+ }).to.throw(Error);
202
+ });
203
+ it('should throw if inputSerialIds arent unique', () => {
204
+ instance.fundingInputs = [
205
+ FundingInput.deserialize(fundingInput),
206
+ FundingInput.deserialize(fundingInput),
207
+ ];
208
+ expect(function () {
209
+ instance.validate();
210
+ }).to.throw(Error);
211
+ });
212
+
213
+ it('should throw if funding amount less than accept collateral satoshis', () => {
214
+ instance.acceptCollateral = BigInt(3e8);
215
+ expect(function () {
216
+ instance.validate();
217
+ }).to.throw(Error);
218
+ });
219
+ });
220
+ });
221
+
222
+ describe('DlcAcceptContainer', () => {
223
+ it('should serialize and deserialize', () => {
224
+ // Create two distinct accepts
225
+ const dlcAccept = instance;
226
+ const dlcAccept2 = new DlcAccept();
227
+ Object.assign(dlcAccept2, dlcAccept);
228
+ dlcAccept2.payoutSpk = changeSpk; // Use different SPK
229
+ dlcAccept2.changeSpk = payoutSpk;
230
+
231
+ const container = new DlcAcceptContainer();
232
+ container.addAccept(dlcAccept);
233
+ container.addAccept(dlcAccept2);
234
+
235
+ const deserialized = DlcAcceptContainer.deserialize(
236
+ container.serialize(),
237
+ );
238
+
239
+ expect(container.serialize()).to.deep.equal(deserialized.serialize());
240
+ });
241
+ });
242
+ });
@@ -0,0 +1,42 @@
1
+ import { expect } from 'chai';
2
+
3
+ import { DlcCancel } from '../../lib/messages/DlcCancel';
4
+
5
+ describe('DlcCancelV0', () => {
6
+ const contractId = Buffer.from(
7
+ 'c1c79e1e9e2fa2840b2514902ea244f39eb3001a4037a52ea43c797d4f841269',
8
+ 'hex',
9
+ );
10
+
11
+ describe('serialize', () => {
12
+ it('serializes', () => {
13
+ const instance = new DlcCancel();
14
+
15
+ instance.contractId = contractId;
16
+
17
+ instance.cancelType = 0;
18
+
19
+ expect(instance.serialize().toString("hex")).to.equal(
20
+ "cbcc" +
21
+ "c1c79e1e9e2fa2840b2514902ea244f39eb3001a4037a52ea43c797d4f841269" +
22
+ "00" // cancel type
23
+ ); // prettier-ignore
24
+ });
25
+ });
26
+
27
+ describe('deserialize', () => {
28
+ it('deserializes', () => {
29
+ const buf = Buffer.from(
30
+ "cbcc" +
31
+ "c1c79e1e9e2fa2840b2514902ea244f39eb3001a4037a52ea43c797d4f841269" +
32
+ "00" // cancel type
33
+ , "hex"
34
+ ); // prettier-ignore
35
+
36
+ const instance = DlcCancel.deserialize(buf);
37
+
38
+ expect(instance.contractId).to.deep.equal(contractId);
39
+ expect(instance.cancelType).to.equal(0);
40
+ });
41
+ });
42
+ });
@@ -0,0 +1,315 @@
1
+ import { BufferReader } from '@node-dlc/bufio';
2
+ import { expect } from 'chai';
3
+
4
+ import { DlcClose } from '../../lib/messages/DlcClose';
5
+ import { FundingInput } from '../../lib/messages/FundingInput';
6
+ import { FundingSignatures } from '../../lib/messages/FundingSignatures';
7
+ import { ScriptWitnessV0 } from '../../lib/messages/ScriptWitnessV0';
8
+ import { MessageType } from '../../lib/MessageType';
9
+
10
+ describe('DlcClose', () => {
11
+ let instance: DlcClose;
12
+
13
+ const contractId = Buffer.from(
14
+ 'c1c79e1e9e2fa2840b2514902ea244f39eb3001a4037a52ea43c797d4f841269',
15
+ 'hex',
16
+ );
17
+
18
+ const closeSignature = Buffer.from(
19
+ '7c8ad6de287b62a1ed1d74ed9116a5158abc7f97376d201caa88e0f9daad68fcda4c271cc003512e768f403a57e5242bd1f6aa1750d7f3597598094a43b1c7bb',
20
+ 'hex',
21
+ );
22
+
23
+ beforeEach(() => {
24
+ instance = new DlcClose();
25
+ instance.contractId = contractId;
26
+ instance.closeSignature = closeSignature;
27
+ instance.offerPayoutSatoshis = BigInt(100000000);
28
+ instance.acceptPayoutSatoshis = BigInt(100000000);
29
+ instance.fundInputSerialId = BigInt(123456789);
30
+
31
+ // Create a SegWit funding input using fromJSON for consistency
32
+ const fundingInputJson = {
33
+ inputSerialId: 56296,
34
+ // Use a proper SegWit transaction with inputs and witness data
35
+ prevTx:
36
+ '02000000000101f2f398e01eb47021dfcf6e2ccbea00f1a6c783bf83d10b3bfcc83a8bb4c8bbab0000000000ffffffff0200e1f505000000001600149ea3bf2d6eb9c2ffa35e36f41e117403ed7fafe900e1f505000000001600149ea3bf2d6eb9c2ffa35e36f41e117403ed7fafe902473044022047ac8e878352d3ebbde1c94ce3a10d057c24175747116f8288e5d794d12d482f0220217f36a485cae903c713331d877c1f64677e3622ad4010726870540656fe9dcb012103ad1d8e89212f0b92c74d23bb710c00662451716a435b97cb7a8cf95e8e5b8d5600000000',
37
+ prevTxVout: 0,
38
+ sequence: 0xffffffff,
39
+ maxWitnessLen: 107,
40
+ redeemScript: '',
41
+ };
42
+ instance.fundingInputs = [FundingInput.fromJSON(fundingInputJson)];
43
+
44
+ // Create funding signatures using proper TLV format
45
+ instance.fundingSignatures = new FundingSignatures();
46
+ const witness1 = new ScriptWitnessV0();
47
+ witness1.length = 71;
48
+ witness1.witness = Buffer.from(
49
+ '304402203812d7d194d44ec68f244cc3fd68507c563ec8c729fdfa3f4a79395b98abe84f0220704ab3f3ffd9c50c2488e59f90a90465fccc2d924d67a1e98a133676bf52f37201',
50
+ 'hex',
51
+ );
52
+ const witness2 = new ScriptWitnessV0();
53
+ witness2.length = 33;
54
+ witness2.witness = Buffer.from(
55
+ '02dde41aa1f21671a2e28ad92155d2d66e0b5428de15d18db4cbcf216bf00de919',
56
+ 'hex',
57
+ );
58
+ instance.fundingSignatures.witnessElements = [[witness1, witness2]];
59
+ });
60
+
61
+ describe('deserialize', () => {
62
+ it('should throw if incorrect type', () => {
63
+ instance.type = 9999 as MessageType; // Invalid type for testing
64
+ expect(function () {
65
+ DlcClose.deserialize(instance.serialize());
66
+ }).to.throw(Error);
67
+ });
68
+
69
+ it('has correct type', () => {
70
+ // Create a simpler test without complex TLV issues
71
+ const simpleInstance = new DlcClose();
72
+ simpleInstance.contractId = contractId;
73
+ simpleInstance.closeSignature = closeSignature;
74
+ simpleInstance.offerPayoutSatoshis = BigInt(100000000);
75
+ simpleInstance.acceptPayoutSatoshis = BigInt(100000000);
76
+ simpleInstance.fundInputSerialId = BigInt(123456789);
77
+ simpleInstance.fundingInputs = []; // Empty for simplicity
78
+ simpleInstance.fundingSignatures = new FundingSignatures();
79
+ simpleInstance.fundingSignatures.witnessElements = []; // Empty for simplicity
80
+
81
+ const serialized = simpleInstance.serialize();
82
+ const deserialized = DlcClose.deserialize(serialized);
83
+ expect(deserialized.type).to.equal(simpleInstance.type);
84
+ });
85
+ });
86
+
87
+ describe('DlcCloseV0', () => {
88
+ describe('serialize', () => {
89
+ it('serializes', () => {
90
+ const serialized = instance.serialize();
91
+ expect(serialized).to.be.instanceOf(Buffer);
92
+ expect(serialized.length).to.be.greaterThan(0);
93
+
94
+ // Verify the type is correct at the beginning
95
+ expect(serialized.readUInt16BE(0)).to.equal(MessageType.DlcClose);
96
+ });
97
+ });
98
+
99
+ describe('deserialize', () => {
100
+ it('deserializes', () => {
101
+ // Test with simpler data to avoid TLV complexity
102
+ const simpleInstance = new DlcClose();
103
+ simpleInstance.contractId = contractId;
104
+ simpleInstance.closeSignature = closeSignature;
105
+ simpleInstance.offerPayoutSatoshis = BigInt(100000000);
106
+ simpleInstance.acceptPayoutSatoshis = BigInt(100000000);
107
+ simpleInstance.fundInputSerialId = BigInt(123456789);
108
+ simpleInstance.fundingInputs = [];
109
+ simpleInstance.fundingSignatures = new FundingSignatures();
110
+ simpleInstance.fundingSignatures.witnessElements = [];
111
+
112
+ const serialized = simpleInstance.serialize();
113
+ const deserialized = DlcClose.deserialize(serialized);
114
+
115
+ expect(deserialized.contractId).to.deep.equal(contractId);
116
+ expect(deserialized.closeSignature).to.deep.equal(closeSignature);
117
+ expect(Number(deserialized.offerPayoutSatoshis)).to.equal(100000000);
118
+ expect(Number(deserialized.acceptPayoutSatoshis)).to.equal(100000000);
119
+ expect(Number(deserialized.fundInputSerialId)).to.equal(123456789);
120
+ expect(deserialized.fundingInputs).to.have.length(0);
121
+ expect(deserialized.fundingSignatures).to.not.be.undefined;
122
+ });
123
+
124
+ it('has correct type', () => {
125
+ const simpleInstance = new DlcClose();
126
+ simpleInstance.contractId = contractId;
127
+ simpleInstance.closeSignature = closeSignature;
128
+ simpleInstance.offerPayoutSatoshis = BigInt(100000000);
129
+ simpleInstance.acceptPayoutSatoshis = BigInt(100000000);
130
+ simpleInstance.fundInputSerialId = BigInt(123456789);
131
+ simpleInstance.fundingInputs = [];
132
+ simpleInstance.fundingSignatures = new FundingSignatures();
133
+ simpleInstance.fundingSignatures.witnessElements = [];
134
+
135
+ const serialized = simpleInstance.serialize();
136
+ const deserialized = DlcClose.deserialize(serialized);
137
+ expect(deserialized.type).to.equal(MessageType.DlcClose);
138
+ });
139
+ });
140
+
141
+ describe('toJSON', () => {
142
+ it('convert to JSON', async () => {
143
+ const json = instance.toJSON();
144
+ expect(json.contractId).to.equal(contractId.toString('hex'));
145
+ expect(json.closeSignature).to.equal(closeSignature.toString('hex'));
146
+ expect(json.fundInputSerialId).to.equal(123456789);
147
+ expect(json.fundingInputs).to.have.length(1);
148
+ expect(json.fundingInputs[0]).to.have.property('prevTx');
149
+ expect(json.fundingSignatures).to.not.be.undefined;
150
+ });
151
+ });
152
+
153
+ describe('fromJSON', () => {
154
+ it('should create instance from JSON', () => {
155
+ const json = {
156
+ contractId: contractId.toString('hex'),
157
+ closeSignature: closeSignature.toString('hex'),
158
+ offerPayoutSatoshis: 100000000,
159
+ acceptPayoutSatoshis: 100000000,
160
+ fundInputSerialId: 123456789,
161
+ fundingInputs: [
162
+ {
163
+ inputSerialId: 56296,
164
+ prevTx:
165
+ '02000000000101f2f398e01eb47021dfcf6e2ccbea00f1a6c783bf83d10b3bfcc83a8bb4c8bbab0000000000ffffffff0200e1f505000000001600149ea3bf2d6eb9c2ffa35e36f41e117403ed7fafe900e1f505000000001600149ea3bf2d6eb9c2ffa35e36f41e117403ed7fafe902473044022047ac8e878352d3ebbde1c94ce3a10d057c24175747116f8288e5d794d12d482f0220217f36a485cae903c713331d877c1f64677e3622ad4010726870540656fe9dcb012103ad1d8e89212f0b92c74d23bb710c00662451716a435b97cb7a8cf95e8e5b8d5600000000',
166
+ prevTxVout: 0,
167
+ sequence: 0xffffffff,
168
+ maxWitnessLen: 107,
169
+ redeemScript: '',
170
+ },
171
+ ],
172
+ fundingSignatures: {
173
+ fundingSignatures: [
174
+ {
175
+ witnessElements: [
176
+ {
177
+ length: 71,
178
+ witness:
179
+ '304402203812d7d194d44ec68f244cc3fd68507c563ec8c729fdfa3f4a79395b98abe84f0220704ab3f3ffd9c50c2488e59f90a90465fccc2d924d67a1e98a133676bf52f37201',
180
+ },
181
+ {
182
+ length: 33,
183
+ witness:
184
+ '02dde41aa1f21671a2e28ad92155d2d66e0b5428de15d18db4cbcf216bf00de919',
185
+ },
186
+ ],
187
+ },
188
+ ],
189
+ },
190
+ };
191
+
192
+ const fromJsonInstance = DlcClose.fromJSON(json);
193
+ expect(fromJsonInstance.contractId).to.deep.equal(contractId);
194
+ expect(fromJsonInstance.closeSignature).to.deep.equal(closeSignature);
195
+ expect(Number(fromJsonInstance.offerPayoutSatoshis)).to.equal(
196
+ 100000000,
197
+ );
198
+ expect(Number(fromJsonInstance.acceptPayoutSatoshis)).to.equal(
199
+ 100000000,
200
+ );
201
+ expect(Number(fromJsonInstance.fundInputSerialId)).to.equal(123456789);
202
+ });
203
+ });
204
+
205
+ describe('validate', () => {
206
+ it('should validate successfully with valid data', () => {
207
+ expect(() => instance.validate()).to.not.throw();
208
+ });
209
+
210
+ it('should throw if contractId is invalid', () => {
211
+ instance.contractId = Buffer.alloc(16); // Wrong length
212
+ expect(() => instance.validate()).to.throw(
213
+ 'contractId must be 32 bytes',
214
+ );
215
+ });
216
+
217
+ it('should throw if closeSignature is invalid', () => {
218
+ instance.closeSignature = Buffer.alloc(32); // Wrong length
219
+ expect(() => instance.validate()).to.throw(
220
+ 'closeSignature must be 64 bytes',
221
+ );
222
+ });
223
+
224
+ it('should throw if inputSerialIds arent unique', () => {
225
+ const fundingInputJson = {
226
+ inputSerialId: 56296,
227
+ prevTx:
228
+ '02000000000101f2f398e01eb47021dfcf6e2ccbea00f1a6c783bf83d10b3bfcc83a8bb4c8bbab0000000000ffffffff0200e1f505000000001600149ea3bf2d6eb9c2ffa35e36f41e117403ed7fafe900e1f505000000001600149ea3bf2d6eb9c2ffa35e36f41e117403ed7fafe902473044022047ac8e878352d3ebbde1c94ce3a10d057c24175747116f8288e5d794d12d482f0220217f36a485cae903c713331d877c1f64677e3622ad4010726870540656fe9dcb012103ad1d8e89212f0b92c74d23bb710c00662451716a435b97cb7a8cf95e8e5b8d5600000000',
229
+ prevTxVout: 0,
230
+ sequence: 0xffffffff,
231
+ maxWitnessLen: 107,
232
+ redeemScript: '',
233
+ };
234
+ instance.fundingInputs = [
235
+ FundingInput.fromJSON(fundingInputJson),
236
+ FundingInput.fromJSON(fundingInputJson), // Same serial ID
237
+ ];
238
+ expect(() => instance.validate()).to.throw(
239
+ 'inputSerialIds must be unique',
240
+ );
241
+ });
242
+ });
243
+
244
+ describe('round-trip compatibility', () => {
245
+ it('should maintain data integrity through serialize/deserialize cycle', () => {
246
+ // Test with simpler data to avoid TLV complexity
247
+ const simpleInstance = new DlcClose();
248
+ simpleInstance.contractId = contractId;
249
+ simpleInstance.closeSignature = closeSignature;
250
+ simpleInstance.offerPayoutSatoshis = BigInt(100000000);
251
+ simpleInstance.acceptPayoutSatoshis = BigInt(100000000);
252
+ simpleInstance.fundInputSerialId = BigInt(123456789);
253
+ simpleInstance.fundingInputs = [];
254
+ simpleInstance.fundingSignatures = new FundingSignatures();
255
+ simpleInstance.fundingSignatures.witnessElements = [];
256
+
257
+ const serialized = simpleInstance.serialize();
258
+ const deserialized = DlcClose.deserialize(serialized);
259
+ const reSerialized = deserialized.serialize();
260
+
261
+ expect(serialized.toString('hex')).to.equal(
262
+ reSerialized.toString('hex'),
263
+ );
264
+ });
265
+
266
+ it('should maintain data integrity through toJSON/fromJSON cycle', () => {
267
+ const json = instance.toJSON();
268
+ const fromJson = DlcClose.fromJSON(json);
269
+ const backToJson = fromJson.toJSON();
270
+
271
+ expect(json.contractId).to.equal(backToJson.contractId);
272
+ expect(json.closeSignature).to.equal(backToJson.closeSignature);
273
+ expect(json.offerPayoutSatoshis).to.equal(
274
+ backToJson.offerPayoutSatoshis,
275
+ );
276
+ expect(json.acceptPayoutSatoshis).to.equal(
277
+ backToJson.acceptPayoutSatoshis,
278
+ );
279
+ expect(json.fundInputSerialId).to.equal(backToJson.fundInputSerialId);
280
+ });
281
+ });
282
+
283
+ describe('architectural consistency', () => {
284
+ it('should follow DlcOffer patterns with bigsize for funding inputs length', () => {
285
+ const serialized = instance.serialize();
286
+ const reader = new BufferReader(serialized);
287
+
288
+ // Skip to funding inputs length position
289
+ reader.readUInt16BE(); // type
290
+ reader.readUInt32BE(); // protocolVersion (new field!)
291
+ reader.readBytes(32); // contractId
292
+ reader.readBytes(64); // closeSignature
293
+ reader.readUInt64BE(); // offerPayoutSatoshis
294
+ reader.readUInt64BE(); // acceptPayoutSatoshis
295
+ reader.readUInt64BE(); // fundInputSerialId
296
+
297
+ // Should be able to read funding inputs length as bigsize
298
+ const fundingInputsLen = reader.readBigSize();
299
+ expect(Number(fundingInputsLen)).to.equal(1);
300
+ });
301
+
302
+ it('should handle basic structure correctly', () => {
303
+ const serialized = instance.serialize();
304
+ expect(serialized.length).to.be.greaterThan(150); // Should be substantial
305
+
306
+ // Basic structural checks
307
+ const reader = new BufferReader(serialized);
308
+ expect(reader.readUInt16BE()).to.equal(MessageType.DlcClose);
309
+ expect(reader.readUInt32BE()).to.equal(1); // protocolVersion
310
+ expect(reader.readBytes(32)).to.deep.equal(contractId);
311
+ expect(reader.readBytes(64)).to.deep.equal(closeSignature);
312
+ });
313
+ });
314
+ });
315
+ });