@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,86 @@
1
+ /// <reference types="node" />
2
+ import { RoundingIntervals } from './RoundingIntervals';
3
+ import { IRoundingIntervalsJSON } from './RoundingIntervals';
4
+ /**
5
+ * Negotiation fields for DLC contract negotiation.
6
+ * Follows the Rust enum pattern with Single and Disjoint variants.
7
+ */
8
+ export declare abstract class NegotiationFields {
9
+ static deserialize(buf: Buffer): NegotiationFields;
10
+ /**
11
+ * Creates a NegotiationFields from JSON data
12
+ * @param json JSON object representing negotiation fields
13
+ */
14
+ static fromJSON(json: any): NegotiationFields;
15
+ abstract variant: 'Single' | 'Disjoint';
16
+ abstract discriminator: number;
17
+ abstract serialize(): Buffer;
18
+ abstract toJSON(): INegotiationFieldsJSON;
19
+ }
20
+ /**
21
+ * Negotiation fields for contract based on a single event.
22
+ */
23
+ export declare class SingleNegotiationFields extends NegotiationFields {
24
+ /**
25
+ * Creates a SingleNegotiationFields from JSON data
26
+ * @param json JSON object representing single negotiation fields
27
+ */
28
+ static fromJSON(json: any): SingleNegotiationFields;
29
+ /**
30
+ * Deserializes single negotiation fields
31
+ * @param buf
32
+ */
33
+ static deserialize(buf: Buffer): SingleNegotiationFields;
34
+ variant: 'Single';
35
+ discriminator: number;
36
+ roundingIntervals: RoundingIntervals;
37
+ /**
38
+ * Converts single negotiation fields to JSON
39
+ */
40
+ toJSON(): ISingleNegotiationFieldsJSON;
41
+ /**
42
+ * Serializes the single negotiation fields into a Buffer
43
+ */
44
+ serialize(): Buffer;
45
+ }
46
+ /**
47
+ * Negotiation fields for contract based on multiple events.
48
+ */
49
+ export declare class DisjointNegotiationFields extends NegotiationFields {
50
+ /**
51
+ * Creates a DisjointNegotiationFields from JSON data
52
+ * @param json JSON object representing disjoint negotiation fields
53
+ */
54
+ static fromJSON(json: any): DisjointNegotiationFields;
55
+ /**
56
+ * Deserializes disjoint negotiation fields
57
+ * @param buf
58
+ */
59
+ static deserialize(buf: Buffer): DisjointNegotiationFields;
60
+ variant: 'Disjoint';
61
+ discriminator: number;
62
+ negotiationFields: NegotiationFields[];
63
+ /**
64
+ * Converts disjoint negotiation fields to JSON
65
+ */
66
+ toJSON(): IDisjointNegotiationFieldsJSON;
67
+ /**
68
+ * Serializes the disjoint negotiation fields into a Buffer
69
+ */
70
+ serialize(): Buffer;
71
+ }
72
+ export type INegotiationFieldsJSON = ISingleNegotiationFieldsJSON | IDisjointNegotiationFieldsJSON;
73
+ export interface ISingleNegotiationFieldsJSON {
74
+ variant: 'Single';
75
+ roundingIntervals: IRoundingIntervalsJSON;
76
+ }
77
+ export interface IDisjointNegotiationFieldsJSON {
78
+ variant: 'Disjoint';
79
+ negotiationFields: INegotiationFieldsJSON[];
80
+ }
81
+ export declare const NegotiationFieldsV0: typeof SingleNegotiationFields;
82
+ export declare const NegotiationFieldsV1: typeof SingleNegotiationFields;
83
+ export declare const NegotiationFieldsV2: typeof DisjointNegotiationFields;
84
+ export type INegotiationFieldsV0JSON = ISingleNegotiationFieldsJSON;
85
+ export type INegotiationFieldsV1JSON = ISingleNegotiationFieldsJSON;
86
+ export type INegotiationFieldsV2JSON = IDisjointNegotiationFieldsJSON;
@@ -0,0 +1,185 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NegotiationFieldsV2 = exports.NegotiationFieldsV1 = exports.NegotiationFieldsV0 = exports.DisjointNegotiationFields = exports.SingleNegotiationFields = exports.NegotiationFields = void 0;
4
+ const bufio_1 = require("@node-dlc/bufio");
5
+ const RoundingIntervals_1 = require("./RoundingIntervals");
6
+ /**
7
+ * Negotiation fields for DLC contract negotiation.
8
+ * Follows the Rust enum pattern with Single and Disjoint variants.
9
+ */
10
+ class NegotiationFields {
11
+ static deserialize(buf) {
12
+ const reader = new bufio_1.BufferReader(buf);
13
+ const discriminator = Number(reader.readBigSize());
14
+ switch (discriminator) {
15
+ case 0:
16
+ return SingleNegotiationFields.deserialize(buf);
17
+ case 1:
18
+ return DisjointNegotiationFields.deserialize(buf);
19
+ default:
20
+ throw new Error(`Invalid NegotiationFields discriminator: ${discriminator}. Must be 0 (Single) or 1 (Disjoint)`);
21
+ }
22
+ }
23
+ /**
24
+ * Creates a NegotiationFields from JSON data
25
+ * @param json JSON object representing negotiation fields
26
+ */
27
+ static fromJSON(json) {
28
+ if (!json || typeof json !== 'object') {
29
+ throw new Error('Invalid JSON input for NegotiationFields');
30
+ }
31
+ const variant = json.variant;
32
+ switch (variant) {
33
+ case 'Single':
34
+ return SingleNegotiationFields.fromJSON(json);
35
+ case 'Disjoint':
36
+ return DisjointNegotiationFields.fromJSON(json);
37
+ default:
38
+ throw new Error(`Unknown negotiation fields variant: ${variant}. Must be 'Single' or 'Disjoint'`);
39
+ }
40
+ }
41
+ }
42
+ exports.NegotiationFields = NegotiationFields;
43
+ /**
44
+ * Negotiation fields for contract based on a single event.
45
+ */
46
+ class SingleNegotiationFields extends NegotiationFields {
47
+ constructor() {
48
+ super(...arguments);
49
+ this.variant = 'Single';
50
+ this.discriminator = 0;
51
+ }
52
+ /**
53
+ * Creates a SingleNegotiationFields from JSON data
54
+ * @param json JSON object representing single negotiation fields
55
+ */
56
+ static fromJSON(json) {
57
+ const instance = new SingleNegotiationFields();
58
+ if (json.variant !== 'Single') {
59
+ throw new Error(`Invalid variant for SingleNegotiationFields: expected 'Single', got ${json.variant}`);
60
+ }
61
+ if (!json.roundingIntervals) {
62
+ throw new Error('SingleNegotiationFields requires roundingIntervals field');
63
+ }
64
+ instance.roundingIntervals = RoundingIntervals_1.RoundingIntervals.fromJSON(json.roundingIntervals);
65
+ return instance;
66
+ }
67
+ /**
68
+ * Deserializes single negotiation fields
69
+ * @param buf
70
+ */
71
+ static deserialize(buf) {
72
+ const instance = new SingleNegotiationFields();
73
+ const reader = new bufio_1.BufferReader(buf);
74
+ reader.readBigSize(); // read discriminator (0)
75
+ // Read remaining bytes as raw RoundingIntervals data
76
+ const remainingBytes = reader.readBytes();
77
+ instance.roundingIntervals = RoundingIntervals_1.RoundingIntervals.deserialize(remainingBytes);
78
+ return instance;
79
+ }
80
+ /**
81
+ * Converts single negotiation fields to JSON
82
+ */
83
+ toJSON() {
84
+ return {
85
+ variant: this.variant,
86
+ roundingIntervals: this.roundingIntervals.toJSON(),
87
+ };
88
+ }
89
+ /**
90
+ * Serializes the single negotiation fields into a Buffer
91
+ */
92
+ serialize() {
93
+ const writer = new bufio_1.BufferWriter();
94
+ writer.writeBigSize(this.discriminator);
95
+ writer.writeBytes(this.roundingIntervals.serialize());
96
+ return writer.toBuffer();
97
+ }
98
+ }
99
+ exports.SingleNegotiationFields = SingleNegotiationFields;
100
+ /**
101
+ * Negotiation fields for contract based on multiple events.
102
+ */
103
+ class DisjointNegotiationFields extends NegotiationFields {
104
+ constructor() {
105
+ super(...arguments);
106
+ this.variant = 'Disjoint';
107
+ this.discriminator = 1;
108
+ this.negotiationFields = [];
109
+ }
110
+ /**
111
+ * Creates a DisjointNegotiationFields from JSON data
112
+ * @param json JSON object representing disjoint negotiation fields
113
+ */
114
+ static fromJSON(json) {
115
+ const instance = new DisjointNegotiationFields();
116
+ if (json.variant !== 'Disjoint') {
117
+ throw new Error(`Invalid variant for DisjointNegotiationFields: expected 'Disjoint', got ${json.variant}`);
118
+ }
119
+ if (!json.negotiationFields || !Array.isArray(json.negotiationFields)) {
120
+ throw new Error('DisjointNegotiationFields requires negotiationFields array');
121
+ }
122
+ instance.negotiationFields = json.negotiationFields.map((fieldJson) => NegotiationFields.fromJSON(fieldJson));
123
+ return instance;
124
+ }
125
+ /**
126
+ * Deserializes disjoint negotiation fields
127
+ * @param buf
128
+ */
129
+ static deserialize(buf) {
130
+ const instance = new DisjointNegotiationFields();
131
+ const reader = new bufio_1.BufferReader(buf);
132
+ reader.readBigSize(); // read discriminator (1)
133
+ const numFields = Number(reader.readBigSize());
134
+ for (let i = 0; i < numFields; i++) {
135
+ // For simplicity, let's read the nested field by looking ahead
136
+ // to determine its length based on its discriminator
137
+ const startPos = reader.position;
138
+ const discriminator = Number(reader.readBigSize());
139
+ if (discriminator === 0) {
140
+ // Single field: discriminator + RoundingIntervals data
141
+ // RoundingIntervals has its own length, so we need to parse it
142
+ const roundingIntervals = RoundingIntervals_1.RoundingIntervals.deserialize(reader.readBytes());
143
+ // Reset and read the complete field
144
+ reader.position = startPos;
145
+ const fieldLength = 1 + roundingIntervals.serialize().length; // discriminator + data length
146
+ const fieldData = reader.readBytes(fieldLength);
147
+ instance.negotiationFields.push(NegotiationFields.deserialize(fieldData));
148
+ }
149
+ else if (discriminator === 1) {
150
+ throw new Error('Nested disjoint fields not yet supported');
151
+ }
152
+ else {
153
+ throw new Error(`Unknown discriminator: ${discriminator}`);
154
+ }
155
+ }
156
+ return instance;
157
+ }
158
+ /**
159
+ * Converts disjoint negotiation fields to JSON
160
+ */
161
+ toJSON() {
162
+ return {
163
+ variant: this.variant,
164
+ negotiationFields: this.negotiationFields.map((field) => field.toJSON()),
165
+ };
166
+ }
167
+ /**
168
+ * Serializes the disjoint negotiation fields into a Buffer
169
+ */
170
+ serialize() {
171
+ const writer = new bufio_1.BufferWriter();
172
+ writer.writeBigSize(this.discriminator);
173
+ writer.writeBigSize(this.negotiationFields.length);
174
+ for (const negotiationField of this.negotiationFields) {
175
+ writer.writeBytes(negotiationField.serialize());
176
+ }
177
+ return writer.toBuffer();
178
+ }
179
+ }
180
+ exports.DisjointNegotiationFields = DisjointNegotiationFields;
181
+ // Legacy exports for backward compatibility - map to new structure
182
+ exports.NegotiationFieldsV0 = SingleNegotiationFields; // V0 was empty, now maps to Single
183
+ exports.NegotiationFieldsV1 = SingleNegotiationFields; // V1 had rounding intervals
184
+ exports.NegotiationFieldsV2 = DisjointNegotiationFields; // V2 had list of fields
185
+ //# sourceMappingURL=NegotiationFields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NegotiationFields.js","sourceRoot":"","sources":["../../lib/messages/NegotiationFields.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ /// <reference types="node" />
2
+ import { BitField } from '@node-dlc/common';
3
+ import { NodeFeatureFlags } from '@node-dlc/wire';
4
+ import { Address } from '../domain/Address';
5
+ import { MessageType } from '../MessageType';
6
+ import { IWireMessage } from './IWireMessage';
7
+ /**
8
+ * This gossip message allows a node to indicate extra data associated with it,
9
+ * in addition to its public key. To avoid trivial denial of service attacks,
10
+ * nodes not associated with an already known channel are ignored.
11
+ */
12
+ export declare class NodeAnnouncementMessage implements IWireMessage {
13
+ static type: MessageType;
14
+ static deserialize(payload: Buffer): NodeAnnouncementMessage;
15
+ /**
16
+ * Message hashing is after the first 66 bytes of the message
17
+ * and excludes the type and signature. It performs a double
18
+ * sha-256 hash of the remaining bytes.
19
+ */
20
+ static hash(msg: NodeAnnouncementMessage): Buffer;
21
+ /**
22
+ * Verifies the message signature
23
+ */
24
+ static verifySignatures(msg: NodeAnnouncementMessage): boolean;
25
+ /**
26
+ * Type 257
27
+ */
28
+ type: MessageType;
29
+ /**
30
+ * Signature of the announcement message by the node's public key
31
+ * returned as a 64-byte Buffer.
32
+ */
33
+ signature: Buffer;
34
+ features: BitField<NodeFeatureFlags>;
35
+ timestamp: number;
36
+ /**
37
+ * Compressed public key of the node that is a 33-byte
38
+ * buffer.
39
+ */
40
+ nodeId: Buffer;
41
+ /**
42
+ * Color of the node returned as a 3-byte Buffer.
43
+ */
44
+ rgbColor: Buffer;
45
+ /**
46
+ * Alias of the node returned as a 32-byte Buffer.
47
+ */
48
+ alias: Buffer;
49
+ /**
50
+ * Addresses that the node allow public network connections
51
+ * on. The type indicates how the address is encoded. Addresses
52
+ * are in order of connectivity preference. Currently
53
+ * supported addresses formats are IPv4, IPv6, Tor2 and Tor3
54
+ */
55
+ addresses: Address[];
56
+ serialize(): Buffer;
57
+ }
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.NodeAnnouncementMessage = void 0;
27
+ const bufio_1 = require("@node-dlc/bufio");
28
+ const common_1 = require("@node-dlc/common");
29
+ const crypto = __importStar(require("@node-dlc/crypto"));
30
+ const Address_1 = require("../domain/Address");
31
+ const MessageType_1 = require("../MessageType");
32
+ const getTlv_1 = require("../serialize/getTlv");
33
+ /**
34
+ * This gossip message allows a node to indicate extra data associated with it,
35
+ * in addition to its public key. To avoid trivial denial of service attacks,
36
+ * nodes not associated with an already known channel are ignored.
37
+ */
38
+ class NodeAnnouncementMessage {
39
+ constructor() {
40
+ /**
41
+ * Type 257
42
+ */
43
+ this.type = MessageType_1.MessageType.NodeAnnouncement;
44
+ /**
45
+ * Addresses that the node allow public network connections
46
+ * on. The type indicates how the address is encoded. Addresses
47
+ * are in order of connectivity preference. Currently
48
+ * supported addresses formats are IPv4, IPv6, Tor2 and Tor3
49
+ */
50
+ this.addresses = [];
51
+ }
52
+ static deserialize(payload) {
53
+ const instance = new NodeAnnouncementMessage();
54
+ const reader = new bufio_1.BufferReader(payload);
55
+ reader.readUInt16BE(); // read off type
56
+ instance.signature = reader.readBytes(64);
57
+ const flen = reader.readUInt16BE();
58
+ instance.features = common_1.BitField.fromBuffer(reader.readBytes(flen));
59
+ instance.timestamp = reader.readUInt32BE();
60
+ instance.nodeId = reader.readBytes(33);
61
+ instance.rgbColor = reader.readBytes(3);
62
+ instance.alias = reader.readBytes(32);
63
+ instance.addresses = [];
64
+ reader.readUInt16BE(); // addr_len
65
+ while (!reader.eof) {
66
+ const address = Address_1.Address.deserialize((0, getTlv_1.getTlv)(reader));
67
+ instance.addresses.push(address);
68
+ }
69
+ return instance;
70
+ }
71
+ /**
72
+ * Message hashing is after the first 66 bytes of the message
73
+ * and excludes the type and signature. It performs a double
74
+ * sha-256 hash of the remaining bytes.
75
+ */
76
+ static hash(msg) {
77
+ const bytes = msg.serialize().slice(66); // type + signature
78
+ return crypto.hash256(bytes);
79
+ }
80
+ /**
81
+ * Verifies the message signature
82
+ */
83
+ static verifySignatures(msg) {
84
+ const hash = NodeAnnouncementMessage.hash(msg);
85
+ return crypto.verifySig(hash, msg.signature, msg.nodeId);
86
+ }
87
+ serialize() {
88
+ const featuresBuffer = this.features.toBuffer();
89
+ const featuresLen = featuresBuffer.length;
90
+ // serialize addresses into buffers so we can obtain the length
91
+ const addressBuffers = [];
92
+ for (const address of this.addresses) {
93
+ addressBuffers.push(address.serialize());
94
+ }
95
+ // obtain total address length
96
+ // eslint-disable-next-line
97
+ const addressBytes = addressBuffers.map(b => b.length).reduce((sum, val) => sum + val, 0); // prettier-ignore
98
+ const len = 2 + // type
99
+ 64 + // signature
100
+ 2 + // flen
101
+ featuresLen + // features length
102
+ 4 + // timestamp
103
+ 33 + // node_id
104
+ 3 + // rgb_color
105
+ 32 + // alias
106
+ 2 + // addresses
107
+ addressBytes; // cumulative addr bytes
108
+ const writer = new bufio_1.BufferWriter(Buffer.alloc(len));
109
+ writer.writeUInt16BE(this.type);
110
+ writer.writeBytes(this.signature);
111
+ writer.writeUInt16BE(featuresLen);
112
+ if (featuresLen > 0)
113
+ writer.writeBytes(featuresBuffer);
114
+ writer.writeUInt32BE(this.timestamp);
115
+ writer.writeBytes(this.nodeId);
116
+ writer.writeBytes(this.rgbColor);
117
+ writer.writeBytes(this.alias);
118
+ writer.writeUInt16BE(addressBytes);
119
+ for (const addressBuffer of addressBuffers) {
120
+ writer.writeBytes(addressBuffer);
121
+ }
122
+ return writer.toBuffer();
123
+ }
124
+ }
125
+ exports.NodeAnnouncementMessage = NodeAnnouncementMessage;
126
+ NodeAnnouncementMessage.type = MessageType_1.MessageType.NodeAnnouncement;
127
+ //# sourceMappingURL=NodeAnnouncementMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeAnnouncementMessage.js","sourceRoot":"","sources":["../../lib/messages/NodeAnnouncementMessage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ /// <reference types="node" />
2
+ import { MessageType } from '../MessageType';
3
+ import { IDlcMessage } from './DlcMessage';
4
+ import { IOracleEventJSON, OracleEvent } from './OracleEvent';
5
+ /**
6
+ * Oracle announcement that describe an event and the way that an oracle will
7
+ * attest to it. Updated to be rust-dlc compliant.
8
+ *
9
+ * In order to make it possible to hold oracles accountable in cases where
10
+ * they do not release a signature for an event outcome, there needs to be
11
+ * a proof that an oracle has committed to a given outcome. This proof is
12
+ * given in a so-called oracle announcement, which contains an oracle event
13
+ * together with the oracle public key and a signature over its serialization,
14
+ * which must be valid with respect to the specified public key.
15
+ *
16
+ * This also makes it possible for users to obtain oracle event information
17
+ * from an un-trusted peer while being guaranteed that it originates from a
18
+ * given oracle.
19
+ */
20
+ export declare class OracleAnnouncement implements IDlcMessage {
21
+ static type: MessageType;
22
+ /**
23
+ * Creates an OracleAnnouncement from JSON data
24
+ * @param json JSON object representing oracle announcement
25
+ */
26
+ static fromJSON(json: any): OracleAnnouncement;
27
+ /**
28
+ * Deserializes an oracle_announcement message
29
+ * @param buf
30
+ */
31
+ static deserialize(buf: Buffer): OracleAnnouncement;
32
+ /**
33
+ * The type for oracle_announcement message. oracle_announcement = 55332
34
+ */
35
+ type: MessageType;
36
+ length: bigint;
37
+ /** The signature enabling verifying the origin of the announcement. */
38
+ announcementSig: Buffer;
39
+ /** The public key of the oracle (32 bytes, x-only). */
40
+ oraclePubkey: Buffer;
41
+ /** The description of the event and attesting. */
42
+ oracleEvent: OracleEvent;
43
+ /**
44
+ * Validates the oracle announcement according to rust-dlc specification.
45
+ * This includes validating the oracle event and verifying the announcement signature.
46
+ * @throws Will throw an error if validation fails
47
+ */
48
+ validate(): void;
49
+ /**
50
+ * Returns the nonces from the oracle event.
51
+ * This is useful for finding matching oracle announcements.
52
+ */
53
+ getNonces(): Buffer[];
54
+ /**
55
+ * Returns the event maturity epoch from the oracle event.
56
+ */
57
+ getEventMaturityEpoch(): number;
58
+ /**
59
+ * Returns the event ID from the oracle event.
60
+ */
61
+ getEventId(): string;
62
+ /**
63
+ * Converts oracle_announcement to JSON (canonical rust-dlc format)
64
+ */
65
+ toJSON(): OracleAnnouncementJSON;
66
+ /**
67
+ * Serializes the oracle_announcement message into a Buffer
68
+ */
69
+ serialize(): Buffer;
70
+ }
71
+ export interface OracleAnnouncementJSON {
72
+ type?: number;
73
+ announcementSignature: string;
74
+ oraclePublicKey: string;
75
+ oracleEvent: IOracleEventJSON;
76
+ }
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OracleAnnouncement = void 0;
4
+ const bufio_1 = require("@node-dlc/bufio");
5
+ const bip_schnorr_1 = require("bip-schnorr");
6
+ const MessageType_1 = require("../MessageType");
7
+ const getTlv_1 = require("../serialize/getTlv");
8
+ const OracleEvent_1 = require("./OracleEvent");
9
+ /**
10
+ * Oracle announcement that describe an event and the way that an oracle will
11
+ * attest to it. Updated to be rust-dlc compliant.
12
+ *
13
+ * In order to make it possible to hold oracles accountable in cases where
14
+ * they do not release a signature for an event outcome, there needs to be
15
+ * a proof that an oracle has committed to a given outcome. This proof is
16
+ * given in a so-called oracle announcement, which contains an oracle event
17
+ * together with the oracle public key and a signature over its serialization,
18
+ * which must be valid with respect to the specified public key.
19
+ *
20
+ * This also makes it possible for users to obtain oracle event information
21
+ * from an un-trusted peer while being guaranteed that it originates from a
22
+ * given oracle.
23
+ */
24
+ class OracleAnnouncement {
25
+ constructor() {
26
+ /**
27
+ * The type for oracle_announcement message. oracle_announcement = 55332
28
+ */
29
+ this.type = OracleAnnouncement.type;
30
+ }
31
+ /**
32
+ * Creates an OracleAnnouncement from JSON data
33
+ * @param json JSON object representing oracle announcement
34
+ */
35
+ // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any
36
+ static fromJSON(json) {
37
+ const instance = new OracleAnnouncement();
38
+ // Handle different field name variations
39
+ instance.announcementSig = Buffer.from(json.announcementSignature ||
40
+ json.announcementSig ||
41
+ json.announcement_signature, 'hex');
42
+ instance.oraclePubkey = Buffer.from(json.oraclePublicKey || json.oraclePubkey || json.oracle_public_key, 'hex');
43
+ instance.oracleEvent = OracleEvent_1.OracleEvent.fromJSON(json.oracleEvent || json.oracle_event);
44
+ return instance;
45
+ }
46
+ /**
47
+ * Deserializes an oracle_announcement message
48
+ * @param buf
49
+ */
50
+ static deserialize(buf) {
51
+ const instance = new OracleAnnouncement();
52
+ const reader = new bufio_1.BufferReader(buf);
53
+ reader.readBigSize(); // read type
54
+ instance.length = reader.readBigSize();
55
+ instance.announcementSig = reader.readBytes(64);
56
+ instance.oraclePubkey = reader.readBytes(32);
57
+ instance.oracleEvent = OracleEvent_1.OracleEvent.deserialize((0, getTlv_1.getTlv)(reader));
58
+ return instance;
59
+ }
60
+ /**
61
+ * Validates the oracle announcement according to rust-dlc specification.
62
+ * This includes validating the oracle event and verifying the announcement signature.
63
+ * @throws Will throw an error if validation fails
64
+ */
65
+ validate() {
66
+ // Validate oracle event first
67
+ this.oracleEvent.validate();
68
+ // Validate oracle public key format (32 bytes for x-only)
69
+ if (!this.oraclePubkey || this.oraclePubkey.length !== 32) {
70
+ throw new Error('Oracle public key must be 32 bytes (x-only format)');
71
+ }
72
+ // Validate announcement signature format (64 bytes for Schnorr)
73
+ if (!this.announcementSig || this.announcementSig.length !== 64) {
74
+ throw new Error('Announcement signature must be 64 bytes (Schnorr format)');
75
+ }
76
+ // Verify announcement signature over the oracle event
77
+ try {
78
+ const msg = bip_schnorr_1.math.taggedHash('DLC/oracle/announcement/v0', this.oracleEvent.serialize());
79
+ (0, bip_schnorr_1.verify)(this.oraclePubkey, msg, this.announcementSig);
80
+ }
81
+ catch (error) {
82
+ throw new Error(`Invalid announcement signature: ${error.message}`);
83
+ }
84
+ }
85
+ /**
86
+ * Returns the nonces from the oracle event.
87
+ * This is useful for finding matching oracle announcements.
88
+ */
89
+ getNonces() {
90
+ return this.oracleEvent.oracleNonces;
91
+ }
92
+ /**
93
+ * Returns the event maturity epoch from the oracle event.
94
+ */
95
+ getEventMaturityEpoch() {
96
+ return this.oracleEvent.eventMaturityEpoch;
97
+ }
98
+ /**
99
+ * Returns the event ID from the oracle event.
100
+ */
101
+ getEventId() {
102
+ return this.oracleEvent.eventId;
103
+ }
104
+ /**
105
+ * Converts oracle_announcement to JSON (canonical rust-dlc format)
106
+ */
107
+ toJSON() {
108
+ return {
109
+ announcementSignature: this.announcementSig.toString('hex'),
110
+ oraclePublicKey: this.oraclePubkey.toString('hex'),
111
+ oracleEvent: this.oracleEvent.toJSON(),
112
+ };
113
+ }
114
+ /**
115
+ * Serializes the oracle_announcement message into a Buffer
116
+ */
117
+ serialize() {
118
+ const writer = new bufio_1.BufferWriter();
119
+ writer.writeBigSize(this.type);
120
+ const dataWriter = new bufio_1.BufferWriter();
121
+ dataWriter.writeBytes(this.announcementSig);
122
+ dataWriter.writeBytes(this.oraclePubkey);
123
+ dataWriter.writeBytes(this.oracleEvent.serialize());
124
+ writer.writeBigSize(dataWriter.size);
125
+ writer.writeBytes(dataWriter.toBuffer());
126
+ return writer.toBuffer();
127
+ }
128
+ }
129
+ exports.OracleAnnouncement = OracleAnnouncement;
130
+ OracleAnnouncement.type = MessageType_1.MessageType.OracleAnnouncement;
131
+ //# sourceMappingURL=OracleAnnouncement.js.map