@atomicfinance/bitcoin-wallet-provider 4.1.0 → 4.1.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 (226) hide show
  1. package/.turbo/turbo-build.log +4 -5
  2. package/CHANGELOG.md +14 -0
  3. package/package.json +6 -6
  4. package/.turbo/turbo-lint$colon$fix.log +0 -5
  5. package/.turbo/turbo-lint.log +0 -5
  6. package/.turbo/turbo-test.log +0 -0
  7. package/.yalc/@node-dlc/core/.nyc_output/687a3c14-9765-45fd-a1fe-f7db3d56fee4.json +0 -1
  8. package/.yalc/@node-dlc/core/.nyc_output/processinfo/687a3c14-9765-45fd-a1fe-f7db3d56fee4.json +0 -1
  9. package/.yalc/@node-dlc/core/.nyc_output/processinfo/index.json +0 -1
  10. package/.yalc/@node-dlc/core/README.md +0 -11
  11. package/.yalc/@node-dlc/core/__tests__/core.spec.ts +0 -7
  12. package/.yalc/@node-dlc/core/__tests__/dlc/CETCalculator.spec.ts +0 -1029
  13. package/.yalc/@node-dlc/core/__tests__/dlc/CoinSelect.spec.ts +0 -179
  14. package/.yalc/@node-dlc/core/__tests__/dlc/PolynomialPayoutCurve.spec.ts +0 -345
  15. package/.yalc/@node-dlc/core/__tests__/dlc/TxBuilder.spec.ts +0 -424
  16. package/.yalc/@node-dlc/core/__tests__/dlc/finance/Builder.spec.ts +0 -492
  17. package/.yalc/@node-dlc/core/__tests__/dlc/finance/CoveredCall.spec.ts +0 -112
  18. package/.yalc/@node-dlc/core/__tests__/dlc/finance/CsoInfo.spec.ts +0 -1124
  19. package/.yalc/@node-dlc/core/__tests__/dlc/finance/LongCall.spec.ts +0 -55
  20. package/.yalc/@node-dlc/core/__tests__/dlc/finance/LongPut.spec.ts +0 -55
  21. package/.yalc/@node-dlc/core/__tests__/dlc/finance/OptionInfo.spec.ts +0 -226
  22. package/.yalc/@node-dlc/core/__tests__/dlc/finance/ShortPut.spec.ts +0 -62
  23. package/.yalc/@node-dlc/core/__tests__/tsconfig.json +0 -8
  24. package/.yalc/@node-dlc/core/__tests__/utils/precision.spec.ts +0 -40
  25. package/.yalc/@node-dlc/core/coverage/lcov-report/base.css +0 -224
  26. package/.yalc/@node-dlc/core/coverage/lcov-report/block-navigation.js +0 -79
  27. package/.yalc/@node-dlc/core/coverage/lcov-report/favicon.png +0 -0
  28. package/.yalc/@node-dlc/core/coverage/lcov-report/index.html +0 -171
  29. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/AsyncProcessingQueue.ts.html +0 -269
  30. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/Base32.ts.html +0 -86
  31. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/BigIntUtils.ts.html +0 -86
  32. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/BitField.ts.html +0 -86
  33. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/ChannelId.ts.html +0 -86
  34. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/LinkedList.ts.html +0 -413
  35. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/LinkedListNode.ts.html +0 -122
  36. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/Queue.ts.html +0 -188
  37. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/ShortChannelId.ts.html +0 -86
  38. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/ShortChannelIdUtils.ts.html +0 -107
  39. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/dlc/CETCalculator.ts.html +0 -1430
  40. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/dlc/CoinSelect.ts.html +0 -431
  41. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/dlc/HyperbolaPayoutCurve.ts.html +0 -644
  42. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/dlc/PolynomialPayoutCurve.ts.html +0 -878
  43. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/dlc/TxBuilder.ts.html +0 -1088
  44. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/dlc/TxFinalizer.ts.html +0 -731
  45. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/dlc/finance/Builder.ts.html +0 -2270
  46. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/dlc/finance/CoveredCall.ts.html +0 -410
  47. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/dlc/finance/CsoInfo.ts.html +0 -1574
  48. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/dlc/finance/LinearPayout.ts.html +0 -362
  49. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/dlc/finance/LongCall.ts.html +0 -302
  50. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/dlc/finance/LongPut.ts.html +0 -302
  51. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/dlc/finance/OptionInfo.ts.html +0 -626
  52. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/dlc/finance/ShortPut.ts.html +0 -305
  53. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/dlc/finance/index.html +0 -216
  54. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/dlc/index.html +0 -186
  55. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/index.html +0 -261
  56. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/index.ts.html +0 -278
  57. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/lightning/ChannelId.ts.html +0 -242
  58. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/lightning/ChannelKeys.ts.html +0 -407
  59. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/lightning/CommitmentNumber.ts.html +0 -362
  60. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/lightning/CommitmentSecret.ts.html +0 -203
  61. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/lightning/CommitmentSecretStore.ts.html +0 -332
  62. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/lightning/Htlc.ts.html +0 -236
  63. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/lightning/HtlcDirection.ts.html +0 -131
  64. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/lightning/ScriptFactory.ts.html +0 -530
  65. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/lightning/TxFactory.ts.html +0 -1094
  66. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/lightning/index.html +0 -231
  67. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/utils/BigIntUtils.ts.html +0 -272
  68. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/utils/Precision.ts.html +0 -149
  69. package/.yalc/@node-dlc/core/coverage/lcov-report/lib/utils/index.html +0 -126
  70. package/.yalc/@node-dlc/core/coverage/lcov-report/prettify.css +0 -1
  71. package/.yalc/@node-dlc/core/coverage/lcov-report/prettify.js +0 -2
  72. package/.yalc/@node-dlc/core/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  73. package/.yalc/@node-dlc/core/coverage/lcov-report/sorter.js +0 -170
  74. package/.yalc/@node-dlc/core/coverage/lcov.info +0 -2426
  75. package/.yalc/@node-dlc/core/dist/AsyncProcessingQueue.d.ts +0 -22
  76. package/.yalc/@node-dlc/core/dist/AsyncProcessingQueue.js +0 -55
  77. package/.yalc/@node-dlc/core/dist/AsyncProcessingQueue.js.map +0 -1
  78. package/.yalc/@node-dlc/core/dist/Base32.d.ts +0 -1
  79. package/.yalc/@node-dlc/core/dist/Base32.js +0 -7
  80. package/.yalc/@node-dlc/core/dist/Base32.js.map +0 -1
  81. package/.yalc/@node-dlc/core/dist/BigIntUtils.d.ts +0 -1
  82. package/.yalc/@node-dlc/core/dist/BigIntUtils.js +0 -8
  83. package/.yalc/@node-dlc/core/dist/BigIntUtils.js.map +0 -1
  84. package/.yalc/@node-dlc/core/dist/BitField.d.ts +0 -1
  85. package/.yalc/@node-dlc/core/dist/BitField.js +0 -7
  86. package/.yalc/@node-dlc/core/dist/BitField.js.map +0 -1
  87. package/.yalc/@node-dlc/core/dist/ChannelId.d.ts +0 -1
  88. package/.yalc/@node-dlc/core/dist/ChannelId.js +0 -7
  89. package/.yalc/@node-dlc/core/dist/ChannelId.js.map +0 -1
  90. package/.yalc/@node-dlc/core/dist/LinkedList.d.ts +0 -30
  91. package/.yalc/@node-dlc/core/dist/LinkedList.js +0 -104
  92. package/.yalc/@node-dlc/core/dist/LinkedList.js.map +0 -1
  93. package/.yalc/@node-dlc/core/dist/LinkedListNode.d.ts +0 -9
  94. package/.yalc/@node-dlc/core/dist/LinkedListNode.js +0 -15
  95. package/.yalc/@node-dlc/core/dist/LinkedListNode.js.map +0 -1
  96. package/.yalc/@node-dlc/core/dist/Queue.d.ts +0 -22
  97. package/.yalc/@node-dlc/core/dist/Queue.js +0 -38
  98. package/.yalc/@node-dlc/core/dist/Queue.js.map +0 -1
  99. package/.yalc/@node-dlc/core/dist/ShortChannelId.d.ts +0 -1
  100. package/.yalc/@node-dlc/core/dist/ShortChannelId.js +0 -7
  101. package/.yalc/@node-dlc/core/dist/ShortChannelId.js.map +0 -1
  102. package/.yalc/@node-dlc/core/dist/ShortChannelIdUtils.d.ts +0 -1
  103. package/.yalc/@node-dlc/core/dist/ShortChannelIdUtils.js +0 -12
  104. package/.yalc/@node-dlc/core/dist/ShortChannelIdUtils.js.map +0 -1
  105. package/.yalc/@node-dlc/core/dist/dlc/CETCalculator.d.ts +0 -50
  106. package/.yalc/@node-dlc/core/dist/dlc/CETCalculator.js +0 -332
  107. package/.yalc/@node-dlc/core/dist/dlc/CETCalculator.js.map +0 -1
  108. package/.yalc/@node-dlc/core/dist/dlc/CoinSelect.d.ts +0 -23
  109. package/.yalc/@node-dlc/core/dist/dlc/CoinSelect.js +0 -77
  110. package/.yalc/@node-dlc/core/dist/dlc/CoinSelect.js.map +0 -1
  111. package/.yalc/@node-dlc/core/dist/dlc/HyperbolaPayoutCurve.d.ts +0 -20
  112. package/.yalc/@node-dlc/core/dist/dlc/HyperbolaPayoutCurve.js +0 -117
  113. package/.yalc/@node-dlc/core/dist/dlc/HyperbolaPayoutCurve.js.map +0 -1
  114. package/.yalc/@node-dlc/core/dist/dlc/PayoutCurve.d.ts +0 -5
  115. package/.yalc/@node-dlc/core/dist/dlc/PayoutCurve.js +0 -3
  116. package/.yalc/@node-dlc/core/dist/dlc/PayoutCurve.js.map +0 -1
  117. package/.yalc/@node-dlc/core/dist/dlc/PolynomialPayoutCurve.d.ts +0 -52
  118. package/.yalc/@node-dlc/core/dist/dlc/PolynomialPayoutCurve.js +0 -173
  119. package/.yalc/@node-dlc/core/dist/dlc/PolynomialPayoutCurve.js.map +0 -1
  120. package/.yalc/@node-dlc/core/dist/dlc/TxBuilder.d.ts +0 -55
  121. package/.yalc/@node-dlc/core/dist/dlc/TxBuilder.js +0 -217
  122. package/.yalc/@node-dlc/core/dist/dlc/TxBuilder.js.map +0 -1
  123. package/.yalc/@node-dlc/core/dist/dlc/TxFinalizer.d.ts +0 -40
  124. package/.yalc/@node-dlc/core/dist/dlc/TxFinalizer.js +0 -146
  125. package/.yalc/@node-dlc/core/dist/dlc/TxFinalizer.js.map +0 -1
  126. package/.yalc/@node-dlc/core/dist/dlc/finance/Builder.d.ts +0 -193
  127. package/.yalc/@node-dlc/core/dist/dlc/finance/Builder.js +0 -422
  128. package/.yalc/@node-dlc/core/dist/dlc/finance/Builder.js.map +0 -1
  129. package/.yalc/@node-dlc/core/dist/dlc/finance/CoveredCall.d.ts +0 -13
  130. package/.yalc/@node-dlc/core/dist/dlc/finance/CoveredCall.js +0 -67
  131. package/.yalc/@node-dlc/core/dist/dlc/finance/CoveredCall.js.map +0 -1
  132. package/.yalc/@node-dlc/core/dist/dlc/finance/CsoInfo.d.ts +0 -114
  133. package/.yalc/@node-dlc/core/dist/dlc/finance/CsoInfo.js +0 -290
  134. package/.yalc/@node-dlc/core/dist/dlc/finance/CsoInfo.js.map +0 -1
  135. package/.yalc/@node-dlc/core/dist/dlc/finance/LinearPayout.d.ts +0 -6
  136. package/.yalc/@node-dlc/core/dist/dlc/finance/LinearPayout.js +0 -79
  137. package/.yalc/@node-dlc/core/dist/dlc/finance/LinearPayout.js.map +0 -1
  138. package/.yalc/@node-dlc/core/dist/dlc/finance/LongCall.d.ts +0 -13
  139. package/.yalc/@node-dlc/core/dist/dlc/finance/LongCall.js +0 -47
  140. package/.yalc/@node-dlc/core/dist/dlc/finance/LongCall.js.map +0 -1
  141. package/.yalc/@node-dlc/core/dist/dlc/finance/LongPut.d.ts +0 -13
  142. package/.yalc/@node-dlc/core/dist/dlc/finance/LongPut.js +0 -47
  143. package/.yalc/@node-dlc/core/dist/dlc/finance/LongPut.js.map +0 -1
  144. package/.yalc/@node-dlc/core/dist/dlc/finance/OptionInfo.d.ts +0 -20
  145. package/.yalc/@node-dlc/core/dist/dlc/finance/OptionInfo.js +0 -101
  146. package/.yalc/@node-dlc/core/dist/dlc/finance/OptionInfo.js.map +0 -1
  147. package/.yalc/@node-dlc/core/dist/dlc/finance/ShortPut.d.ts +0 -12
  148. package/.yalc/@node-dlc/core/dist/dlc/finance/ShortPut.js +0 -46
  149. package/.yalc/@node-dlc/core/dist/dlc/finance/ShortPut.js.map +0 -1
  150. package/.yalc/@node-dlc/core/dist/index.d.ts +0 -39
  151. package/.yalc/@node-dlc/core/dist/index.js +0 -78
  152. package/.yalc/@node-dlc/core/dist/index.js.map +0 -1
  153. package/.yalc/@node-dlc/core/dist/lightning/ChannelId.d.ts +0 -31
  154. package/.yalc/@node-dlc/core/dist/lightning/ChannelId.js +0 -52
  155. package/.yalc/@node-dlc/core/dist/lightning/ChannelId.js.map +0 -1
  156. package/.yalc/@node-dlc/core/dist/lightning/ChannelKeys.d.ts +0 -55
  157. package/.yalc/@node-dlc/core/dist/lightning/ChannelKeys.js +0 -105
  158. package/.yalc/@node-dlc/core/dist/lightning/ChannelKeys.js.map +0 -1
  159. package/.yalc/@node-dlc/core/dist/lightning/CommitmentNumber.d.ts +0 -55
  160. package/.yalc/@node-dlc/core/dist/lightning/CommitmentNumber.js +0 -76
  161. package/.yalc/@node-dlc/core/dist/lightning/CommitmentNumber.js.map +0 -1
  162. package/.yalc/@node-dlc/core/dist/lightning/CommitmentSecret.d.ts +0 -26
  163. package/.yalc/@node-dlc/core/dist/lightning/CommitmentSecret.js +0 -44
  164. package/.yalc/@node-dlc/core/dist/lightning/CommitmentSecret.js.map +0 -1
  165. package/.yalc/@node-dlc/core/dist/lightning/CommitmentSecretStore.d.ts +0 -41
  166. package/.yalc/@node-dlc/core/dist/lightning/CommitmentSecretStore.js +0 -79
  167. package/.yalc/@node-dlc/core/dist/lightning/CommitmentSecretStore.js.map +0 -1
  168. package/.yalc/@node-dlc/core/dist/lightning/Htlc.d.ts +0 -46
  169. package/.yalc/@node-dlc/core/dist/lightning/Htlc.js +0 -46
  170. package/.yalc/@node-dlc/core/dist/lightning/Htlc.js.map +0 -1
  171. package/.yalc/@node-dlc/core/dist/lightning/HtlcDirection.d.ts +0 -16
  172. package/.yalc/@node-dlc/core/dist/lightning/HtlcDirection.js +0 -21
  173. package/.yalc/@node-dlc/core/dist/lightning/HtlcDirection.js.map +0 -1
  174. package/.yalc/@node-dlc/core/dist/lightning/ScriptFactory.d.ts +0 -76
  175. package/.yalc/@node-dlc/core/dist/lightning/ScriptFactory.js +0 -102
  176. package/.yalc/@node-dlc/core/dist/lightning/ScriptFactory.js.map +0 -1
  177. package/.yalc/@node-dlc/core/dist/lightning/TxFactory.d.ts +0 -83
  178. package/.yalc/@node-dlc/core/dist/lightning/TxFactory.js +0 -222
  179. package/.yalc/@node-dlc/core/dist/lightning/TxFactory.js.map +0 -1
  180. package/.yalc/@node-dlc/core/dist/utils/BigIntUtils.d.ts +0 -9
  181. package/.yalc/@node-dlc/core/dist/utils/BigIntUtils.js +0 -59
  182. package/.yalc/@node-dlc/core/dist/utils/BigIntUtils.js.map +0 -1
  183. package/.yalc/@node-dlc/core/dist/utils/Precision.d.ts +0 -13
  184. package/.yalc/@node-dlc/core/dist/utils/Precision.js +0 -28
  185. package/.yalc/@node-dlc/core/dist/utils/Precision.js.map +0 -1
  186. package/.yalc/@node-dlc/core/lib/AsyncProcessingQueue.ts +0 -63
  187. package/.yalc/@node-dlc/core/lib/Base32.ts +0 -2
  188. package/.yalc/@node-dlc/core/lib/BigIntUtils.ts +0 -2
  189. package/.yalc/@node-dlc/core/lib/BitField.ts +0 -2
  190. package/.yalc/@node-dlc/core/lib/ChannelId.ts +0 -2
  191. package/.yalc/@node-dlc/core/lib/LinkedList.ts +0 -111
  192. package/.yalc/@node-dlc/core/lib/LinkedListNode.ts +0 -14
  193. package/.yalc/@node-dlc/core/lib/Queue.ts +0 -36
  194. package/.yalc/@node-dlc/core/lib/ShortChannelId.ts +0 -2
  195. package/.yalc/@node-dlc/core/lib/ShortChannelIdUtils.ts +0 -9
  196. package/.yalc/@node-dlc/core/lib/dlc/CETCalculator.ts +0 -450
  197. package/.yalc/@node-dlc/core/lib/dlc/CoinSelect.ts +0 -117
  198. package/.yalc/@node-dlc/core/lib/dlc/HyperbolaPayoutCurve.ts +0 -188
  199. package/.yalc/@node-dlc/core/lib/dlc/PayoutCurve.ts +0 -6
  200. package/.yalc/@node-dlc/core/lib/dlc/PolynomialPayoutCurve.ts +0 -266
  201. package/.yalc/@node-dlc/core/lib/dlc/TxBuilder.ts +0 -336
  202. package/.yalc/@node-dlc/core/lib/dlc/TxFinalizer.ts +0 -217
  203. package/.yalc/@node-dlc/core/lib/dlc/finance/Builder.ts +0 -730
  204. package/.yalc/@node-dlc/core/lib/dlc/finance/CoveredCall.ts +0 -110
  205. package/.yalc/@node-dlc/core/lib/dlc/finance/CsoInfo.ts +0 -498
  206. package/.yalc/@node-dlc/core/lib/dlc/finance/LinearPayout.ts +0 -94
  207. package/.yalc/@node-dlc/core/lib/dlc/finance/LongCall.ts +0 -74
  208. package/.yalc/@node-dlc/core/lib/dlc/finance/LongPut.ts +0 -74
  209. package/.yalc/@node-dlc/core/lib/dlc/finance/OptionInfo.ts +0 -182
  210. package/.yalc/@node-dlc/core/lib/dlc/finance/ShortPut.ts +0 -75
  211. package/.yalc/@node-dlc/core/lib/index.ts +0 -66
  212. package/.yalc/@node-dlc/core/lib/lightning/ChannelId.ts +0 -54
  213. package/.yalc/@node-dlc/core/lib/lightning/ChannelKeys.ts +0 -109
  214. package/.yalc/@node-dlc/core/lib/lightning/CommitmentNumber.ts +0 -94
  215. package/.yalc/@node-dlc/core/lib/lightning/CommitmentSecret.ts +0 -41
  216. package/.yalc/@node-dlc/core/lib/lightning/CommitmentSecretStore.ts +0 -84
  217. package/.yalc/@node-dlc/core/lib/lightning/Htlc.ts +0 -52
  218. package/.yalc/@node-dlc/core/lib/lightning/HtlcDirection.ts +0 -17
  219. package/.yalc/@node-dlc/core/lib/lightning/ScriptFactory.ts +0 -150
  220. package/.yalc/@node-dlc/core/lib/lightning/TxFactory.ts +0 -338
  221. package/.yalc/@node-dlc/core/lib/utils/BigIntUtils.ts +0 -64
  222. package/.yalc/@node-dlc/core/lib/utils/Precision.ts +0 -23
  223. package/.yalc/@node-dlc/core/package.json +0 -38
  224. package/.yalc/@node-dlc/core/tsconfig.json +0 -8
  225. package/.yalc/@node-dlc/core/yalc.sig +0 -1
  226. package/yalc.lock +0 -10
@@ -1,146 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getFinalizerByCount = exports.getFinalizer = exports.DualClosingTxFinalizer = exports.DualFundingTxFinalizer = void 0;
4
- const messaging_1 = require("@node-dlc/messaging");
5
- const decimal_js_1 = require("decimal.js");
6
- const BATCH_FUND_TX_BASE_WEIGHT = 42;
7
- const FUNDING_OUTPUT_SIZE = 43;
8
- class DualFundingTxFinalizer {
9
- constructor(offerInputs, offerPayoutSPK, offerChangeSPK, acceptInputs, acceptPayoutSPK, acceptChangeSPK, feeRate, numContracts = 1) {
10
- this.offerInputs = offerInputs;
11
- this.offerPayoutSPK = offerPayoutSPK;
12
- this.offerChangeSPK = offerChangeSPK;
13
- this.acceptInputs = acceptInputs;
14
- this.acceptPayoutSPK = acceptPayoutSPK;
15
- this.acceptChangeSPK = acceptChangeSPK;
16
- this.feeRate = feeRate;
17
- this.numContracts = numContracts;
18
- }
19
- computeFees(_inputs, payoutSPK, changeSPK, numContracts) {
20
- // If no inputs, return zero fees (matches C++ layer behavior for single-funded DLCs)
21
- if (_inputs.length === 0) {
22
- return { futureFee: BigInt(0), fundingFee: BigInt(0) };
23
- }
24
- _inputs.forEach((input) => {
25
- if (input.type !== messaging_1.MessageType.FundingInput) {
26
- console.error('input', input);
27
- throw new Error('Input is not a funding input');
28
- }
29
- });
30
- const inputs = _inputs.map((input) => input);
31
- // https://github.com/discreetlogcontracts/dlcspecs/blob/8ee4bbe816c9881c832b1ce320b9f14c72e3506f/Transactions.md#expected-weight-of-the-contract-execution-or-refund-transaction
32
- const futureFeeWeight = 249 + 4 * payoutSPK.length;
33
- const futureFeeVBytes = new decimal_js_1.Decimal(futureFeeWeight)
34
- .times(numContracts)
35
- .div(4)
36
- .ceil()
37
- .toNumber();
38
- const futureFee = this.feeRate * BigInt(futureFeeVBytes);
39
- // https://github.com/discreetlogcontracts/dlcspecs/blob/8ee4bbe816c9881c832b1ce320b9f14c72e3506f/Transactions.md#expected-weight-of-the-funding-transaction
40
- const inputWeight = inputs.reduce((total, input) => {
41
- return total + 164 + input.maxWitnessLen + input.scriptSigLength();
42
- }, 0);
43
- const contractWeight = (BATCH_FUND_TX_BASE_WEIGHT + FUNDING_OUTPUT_SIZE * numContracts * 4) / 2;
44
- const outputWeight = 36 + 4 * changeSPK.length + contractWeight;
45
- const weight = outputWeight + inputWeight;
46
- const vbytes = new decimal_js_1.Decimal(weight).div(4).ceil().toNumber();
47
- const fundingFee = this.feeRate * BigInt(vbytes);
48
- return { futureFee, fundingFee };
49
- }
50
- getOfferFees() {
51
- return this.computeFees(this.offerInputs, this.offerPayoutSPK, this.offerChangeSPK, this.numContracts);
52
- }
53
- getAcceptFees() {
54
- return this.computeFees(this.acceptInputs, this.acceptPayoutSPK, this.acceptChangeSPK, this.numContracts);
55
- }
56
- get offerFees() {
57
- const { futureFee, fundingFee } = this.getOfferFees();
58
- return futureFee + fundingFee;
59
- }
60
- get offerFutureFee() {
61
- return this.getOfferFees().futureFee;
62
- }
63
- get offerFundingFee() {
64
- return this.getOfferFees().fundingFee;
65
- }
66
- get acceptFees() {
67
- const { futureFee, fundingFee } = this.getAcceptFees();
68
- return futureFee + fundingFee;
69
- }
70
- get acceptFutureFee() {
71
- return this.getAcceptFees().futureFee;
72
- }
73
- get acceptFundingFee() {
74
- return this.getAcceptFees().fundingFee;
75
- }
76
- }
77
- exports.DualFundingTxFinalizer = DualFundingTxFinalizer;
78
- class DualClosingTxFinalizer {
79
- constructor(initiatorInputs, offerPayoutSPK, acceptPayoutSPK, feeRate) {
80
- this.initiatorInputs = initiatorInputs;
81
- this.offerPayoutSPK = offerPayoutSPK;
82
- this.acceptPayoutSPK = acceptPayoutSPK;
83
- this.feeRate = feeRate;
84
- }
85
- computeFees(payoutSPK, _inputs = []) {
86
- _inputs.forEach((input) => {
87
- if (input.type !== messaging_1.MessageType.FundingInput)
88
- throw new Error('Input is not a funding input');
89
- });
90
- const inputs = _inputs.map((input) => input);
91
- // https://gist.github.com/matthewjablack/08c36baa513af9377508111405b22e03
92
- const inputWeight = inputs.reduce((total, input) => {
93
- return total + 164 + input.maxWitnessLen + input.scriptSigLength();
94
- }, 0);
95
- const outputWeight = 36 + 4 * payoutSPK.length;
96
- const weight = 213 + outputWeight + inputWeight;
97
- const vbytes = new decimal_js_1.Decimal(weight).div(4).ceil().toNumber();
98
- const fee = this.feeRate * BigInt(vbytes);
99
- return fee;
100
- }
101
- getOfferInitiatorFees() {
102
- return this.computeFees(this.offerPayoutSPK, this.initiatorInputs);
103
- }
104
- getOfferReciprocatorFees() {
105
- return this.computeFees(this.offerPayoutSPK);
106
- }
107
- getAcceptInitiatorFees() {
108
- return this.computeFees(this.acceptPayoutSPK, this.initiatorInputs);
109
- }
110
- getAcceptReciprocatorFees() {
111
- return this.computeFees(this.acceptPayoutSPK);
112
- }
113
- get offerInitiatorFees() {
114
- return this.getOfferInitiatorFees();
115
- }
116
- get offerReciprocatorFees() {
117
- return this.getOfferReciprocatorFees();
118
- }
119
- get acceptInitiatorFees() {
120
- return this.getAcceptInitiatorFees();
121
- }
122
- get acceptReciprocatorFees() {
123
- return this.getAcceptReciprocatorFees();
124
- }
125
- }
126
- exports.DualClosingTxFinalizer = DualClosingTxFinalizer;
127
- const getFinalizer = (feeRate, offerInputs, acceptInputs, numContracts) => {
128
- const input = new messaging_1.FundingInput();
129
- input.maxWitnessLen = 108;
130
- input.redeemScript = Buffer.from('', 'hex');
131
- const fakeSPK = Buffer.from('0014663117d27e78eb432505180654e603acb30e8a4a', 'hex');
132
- offerInputs = offerInputs || Array.from({ length: 1 }, () => input);
133
- acceptInputs = acceptInputs || Array.from({ length: 1 }, () => input);
134
- return new DualFundingTxFinalizer(offerInputs, fakeSPK, fakeSPK, acceptInputs, fakeSPK, fakeSPK, feeRate, numContracts);
135
- };
136
- exports.getFinalizer = getFinalizer;
137
- const getFinalizerByCount = (feeRate, numOfferInputs, numAcceptInputs, numContracts) => {
138
- const input = new messaging_1.FundingInput();
139
- input.maxWitnessLen = 108;
140
- input.redeemScript = Buffer.from('', 'hex');
141
- const offerInputs = Array.from({ length: numOfferInputs }, () => input);
142
- const acceptInputs = Array.from({ length: numAcceptInputs }, () => input);
143
- return (0, exports.getFinalizer)(feeRate, offerInputs, acceptInputs, numContracts);
144
- };
145
- exports.getFinalizerByCount = getFinalizerByCount;
146
- //# sourceMappingURL=TxFinalizer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TxFinalizer.js","sourceRoot":"","sources":["../../lib/dlc/TxFinalizer.ts"],"names":[],"mappings":"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"}
@@ -1,193 +0,0 @@
1
- import { Value } from '@node-dlc/bitcoin';
2
- import { DigitDecompositionEventDescriptorV0, OracleAnnouncement, OrderOffer, PayoutFunction, RoundingIntervals } from '@node-dlc/messaging';
3
- import { BitcoinNetwork } from 'bitcoin-networks';
4
- export declare const UNIT_MULTIPLIER: {
5
- bits: bigint;
6
- sats: bigint;
7
- };
8
- /**
9
- * Round a number to the nearest multiple of a given multiplier.
10
- *
11
- * @param num - The number to be rounded.
12
- * @param multiplier - The multiplier to round to.
13
- * @returns The number rounded to the nearest multiple of the multiplier.
14
- *
15
- * @example
16
- * ```typescript
17
- * // Example: rounding to nearest 100
18
- * const number = BigInt(354);
19
- * const multiplier = BigInt(100);
20
- * const roundedNumber = roundToNearestMultiplier(number, multiplier);
21
- * console.log(roundedNumber); // Output: 300
22
- * ```
23
- */
24
- export declare const roundToNearestMultiplier: (num: bigint, multiplier: bigint) => bigint;
25
- /**
26
- * Round a number up to the nearest multiple of a given multiplier.
27
- *
28
- * @param num - The number to be rounded.
29
- * @param multiplier - The multiplier to round to.
30
- * @returns The number rounded up to the nearest multiple of the multiplier.
31
- *
32
- * @example
33
- * ```typescript
34
- * // Example: rounding up to nearest 100
35
- * const number = BigInt(354);
36
- * const multiplier = BigInt(100);
37
- * const roundedNumber = roundToNearestMultiplier(number, multiplier);
38
- * console.log(roundedNumber); // Output: 400
39
- * ```
40
- */
41
- export declare const roundUpToNearestMultiplier: (num: bigint, multiplier: bigint) => bigint;
42
- export declare const roundDownToNearestMultiplier: (num: bigint, multiplier: bigint) => bigint;
43
- export type DlcParty = 'offeror' | 'acceptor' | 'neither';
44
- /**
45
- * Compute rounding intervals for a linear or hyperbola payout curve
46
- *
47
- * @param {number | bigint | Value} rounding rounding interval in sats
48
- * @param {number | bigint | Value} contractSize contract size in sats
49
- * @returns rounding mod for contract size
50
- */
51
- export declare const computeRoundingModulus: (rounding: number | bigint | Value, contractSize: number | bigint | Value) => bigint;
52
- /**
53
- * Get digit decomposition event descriptor from oracle announcement
54
- *
55
- * @param {OracleAnnouncement} announcement oracle announcement
56
- * @returns {DigitDecompositionEventDescriptorV0} event descriptor
57
- */
58
- export declare const getDigitDecompositionEventDescriptor: (announcement: OracleAnnouncement) => DigitDecompositionEventDescriptorV0;
59
- /**
60
- * Build an orderoffer for ContractDescriptorV1
61
- *
62
- * @param {OracleAnnouncement} announcement oracle announcement
63
- * @param {bigint} totalCollateral total collateral in satoshis
64
- * @param {bigint} offerCollateral offer collateral in satoshis
65
- * @param {PayoutFunction} payoutFunction
66
- * @param {RoundingIntervals} roundingIntervals
67
- * @param {bigint} feePerByte sats/vbyte
68
- * @param {NetworkName} network
69
- * @returns {OrderOffer} Returns order offer
70
- */
71
- export declare const buildOrderOffer: (announcement: OracleAnnouncement, totalCollateral: bigint, offerCollateral: bigint, payoutFunction: PayoutFunction, roundingIntervals: RoundingIntervals, feePerByte: bigint, network: string) => OrderOffer;
72
- /**
73
- * Builds an order offer for a covered call or short put
74
- *
75
- * @param {OracleAnnouncement} announcement oracle announcement
76
- * @param {number} contractSize contract size in satoshis
77
- * @param {number} strikePrice strike price of contract
78
- * @param {number} premium premium of contract in satoshis
79
- * @param {number | bigint} feePerByte sats/vbyte
80
- * @param {number} rounding rounding interval
81
- * @param {string} network bitcoin network type
82
- * @param {string} type call or put
83
- * @param {number} _totalCollateral total collateral in satoshis (applicable only for short put)
84
- * @returns {OrderOffer} Returns order offer
85
- */
86
- export declare const buildOptionOrderOffer: (announcement: OracleAnnouncement, contractSize: Value, strikePrice: number, premium: Value, feePerByte: number | bigint, rounding: number, network: string, type: 'call' | 'put', direction: 'long' | 'short', _totalCollateral?: Value) => OrderOffer;
87
- /**
88
- * Builds an order offer for a covered call
89
- *
90
- * @param {OracleAnnouncement} announcement oracle announcement
91
- * @param {number} contractSize contract size in satoshis
92
- * @param {number} strikePrice strike price of contract
93
- * @param {number} premium premium of contract in satoshis
94
- * @param {number} feePerByte sats/vbyte
95
- * @param {number} rounding rounding interval
96
- * @param {string} network bitcoin network type
97
- * @returns {OrderOffer} Returns order offer
98
- */
99
- export declare const buildCoveredCallOrderOffer: (announcement: OracleAnnouncement, contractSize: Value, strikePrice: number, premium: Value, feePerByte: number, rounding: number, network: string) => OrderOffer;
100
- /**
101
- * Builds an order offer for a short put
102
- *
103
- * @param {OracleAnnouncement} announcement oracle announcement
104
- * @param {number} contractSize contract size in satoshis
105
- * @param {number} strikePrice strike price of contract
106
- * @param {number} totalCollateral total collateral in satoshis
107
- * @param {number} premium premium of contract in satoshis
108
- * @param {number} feePerByte sats/vbyte
109
- * @param {number} rounding rounding interval
110
- * @param {string} network bitcoin network type
111
- * @returns {OrderOffer} Returns order offer
112
- */
113
- export declare const buildShortPutOrderOffer: (announcement: OracleAnnouncement, contractSize: Value, strikePrice: number, totalCollateral: Value, premium: Value, feePerByte: number, rounding: number, network: string) => OrderOffer;
114
- /**
115
- * Builds an order offer for a long call
116
- *
117
- * @param {OracleAnnouncement} announcement oracle announcement
118
- * @param {number} contractSize contract size in satoshis
119
- * @param {number} strikePrice strike price of contract
120
- * @param {number} maxGain maximum amount that can be gained (totalCollateral)
121
- * @param {number} premium premium of contract in satoshis
122
- * @param {number} feePerByte sats/vbyte
123
- * @param {number} rounding rounding interval
124
- * @param {string} network bitcoin network type
125
- * @returns {OrderOffer} Returns order offer
126
- */
127
- export declare const buildLongCallOrderOffer: (announcement: OracleAnnouncement, contractSize: Value, strikePrice: number, maxGain: Value, premium: Value, feePerByte: number, rounding: number, network: string) => OrderOffer;
128
- /**
129
- * Builds an order offer for a long put
130
- *
131
- * @param {OracleAnnouncement} announcement oracle announcement
132
- * @param {number} contractSize contract size in satoshis
133
- * @param {number} strikePrice strike price of contract
134
- * @param {number} maxGain maximum amount that can be gained (totalCollateral)
135
- * @param {number} premium premium of contract in satoshis
136
- * @param {number} feePerByte sats/vbyte
137
- * @param {number} rounding rounding interval
138
- * @param {string} network bitcoin network type
139
- * @returns {OrderOffer} Returns order offer
140
- */
141
- export declare const buildLongPutOrderOffer: (announcement: OracleAnnouncement, contractSize: Value, strikePrice: number, maxGain: Value, premium: Value, feePerByte: number, rounding: number, network: string) => OrderOffer;
142
- /**
143
- * Builds an order offer for a linear curve
144
- *
145
- * @param {OracleAnnouncement} announcement oracle announcement
146
- * @param {Value} offerCollateral offer collateral amount
147
- * @param {Value} minPayout minimum payout
148
- * @param {Value} maxPayout maximum payout (also total collateral)
149
- * @param {bigint} startOutcome oracle outcome (in bits or sats)
150
- * @param {bigint} endOutcome oracle outcome (in bits or sats)
151
- * @param {bigint} feePerByte sats/vbyte
152
- * @param {Value} rounding rounding mod for RoundingInterval
153
- * @param {BitcoinNetwork} network bitcoin, bitcoin_testnet or bitcoin_regtest
154
- * @param {DlcParty} [shiftForFees] shift for offerer, acceptor or neither (who should pay fees)
155
- * @param {Value} [fees] fees to shift
156
- * @returns {OrderOffer}
157
- */
158
- export declare const buildLinearOrderOffer: (announcement: OracleAnnouncement, offerCollateral: Value, minPayout: Value, maxPayout: Value, startOutcome: bigint, endOutcome: bigint, feePerByte: bigint, roundingIntervals: RoundingIntervals, network: BitcoinNetwork, shiftForFees?: DlcParty, fees?: Value) => OrderOffer;
159
- /**
160
- * Builds a custom strategy order offer
161
- *
162
- * Calculates offer fees
163
- * calculates the minimum max gain
164
- * maxLoss and maxGain are normalized to 1 BTC contracts
165
- *
166
- * shiftForFees 'offeror' means 'offeror' pays network fees
167
- * shiftForFees 'acceptor' means 'acceptor' pays network fees
168
- *
169
- * numContracts refers to the number of DLCs in the funding transaction
170
- * if it's not a batch dlc funding transaction, then this is not relevant
171
- *
172
- * @param {OracleAnnouncement} announcement oracle announcement
173
- * @param {Value} contractSize contract size
174
- * @param {Value} normalizedMaxLoss maximum amount that can be lost based on 1 BTC contract
175
- * @param {Value} normalizedMaxGain maximum amount that can be gained based on 1 BTC contract
176
- * @param {bigint} feePerByte sats/vbyte
177
- * @param {Value} roundingIntervals rounding mod for RoundingInterval
178
- * @param {BitcoinNetwork} network bitcoin, bitcoin_testnet or bitcoin_regtest
179
- * @param {DlcParty} [shiftForFees] shift for offerer, acceptor or neither
180
- * @param {Value} [fees_] fees to shift
181
- * @param {Value} [collateral] collateral to use
182
- * @param {number} [numOfferInputs] number of inputs to use
183
- * @param {number} [numContracts] number of DLCs in the funding transaction
184
- *
185
- * @returns {OrderOffer}
186
- */
187
- export declare const buildCustomStrategyOrderOffer: (announcement: OracleAnnouncement, contractSize: Value, normalizedMaxLoss: Value, normalizedMaxGain: Value, feePerByte: bigint, roundingIntervals: RoundingIntervals, network: BitcoinNetwork, shiftForFees?: DlcParty, fees_?: Value, collateral?: Value, numOfferInputs?: number, numContracts?: number, skipValidation?: boolean) => OrderOffer;
188
- interface IInterval {
189
- beginInterval: bigint;
190
- rounding: number | bigint | Value;
191
- }
192
- export declare const buildRoundingIntervalsFromIntervals: (contractSize: Value, intervals: IInterval[]) => RoundingIntervals;
193
- export {};