@atomicfinance/types 3.6.1 → 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 (368) hide show
  1. package/.yalc/@node-dlc/messaging/.nyc_output/2cf48009-1094-4275-bb91-c164c932feb6.json +1 -0
  2. package/.yalc/@node-dlc/messaging/.nyc_output/processinfo/2cf48009-1094-4275-bb91-c164c932feb6.json +1 -0
  3. package/.yalc/@node-dlc/messaging/.nyc_output/processinfo/index.json +1 -0
  4. package/.yalc/@node-dlc/messaging/README.md +24 -0
  5. package/.yalc/@node-dlc/messaging/__tests__/_test-utils.ts +12 -0
  6. package/.yalc/@node-dlc/messaging/__tests__/chain/ChainManager.spec.ts +178 -0
  7. package/.yalc/@node-dlc/messaging/__tests__/compatibility/dlcspecs-compatibility.spec.ts +473 -0
  8. package/.yalc/@node-dlc/messaging/__tests__/compatibility/rust-dlc-cross-language.spec.ts +342 -0
  9. package/.yalc/@node-dlc/messaging/__tests__/compatibility/true-serialization-compatibility.spec.ts +611 -0
  10. package/.yalc/@node-dlc/messaging/__tests__/dlc_message_test.json +155 -0
  11. package/.yalc/@node-dlc/messaging/__tests__/irc/IrcMessage.spec.ts +94 -0
  12. package/.yalc/@node-dlc/messaging/__tests__/messages/AddressCache.spec.ts +79 -0
  13. package/.yalc/@node-dlc/messaging/__tests__/messages/BatchFundingGroup.spec.ts +72 -0
  14. package/.yalc/@node-dlc/messaging/__tests__/messages/CetAdaptorSignatures.spec.ts +57 -0
  15. package/.yalc/@node-dlc/messaging/__tests__/messages/ContractDescriptor.spec.ts +264 -0
  16. package/.yalc/@node-dlc/messaging/__tests__/messages/ContractInfo.spec.ts +419 -0
  17. package/.yalc/@node-dlc/messaging/__tests__/messages/DigitDecompositionEventDescriptor.spec.ts +59 -0
  18. package/.yalc/@node-dlc/messaging/__tests__/messages/DlcAccept.spec.ts +242 -0
  19. package/.yalc/@node-dlc/messaging/__tests__/messages/DlcCancel.spec.ts +42 -0
  20. package/.yalc/@node-dlc/messaging/__tests__/messages/DlcClose.spec.ts +315 -0
  21. package/.yalc/@node-dlc/messaging/__tests__/messages/DlcOffer.spec.ts +527 -0
  22. package/.yalc/@node-dlc/messaging/__tests__/messages/DlcSign.spec.ts +118 -0
  23. package/.yalc/@node-dlc/messaging/__tests__/messages/DlcTransactions.spec.ts +157 -0
  24. package/.yalc/@node-dlc/messaging/__tests__/messages/EnumEventDescriptor.spec.ts +50 -0
  25. package/.yalc/@node-dlc/messaging/__tests__/messages/EventDescriptor.spec.ts +93 -0
  26. package/.yalc/@node-dlc/messaging/__tests__/messages/FundingInput.spec.ts +84 -0
  27. package/.yalc/@node-dlc/messaging/__tests__/messages/FundingSignatures.spec.ts +83 -0
  28. package/.yalc/@node-dlc/messaging/__tests__/messages/NegotiationFields.spec.ts +328 -0
  29. package/.yalc/@node-dlc/messaging/__tests__/messages/NodeAnnouncementMessage.spec.ts +115 -0
  30. package/.yalc/@node-dlc/messaging/__tests__/messages/OracleAnnouncement.spec.ts +415 -0
  31. package/.yalc/@node-dlc/messaging/__tests__/messages/OracleAttestation.spec.ts +326 -0
  32. package/.yalc/@node-dlc/messaging/__tests__/messages/OracleEvent.spec.ts +143 -0
  33. package/.yalc/@node-dlc/messaging/__tests__/messages/OracleEventContainer.spec.ts +95 -0
  34. package/.yalc/@node-dlc/messaging/__tests__/messages/OracleIdentifier.spec.ts +48 -0
  35. package/.yalc/@node-dlc/messaging/__tests__/messages/OracleInfo.spec.ts +116 -0
  36. package/.yalc/@node-dlc/messaging/__tests__/messages/OrderAccept.spec.ts +77 -0
  37. package/.yalc/@node-dlc/messaging/__tests__/messages/OrderNegotiationFields.spec.ts +216 -0
  38. package/.yalc/@node-dlc/messaging/__tests__/messages/OrderOffer.spec.ts +121 -0
  39. package/.yalc/@node-dlc/messaging/__tests__/messages/OrderPositionInfo.spec.ts +75 -0
  40. package/.yalc/@node-dlc/messaging/__tests__/messages/PayoutCurvePiece.spec.ts +220 -0
  41. package/.yalc/@node-dlc/messaging/__tests__/messages/PayoutFunction.spec.ts +101 -0
  42. package/.yalc/@node-dlc/messaging/__tests__/messages/RoundingIntervals.spec.ts +75 -0
  43. package/.yalc/@node-dlc/messaging/__tests__/serialize/F64.spec.ts +260 -0
  44. package/.yalc/@node-dlc/messaging/__tests__/tsconfig.json +8 -0
  45. package/.yalc/@node-dlc/messaging/coverage/lcov-report/base.css +224 -0
  46. package/.yalc/@node-dlc/messaging/coverage/lcov-report/block-navigation.js +79 -0
  47. package/.yalc/@node-dlc/messaging/coverage/lcov-report/favicon.png +0 -0
  48. package/.yalc/@node-dlc/messaging/coverage/lcov-report/index.html +201 -0
  49. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/MessageType.ts.html +494 -0
  50. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/chain/ChainManager.ts.html +1058 -0
  51. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/chain/ChainMemoryStore.ts.html +182 -0
  52. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/chain/index.html +126 -0
  53. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/domain/Address.ts.html +272 -0
  54. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/domain/index.html +111 -0
  55. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/index.html +141 -0
  56. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/index.ts.html +212 -0
  57. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/irc/IrcMessage.ts.html +563 -0
  58. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/irc/index.html +111 -0
  59. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/AddressCache.ts.html +302 -0
  60. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/BatchFundingGroup.ts.html +503 -0
  61. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/CetAdaptorSignatures.ts.html +347 -0
  62. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/CetAdaptorSignaturesV0.ts.html +347 -0
  63. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/ContractDescriptor.ts.html +1040 -0
  64. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/ContractInfo.ts.html +1382 -0
  65. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcAccept.ts.html +1865 -0
  66. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcCancel.ts.html +251 -0
  67. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcClose.ts.html +986 -0
  68. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcCloseMetadata.ts.html +443 -0
  69. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcIds.ts.html +281 -0
  70. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcInfo.ts.html +323 -0
  71. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcMessage.ts.html +341 -0
  72. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcOffer.ts.html +1895 -0
  73. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcSign.ts.html +1142 -0
  74. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcTransactions.ts.html +719 -0
  75. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/EventDescriptor.ts.html +947 -0
  76. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/FundingInput.ts.html +728 -0
  77. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/FundingSignatures.ts.html +374 -0
  78. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/FundingSignaturesV0.ts.html +374 -0
  79. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/NegotiationFields.ts.html +836 -0
  80. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/NodeAnnouncementMessage.ts.html +515 -0
  81. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleAnnouncement.ts.html +608 -0
  82. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleAnnouncementV0.ts.html +605 -0
  83. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleAttestation.ts.html +956 -0
  84. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleAttestationV0.ts.html +770 -0
  85. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleEvent.ts.html +830 -0
  86. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleEventContainer.ts.html +347 -0
  87. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleEventContainerV0.ts.html +347 -0
  88. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleEventV0.ts.html +827 -0
  89. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleIdentifier.ts.html +314 -0
  90. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleIdentifierV0.ts.html +314 -0
  91. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleInfo.ts.html +1637 -0
  92. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleInfoV0.ts.html +1631 -0
  93. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OrderAccept.ts.html +557 -0
  94. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OrderIrcInfo.ts.html +380 -0
  95. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OrderMetadata.ts.html +437 -0
  96. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OrderNegotiationFields.ts.html +551 -0
  97. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OrderOffer.ts.html +1337 -0
  98. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OrderPositionInfo.ts.html +590 -0
  99. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/PayoutCurvePiece.ts.html +1427 -0
  100. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/PayoutFunction.ts.html +800 -0
  101. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/RoundingIntervals.ts.html +461 -0
  102. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/RoundingIntervalsV0.ts.html +482 -0
  103. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/ScriptWitnessV0.ts.html +269 -0
  104. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/index.html +636 -0
  105. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/serde/SerdeUtils.ts.html +1394 -0
  106. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/serde/index.html +111 -0
  107. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/serialize/F64.ts.html +1136 -0
  108. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/serialize/deserializeTlv.ts.html +125 -0
  109. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/serialize/getTlv.ts.html +143 -0
  110. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/serialize/index.html +141 -0
  111. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/util.ts.html +179 -0
  112. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/validation/index.html +111 -0
  113. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/validation/validate.ts.html +182 -0
  114. package/.yalc/@node-dlc/messaging/coverage/lcov-report/prettify.css +1 -0
  115. package/.yalc/@node-dlc/messaging/coverage/lcov-report/prettify.js +2 -0
  116. package/.yalc/@node-dlc/messaging/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  117. package/.yalc/@node-dlc/messaging/coverage/lcov-report/sorter.js +170 -0
  118. package/.yalc/@node-dlc/messaging/coverage/lcov.info +5394 -0
  119. package/.yalc/@node-dlc/messaging/dist/MessageType.d.ts +100 -0
  120. package/.yalc/@node-dlc/messaging/dist/MessageType.js +117 -0
  121. package/.yalc/@node-dlc/messaging/dist/MessageType.js.map +1 -0
  122. package/.yalc/@node-dlc/messaging/dist/chain/ChainManager.d.ts +50 -0
  123. package/.yalc/@node-dlc/messaging/dist/chain/ChainManager.js +211 -0
  124. package/.yalc/@node-dlc/messaging/dist/chain/ChainManager.js.map +1 -0
  125. package/.yalc/@node-dlc/messaging/dist/chain/ChainMemoryStore.d.ts +14 -0
  126. package/.yalc/@node-dlc/messaging/dist/chain/ChainMemoryStore.js +28 -0
  127. package/.yalc/@node-dlc/messaging/dist/chain/ChainMemoryStore.js.map +1 -0
  128. package/.yalc/@node-dlc/messaging/dist/chain/DlcStore.d.ts +11 -0
  129. package/.yalc/@node-dlc/messaging/dist/chain/DlcStore.js +3 -0
  130. package/.yalc/@node-dlc/messaging/dist/chain/DlcStore.js.map +1 -0
  131. package/.yalc/@node-dlc/messaging/dist/chain/IChainFilterChainClient.d.ts +48 -0
  132. package/.yalc/@node-dlc/messaging/dist/chain/IChainFilterChainClient.js +3 -0
  133. package/.yalc/@node-dlc/messaging/dist/chain/IChainFilterChainClient.js.map +1 -0
  134. package/.yalc/@node-dlc/messaging/dist/domain/Address.d.ts +24 -0
  135. package/.yalc/@node-dlc/messaging/dist/domain/Address.js +46 -0
  136. package/.yalc/@node-dlc/messaging/dist/domain/Address.js.map +1 -0
  137. package/.yalc/@node-dlc/messaging/dist/index.d.ts +44 -0
  138. package/.yalc/@node-dlc/messaging/dist/index.js +63 -0
  139. package/.yalc/@node-dlc/messaging/dist/index.js.map +1 -0
  140. package/.yalc/@node-dlc/messaging/dist/irc/IrcMessage.d.ts +43 -0
  141. package/.yalc/@node-dlc/messaging/dist/irc/IrcMessage.js +116 -0
  142. package/.yalc/@node-dlc/messaging/dist/irc/IrcMessage.js.map +1 -0
  143. package/.yalc/@node-dlc/messaging/dist/messages/AddressCache.d.ts +15 -0
  144. package/.yalc/@node-dlc/messaging/dist/messages/AddressCache.js +51 -0
  145. package/.yalc/@node-dlc/messaging/dist/messages/AddressCache.js.map +1 -0
  146. package/.yalc/@node-dlc/messaging/dist/messages/BatchFundingGroup.d.ts +61 -0
  147. package/.yalc/@node-dlc/messaging/dist/messages/BatchFundingGroup.js +113 -0
  148. package/.yalc/@node-dlc/messaging/dist/messages/BatchFundingGroup.js.map +1 -0
  149. package/.yalc/@node-dlc/messaging/dist/messages/CetAdaptorSignatures.d.ts +40 -0
  150. package/.yalc/@node-dlc/messaging/dist/messages/CetAdaptorSignatures.js +67 -0
  151. package/.yalc/@node-dlc/messaging/dist/messages/CetAdaptorSignatures.js.map +1 -0
  152. package/.yalc/@node-dlc/messaging/dist/messages/ContractDescriptor.d.ts +122 -0
  153. package/.yalc/@node-dlc/messaging/dist/messages/ContractDescriptor.js +222 -0
  154. package/.yalc/@node-dlc/messaging/dist/messages/ContractDescriptor.js.map +1 -0
  155. package/.yalc/@node-dlc/messaging/dist/messages/ContractInfo.d.ts +135 -0
  156. package/.yalc/@node-dlc/messaging/dist/messages/ContractInfo.js +304 -0
  157. package/.yalc/@node-dlc/messaging/dist/messages/ContractInfo.js.map +1 -0
  158. package/.yalc/@node-dlc/messaging/dist/messages/DlcAccept.d.ts +145 -0
  159. package/.yalc/@node-dlc/messaging/dist/messages/DlcAccept.js +428 -0
  160. package/.yalc/@node-dlc/messaging/dist/messages/DlcAccept.js.map +1 -0
  161. package/.yalc/@node-dlc/messaging/dist/messages/DlcCancel.d.ts +31 -0
  162. package/.yalc/@node-dlc/messaging/dist/messages/DlcCancel.js +51 -0
  163. package/.yalc/@node-dlc/messaging/dist/messages/DlcCancel.js.map +1 -0
  164. package/.yalc/@node-dlc/messaging/dist/messages/DlcClose.d.ts +68 -0
  165. package/.yalc/@node-dlc/messaging/dist/messages/DlcClose.js +210 -0
  166. package/.yalc/@node-dlc/messaging/dist/messages/DlcClose.js.map +1 -0
  167. package/.yalc/@node-dlc/messaging/dist/messages/DlcCloseMetadata.d.ts +44 -0
  168. package/.yalc/@node-dlc/messaging/dist/messages/DlcCloseMetadata.js +74 -0
  169. package/.yalc/@node-dlc/messaging/dist/messages/DlcCloseMetadata.js.map +1 -0
  170. package/.yalc/@node-dlc/messaging/dist/messages/DlcIds.d.ts +26 -0
  171. package/.yalc/@node-dlc/messaging/dist/messages/DlcIds.js +58 -0
  172. package/.yalc/@node-dlc/messaging/dist/messages/DlcIds.js.map +1 -0
  173. package/.yalc/@node-dlc/messaging/dist/messages/DlcInfo.d.ts +31 -0
  174. package/.yalc/@node-dlc/messaging/dist/messages/DlcInfo.js +61 -0
  175. package/.yalc/@node-dlc/messaging/dist/messages/DlcInfo.js.map +1 -0
  176. package/.yalc/@node-dlc/messaging/dist/messages/DlcMessage.d.ts +23 -0
  177. package/.yalc/@node-dlc/messaging/dist/messages/DlcMessage.js +54 -0
  178. package/.yalc/@node-dlc/messaging/dist/messages/DlcMessage.js.map +1 -0
  179. package/.yalc/@node-dlc/messaging/dist/messages/DlcOffer.d.ts +131 -0
  180. package/.yalc/@node-dlc/messaging/dist/messages/DlcOffer.js +418 -0
  181. package/.yalc/@node-dlc/messaging/dist/messages/DlcOffer.js.map +1 -0
  182. package/.yalc/@node-dlc/messaging/dist/messages/DlcSign.d.ts +96 -0
  183. package/.yalc/@node-dlc/messaging/dist/messages/DlcSign.js +267 -0
  184. package/.yalc/@node-dlc/messaging/dist/messages/DlcSign.js.map +1 -0
  185. package/.yalc/@node-dlc/messaging/dist/messages/DlcTransactions.d.ts +69 -0
  186. package/.yalc/@node-dlc/messaging/dist/messages/DlcTransactions.js +149 -0
  187. package/.yalc/@node-dlc/messaging/dist/messages/DlcTransactions.js.map +1 -0
  188. package/.yalc/@node-dlc/messaging/dist/messages/EventDescriptor.d.ts +106 -0
  189. package/.yalc/@node-dlc/messaging/dist/messages/EventDescriptor.js +209 -0
  190. package/.yalc/@node-dlc/messaging/dist/messages/EventDescriptor.js.map +1 -0
  191. package/.yalc/@node-dlc/messaging/dist/messages/FundingInput.d.ts +62 -0
  192. package/.yalc/@node-dlc/messaging/dist/messages/FundingInput.js +163 -0
  193. package/.yalc/@node-dlc/messaging/dist/messages/FundingInput.js.map +1 -0
  194. package/.yalc/@node-dlc/messaging/dist/messages/FundingSignatures.d.ts +36 -0
  195. package/.yalc/@node-dlc/messaging/dist/messages/FundingSignatures.js +78 -0
  196. package/.yalc/@node-dlc/messaging/dist/messages/FundingSignatures.js.map +1 -0
  197. package/.yalc/@node-dlc/messaging/dist/messages/IWireMessage.d.ts +6 -0
  198. package/.yalc/@node-dlc/messaging/dist/messages/IWireMessage.js +3 -0
  199. package/.yalc/@node-dlc/messaging/dist/messages/IWireMessage.js.map +1 -0
  200. package/.yalc/@node-dlc/messaging/dist/messages/NegotiationFields.d.ts +86 -0
  201. package/.yalc/@node-dlc/messaging/dist/messages/NegotiationFields.js +185 -0
  202. package/.yalc/@node-dlc/messaging/dist/messages/NegotiationFields.js.map +1 -0
  203. package/.yalc/@node-dlc/messaging/dist/messages/NodeAnnouncementMessage.d.ts +57 -0
  204. package/.yalc/@node-dlc/messaging/dist/messages/NodeAnnouncementMessage.js +127 -0
  205. package/.yalc/@node-dlc/messaging/dist/messages/NodeAnnouncementMessage.js.map +1 -0
  206. package/.yalc/@node-dlc/messaging/dist/messages/OracleAnnouncement.d.ts +76 -0
  207. package/.yalc/@node-dlc/messaging/dist/messages/OracleAnnouncement.js +131 -0
  208. package/.yalc/@node-dlc/messaging/dist/messages/OracleAnnouncement.js.map +1 -0
  209. package/.yalc/@node-dlc/messaging/dist/messages/OracleAttestation.d.ts +68 -0
  210. package/.yalc/@node-dlc/messaging/dist/messages/OracleAttestation.js +239 -0
  211. package/.yalc/@node-dlc/messaging/dist/messages/OracleAttestation.js.map +1 -0
  212. package/.yalc/@node-dlc/messaging/dist/messages/OracleEvent.d.ts +90 -0
  213. package/.yalc/@node-dlc/messaging/dist/messages/OracleEvent.js +189 -0
  214. package/.yalc/@node-dlc/messaging/dist/messages/OracleEvent.js.map +1 -0
  215. package/.yalc/@node-dlc/messaging/dist/messages/OracleEventContainer.d.ts +32 -0
  216. package/.yalc/@node-dlc/messaging/dist/messages/OracleEventContainer.js +67 -0
  217. package/.yalc/@node-dlc/messaging/dist/messages/OracleEventContainer.js.map +1 -0
  218. package/.yalc/@node-dlc/messaging/dist/messages/OracleIdentifier.d.ts +32 -0
  219. package/.yalc/@node-dlc/messaging/dist/messages/OracleIdentifier.js +58 -0
  220. package/.yalc/@node-dlc/messaging/dist/messages/OracleIdentifier.js.map +1 -0
  221. package/.yalc/@node-dlc/messaging/dist/messages/OracleIdentifierV0.d.ts +32 -0
  222. package/.yalc/@node-dlc/messaging/dist/messages/OracleIdentifierV0.js +58 -0
  223. package/.yalc/@node-dlc/messaging/dist/messages/OracleIdentifierV0.js.map +1 -0
  224. package/.yalc/@node-dlc/messaging/dist/messages/OracleInfo.d.ts +161 -0
  225. package/.yalc/@node-dlc/messaging/dist/messages/OracleInfo.js +390 -0
  226. package/.yalc/@node-dlc/messaging/dist/messages/OracleInfo.js.map +1 -0
  227. package/.yalc/@node-dlc/messaging/dist/messages/OracleInfoV0.d.ts +161 -0
  228. package/.yalc/@node-dlc/messaging/dist/messages/OracleInfoV0.js +387 -0
  229. package/.yalc/@node-dlc/messaging/dist/messages/OracleInfoV0.js.map +1 -0
  230. package/.yalc/@node-dlc/messaging/dist/messages/OrderAccept.d.ts +65 -0
  231. package/.yalc/@node-dlc/messaging/dist/messages/OrderAccept.js +125 -0
  232. package/.yalc/@node-dlc/messaging/dist/messages/OrderAccept.js.map +1 -0
  233. package/.yalc/@node-dlc/messaging/dist/messages/OrderIrcInfo.d.ts +42 -0
  234. package/.yalc/@node-dlc/messaging/dist/messages/OrderIrcInfo.js +74 -0
  235. package/.yalc/@node-dlc/messaging/dist/messages/OrderIrcInfo.js.map +1 -0
  236. package/.yalc/@node-dlc/messaging/dist/messages/OrderMetadata.d.ts +56 -0
  237. package/.yalc/@node-dlc/messaging/dist/messages/OrderMetadata.js +87 -0
  238. package/.yalc/@node-dlc/messaging/dist/messages/OrderMetadata.js.map +1 -0
  239. package/.yalc/@node-dlc/messaging/dist/messages/OrderNegotiationFields.d.ts +69 -0
  240. package/.yalc/@node-dlc/messaging/dist/messages/OrderNegotiationFields.js +114 -0
  241. package/.yalc/@node-dlc/messaging/dist/messages/OrderNegotiationFields.js.map +1 -0
  242. package/.yalc/@node-dlc/messaging/dist/messages/OrderOffer.d.ts +97 -0
  243. package/.yalc/@node-dlc/messaging/dist/messages/OrderOffer.js +296 -0
  244. package/.yalc/@node-dlc/messaging/dist/messages/OrderOffer.js.map +1 -0
  245. package/.yalc/@node-dlc/messaging/dist/messages/OrderPositionInfo.d.ts +50 -0
  246. package/.yalc/@node-dlc/messaging/dist/messages/OrderPositionInfo.js +125 -0
  247. package/.yalc/@node-dlc/messaging/dist/messages/OrderPositionInfo.js.map +1 -0
  248. package/.yalc/@node-dlc/messaging/dist/messages/PayoutCurvePiece.d.ts +129 -0
  249. package/.yalc/@node-dlc/messaging/dist/messages/PayoutCurvePiece.js +327 -0
  250. package/.yalc/@node-dlc/messaging/dist/messages/PayoutCurvePiece.js.map +1 -0
  251. package/.yalc/@node-dlc/messaging/dist/messages/PayoutFunction.d.ts +66 -0
  252. package/.yalc/@node-dlc/messaging/dist/messages/PayoutFunction.js +170 -0
  253. package/.yalc/@node-dlc/messaging/dist/messages/PayoutFunction.js.map +1 -0
  254. package/.yalc/@node-dlc/messaging/dist/messages/RoundingIntervals.d.ts +52 -0
  255. package/.yalc/@node-dlc/messaging/dist/messages/RoundingIntervals.js +95 -0
  256. package/.yalc/@node-dlc/messaging/dist/messages/RoundingIntervals.js.map +1 -0
  257. package/.yalc/@node-dlc/messaging/dist/messages/ScriptWitnessV0.d.ts +29 -0
  258. package/.yalc/@node-dlc/messaging/dist/messages/ScriptWitnessV0.js +50 -0
  259. package/.yalc/@node-dlc/messaging/dist/messages/ScriptWitnessV0.js.map +1 -0
  260. package/.yalc/@node-dlc/messaging/dist/messages/Tlv.d.ts +15 -0
  261. package/.yalc/@node-dlc/messaging/dist/messages/Tlv.js +32 -0
  262. package/.yalc/@node-dlc/messaging/dist/messages/Tlv.js.map +1 -0
  263. package/.yalc/@node-dlc/messaging/dist/serialize/F64.d.ts +154 -0
  264. package/.yalc/@node-dlc/messaging/dist/serialize/F64.js +307 -0
  265. package/.yalc/@node-dlc/messaging/dist/serialize/F64.js.map +1 -0
  266. package/.yalc/@node-dlc/messaging/dist/serialize/deserializeTlv.d.ts +9 -0
  267. package/.yalc/@node-dlc/messaging/dist/serialize/deserializeTlv.js +11 -0
  268. package/.yalc/@node-dlc/messaging/dist/serialize/deserializeTlv.js.map +1 -0
  269. package/.yalc/@node-dlc/messaging/dist/serialize/getTlv.d.ts +4 -0
  270. package/.yalc/@node-dlc/messaging/dist/serialize/getTlv.js +23 -0
  271. package/.yalc/@node-dlc/messaging/dist/serialize/getTlv.js.map +1 -0
  272. package/.yalc/@node-dlc/messaging/dist/serialize/readTlvs.d.ts +8 -0
  273. package/.yalc/@node-dlc/messaging/dist/serialize/readTlvs.js +33 -0
  274. package/.yalc/@node-dlc/messaging/dist/serialize/readTlvs.js.map +1 -0
  275. package/.yalc/@node-dlc/messaging/dist/util.d.ts +13 -0
  276. package/.yalc/@node-dlc/messaging/dist/util.js +40 -0
  277. package/.yalc/@node-dlc/messaging/dist/util.js.map +1 -0
  278. package/.yalc/@node-dlc/messaging/dist/validation/validate.d.ts +4 -0
  279. package/.yalc/@node-dlc/messaging/dist/validation/validate.js +31 -0
  280. package/.yalc/@node-dlc/messaging/dist/validation/validate.js.map +1 -0
  281. package/.yalc/@node-dlc/messaging/lib/MessageType.ts +138 -0
  282. package/.yalc/@node-dlc/messaging/lib/chain/ChainManager.ts +326 -0
  283. package/.yalc/@node-dlc/messaging/lib/chain/ChainMemoryStore.ts +34 -0
  284. package/.yalc/@node-dlc/messaging/lib/chain/DlcStore.ts +11 -0
  285. package/.yalc/@node-dlc/messaging/lib/chain/IChainFilterChainClient.ts +57 -0
  286. package/.yalc/@node-dlc/messaging/lib/domain/Address.ts +64 -0
  287. package/.yalc/@node-dlc/messaging/lib/index.ts +44 -0
  288. package/.yalc/@node-dlc/messaging/lib/irc/IrcMessage.ts +161 -0
  289. package/.yalc/@node-dlc/messaging/lib/messages/AddressCache.ts +74 -0
  290. package/.yalc/@node-dlc/messaging/lib/messages/BatchFundingGroup.ts +141 -0
  291. package/.yalc/@node-dlc/messaging/lib/messages/CetAdaptorSignatures.ts +89 -0
  292. package/.yalc/@node-dlc/messaging/lib/messages/ContractDescriptor.ts +318 -0
  293. package/.yalc/@node-dlc/messaging/lib/messages/ContractInfo.ts +434 -0
  294. package/.yalc/@node-dlc/messaging/lib/messages/DlcAccept.ts +595 -0
  295. package/.yalc/@node-dlc/messaging/lib/messages/DlcCancel.ts +57 -0
  296. package/.yalc/@node-dlc/messaging/lib/messages/DlcClose.ts +302 -0
  297. package/.yalc/@node-dlc/messaging/lib/messages/DlcCloseMetadata.ts +121 -0
  298. package/.yalc/@node-dlc/messaging/lib/messages/DlcIds.ts +67 -0
  299. package/.yalc/@node-dlc/messaging/lib/messages/DlcInfo.ts +81 -0
  300. package/.yalc/@node-dlc/messaging/lib/messages/DlcMessage.ts +87 -0
  301. package/.yalc/@node-dlc/messaging/lib/messages/DlcOffer.ts +605 -0
  302. package/.yalc/@node-dlc/messaging/lib/messages/DlcSign.ts +354 -0
  303. package/.yalc/@node-dlc/messaging/lib/messages/DlcTransactions.ts +213 -0
  304. package/.yalc/@node-dlc/messaging/lib/messages/EventDescriptor.ts +289 -0
  305. package/.yalc/@node-dlc/messaging/lib/messages/FundingInput.ts +216 -0
  306. package/.yalc/@node-dlc/messaging/lib/messages/FundingSignatures.ts +98 -0
  307. package/.yalc/@node-dlc/messaging/lib/messages/IWireMessage.ts +6 -0
  308. package/.yalc/@node-dlc/messaging/lib/messages/NegotiationFields.ts +252 -0
  309. package/.yalc/@node-dlc/messaging/lib/messages/NodeAnnouncementMessage.ts +145 -0
  310. package/.yalc/@node-dlc/messaging/lib/messages/OracleAnnouncement.ts +176 -0
  311. package/.yalc/@node-dlc/messaging/lib/messages/OracleAttestation.ts +292 -0
  312. package/.yalc/@node-dlc/messaging/lib/messages/OracleEvent.ts +250 -0
  313. package/.yalc/@node-dlc/messaging/lib/messages/OracleEventContainer.ts +89 -0
  314. package/.yalc/@node-dlc/messaging/lib/messages/OracleIdentifier.ts +78 -0
  315. package/.yalc/@node-dlc/messaging/lib/messages/OracleInfo.ts +519 -0
  316. package/.yalc/@node-dlc/messaging/lib/messages/OrderAccept.ts +159 -0
  317. package/.yalc/@node-dlc/messaging/lib/messages/OrderIrcInfo.ts +100 -0
  318. package/.yalc/@node-dlc/messaging/lib/messages/OrderMetadata.ts +119 -0
  319. package/.yalc/@node-dlc/messaging/lib/messages/OrderNegotiationFields.ts +157 -0
  320. package/.yalc/@node-dlc/messaging/lib/messages/OrderOffer.ts +419 -0
  321. package/.yalc/@node-dlc/messaging/lib/messages/OrderPositionInfo.ts +170 -0
  322. package/.yalc/@node-dlc/messaging/lib/messages/PayoutCurvePiece.ts +449 -0
  323. package/.yalc/@node-dlc/messaging/lib/messages/PayoutFunction.ts +240 -0
  324. package/.yalc/@node-dlc/messaging/lib/messages/RoundingIntervals.ts +127 -0
  325. package/.yalc/@node-dlc/messaging/lib/messages/ScriptWitnessV0.ts +63 -0
  326. package/.yalc/@node-dlc/messaging/lib/messages/Tlv.ts +40 -0
  327. package/.yalc/@node-dlc/messaging/lib/serialize/F64.ts +352 -0
  328. package/.yalc/@node-dlc/messaging/lib/serialize/deserializeTlv.ts +15 -0
  329. package/.yalc/@node-dlc/messaging/lib/serialize/getTlv.ts +21 -0
  330. package/.yalc/@node-dlc/messaging/lib/serialize/readTlvs.ts +37 -0
  331. package/.yalc/@node-dlc/messaging/lib/util.ts +33 -0
  332. package/.yalc/@node-dlc/messaging/lib/validation/validate.ts +34 -0
  333. package/.yalc/@node-dlc/messaging/package.json +42 -0
  334. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/enum_3_of_3_test.json +210 -0
  335. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/enum_3_of_5_test.json +468 -0
  336. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/enum_and_numerical_3_of_5_test.json +1517 -0
  337. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/enum_and_numerical_5_of_5_test.json +545 -0
  338. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/enum_and_numerical_with_diff_3_of_5_test.json +4761 -0
  339. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/enum_and_numerical_with_diff_5_of_5_test.json +2169 -0
  340. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/enum_single_oracle_test.json +164 -0
  341. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/single_oracle_numerical_hyperbola_test.json +502 -0
  342. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/single_oracle_numerical_test.json +262 -0
  343. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/three_of_five_oracle_numerical_with_diff_test.json +4382 -0
  344. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/three_of_three_oracle_numerical_test.json +324 -0
  345. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/three_of_three_oracle_numerical_with_diff_test.json +652 -0
  346. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/two_of_five_oracle_numerical_test.json +1138 -0
  347. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/two_of_five_oracle_numerical_with_diff_test.json +2222 -0
  348. package/.yalc/@node-dlc/messaging/test_vectors/oracle/external_oracle_announcements.json +0 -0
  349. package/.yalc/@node-dlc/messaging/test_vectors/oracle/oracle_message_test_vectors.json +115 -0
  350. package/.yalc/@node-dlc/messaging/test_vectors/rust-dlc/accept_msg.json +1465 -0
  351. package/.yalc/@node-dlc/messaging/test_vectors/rust-dlc/dlc_fee_test.json +12362 -0
  352. package/.yalc/@node-dlc/messaging/test_vectors/rust-dlc/dlc_fee_test_scripts.json +57 -0
  353. package/.yalc/@node-dlc/messaging/test_vectors/rust-dlc/dlc_test.json +2766 -0
  354. package/.yalc/@node-dlc/messaging/test_vectors/rust-dlc/dlc_tx_test.json +2899 -0
  355. package/.yalc/@node-dlc/messaging/test_vectors/rust-dlc/offer_msg.json +163 -0
  356. package/.yalc/@node-dlc/messaging/test_vectors/rust-dlc/offer_msg_disjoint.json +352 -0
  357. package/.yalc/@node-dlc/messaging/test_vectors/rust-dlc/segment_chunk_msg.json +12635 -0
  358. package/.yalc/@node-dlc/messaging/test_vectors/rust-dlc/segment_start_msg.json +4022 -0
  359. package/.yalc/@node-dlc/messaging/test_vectors/rust-dlc/sign_msg.json +383 -0
  360. package/.yalc/@node-dlc/messaging/tsconfig.json +7 -0
  361. package/.yalc/@node-dlc/messaging/yalc.sig +1 -0
  362. package/CHANGELOG.md +64 -0
  363. package/dist/dlc.d.ts +3 -3
  364. package/dist/models/Output.js.map +1 -1
  365. package/lib/dlc.ts +4 -14
  366. package/lib/models/Output.ts +4 -1
  367. package/package.json +4 -4
  368. package/yalc.lock +10 -0
@@ -0,0 +1,289 @@
1
+ import { BufferReader, BufferWriter } from '@node-dlc/bufio';
2
+
3
+ import { MessageType } from '../MessageType';
4
+ import { IDlcMessage } from './DlcMessage';
5
+
6
+ export abstract class EventDescriptor {
7
+ public static deserialize(
8
+ buf: Buffer,
9
+ ): EnumEventDescriptor | DigitDecompositionEventDescriptor {
10
+ const reader = new BufferReader(buf);
11
+
12
+ const type = Number(reader.readBigSize());
13
+
14
+ switch (type) {
15
+ case MessageType.EnumEventDescriptor:
16
+ return EnumEventDescriptor.deserialize(buf);
17
+ case MessageType.DigitDecompositionEventDescriptor:
18
+ return DigitDecompositionEventDescriptor.deserialize(buf);
19
+ default:
20
+ throw new Error(
21
+ `Payout function TLV type must be EnumEventDescriptorV0 or DigitDecompositionEventDescriptor`,
22
+ );
23
+ }
24
+ }
25
+
26
+ /**
27
+ * Creates an EventDescriptor from JSON data
28
+ * @param json JSON object representing event descriptor
29
+ */
30
+ public static fromJSON(json: any): EventDescriptor {
31
+ if (!json) {
32
+ throw new Error('eventDescriptor is required');
33
+ }
34
+
35
+ // Check if it's an enum event or digit decomposition event
36
+ if (json.enumEvent || json.enum_event) {
37
+ return EnumEventDescriptor.fromJSON(json.enumEvent || json.enum_event);
38
+ } else if (json.digitDecompositionEvent || json.digit_decomposition_event) {
39
+ return DigitDecompositionEventDescriptor.fromJSON(
40
+ json.digitDecompositionEvent || json.digit_decomposition_event,
41
+ );
42
+ } else {
43
+ throw new Error(
44
+ 'eventDescriptor must have either enumEvent or digitDecompositionEvent',
45
+ );
46
+ }
47
+ }
48
+
49
+ public abstract type: number;
50
+
51
+ public abstract length: bigint;
52
+
53
+ public abstract toJSON():
54
+ | IEnumEventDescriptorJSON
55
+ | IDigitDecompositionEventDescriptorJSON;
56
+
57
+ public abstract serialize(): Buffer;
58
+ }
59
+
60
+ /**
61
+ * EnumEventDescriptor message contains the event outcomes for enumerated events.
62
+ * Simplified class name (removed V0 suffix).
63
+ */
64
+ export class EnumEventDescriptor
65
+ extends EventDescriptor
66
+ implements IDlcMessage {
67
+ public static type = MessageType.EnumEventDescriptorV0;
68
+
69
+ /**
70
+ * Creates an EnumEventDescriptor from JSON data
71
+ * @param json JSON object representing an enum event descriptor
72
+ */
73
+ public static fromJSON(json: any): EnumEventDescriptor {
74
+ const instance = new EnumEventDescriptor();
75
+ instance.outcomes = json.outcomes || [];
76
+ return instance;
77
+ }
78
+
79
+ /**
80
+ * Deserializes an enum_event_descriptor_v0 message
81
+ * @param buf
82
+ */
83
+ public static deserialize(buf: Buffer): EnumEventDescriptor {
84
+ const instance = new EnumEventDescriptor();
85
+ const reader = new BufferReader(buf);
86
+
87
+ reader.readBigSize(); // read type
88
+ instance.length = reader.readBigSize(); // need to fix this
89
+ reader.readUInt16BE(); // num_outcomes
90
+
91
+ while (!reader.eof) {
92
+ const outcomeLen = reader.readBigSize();
93
+ const outcomeBuf = reader.readBytes(Number(outcomeLen));
94
+ instance.outcomes.push(outcomeBuf.toString());
95
+ }
96
+
97
+ return instance;
98
+ }
99
+
100
+ /**
101
+ * The type for enum_event_descriptor_v0 message. enum_event_descriptor_v0 = 55302
102
+ */
103
+ public type = EnumEventDescriptor.type;
104
+
105
+ public length = BigInt(0); // Required by EventDescriptor parent class
106
+
107
+ public outcomes: string[] = [];
108
+
109
+ /**
110
+ * Converts enum_event_descriptor to JSON
111
+ */
112
+ public toJSON(): IEnumEventDescriptorJSON {
113
+ return {
114
+ enumEvent: {
115
+ outcomes: this.outcomes,
116
+ },
117
+ };
118
+ }
119
+
120
+ /**
121
+ * Serializes the enum_event_descriptor_v0 message into a Buffer
122
+ */
123
+ public serialize(): Buffer {
124
+ const writer = new BufferWriter();
125
+ writer.writeBigSize(this.type);
126
+
127
+ const dataWriter = new BufferWriter();
128
+ dataWriter.writeUInt16BE(this.outcomes.length);
129
+
130
+ for (const outcome of this.outcomes) {
131
+ dataWriter.writeBigSize(outcome.length);
132
+ dataWriter.writeBytes(Buffer.from(outcome));
133
+ }
134
+
135
+ writer.writeBigSize(dataWriter.size);
136
+ writer.writeBytes(dataWriter.toBuffer());
137
+
138
+ return writer.toBuffer();
139
+ }
140
+ }
141
+
142
+ // Legacy support - keep V0 alias for backward compatibility
143
+ export const EnumEventDescriptorV0 = EnumEventDescriptor;
144
+ export type EnumEventDescriptorV0 = EnumEventDescriptor;
145
+
146
+ /**
147
+ * DigitDecompositionEventDescriptor is a simple enumeration of outcomes.
148
+ * Simplified class name (removed V0 suffix).
149
+ */
150
+ export class DigitDecompositionEventDescriptor
151
+ extends EventDescriptor
152
+ implements IDlcMessage {
153
+ public static type = MessageType.DigitDecompositionEventDescriptor;
154
+
155
+ /**
156
+ * Creates a DigitDecompositionEventDescriptor from JSON data
157
+ * @param json JSON object representing digit decomposition event descriptor
158
+ */
159
+ public static fromJSON(json: any): DigitDecompositionEventDescriptor {
160
+ const instance = new DigitDecompositionEventDescriptor();
161
+ instance.base = json.base || 10;
162
+ instance.isSigned = json.isSigned || json.is_signed || false;
163
+ instance.unit = json.unit || '';
164
+ instance.precision = json.precision || 0;
165
+ instance.nbDigits = json.nbDigits || json.nb_digits || 0;
166
+ return instance;
167
+ }
168
+
169
+ /**
170
+ * Deserializes an digit_decomposition_event_descriptor message
171
+ * @param buf
172
+ */
173
+ public static deserialize(buf: Buffer): DigitDecompositionEventDescriptor {
174
+ const instance = new DigitDecompositionEventDescriptor();
175
+ const reader = new BufferReader(buf);
176
+
177
+ reader.readBigSize(); // read type
178
+ instance.length = reader.readBigSize(); // need to fix this
179
+
180
+ /**
181
+ * NOTE: BASE IS INCORRECT FORMAT FOR DLC SPEC (SHOULD BE BIGSIZE)
182
+ * Will be fixed in oracle_announcement_v1
183
+ * https://github.com/discreetlogcontracts/dlcspecs/blob/master/Oracle.md#version-0-digit_decomposition_event_descriptor
184
+ */
185
+ instance.base = reader.readUInt16BE();
186
+ instance.isSigned = reader.readUInt8() === 1;
187
+ const unitLen = reader.readBigSize();
188
+ const unitBuf = reader.readBytes(Number(unitLen));
189
+ instance.unit = unitBuf.toString();
190
+ instance.precision = reader.readUInt32BE();
191
+ instance.nbDigits = reader.readUInt16BE();
192
+
193
+ return instance;
194
+ }
195
+
196
+ /**
197
+ * The type for digit_decomposition_event_descriptor message. digit_decomposition_event_descriptor = 55306
198
+ */
199
+ public type = DigitDecompositionEventDescriptor.type;
200
+
201
+ public length: bigint;
202
+
203
+ public base: number; // Switch to bigint in oracle_announcement_v1
204
+
205
+ public isSigned: boolean;
206
+
207
+ public unit: string;
208
+
209
+ public precision: number;
210
+
211
+ public nbDigits: number;
212
+
213
+ /**
214
+ * Validates correctness of all fields in the message
215
+ * https://github.com/discreetlogcontracts/dlcspecs/blob/master/Oracle.md
216
+ * @throws Will throw an error if validation fails
217
+ */
218
+ public validate(): void {
219
+ if (this.base <= 0) {
220
+ throw new Error('base must be greater than 0');
221
+ }
222
+
223
+ // TODO: support isSigned according to specifications
224
+ if (this.isSigned) {
225
+ throw new Error('node-dlc does not support isSigned');
226
+ }
227
+ }
228
+
229
+ /**
230
+ * Converts digit_decomposition_event_descriptor to JSON (canonical rust-dlc format)
231
+ */
232
+ public toJSON(): IDigitDecompositionEventDescriptorJSON {
233
+ return {
234
+ digitDecompositionEvent: {
235
+ base: this.base,
236
+ isSigned: this.isSigned,
237
+ unit: this.unit,
238
+ precision: this.precision,
239
+ nbDigits: this.nbDigits,
240
+ },
241
+ } as any;
242
+ }
243
+
244
+ /**
245
+ * Serializes the digit_decomposition_event_descriptor message into a Buffer
246
+ */
247
+ public serialize(): Buffer {
248
+ const writer = new BufferWriter();
249
+ writer.writeBigSize(this.type);
250
+
251
+ const dataWriter = new BufferWriter();
252
+ dataWriter.writeUInt16BE(this.base); // Switch to BigSize in oracle_announcement_v1
253
+ dataWriter.writeUInt8(this.isSigned ? 1 : 0);
254
+ dataWriter.writeBigSize(this.unit.length);
255
+ dataWriter.writeBytes(Buffer.from(this.unit));
256
+ dataWriter.writeUInt32BE(this.precision);
257
+ dataWriter.writeUInt16BE(this.nbDigits);
258
+
259
+ writer.writeBigSize(dataWriter.size);
260
+ writer.writeBytes(dataWriter.toBuffer());
261
+
262
+ return writer.toBuffer();
263
+ }
264
+ }
265
+
266
+ // Legacy support - keep V0 alias for backward compatibility
267
+ export const DigitDecompositionEventDescriptorV0 = DigitDecompositionEventDescriptor;
268
+ export type DigitDecompositionEventDescriptorV0 = DigitDecompositionEventDescriptor;
269
+
270
+ export interface IEnumEventDescriptorJSON {
271
+ enumEvent: {
272
+ outcomes: string[];
273
+ };
274
+ }
275
+
276
+ export interface IDigitDecompositionEventDescriptorJSON {
277
+ type: number;
278
+ base: number;
279
+ isSigned: boolean;
280
+ unit: string;
281
+ precision: number;
282
+ nbDigits: number;
283
+ }
284
+
285
+ // Legacy interface
286
+ export type IEnumEventDescriptorV0JSON = IEnumEventDescriptorJSON;
287
+
288
+ // Legacy interface
289
+ export type IDigitDecompositionEventDescriptorV0JSON = IDigitDecompositionEventDescriptorJSON;
@@ -0,0 +1,216 @@
1
+ import { Sequence, Tx } from '@node-dlc/bitcoin';
2
+ import { BufferReader, BufferWriter, StreamReader } from '@node-dlc/bufio';
3
+
4
+ import { MessageType } from '../MessageType';
5
+ import { bigIntToNumber, toBigInt } from '../util';
6
+ import { IDlcMessage } from './DlcMessage';
7
+
8
+ /**
9
+ * FundingInput contains information about a specific input to be used
10
+ * in a funding transaction, as well as its corresponding on-chain UTXO.
11
+ * Matches rust-dlc FundingInput struct.
12
+ */
13
+ export class FundingInput implements IDlcMessage {
14
+ public static type = MessageType.FundingInput;
15
+
16
+ /**
17
+ * Creates a FundingInput from JSON data (e.g., from test vectors)
18
+ * @param json JSON object representing funding input
19
+ */
20
+ // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any
21
+ public static fromJSON(json: any): FundingInput {
22
+ const instance = new FundingInput();
23
+
24
+ instance.inputSerialId = toBigInt(
25
+ json.inputSerialId || json.input_serial_id,
26
+ );
27
+
28
+ // Parse previous transaction
29
+ const prevTxHex = json.prevTx || json.prev_tx;
30
+ if (prevTxHex) {
31
+ instance.prevTx = Tx.decode(
32
+ StreamReader.fromBuffer(Buffer.from(prevTxHex, 'hex')),
33
+ );
34
+ } else {
35
+ // Create a minimal transaction for test purposes
36
+ // TODO: This should be properly implemented when full test vector support is needed
37
+ const writer = new BufferWriter();
38
+ writer.writeUInt32BE(2); // version
39
+ writer.writeUInt8(0); // input count
40
+ writer.writeUInt8(1); // output count
41
+ writer.writeUInt64BE(BigInt(100000000)); // output value
42
+ writer.writeUInt8(25); // script length
43
+ writer.writeBytes(Buffer.alloc(25)); // script
44
+ writer.writeUInt32BE(0); // locktime
45
+
46
+ const txBytes = writer.toBuffer();
47
+ instance.prevTx = Tx.decode(StreamReader.fromBuffer(txBytes));
48
+ }
49
+
50
+ instance.prevTxVout = json.prevTxVout || json.prev_tx_vout || 0;
51
+ instance.sequence = new Sequence(json.sequence || 0xffffffff);
52
+ instance.maxWitnessLen = json.maxWitnessLen || json.max_witness_len || 108;
53
+
54
+ const redeemScript = json.redeemScript || json.redeem_script || '';
55
+ instance.redeemScript = Buffer.from(redeemScript, 'hex');
56
+
57
+ return instance;
58
+ }
59
+
60
+ /**
61
+ * Deserializes a funding_input message
62
+ * @param buf
63
+ */
64
+ public static deserialize(buf: Buffer): FundingInput {
65
+ const instance = new FundingInput();
66
+ const reader = new BufferReader(buf);
67
+
68
+ reader.readBigSize(); // read type
69
+ instance.length = reader.readBigSize();
70
+ instance.inputSerialId = reader.readUInt64BE();
71
+ const prevTxLen = reader.readUInt16BE();
72
+ instance.prevTx = Tx.decode(
73
+ StreamReader.fromBuffer(reader.readBytes(prevTxLen)),
74
+ );
75
+ instance.prevTxVout = reader.readUInt32BE();
76
+ instance.sequence = new Sequence(reader.readUInt32BE());
77
+ instance.maxWitnessLen = reader.readUInt16BE();
78
+ const redeemScriptLen = reader.readUInt16BE();
79
+ instance.redeemScript = reader.readBytes(redeemScriptLen);
80
+
81
+ return instance;
82
+ }
83
+
84
+ /**
85
+ * Deserializes a funding_input message without TLV wrapper (for use in DlcOffer)
86
+ * This matches rust-dlc behavior where FundingInput is in a vector without individual TLV wrappers
87
+ * @param buf
88
+ */
89
+ public static deserializeBody(buf: Buffer): FundingInput {
90
+ const instance = new FundingInput();
91
+ const reader = new BufferReader(buf);
92
+
93
+ // No TLV type/length to read - funding input body is serialized directly
94
+ instance.inputSerialId = reader.readUInt64BE();
95
+
96
+ // Read prev_tx with BigSize length (to match rust-dlc)
97
+ const prevTxLen = Number(reader.readBigSize());
98
+ instance.prevTx = Tx.decode(
99
+ StreamReader.fromBuffer(reader.readBytes(prevTxLen)),
100
+ );
101
+
102
+ instance.prevTxVout = reader.readUInt32BE();
103
+ instance.sequence = new Sequence(reader.readUInt32BE());
104
+ instance.maxWitnessLen = reader.readUInt16BE();
105
+
106
+ // Test: Read redeem_script with simple u16 length (to match rust-bitcoin ScriptBuf)
107
+ const redeemScriptLen = reader.readUInt16BE();
108
+ instance.redeemScript = reader.readBytes(redeemScriptLen);
109
+
110
+ return instance;
111
+ }
112
+
113
+ /**
114
+ * The type for funding_input message. funding_input = 42772
115
+ */
116
+ public type = FundingInput.type;
117
+
118
+ public length: bigint;
119
+
120
+ public inputSerialId: bigint;
121
+
122
+ public prevTx: Tx;
123
+
124
+ public prevTxVout: number;
125
+
126
+ public sequence: Sequence;
127
+
128
+ public maxWitnessLen: number;
129
+
130
+ public redeemScript: Buffer;
131
+
132
+ public scriptSigLength(): number {
133
+ if (this.redeemScript.length > 0) {
134
+ return 1 + this.redeemScript.length;
135
+ } else {
136
+ return 0;
137
+ }
138
+ }
139
+
140
+ /**
141
+ * Validates correctness of all fields
142
+ * @throws Will throw an error if validation fails
143
+ */
144
+ public validate(): void {
145
+ // 1. Type is set automatically in class
146
+ // 2. Ensure inputs are segwit
147
+ if (!this.prevTx.isSegWit) throw new Error('fundingInput must be segwit');
148
+ }
149
+
150
+ /**
151
+ * Converts funding_input to JSON (canonical rust-dlc format)
152
+ */
153
+ public toJSON(): IFundingInputJSON {
154
+ return {
155
+ inputSerialId: bigIntToNumber(this.inputSerialId),
156
+ prevTx: this.prevTx.serialize().toString('hex'),
157
+ prevTxVout: this.prevTxVout,
158
+ sequence: this.sequence.value,
159
+ maxWitnessLen: this.maxWitnessLen,
160
+ redeemScript: this.redeemScript.toString('hex'),
161
+ };
162
+ }
163
+
164
+ /**
165
+ * Serializes the funding_input message into a Buffer
166
+ */
167
+ public serialize(): Buffer {
168
+ const writer = new BufferWriter();
169
+ writer.writeBigSize(this.type);
170
+
171
+ const dataWriter = new BufferWriter();
172
+ dataWriter.writeUInt64BE(this.inputSerialId);
173
+ dataWriter.writeUInt16BE(this.prevTx.serialize().length);
174
+ dataWriter.writeBytes(this.prevTx.serialize());
175
+ dataWriter.writeUInt32BE(this.prevTxVout);
176
+ dataWriter.writeUInt32BE(this.sequence.value);
177
+ dataWriter.writeUInt16BE(this.maxWitnessLen);
178
+ dataWriter.writeUInt16BE(this.redeemScript.length);
179
+ dataWriter.writeBytes(this.redeemScript);
180
+
181
+ writer.writeBigSize(dataWriter.size);
182
+ writer.writeBytes(dataWriter.toBuffer());
183
+
184
+ return writer.toBuffer();
185
+ }
186
+
187
+ public serializeBody(): Buffer {
188
+ // Serialize funding input body without TLV wrapper (for embedding in DlcOffer)
189
+ // This matches rust-dlc behavior where FundingInput.write() doesn't add type_id
190
+ const writer = new BufferWriter();
191
+ writer.writeUInt64BE(this.inputSerialId);
192
+
193
+ // Use BigSize for prev_tx length to match rust-dlc (prev_tx, vec)
194
+ writer.writeBigSize(this.prevTx.serialize().length);
195
+ writer.writeBytes(this.prevTx.serialize());
196
+
197
+ writer.writeUInt32BE(this.prevTxVout);
198
+ writer.writeUInt32BE(this.sequence.value);
199
+ writer.writeUInt16BE(this.maxWitnessLen);
200
+
201
+ // Test: Use simple u16 length for redeem_script to match rust-bitcoin ScriptBuf
202
+ writer.writeUInt16BE(this.redeemScript.length);
203
+ writer.writeBytes(this.redeemScript);
204
+
205
+ return writer.toBuffer();
206
+ }
207
+ }
208
+
209
+ export interface IFundingInputJSON {
210
+ inputSerialId: number;
211
+ prevTx: string;
212
+ prevTxVout: number;
213
+ sequence: number;
214
+ maxWitnessLen: number;
215
+ redeemScript: string;
216
+ }
@@ -0,0 +1,98 @@
1
+ import { BufferReader, BufferWriter } from '@node-dlc/bufio';
2
+
3
+ import { MessageType } from '../MessageType';
4
+ import { IDlcMessage } from './DlcMessage';
5
+ import { IScriptWitnessV0JSON, ScriptWitnessV0 } from './ScriptWitnessV0';
6
+
7
+ /**
8
+ * FundingSignatures contains signatures of the funding transaction
9
+ * and any necessary information linking the signatures to their inputs.
10
+ */
11
+ export class FundingSignatures implements IDlcMessage {
12
+ public static type = MessageType.FundingSignatures;
13
+
14
+ /**
15
+ * Deserializes a funding_signatures message
16
+ * @param buf
17
+ */
18
+ public static deserialize(buf: Buffer): FundingSignatures {
19
+ const instance = new FundingSignatures();
20
+ const reader = new BufferReader(buf);
21
+
22
+ // reader.readBigSize(); // read type
23
+ // instance.length = reader.readBigSize();
24
+ const numWitnesses = Number(reader.readBigSize());
25
+
26
+ for (let i = 0; i < numWitnesses; i++) {
27
+ const numWitnessElements = Number(reader.readBigSize());
28
+ const witnessElements: ScriptWitnessV0[] = [];
29
+ for (let j = 0; j < numWitnessElements; j++) {
30
+ // Read witness element directly: [bigsize:len][len*byte:witness]
31
+ const witnessLength = Number(reader.readBigSize());
32
+ const witnessBytes = reader.readBytes(witnessLength);
33
+
34
+ const witness = new ScriptWitnessV0();
35
+ witness.length = witnessLength;
36
+ witness.witness = witnessBytes;
37
+ witnessElements.push(witness);
38
+ }
39
+ instance.witnessElements.push(witnessElements);
40
+ }
41
+
42
+ return instance;
43
+ }
44
+
45
+ /**
46
+ * The type for funding_signatures message. funding_signatures = 42776
47
+ */
48
+ public type = FundingSignatures.type;
49
+
50
+ public length: bigint;
51
+
52
+ public witnessElements: ScriptWitnessV0[][] = [];
53
+
54
+ /**
55
+ * Converts funding_signatures to JSON (canonical rust-dlc format)
56
+ */
57
+ public toJSON(): IFundingSignaturesJSON {
58
+ return {
59
+ fundingSignatures: this.witnessElements.map((witnessElement) => {
60
+ return {
61
+ witnessElements: witnessElement.map((witness) => witness.toJSON()),
62
+ };
63
+ }),
64
+ };
65
+ }
66
+
67
+ /**
68
+ * Serializes the funding_signatures message into a Buffer
69
+ */
70
+ public serialize(): Buffer {
71
+ const writer = new BufferWriter();
72
+ // writer.writeBigSize(this.type);
73
+
74
+ const dataWriter = new BufferWriter();
75
+
76
+ dataWriter.writeBigSize(this.witnessElements.length);
77
+
78
+ for (const witnessElements of this.witnessElements) {
79
+ dataWriter.writeBigSize(witnessElements.length);
80
+ for (const witnessElement of witnessElements) {
81
+ dataWriter.writeBytes(witnessElement.serialize());
82
+ }
83
+ }
84
+
85
+ // writer.writeBigSize(dataWriter.size);
86
+ writer.writeBytes(dataWriter.toBuffer());
87
+
88
+ return writer.toBuffer();
89
+ }
90
+ }
91
+
92
+ export interface IFundingSignaturesJSON {
93
+ fundingSignatures: IFundingSignatureJSON[];
94
+ }
95
+
96
+ export interface IFundingSignatureJSON {
97
+ witnessElements: IScriptWitnessV0JSON[];
98
+ }
@@ -0,0 +1,6 @@
1
+ import { MessageType } from '../MessageType';
2
+
3
+ export interface IWireMessage {
4
+ type: MessageType;
5
+ serialize(): Buffer;
6
+ }