@atomicfinance/bitcoin-dlc-provider 4.0.0 → 4.0.1

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 (802) hide show
  1. package/.turbo/turbo-lint.log +1 -0
  2. package/.yalc/@node-dlc/bitcoin/.nyc_output/982e80bf-a70c-452f-b63d-d749ae385531.json +1 -0
  3. package/.yalc/@node-dlc/bitcoin/.nyc_output/processinfo/982e80bf-a70c-452f-b63d-d749ae385531.json +1 -0
  4. package/.yalc/@node-dlc/bitcoin/.nyc_output/processinfo/index.json +1 -0
  5. package/.yalc/@node-dlc/bitcoin/README.md +11 -0
  6. package/.yalc/@node-dlc/bitcoin/__tests__/bitcoin/amount.spec.ts +330 -0
  7. package/.yalc/@node-dlc/bitcoin/__tests__/bitcoin/value.spec.ts +320 -0
  8. package/.yalc/@node-dlc/bitcoin/__tests__/tsconfig.json +8 -0
  9. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/Amount.ts.html +290 -0
  10. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/Base58.ts.html +269 -0
  11. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/Base58Check.ts.html +182 -0
  12. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/BitcoinError.ts.html +173 -0
  13. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/BitcoinErrorCode.ts.html +110 -0
  14. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/HashByteOrder.ts.html +143 -0
  15. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/HashValue.ts.html +350 -0
  16. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/LexicographicalSorters.ts.html +191 -0
  17. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/LockTime.ts.html +386 -0
  18. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/OpCodes.ts.html +437 -0
  19. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/OutPoint.ts.html +383 -0
  20. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/Script.ts.html +1607 -0
  21. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/Sequence.ts.html +713 -0
  22. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/SigHashType.ts.html +137 -0
  23. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/Stack.ts.html +323 -0
  24. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/TimeLockMode.ts.html +128 -0
  25. package/.yalc/@node-dlc/{messaging/coverage/lcov-report/lib/serde/SerdeUtils.ts.html → bitcoin/coverage/lcov-report/Tx.ts.html} +617 -491
  26. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/TxBuilder.ts.html +971 -0
  27. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/TxIn.ts.html +425 -0
  28. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/TxOut.ts.html +341 -0
  29. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/Value.ts.html +683 -0
  30. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/Wif.ts.html +311 -0
  31. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/Witness.ts.html +275 -0
  32. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/base.css +224 -0
  33. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/block-navigation.js +79 -0
  34. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/favicon.png +0 -0
  35. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/index.html +126 -0
  36. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/index.ts.html +164 -0
  37. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/prettify.css +1 -0
  38. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/prettify.js +2 -0
  39. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  40. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/sorter.js +170 -0
  41. package/.yalc/@node-dlc/bitcoin/coverage/lcov.info +123 -0
  42. package/.yalc/@node-dlc/bitcoin/dist/Amount.d.ts +48 -0
  43. package/.yalc/@node-dlc/bitcoin/dist/Amount.js +68 -0
  44. package/.yalc/@node-dlc/bitcoin/dist/Amount.js.map +1 -0
  45. package/.yalc/@node-dlc/bitcoin/dist/Base58.d.ts +22 -0
  46. package/.yalc/@node-dlc/bitcoin/dist/Base58.js +62 -0
  47. package/.yalc/@node-dlc/bitcoin/dist/Base58.js.map +1 -0
  48. package/.yalc/@node-dlc/bitcoin/dist/Base58Check.d.ts +14 -0
  49. package/.yalc/@node-dlc/bitcoin/dist/Base58Check.js +36 -0
  50. package/.yalc/@node-dlc/bitcoin/dist/Base58Check.js.map +1 -0
  51. package/.yalc/@node-dlc/bitcoin/dist/BitcoinError.d.ts +6 -0
  52. package/.yalc/@node-dlc/bitcoin/dist/BitcoinError.js +36 -0
  53. package/.yalc/@node-dlc/bitcoin/dist/BitcoinError.js.map +1 -0
  54. package/.yalc/@node-dlc/bitcoin/dist/BitcoinErrorCode.d.ts +10 -0
  55. package/.yalc/@node-dlc/bitcoin/dist/BitcoinErrorCode.js +15 -0
  56. package/.yalc/@node-dlc/bitcoin/dist/BitcoinErrorCode.js.map +1 -0
  57. package/.yalc/@node-dlc/bitcoin/dist/Block.d.ts +19 -0
  58. package/.yalc/@node-dlc/bitcoin/dist/Block.js +3 -0
  59. package/.yalc/@node-dlc/bitcoin/dist/Block.js.map +1 -0
  60. package/.yalc/@node-dlc/bitcoin/dist/HashByteOrder.d.ts +20 -0
  61. package/.yalc/@node-dlc/bitcoin/dist/HashByteOrder.js +25 -0
  62. package/.yalc/@node-dlc/bitcoin/dist/HashByteOrder.js.map +1 -0
  63. package/.yalc/@node-dlc/bitcoin/dist/HashValue.d.ts +55 -0
  64. package/.yalc/@node-dlc/bitcoin/dist/HashValue.js +82 -0
  65. package/.yalc/@node-dlc/bitcoin/dist/HashValue.js.map +1 -0
  66. package/.yalc/@node-dlc/bitcoin/dist/ICloneable.d.ts +3 -0
  67. package/.yalc/@node-dlc/bitcoin/dist/ICloneable.js +3 -0
  68. package/.yalc/@node-dlc/bitcoin/dist/ICloneable.js.map +1 -0
  69. package/.yalc/@node-dlc/bitcoin/dist/LexicographicalSorters.d.ts +18 -0
  70. package/.yalc/@node-dlc/bitcoin/dist/LexicographicalSorters.js +41 -0
  71. package/.yalc/@node-dlc/bitcoin/dist/LexicographicalSorters.js.map +1 -0
  72. package/.yalc/@node-dlc/bitcoin/dist/LockTime.d.ts +61 -0
  73. package/.yalc/@node-dlc/bitcoin/dist/LockTime.js +94 -0
  74. package/.yalc/@node-dlc/bitcoin/dist/LockTime.js.map +1 -0
  75. package/.yalc/@node-dlc/bitcoin/dist/OpCodes.d.ts +102 -0
  76. package/.yalc/@node-dlc/bitcoin/dist/OpCodes.js +116 -0
  77. package/.yalc/@node-dlc/bitcoin/dist/OpCodes.js.map +1 -0
  78. package/.yalc/@node-dlc/bitcoin/dist/OutPoint.d.ts +57 -0
  79. package/.yalc/@node-dlc/bitcoin/dist/OutPoint.js +88 -0
  80. package/.yalc/@node-dlc/bitcoin/dist/OutPoint.js.map +1 -0
  81. package/.yalc/@node-dlc/bitcoin/dist/Script.d.ts +185 -0
  82. package/.yalc/@node-dlc/bitcoin/dist/Script.js +404 -0
  83. package/.yalc/@node-dlc/bitcoin/dist/Script.js.map +1 -0
  84. package/.yalc/@node-dlc/bitcoin/dist/ScriptCmd.d.ts +3 -0
  85. package/.yalc/@node-dlc/bitcoin/dist/ScriptCmd.js +3 -0
  86. package/.yalc/@node-dlc/bitcoin/dist/ScriptCmd.js.map +1 -0
  87. package/.yalc/@node-dlc/bitcoin/dist/Sequence.d.ts +116 -0
  88. package/.yalc/@node-dlc/bitcoin/dist/Sequence.js +187 -0
  89. package/.yalc/@node-dlc/bitcoin/dist/Sequence.js.map +1 -0
  90. package/.yalc/@node-dlc/bitcoin/dist/SigHashType.d.ts +7 -0
  91. package/.yalc/@node-dlc/bitcoin/dist/SigHashType.js +27 -0
  92. package/.yalc/@node-dlc/bitcoin/dist/SigHashType.js.map +1 -0
  93. package/.yalc/@node-dlc/bitcoin/dist/SizeResult.d.ts +5 -0
  94. package/.yalc/@node-dlc/bitcoin/dist/SizeResult.js +3 -0
  95. package/.yalc/@node-dlc/bitcoin/dist/SizeResult.js.map +1 -0
  96. package/.yalc/@node-dlc/bitcoin/dist/Sorter.d.ts +1 -0
  97. package/.yalc/@node-dlc/bitcoin/dist/Sorter.js +3 -0
  98. package/.yalc/@node-dlc/bitcoin/dist/Sorter.js.map +1 -0
  99. package/.yalc/@node-dlc/bitcoin/dist/Stack.d.ts +15 -0
  100. package/.yalc/@node-dlc/bitcoin/dist/Stack.js +77 -0
  101. package/.yalc/@node-dlc/bitcoin/dist/Stack.js.map +1 -0
  102. package/.yalc/@node-dlc/bitcoin/dist/TimeLockMode.d.ts +15 -0
  103. package/.yalc/@node-dlc/bitcoin/dist/TimeLockMode.js +20 -0
  104. package/.yalc/@node-dlc/bitcoin/dist/TimeLockMode.js.map +1 -0
  105. package/.yalc/@node-dlc/bitcoin/dist/Tx.d.ts +150 -0
  106. package/.yalc/@node-dlc/bitcoin/dist/Tx.js +408 -0
  107. package/.yalc/@node-dlc/bitcoin/dist/Tx.js.map +1 -0
  108. package/.yalc/@node-dlc/bitcoin/dist/TxBuilder.d.ts +110 -0
  109. package/.yalc/@node-dlc/bitcoin/dist/TxBuilder.js +238 -0
  110. package/.yalc/@node-dlc/bitcoin/dist/TxBuilder.js.map +1 -0
  111. package/.yalc/@node-dlc/bitcoin/dist/TxIn.d.ts +71 -0
  112. package/.yalc/@node-dlc/bitcoin/dist/TxIn.js +79 -0
  113. package/.yalc/@node-dlc/bitcoin/dist/TxIn.js.map +1 -0
  114. package/.yalc/@node-dlc/bitcoin/dist/TxOut.d.ts +57 -0
  115. package/.yalc/@node-dlc/bitcoin/dist/TxOut.js +68 -0
  116. package/.yalc/@node-dlc/bitcoin/dist/TxOut.js.map +1 -0
  117. package/.yalc/@node-dlc/bitcoin/dist/Value.d.ts +122 -0
  118. package/.yalc/@node-dlc/bitcoin/dist/Value.js +180 -0
  119. package/.yalc/@node-dlc/bitcoin/dist/Value.js.map +1 -0
  120. package/.yalc/@node-dlc/bitcoin/dist/Wif.d.ts +41 -0
  121. package/.yalc/@node-dlc/bitcoin/dist/Wif.js +62 -0
  122. package/.yalc/@node-dlc/bitcoin/dist/Wif.js.map +1 -0
  123. package/.yalc/@node-dlc/bitcoin/dist/Witness.d.ts +41 -0
  124. package/.yalc/@node-dlc/bitcoin/dist/Witness.js +63 -0
  125. package/.yalc/@node-dlc/bitcoin/dist/Witness.js.map +1 -0
  126. package/.yalc/@node-dlc/bitcoin/dist/index.d.ts +28 -0
  127. package/.yalc/@node-dlc/bitcoin/dist/index.js +45 -0
  128. package/.yalc/@node-dlc/bitcoin/dist/index.js.map +1 -0
  129. package/.yalc/@node-dlc/bitcoin/lib/Amount.ts +70 -0
  130. package/.yalc/@node-dlc/bitcoin/lib/Base58.ts +63 -0
  131. package/.yalc/@node-dlc/bitcoin/lib/Base58Check.ts +34 -0
  132. package/.yalc/@node-dlc/bitcoin/lib/BitcoinError.ts +31 -0
  133. package/.yalc/@node-dlc/bitcoin/lib/BitcoinErrorCode.ts +10 -0
  134. package/.yalc/@node-dlc/bitcoin/lib/Block.ts +20 -0
  135. package/.yalc/@node-dlc/bitcoin/lib/HashByteOrder.ts +21 -0
  136. package/.yalc/@node-dlc/bitcoin/lib/HashValue.ts +90 -0
  137. package/.yalc/@node-dlc/bitcoin/lib/ICloneable.ts +3 -0
  138. package/.yalc/@node-dlc/bitcoin/lib/LexicographicalSorters.ts +37 -0
  139. package/.yalc/@node-dlc/bitcoin/lib/LockTime.ts +102 -0
  140. package/.yalc/@node-dlc/bitcoin/lib/OpCodes.ts +119 -0
  141. package/.yalc/@node-dlc/bitcoin/lib/OutPoint.ts +101 -0
  142. package/.yalc/@node-dlc/bitcoin/lib/Script.ts +509 -0
  143. package/.yalc/@node-dlc/bitcoin/lib/ScriptCmd.ts +3 -0
  144. package/.yalc/@node-dlc/bitcoin/lib/Sequence.ts +211 -0
  145. package/.yalc/@node-dlc/bitcoin/lib/SigHashType.ts +19 -0
  146. package/.yalc/@node-dlc/bitcoin/lib/SizeResult.ts +5 -0
  147. package/.yalc/@node-dlc/bitcoin/lib/Sorter.ts +1 -0
  148. package/.yalc/@node-dlc/bitcoin/lib/Stack.ts +81 -0
  149. package/.yalc/@node-dlc/bitcoin/lib/TimeLockMode.ts +16 -0
  150. package/.yalc/@node-dlc/bitcoin/lib/Tx.ts +480 -0
  151. package/.yalc/@node-dlc/bitcoin/lib/TxBuilder.ts +297 -0
  152. package/.yalc/@node-dlc/bitcoin/lib/TxIn.ts +115 -0
  153. package/.yalc/@node-dlc/bitcoin/lib/TxOut.ts +87 -0
  154. package/.yalc/@node-dlc/bitcoin/lib/Value.ts +201 -0
  155. package/.yalc/@node-dlc/bitcoin/lib/Wif.ts +77 -0
  156. package/.yalc/@node-dlc/bitcoin/lib/Witness.ts +65 -0
  157. package/.yalc/@node-dlc/bitcoin/lib/index.ts +28 -0
  158. package/.yalc/@node-dlc/bitcoin/package.json +31 -0
  159. package/.yalc/@node-dlc/bitcoin/tsconfig.json +8 -0
  160. package/.yalc/@node-dlc/bitcoin/yalc.sig +1 -0
  161. package/.yalc/@node-dlc/bufio/.eslintrc +6 -0
  162. package/.yalc/@node-dlc/bufio/.nyc_output/3c26c5b3-2a5e-4a53-88d4-06f4a5c339f7.json +1 -0
  163. package/.yalc/@node-dlc/bufio/.nyc_output/processinfo/3c26c5b3-2a5e-4a53-88d4-06f4a5c339f7.json +1 -0
  164. package/.yalc/@node-dlc/bufio/.nyc_output/processinfo/index.json +1 -0
  165. package/.yalc/@node-dlc/bufio/README.md +68 -0
  166. package/.yalc/@node-dlc/bufio/__tests__/BufferReader.spec.ts +548 -0
  167. package/.yalc/@node-dlc/bufio/__tests__/BufferWriter.spec.ts +530 -0
  168. package/.yalc/@node-dlc/bufio/__tests__/Hex.spec.ts +51 -0
  169. package/.yalc/@node-dlc/bufio/__tests__/StreamReader.spec.ts +133 -0
  170. package/.yalc/@node-dlc/bufio/__tests__/bigFromBufBE.spec.ts +14 -0
  171. package/.yalc/@node-dlc/bufio/__tests__/bigFromBufLE.spec.ts +14 -0
  172. package/.yalc/@node-dlc/bufio/__tests__/bigToBufBE.spec.ts +15 -0
  173. package/.yalc/@node-dlc/bufio/__tests__/bigToBufLE.spec.ts +14 -0
  174. package/.yalc/@node-dlc/bufio/__tests__/encodeVarInt.spec.ts +25 -0
  175. package/.yalc/@node-dlc/bufio/__tests__/tsconfig.json +7 -0
  176. package/.yalc/@node-dlc/bufio/__tests__/varIntBytes.spec.ts +34 -0
  177. package/.yalc/@node-dlc/bufio/coverage/lcov-report/BufferReader.ts.html +1142 -0
  178. package/.yalc/@node-dlc/bufio/coverage/lcov-report/BufferWriter.ts.html +953 -0
  179. package/.yalc/@node-dlc/bufio/coverage/lcov-report/Hex.ts.html +323 -0
  180. package/.yalc/@node-dlc/bufio/coverage/lcov-report/StreamReader.ts.html +620 -0
  181. package/.yalc/@node-dlc/bufio/coverage/lcov-report/base.css +224 -0
  182. package/.yalc/@node-dlc/bufio/coverage/lcov-report/bigFromBufBE.ts.html +89 -0
  183. package/.yalc/@node-dlc/bufio/coverage/lcov-report/bigFromBufLE.ts.html +95 -0
  184. package/.yalc/@node-dlc/bufio/coverage/lcov-report/bigToBufBE.ts.html +98 -0
  185. package/.yalc/@node-dlc/bufio/coverage/lcov-report/bigToBufLE.ts.html +95 -0
  186. package/.yalc/@node-dlc/bufio/coverage/lcov-report/block-navigation.js +79 -0
  187. package/.yalc/@node-dlc/bufio/coverage/lcov-report/bufToStream.ts.html +113 -0
  188. package/.yalc/@node-dlc/bufio/coverage/lcov-report/encodeVarInt.ts.html +203 -0
  189. package/.yalc/@node-dlc/bufio/coverage/lcov-report/favicon.png +0 -0
  190. package/.yalc/@node-dlc/bufio/coverage/lcov-report/index.html +261 -0
  191. package/.yalc/@node-dlc/bufio/coverage/lcov-report/prettify.css +1 -0
  192. package/.yalc/@node-dlc/bufio/coverage/lcov-report/prettify.js +2 -0
  193. package/.yalc/@node-dlc/bufio/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  194. package/.yalc/@node-dlc/bufio/coverage/lcov-report/sorter.js +170 -0
  195. package/.yalc/@node-dlc/bufio/coverage/lcov-report/varIntBytes.ts.html +116 -0
  196. package/.yalc/@node-dlc/bufio/coverage/lcov.info +747 -0
  197. package/.yalc/@node-dlc/bufio/dist/BufferReader.d.ts +155 -0
  198. package/.yalc/@node-dlc/bufio/dist/BufferReader.js +346 -0
  199. package/.yalc/@node-dlc/bufio/dist/BufferReader.js.map +1 -0
  200. package/.yalc/@node-dlc/bufio/dist/BufferWriter.d.ts +143 -0
  201. package/.yalc/@node-dlc/bufio/dist/BufferWriter.js +279 -0
  202. package/.yalc/@node-dlc/bufio/dist/BufferWriter.js.map +1 -0
  203. package/.yalc/@node-dlc/bufio/dist/Hex.d.ts +13 -0
  204. package/.yalc/@node-dlc/bufio/dist/Hex.js +78 -0
  205. package/.yalc/@node-dlc/bufio/dist/Hex.js.map +1 -0
  206. package/.yalc/@node-dlc/bufio/dist/StreamReader.d.ts +111 -0
  207. package/.yalc/@node-dlc/bufio/dist/StreamReader.js +180 -0
  208. package/.yalc/@node-dlc/bufio/dist/StreamReader.js.map +1 -0
  209. package/.yalc/@node-dlc/bufio/dist/bigFromBufBE.d.ts +2 -0
  210. package/.yalc/@node-dlc/bufio/dist/bigFromBufBE.js +8 -0
  211. package/.yalc/@node-dlc/bufio/dist/bigFromBufBE.js.map +1 -0
  212. package/.yalc/@node-dlc/bufio/dist/bigFromBufLE.d.ts +2 -0
  213. package/.yalc/@node-dlc/bufio/dist/bigFromBufLE.js +9 -0
  214. package/.yalc/@node-dlc/bufio/dist/bigFromBufLE.js.map +1 -0
  215. package/.yalc/@node-dlc/bufio/dist/bigToBufBE.d.ts +2 -0
  216. package/.yalc/@node-dlc/bufio/dist/bigToBufBE.js +13 -0
  217. package/.yalc/@node-dlc/bufio/dist/bigToBufBE.js.map +1 -0
  218. package/.yalc/@node-dlc/bufio/dist/bigToBufLE.d.ts +2 -0
  219. package/.yalc/@node-dlc/bufio/dist/bigToBufLE.js +9 -0
  220. package/.yalc/@node-dlc/bufio/dist/bigToBufLE.js.map +1 -0
  221. package/.yalc/@node-dlc/bufio/dist/bufToStream.d.ts +7 -0
  222. package/.yalc/@node-dlc/bufio/dist/bufToStream.js +15 -0
  223. package/.yalc/@node-dlc/bufio/dist/bufToStream.js.map +1 -0
  224. package/.yalc/@node-dlc/bufio/dist/encodeVarInt.d.ts +12 -0
  225. package/.yalc/@node-dlc/bufio/dist/encodeVarInt.js +46 -0
  226. package/.yalc/@node-dlc/bufio/dist/encodeVarInt.js.map +1 -0
  227. package/.yalc/@node-dlc/bufio/dist/index.d.ts +11 -0
  228. package/.yalc/@node-dlc/bufio/dist/index.js +28 -0
  229. package/.yalc/@node-dlc/bufio/dist/index.js.map +1 -0
  230. package/.yalc/@node-dlc/bufio/dist/varIntBytes.d.ts +5 -0
  231. package/.yalc/@node-dlc/bufio/dist/varIntBytes.js +22 -0
  232. package/.yalc/@node-dlc/bufio/dist/varIntBytes.js.map +1 -0
  233. package/.yalc/@node-dlc/bufio/lib/BufferReader.ts +354 -0
  234. package/.yalc/@node-dlc/bufio/lib/BufferWriter.ts +291 -0
  235. package/.yalc/@node-dlc/bufio/lib/Hex.ts +81 -0
  236. package/.yalc/@node-dlc/bufio/lib/StreamReader.ts +180 -0
  237. package/.yalc/@node-dlc/bufio/lib/bigFromBufBE.ts +3 -0
  238. package/.yalc/@node-dlc/bufio/lib/bigFromBufLE.ts +5 -0
  239. package/.yalc/@node-dlc/bufio/lib/bigToBufBE.ts +6 -0
  240. package/.yalc/@node-dlc/bufio/lib/bigToBufLE.ts +5 -0
  241. package/.yalc/@node-dlc/bufio/lib/bufToStream.ts +11 -0
  242. package/.yalc/@node-dlc/bufio/lib/encodeVarInt.ts +41 -0
  243. package/.yalc/@node-dlc/bufio/lib/index.ts +11 -0
  244. package/.yalc/@node-dlc/bufio/lib/varIntBytes.ts +12 -0
  245. package/.yalc/@node-dlc/bufio/package.json +27 -0
  246. package/.yalc/@node-dlc/bufio/tsconfig-build.json +7 -0
  247. package/.yalc/@node-dlc/bufio/tsconfig.json +7 -0
  248. package/.yalc/@node-dlc/bufio/yalc.sig +1 -0
  249. package/.yalc/@node-dlc/core/.nyc_output/687a3c14-9765-45fd-a1fe-f7db3d56fee4.json +1 -0
  250. package/.yalc/@node-dlc/core/.nyc_output/processinfo/687a3c14-9765-45fd-a1fe-f7db3d56fee4.json +1 -0
  251. package/.yalc/@node-dlc/core/.nyc_output/processinfo/index.json +1 -0
  252. package/.yalc/@node-dlc/core/README.md +11 -0
  253. package/.yalc/@node-dlc/core/__tests__/core.spec.ts +7 -0
  254. package/.yalc/@node-dlc/core/__tests__/dlc/CETCalculator.spec.ts +1029 -0
  255. package/.yalc/@node-dlc/core/__tests__/dlc/CoinSelect.spec.ts +179 -0
  256. package/.yalc/@node-dlc/core/__tests__/dlc/PolynomialPayoutCurve.spec.ts +345 -0
  257. package/.yalc/@node-dlc/core/__tests__/dlc/TxBuilder.spec.ts +424 -0
  258. package/.yalc/@node-dlc/core/__tests__/dlc/finance/Builder.spec.ts +492 -0
  259. package/.yalc/@node-dlc/core/__tests__/dlc/finance/CoveredCall.spec.ts +112 -0
  260. package/.yalc/@node-dlc/core/__tests__/dlc/finance/CsoInfo.spec.ts +1124 -0
  261. package/.yalc/@node-dlc/core/__tests__/dlc/finance/LongCall.spec.ts +55 -0
  262. package/.yalc/@node-dlc/core/__tests__/dlc/finance/LongPut.spec.ts +55 -0
  263. package/.yalc/@node-dlc/core/__tests__/dlc/finance/OptionInfo.spec.ts +226 -0
  264. package/.yalc/@node-dlc/core/__tests__/dlc/finance/ShortPut.spec.ts +62 -0
  265. package/.yalc/@node-dlc/core/__tests__/tsconfig.json +8 -0
  266. package/.yalc/@node-dlc/core/__tests__/utils/precision.spec.ts +40 -0
  267. package/.yalc/@node-dlc/core/coverage/lcov-report/base.css +224 -0
  268. package/.yalc/@node-dlc/core/coverage/lcov-report/block-navigation.js +79 -0
  269. package/.yalc/@node-dlc/core/coverage/lcov-report/favicon.png +0 -0
  270. package/.yalc/@node-dlc/core/coverage/lcov-report/index.html +171 -0
  271. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/AsyncProcessingQueue.ts.html +269 -0
  272. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/Base32.ts.html +86 -0
  273. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/BigIntUtils.ts.html +86 -0
  274. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/BitField.ts.html +86 -0
  275. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/ChannelId.ts.html +86 -0
  276. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/LinkedList.ts.html +413 -0
  277. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/LinkedListNode.ts.html +122 -0
  278. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/Queue.ts.html +188 -0
  279. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/ShortChannelId.ts.html +86 -0
  280. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/ShortChannelIdUtils.ts.html +107 -0
  281. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/dlc/CETCalculator.ts.html +1430 -0
  282. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/dlc/CoinSelect.ts.html +431 -0
  283. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/dlc/HyperbolaPayoutCurve.ts.html +644 -0
  284. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/dlc/PolynomialPayoutCurve.ts.html +878 -0
  285. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/dlc/TxBuilder.ts.html +1088 -0
  286. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/dlc/TxFinalizer.ts.html +731 -0
  287. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/dlc/finance/Builder.ts.html +2270 -0
  288. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/dlc/finance/CoveredCall.ts.html +410 -0
  289. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/dlc/finance/CsoInfo.ts.html +1574 -0
  290. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/dlc/finance/LinearPayout.ts.html +362 -0
  291. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/dlc/finance/LongCall.ts.html +302 -0
  292. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/dlc/finance/LongPut.ts.html +302 -0
  293. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/dlc/finance/OptionInfo.ts.html +626 -0
  294. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/dlc/finance/ShortPut.ts.html +305 -0
  295. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/dlc/finance/index.html +216 -0
  296. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/dlc/index.html +186 -0
  297. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/index.html +261 -0
  298. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/index.ts.html +278 -0
  299. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/lightning/ChannelId.ts.html +242 -0
  300. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/lightning/ChannelKeys.ts.html +407 -0
  301. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/lightning/CommitmentNumber.ts.html +362 -0
  302. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/lightning/CommitmentSecret.ts.html +203 -0
  303. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/lightning/CommitmentSecretStore.ts.html +332 -0
  304. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/lightning/Htlc.ts.html +236 -0
  305. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/lightning/HtlcDirection.ts.html +131 -0
  306. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/lightning/ScriptFactory.ts.html +530 -0
  307. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/lightning/TxFactory.ts.html +1094 -0
  308. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/lightning/index.html +231 -0
  309. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/utils/BigIntUtils.ts.html +272 -0
  310. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/utils/Precision.ts.html +149 -0
  311. package/.yalc/@node-dlc/{messaging/coverage/lcov-report/lib/serde → core/coverage/lcov-report/lib/utils}/index.html +37 -22
  312. package/.yalc/@node-dlc/core/coverage/lcov-report/prettify.css +1 -0
  313. package/.yalc/@node-dlc/core/coverage/lcov-report/prettify.js +2 -0
  314. package/.yalc/@node-dlc/core/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  315. package/.yalc/@node-dlc/core/coverage/lcov-report/sorter.js +170 -0
  316. package/.yalc/@node-dlc/core/coverage/lcov.info +2426 -0
  317. package/.yalc/@node-dlc/core/dist/AsyncProcessingQueue.d.ts +22 -0
  318. package/.yalc/@node-dlc/core/dist/AsyncProcessingQueue.js +55 -0
  319. package/.yalc/@node-dlc/core/dist/AsyncProcessingQueue.js.map +1 -0
  320. package/.yalc/@node-dlc/core/dist/Base32.d.ts +1 -0
  321. package/.yalc/@node-dlc/core/dist/Base32.js +7 -0
  322. package/.yalc/@node-dlc/core/dist/Base32.js.map +1 -0
  323. package/.yalc/@node-dlc/core/dist/BigIntUtils.d.ts +1 -0
  324. package/.yalc/@node-dlc/core/dist/BigIntUtils.js +8 -0
  325. package/.yalc/@node-dlc/core/dist/BigIntUtils.js.map +1 -0
  326. package/.yalc/@node-dlc/core/dist/BitField.d.ts +1 -0
  327. package/.yalc/@node-dlc/core/dist/BitField.js +7 -0
  328. package/.yalc/@node-dlc/core/dist/BitField.js.map +1 -0
  329. package/.yalc/@node-dlc/core/dist/ChannelId.d.ts +1 -0
  330. package/.yalc/@node-dlc/core/dist/ChannelId.js +7 -0
  331. package/.yalc/@node-dlc/core/dist/ChannelId.js.map +1 -0
  332. package/.yalc/@node-dlc/core/dist/LinkedList.d.ts +30 -0
  333. package/.yalc/@node-dlc/core/dist/LinkedList.js +104 -0
  334. package/.yalc/@node-dlc/core/dist/LinkedList.js.map +1 -0
  335. package/.yalc/@node-dlc/core/dist/LinkedListNode.d.ts +9 -0
  336. package/.yalc/@node-dlc/core/dist/LinkedListNode.js +15 -0
  337. package/.yalc/@node-dlc/core/dist/LinkedListNode.js.map +1 -0
  338. package/.yalc/@node-dlc/core/dist/Queue.d.ts +22 -0
  339. package/.yalc/@node-dlc/core/dist/Queue.js +38 -0
  340. package/.yalc/@node-dlc/core/dist/Queue.js.map +1 -0
  341. package/.yalc/@node-dlc/core/dist/ShortChannelId.d.ts +1 -0
  342. package/.yalc/@node-dlc/core/dist/ShortChannelId.js +7 -0
  343. package/.yalc/@node-dlc/core/dist/ShortChannelId.js.map +1 -0
  344. package/.yalc/@node-dlc/core/dist/ShortChannelIdUtils.d.ts +1 -0
  345. package/.yalc/@node-dlc/core/dist/ShortChannelIdUtils.js +12 -0
  346. package/.yalc/@node-dlc/core/dist/ShortChannelIdUtils.js.map +1 -0
  347. package/.yalc/@node-dlc/core/dist/dlc/CETCalculator.d.ts +50 -0
  348. package/.yalc/@node-dlc/core/dist/dlc/CETCalculator.js +332 -0
  349. package/.yalc/@node-dlc/core/dist/dlc/CETCalculator.js.map +1 -0
  350. package/.yalc/@node-dlc/core/dist/dlc/CoinSelect.d.ts +23 -0
  351. package/.yalc/@node-dlc/core/dist/dlc/CoinSelect.js +77 -0
  352. package/.yalc/@node-dlc/core/dist/dlc/CoinSelect.js.map +1 -0
  353. package/.yalc/@node-dlc/core/dist/dlc/HyperbolaPayoutCurve.d.ts +20 -0
  354. package/.yalc/@node-dlc/core/dist/dlc/HyperbolaPayoutCurve.js +117 -0
  355. package/.yalc/@node-dlc/core/dist/dlc/HyperbolaPayoutCurve.js.map +1 -0
  356. package/.yalc/@node-dlc/core/dist/dlc/PayoutCurve.d.ts +5 -0
  357. package/.yalc/@node-dlc/core/dist/dlc/PayoutCurve.js +3 -0
  358. package/.yalc/@node-dlc/core/dist/dlc/PayoutCurve.js.map +1 -0
  359. package/.yalc/@node-dlc/core/dist/dlc/PolynomialPayoutCurve.d.ts +52 -0
  360. package/.yalc/@node-dlc/core/dist/dlc/PolynomialPayoutCurve.js +173 -0
  361. package/.yalc/@node-dlc/core/dist/dlc/PolynomialPayoutCurve.js.map +1 -0
  362. package/.yalc/@node-dlc/core/dist/dlc/TxBuilder.d.ts +55 -0
  363. package/.yalc/@node-dlc/core/dist/dlc/TxBuilder.js +217 -0
  364. package/.yalc/@node-dlc/core/dist/dlc/TxBuilder.js.map +1 -0
  365. package/.yalc/@node-dlc/core/dist/dlc/TxFinalizer.d.ts +40 -0
  366. package/.yalc/@node-dlc/core/dist/dlc/TxFinalizer.js +146 -0
  367. package/.yalc/@node-dlc/core/dist/dlc/TxFinalizer.js.map +1 -0
  368. package/.yalc/@node-dlc/core/dist/dlc/finance/Builder.d.ts +193 -0
  369. package/.yalc/@node-dlc/core/dist/dlc/finance/Builder.js +422 -0
  370. package/.yalc/@node-dlc/core/dist/dlc/finance/Builder.js.map +1 -0
  371. package/.yalc/@node-dlc/core/dist/dlc/finance/CoveredCall.d.ts +13 -0
  372. package/.yalc/@node-dlc/core/dist/dlc/finance/CoveredCall.js +67 -0
  373. package/.yalc/@node-dlc/core/dist/dlc/finance/CoveredCall.js.map +1 -0
  374. package/.yalc/@node-dlc/core/dist/dlc/finance/CsoInfo.d.ts +114 -0
  375. package/.yalc/@node-dlc/core/dist/dlc/finance/CsoInfo.js +290 -0
  376. package/.yalc/@node-dlc/core/dist/dlc/finance/CsoInfo.js.map +1 -0
  377. package/.yalc/@node-dlc/core/dist/dlc/finance/LinearPayout.d.ts +6 -0
  378. package/.yalc/@node-dlc/core/dist/dlc/finance/LinearPayout.js +79 -0
  379. package/.yalc/@node-dlc/core/dist/dlc/finance/LinearPayout.js.map +1 -0
  380. package/.yalc/@node-dlc/core/dist/dlc/finance/LongCall.d.ts +13 -0
  381. package/.yalc/@node-dlc/core/dist/dlc/finance/LongCall.js +47 -0
  382. package/.yalc/@node-dlc/core/dist/dlc/finance/LongCall.js.map +1 -0
  383. package/.yalc/@node-dlc/core/dist/dlc/finance/LongPut.d.ts +13 -0
  384. package/.yalc/@node-dlc/core/dist/dlc/finance/LongPut.js +47 -0
  385. package/.yalc/@node-dlc/core/dist/dlc/finance/LongPut.js.map +1 -0
  386. package/.yalc/@node-dlc/core/dist/dlc/finance/OptionInfo.d.ts +20 -0
  387. package/.yalc/@node-dlc/core/dist/dlc/finance/OptionInfo.js +101 -0
  388. package/.yalc/@node-dlc/core/dist/dlc/finance/OptionInfo.js.map +1 -0
  389. package/.yalc/@node-dlc/core/dist/dlc/finance/ShortPut.d.ts +12 -0
  390. package/.yalc/@node-dlc/core/dist/dlc/finance/ShortPut.js +46 -0
  391. package/.yalc/@node-dlc/core/dist/dlc/finance/ShortPut.js.map +1 -0
  392. package/.yalc/@node-dlc/core/dist/index.d.ts +39 -0
  393. package/.yalc/@node-dlc/core/dist/index.js +78 -0
  394. package/.yalc/@node-dlc/core/dist/index.js.map +1 -0
  395. package/.yalc/@node-dlc/core/dist/lightning/ChannelId.d.ts +31 -0
  396. package/.yalc/@node-dlc/core/dist/lightning/ChannelId.js +52 -0
  397. package/.yalc/@node-dlc/core/dist/lightning/ChannelId.js.map +1 -0
  398. package/.yalc/@node-dlc/core/dist/lightning/ChannelKeys.d.ts +55 -0
  399. package/.yalc/@node-dlc/core/dist/lightning/ChannelKeys.js +105 -0
  400. package/.yalc/@node-dlc/core/dist/lightning/ChannelKeys.js.map +1 -0
  401. package/.yalc/@node-dlc/core/dist/lightning/CommitmentNumber.d.ts +55 -0
  402. package/.yalc/@node-dlc/core/dist/lightning/CommitmentNumber.js +76 -0
  403. package/.yalc/@node-dlc/core/dist/lightning/CommitmentNumber.js.map +1 -0
  404. package/.yalc/@node-dlc/core/dist/lightning/CommitmentSecret.d.ts +26 -0
  405. package/.yalc/@node-dlc/core/dist/lightning/CommitmentSecret.js +44 -0
  406. package/.yalc/@node-dlc/core/dist/lightning/CommitmentSecret.js.map +1 -0
  407. package/.yalc/@node-dlc/core/dist/lightning/CommitmentSecretStore.d.ts +41 -0
  408. package/.yalc/@node-dlc/core/dist/lightning/CommitmentSecretStore.js +79 -0
  409. package/.yalc/@node-dlc/core/dist/lightning/CommitmentSecretStore.js.map +1 -0
  410. package/.yalc/@node-dlc/core/dist/lightning/Htlc.d.ts +46 -0
  411. package/.yalc/@node-dlc/core/dist/lightning/Htlc.js +46 -0
  412. package/.yalc/@node-dlc/core/dist/lightning/Htlc.js.map +1 -0
  413. package/.yalc/@node-dlc/core/dist/lightning/HtlcDirection.d.ts +16 -0
  414. package/.yalc/@node-dlc/core/dist/lightning/HtlcDirection.js +21 -0
  415. package/.yalc/@node-dlc/core/dist/lightning/HtlcDirection.js.map +1 -0
  416. package/.yalc/@node-dlc/core/dist/lightning/ScriptFactory.d.ts +76 -0
  417. package/.yalc/@node-dlc/core/dist/lightning/ScriptFactory.js +102 -0
  418. package/.yalc/@node-dlc/core/dist/lightning/ScriptFactory.js.map +1 -0
  419. package/.yalc/@node-dlc/core/dist/lightning/TxFactory.d.ts +83 -0
  420. package/.yalc/@node-dlc/core/dist/lightning/TxFactory.js +222 -0
  421. package/.yalc/@node-dlc/core/dist/lightning/TxFactory.js.map +1 -0
  422. package/.yalc/@node-dlc/core/dist/utils/BigIntUtils.d.ts +9 -0
  423. package/.yalc/@node-dlc/core/dist/utils/BigIntUtils.js +59 -0
  424. package/.yalc/@node-dlc/core/dist/utils/BigIntUtils.js.map +1 -0
  425. package/.yalc/@node-dlc/core/dist/utils/Precision.d.ts +13 -0
  426. package/.yalc/@node-dlc/core/dist/utils/Precision.js +28 -0
  427. package/.yalc/@node-dlc/core/dist/utils/Precision.js.map +1 -0
  428. package/.yalc/@node-dlc/core/lib/AsyncProcessingQueue.ts +63 -0
  429. package/.yalc/@node-dlc/core/lib/Base32.ts +2 -0
  430. package/.yalc/@node-dlc/core/lib/BigIntUtils.ts +2 -0
  431. package/.yalc/@node-dlc/core/lib/BitField.ts +2 -0
  432. package/.yalc/@node-dlc/core/lib/ChannelId.ts +2 -0
  433. package/.yalc/@node-dlc/core/lib/LinkedList.ts +111 -0
  434. package/.yalc/@node-dlc/core/lib/LinkedListNode.ts +14 -0
  435. package/.yalc/@node-dlc/core/lib/Queue.ts +36 -0
  436. package/.yalc/@node-dlc/core/lib/ShortChannelId.ts +2 -0
  437. package/.yalc/@node-dlc/core/lib/ShortChannelIdUtils.ts +9 -0
  438. package/.yalc/@node-dlc/core/lib/dlc/CETCalculator.ts +450 -0
  439. package/.yalc/@node-dlc/core/lib/dlc/CoinSelect.ts +117 -0
  440. package/.yalc/@node-dlc/core/lib/dlc/HyperbolaPayoutCurve.ts +188 -0
  441. package/.yalc/@node-dlc/core/lib/dlc/PayoutCurve.ts +6 -0
  442. package/.yalc/@node-dlc/core/lib/dlc/PolynomialPayoutCurve.ts +266 -0
  443. package/.yalc/@node-dlc/core/lib/dlc/TxBuilder.ts +336 -0
  444. package/.yalc/@node-dlc/core/lib/dlc/TxFinalizer.ts +217 -0
  445. package/.yalc/@node-dlc/core/lib/dlc/finance/Builder.ts +730 -0
  446. package/.yalc/@node-dlc/core/lib/dlc/finance/CoveredCall.ts +110 -0
  447. package/.yalc/@node-dlc/core/lib/dlc/finance/CsoInfo.ts +498 -0
  448. package/.yalc/@node-dlc/core/lib/dlc/finance/LinearPayout.ts +94 -0
  449. package/.yalc/@node-dlc/core/lib/dlc/finance/LongCall.ts +74 -0
  450. package/.yalc/@node-dlc/core/lib/dlc/finance/LongPut.ts +74 -0
  451. package/.yalc/@node-dlc/core/lib/dlc/finance/OptionInfo.ts +182 -0
  452. package/.yalc/@node-dlc/core/lib/dlc/finance/ShortPut.ts +75 -0
  453. package/.yalc/@node-dlc/core/lib/index.ts +66 -0
  454. package/.yalc/@node-dlc/core/lib/lightning/ChannelId.ts +54 -0
  455. package/.yalc/@node-dlc/core/lib/lightning/ChannelKeys.ts +109 -0
  456. package/.yalc/@node-dlc/core/lib/lightning/CommitmentNumber.ts +94 -0
  457. package/.yalc/@node-dlc/core/lib/lightning/CommitmentSecret.ts +41 -0
  458. package/.yalc/@node-dlc/core/lib/lightning/CommitmentSecretStore.ts +84 -0
  459. package/.yalc/@node-dlc/core/lib/lightning/Htlc.ts +52 -0
  460. package/.yalc/@node-dlc/core/lib/lightning/HtlcDirection.ts +17 -0
  461. package/.yalc/@node-dlc/core/lib/lightning/ScriptFactory.ts +150 -0
  462. package/.yalc/@node-dlc/core/lib/lightning/TxFactory.ts +338 -0
  463. package/.yalc/@node-dlc/core/lib/utils/BigIntUtils.ts +64 -0
  464. package/.yalc/@node-dlc/core/lib/utils/Precision.ts +23 -0
  465. package/.yalc/@node-dlc/core/package.json +38 -0
  466. package/.yalc/@node-dlc/core/tsconfig.json +8 -0
  467. package/.yalc/@node-dlc/core/yalc.sig +1 -0
  468. package/.yalc/@node-dlc/crypto/.eslintrc +6 -0
  469. package/.yalc/@node-dlc/crypto/.nyc_output/de03e0b4-d482-4f61-b680-59411360f56e.json +1 -0
  470. package/.yalc/@node-dlc/crypto/.nyc_output/processinfo/de03e0b4-d482-4f61-b680-59411360f56e.json +1 -0
  471. package/.yalc/@node-dlc/crypto/.nyc_output/processinfo/index.json +1 -0
  472. package/.yalc/@node-dlc/crypto/README.md +13 -0
  473. package/.yalc/@node-dlc/crypto/__tests__/chacha.spec.ts +29 -0
  474. package/.yalc/@node-dlc/crypto/__tests__/chachapoly.spec.ts +78 -0
  475. package/.yalc/@node-dlc/crypto/__tests__/hkdf.spec.ts +131 -0
  476. package/.yalc/@node-dlc/crypto/__tests__/key.spec.ts +125 -0
  477. package/.yalc/@node-dlc/crypto/__tests__/secp256k1.spec.ts +194 -0
  478. package/.yalc/@node-dlc/crypto/__tests__/xor.spec.ts +28 -0
  479. package/.yalc/@node-dlc/crypto/coverage/lcov-report/base.css +224 -0
  480. package/.yalc/@node-dlc/crypto/coverage/lcov-report/block-navigation.js +79 -0
  481. package/.yalc/@node-dlc/crypto/coverage/lcov-report/chacha.ts.html +119 -0
  482. package/.yalc/@node-dlc/crypto/coverage/lcov-report/chachapoly.ts.html +275 -0
  483. package/.yalc/@node-dlc/crypto/coverage/lcov-report/favicon.png +0 -0
  484. package/.yalc/@node-dlc/crypto/coverage/lcov-report/hkdf.ts.html +236 -0
  485. package/.yalc/@node-dlc/crypto/coverage/lcov-report/index.html +186 -0
  486. package/.yalc/@node-dlc/crypto/coverage/lcov-report/key.ts.html +272 -0
  487. package/.yalc/@node-dlc/crypto/coverage/lcov-report/prettify.css +1 -0
  488. package/.yalc/@node-dlc/crypto/coverage/lcov-report/prettify.js +2 -0
  489. package/.yalc/@node-dlc/crypto/coverage/lcov-report/secp256k1.ts.html +680 -0
  490. package/.yalc/@node-dlc/crypto/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  491. package/.yalc/@node-dlc/crypto/coverage/lcov-report/sorter.js +170 -0
  492. package/.yalc/@node-dlc/crypto/coverage/lcov-report/xor.ts.html +116 -0
  493. package/.yalc/@node-dlc/crypto/coverage/lcov.info +221 -0
  494. package/.yalc/@node-dlc/crypto/dist/aes-key.d.ts +6 -0
  495. package/.yalc/@node-dlc/crypto/dist/aes-key.js +3 -0
  496. package/.yalc/@node-dlc/crypto/dist/aes-key.js.map +1 -0
  497. package/.yalc/@node-dlc/crypto/dist/aes.d.ts +34 -0
  498. package/.yalc/@node-dlc/crypto/dist/aes.js +62 -0
  499. package/.yalc/@node-dlc/crypto/dist/aes.js.map +1 -0
  500. package/.yalc/@node-dlc/crypto/dist/chacha.d.ts +4 -0
  501. package/.yalc/@node-dlc/crypto/dist/chacha.js +40 -0
  502. package/.yalc/@node-dlc/crypto/dist/chacha.js.map +1 -0
  503. package/.yalc/@node-dlc/crypto/dist/chachapoly.d.ts +24 -0
  504. package/.yalc/@node-dlc/crypto/dist/chachapoly.js +61 -0
  505. package/.yalc/@node-dlc/crypto/dist/chachapoly.js.map +1 -0
  506. package/.yalc/@node-dlc/crypto/dist/hash.d.ts +29 -0
  507. package/.yalc/@node-dlc/crypto/dist/hash.js +51 -0
  508. package/.yalc/@node-dlc/crypto/dist/hash.js.map +1 -0
  509. package/.yalc/@node-dlc/crypto/dist/hkdf.d.ts +20 -0
  510. package/.yalc/@node-dlc/crypto/dist/hkdf.js +50 -0
  511. package/.yalc/@node-dlc/crypto/dist/hkdf.js.map +1 -0
  512. package/.yalc/@node-dlc/crypto/dist/hmac.d.ts +3 -0
  513. package/.yalc/@node-dlc/crypto/dist/hmac.js +14 -0
  514. package/.yalc/@node-dlc/crypto/dist/hmac.js.map +1 -0
  515. package/.yalc/@node-dlc/crypto/dist/index.d.ts +11 -0
  516. package/.yalc/@node-dlc/crypto/dist/index.js +30 -0
  517. package/.yalc/@node-dlc/crypto/dist/index.js.map +1 -0
  518. package/.yalc/@node-dlc/crypto/dist/key.d.ts +37 -0
  519. package/.yalc/@node-dlc/crypto/dist/key.js +72 -0
  520. package/.yalc/@node-dlc/crypto/dist/key.js.map +1 -0
  521. package/.yalc/@node-dlc/crypto/dist/secp256k1.d.ts +120 -0
  522. package/.yalc/@node-dlc/crypto/dist/secp256k1.js +184 -0
  523. package/.yalc/@node-dlc/crypto/dist/secp256k1.js.map +1 -0
  524. package/.yalc/@node-dlc/crypto/dist/xor.d.ts +8 -0
  525. package/.yalc/@node-dlc/crypto/dist/xor.js +17 -0
  526. package/.yalc/@node-dlc/crypto/dist/xor.js.map +1 -0
  527. package/.yalc/@node-dlc/crypto/lib/aes-key.ts +4 -0
  528. package/.yalc/@node-dlc/crypto/lib/aes.ts +81 -0
  529. package/.yalc/@node-dlc/crypto/lib/chacha.ts +13 -0
  530. package/.yalc/@node-dlc/crypto/lib/chachapoly.ts +65 -0
  531. package/.yalc/@node-dlc/crypto/lib/hash.ts +44 -0
  532. package/.yalc/@node-dlc/crypto/lib/hkdf.ts +52 -0
  533. package/.yalc/@node-dlc/crypto/lib/hmac.ts +7 -0
  534. package/.yalc/@node-dlc/crypto/lib/index.ts +11 -0
  535. package/.yalc/@node-dlc/crypto/lib/key.ts +64 -0
  536. package/.yalc/@node-dlc/crypto/lib/secp256k1.ts +200 -0
  537. package/.yalc/@node-dlc/crypto/lib/xor.ts +12 -0
  538. package/.yalc/@node-dlc/crypto/package.json +34 -0
  539. package/.yalc/@node-dlc/crypto/tsconfig-build.json +7 -0
  540. package/.yalc/@node-dlc/crypto/tsconfig.json +4 -0
  541. package/.yalc/@node-dlc/crypto/yalc.sig +1 -0
  542. package/.yalc/@node-dlc/messaging/.nyc_output/83d37f9d-cecf-4c52-a753-115ff80bbca0.json +1 -0
  543. package/.yalc/@node-dlc/messaging/.nyc_output/processinfo/83d37f9d-cecf-4c52-a753-115ff80bbca0.json +1 -0
  544. package/.yalc/@node-dlc/messaging/.nyc_output/processinfo/index.json +1 -1
  545. package/.yalc/@node-dlc/messaging/__tests__/_test-utils.ts +1 -0
  546. package/.yalc/@node-dlc/messaging/__tests__/compatibility/dlcspecs-compatibility.spec.ts +13 -47
  547. package/.yalc/@node-dlc/messaging/__tests__/compatibility/rust-dlc-cross-language.spec.ts +166 -253
  548. package/.yalc/@node-dlc/messaging/__tests__/compatibility/true-serialization-compatibility.spec.ts +214 -483
  549. package/.yalc/@node-dlc/messaging/__tests__/messages/ContractDescriptor.spec.ts +3 -1
  550. package/.yalc/@node-dlc/messaging/__tests__/messages/ContractInfo.spec.ts +1 -1
  551. package/.yalc/@node-dlc/messaging/__tests__/messages/DlcAccept.spec.ts +72 -0
  552. package/.yalc/@node-dlc/messaging/__tests__/messages/DlcInput.spec.ts +111 -0
  553. package/.yalc/@node-dlc/messaging/__tests__/messages/DlcOffer.spec.ts +99 -37
  554. package/.yalc/@node-dlc/messaging/__tests__/messages/FundingInput.spec.ts +148 -63
  555. package/.yalc/@node-dlc/messaging/__tests__/messages/OracleAttestation.spec.ts +2 -4
  556. package/.yalc/@node-dlc/messaging/__tests__/messages/OrderAccept.spec.ts +7 -9
  557. package/.yalc/@node-dlc/messaging/__tests__/messages/OrderNegotiationFields.spec.ts +135 -52
  558. package/.yalc/@node-dlc/messaging/__tests__/messages/OrderPositionInfo.spec.ts +6 -6
  559. package/.yalc/@node-dlc/messaging/__tests__/messages/PayoutCurvePiece.spec.ts +1 -1
  560. package/.yalc/@node-dlc/messaging/__tests__/messages/PayoutFunction.spec.ts +1 -1
  561. package/.yalc/@node-dlc/messaging/__tests__/serialize/F64.spec.ts +1 -0
  562. package/.yalc/@node-dlc/messaging/coverage/lcov-report/index.html +31 -31
  563. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/MessageType.ts.html +11 -5
  564. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/chain/ChainManager.ts.html +6 -3
  565. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/chain/ChainMemoryStore.ts.html +1 -1
  566. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/chain/index.html +1 -1
  567. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/domain/Address.ts.html +1 -1
  568. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/domain/index.html +1 -1
  569. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/index.html +9 -9
  570. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/index.ts.html +11 -8
  571. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/irc/IrcMessage.ts.html +1 -1
  572. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/irc/index.html +1 -1
  573. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/AddressCache.ts.html +1 -1
  574. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/BatchFundingGroup.ts.html +1 -1
  575. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/CetAdaptorSignatures.ts.html +22 -22
  576. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/CetAdaptorSignaturesV0.ts.html +46 -37
  577. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/CloseTLV.ts.html +344 -0
  578. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/ContractDescriptor.ts.html +61 -70
  579. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/ContractInfo.ts.html +59 -44
  580. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcAccept.ts.html +251 -119
  581. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcCancel.ts.html +1 -1
  582. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcClose.ts.html +12 -3
  583. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcCloseMetadata.ts.html +2 -11
  584. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcIds.ts.html +1 -1
  585. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcInfo.ts.html +1 -1
  586. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcInput.ts.html +581 -0
  587. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcMessage.ts.html +1 -1
  588. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcOffer.ts.html +307 -127
  589. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcSign.ts.html +61 -46
  590. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcTransactions.ts.html +1 -1
  591. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/EventDescriptor.ts.html +67 -52
  592. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/FundingInput.ts.html +202 -70
  593. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/FundingSignatures.ts.html +15 -15
  594. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/FundingSignaturesV0.ts.html +47 -77
  595. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/NegotiationFields.ts.html +16 -4
  596. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/NodeAnnouncementMessage.ts.html +3 -3
  597. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleAnnouncement.ts.html +22 -22
  598. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleAnnouncementV0.ts.html +48 -270
  599. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleAttestation.ts.html +1 -1
  600. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleAttestationV0.ts.html +113 -404
  601. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleEvent.ts.html +49 -49
  602. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleEventContainer.ts.html +1 -1
  603. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleEventContainerV0.ts.html +22 -22
  604. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleEventV0.ts.html +61 -385
  605. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleIdentifier.ts.html +1 -1
  606. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleIdentifierV0.ts.html +1 -1
  607. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleInfo.ts.html +46 -25
  608. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleInfoV0.ts.html +55 -1378
  609. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OrderAccept.ts.html +68 -23
  610. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OrderIrcInfo.ts.html +1 -1
  611. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OrderMetadata.ts.html +1 -1
  612. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OrderNegotiationFields.ts.html +266 -107
  613. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OrderOffer.ts.html +31 -34
  614. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OrderPositionInfo.ts.html +19 -88
  615. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/PayoutCurvePiece.ts.html +36 -21
  616. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/PayoutFunction.ts.html +34 -28
  617. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/RoundingIntervals.ts.html +18 -15
  618. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/RoundingIntervalsV0.ts.html +75 -129
  619. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/ScriptWitnessV0.ts.html +6 -6
  620. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/index.html +84 -69
  621. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/serialize/F64.ts.html +8 -53
  622. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/serialize/deserializeTlv.ts.html +1 -1
  623. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/serialize/getTlv.ts.html +9 -9
  624. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/serialize/index.html +15 -15
  625. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/util.ts.html +22 -10
  626. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/validation/index.html +1 -1
  627. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/validation/validate.ts.html +1 -1
  628. package/.yalc/@node-dlc/messaging/coverage/lcov.info +3049 -2826
  629. package/.yalc/@node-dlc/messaging/dist/MessageType.d.ts +2 -1
  630. package/.yalc/@node-dlc/messaging/dist/MessageType.js +2 -1
  631. package/.yalc/@node-dlc/messaging/dist/MessageType.js.map +1 -1
  632. package/.yalc/@node-dlc/messaging/dist/chain/ChainManager.js +1 -0
  633. package/.yalc/@node-dlc/messaging/dist/chain/ChainManager.js.map +1 -1
  634. package/.yalc/@node-dlc/messaging/dist/index.d.ts +5 -4
  635. package/.yalc/@node-dlc/messaging/dist/index.js +5 -4
  636. package/.yalc/@node-dlc/messaging/dist/index.js.map +1 -1
  637. package/.yalc/@node-dlc/messaging/dist/messages/CetAdaptorSignaturesV0.d.ts +42 -0
  638. package/.yalc/@node-dlc/messaging/dist/messages/CetAdaptorSignaturesV0.js +68 -0
  639. package/.yalc/@node-dlc/messaging/dist/messages/CetAdaptorSignaturesV0.js.map +1 -0
  640. package/.yalc/@node-dlc/messaging/dist/messages/CloseTLV.d.ts +38 -0
  641. package/.yalc/@node-dlc/messaging/dist/messages/CloseTLV.js +59 -0
  642. package/.yalc/@node-dlc/messaging/dist/messages/CloseTLV.js.map +1 -0
  643. package/.yalc/@node-dlc/messaging/dist/messages/ContractDescriptor.d.ts +11 -12
  644. package/.yalc/@node-dlc/messaging/dist/messages/ContractDescriptor.js +0 -1
  645. package/.yalc/@node-dlc/messaging/dist/messages/ContractDescriptor.js.map +1 -1
  646. package/.yalc/@node-dlc/messaging/dist/messages/ContractInfo.d.ts +10 -10
  647. package/.yalc/@node-dlc/messaging/dist/messages/ContractInfo.js +5 -1
  648. package/.yalc/@node-dlc/messaging/dist/messages/ContractInfo.js.map +1 -1
  649. package/.yalc/@node-dlc/messaging/dist/messages/DlcAccept.d.ts +15 -0
  650. package/.yalc/@node-dlc/messaging/dist/messages/DlcAccept.js +46 -5
  651. package/.yalc/@node-dlc/messaging/dist/messages/DlcAccept.js.map +1 -1
  652. package/.yalc/@node-dlc/messaging/dist/messages/DlcClose.js +6 -2
  653. package/.yalc/@node-dlc/messaging/dist/messages/DlcClose.js.map +1 -1
  654. package/.yalc/@node-dlc/messaging/dist/messages/DlcCloseMetadata.js.map +1 -1
  655. package/.yalc/@node-dlc/messaging/dist/messages/DlcInput.d.ts +56 -0
  656. package/.yalc/@node-dlc/messaging/dist/messages/DlcInput.js +135 -0
  657. package/.yalc/@node-dlc/messaging/dist/messages/DlcInput.js.map +1 -0
  658. package/.yalc/@node-dlc/messaging/dist/messages/DlcOffer.d.ts +16 -1
  659. package/.yalc/@node-dlc/messaging/dist/messages/DlcOffer.js +50 -5
  660. package/.yalc/@node-dlc/messaging/dist/messages/DlcOffer.js.map +1 -1
  661. package/.yalc/@node-dlc/messaging/dist/messages/DlcSign.js +11 -3
  662. package/.yalc/@node-dlc/messaging/dist/messages/DlcSign.js.map +1 -1
  663. package/.yalc/@node-dlc/messaging/dist/messages/EventDescriptor.d.ts +7 -6
  664. package/.yalc/@node-dlc/messaging/dist/messages/EventDescriptor.js +3 -0
  665. package/.yalc/@node-dlc/messaging/dist/messages/EventDescriptor.js.map +1 -1
  666. package/.yalc/@node-dlc/messaging/dist/messages/FundingInput.d.ts +7 -0
  667. package/.yalc/@node-dlc/messaging/dist/messages/FundingInput.js +31 -1
  668. package/.yalc/@node-dlc/messaging/dist/messages/FundingInput.js.map +1 -1
  669. package/.yalc/@node-dlc/messaging/dist/messages/FundingSignaturesV0.d.ts +34 -0
  670. package/.yalc/@node-dlc/messaging/dist/messages/FundingSignaturesV0.js +72 -0
  671. package/.yalc/@node-dlc/messaging/dist/messages/FundingSignaturesV0.js.map +1 -0
  672. package/.yalc/@node-dlc/messaging/dist/messages/NegotiationFields.d.ts +2 -2
  673. package/.yalc/@node-dlc/messaging/dist/messages/NegotiationFields.js +4 -0
  674. package/.yalc/@node-dlc/messaging/dist/messages/NegotiationFields.js.map +1 -1
  675. package/.yalc/@node-dlc/messaging/dist/messages/OracleAnnouncementV0.d.ts +47 -0
  676. package/.yalc/@node-dlc/messaging/dist/messages/OracleAnnouncementV0.js +76 -0
  677. package/.yalc/@node-dlc/messaging/dist/messages/OracleAnnouncementV0.js.map +1 -0
  678. package/.yalc/@node-dlc/messaging/dist/messages/OracleAttestationV0.d.ts +48 -0
  679. package/.yalc/@node-dlc/messaging/dist/messages/OracleAttestationV0.js +100 -0
  680. package/.yalc/@node-dlc/messaging/dist/messages/OracleAttestationV0.js.map +1 -0
  681. package/.yalc/@node-dlc/messaging/dist/messages/OracleEventContainerV0.d.ts +32 -0
  682. package/.yalc/@node-dlc/messaging/dist/messages/OracleEventContainerV0.js +67 -0
  683. package/.yalc/@node-dlc/messaging/dist/messages/OracleEventContainerV0.js.map +1 -0
  684. package/.yalc/@node-dlc/messaging/dist/messages/OracleEventV0.d.ts +54 -0
  685. package/.yalc/@node-dlc/messaging/dist/messages/OracleEventV0.js +100 -0
  686. package/.yalc/@node-dlc/messaging/dist/messages/OracleEventV0.js.map +1 -0
  687. package/.yalc/@node-dlc/messaging/dist/messages/OracleInfo.d.ts +8 -6
  688. package/.yalc/@node-dlc/messaging/dist/messages/OracleInfo.js +3 -0
  689. package/.yalc/@node-dlc/messaging/dist/messages/OracleInfo.js.map +1 -1
  690. package/.yalc/@node-dlc/messaging/dist/messages/OracleInfoV0.d.ts +15 -141
  691. package/.yalc/@node-dlc/messaging/dist/messages/OracleInfoV0.js +21 -350
  692. package/.yalc/@node-dlc/messaging/dist/messages/OracleInfoV0.js.map +1 -1
  693. package/.yalc/@node-dlc/messaging/dist/messages/OrderAccept.d.ts +3 -2
  694. package/.yalc/@node-dlc/messaging/dist/messages/OrderAccept.js +22 -7
  695. package/.yalc/@node-dlc/messaging/dist/messages/OrderAccept.js.map +1 -1
  696. package/.yalc/@node-dlc/messaging/dist/messages/OrderNegotiationFields.d.ts +48 -36
  697. package/.yalc/@node-dlc/messaging/dist/messages/OrderNegotiationFields.js +97 -50
  698. package/.yalc/@node-dlc/messaging/dist/messages/OrderNegotiationFields.js.map +1 -1
  699. package/.yalc/@node-dlc/messaging/dist/messages/OrderOffer.d.ts +1 -1
  700. package/.yalc/@node-dlc/messaging/dist/messages/OrderOffer.js +1 -1
  701. package/.yalc/@node-dlc/messaging/dist/messages/OrderOffer.js.map +1 -1
  702. package/.yalc/@node-dlc/messaging/dist/messages/OrderPositionInfo.d.ts +7 -13
  703. package/.yalc/@node-dlc/messaging/dist/messages/OrderPositionInfo.js +11 -25
  704. package/.yalc/@node-dlc/messaging/dist/messages/OrderPositionInfo.js.map +1 -1
  705. package/.yalc/@node-dlc/messaging/dist/messages/PayoutCurvePiece.js +5 -0
  706. package/.yalc/@node-dlc/messaging/dist/messages/PayoutCurvePiece.js.map +1 -1
  707. package/.yalc/@node-dlc/messaging/dist/messages/PayoutFunction.js +4 -1
  708. package/.yalc/@node-dlc/messaging/dist/messages/PayoutFunction.js.map +1 -1
  709. package/.yalc/@node-dlc/messaging/dist/messages/RoundingIntervals.js +1 -0
  710. package/.yalc/@node-dlc/messaging/dist/messages/RoundingIntervals.js.map +1 -1
  711. package/.yalc/@node-dlc/messaging/dist/messages/RoundingIntervalsV0.d.ts +47 -0
  712. package/.yalc/@node-dlc/messaging/dist/messages/RoundingIntervalsV0.js +86 -0
  713. package/.yalc/@node-dlc/messaging/dist/messages/RoundingIntervalsV0.js.map +1 -0
  714. package/.yalc/@node-dlc/messaging/dist/serialize/F64.d.ts +0 -8
  715. package/.yalc/@node-dlc/messaging/dist/serialize/F64.js +0 -13
  716. package/.yalc/@node-dlc/messaging/dist/serialize/F64.js.map +1 -1
  717. package/.yalc/@node-dlc/messaging/dist/util.d.ts +1 -1
  718. package/.yalc/@node-dlc/messaging/dist/util.js +2 -0
  719. package/.yalc/@node-dlc/messaging/dist/util.js.map +1 -1
  720. package/.yalc/@node-dlc/messaging/lib/MessageType.ts +3 -1
  721. package/.yalc/@node-dlc/messaging/lib/chain/ChainManager.ts +1 -0
  722. package/.yalc/@node-dlc/messaging/lib/index.ts +5 -4
  723. package/.yalc/@node-dlc/messaging/lib/messages/ContractDescriptor.ts +15 -16
  724. package/.yalc/@node-dlc/messaging/lib/messages/ContractInfo.ts +17 -12
  725. package/.yalc/@node-dlc/messaging/lib/messages/DlcAccept.ts +50 -6
  726. package/.yalc/@node-dlc/messaging/lib/messages/DlcClose.ts +4 -1
  727. package/.yalc/@node-dlc/messaging/lib/messages/DlcCloseMetadata.ts +0 -3
  728. package/.yalc/@node-dlc/messaging/lib/messages/DlcInput.ts +167 -0
  729. package/.yalc/@node-dlc/messaging/lib/messages/DlcOffer.ts +67 -7
  730. package/.yalc/@node-dlc/messaging/lib/messages/DlcSign.ts +5 -0
  731. package/.yalc/@node-dlc/messaging/lib/messages/EventDescriptor.ts +12 -7
  732. package/.yalc/@node-dlc/messaging/lib/messages/FundingInput.ts +45 -1
  733. package/.yalc/@node-dlc/messaging/lib/messages/NegotiationFields.ts +6 -2
  734. package/.yalc/@node-dlc/messaging/lib/messages/NodeAnnouncementMessage.ts +2 -2
  735. package/.yalc/@node-dlc/messaging/lib/messages/OracleInfo.ts +15 -8
  736. package/.yalc/@node-dlc/messaging/lib/messages/OrderAccept.ts +28 -13
  737. package/.yalc/@node-dlc/messaging/lib/messages/OrderNegotiationFields.ts +127 -74
  738. package/.yalc/@node-dlc/messaging/lib/messages/OrderOffer.ts +2 -3
  739. package/.yalc/@node-dlc/messaging/lib/messages/OrderPositionInfo.ts +10 -33
  740. package/.yalc/@node-dlc/messaging/lib/messages/PayoutCurvePiece.ts +5 -0
  741. package/.yalc/@node-dlc/messaging/lib/messages/PayoutFunction.ts +2 -0
  742. package/.yalc/@node-dlc/messaging/lib/messages/RoundingIntervals.ts +1 -0
  743. package/.yalc/@node-dlc/messaging/lib/serialize/F64.ts +0 -15
  744. package/.yalc/@node-dlc/messaging/lib/serialize/readTlvs.ts +1 -1
  745. package/.yalc/@node-dlc/messaging/lib/util.ts +5 -1
  746. package/.yalc/@node-dlc/messaging/package.json +8 -8
  747. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/enum_3_of_3_test.json +76 -74
  748. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/enum_3_of_5_test.json +90 -88
  749. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/enum_and_numerical_3_of_5_test.json +162 -160
  750. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/enum_and_numerical_5_of_5_test.json +162 -160
  751. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/enum_and_numerical_with_diff_3_of_5_test.json +164 -162
  752. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/enum_and_numerical_with_diff_5_of_5_test.json +164 -162
  753. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/enum_single_oracle_test.json +60 -58
  754. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/single_oracle_numerical_hyperbola_test.json +71 -69
  755. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/single_oracle_numerical_test.json +71 -69
  756. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/three_of_five_oracle_numerical_with_diff_test.json +119 -117
  757. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/three_of_three_oracle_numerical_test.json +95 -93
  758. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/three_of_three_oracle_numerical_with_diff_test.json +97 -95
  759. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/two_of_five_oracle_numerical_test.json +117 -115
  760. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/two_of_five_oracle_numerical_with_diff_test.json +119 -117
  761. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250718_132453/enum_3_of_3_test.json +210 -0
  762. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250718_132453/enum_3_of_5_test.json +468 -0
  763. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250718_132453/enum_and_numerical_3_of_5_test.json +1517 -0
  764. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250718_132453/enum_and_numerical_5_of_5_test.json +545 -0
  765. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250718_132453/enum_and_numerical_with_diff_3_of_5_test.json +4761 -0
  766. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250718_132453/enum_and_numerical_with_diff_5_of_5_test.json +2169 -0
  767. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250718_132453/enum_single_oracle_test.json +164 -0
  768. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250718_132453/single_oracle_numerical_hyperbola_test.json +502 -0
  769. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250718_132453/single_oracle_numerical_test.json +262 -0
  770. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250718_132453/three_of_five_oracle_numerical_with_diff_test.json +4382 -0
  771. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250718_132453/three_of_three_oracle_numerical_test.json +324 -0
  772. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250718_132453/three_of_three_oracle_numerical_with_diff_test.json +652 -0
  773. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250718_132453/two_of_five_oracle_numerical_test.json +1138 -0
  774. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250718_132453/two_of_five_oracle_numerical_with_diff_test.json +2222 -0
  775. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250719_185952/enum_3_of_3_test.json +212 -0
  776. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250719_185952/enum_3_of_5_test.json +470 -0
  777. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250719_185952/enum_and_numerical_3_of_5_test.json +1519 -0
  778. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250719_185952/enum_and_numerical_5_of_5_test.json +547 -0
  779. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250719_185952/enum_and_numerical_with_diff_3_of_5_test.json +4763 -0
  780. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250719_185952/enum_and_numerical_with_diff_5_of_5_test.json +2171 -0
  781. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250719_185952/enum_single_oracle_test.json +166 -0
  782. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250719_185952/single_oracle_numerical_hyperbola_test.json +504 -0
  783. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250719_185952/single_oracle_numerical_test.json +264 -0
  784. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250719_185952/three_of_five_oracle_numerical_with_diff_test.json +4384 -0
  785. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250719_185952/three_of_three_oracle_numerical_test.json +326 -0
  786. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250719_185952/three_of_three_oracle_numerical_with_diff_test.json +654 -0
  787. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250719_185952/two_of_five_oracle_numerical_test.json +1140 -0
  788. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250719_185952/two_of_five_oracle_numerical_with_diff_test.json +2224 -0
  789. package/.yalc/@node-dlc/messaging/yalc.sig +1 -1
  790. package/CHANGELOG.md +47 -5
  791. package/README.md +48 -0
  792. package/dist/BitcoinDlcProvider.d.ts +34 -5
  793. package/dist/BitcoinDlcProvider.js +622 -155
  794. package/dist/BitcoinDlcProvider.js.map +1 -1
  795. package/dist/utils/Utils.js +5 -1
  796. package/dist/utils/Utils.js.map +1 -1
  797. package/lib/BitcoinDlcProvider.ts +899 -204
  798. package/lib/utils/Utils.ts +2 -0
  799. package/package.json +10 -10
  800. package/yalc.lock +22 -2
  801. package/.yalc/@node-dlc/messaging/.nyc_output/2cf48009-1094-4275-bb91-c164c932feb6.json +0 -1
  802. package/.yalc/@node-dlc/messaging/.nyc_output/processinfo/2cf48009-1094-4275-bb91-c164c932feb6.json +0 -1
@@ -0,0 +1,422 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.buildRoundingIntervalsFromIntervals = exports.buildCustomStrategyOrderOffer = exports.buildLinearOrderOffer = exports.buildLongPutOrderOffer = exports.buildLongCallOrderOffer = exports.buildShortPutOrderOffer = exports.buildCoveredCallOrderOffer = exports.buildOptionOrderOffer = exports.buildOrderOffer = exports.getDigitDecompositionEventDescriptor = exports.computeRoundingModulus = exports.roundDownToNearestMultiplier = exports.roundUpToNearestMultiplier = exports.roundToNearestMultiplier = exports.UNIT_MULTIPLIER = void 0;
7
+ const bitcoin_1 = require("@node-dlc/bitcoin");
8
+ const messaging_1 = require("@node-dlc/messaging");
9
+ const bitcoin_networks_1 = require("bitcoin-networks");
10
+ const decimal_js_1 = __importDefault(require("decimal.js"));
11
+ const CoinSelect_1 = require("../CoinSelect");
12
+ const TxFinalizer_1 = require("../TxFinalizer");
13
+ const CoveredCall_1 = require("./CoveredCall");
14
+ const LinearPayout_1 = require("./LinearPayout");
15
+ const LongCall_1 = require("./LongCall");
16
+ const LongPut_1 = require("./LongPut");
17
+ const ShortPut_1 = require("./ShortPut");
18
+ exports.UNIT_MULTIPLIER = {
19
+ bits: BigInt(1e2),
20
+ sats: BigInt(1),
21
+ };
22
+ /**
23
+ * Round a number to the nearest multiple of a given multiplier.
24
+ *
25
+ * @param num - The number to be rounded.
26
+ * @param multiplier - The multiplier to round to.
27
+ * @returns The number rounded to the nearest multiple of the multiplier.
28
+ *
29
+ * @example
30
+ * ```typescript
31
+ * // Example: rounding to nearest 100
32
+ * const number = BigInt(354);
33
+ * const multiplier = BigInt(100);
34
+ * const roundedNumber = roundToNearestMultiplier(number, multiplier);
35
+ * console.log(roundedNumber); // Output: 300
36
+ * ```
37
+ */
38
+ const roundToNearestMultiplier = (num, multiplier) => (num / multiplier) * multiplier;
39
+ exports.roundToNearestMultiplier = roundToNearestMultiplier;
40
+ /**
41
+ * Round a number up to the nearest multiple of a given multiplier.
42
+ *
43
+ * @param num - The number to be rounded.
44
+ * @param multiplier - The multiplier to round to.
45
+ * @returns The number rounded up to the nearest multiple of the multiplier.
46
+ *
47
+ * @example
48
+ * ```typescript
49
+ * // Example: rounding up to nearest 100
50
+ * const number = BigInt(354);
51
+ * const multiplier = BigInt(100);
52
+ * const roundedNumber = roundToNearestMultiplier(number, multiplier);
53
+ * console.log(roundedNumber); // Output: 400
54
+ * ```
55
+ */
56
+ const roundUpToNearestMultiplier = (num, multiplier) => ((num + multiplier - BigInt(1)) / multiplier) * multiplier;
57
+ exports.roundUpToNearestMultiplier = roundUpToNearestMultiplier;
58
+ const roundDownToNearestMultiplier = (num, multiplier) => num - (num % multiplier);
59
+ exports.roundDownToNearestMultiplier = roundDownToNearestMultiplier;
60
+ /**
61
+ * Compute rounding intervals for a linear or hyperbola payout curve
62
+ *
63
+ * @param {number | bigint | Value} rounding rounding interval in sats
64
+ * @param {number | bigint | Value} contractSize contract size in sats
65
+ * @returns rounding mod for contract size
66
+ */
67
+ const computeRoundingModulus = (rounding, contractSize) => {
68
+ const roundingInSats = rounding instanceof bitcoin_1.Value
69
+ ? rounding.sats
70
+ : typeof rounding === 'number'
71
+ ? BigInt(Math.round(rounding * 1e8)) // Convert bitcoin amount to satoshis
72
+ : rounding;
73
+ const contractSizeInSats = contractSize instanceof bitcoin_1.Value
74
+ ? contractSize.sats
75
+ : typeof contractSize === 'number'
76
+ ? BigInt(Math.round(contractSize * 1e8)) // Convert bitcoin amount to satoshis
77
+ : contractSize;
78
+ return (roundingInSats * contractSizeInSats) / BigInt(1e8);
79
+ };
80
+ exports.computeRoundingModulus = computeRoundingModulus;
81
+ /**
82
+ * Get digit decomposition event descriptor from oracle announcement
83
+ *
84
+ * @param {OracleAnnouncement} announcement oracle announcement
85
+ * @returns {DigitDecompositionEventDescriptorV0} event descriptor
86
+ */
87
+ const getDigitDecompositionEventDescriptor = (announcement) => {
88
+ if (announcement.oracleEvent.eventDescriptor.type !==
89
+ messaging_1.MessageType.DigitDecompositionEventDescriptorV0)
90
+ throw Error('Only DigitDecompositionEventDescriptorV0 currently supported');
91
+ const eventDescriptor = announcement.oracleEvent
92
+ .eventDescriptor;
93
+ return eventDescriptor;
94
+ };
95
+ exports.getDigitDecompositionEventDescriptor = getDigitDecompositionEventDescriptor;
96
+ /**
97
+ * Build an orderoffer for ContractDescriptorV1
98
+ *
99
+ * @param {OracleAnnouncement} announcement oracle announcement
100
+ * @param {bigint} totalCollateral total collateral in satoshis
101
+ * @param {bigint} offerCollateral offer collateral in satoshis
102
+ * @param {PayoutFunction} payoutFunction
103
+ * @param {RoundingIntervals} roundingIntervals
104
+ * @param {bigint} feePerByte sats/vbyte
105
+ * @param {NetworkName} network
106
+ * @returns {OrderOffer} Returns order offer
107
+ */
108
+ const buildOrderOffer = (announcement, totalCollateral, offerCollateral, payoutFunction, roundingIntervals, feePerByte, network) => {
109
+ const eventDescriptor = (0, exports.getDigitDecompositionEventDescriptor)(announcement);
110
+ const contractDescriptor = new messaging_1.NumericalDescriptor();
111
+ contractDescriptor.numDigits = eventDescriptor.nbDigits;
112
+ contractDescriptor.payoutFunction = payoutFunction;
113
+ contractDescriptor.roundingIntervals = roundingIntervals;
114
+ const oracleInfo = new messaging_1.SingleOracleInfo();
115
+ oracleInfo.announcement = announcement;
116
+ const contractInfo = new messaging_1.SingleContractInfo();
117
+ contractInfo.totalCollateral = totalCollateral;
118
+ contractInfo.contractDescriptor = contractDescriptor;
119
+ contractInfo.oracleInfo = oracleInfo;
120
+ const orderOffer = new messaging_1.OrderOffer();
121
+ // Set required fields for OrderOffer
122
+ orderOffer.contractFlags = Buffer.from('00', 'hex'); // Default contract flags
123
+ // Generate a random 32-byte temporary contract ID
124
+ orderOffer.temporaryContractId = Buffer.from(Array.from({ length: 32 }, () => Math.floor(Math.random() * 256)));
125
+ orderOffer.chainHash = (0, bitcoin_networks_1.chainHashFromNetwork)(bitcoin_networks_1.BitcoinNetworks[network]);
126
+ orderOffer.contractInfo = contractInfo;
127
+ orderOffer.offerCollateral = offerCollateral; // Use correct property name
128
+ orderOffer.feeRatePerVb = feePerByte;
129
+ orderOffer.cetLocktime = Math.floor(new Date().getTime() / 1000); // set to current time
130
+ orderOffer.refundLocktime =
131
+ announcement.oracleEvent.eventMaturityEpoch + 2419200; // 4 weeks after maturity
132
+ return orderOffer;
133
+ };
134
+ exports.buildOrderOffer = buildOrderOffer;
135
+ /**
136
+ * Builds an order offer for a covered call or short put
137
+ *
138
+ * @param {OracleAnnouncement} announcement oracle announcement
139
+ * @param {number} contractSize contract size in satoshis
140
+ * @param {number} strikePrice strike price of contract
141
+ * @param {number} premium premium of contract in satoshis
142
+ * @param {number | bigint} feePerByte sats/vbyte
143
+ * @param {number} rounding rounding interval
144
+ * @param {string} network bitcoin network type
145
+ * @param {string} type call or put
146
+ * @param {number} _totalCollateral total collateral in satoshis (applicable only for short put)
147
+ * @returns {OrderOffer} Returns order offer
148
+ */
149
+ const buildOptionOrderOffer = (announcement, contractSize, strikePrice, premium, feePerByte, rounding, network, type, direction, _totalCollateral) => {
150
+ const eventDescriptor = (0, exports.getDigitDecompositionEventDescriptor)(announcement);
151
+ let totalCollateral;
152
+ let payoutFunctionInfo;
153
+ const roundingIntervals = new messaging_1.RoundingIntervals();
154
+ const roundingMod = (0, exports.computeRoundingModulus)(rounding, contractSize);
155
+ if (direction === 'short') {
156
+ if (type === 'call') {
157
+ payoutFunctionInfo = CoveredCall_1.CoveredCall.buildPayoutFunction(BigInt(strikePrice), contractSize.sats, eventDescriptor.base, eventDescriptor.nbDigits);
158
+ totalCollateral = payoutFunctionInfo.totalCollateral;
159
+ roundingIntervals.intervals = [
160
+ {
161
+ beginInterval: BigInt(0),
162
+ roundingMod: BigInt(1),
163
+ },
164
+ {
165
+ beginInterval: BigInt(strikePrice),
166
+ roundingMod,
167
+ },
168
+ ];
169
+ }
170
+ else {
171
+ payoutFunctionInfo = ShortPut_1.ShortPut.buildPayoutFunction(BigInt(strikePrice), contractSize.sats, _totalCollateral.sats, eventDescriptor.base, eventDescriptor.nbDigits);
172
+ totalCollateral = _totalCollateral.sats;
173
+ roundingIntervals.intervals = [
174
+ {
175
+ beginInterval: BigInt(0),
176
+ roundingMod,
177
+ },
178
+ {
179
+ beginInterval: BigInt(strikePrice),
180
+ roundingMod: BigInt(1),
181
+ },
182
+ ];
183
+ }
184
+ }
185
+ else {
186
+ totalCollateral = _totalCollateral.sats;
187
+ if (type === 'call') {
188
+ payoutFunctionInfo = LongCall_1.LongCall.buildPayoutFunction(BigInt(strikePrice), contractSize.sats, totalCollateral, eventDescriptor.base, eventDescriptor.nbDigits);
189
+ roundingIntervals.intervals = [
190
+ {
191
+ beginInterval: BigInt(0),
192
+ roundingMod: BigInt(1),
193
+ },
194
+ {
195
+ beginInterval: BigInt(strikePrice),
196
+ roundingMod,
197
+ },
198
+ ];
199
+ }
200
+ else {
201
+ payoutFunctionInfo = LongPut_1.LongPut.buildPayoutFunction(BigInt(strikePrice), contractSize.sats, totalCollateral, eventDescriptor.base, eventDescriptor.nbDigits);
202
+ roundingIntervals.intervals = [
203
+ {
204
+ beginInterval: BigInt(0),
205
+ roundingMod,
206
+ },
207
+ {
208
+ beginInterval: BigInt(strikePrice),
209
+ roundingMod: BigInt(1),
210
+ },
211
+ ];
212
+ }
213
+ }
214
+ const payoutFunction = payoutFunctionInfo.payoutFunction;
215
+ const offerCollateral = direction === 'short' ? totalCollateral - premium.sats : premium.sats;
216
+ return (0, exports.buildOrderOffer)(announcement, totalCollateral, offerCollateral, payoutFunction, roundingIntervals, BigInt(feePerByte), network);
217
+ };
218
+ exports.buildOptionOrderOffer = buildOptionOrderOffer;
219
+ /**
220
+ * Builds an order offer for a covered call
221
+ *
222
+ * @param {OracleAnnouncement} announcement oracle announcement
223
+ * @param {number} contractSize contract size in satoshis
224
+ * @param {number} strikePrice strike price of contract
225
+ * @param {number} premium premium of contract in satoshis
226
+ * @param {number} feePerByte sats/vbyte
227
+ * @param {number} rounding rounding interval
228
+ * @param {string} network bitcoin network type
229
+ * @returns {OrderOffer} Returns order offer
230
+ */
231
+ const buildCoveredCallOrderOffer = (announcement, contractSize, strikePrice, premium, feePerByte, rounding, network) => {
232
+ return (0, exports.buildOptionOrderOffer)(announcement, contractSize, strikePrice, premium, feePerByte, rounding, network, 'call', 'short');
233
+ };
234
+ exports.buildCoveredCallOrderOffer = buildCoveredCallOrderOffer;
235
+ /**
236
+ * Builds an order offer for a short put
237
+ *
238
+ * @param {OracleAnnouncement} announcement oracle announcement
239
+ * @param {number} contractSize contract size in satoshis
240
+ * @param {number} strikePrice strike price of contract
241
+ * @param {number} totalCollateral total collateral in satoshis
242
+ * @param {number} premium premium of contract in satoshis
243
+ * @param {number} feePerByte sats/vbyte
244
+ * @param {number} rounding rounding interval
245
+ * @param {string} network bitcoin network type
246
+ * @returns {OrderOffer} Returns order offer
247
+ */
248
+ const buildShortPutOrderOffer = (announcement, contractSize, strikePrice, totalCollateral, premium, feePerByte, rounding, network) => {
249
+ return (0, exports.buildOptionOrderOffer)(announcement, contractSize, strikePrice, premium, feePerByte, rounding, network, 'put', 'short', totalCollateral);
250
+ };
251
+ exports.buildShortPutOrderOffer = buildShortPutOrderOffer;
252
+ /**
253
+ * Builds an order offer for a long call
254
+ *
255
+ * @param {OracleAnnouncement} announcement oracle announcement
256
+ * @param {number} contractSize contract size in satoshis
257
+ * @param {number} strikePrice strike price of contract
258
+ * @param {number} maxGain maximum amount that can be gained (totalCollateral)
259
+ * @param {number} premium premium of contract in satoshis
260
+ * @param {number} feePerByte sats/vbyte
261
+ * @param {number} rounding rounding interval
262
+ * @param {string} network bitcoin network type
263
+ * @returns {OrderOffer} Returns order offer
264
+ */
265
+ const buildLongCallOrderOffer = (announcement, contractSize, strikePrice, maxGain, premium, feePerByte, rounding, network) => {
266
+ return (0, exports.buildOptionOrderOffer)(announcement, contractSize, strikePrice, premium, feePerByte, rounding, network, 'call', 'long', maxGain);
267
+ };
268
+ exports.buildLongCallOrderOffer = buildLongCallOrderOffer;
269
+ /**
270
+ * Builds an order offer for a long put
271
+ *
272
+ * @param {OracleAnnouncement} announcement oracle announcement
273
+ * @param {number} contractSize contract size in satoshis
274
+ * @param {number} strikePrice strike price of contract
275
+ * @param {number} maxGain maximum amount that can be gained (totalCollateral)
276
+ * @param {number} premium premium of contract in satoshis
277
+ * @param {number} feePerByte sats/vbyte
278
+ * @param {number} rounding rounding interval
279
+ * @param {string} network bitcoin network type
280
+ * @returns {OrderOffer} Returns order offer
281
+ */
282
+ const buildLongPutOrderOffer = (announcement, contractSize, strikePrice, maxGain, premium, feePerByte, rounding, network) => {
283
+ return (0, exports.buildOptionOrderOffer)(announcement, contractSize, strikePrice, premium, feePerByte, rounding, network, 'put', 'long', maxGain);
284
+ };
285
+ exports.buildLongPutOrderOffer = buildLongPutOrderOffer;
286
+ /**
287
+ * Builds an order offer for a linear curve
288
+ *
289
+ * @param {OracleAnnouncement} announcement oracle announcement
290
+ * @param {Value} offerCollateral offer collateral amount
291
+ * @param {Value} minPayout minimum payout
292
+ * @param {Value} maxPayout maximum payout (also total collateral)
293
+ * @param {bigint} startOutcome oracle outcome (in bits or sats)
294
+ * @param {bigint} endOutcome oracle outcome (in bits or sats)
295
+ * @param {bigint} feePerByte sats/vbyte
296
+ * @param {Value} rounding rounding mod for RoundingInterval
297
+ * @param {BitcoinNetwork} network bitcoin, bitcoin_testnet or bitcoin_regtest
298
+ * @param {DlcParty} [shiftForFees] shift for offerer, acceptor or neither (who should pay fees)
299
+ * @param {Value} [fees] fees to shift
300
+ * @returns {OrderOffer}
301
+ */
302
+ const buildLinearOrderOffer = (announcement, offerCollateral, minPayout, maxPayout, startOutcome, endOutcome, feePerByte, roundingIntervals, network, shiftForFees = 'neither', fees = bitcoin_1.Value.fromSats(0)) => {
303
+ if (maxPayout.lt(minPayout))
304
+ throw Error('maxPayout must be greater than minPayout');
305
+ if (endOutcome < startOutcome)
306
+ throw Error('endOutcome must be greater than startOutcome');
307
+ const eventDescriptor = (0, exports.getDigitDecompositionEventDescriptor)(announcement);
308
+ const totalCollateral = maxPayout.sats;
309
+ const { payoutFunction } = LinearPayout_1.LinearPayout.buildPayoutFunction(minPayout.sats, maxPayout.sats, startOutcome, endOutcome, eventDescriptor.base, eventDescriptor.nbDigits);
310
+ const orderOffer = (0, exports.buildOrderOffer)(announcement, totalCollateral, offerCollateral.sats, payoutFunction, roundingIntervals, feePerByte, network.name);
311
+ const positionInfo = new messaging_1.OrderPositionInfo();
312
+ positionInfo.shiftForFees = shiftForFees;
313
+ positionInfo.fees = shiftForFees === 'neither' ? BigInt(0) : fees.sats;
314
+ orderOffer.positionInfo = positionInfo;
315
+ return orderOffer;
316
+ };
317
+ exports.buildLinearOrderOffer = buildLinearOrderOffer;
318
+ /**
319
+ * Builds a custom strategy order offer
320
+ *
321
+ * Calculates offer fees
322
+ * calculates the minimum max gain
323
+ * maxLoss and maxGain are normalized to 1 BTC contracts
324
+ *
325
+ * shiftForFees 'offeror' means 'offeror' pays network fees
326
+ * shiftForFees 'acceptor' means 'acceptor' pays network fees
327
+ *
328
+ * numContracts refers to the number of DLCs in the funding transaction
329
+ * if it's not a batch dlc funding transaction, then this is not relevant
330
+ *
331
+ * @param {OracleAnnouncement} announcement oracle announcement
332
+ * @param {Value} contractSize contract size
333
+ * @param {Value} normalizedMaxLoss maximum amount that can be lost based on 1 BTC contract
334
+ * @param {Value} normalizedMaxGain maximum amount that can be gained based on 1 BTC contract
335
+ * @param {bigint} feePerByte sats/vbyte
336
+ * @param {Value} roundingIntervals rounding mod for RoundingInterval
337
+ * @param {BitcoinNetwork} network bitcoin, bitcoin_testnet or bitcoin_regtest
338
+ * @param {DlcParty} [shiftForFees] shift for offerer, acceptor or neither
339
+ * @param {Value} [fees_] fees to shift
340
+ * @param {Value} [collateral] collateral to use
341
+ * @param {number} [numOfferInputs] number of inputs to use
342
+ * @param {number} [numContracts] number of DLCs in the funding transaction
343
+ *
344
+ * @returns {OrderOffer}
345
+ */
346
+ const buildCustomStrategyOrderOffer = (announcement, contractSize, normalizedMaxLoss, normalizedMaxGain, feePerByte, roundingIntervals, network, shiftForFees = 'neither', fees_ = bitcoin_1.Value.fromSats(0), // NOTE: fees should be divided before doing batch transaction
347
+ collateral = bitcoin_1.Value.fromSats(0), numOfferInputs = 1, numContracts = 1, skipValidation = false) => {
348
+ if (contractSize.eq(bitcoin_1.Value.zero())) {
349
+ throw Error('contractSize must be greater than 0');
350
+ }
351
+ if (collateral.eq(bitcoin_1.Value.zero())) {
352
+ collateral = contractSize.clone();
353
+ }
354
+ const eventDescriptor = (0, exports.getDigitDecompositionEventDescriptor)(announcement);
355
+ const unit = eventDescriptor.unit;
356
+ const fees = bitcoin_1.Value.fromSats(Number(new decimal_js_1.default(Number(fees_.sats)).dividedBy(numContracts).toFixed(0)));
357
+ const finalizer = (0, TxFinalizer_1.getFinalizerByCount)(feePerByte, numOfferInputs, 1, numContracts);
358
+ const offerFees = bitcoin_1.Value.fromSats(finalizer.offerFees);
359
+ // Use offerFees + dustThreshold for min max gain, to ensure in the case of
360
+ // 0 PnL the acceptor payout is not dust
361
+ const minMaxGainForContractSize_ = offerFees.addn(bitcoin_1.Value.fromSats((0, CoinSelect_1.dustThreshold)(BigInt(feePerByte))));
362
+ const minMaxGainForContractSize = bitcoin_1.Value.fromSats((0, exports.roundUpToNearestMultiplier)(minMaxGainForContractSize_.sats, BigInt(exports.UNIT_MULTIPLIER[unit.toLowerCase()])));
363
+ const maxLossForContractSize = bitcoin_1.Value.fromSats((0, exports.roundUpToNearestMultiplier)((normalizedMaxLoss.sats * contractSize.sats) / BigInt(1e8), BigInt(exports.UNIT_MULTIPLIER[unit.toLowerCase()])));
364
+ const tempMaxGainForContractSize = bitcoin_1.Value.fromSats((0, exports.roundUpToNearestMultiplier)((normalizedMaxGain.sats * contractSize.sats) / BigInt(1e8), BigInt(exports.UNIT_MULTIPLIER[unit.toLowerCase()])));
365
+ const maxGainForContractSize = bitcoin_1.Value.zero();
366
+ if (tempMaxGainForContractSize.lt(minMaxGainForContractSize)) {
367
+ maxGainForContractSize.add(minMaxGainForContractSize);
368
+ }
369
+ else {
370
+ maxGainForContractSize.add(tempMaxGainForContractSize);
371
+ }
372
+ const maxGainAdjusted = bitcoin_1.Value.fromSats((0, exports.roundToNearestMultiplier)((maxGainForContractSize.sats * BigInt(1e8)) / contractSize.sats, BigInt(exports.UNIT_MULTIPLIER[unit.toLowerCase()])));
373
+ const feesAdjusted = bitcoin_1.Value.fromSats((0, exports.roundToNearestMultiplier)((fees.sats * BigInt(1e8)) / contractSize.sats, BigInt(exports.UNIT_MULTIPLIER[unit.toLowerCase()])));
374
+ const minPayout = collateral.clone();
375
+ if (minPayout.lt(maxLossForContractSize.addn(maxGainForContractSize))) {
376
+ throw new Error('Subtraction would result in a negative value for minPayout.');
377
+ }
378
+ minPayout.sub(maxLossForContractSize);
379
+ minPayout.sub(maxGainForContractSize);
380
+ const maxPayout = collateral.clone();
381
+ const startOutcomeValue = bitcoin_1.Value.fromBitcoin(1);
382
+ startOutcomeValue.sub(normalizedMaxLoss);
383
+ const endOutcomeValue = bitcoin_1.Value.fromBitcoin(1);
384
+ endOutcomeValue.add(maxGainAdjusted);
385
+ if (shiftForFees === 'offeror') {
386
+ startOutcomeValue.add(feesAdjusted);
387
+ endOutcomeValue.add(feesAdjusted);
388
+ }
389
+ else if (shiftForFees === 'acceptor') {
390
+ startOutcomeValue.sub(feesAdjusted);
391
+ endOutcomeValue.sub(feesAdjusted);
392
+ }
393
+ const startOutcome = startOutcomeValue.sats / BigInt(exports.UNIT_MULTIPLIER[unit.toLowerCase()]);
394
+ const endOutcome = endOutcomeValue.sats / BigInt(exports.UNIT_MULTIPLIER[unit.toLowerCase()]);
395
+ const offerCollateral = collateral.clone();
396
+ if (offerCollateral.lt(maxGainForContractSize)) {
397
+ throw new Error('Subtraction would result in a negative value for offerCollateral.');
398
+ }
399
+ offerCollateral.sub(maxGainForContractSize);
400
+ const orderOffer = (0, exports.buildLinearOrderOffer)(announcement, offerCollateral, minPayout, maxPayout, startOutcome, endOutcome, feePerByte, roundingIntervals, network, shiftForFees, fees);
401
+ orderOffer.positionInfo.contractSize =
402
+ contractSize.sats;
403
+ orderOffer.positionInfo.instrumentName = orderOffer.contractInfo
404
+ .oracleInfo.announcement.oracleEvent.eventId;
405
+ if (!skipValidation)
406
+ orderOffer.validate();
407
+ return orderOffer;
408
+ };
409
+ exports.buildCustomStrategyOrderOffer = buildCustomStrategyOrderOffer;
410
+ const buildRoundingIntervalsFromIntervals = (contractSize, intervals) => {
411
+ const roundingIntervals = new messaging_1.RoundingIntervals();
412
+ roundingIntervals.intervals = intervals.map((interval) => {
413
+ const roundingMod = (0, exports.computeRoundingModulus)(interval.rounding, contractSize);
414
+ return {
415
+ beginInterval: interval.beginInterval,
416
+ roundingMod,
417
+ };
418
+ });
419
+ return roundingIntervals;
420
+ };
421
+ exports.buildRoundingIntervalsFromIntervals = buildRoundingIntervalsFromIntervals;
422
+ //# sourceMappingURL=Builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Builder.js","sourceRoot":"","sources":["../../../lib/dlc/finance/Builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { PayoutFunction } from '@node-dlc/messaging';
2
+ import { HyperbolaPayoutCurve } from '../HyperbolaPayoutCurve';
3
+ export declare const CoveredCall: {
4
+ buildCurve: (strikePrice: bigint, contractSize: bigint, oracleBase: number, oracleDigits: number) => {
5
+ maxOutcome: bigint;
6
+ totalCollateral: bigint;
7
+ payoutCurve: HyperbolaPayoutCurve;
8
+ };
9
+ buildPayoutFunction: (strikePrice: bigint, contractSize: bigint, oracleBase: number, oracleDigits: number) => {
10
+ payoutFunction: PayoutFunction;
11
+ totalCollateral: bigint;
12
+ };
13
+ };
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.CoveredCall = void 0;
7
+ const messaging_1 = require("@node-dlc/messaging");
8
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
9
+ const BigIntUtils_1 = require("../../utils/BigIntUtils");
10
+ const HyperbolaPayoutCurve_1 = require("../HyperbolaPayoutCurve");
11
+ const buildCurve = (strikePrice, contractSize, oracleBase, oracleDigits) => {
12
+ const a = new bignumber_js_1.default(1);
13
+ const b = new bignumber_js_1.default(0);
14
+ const c = new bignumber_js_1.default(0);
15
+ const d = new bignumber_js_1.default((strikePrice * contractSize).toString());
16
+ const f_1 = new bignumber_js_1.default(0);
17
+ const _f_2 = new bignumber_js_1.default(0);
18
+ const _tempHyperbolaPayoutCurve = new HyperbolaPayoutCurve_1.HyperbolaPayoutCurve(a, b, c, d, f_1, _f_2);
19
+ const maxOutcome = BigInt(new bignumber_js_1.default(oracleBase).pow(oracleDigits).minus(1).toString(10));
20
+ const maxOutcomePayout = _tempHyperbolaPayoutCurve
21
+ .getPayout(maxOutcome)
22
+ .integerValue();
23
+ return {
24
+ maxOutcome,
25
+ totalCollateral: contractSize - (0, BigIntUtils_1.toBigInt)(maxOutcomePayout),
26
+ payoutCurve: new HyperbolaPayoutCurve_1.HyperbolaPayoutCurve(a, b, c, d, f_1, maxOutcomePayout.negated()),
27
+ };
28
+ };
29
+ const buildPayoutFunction = (strikePrice, contractSize, oracleBase, oracleDigits) => {
30
+ const { maxOutcome, totalCollateral, payoutCurve } = buildCurve(strikePrice, contractSize, oracleBase, oracleDigits);
31
+ const payoutFunction = new messaging_1.PayoutFunction();
32
+ // Defensive fix: ensure payoutFunctionPieces is initialized as an array
33
+ if (!payoutFunction.payoutFunctionPieces) {
34
+ payoutFunction.payoutFunctionPieces = [];
35
+ }
36
+ const curvePiece = payoutCurve.toPayoutCurvePiece();
37
+ // Set the left and right endpoints for the hyperbola piece (matching rust-dlc structure)
38
+ curvePiece.leftEndPoint = {
39
+ eventOutcome: BigInt(0),
40
+ outcomePayout: totalCollateral,
41
+ extraPrecision: 0,
42
+ };
43
+ curvePiece.rightEndPoint = {
44
+ eventOutcome: maxOutcome,
45
+ outcomePayout: BigInt(0),
46
+ extraPrecision: 0,
47
+ };
48
+ payoutFunction.payoutFunctionPieces.push({
49
+ endPoint: {
50
+ eventOutcome: maxOutcome,
51
+ outcomePayout: BigInt(0),
52
+ extraPrecision: 0,
53
+ },
54
+ payoutCurvePiece: curvePiece,
55
+ });
56
+ payoutFunction.lastEndpoint = {
57
+ eventOutcome: maxOutcome,
58
+ outcomePayout: BigInt(0),
59
+ extraPrecision: 0,
60
+ };
61
+ return {
62
+ payoutFunction,
63
+ totalCollateral,
64
+ };
65
+ };
66
+ exports.CoveredCall = { buildCurve, buildPayoutFunction };
67
+ //# sourceMappingURL=CoveredCall.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CoveredCall.js","sourceRoot":"","sources":["../../../lib/dlc/finance/CoveredCall.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,114 @@
1
+ import { Value } from '@node-dlc/bitcoin';
2
+ import { ContractInfo, OrderPositionInfo, PayoutFunction } from '@node-dlc/messaging';
3
+ import { DlcParty } from './Builder';
4
+ import { HasContractInfo, HasOfferCollateral, HasType } from './OptionInfo';
5
+ export interface CsoInfo {
6
+ normalizedMaxGain: Value;
7
+ normalizedMaxLoss: Value;
8
+ maxGainForContractSize: Value;
9
+ maxLossForContractSize: Value;
10
+ minPayout: bigint;
11
+ maxPayout: bigint;
12
+ contractSize: Value;
13
+ offerCollateral: Value;
14
+ totalCollateral: Value;
15
+ expiry: Date;
16
+ }
17
+ export interface CsoInfoParams {
18
+ normalizedMaxGain: Value;
19
+ normalizedMaxLoss: Value;
20
+ maxGainForContractSize: Value;
21
+ maxLossForContractSize: Value;
22
+ offerCollateral: Value;
23
+ }
24
+ export type MaybeHasPositionInfo = {
25
+ positionInfo?: OrderPositionInfo;
26
+ };
27
+ /**
28
+ * getCsoInfoParamsFromContractInfo V0
29
+ *
30
+ * Old getCsoInfoParamsFromContractInfo implementation
31
+ *
32
+ * @param {Value} contractSize - The size of the contract in terms of value.
33
+ * @param {Value} collateral - The collateral value put up for the contract.
34
+ * @param {DlcParty} shiftForFees - Specifies which party ('offeror' or 'acceptor') will bear the fees, affecting the outcome values.
35
+ * @param {Value} fees - The fees associated with the contract.
36
+ * @param {string} unit - The unit of measurement for the contract outcomes (e.g., 'BTC').
37
+ * @param {Value} startOutcomeValue - The starting outcome value for the contract.
38
+ * @param {Value} endOutcomeValue - The ending outcome value for the contract.
39
+ * @returns {CsoInfoParams} An object containing the calculated CSO parameters:
40
+ * - normalizedMaxGain: Maximum gain relative to a 1 BTC contract.
41
+ * - normalizedMaxLoss: Maximum loss relative to a 1 BTC contract.
42
+ * - maxGainForContractSize: Maximum gain for the actual contract size.
43
+ * - maxLossForContractSize: Maximum loss for the actual contract size.
44
+ * - offerCollateral: The offer collateral value after adjustments.
45
+ *
46
+ * Note: This function calculates the adjusted fees incorrectly, using collateral instead of contract size. Use v1 where possible.
47
+ */
48
+ export declare const getCsoInfoParamsFromContractInfoV0: (contractSize: Value, collateral: Value, shiftForFees: DlcParty, fees: Value, unit: string, startOutcomeValue: Value, endOutcomeValue: Value) => CsoInfoParams;
49
+ /**
50
+ * getCsoInfoParamsFromContractInfo V1
51
+ *
52
+ * Fixed getCsoInfoParamsFromContractInfo implementation
53
+ *
54
+ * @param {Value} contractSize - The size of the contract in terms of value.
55
+ * @param {Value} collateral - The collateral value put up for the contract.
56
+ * @param {DlcParty} shiftForFees - Specifies which party ('offeror' or 'acceptor') will bear the fees, affecting the outcome values.
57
+ * @param {Value} fees - The fees associated with the contract.
58
+ * @param {string} unit - The unit of measurement for the contract outcomes (e.g., 'BTC').
59
+ * @param {Value} startOutcomeValue - The starting outcome value for the contract.
60
+ * @param {Value} endOutcomeValue - The ending outcome value for the contract.
61
+ * @returns {CsoInfoParams} An object containing the calculated CSO parameters:
62
+ * - normalizedMaxGain: Maximum gain relative to a 1 BTC contract.
63
+ * - normalizedMaxLoss: Maximum loss relative to a 1 BTC contract.
64
+ * - maxGainForContractSize: Maximum gain for the actual contract size.
65
+ * - maxLossForContractSize: Maximum loss for the actual contract size.
66
+ * - offerCollateral: The offer collateral value after adjustments.
67
+ *
68
+ * This version improves upon the previous by correctly adjusting fees based on the contract size, leading to more accurate
69
+ * calculations of CSO parameters.
70
+ */
71
+ export declare const getCsoInfoParamsFromContractInfoV1: (contractSize: Value, collateral: Value, shiftForFees: DlcParty, fees: Value, unit: string, startOutcomeValue: Value, endOutcomeValue: Value) => CsoInfoParams;
72
+ /**
73
+ * Decode CsoInfo from a ContractInfo object. Essentially the opposite of buildCustomStrategyOrderOffer
74
+ *
75
+ * @param {_contractInfo} ContractInfo - Contract Info object, containing oracle and descriptor info
76
+ * @param {DlcParty} shiftForFees - Specifies which party ('offeror', 'acceptor', or 'neither') will pay for network fees
77
+ * @param {Value} fees - Network fees associated with the contract. Defaults to 0 sats.
78
+ * @param {_contractSize} Value - Optional. If not provided, it defaults to the total collateral.
79
+ * @param {csoVersion} 'v0' | 'v1' - Specifies the version of the CSO parameter calculation to use. Defaults to 'v1'.
80
+ * @returns {CsoInfo} An object containing the calculated CSO information:
81
+ * - normalizedMaxGain: Maximum gain relative to a 1 BTC contract.
82
+ * - normalizedMaxLoss: Maximum loss relative to a 1 BTC contract.
83
+ * - maxGainForContractSize: Maximum gain for the actual contract size.
84
+ * - maxLossForContractSize: Maximum loss for the actual contract size.
85
+ * - minPayout: Minimum payout as determined by the contract's payout function.
86
+ * - maxPayout: Maximum payout as determined by the contract's payout function.
87
+ * - contractSize: The size of the contract in terms of value.
88
+ * - offerCollateral: The offer collateral value after adjustments.
89
+ * - totalCollateral: The total collateral put up for the contract.
90
+ * - expiry: The expiry date of the contract based on the oracle's event maturity epoch.
91
+ *
92
+ * Note: This function performs several validations to ensure that the contract information and its components are of the
93
+ * expected types and formats.
94
+ * It throws errors if unsupported types or formats are encountered.
95
+ */
96
+ export declare const getCsoInfoFromContractInfo: (_contractInfo: ContractInfo, shiftForFees?: DlcParty, fees?: Value, _contractSize?: Value, csoVersion?: 'v0' | 'v1') => CsoInfo;
97
+ /**
98
+ * Get CsoInfo from OrderOffer or DlcOffer and validate
99
+ *
100
+ * @param {HasContractInfo & HasType} offer
101
+ * @returns {CsoInfo}
102
+ */
103
+ export declare const getCsoInfoFromOffer: (offer: HasContractInfo & HasType & HasOfferCollateral & MaybeHasPositionInfo, csoVersion?: 'v0' | 'v1') => CsoInfo;
104
+ /**
105
+ * Validate Payout Function for proper CSO format
106
+ *
107
+ * It should have 3 PayoutCurvePieces which consist of a flat line (maxLoss),
108
+ * ascending line (maxLoss to maxGain) and finally another flat line (maxGain)
109
+ *
110
+ * All PayoutCurvePieces should be type PolynomialPayoutCurvePieces
111
+ *
112
+ * @param {PayoutFunction} payoutFunction
113
+ */
114
+ export declare const validateCsoPayoutFunction: (payoutFunction: PayoutFunction) => void;