@atomicfinance/bitcoin-wallet-provider 4.2.6 → 4.2.8
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.
- package/.turbo/turbo-build.log +4 -5
- package/CHANGELOG.md +24 -0
- package/package.json +7 -7
- package/.turbo/turbo-lint$colon$fix.log +0 -4
- package/.turbo/turbo-lint.log +0 -5
- package/.turbo/turbo-test.log +0 -0
- package/.yalc/@node-dlc/core/.nyc_output/687a3c14-9765-45fd-a1fe-f7db3d56fee4.json +0 -1
- package/.yalc/@node-dlc/core/.nyc_output/processinfo/687a3c14-9765-45fd-a1fe-f7db3d56fee4.json +0 -1
- package/.yalc/@node-dlc/core/.nyc_output/processinfo/index.json +0 -1
- package/.yalc/@node-dlc/core/README.md +0 -11
- package/.yalc/@node-dlc/core/__tests__/core.spec.ts +0 -7
- package/.yalc/@node-dlc/core/__tests__/dlc/CETCalculator.spec.ts +0 -1029
- package/.yalc/@node-dlc/core/__tests__/dlc/CoinSelect.spec.ts +0 -179
- package/.yalc/@node-dlc/core/__tests__/dlc/PolynomialPayoutCurve.spec.ts +0 -345
- package/.yalc/@node-dlc/core/__tests__/dlc/TxBuilder.spec.ts +0 -424
- package/.yalc/@node-dlc/core/__tests__/dlc/finance/Builder.spec.ts +0 -492
- package/.yalc/@node-dlc/core/__tests__/dlc/finance/CoveredCall.spec.ts +0 -112
- package/.yalc/@node-dlc/core/__tests__/dlc/finance/CsoInfo.spec.ts +0 -1124
- package/.yalc/@node-dlc/core/__tests__/dlc/finance/LongCall.spec.ts +0 -55
- package/.yalc/@node-dlc/core/__tests__/dlc/finance/LongPut.spec.ts +0 -55
- package/.yalc/@node-dlc/core/__tests__/dlc/finance/OptionInfo.spec.ts +0 -226
- package/.yalc/@node-dlc/core/__tests__/dlc/finance/ShortPut.spec.ts +0 -62
- package/.yalc/@node-dlc/core/__tests__/tsconfig.json +0 -8
- package/.yalc/@node-dlc/core/__tests__/utils/precision.spec.ts +0 -40
- package/.yalc/@node-dlc/core/coverage/lcov-report/base.css +0 -224
- package/.yalc/@node-dlc/core/coverage/lcov-report/block-navigation.js +0 -79
- package/.yalc/@node-dlc/core/coverage/lcov-report/favicon.png +0 -0
- package/.yalc/@node-dlc/core/coverage/lcov-report/index.html +0 -171
- package/.yalc/@node-dlc/core/coverage/lcov-report/lib/AsyncProcessingQueue.ts.html +0 -269
- package/.yalc/@node-dlc/core/coverage/lcov-report/lib/Base32.ts.html +0 -86
- package/.yalc/@node-dlc/core/coverage/lcov-report/lib/BigIntUtils.ts.html +0 -86
- package/.yalc/@node-dlc/core/coverage/lcov-report/lib/BitField.ts.html +0 -86
- package/.yalc/@node-dlc/core/coverage/lcov-report/lib/ChannelId.ts.html +0 -86
- package/.yalc/@node-dlc/core/coverage/lcov-report/lib/LinkedList.ts.html +0 -413
- package/.yalc/@node-dlc/core/coverage/lcov-report/lib/LinkedListNode.ts.html +0 -122
- package/.yalc/@node-dlc/core/coverage/lcov-report/lib/Queue.ts.html +0 -188
- package/.yalc/@node-dlc/core/coverage/lcov-report/lib/ShortChannelId.ts.html +0 -86
- package/.yalc/@node-dlc/core/coverage/lcov-report/lib/ShortChannelIdUtils.ts.html +0 -107
- package/.yalc/@node-dlc/core/coverage/lcov-report/lib/dlc/CETCalculator.ts.html +0 -1430
- package/.yalc/@node-dlc/core/coverage/lcov-report/lib/dlc/CoinSelect.ts.html +0 -431
- package/.yalc/@node-dlc/core/coverage/lcov-report/lib/dlc/HyperbolaPayoutCurve.ts.html +0 -644
- package/.yalc/@node-dlc/core/coverage/lcov-report/lib/dlc/PolynomialPayoutCurve.ts.html +0 -878
- package/.yalc/@node-dlc/core/coverage/lcov-report/lib/dlc/TxBuilder.ts.html +0 -1088
- package/.yalc/@node-dlc/core/coverage/lcov-report/lib/dlc/TxFinalizer.ts.html +0 -731
- package/.yalc/@node-dlc/core/coverage/lcov-report/lib/dlc/finance/Builder.ts.html +0 -2270
- package/.yalc/@node-dlc/core/coverage/lcov-report/lib/dlc/finance/CoveredCall.ts.html +0 -410
- package/.yalc/@node-dlc/core/coverage/lcov-report/lib/dlc/finance/CsoInfo.ts.html +0 -1574
- package/.yalc/@node-dlc/core/coverage/lcov-report/lib/dlc/finance/LinearPayout.ts.html +0 -362
- package/.yalc/@node-dlc/core/coverage/lcov-report/lib/dlc/finance/LongCall.ts.html +0 -302
- package/.yalc/@node-dlc/core/coverage/lcov-report/lib/dlc/finance/LongPut.ts.html +0 -302
- package/.yalc/@node-dlc/core/coverage/lcov-report/lib/dlc/finance/OptionInfo.ts.html +0 -626
- package/.yalc/@node-dlc/core/coverage/lcov-report/lib/dlc/finance/ShortPut.ts.html +0 -305
- package/.yalc/@node-dlc/core/coverage/lcov-report/lib/dlc/finance/index.html +0 -216
- package/.yalc/@node-dlc/core/coverage/lcov-report/lib/dlc/index.html +0 -186
- package/.yalc/@node-dlc/core/coverage/lcov-report/lib/index.html +0 -261
- package/.yalc/@node-dlc/core/coverage/lcov-report/lib/index.ts.html +0 -278
- package/.yalc/@node-dlc/core/coverage/lcov-report/lib/lightning/ChannelId.ts.html +0 -242
- package/.yalc/@node-dlc/core/coverage/lcov-report/lib/lightning/ChannelKeys.ts.html +0 -407
- package/.yalc/@node-dlc/core/coverage/lcov-report/lib/lightning/CommitmentNumber.ts.html +0 -362
- package/.yalc/@node-dlc/core/coverage/lcov-report/lib/lightning/CommitmentSecret.ts.html +0 -203
- package/.yalc/@node-dlc/core/coverage/lcov-report/lib/lightning/CommitmentSecretStore.ts.html +0 -332
- package/.yalc/@node-dlc/core/coverage/lcov-report/lib/lightning/Htlc.ts.html +0 -236
- package/.yalc/@node-dlc/core/coverage/lcov-report/lib/lightning/HtlcDirection.ts.html +0 -131
- package/.yalc/@node-dlc/core/coverage/lcov-report/lib/lightning/ScriptFactory.ts.html +0 -530
- package/.yalc/@node-dlc/core/coverage/lcov-report/lib/lightning/TxFactory.ts.html +0 -1094
- package/.yalc/@node-dlc/core/coverage/lcov-report/lib/lightning/index.html +0 -231
- package/.yalc/@node-dlc/core/coverage/lcov-report/lib/utils/BigIntUtils.ts.html +0 -272
- package/.yalc/@node-dlc/core/coverage/lcov-report/lib/utils/Precision.ts.html +0 -149
- package/.yalc/@node-dlc/core/coverage/lcov-report/lib/utils/index.html +0 -126
- package/.yalc/@node-dlc/core/coverage/lcov-report/prettify.css +0 -1
- package/.yalc/@node-dlc/core/coverage/lcov-report/prettify.js +0 -2
- package/.yalc/@node-dlc/core/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/.yalc/@node-dlc/core/coverage/lcov-report/sorter.js +0 -170
- package/.yalc/@node-dlc/core/coverage/lcov.info +0 -2426
- package/.yalc/@node-dlc/core/dist/AsyncProcessingQueue.d.ts +0 -22
- package/.yalc/@node-dlc/core/dist/AsyncProcessingQueue.js +0 -55
- package/.yalc/@node-dlc/core/dist/AsyncProcessingQueue.js.map +0 -1
- package/.yalc/@node-dlc/core/dist/Base32.d.ts +0 -1
- package/.yalc/@node-dlc/core/dist/Base32.js +0 -7
- package/.yalc/@node-dlc/core/dist/Base32.js.map +0 -1
- package/.yalc/@node-dlc/core/dist/BigIntUtils.d.ts +0 -1
- package/.yalc/@node-dlc/core/dist/BigIntUtils.js +0 -8
- package/.yalc/@node-dlc/core/dist/BigIntUtils.js.map +0 -1
- package/.yalc/@node-dlc/core/dist/BitField.d.ts +0 -1
- package/.yalc/@node-dlc/core/dist/BitField.js +0 -7
- package/.yalc/@node-dlc/core/dist/BitField.js.map +0 -1
- package/.yalc/@node-dlc/core/dist/ChannelId.d.ts +0 -1
- package/.yalc/@node-dlc/core/dist/ChannelId.js +0 -7
- package/.yalc/@node-dlc/core/dist/ChannelId.js.map +0 -1
- package/.yalc/@node-dlc/core/dist/LinkedList.d.ts +0 -30
- package/.yalc/@node-dlc/core/dist/LinkedList.js +0 -104
- package/.yalc/@node-dlc/core/dist/LinkedList.js.map +0 -1
- package/.yalc/@node-dlc/core/dist/LinkedListNode.d.ts +0 -9
- package/.yalc/@node-dlc/core/dist/LinkedListNode.js +0 -15
- package/.yalc/@node-dlc/core/dist/LinkedListNode.js.map +0 -1
- package/.yalc/@node-dlc/core/dist/Queue.d.ts +0 -22
- package/.yalc/@node-dlc/core/dist/Queue.js +0 -38
- package/.yalc/@node-dlc/core/dist/Queue.js.map +0 -1
- package/.yalc/@node-dlc/core/dist/ShortChannelId.d.ts +0 -1
- package/.yalc/@node-dlc/core/dist/ShortChannelId.js +0 -7
- package/.yalc/@node-dlc/core/dist/ShortChannelId.js.map +0 -1
- package/.yalc/@node-dlc/core/dist/ShortChannelIdUtils.d.ts +0 -1
- package/.yalc/@node-dlc/core/dist/ShortChannelIdUtils.js +0 -12
- package/.yalc/@node-dlc/core/dist/ShortChannelIdUtils.js.map +0 -1
- package/.yalc/@node-dlc/core/dist/dlc/CETCalculator.d.ts +0 -50
- package/.yalc/@node-dlc/core/dist/dlc/CETCalculator.js +0 -332
- package/.yalc/@node-dlc/core/dist/dlc/CETCalculator.js.map +0 -1
- package/.yalc/@node-dlc/core/dist/dlc/CoinSelect.d.ts +0 -23
- package/.yalc/@node-dlc/core/dist/dlc/CoinSelect.js +0 -77
- package/.yalc/@node-dlc/core/dist/dlc/CoinSelect.js.map +0 -1
- package/.yalc/@node-dlc/core/dist/dlc/HyperbolaPayoutCurve.d.ts +0 -20
- package/.yalc/@node-dlc/core/dist/dlc/HyperbolaPayoutCurve.js +0 -117
- package/.yalc/@node-dlc/core/dist/dlc/HyperbolaPayoutCurve.js.map +0 -1
- package/.yalc/@node-dlc/core/dist/dlc/PayoutCurve.d.ts +0 -5
- package/.yalc/@node-dlc/core/dist/dlc/PayoutCurve.js +0 -3
- package/.yalc/@node-dlc/core/dist/dlc/PayoutCurve.js.map +0 -1
- package/.yalc/@node-dlc/core/dist/dlc/PolynomialPayoutCurve.d.ts +0 -52
- package/.yalc/@node-dlc/core/dist/dlc/PolynomialPayoutCurve.js +0 -173
- package/.yalc/@node-dlc/core/dist/dlc/PolynomialPayoutCurve.js.map +0 -1
- package/.yalc/@node-dlc/core/dist/dlc/TxBuilder.d.ts +0 -55
- package/.yalc/@node-dlc/core/dist/dlc/TxBuilder.js +0 -217
- package/.yalc/@node-dlc/core/dist/dlc/TxBuilder.js.map +0 -1
- package/.yalc/@node-dlc/core/dist/dlc/TxFinalizer.d.ts +0 -40
- package/.yalc/@node-dlc/core/dist/dlc/TxFinalizer.js +0 -146
- package/.yalc/@node-dlc/core/dist/dlc/TxFinalizer.js.map +0 -1
- package/.yalc/@node-dlc/core/dist/dlc/finance/Builder.d.ts +0 -193
- package/.yalc/@node-dlc/core/dist/dlc/finance/Builder.js +0 -422
- package/.yalc/@node-dlc/core/dist/dlc/finance/Builder.js.map +0 -1
- package/.yalc/@node-dlc/core/dist/dlc/finance/CoveredCall.d.ts +0 -13
- package/.yalc/@node-dlc/core/dist/dlc/finance/CoveredCall.js +0 -67
- package/.yalc/@node-dlc/core/dist/dlc/finance/CoveredCall.js.map +0 -1
- package/.yalc/@node-dlc/core/dist/dlc/finance/CsoInfo.d.ts +0 -114
- package/.yalc/@node-dlc/core/dist/dlc/finance/CsoInfo.js +0 -290
- package/.yalc/@node-dlc/core/dist/dlc/finance/CsoInfo.js.map +0 -1
- package/.yalc/@node-dlc/core/dist/dlc/finance/LinearPayout.d.ts +0 -6
- package/.yalc/@node-dlc/core/dist/dlc/finance/LinearPayout.js +0 -79
- package/.yalc/@node-dlc/core/dist/dlc/finance/LinearPayout.js.map +0 -1
- package/.yalc/@node-dlc/core/dist/dlc/finance/LongCall.d.ts +0 -13
- package/.yalc/@node-dlc/core/dist/dlc/finance/LongCall.js +0 -47
- package/.yalc/@node-dlc/core/dist/dlc/finance/LongCall.js.map +0 -1
- package/.yalc/@node-dlc/core/dist/dlc/finance/LongPut.d.ts +0 -13
- package/.yalc/@node-dlc/core/dist/dlc/finance/LongPut.js +0 -47
- package/.yalc/@node-dlc/core/dist/dlc/finance/LongPut.js.map +0 -1
- package/.yalc/@node-dlc/core/dist/dlc/finance/OptionInfo.d.ts +0 -20
- package/.yalc/@node-dlc/core/dist/dlc/finance/OptionInfo.js +0 -101
- package/.yalc/@node-dlc/core/dist/dlc/finance/OptionInfo.js.map +0 -1
- package/.yalc/@node-dlc/core/dist/dlc/finance/ShortPut.d.ts +0 -12
- package/.yalc/@node-dlc/core/dist/dlc/finance/ShortPut.js +0 -46
- package/.yalc/@node-dlc/core/dist/dlc/finance/ShortPut.js.map +0 -1
- package/.yalc/@node-dlc/core/dist/index.d.ts +0 -39
- package/.yalc/@node-dlc/core/dist/index.js +0 -78
- package/.yalc/@node-dlc/core/dist/index.js.map +0 -1
- package/.yalc/@node-dlc/core/dist/lightning/ChannelId.d.ts +0 -31
- package/.yalc/@node-dlc/core/dist/lightning/ChannelId.js +0 -52
- package/.yalc/@node-dlc/core/dist/lightning/ChannelId.js.map +0 -1
- package/.yalc/@node-dlc/core/dist/lightning/ChannelKeys.d.ts +0 -55
- package/.yalc/@node-dlc/core/dist/lightning/ChannelKeys.js +0 -105
- package/.yalc/@node-dlc/core/dist/lightning/ChannelKeys.js.map +0 -1
- package/.yalc/@node-dlc/core/dist/lightning/CommitmentNumber.d.ts +0 -55
- package/.yalc/@node-dlc/core/dist/lightning/CommitmentNumber.js +0 -76
- package/.yalc/@node-dlc/core/dist/lightning/CommitmentNumber.js.map +0 -1
- package/.yalc/@node-dlc/core/dist/lightning/CommitmentSecret.d.ts +0 -26
- package/.yalc/@node-dlc/core/dist/lightning/CommitmentSecret.js +0 -44
- package/.yalc/@node-dlc/core/dist/lightning/CommitmentSecret.js.map +0 -1
- package/.yalc/@node-dlc/core/dist/lightning/CommitmentSecretStore.d.ts +0 -41
- package/.yalc/@node-dlc/core/dist/lightning/CommitmentSecretStore.js +0 -79
- package/.yalc/@node-dlc/core/dist/lightning/CommitmentSecretStore.js.map +0 -1
- package/.yalc/@node-dlc/core/dist/lightning/Htlc.d.ts +0 -46
- package/.yalc/@node-dlc/core/dist/lightning/Htlc.js +0 -46
- package/.yalc/@node-dlc/core/dist/lightning/Htlc.js.map +0 -1
- package/.yalc/@node-dlc/core/dist/lightning/HtlcDirection.d.ts +0 -16
- package/.yalc/@node-dlc/core/dist/lightning/HtlcDirection.js +0 -21
- package/.yalc/@node-dlc/core/dist/lightning/HtlcDirection.js.map +0 -1
- package/.yalc/@node-dlc/core/dist/lightning/ScriptFactory.d.ts +0 -76
- package/.yalc/@node-dlc/core/dist/lightning/ScriptFactory.js +0 -102
- package/.yalc/@node-dlc/core/dist/lightning/ScriptFactory.js.map +0 -1
- package/.yalc/@node-dlc/core/dist/lightning/TxFactory.d.ts +0 -83
- package/.yalc/@node-dlc/core/dist/lightning/TxFactory.js +0 -222
- package/.yalc/@node-dlc/core/dist/lightning/TxFactory.js.map +0 -1
- package/.yalc/@node-dlc/core/dist/utils/BigIntUtils.d.ts +0 -9
- package/.yalc/@node-dlc/core/dist/utils/BigIntUtils.js +0 -59
- package/.yalc/@node-dlc/core/dist/utils/BigIntUtils.js.map +0 -1
- package/.yalc/@node-dlc/core/dist/utils/Precision.d.ts +0 -13
- package/.yalc/@node-dlc/core/dist/utils/Precision.js +0 -28
- package/.yalc/@node-dlc/core/dist/utils/Precision.js.map +0 -1
- package/.yalc/@node-dlc/core/lib/AsyncProcessingQueue.ts +0 -63
- package/.yalc/@node-dlc/core/lib/Base32.ts +0 -2
- package/.yalc/@node-dlc/core/lib/BigIntUtils.ts +0 -2
- package/.yalc/@node-dlc/core/lib/BitField.ts +0 -2
- package/.yalc/@node-dlc/core/lib/ChannelId.ts +0 -2
- package/.yalc/@node-dlc/core/lib/LinkedList.ts +0 -111
- package/.yalc/@node-dlc/core/lib/LinkedListNode.ts +0 -14
- package/.yalc/@node-dlc/core/lib/Queue.ts +0 -36
- package/.yalc/@node-dlc/core/lib/ShortChannelId.ts +0 -2
- package/.yalc/@node-dlc/core/lib/ShortChannelIdUtils.ts +0 -9
- package/.yalc/@node-dlc/core/lib/dlc/CETCalculator.ts +0 -450
- package/.yalc/@node-dlc/core/lib/dlc/CoinSelect.ts +0 -117
- package/.yalc/@node-dlc/core/lib/dlc/HyperbolaPayoutCurve.ts +0 -188
- package/.yalc/@node-dlc/core/lib/dlc/PayoutCurve.ts +0 -6
- package/.yalc/@node-dlc/core/lib/dlc/PolynomialPayoutCurve.ts +0 -266
- package/.yalc/@node-dlc/core/lib/dlc/TxBuilder.ts +0 -336
- package/.yalc/@node-dlc/core/lib/dlc/TxFinalizer.ts +0 -217
- package/.yalc/@node-dlc/core/lib/dlc/finance/Builder.ts +0 -730
- package/.yalc/@node-dlc/core/lib/dlc/finance/CoveredCall.ts +0 -110
- package/.yalc/@node-dlc/core/lib/dlc/finance/CsoInfo.ts +0 -498
- package/.yalc/@node-dlc/core/lib/dlc/finance/LinearPayout.ts +0 -94
- package/.yalc/@node-dlc/core/lib/dlc/finance/LongCall.ts +0 -74
- package/.yalc/@node-dlc/core/lib/dlc/finance/LongPut.ts +0 -74
- package/.yalc/@node-dlc/core/lib/dlc/finance/OptionInfo.ts +0 -182
- package/.yalc/@node-dlc/core/lib/dlc/finance/ShortPut.ts +0 -75
- package/.yalc/@node-dlc/core/lib/index.ts +0 -66
- package/.yalc/@node-dlc/core/lib/lightning/ChannelId.ts +0 -54
- package/.yalc/@node-dlc/core/lib/lightning/ChannelKeys.ts +0 -109
- package/.yalc/@node-dlc/core/lib/lightning/CommitmentNumber.ts +0 -94
- package/.yalc/@node-dlc/core/lib/lightning/CommitmentSecret.ts +0 -41
- package/.yalc/@node-dlc/core/lib/lightning/CommitmentSecretStore.ts +0 -84
- package/.yalc/@node-dlc/core/lib/lightning/Htlc.ts +0 -52
- package/.yalc/@node-dlc/core/lib/lightning/HtlcDirection.ts +0 -17
- package/.yalc/@node-dlc/core/lib/lightning/ScriptFactory.ts +0 -150
- package/.yalc/@node-dlc/core/lib/lightning/TxFactory.ts +0 -338
- package/.yalc/@node-dlc/core/lib/utils/BigIntUtils.ts +0 -64
- package/.yalc/@node-dlc/core/lib/utils/Precision.ts +0 -23
- package/.yalc/@node-dlc/core/package.json +0 -38
- package/.yalc/@node-dlc/core/tsconfig.json +0 -8
- package/.yalc/@node-dlc/core/yalc.sig +0 -1
- 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 {};
|