@atomicfinance/bitcoin-dlc-provider 3.4.7 → 3.5.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.
- package/.turbo/turbo-build.log +1 -1
- package/.turbo/turbo-test.log +1 -0
- package/CHANGELOG.md +25 -0
- package/dist/BitcoinDlcProvider.d.ts +1 -1
- package/dist/BitcoinDlcProvider.js +101 -107
- package/dist/BitcoinDlcProvider.js.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/utils/Utils.js +1 -1
- package/dist/utils/Utils.js.map +1 -1
- package/lib/BitcoinDlcProvider.js +2027 -0
- package/lib/BitcoinDlcProvider.ts +7 -14
- package/lib/index.js +25 -0
- package/lib/utils/Utils.js +78 -0
- package/package.json +5 -5
|
@@ -124,7 +124,7 @@ export default class BitcoinDlcProvider
|
|
|
124
124
|
this._cfdDlcJs = cfdDlcJs;
|
|
125
125
|
}
|
|
126
126
|
|
|
127
|
-
|
|
127
|
+
public async CfdLoaded() {
|
|
128
128
|
while (!this._cfdDlcJs) {
|
|
129
129
|
await sleep(10);
|
|
130
130
|
}
|
|
@@ -1352,7 +1352,6 @@ Payout Group not found',
|
|
|
1352
1352
|
let index = 0;
|
|
1353
1353
|
let groupIndex = -1;
|
|
1354
1354
|
let groupLength = 0;
|
|
1355
|
-
const payoutGroupFound = false;
|
|
1356
1355
|
|
|
1357
1356
|
for (const [i, payoutGroup] of payoutGroups.entries()) {
|
|
1358
1357
|
if (payoutGroup.payout === roundedPayout) {
|
|
@@ -1365,7 +1364,8 @@ Payout Group not found',
|
|
|
1365
1364
|
break;
|
|
1366
1365
|
}
|
|
1367
1366
|
} else if (
|
|
1368
|
-
payoutGroup.payout === BigInt(Math.round(Number(payout.toString())))
|
|
1367
|
+
payoutGroup.payout === BigInt(Math.round(Number(payout.toString()))) &&
|
|
1368
|
+
i !== 0
|
|
1369
1369
|
) {
|
|
1370
1370
|
// Edge case to account for case where payout is maximum payout for DLC
|
|
1371
1371
|
// But rounded payout does not round down
|
|
@@ -1388,17 +1388,10 @@ Payout Group not found',
|
|
|
1388
1388
|
}
|
|
1389
1389
|
|
|
1390
1390
|
if (groupIndex === -1) {
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
);
|
|
1396
|
-
} else {
|
|
1397
|
-
throw Error(
|
|
1398
|
-
'Failed to Find OutcomeIndex From HyperbolaPayoutCurvePiece. \
|
|
1399
|
-
Payout Group not found',
|
|
1400
|
-
);
|
|
1401
|
-
}
|
|
1391
|
+
throw Error(
|
|
1392
|
+
'Failed to Find OutcomeIndex From HyperbolaPayoutCurvePiece. \
|
|
1393
|
+
Payout Group not found',
|
|
1394
|
+
);
|
|
1402
1395
|
}
|
|
1403
1396
|
|
|
1404
1397
|
return { index: payoutIndexOffset + index, groupLength };
|
package/lib/index.js
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
17
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
|
+
};
|
|
19
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
exports.default = void 0;
|
|
21
|
+
__exportStar(require("./utils/Utils"), exports);
|
|
22
|
+
var BitcoinDlcProvider_1 = require("./BitcoinDlcProvider");
|
|
23
|
+
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(BitcoinDlcProvider_1).default; } });
|
|
24
|
+
__exportStar(require("./BitcoinDlcProvider"), exports);
|
|
25
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.outputsToPayouts = exports.checkTypes = exports.generateSerialIds = exports.generateSerialId = exports.asyncForEach = void 0;
|
|
7
|
+
const messaging_1 = require("@node-dlc/messaging");
|
|
8
|
+
const randombytes_1 = __importDefault(require("randombytes"));
|
|
9
|
+
const asyncForEach = async (array, callback) => {
|
|
10
|
+
for (let index = 0; index < array.length; index++) {
|
|
11
|
+
await callback(array[index], index, array);
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
exports.asyncForEach = asyncForEach;
|
|
15
|
+
function generateSerialId() {
|
|
16
|
+
return (0, randombytes_1.default)(4).reduce((acc, num, i) => acc + num ** i, 0);
|
|
17
|
+
}
|
|
18
|
+
exports.generateSerialId = generateSerialId;
|
|
19
|
+
function generateSerialIds(count) {
|
|
20
|
+
return Array.from({ length: count }, () => generateSerialId());
|
|
21
|
+
}
|
|
22
|
+
exports.generateSerialIds = generateSerialIds;
|
|
23
|
+
function checkTypes(types) {
|
|
24
|
+
const { _dlcOffer, _dlcAccept, _dlcSign, _dlcClose, _dlcTxs } = types;
|
|
25
|
+
if (_dlcOffer && _dlcOffer.type !== messaging_1.MessageType.DlcOfferV0)
|
|
26
|
+
throw Error('DlcOffer must be V0');
|
|
27
|
+
if (_dlcAccept && _dlcAccept.type !== messaging_1.MessageType.DlcAcceptV0)
|
|
28
|
+
throw Error('DlcAccept must be V0');
|
|
29
|
+
if (_dlcSign && _dlcSign.type !== messaging_1.MessageType.DlcSignV0)
|
|
30
|
+
throw Error('DlcSign must be V0');
|
|
31
|
+
if (_dlcClose && _dlcClose.type !== messaging_1.MessageType.DlcCloseV0)
|
|
32
|
+
throw Error('DlcClose must be V0');
|
|
33
|
+
if (_dlcTxs && _dlcTxs.type !== messaging_1.MessageType.DlcTransactionsV0)
|
|
34
|
+
throw Error('DlcTransactions must be V0');
|
|
35
|
+
let dlcOffer;
|
|
36
|
+
let dlcAccept;
|
|
37
|
+
let dlcSign;
|
|
38
|
+
let dlcClose;
|
|
39
|
+
let dlcTxs;
|
|
40
|
+
if (_dlcOffer)
|
|
41
|
+
dlcOffer = _dlcOffer;
|
|
42
|
+
if (_dlcAccept)
|
|
43
|
+
dlcAccept = _dlcAccept;
|
|
44
|
+
if (_dlcSign)
|
|
45
|
+
dlcSign = _dlcSign;
|
|
46
|
+
if (_dlcClose)
|
|
47
|
+
dlcClose = _dlcClose;
|
|
48
|
+
if (_dlcTxs)
|
|
49
|
+
dlcTxs = _dlcTxs;
|
|
50
|
+
return { dlcOffer, dlcAccept, dlcSign, dlcClose, dlcTxs };
|
|
51
|
+
}
|
|
52
|
+
exports.checkTypes = checkTypes;
|
|
53
|
+
function outputsToPayouts(outputs, rValuesMessagesList, localCollateral, remoteCollateral, payoutLocal) {
|
|
54
|
+
const payouts = [];
|
|
55
|
+
const messagesList = [];
|
|
56
|
+
outputs.forEach((output) => {
|
|
57
|
+
const { payout, groups } = output;
|
|
58
|
+
const payoutAmount = payout;
|
|
59
|
+
groups.forEach((group) => {
|
|
60
|
+
const messages = [];
|
|
61
|
+
for (let i = 0; i < group.length; i++) {
|
|
62
|
+
const digit = group[i];
|
|
63
|
+
messages.push(rValuesMessagesList[i].messages[digit]);
|
|
64
|
+
}
|
|
65
|
+
const local = payoutLocal
|
|
66
|
+
? payoutAmount
|
|
67
|
+
: localCollateral + remoteCollateral - payoutAmount;
|
|
68
|
+
const remote = payoutLocal
|
|
69
|
+
? localCollateral + remoteCollateral - payoutAmount
|
|
70
|
+
: payoutAmount;
|
|
71
|
+
payouts.push({ local, remote });
|
|
72
|
+
messagesList.push({ messages });
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
return { payouts, messagesList };
|
|
76
|
+
}
|
|
77
|
+
exports.outputsToPayouts = outputsToPayouts;
|
|
78
|
+
//# sourceMappingURL=Utils.js.map
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atomicfinance/bitcoin-dlc-provider",
|
|
3
3
|
"umdName": "BitcoinDlcProvider",
|
|
4
|
-
"version": "3.
|
|
4
|
+
"version": "3.5.1",
|
|
5
5
|
"description": "Bitcoin Abstraction Layer Dlc Provider",
|
|
6
6
|
"author": "Atomic Finance <info@atomic.finance>",
|
|
7
7
|
"homepage": "",
|
|
@@ -15,10 +15,10 @@
|
|
|
15
15
|
"lint:fix": "../../node_modules/.bin/eslint --fix --ignore-path ../../.eslintignore -c ../../.eslintrc.js ."
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@atomicfinance/bitcoin-utils": "3.
|
|
19
|
-
"@atomicfinance/provider": "^3.
|
|
20
|
-
"@atomicfinance/types": "^3.
|
|
21
|
-
"@atomicfinance/utils": "^3.
|
|
18
|
+
"@atomicfinance/bitcoin-utils": "3.5.1",
|
|
19
|
+
"@atomicfinance/provider": "^3.5.1",
|
|
20
|
+
"@atomicfinance/types": "^3.5.1",
|
|
21
|
+
"@atomicfinance/utils": "^3.5.1",
|
|
22
22
|
"@node-dlc/core": "0.23.6",
|
|
23
23
|
"@node-dlc/messaging": "0.23.6",
|
|
24
24
|
"@node-lightning/bitcoin": "0.26.1",
|