@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.
@@ -124,7 +124,7 @@ export default class BitcoinDlcProvider
124
124
  this._cfdDlcJs = cfdDlcJs;
125
125
  }
126
126
 
127
- private async CfdLoaded() {
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
- if (payoutGroupFound) {
1392
- throw Error(
1393
- 'Failed to Find OutcomeIndex From HyperbolaPayoutCurvePiece. \
1394
- Payout Group found but incorrect group index',
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.7",
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.4.7",
19
- "@atomicfinance/provider": "^3.4.7",
20
- "@atomicfinance/types": "^3.4.7",
21
- "@atomicfinance/utils": "^3.4.7",
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",