@atomicfinance/types 4.0.0 → 4.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (510) hide show
  1. package/.turbo/turbo-lint.log +1 -0
  2. package/.yalc/@node-dlc/bitcoin/.nyc_output/982e80bf-a70c-452f-b63d-d749ae385531.json +1 -0
  3. package/.yalc/@node-dlc/bitcoin/.nyc_output/processinfo/982e80bf-a70c-452f-b63d-d749ae385531.json +1 -0
  4. package/.yalc/@node-dlc/bitcoin/.nyc_output/processinfo/index.json +1 -0
  5. package/.yalc/@node-dlc/bitcoin/README.md +11 -0
  6. package/.yalc/@node-dlc/bitcoin/__tests__/bitcoin/amount.spec.ts +330 -0
  7. package/.yalc/@node-dlc/bitcoin/__tests__/bitcoin/value.spec.ts +320 -0
  8. package/.yalc/@node-dlc/bitcoin/__tests__/tsconfig.json +8 -0
  9. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/Amount.ts.html +290 -0
  10. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/Base58.ts.html +269 -0
  11. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/Base58Check.ts.html +182 -0
  12. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/BitcoinError.ts.html +173 -0
  13. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/BitcoinErrorCode.ts.html +110 -0
  14. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/HashByteOrder.ts.html +143 -0
  15. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/HashValue.ts.html +350 -0
  16. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/LexicographicalSorters.ts.html +191 -0
  17. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/LockTime.ts.html +386 -0
  18. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/OpCodes.ts.html +437 -0
  19. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/OutPoint.ts.html +383 -0
  20. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/Script.ts.html +1607 -0
  21. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/Sequence.ts.html +713 -0
  22. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/SigHashType.ts.html +137 -0
  23. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/Stack.ts.html +323 -0
  24. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/TimeLockMode.ts.html +128 -0
  25. package/.yalc/@node-dlc/{messaging/coverage/lcov-report/lib/serde/SerdeUtils.ts.html → bitcoin/coverage/lcov-report/Tx.ts.html} +617 -491
  26. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/TxBuilder.ts.html +971 -0
  27. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/TxIn.ts.html +425 -0
  28. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/TxOut.ts.html +341 -0
  29. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/Value.ts.html +683 -0
  30. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/Wif.ts.html +311 -0
  31. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/Witness.ts.html +275 -0
  32. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/base.css +224 -0
  33. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/block-navigation.js +79 -0
  34. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/favicon.png +0 -0
  35. package/.yalc/@node-dlc/{messaging/coverage/lcov-report/lib/serde → bitcoin/coverage/lcov-report}/index.html +45 -30
  36. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/index.ts.html +164 -0
  37. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/prettify.css +1 -0
  38. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/prettify.js +2 -0
  39. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  40. package/.yalc/@node-dlc/bitcoin/coverage/lcov-report/sorter.js +170 -0
  41. package/.yalc/@node-dlc/bitcoin/coverage/lcov.info +123 -0
  42. package/.yalc/@node-dlc/bitcoin/dist/Amount.d.ts +48 -0
  43. package/.yalc/@node-dlc/bitcoin/dist/Amount.js +68 -0
  44. package/.yalc/@node-dlc/bitcoin/dist/Amount.js.map +1 -0
  45. package/.yalc/@node-dlc/bitcoin/dist/Base58.d.ts +22 -0
  46. package/.yalc/@node-dlc/bitcoin/dist/Base58.js +62 -0
  47. package/.yalc/@node-dlc/bitcoin/dist/Base58.js.map +1 -0
  48. package/.yalc/@node-dlc/bitcoin/dist/Base58Check.d.ts +14 -0
  49. package/.yalc/@node-dlc/bitcoin/dist/Base58Check.js +36 -0
  50. package/.yalc/@node-dlc/bitcoin/dist/Base58Check.js.map +1 -0
  51. package/.yalc/@node-dlc/bitcoin/dist/BitcoinError.d.ts +6 -0
  52. package/.yalc/@node-dlc/bitcoin/dist/BitcoinError.js +36 -0
  53. package/.yalc/@node-dlc/bitcoin/dist/BitcoinError.js.map +1 -0
  54. package/.yalc/@node-dlc/bitcoin/dist/BitcoinErrorCode.d.ts +10 -0
  55. package/.yalc/@node-dlc/bitcoin/dist/BitcoinErrorCode.js +15 -0
  56. package/.yalc/@node-dlc/bitcoin/dist/BitcoinErrorCode.js.map +1 -0
  57. package/.yalc/@node-dlc/bitcoin/dist/Block.d.ts +19 -0
  58. package/.yalc/@node-dlc/bitcoin/dist/Block.js +3 -0
  59. package/.yalc/@node-dlc/bitcoin/dist/Block.js.map +1 -0
  60. package/.yalc/@node-dlc/bitcoin/dist/HashByteOrder.d.ts +20 -0
  61. package/.yalc/@node-dlc/bitcoin/dist/HashByteOrder.js +25 -0
  62. package/.yalc/@node-dlc/bitcoin/dist/HashByteOrder.js.map +1 -0
  63. package/.yalc/@node-dlc/bitcoin/dist/HashValue.d.ts +55 -0
  64. package/.yalc/@node-dlc/bitcoin/dist/HashValue.js +82 -0
  65. package/.yalc/@node-dlc/bitcoin/dist/HashValue.js.map +1 -0
  66. package/.yalc/@node-dlc/bitcoin/dist/ICloneable.d.ts +3 -0
  67. package/.yalc/@node-dlc/bitcoin/dist/ICloneable.js +3 -0
  68. package/.yalc/@node-dlc/bitcoin/dist/ICloneable.js.map +1 -0
  69. package/.yalc/@node-dlc/bitcoin/dist/LexicographicalSorters.d.ts +18 -0
  70. package/.yalc/@node-dlc/bitcoin/dist/LexicographicalSorters.js +41 -0
  71. package/.yalc/@node-dlc/bitcoin/dist/LexicographicalSorters.js.map +1 -0
  72. package/.yalc/@node-dlc/bitcoin/dist/LockTime.d.ts +61 -0
  73. package/.yalc/@node-dlc/bitcoin/dist/LockTime.js +94 -0
  74. package/.yalc/@node-dlc/bitcoin/dist/LockTime.js.map +1 -0
  75. package/.yalc/@node-dlc/bitcoin/dist/OpCodes.d.ts +102 -0
  76. package/.yalc/@node-dlc/bitcoin/dist/OpCodes.js +116 -0
  77. package/.yalc/@node-dlc/bitcoin/dist/OpCodes.js.map +1 -0
  78. package/.yalc/@node-dlc/bitcoin/dist/OutPoint.d.ts +57 -0
  79. package/.yalc/@node-dlc/bitcoin/dist/OutPoint.js +88 -0
  80. package/.yalc/@node-dlc/bitcoin/dist/OutPoint.js.map +1 -0
  81. package/.yalc/@node-dlc/bitcoin/dist/Script.d.ts +185 -0
  82. package/.yalc/@node-dlc/bitcoin/dist/Script.js +404 -0
  83. package/.yalc/@node-dlc/bitcoin/dist/Script.js.map +1 -0
  84. package/.yalc/@node-dlc/bitcoin/dist/ScriptCmd.d.ts +3 -0
  85. package/.yalc/@node-dlc/bitcoin/dist/ScriptCmd.js +3 -0
  86. package/.yalc/@node-dlc/bitcoin/dist/ScriptCmd.js.map +1 -0
  87. package/.yalc/@node-dlc/bitcoin/dist/Sequence.d.ts +116 -0
  88. package/.yalc/@node-dlc/bitcoin/dist/Sequence.js +187 -0
  89. package/.yalc/@node-dlc/bitcoin/dist/Sequence.js.map +1 -0
  90. package/.yalc/@node-dlc/bitcoin/dist/SigHashType.d.ts +7 -0
  91. package/.yalc/@node-dlc/bitcoin/dist/SigHashType.js +27 -0
  92. package/.yalc/@node-dlc/bitcoin/dist/SigHashType.js.map +1 -0
  93. package/.yalc/@node-dlc/bitcoin/dist/SizeResult.d.ts +5 -0
  94. package/.yalc/@node-dlc/bitcoin/dist/SizeResult.js +3 -0
  95. package/.yalc/@node-dlc/bitcoin/dist/SizeResult.js.map +1 -0
  96. package/.yalc/@node-dlc/bitcoin/dist/Sorter.d.ts +1 -0
  97. package/.yalc/@node-dlc/bitcoin/dist/Sorter.js +3 -0
  98. package/.yalc/@node-dlc/bitcoin/dist/Sorter.js.map +1 -0
  99. package/.yalc/@node-dlc/bitcoin/dist/Stack.d.ts +15 -0
  100. package/.yalc/@node-dlc/bitcoin/dist/Stack.js +77 -0
  101. package/.yalc/@node-dlc/bitcoin/dist/Stack.js.map +1 -0
  102. package/.yalc/@node-dlc/bitcoin/dist/TimeLockMode.d.ts +15 -0
  103. package/.yalc/@node-dlc/bitcoin/dist/TimeLockMode.js +20 -0
  104. package/.yalc/@node-dlc/bitcoin/dist/TimeLockMode.js.map +1 -0
  105. package/.yalc/@node-dlc/bitcoin/dist/Tx.d.ts +150 -0
  106. package/.yalc/@node-dlc/bitcoin/dist/Tx.js +408 -0
  107. package/.yalc/@node-dlc/bitcoin/dist/Tx.js.map +1 -0
  108. package/.yalc/@node-dlc/bitcoin/dist/TxBuilder.d.ts +110 -0
  109. package/.yalc/@node-dlc/bitcoin/dist/TxBuilder.js +238 -0
  110. package/.yalc/@node-dlc/bitcoin/dist/TxBuilder.js.map +1 -0
  111. package/.yalc/@node-dlc/bitcoin/dist/TxIn.d.ts +71 -0
  112. package/.yalc/@node-dlc/bitcoin/dist/TxIn.js +79 -0
  113. package/.yalc/@node-dlc/bitcoin/dist/TxIn.js.map +1 -0
  114. package/.yalc/@node-dlc/bitcoin/dist/TxOut.d.ts +57 -0
  115. package/.yalc/@node-dlc/bitcoin/dist/TxOut.js +68 -0
  116. package/.yalc/@node-dlc/bitcoin/dist/TxOut.js.map +1 -0
  117. package/.yalc/@node-dlc/bitcoin/dist/Value.d.ts +122 -0
  118. package/.yalc/@node-dlc/bitcoin/dist/Value.js +180 -0
  119. package/.yalc/@node-dlc/bitcoin/dist/Value.js.map +1 -0
  120. package/.yalc/@node-dlc/bitcoin/dist/Wif.d.ts +41 -0
  121. package/.yalc/@node-dlc/bitcoin/dist/Wif.js +62 -0
  122. package/.yalc/@node-dlc/bitcoin/dist/Wif.js.map +1 -0
  123. package/.yalc/@node-dlc/bitcoin/dist/Witness.d.ts +41 -0
  124. package/.yalc/@node-dlc/bitcoin/dist/Witness.js +63 -0
  125. package/.yalc/@node-dlc/bitcoin/dist/Witness.js.map +1 -0
  126. package/.yalc/@node-dlc/bitcoin/dist/index.d.ts +28 -0
  127. package/.yalc/@node-dlc/bitcoin/dist/index.js +45 -0
  128. package/.yalc/@node-dlc/bitcoin/dist/index.js.map +1 -0
  129. package/.yalc/@node-dlc/bitcoin/lib/Amount.ts +70 -0
  130. package/.yalc/@node-dlc/bitcoin/lib/Base58.ts +63 -0
  131. package/.yalc/@node-dlc/bitcoin/lib/Base58Check.ts +34 -0
  132. package/.yalc/@node-dlc/bitcoin/lib/BitcoinError.ts +31 -0
  133. package/.yalc/@node-dlc/bitcoin/lib/BitcoinErrorCode.ts +10 -0
  134. package/.yalc/@node-dlc/bitcoin/lib/Block.ts +20 -0
  135. package/.yalc/@node-dlc/bitcoin/lib/HashByteOrder.ts +21 -0
  136. package/.yalc/@node-dlc/bitcoin/lib/HashValue.ts +90 -0
  137. package/.yalc/@node-dlc/bitcoin/lib/ICloneable.ts +3 -0
  138. package/.yalc/@node-dlc/bitcoin/lib/LexicographicalSorters.ts +37 -0
  139. package/.yalc/@node-dlc/bitcoin/lib/LockTime.ts +102 -0
  140. package/.yalc/@node-dlc/bitcoin/lib/OpCodes.ts +119 -0
  141. package/.yalc/@node-dlc/bitcoin/lib/OutPoint.ts +101 -0
  142. package/.yalc/@node-dlc/bitcoin/lib/Script.ts +509 -0
  143. package/.yalc/@node-dlc/bitcoin/lib/ScriptCmd.ts +3 -0
  144. package/.yalc/@node-dlc/bitcoin/lib/Sequence.ts +211 -0
  145. package/.yalc/@node-dlc/bitcoin/lib/SigHashType.ts +19 -0
  146. package/.yalc/@node-dlc/bitcoin/lib/SizeResult.ts +5 -0
  147. package/.yalc/@node-dlc/bitcoin/lib/Sorter.ts +1 -0
  148. package/.yalc/@node-dlc/bitcoin/lib/Stack.ts +81 -0
  149. package/.yalc/@node-dlc/bitcoin/lib/TimeLockMode.ts +16 -0
  150. package/.yalc/@node-dlc/bitcoin/lib/Tx.ts +480 -0
  151. package/.yalc/@node-dlc/bitcoin/lib/TxBuilder.ts +297 -0
  152. package/.yalc/@node-dlc/bitcoin/lib/TxIn.ts +115 -0
  153. package/.yalc/@node-dlc/bitcoin/lib/TxOut.ts +87 -0
  154. package/.yalc/@node-dlc/bitcoin/lib/Value.ts +201 -0
  155. package/.yalc/@node-dlc/bitcoin/lib/Wif.ts +77 -0
  156. package/.yalc/@node-dlc/bitcoin/lib/Witness.ts +65 -0
  157. package/.yalc/@node-dlc/bitcoin/lib/index.ts +28 -0
  158. package/.yalc/@node-dlc/bitcoin/package.json +31 -0
  159. package/.yalc/@node-dlc/bitcoin/tsconfig.json +8 -0
  160. package/.yalc/@node-dlc/bitcoin/yalc.sig +1 -0
  161. package/.yalc/@node-dlc/messaging/.nyc_output/83d37f9d-cecf-4c52-a753-115ff80bbca0.json +1 -0
  162. package/.yalc/@node-dlc/messaging/.nyc_output/processinfo/83d37f9d-cecf-4c52-a753-115ff80bbca0.json +1 -0
  163. package/.yalc/@node-dlc/messaging/.nyc_output/processinfo/index.json +1 -1
  164. package/.yalc/@node-dlc/messaging/__tests__/_test-utils.ts +1 -0
  165. package/.yalc/@node-dlc/messaging/__tests__/compatibility/dlcspecs-compatibility.spec.ts +13 -47
  166. package/.yalc/@node-dlc/messaging/__tests__/compatibility/rust-dlc-cross-language.spec.ts +166 -253
  167. package/.yalc/@node-dlc/messaging/__tests__/compatibility/true-serialization-compatibility.spec.ts +214 -483
  168. package/.yalc/@node-dlc/messaging/__tests__/messages/ContractDescriptor.spec.ts +3 -1
  169. package/.yalc/@node-dlc/messaging/__tests__/messages/ContractInfo.spec.ts +1 -1
  170. package/.yalc/@node-dlc/messaging/__tests__/messages/DlcAccept.spec.ts +72 -0
  171. package/.yalc/@node-dlc/messaging/__tests__/messages/DlcInput.spec.ts +111 -0
  172. package/.yalc/@node-dlc/messaging/__tests__/messages/DlcOffer.spec.ts +99 -37
  173. package/.yalc/@node-dlc/messaging/__tests__/messages/FundingInput.spec.ts +148 -63
  174. package/.yalc/@node-dlc/messaging/__tests__/messages/OracleAttestation.spec.ts +2 -4
  175. package/.yalc/@node-dlc/messaging/__tests__/messages/OrderAccept.spec.ts +7 -9
  176. package/.yalc/@node-dlc/messaging/__tests__/messages/OrderNegotiationFields.spec.ts +135 -52
  177. package/.yalc/@node-dlc/messaging/__tests__/messages/OrderPositionInfo.spec.ts +6 -6
  178. package/.yalc/@node-dlc/messaging/__tests__/messages/PayoutCurvePiece.spec.ts +1 -1
  179. package/.yalc/@node-dlc/messaging/__tests__/messages/PayoutFunction.spec.ts +1 -1
  180. package/.yalc/@node-dlc/messaging/__tests__/serialize/F64.spec.ts +1 -0
  181. package/.yalc/@node-dlc/messaging/coverage/lcov-report/index.html +31 -31
  182. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/MessageType.ts.html +11 -5
  183. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/chain/ChainManager.ts.html +6 -3
  184. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/chain/ChainMemoryStore.ts.html +1 -1
  185. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/chain/index.html +1 -1
  186. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/domain/Address.ts.html +1 -1
  187. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/domain/index.html +1 -1
  188. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/index.html +9 -9
  189. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/index.ts.html +11 -8
  190. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/irc/IrcMessage.ts.html +1 -1
  191. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/irc/index.html +1 -1
  192. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/AddressCache.ts.html +1 -1
  193. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/BatchFundingGroup.ts.html +1 -1
  194. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/CetAdaptorSignatures.ts.html +22 -22
  195. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/CetAdaptorSignaturesV0.ts.html +46 -37
  196. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/CloseTLV.ts.html +344 -0
  197. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/ContractDescriptor.ts.html +61 -70
  198. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/ContractInfo.ts.html +59 -44
  199. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcAccept.ts.html +251 -119
  200. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcCancel.ts.html +1 -1
  201. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcClose.ts.html +12 -3
  202. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcCloseMetadata.ts.html +2 -11
  203. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcIds.ts.html +1 -1
  204. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcInfo.ts.html +1 -1
  205. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcInput.ts.html +581 -0
  206. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcMessage.ts.html +1 -1
  207. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcOffer.ts.html +307 -127
  208. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcSign.ts.html +61 -46
  209. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/DlcTransactions.ts.html +1 -1
  210. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/EventDescriptor.ts.html +67 -52
  211. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/FundingInput.ts.html +202 -70
  212. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/FundingSignatures.ts.html +15 -15
  213. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/FundingSignaturesV0.ts.html +47 -77
  214. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/NegotiationFields.ts.html +16 -4
  215. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/NodeAnnouncementMessage.ts.html +3 -3
  216. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleAnnouncement.ts.html +22 -22
  217. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleAnnouncementV0.ts.html +48 -270
  218. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleAttestation.ts.html +1 -1
  219. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleAttestationV0.ts.html +113 -404
  220. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleEvent.ts.html +49 -49
  221. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleEventContainer.ts.html +1 -1
  222. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleEventContainerV0.ts.html +22 -22
  223. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleEventV0.ts.html +61 -385
  224. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleIdentifier.ts.html +1 -1
  225. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleIdentifierV0.ts.html +1 -1
  226. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleInfo.ts.html +46 -25
  227. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OracleInfoV0.ts.html +55 -1378
  228. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OrderAccept.ts.html +68 -23
  229. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OrderIrcInfo.ts.html +1 -1
  230. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OrderMetadata.ts.html +1 -1
  231. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OrderNegotiationFields.ts.html +266 -107
  232. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OrderOffer.ts.html +31 -34
  233. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/OrderPositionInfo.ts.html +19 -88
  234. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/PayoutCurvePiece.ts.html +36 -21
  235. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/PayoutFunction.ts.html +34 -28
  236. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/RoundingIntervals.ts.html +18 -15
  237. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/RoundingIntervalsV0.ts.html +75 -129
  238. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/ScriptWitnessV0.ts.html +6 -6
  239. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/messages/index.html +84 -69
  240. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/serialize/F64.ts.html +8 -53
  241. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/serialize/deserializeTlv.ts.html +1 -1
  242. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/serialize/getTlv.ts.html +9 -9
  243. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/serialize/index.html +15 -15
  244. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/util.ts.html +22 -10
  245. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/validation/index.html +1 -1
  246. package/.yalc/@node-dlc/messaging/coverage/lcov-report/lib/validation/validate.ts.html +1 -1
  247. package/.yalc/@node-dlc/messaging/coverage/lcov.info +3049 -2826
  248. package/.yalc/@node-dlc/messaging/dist/MessageType.d.ts +2 -1
  249. package/.yalc/@node-dlc/messaging/dist/MessageType.js +2 -1
  250. package/.yalc/@node-dlc/messaging/dist/MessageType.js.map +1 -1
  251. package/.yalc/@node-dlc/messaging/dist/chain/ChainManager.js +1 -0
  252. package/.yalc/@node-dlc/messaging/dist/chain/ChainManager.js.map +1 -1
  253. package/.yalc/@node-dlc/messaging/dist/index.d.ts +5 -4
  254. package/.yalc/@node-dlc/messaging/dist/index.js +5 -4
  255. package/.yalc/@node-dlc/messaging/dist/index.js.map +1 -1
  256. package/.yalc/@node-dlc/messaging/dist/messages/CetAdaptorSignaturesV0.d.ts +42 -0
  257. package/.yalc/@node-dlc/messaging/dist/messages/CetAdaptorSignaturesV0.js +68 -0
  258. package/.yalc/@node-dlc/messaging/dist/messages/CetAdaptorSignaturesV0.js.map +1 -0
  259. package/.yalc/@node-dlc/messaging/dist/messages/CloseTLV.d.ts +38 -0
  260. package/.yalc/@node-dlc/messaging/dist/messages/CloseTLV.js +59 -0
  261. package/.yalc/@node-dlc/messaging/dist/messages/CloseTLV.js.map +1 -0
  262. package/.yalc/@node-dlc/messaging/dist/messages/ContractDescriptor.d.ts +11 -12
  263. package/.yalc/@node-dlc/messaging/dist/messages/ContractDescriptor.js +0 -1
  264. package/.yalc/@node-dlc/messaging/dist/messages/ContractDescriptor.js.map +1 -1
  265. package/.yalc/@node-dlc/messaging/dist/messages/ContractInfo.d.ts +10 -10
  266. package/.yalc/@node-dlc/messaging/dist/messages/ContractInfo.js +5 -1
  267. package/.yalc/@node-dlc/messaging/dist/messages/ContractInfo.js.map +1 -1
  268. package/.yalc/@node-dlc/messaging/dist/messages/DlcAccept.d.ts +15 -0
  269. package/.yalc/@node-dlc/messaging/dist/messages/DlcAccept.js +46 -5
  270. package/.yalc/@node-dlc/messaging/dist/messages/DlcAccept.js.map +1 -1
  271. package/.yalc/@node-dlc/messaging/dist/messages/DlcClose.js +6 -2
  272. package/.yalc/@node-dlc/messaging/dist/messages/DlcClose.js.map +1 -1
  273. package/.yalc/@node-dlc/messaging/dist/messages/DlcCloseMetadata.js.map +1 -1
  274. package/.yalc/@node-dlc/messaging/dist/messages/DlcInput.d.ts +56 -0
  275. package/.yalc/@node-dlc/messaging/dist/messages/DlcInput.js +135 -0
  276. package/.yalc/@node-dlc/messaging/dist/messages/DlcInput.js.map +1 -0
  277. package/.yalc/@node-dlc/messaging/dist/messages/DlcOffer.d.ts +16 -1
  278. package/.yalc/@node-dlc/messaging/dist/messages/DlcOffer.js +50 -5
  279. package/.yalc/@node-dlc/messaging/dist/messages/DlcOffer.js.map +1 -1
  280. package/.yalc/@node-dlc/messaging/dist/messages/DlcSign.js +11 -3
  281. package/.yalc/@node-dlc/messaging/dist/messages/DlcSign.js.map +1 -1
  282. package/.yalc/@node-dlc/messaging/dist/messages/EventDescriptor.d.ts +7 -6
  283. package/.yalc/@node-dlc/messaging/dist/messages/EventDescriptor.js +3 -0
  284. package/.yalc/@node-dlc/messaging/dist/messages/EventDescriptor.js.map +1 -1
  285. package/.yalc/@node-dlc/messaging/dist/messages/FundingInput.d.ts +7 -0
  286. package/.yalc/@node-dlc/messaging/dist/messages/FundingInput.js +31 -1
  287. package/.yalc/@node-dlc/messaging/dist/messages/FundingInput.js.map +1 -1
  288. package/.yalc/@node-dlc/messaging/dist/messages/FundingSignaturesV0.d.ts +34 -0
  289. package/.yalc/@node-dlc/messaging/dist/messages/FundingSignaturesV0.js +72 -0
  290. package/.yalc/@node-dlc/messaging/dist/messages/FundingSignaturesV0.js.map +1 -0
  291. package/.yalc/@node-dlc/messaging/dist/messages/NegotiationFields.d.ts +2 -2
  292. package/.yalc/@node-dlc/messaging/dist/messages/NegotiationFields.js +4 -0
  293. package/.yalc/@node-dlc/messaging/dist/messages/NegotiationFields.js.map +1 -1
  294. package/.yalc/@node-dlc/messaging/dist/messages/OracleAnnouncementV0.d.ts +47 -0
  295. package/.yalc/@node-dlc/messaging/dist/messages/OracleAnnouncementV0.js +76 -0
  296. package/.yalc/@node-dlc/messaging/dist/messages/OracleAnnouncementV0.js.map +1 -0
  297. package/.yalc/@node-dlc/messaging/dist/messages/OracleAttestationV0.d.ts +48 -0
  298. package/.yalc/@node-dlc/messaging/dist/messages/OracleAttestationV0.js +100 -0
  299. package/.yalc/@node-dlc/messaging/dist/messages/OracleAttestationV0.js.map +1 -0
  300. package/.yalc/@node-dlc/messaging/dist/messages/OracleEventContainerV0.d.ts +32 -0
  301. package/.yalc/@node-dlc/messaging/dist/messages/OracleEventContainerV0.js +67 -0
  302. package/.yalc/@node-dlc/messaging/dist/messages/OracleEventContainerV0.js.map +1 -0
  303. package/.yalc/@node-dlc/messaging/dist/messages/OracleEventV0.d.ts +54 -0
  304. package/.yalc/@node-dlc/messaging/dist/messages/OracleEventV0.js +100 -0
  305. package/.yalc/@node-dlc/messaging/dist/messages/OracleEventV0.js.map +1 -0
  306. package/.yalc/@node-dlc/messaging/dist/messages/OracleInfo.d.ts +8 -6
  307. package/.yalc/@node-dlc/messaging/dist/messages/OracleInfo.js +3 -0
  308. package/.yalc/@node-dlc/messaging/dist/messages/OracleInfo.js.map +1 -1
  309. package/.yalc/@node-dlc/messaging/dist/messages/OracleInfoV0.d.ts +15 -141
  310. package/.yalc/@node-dlc/messaging/dist/messages/OracleInfoV0.js +21 -350
  311. package/.yalc/@node-dlc/messaging/dist/messages/OracleInfoV0.js.map +1 -1
  312. package/.yalc/@node-dlc/messaging/dist/messages/OrderAccept.d.ts +3 -2
  313. package/.yalc/@node-dlc/messaging/dist/messages/OrderAccept.js +22 -7
  314. package/.yalc/@node-dlc/messaging/dist/messages/OrderAccept.js.map +1 -1
  315. package/.yalc/@node-dlc/messaging/dist/messages/OrderNegotiationFields.d.ts +48 -36
  316. package/.yalc/@node-dlc/messaging/dist/messages/OrderNegotiationFields.js +97 -50
  317. package/.yalc/@node-dlc/messaging/dist/messages/OrderNegotiationFields.js.map +1 -1
  318. package/.yalc/@node-dlc/messaging/dist/messages/OrderOffer.d.ts +1 -1
  319. package/.yalc/@node-dlc/messaging/dist/messages/OrderOffer.js +1 -1
  320. package/.yalc/@node-dlc/messaging/dist/messages/OrderOffer.js.map +1 -1
  321. package/.yalc/@node-dlc/messaging/dist/messages/OrderPositionInfo.d.ts +7 -13
  322. package/.yalc/@node-dlc/messaging/dist/messages/OrderPositionInfo.js +11 -25
  323. package/.yalc/@node-dlc/messaging/dist/messages/OrderPositionInfo.js.map +1 -1
  324. package/.yalc/@node-dlc/messaging/dist/messages/PayoutCurvePiece.js +5 -0
  325. package/.yalc/@node-dlc/messaging/dist/messages/PayoutCurvePiece.js.map +1 -1
  326. package/.yalc/@node-dlc/messaging/dist/messages/PayoutFunction.js +4 -1
  327. package/.yalc/@node-dlc/messaging/dist/messages/PayoutFunction.js.map +1 -1
  328. package/.yalc/@node-dlc/messaging/dist/messages/RoundingIntervals.js +1 -0
  329. package/.yalc/@node-dlc/messaging/dist/messages/RoundingIntervals.js.map +1 -1
  330. package/.yalc/@node-dlc/messaging/dist/messages/RoundingIntervalsV0.d.ts +47 -0
  331. package/.yalc/@node-dlc/messaging/dist/messages/RoundingIntervalsV0.js +86 -0
  332. package/.yalc/@node-dlc/messaging/dist/messages/RoundingIntervalsV0.js.map +1 -0
  333. package/.yalc/@node-dlc/messaging/dist/serialize/F64.d.ts +0 -8
  334. package/.yalc/@node-dlc/messaging/dist/serialize/F64.js +0 -13
  335. package/.yalc/@node-dlc/messaging/dist/serialize/F64.js.map +1 -1
  336. package/.yalc/@node-dlc/messaging/dist/util.d.ts +1 -1
  337. package/.yalc/@node-dlc/messaging/dist/util.js +2 -0
  338. package/.yalc/@node-dlc/messaging/dist/util.js.map +1 -1
  339. package/.yalc/@node-dlc/messaging/lib/MessageType.ts +3 -1
  340. package/.yalc/@node-dlc/messaging/lib/chain/ChainManager.ts +1 -0
  341. package/.yalc/@node-dlc/messaging/lib/index.ts +5 -4
  342. package/.yalc/@node-dlc/messaging/lib/messages/ContractDescriptor.ts +15 -16
  343. package/.yalc/@node-dlc/messaging/lib/messages/ContractInfo.ts +17 -12
  344. package/.yalc/@node-dlc/messaging/lib/messages/DlcAccept.ts +50 -6
  345. package/.yalc/@node-dlc/messaging/lib/messages/DlcClose.ts +4 -1
  346. package/.yalc/@node-dlc/messaging/lib/messages/DlcCloseMetadata.ts +0 -3
  347. package/.yalc/@node-dlc/messaging/lib/messages/DlcInput.ts +167 -0
  348. package/.yalc/@node-dlc/messaging/lib/messages/DlcOffer.ts +67 -7
  349. package/.yalc/@node-dlc/messaging/lib/messages/DlcSign.ts +5 -0
  350. package/.yalc/@node-dlc/messaging/lib/messages/EventDescriptor.ts +12 -7
  351. package/.yalc/@node-dlc/messaging/lib/messages/FundingInput.ts +45 -1
  352. package/.yalc/@node-dlc/messaging/lib/messages/NegotiationFields.ts +6 -2
  353. package/.yalc/@node-dlc/messaging/lib/messages/NodeAnnouncementMessage.ts +2 -2
  354. package/.yalc/@node-dlc/messaging/lib/messages/OracleInfo.ts +15 -8
  355. package/.yalc/@node-dlc/messaging/lib/messages/OrderAccept.ts +28 -13
  356. package/.yalc/@node-dlc/messaging/lib/messages/OrderNegotiationFields.ts +127 -74
  357. package/.yalc/@node-dlc/messaging/lib/messages/OrderOffer.ts +2 -3
  358. package/.yalc/@node-dlc/messaging/lib/messages/OrderPositionInfo.ts +10 -33
  359. package/.yalc/@node-dlc/messaging/lib/messages/PayoutCurvePiece.ts +5 -0
  360. package/.yalc/@node-dlc/messaging/lib/messages/PayoutFunction.ts +2 -0
  361. package/.yalc/@node-dlc/messaging/lib/messages/RoundingIntervals.ts +1 -0
  362. package/.yalc/@node-dlc/messaging/lib/serialize/F64.ts +0 -15
  363. package/.yalc/@node-dlc/messaging/lib/serialize/readTlvs.ts +1 -1
  364. package/.yalc/@node-dlc/messaging/lib/util.ts +5 -1
  365. package/.yalc/@node-dlc/messaging/package.json +8 -8
  366. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/enum_3_of_3_test.json +76 -74
  367. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/enum_3_of_5_test.json +90 -88
  368. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/enum_and_numerical_3_of_5_test.json +162 -160
  369. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/enum_and_numerical_5_of_5_test.json +162 -160
  370. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/enum_and_numerical_with_diff_3_of_5_test.json +164 -162
  371. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/enum_and_numerical_with_diff_5_of_5_test.json +164 -162
  372. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/enum_single_oracle_test.json +60 -58
  373. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/single_oracle_numerical_hyperbola_test.json +71 -69
  374. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/single_oracle_numerical_test.json +71 -69
  375. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/three_of_five_oracle_numerical_with_diff_test.json +119 -117
  376. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/three_of_three_oracle_numerical_test.json +95 -93
  377. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/three_of_three_oracle_numerical_with_diff_test.json +97 -95
  378. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/two_of_five_oracle_numerical_test.json +117 -115
  379. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs/two_of_five_oracle_numerical_with_diff_test.json +119 -117
  380. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250718_132453/enum_3_of_3_test.json +210 -0
  381. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250718_132453/enum_3_of_5_test.json +468 -0
  382. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250718_132453/enum_and_numerical_3_of_5_test.json +1517 -0
  383. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250718_132453/enum_and_numerical_5_of_5_test.json +545 -0
  384. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250718_132453/enum_and_numerical_with_diff_3_of_5_test.json +4761 -0
  385. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250718_132453/enum_and_numerical_with_diff_5_of_5_test.json +2169 -0
  386. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250718_132453/enum_single_oracle_test.json +164 -0
  387. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250718_132453/single_oracle_numerical_hyperbola_test.json +502 -0
  388. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250718_132453/single_oracle_numerical_test.json +262 -0
  389. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250718_132453/three_of_five_oracle_numerical_with_diff_test.json +4382 -0
  390. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250718_132453/three_of_three_oracle_numerical_test.json +324 -0
  391. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250718_132453/three_of_three_oracle_numerical_with_diff_test.json +652 -0
  392. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250718_132453/two_of_five_oracle_numerical_test.json +1138 -0
  393. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250718_132453/two_of_five_oracle_numerical_with_diff_test.json +2222 -0
  394. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250719_185952/enum_3_of_3_test.json +212 -0
  395. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250719_185952/enum_3_of_5_test.json +470 -0
  396. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250719_185952/enum_and_numerical_3_of_5_test.json +1519 -0
  397. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250719_185952/enum_and_numerical_5_of_5_test.json +547 -0
  398. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250719_185952/enum_and_numerical_with_diff_3_of_5_test.json +4763 -0
  399. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250719_185952/enum_and_numerical_with_diff_5_of_5_test.json +2171 -0
  400. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250719_185952/enum_single_oracle_test.json +166 -0
  401. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250719_185952/single_oracle_numerical_hyperbola_test.json +504 -0
  402. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250719_185952/single_oracle_numerical_test.json +264 -0
  403. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250719_185952/three_of_five_oracle_numerical_with_diff_test.json +4384 -0
  404. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250719_185952/three_of_three_oracle_numerical_test.json +326 -0
  405. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250719_185952/three_of_three_oracle_numerical_with_diff_test.json +654 -0
  406. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250719_185952/two_of_five_oracle_numerical_test.json +1140 -0
  407. package/.yalc/@node-dlc/messaging/test_vectors/dlcspecs_backup_20250719_185952/two_of_five_oracle_numerical_with_diff_test.json +2224 -0
  408. package/.yalc/@node-dlc/messaging/yalc.sig +1 -1
  409. package/.yalc/@node-dlc/noise/.eslintrc +6 -0
  410. package/.yalc/@node-dlc/noise/.nyc_output/cce169d2-1730-4a39-9e05-4edcd8b14961.json +1 -0
  411. package/.yalc/@node-dlc/noise/.nyc_output/processinfo/cce169d2-1730-4a39-9e05-4edcd8b14961.json +1 -0
  412. package/.yalc/@node-dlc/noise/.nyc_output/processinfo/index.json +1 -0
  413. package/.yalc/@node-dlc/noise/README.md +165 -0
  414. package/.yalc/@node-dlc/noise/__integration__/ping-pong.spec.ts +85 -0
  415. package/.yalc/@node-dlc/noise/__tests__/noise-server.spec.ts +82 -0
  416. package/.yalc/@node-dlc/noise/__tests__/noise-socket.spec.ts +574 -0
  417. package/.yalc/@node-dlc/noise/__tests__/noise-state.spec.ts +485 -0
  418. package/.yalc/@node-dlc/noise/coverage/lcov-report/base.css +224 -0
  419. package/.yalc/@node-dlc/noise/coverage/lcov-report/block-navigation.js +79 -0
  420. package/.yalc/@node-dlc/noise/coverage/lcov-report/favicon.png +0 -0
  421. package/.yalc/@node-dlc/noise/coverage/lcov-report/handshake-state.ts.html +230 -0
  422. package/.yalc/@node-dlc/noise/coverage/lcov-report/index.html +201 -0
  423. package/.yalc/@node-dlc/noise/coverage/lcov-report/index.ts.html +344 -0
  424. package/.yalc/@node-dlc/noise/coverage/lcov-report/noise-error.ts.html +89 -0
  425. package/.yalc/@node-dlc/noise/coverage/lcov-report/noise-server.ts.html +485 -0
  426. package/.yalc/@node-dlc/noise/coverage/lcov-report/noise-socket.ts.html +1223 -0
  427. package/.yalc/@node-dlc/noise/coverage/lcov-report/noise-state.ts.html +1523 -0
  428. package/.yalc/@node-dlc/noise/coverage/lcov-report/prettify.css +1 -0
  429. package/.yalc/@node-dlc/noise/coverage/lcov-report/prettify.js +2 -0
  430. package/.yalc/@node-dlc/noise/coverage/lcov-report/read-state.ts.html +95 -0
  431. package/.yalc/@node-dlc/noise/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  432. package/.yalc/@node-dlc/noise/coverage/lcov-report/sorter.js +170 -0
  433. package/.yalc/@node-dlc/noise/coverage/lcov.info +565 -0
  434. package/.yalc/@node-dlc/noise/dist/handshake-state.d.ts +46 -0
  435. package/.yalc/@node-dlc/noise/dist/handshake-state.js +51 -0
  436. package/.yalc/@node-dlc/noise/dist/handshake-state.js.map +1 -0
  437. package/.yalc/@node-dlc/noise/dist/index.d.ts +46 -0
  438. package/.yalc/@node-dlc/noise/dist/index.js +69 -0
  439. package/.yalc/@node-dlc/noise/dist/index.js.map +1 -0
  440. package/.yalc/@node-dlc/noise/dist/noise-error.d.ts +3 -0
  441. package/.yalc/@node-dlc/noise/dist/noise-error.js +11 -0
  442. package/.yalc/@node-dlc/noise/dist/noise-error.js.map +1 -0
  443. package/.yalc/@node-dlc/noise/dist/noise-server-listen-options.d.ts +23 -0
  444. package/.yalc/@node-dlc/noise/dist/noise-server-listen-options.js +3 -0
  445. package/.yalc/@node-dlc/noise/dist/noise-server-listen-options.js.map +1 -0
  446. package/.yalc/@node-dlc/noise/dist/noise-server-options.d.ts +13 -0
  447. package/.yalc/@node-dlc/noise/dist/noise-server-options.js +3 -0
  448. package/.yalc/@node-dlc/noise/dist/noise-server-options.js.map +1 -0
  449. package/.yalc/@node-dlc/noise/dist/noise-server.d.ts +71 -0
  450. package/.yalc/@node-dlc/noise/dist/noise-server.js +125 -0
  451. package/.yalc/@node-dlc/noise/dist/noise-server.js.map +1 -0
  452. package/.yalc/@node-dlc/noise/dist/noise-socket-options.d.ts +28 -0
  453. package/.yalc/@node-dlc/noise/dist/noise-socket-options.js +3 -0
  454. package/.yalc/@node-dlc/noise/dist/noise-socket-options.js.map +1 -0
  455. package/.yalc/@node-dlc/noise/dist/noise-socket.d.ts +98 -0
  456. package/.yalc/@node-dlc/noise/dist/noise-socket.js +278 -0
  457. package/.yalc/@node-dlc/noise/dist/noise-socket.js.map +1 -0
  458. package/.yalc/@node-dlc/noise/dist/noise-state-options.d.ts +16 -0
  459. package/.yalc/@node-dlc/noise/dist/noise-state-options.js +3 -0
  460. package/.yalc/@node-dlc/noise/dist/noise-state-options.js.map +1 -0
  461. package/.yalc/@node-dlc/noise/dist/noise-state.d.ts +164 -0
  462. package/.yalc/@node-dlc/noise/dist/noise-state.js +304 -0
  463. package/.yalc/@node-dlc/noise/dist/noise-state.js.map +1 -0
  464. package/.yalc/@node-dlc/noise/dist/read-state.d.ts +5 -0
  465. package/.yalc/@node-dlc/noise/dist/read-state.js +10 -0
  466. package/.yalc/@node-dlc/noise/dist/read-state.js.map +1 -0
  467. package/.yalc/@node-dlc/noise/lib/handshake-state.ts +50 -0
  468. package/.yalc/@node-dlc/noise/lib/index.ts +88 -0
  469. package/.yalc/@node-dlc/noise/lib/noise-error.ts +3 -0
  470. package/.yalc/@node-dlc/noise/lib/noise-server-listen-options.ts +25 -0
  471. package/.yalc/@node-dlc/noise/lib/noise-server-options.ts +13 -0
  472. package/.yalc/@node-dlc/noise/lib/noise-server.ts +135 -0
  473. package/.yalc/@node-dlc/noise/lib/noise-socket-options.ts +32 -0
  474. package/.yalc/@node-dlc/noise/lib/noise-socket.ts +381 -0
  475. package/.yalc/@node-dlc/noise/lib/noise-state-options.ts +18 -0
  476. package/.yalc/@node-dlc/noise/lib/noise-state.ts +481 -0
  477. package/.yalc/@node-dlc/noise/lib/read-state.ts +5 -0
  478. package/.yalc/@node-dlc/noise/package.json +35 -0
  479. package/.yalc/@node-dlc/noise/tsconfig-build.json +7 -0
  480. package/.yalc/@node-dlc/noise/tsconfig.json +4 -0
  481. package/.yalc/@node-dlc/noise/yalc.sig +1 -0
  482. package/CHANGELOG.md +45 -5
  483. package/dist/dlc.d.ts +99 -2
  484. package/dist/index.d.ts +1 -1
  485. package/dist/index.js +2 -1
  486. package/dist/index.js.map +1 -1
  487. package/dist/models/Amount.js +4 -2
  488. package/dist/models/Amount.js.map +1 -1
  489. package/dist/models/Input.d.ts +30 -1
  490. package/dist/models/Input.js +45 -9
  491. package/dist/models/Input.js.map +1 -1
  492. package/dist/models/Outcome.js +1 -0
  493. package/dist/models/Outcome.js.map +1 -1
  494. package/dist/models/Utxo.d.ts +3 -3
  495. package/dist/models/Utxo.js +11 -13
  496. package/dist/models/Utxo.js.map +1 -1
  497. package/dist/transaction.js.map +1 -1
  498. package/lib/block.ts +1 -0
  499. package/lib/dlc.ts +125 -1
  500. package/lib/index.ts +7 -1
  501. package/lib/models/Amount.ts +4 -1
  502. package/lib/models/Input.ts +75 -8
  503. package/lib/models/Outcome.ts +1 -0
  504. package/lib/models/Utxo.ts +21 -13
  505. package/lib/transaction.ts +1 -0
  506. package/lib/wallet.ts +1 -0
  507. package/package.json +4 -4
  508. package/yalc.lock +12 -2
  509. package/.yalc/@node-dlc/messaging/.nyc_output/2cf48009-1094-4275-bb91-c164c932feb6.json +0 -1
  510. package/.yalc/@node-dlc/messaging/.nyc_output/processinfo/2cf48009-1094-4275-bb91-c164c932feb6.json +0 -1
@@ -0,0 +1,297 @@
1
+ import { BufferWriter } from '@node-dlc/bufio';
2
+ import { hash256, sign, sigToDER } from '@node-dlc/crypto';
3
+
4
+ import { LockTime } from './LockTime';
5
+ import { OutPoint } from './OutPoint';
6
+ import { Script } from './Script';
7
+ import { Sequence } from './Sequence';
8
+ import { Tx } from './Tx';
9
+ import { TxIn } from './TxIn';
10
+ import { TxOut } from './TxOut';
11
+ import { Value } from './Value';
12
+
13
+ export class TxBuilder {
14
+ private _version: number;
15
+ private _locktime: LockTime;
16
+ private _inputs: TxIn[];
17
+ private _outputs: TxOut[];
18
+ private _hashPrevOuts: Buffer;
19
+ private _hashSequence: Buffer;
20
+ private _hashOutputs: Buffer;
21
+
22
+ constructor() {
23
+ this._inputs = [];
24
+ this._outputs = [];
25
+ this._version = 2;
26
+ this._locktime = new LockTime();
27
+ }
28
+
29
+ /**
30
+ * Gets or sets the transaction version. Valid transaction versions
31
+ * are > 1.
32
+ */
33
+ public get version(): number {
34
+ return this._version;
35
+ }
36
+
37
+ public set version(val: number) {
38
+ this._version = val;
39
+ }
40
+
41
+ /**
42
+ * Gets or sets the absolute locktime for the transaction
43
+ */
44
+ public get locktime(): LockTime {
45
+ return this._locktime;
46
+ }
47
+
48
+ public set locktime(val: LockTime) {
49
+ this._locktime = val;
50
+ }
51
+
52
+ /**
53
+ * Gets the inputs
54
+ */
55
+ public get inputs(): TxIn[] {
56
+ return this._inputs;
57
+ }
58
+
59
+ /**
60
+ * Gets the outputs
61
+ */
62
+ public get outputs(): TxOut[] {
63
+ return this._outputs;
64
+ }
65
+
66
+ /**
67
+ * Adds a new transaction input
68
+ * @param outpoint the previous output represented as an outpoint
69
+ */
70
+ public addInput(
71
+ outpoint: TxIn | string | OutPoint,
72
+ sequence?: Sequence,
73
+ ): void {
74
+ if (outpoint instanceof TxIn) {
75
+ this._inputs.push(outpoint.clone());
76
+ } else {
77
+ outpoint =
78
+ outpoint instanceof OutPoint ? outpoint : OutPoint.fromString(outpoint);
79
+ this._inputs.push(new TxIn(outpoint, undefined, sequence));
80
+ }
81
+ }
82
+
83
+ /**
84
+ * Adds a transaction output
85
+ * @param value value sent to the lock script. When represented as a
86
+ * number, the value is in Bitcoin.
87
+ * @param scriptPubKey the locking script encumbering the funds send
88
+ * to this output
89
+ */
90
+ public addOutput(value: TxOut | number | Value, scriptPubKey?: Script): void {
91
+ if (value instanceof TxOut) {
92
+ this._outputs.push(value.clone());
93
+ } else {
94
+ value = value instanceof Value ? value : Value.fromBitcoin(value);
95
+ this._outputs.push(new TxOut(value, scriptPubKey));
96
+ }
97
+ }
98
+
99
+ /**
100
+ * Creates a signature hash including all inputs and all outputs,
101
+ * which is referred to as SIGHASH_ALL. The scriptSig of all inputs
102
+ * is removed (as it is never signed), however we commit to the
103
+ * signatory input using the scriptPubKey from the prevOut or the
104
+ * redeemScript. The hash is constructed as the serialization of
105
+ * all information (with the input scriptSig replaced as just
106
+ * described) and then appending a 4-byte LE sighash type. We then
107
+ * take the hash256 of that serialized transaction.
108
+ *
109
+ * @param input signatory input index
110
+ * @param commitScript the scriptSig used for the signature input
111
+ */
112
+ public hashLegacy(input: number, commitScript: Script): Buffer {
113
+ const writer = new BufferWriter();
114
+
115
+ // write the version
116
+ writer.writeUInt32LE(this.version);
117
+
118
+ // sign all inputs as sorted by the sorting function
119
+ const inputs = this._inputs;
120
+ writer.writeVarInt(inputs.length);
121
+ for (let i = 0; i < inputs.length; i++) {
122
+ // blank out scriptSig for non-signatory inputs
123
+ let scriptSig = new Script();
124
+
125
+ // use the commit script for signatory input
126
+ if (i === input) {
127
+ scriptSig = commitScript;
128
+ }
129
+
130
+ // write the input
131
+ const vin = new TxIn(inputs[i].outpoint, scriptSig, inputs[i].sequence);
132
+ writer.writeBytes(vin.serialize());
133
+ }
134
+
135
+ // sign all outputs as sorted by the sorting function
136
+ const outputs = this._outputs;
137
+ writer.writeVarInt(outputs.length);
138
+ for (const vout of outputs) {
139
+ writer.writeBytes(vout.serialize());
140
+ }
141
+
142
+ // write the sequence
143
+ writer.writeBytes(this.locktime.serialize());
144
+
145
+ // write the sighash type 0x01 as 4-bytes little endian
146
+ writer.writeUInt32LE(1);
147
+
148
+ // return hashed value
149
+ return hash256(writer.toBuffer());
150
+ }
151
+
152
+ /**
153
+ * Creates a signature hash using the new segregated witness digets
154
+ * alorithm defined in BIP143. The current version only supports
155
+ * SIGHASH_ALL and does not account for OP_CODESEPARATOR.
156
+ *
157
+ * This algorithm has side-effects in that it caches hashPrevOut,
158
+ * hashSequence, and hashOutput values used. This means transaction
159
+ * should not change after signing, though the code does not yet
160
+ * enforce this.
161
+ *
162
+ * @param index signatory input index
163
+ * @param commitScript the scriptSig used for the signature input
164
+ * @param value the value of the input
165
+ */
166
+ public hashSegwitv0(
167
+ index: number,
168
+ commitScript: Script,
169
+ value: Value,
170
+ ): Buffer {
171
+ const writer = new BufferWriter();
172
+
173
+ // Combines the previous outputs for all inputs in the
174
+ // transaction by serializing and hash256 the concated values:
175
+ // prevtx: 32-byte IBO
176
+ // prevIdx: 4-byte LE
177
+ if (this._hashPrevOuts === undefined) {
178
+ const hashWriter = new BufferWriter(
179
+ Buffer.alloc(this._inputs.length * 36),
180
+ );
181
+ for (const input of this._inputs) {
182
+ hashWriter.writeBytes(input.outpoint.serialize());
183
+ }
184
+ this._hashPrevOuts = hash256(hashWriter.toBuffer());
185
+ }
186
+
187
+ // Combines the nSequence values for all inputs in the
188
+ // transaction and then hash256 the values
189
+ if (this._hashSequence === undefined) {
190
+ const hashWriter = new BufferWriter(
191
+ Buffer.alloc(this._inputs.length * 4),
192
+ );
193
+ for (const input of this._inputs) {
194
+ hashWriter.writeBytes(input.sequence.serialize());
195
+ }
196
+ this._hashSequence = hash256(hashWriter.toBuffer());
197
+ }
198
+
199
+ // Combines the outputs for the transaction according by
200
+ // concatenating the serialization of the outputs into a single
201
+ // byte array and then hash256 the values.
202
+ if (this._hashOutputs === undefined) {
203
+ const hashWriter = new BufferWriter();
204
+ for (const vout of this._outputs) {
205
+ hashWriter.writeBytes(vout.serialize());
206
+ }
207
+ this._hashOutputs = hash256(hashWriter.toBuffer());
208
+ }
209
+
210
+ writer.writeUInt32LE(this.version);
211
+ writer.writeBytes(this._hashPrevOuts);
212
+ writer.writeBytes(this._hashSequence);
213
+
214
+ const vin = this._inputs[index];
215
+ writer.writeBytes(vin.outpoint.serialize());
216
+ writer.writeBytes(commitScript.serialize());
217
+ writer.writeUInt64LE(value.sats);
218
+ writer.writeBytes(vin.sequence.serialize());
219
+
220
+ writer.writeBytes(this._hashOutputs);
221
+ writer.writeBytes(this.locktime.serialize());
222
+ writer.writeUInt32LE(1); // SIGHASH_ALL
223
+
224
+ return hash256(writer.toBuffer());
225
+ }
226
+
227
+ /**
228
+ * Signs an input and returns the DER encoded signature. The
229
+ * script that is committed to will depend on the type of the
230
+ * signature. This is usually the locking script used in the prior
231
+ * output, but in the case of p2sh transactions, this is the
232
+ * redeem script, or the underlying script that is hashed in the
233
+ * prior output.
234
+ *
235
+ * @param input index of input that should be signed
236
+ * @param commitScript Script that is committed during signature
237
+ * @param privateKey 32-byte private key
238
+ */
239
+ public sign(input: number, commitScript: Script, privateKey: Buffer): Buffer {
240
+ // create the hash of the transaction for the input
241
+ const hash = this.hashLegacy(input, commitScript);
242
+
243
+ // sign DER encode signature
244
+ const sig = sign(hash, privateKey);
245
+ const der = sigToDER(sig);
246
+
247
+ // return signature with 1-byte sighash type
248
+ return Buffer.concat([der, Buffer.from([1])]);
249
+ }
250
+
251
+ /**
252
+ * Signs an SegWit v0 input and returns the DER encoded signature.
253
+ * The script that is committed to will depend on the type of the
254
+ * input. This is usually the locking script or redeem script.
255
+ *
256
+ * @param input index of input that should be signed
257
+ * @param commitScript Script that is committed during signature
258
+ * @param privateKey 32-byte private key
259
+ * @param value value of the prior input
260
+ */
261
+ public signSegWitv0(
262
+ input: number,
263
+ commitScript: Script,
264
+ privateKey: Buffer,
265
+ value: Value,
266
+ ): Buffer {
267
+ // create the hash of the transaction for the input
268
+ const hash = this.hashSegwitv0(input, commitScript, value);
269
+
270
+ // sign DER encode signature
271
+ const sig = sign(hash, privateKey);
272
+ const der = sigToDER(sig);
273
+
274
+ // return signature with 1-byte sighash type
275
+ return Buffer.concat([der, Buffer.from([1])]);
276
+ }
277
+
278
+ /**
279
+ * Returns an immutable transaction
280
+ */
281
+ public toTx(): Tx {
282
+ return new Tx(
283
+ this.version,
284
+ this._inputs.map((vin) => vin.clone()),
285
+ this._outputs.map((vout) => vout.clone()),
286
+ this.locktime.clone(),
287
+ );
288
+ }
289
+
290
+ public serialize(): Buffer {
291
+ return this.toTx().serialize();
292
+ }
293
+
294
+ public toHex(pretty = false): string {
295
+ return this.toTx().toHex(pretty);
296
+ }
297
+ }
@@ -0,0 +1,115 @@
1
+ import { BufferWriter, StreamReader } from '@node-dlc/bufio';
2
+
3
+ import { ICloneable } from './ICloneable';
4
+ import { OutPoint } from './OutPoint';
5
+ import { Script } from './Script';
6
+ import { Sequence } from './Sequence';
7
+ import { Witness } from './Witness';
8
+
9
+ export class TxIn implements ICloneable<TxIn> {
10
+ /**
11
+ * Parses a TxIn from a a stream reader.
12
+ * @param stream
13
+ */
14
+ public static parse(reader: StreamReader): TxIn {
15
+ const outpoint = OutPoint.parse(reader);
16
+ const scriptSig = Script.parse(reader);
17
+ const sequence = new Sequence(reader.readUInt32LE());
18
+ return new TxIn(outpoint, scriptSig, sequence);
19
+ }
20
+
21
+ /**
22
+ * Parses a hex string serialization of a transaction input. This
23
+ * is a helper function instead of having to do `StreamReader.fromHex`
24
+ * on a string directly.
25
+ * @param hex
26
+ */
27
+ public static fromHex(hex: string): TxIn {
28
+ const reader = StreamReader.fromHex(hex);
29
+ return this.parse(reader);
30
+ }
31
+
32
+ /**
33
+ * The previous transaction output tuple
34
+ */
35
+ public outpoint: OutPoint;
36
+
37
+ /**
38
+ * ScriptSig for the input
39
+ */
40
+ public scriptSig: Script;
41
+
42
+ /**
43
+ * nSequence value for the transaction. Defaults to 0xffffffff which
44
+ * disables the absolute timelock.
45
+ */
46
+ public sequence: Sequence;
47
+
48
+ /**
49
+ * Witness data that is required by the input
50
+ */
51
+ public witness: Witness[];
52
+
53
+ /**
54
+ * Constructs a new transaction input from the values
55
+ * @param outpoint
56
+ * @param scriptSig
57
+ * @param sequence
58
+ * @param witness
59
+ */
60
+ constructor(
61
+ outpoint: OutPoint,
62
+ scriptSig: Script = new Script(),
63
+ sequence: Sequence = new Sequence(),
64
+ witness: Witness[] = [],
65
+ ) {
66
+ this.outpoint = outpoint;
67
+ this.scriptSig = scriptSig;
68
+ this.sequence = sequence;
69
+ this.witness = witness;
70
+ }
71
+
72
+ /**
73
+ * Creates a string of the transaction input that includes all of the
74
+ * properties.
75
+ */
76
+ public toString(): string {
77
+ return `prev=${this.outpoint.toString()}, scriptSig=${this.scriptSig.toString()}, sequence=${this.sequence.toString()}`; // prettier-ignore
78
+ }
79
+
80
+ /**
81
+ * Creates a JSON object of the transaction input that includes all
82
+ * of the properties.
83
+ */
84
+ // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
85
+ public toJSON() {
86
+ return {
87
+ outpoint: this.outpoint.toJSON(),
88
+ scriptSig: this.scriptSig.toJSON(),
89
+ sequence: this.sequence.toJSON(),
90
+ };
91
+ }
92
+
93
+ /**
94
+ * Returns the byte serialization of the transaction input
95
+ */
96
+ public serialize(): Buffer {
97
+ const writer = new BufferWriter();
98
+ writer.writeBytes(this.outpoint.serialize());
99
+ writer.writeBytes(this.scriptSig.serialize());
100
+ writer.writeBytes(this.sequence.serialize());
101
+ return writer.toBuffer();
102
+ }
103
+
104
+ /**
105
+ * Clone via deep copy
106
+ */
107
+ public clone(): TxIn {
108
+ return new TxIn(
109
+ this.outpoint.clone(),
110
+ this.scriptSig.clone(),
111
+ this.sequence.clone(),
112
+ this.witness.map((p) => p.clone()),
113
+ );
114
+ }
115
+ }
@@ -0,0 +1,87 @@
1
+ import { BufferWriter, StreamReader } from '@node-dlc/bufio';
2
+
3
+ import { ICloneable } from './ICloneable';
4
+ import { Script } from './Script';
5
+ import { Value } from './Value';
6
+
7
+ export class TxOut implements ICloneable<TxOut> {
8
+ /**
9
+ * Parses a TxOut from a stream and returns a new instance of TxOut
10
+ * @param reader
11
+ */
12
+ public static parse(reader: StreamReader): TxOut {
13
+ const value = Value.fromSats(reader.readBigUInt64LE());
14
+ const scriptPubKey = Script.parse(reader);
15
+ return new TxOut(value, scriptPubKey);
16
+ }
17
+
18
+ /**
19
+ * Parses a hex string serialization of a transaction output. This
20
+ * is a helper function instead of having to do `StreamReader.fromHex`
21
+ * on a string directly.
22
+ * @param hex
23
+ */
24
+ public static fromHex(hex: string): TxOut {
25
+ const reader = StreamReader.fromHex(hex);
26
+ return TxOut.parse(reader);
27
+ }
28
+
29
+ /**
30
+ * Value (often in satoshi or bitcoin) that will be locked into the
31
+ * output using the provided scriptPubKey. The combined outputs must
32
+ * be lte the combined input value for in transaction.
33
+ */
34
+ public value: Value;
35
+
36
+ /**
37
+ * The locking script used to encumbered the value in the output.
38
+ * To claim these funds as an input in another transaction requires
39
+ * providing a ScriptSig that successfully evaluates when combined
40
+ * with the ScriptPubKey.
41
+ */
42
+ public scriptPubKey: Script;
43
+
44
+ /**
45
+ * Constructs a new TxOut from the supplied arguments
46
+ * @param value
47
+ * @param scriptPubKey
48
+ */
49
+ constructor(value: Value, scriptPubKey: Script) {
50
+ this.value = value;
51
+ this.scriptPubKey = scriptPubKey;
52
+ }
53
+
54
+ /**
55
+ * Returns the TxOut as a string
56
+ */
57
+ public toString(): string {
58
+ return `value="${this.value.sats}", scriptPubKey="${this.scriptPubKey}"`;
59
+ }
60
+
61
+ /**
62
+ * Returns the TxOut as a JSON object
63
+ */
64
+ public toJSON(): { value: string; scriptPubKey: string } {
65
+ return {
66
+ value: this.value.sats.toString(),
67
+ scriptPubKey: this.scriptPubKey.toJSON(),
68
+ };
69
+ }
70
+
71
+ /**
72
+ * Returns the serialization of the transaction output into a buffer
73
+ */
74
+ public serialize(): Buffer {
75
+ const writer = new BufferWriter();
76
+ writer.writeUInt64LE(this.value.sats);
77
+ writer.writeBytes(this.scriptPubKey.serialize());
78
+ return writer.toBuffer();
79
+ }
80
+
81
+ /**
82
+ * Clone via deep copy
83
+ */
84
+ public clone(): TxOut {
85
+ return new TxOut(this.value.clone(), this.scriptPubKey.clone());
86
+ }
87
+ }
@@ -0,0 +1,201 @@
1
+ import { ICloneable } from './ICloneable';
2
+
3
+ /**
4
+ * Represents bitcoin value that can be converted to or from multiple
5
+ * formats.
6
+ */
7
+ export class Value implements ICloneable<Value> {
8
+ /**
9
+ * Creates a value object from value in bitcoin, eg: 1.12345678
10
+ * @param num
11
+ */
12
+ public static fromBitcoin(num: number): Value {
13
+ return Value.fromSats(Math.round(num * 1e8));
14
+ }
15
+
16
+ /**
17
+ * Creates a value instance from value in satoshis where 1 satoshis
18
+ * equates to 0.00000001 bitcoin.
19
+ * @param num
20
+ */
21
+ public static fromSats(num: bigint | number): Value {
22
+ return new Value(BigInt(num) * BigInt(1e12));
23
+ }
24
+
25
+ /**
26
+ * Creates a value instance from value in millisatoshis, 1/1000 of a
27
+ * satoshi.
28
+ * eg: 123 millisatoshis equates to 0.123 satoshis
29
+ * eg: 123 millisatoshis equates to 0.00000000123 bitcoin
30
+ * @param num
31
+ */
32
+ public static fromMilliSats(num: bigint | number): Value {
33
+ return new Value(BigInt(num) * BigInt(1e9));
34
+ }
35
+
36
+ /**
37
+ * Creates a value instance from value in microsatoshis, 1/1e6 of a
38
+ * satoshi.
39
+ * eg: 123 microsatoshis equates to 0.000123 satoshis
40
+ * eg: 123 microsatoshis equates to 0.00000000000123 bitcoin
41
+ * @param num
42
+ */
43
+ public static fromMicroSats(num: bigint | number): Value {
44
+ return new Value(BigInt(num) * BigInt(1e6));
45
+ }
46
+
47
+ /**
48
+ * Creates a value instance from value in picosatoshis, 1/1e12 of a
49
+ * satoshi.
50
+ * eg: 123 picosatoshis equates to 0.000000000123 satoshis
51
+ * eg: 123 picosatoshis equates to 0.00000000000000000123 bitcoin
52
+ * @param num
53
+ */
54
+ public static fromPicoSats(num: bigint | number): Value {
55
+ return new Value(BigInt(num));
56
+ }
57
+
58
+ /**
59
+ * Generates a value instance of zero
60
+ */
61
+ public static zero(): Value {
62
+ return new Value(BigInt(0));
63
+ }
64
+
65
+ protected _picoSats: bigint;
66
+
67
+ /**
68
+ * Gets the value in picosatoshis (1/1e12 satoshis)
69
+ */
70
+ public get psats(): bigint {
71
+ return this._picoSats;
72
+ }
73
+
74
+ /**
75
+ * Gets the value in millionth of satoshis (1/1e6 satoshis)
76
+ */
77
+ public get microsats(): bigint {
78
+ return this._picoSats / BigInt(1e6);
79
+ }
80
+
81
+ /**
82
+ * Gets the value in millisatoshis (1/1000 satoshis)
83
+ */
84
+ public get msats(): bigint {
85
+ return this._picoSats / BigInt(1e9);
86
+ }
87
+
88
+ /**
89
+ * Gets the value in satoshis (1/1e8 bitcoin)
90
+ */
91
+ public get sats(): bigint {
92
+ return this._picoSats / BigInt(1e12);
93
+ }
94
+
95
+ /**
96
+ * Gets the value in bitcoin
97
+ */
98
+ public get bitcoin(): number {
99
+ return Math.max(0, Number(this.sats) / 1e8);
100
+ }
101
+
102
+ protected constructor(picoSats: bigint) {
103
+ this._picoSats = picoSats;
104
+ }
105
+
106
+ /**
107
+ * Clone via deep copy
108
+ */
109
+ public clone(): Value {
110
+ return new Value(this._picoSats);
111
+ }
112
+
113
+ /**
114
+ * Adds another value to this instance and returns this instance
115
+ * @param other
116
+ */
117
+ public add(other: Value): this {
118
+ this._picoSats += other.psats;
119
+ return this;
120
+ }
121
+
122
+ /**
123
+ * Adds another value to the current value and returns a new Value instance
124
+ * @param other
125
+ */
126
+ public addn(other: Value): Value {
127
+ return new Value(this._picoSats + other.psats);
128
+ }
129
+
130
+ /**
131
+ * Subtracts another value from this instance and returns this instance
132
+ * @param other
133
+ */
134
+ public sub(other: Value): this {
135
+ if (this._picoSats < other.psats) {
136
+ throw new Error('Value underflow');
137
+ }
138
+ this._picoSats -= other.psats;
139
+ return this;
140
+ }
141
+
142
+ /**
143
+ * Subtracts another value from the current value and returns a new Value instance
144
+ * @param other
145
+ */
146
+ public subn(other: Value): Value {
147
+ if (this._picoSats < other.psats) {
148
+ throw new Error('Value underflow');
149
+ }
150
+ return new Value(this._picoSats - other.psats);
151
+ }
152
+
153
+ /**
154
+ * Returns true if this value is less than the other value
155
+ * @param other
156
+ */
157
+ public lt(other: Value): boolean {
158
+ return this._picoSats < other.psats;
159
+ }
160
+
161
+ /**
162
+ * Returns true if this value is equal to the other value
163
+ * @param other
164
+ */
165
+ public eq(other: Value): boolean {
166
+ return this._picoSats === other.psats;
167
+ }
168
+
169
+ /**
170
+ * Returns true if this value is greater than the other value
171
+ * @param other
172
+ */
173
+ public gt(other: Value): boolean {
174
+ return this._picoSats > other.psats;
175
+ }
176
+
177
+ /**
178
+ * Returns true if this value is greater than or equal to the other value
179
+ * @param other
180
+ */
181
+ public gte(other: Value): boolean {
182
+ return this._picoSats >= other.psats;
183
+ }
184
+
185
+ /**
186
+ * Returns true if this value is less than or equal to the other value
187
+ * @param other
188
+ */
189
+ public lte(other: Value): boolean {
190
+ return this._picoSats <= other.psats;
191
+ }
192
+
193
+ /**
194
+ * Returns a string representation of the value in bitcoin format
195
+ * with 8 decimal places
196
+ */
197
+ public toString(): string {
198
+ const btc = this.bitcoin;
199
+ return btc.toFixed(8);
200
+ }
201
+ }