@bitgo-beta/unspents 0.13.2-beta.49 → 0.13.2-beta.491
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/.mocharc.js +1 -1
- package/CHANGELOG.md +455 -0
- package/bin/generate_tables.ts +94 -0
- package/dist/bin/generate_tables.d.ts +2 -0
- package/dist/bin/generate_tables.d.ts.map +1 -0
- package/dist/bin/generate_tables.js +98 -0
- package/dist/{codes.d.ts → src/codes.d.ts} +3 -2
- package/dist/src/codes.d.ts.map +1 -0
- package/dist/src/codes.js +172 -0
- package/dist/{dimensions.d.ts → src/dimensions.d.ts} +5 -3
- package/dist/src/dimensions.d.ts.map +1 -0
- package/dist/src/dimensions.js +492 -0
- package/dist/{index.d.ts → src/index.d.ts} +1 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/{index.js → src/index.js} +6 -2
- package/dist/{inputWeights.d.ts → src/inputWeights.d.ts} +4 -3
- package/dist/src/inputWeights.d.ts.map +1 -0
- package/dist/src/inputWeights.js +97 -0
- package/dist/{scriptSizes.d.ts → src/scriptSizes.d.ts} +1 -0
- package/dist/src/scriptSizes.d.ts.map +1 -0
- package/dist/src/scriptSizes.js +51 -0
- package/dist/{types.d.ts → src/types.d.ts} +1 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/{types.js → src/types.js} +6 -2
- package/dist/{virtualSizes.d.ts → src/virtualSizes.d.ts} +13 -12
- package/dist/src/virtualSizes.d.ts.map +1 -0
- package/dist/src/virtualSizes.js +114 -0
- package/dist/src/zcash.d.ts +9 -0
- package/dist/src/zcash.d.ts.map +1 -0
- package/dist/src/zcash.js +24 -0
- package/dist/test/chain.d.ts +2 -0
- package/dist/test/chain.d.ts.map +1 -0
- package/dist/test/chain.js +92 -0
- package/dist/test/dimensions.d.ts +2 -0
- package/dist/test/dimensions.d.ts.map +1 -0
- package/dist/test/dimensions.js +225 -0
- package/dist/test/signedTx/inputWeights.d.ts +2 -0
- package/dist/test/signedTx/inputWeights.d.ts.map +1 -0
- package/dist/test/signedTx/inputWeights.js +117 -0
- package/dist/test/signedTx/txCombinations.d.ts +3 -0
- package/dist/test/signedTx/txCombinations.d.ts.map +1 -0
- package/dist/test/signedTx/txCombinations.js +120 -0
- package/dist/test/signedTx/txGen.d.ts +75 -0
- package/dist/test/signedTx/txGen.d.ts.map +1 -0
- package/dist/test/signedTx/txGen.js +223 -0
- package/dist/test/testutils.d.ts +36 -0
- package/dist/test/testutils.d.ts.map +1 -0
- package/dist/test/testutils.js +180 -0
- package/dist/test/virtualSizes.d.ts +2 -0
- package/dist/test/virtualSizes.d.ts.map +1 -0
- package/dist/test/virtualSizes.js +18 -0
- package/dist/test/zcash.d.ts +2 -0
- package/dist/test/zcash.d.ts.map +1 -0
- package/dist/test/zcash.js +60 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/docs/input-costs.md +13 -0
- package/package.json +7 -7
- package/dist/codes.js +0 -168
- package/dist/dimensions.js +0 -485
- package/dist/inputWeights.js +0 -97
- package/dist/scriptSizes.js +0 -51
- package/dist/virtualSizes.js +0 -114
|
@@ -0,0 +1,98 @@
|
|
|
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
const fs = __importStar(require("fs/promises"));
|
|
27
|
+
const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
|
|
28
|
+
const src_1 = require("../src");
|
|
29
|
+
const headers = [
|
|
30
|
+
'Script Type',
|
|
31
|
+
'Chain Codes',
|
|
32
|
+
'Spend Type',
|
|
33
|
+
'Input Size (Virtual Bytes)',
|
|
34
|
+
'Relative Size (p2trMusig2 = 1.00)',
|
|
35
|
+
];
|
|
36
|
+
const relativeCostRef = src_1.Dimensions.fromScriptType('taprootKeyPathSpend').getInputsVSize();
|
|
37
|
+
function formatMarkdownTable(headers, rows) {
|
|
38
|
+
return [headers, headers.map(() => '---'), ...rows].map((row) => `| ${row.join(' | ')} |`).join('\n');
|
|
39
|
+
}
|
|
40
|
+
function generateRowsForScriptType(headers, t, params) {
|
|
41
|
+
var _a;
|
|
42
|
+
const chainCode = utxolib.bitgo.toChainPair(t);
|
|
43
|
+
if (!params) {
|
|
44
|
+
if (t === 'p2tr') {
|
|
45
|
+
return [
|
|
46
|
+
...generateRowsForScriptType(headers, t, {
|
|
47
|
+
spendTypeName: 'Script Path, Level 2 (Backup/User, Backup/BitGo)',
|
|
48
|
+
scriptTypeParams: { scriptPathLevel: 2 },
|
|
49
|
+
}),
|
|
50
|
+
...generateRowsForScriptType(headers, t, {
|
|
51
|
+
spendTypeName: 'Script Path, Level 1 (User/BitGo)',
|
|
52
|
+
scriptTypeParams: { scriptPathLevel: 1 },
|
|
53
|
+
}),
|
|
54
|
+
];
|
|
55
|
+
}
|
|
56
|
+
if (t === 'p2trMusig2') {
|
|
57
|
+
return [
|
|
58
|
+
...generateRowsForScriptType(headers, t, {
|
|
59
|
+
spendTypeName: 'Script Path (Backup/User, Backup/BitGo)',
|
|
60
|
+
scriptTypeParams: { scriptPathLevel: 1 },
|
|
61
|
+
}),
|
|
62
|
+
...generateRowsForScriptType(headers, t, {
|
|
63
|
+
spendTypeName: 'Key Path (User/BitGo)',
|
|
64
|
+
scriptTypeParams: { scriptPathLevel: undefined },
|
|
65
|
+
}),
|
|
66
|
+
];
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
const inputVSize = src_1.Dimensions.fromScriptType(t, params === null || params === void 0 ? void 0 : params.scriptTypeParams).getInputsVSize();
|
|
70
|
+
const row = [
|
|
71
|
+
t,
|
|
72
|
+
chainCode.join(`/`),
|
|
73
|
+
(_a = params === null || params === void 0 ? void 0 : params.spendTypeName) !== null && _a !== void 0 ? _a : 'all',
|
|
74
|
+
inputVSize.toString(),
|
|
75
|
+
(inputVSize / relativeCostRef).toFixed(2),
|
|
76
|
+
];
|
|
77
|
+
return [row];
|
|
78
|
+
}
|
|
79
|
+
function generateTables() {
|
|
80
|
+
const scriptTypes = [...utxolib.bitgo.outputScripts.scriptTypes2Of3];
|
|
81
|
+
return formatMarkdownTable(headers, scriptTypes.flatMap((s) => generateRowsForScriptType(headers, s)));
|
|
82
|
+
}
|
|
83
|
+
function generateDocument() {
|
|
84
|
+
return [
|
|
85
|
+
'# Input Costs',
|
|
86
|
+
'This document contains the worst-case input costs for various script types and spend types.',
|
|
87
|
+
'The input costs are calculated using the `Dimensions` class from `@bitgo-beta/unspents`.',
|
|
88
|
+
'',
|
|
89
|
+
generateTables(),
|
|
90
|
+
].join('\n');
|
|
91
|
+
}
|
|
92
|
+
if (require.main === module) {
|
|
93
|
+
const outfile = 'docs/input-costs.md';
|
|
94
|
+
fs.writeFile(outfile, generateDocument())
|
|
95
|
+
.then(() => console.log('wrote to', outfile))
|
|
96
|
+
.catch((e) => console.error(e));
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVfdGFibGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vYmluL2dlbmVyYXRlX3RhYmxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsZ0RBQWtDO0FBQ2xDLDhEQUFnRDtBQUVoRCxnQ0FBb0M7QUFFcEMsTUFBTSxPQUFPLEdBQUc7SUFDZCxhQUFhO0lBQ2IsYUFBYTtJQUNiLFlBQVk7SUFDWiw0QkFBNEI7SUFDNUIsbUNBQW1DO0NBQ3BDLENBQUM7QUFFRixNQUFNLGVBQWUsR0FBRyxnQkFBVSxDQUFDLGNBQWMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO0FBSTFGLFNBQVMsbUJBQW1CLENBQUMsT0FBaUIsRUFBRSxJQUFnQjtJQUM5RCxPQUFPLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3hHLENBQUM7QUFFRCxTQUFTLHlCQUF5QixDQUNoQyxPQUFpQixFQUNqQixDQUE2QyxFQUM3QyxNQUdDOztJQUVELE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRS9DLElBQUksQ0FBQyxNQUFNLEVBQUU7UUFDWCxJQUFJLENBQUMsS0FBSyxNQUFNLEVBQUU7WUFDaEIsT0FBTztnQkFDTCxHQUFHLHlCQUF5QixDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUU7b0JBQ3ZDLGFBQWEsRUFBRSxrREFBa0Q7b0JBQ2pFLGdCQUFnQixFQUFFLEVBQUUsZUFBZSxFQUFFLENBQUMsRUFBRTtpQkFDekMsQ0FBQztnQkFDRixHQUFHLHlCQUF5QixDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUU7b0JBQ3ZDLGFBQWEsRUFBRSxtQ0FBbUM7b0JBQ2xELGdCQUFnQixFQUFFLEVBQUUsZUFBZSxFQUFFLENBQUMsRUFBRTtpQkFDekMsQ0FBQzthQUNILENBQUM7U0FDSDtRQUVELElBQUksQ0FBQyxLQUFLLFlBQVksRUFBRTtZQUN0QixPQUFPO2dCQUNMLEdBQUcseUJBQXlCLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRTtvQkFDdkMsYUFBYSxFQUFFLHlDQUF5QztvQkFDeEQsZ0JBQWdCLEVBQUUsRUFBRSxlQUFlLEVBQUUsQ0FBQyxFQUFFO2lCQUN6QyxDQUFDO2dCQUNGLEdBQUcseUJBQXlCLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRTtvQkFDdkMsYUFBYSxFQUFFLHVCQUF1QjtvQkFDdEMsZ0JBQWdCLEVBQUUsRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFO2lCQUNqRCxDQUFDO2FBQ0gsQ0FBQztTQUNIO0tBQ0Y7SUFFRCxNQUFNLFVBQVUsR0FBRyxnQkFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLGdCQUFnQixDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDM0YsTUFBTSxHQUFHLEdBQVE7UUFDZixDQUFDO1FBQ0QsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDbkIsTUFBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsYUFBYSxtQ0FBSSxLQUFLO1FBQzlCLFVBQVUsQ0FBQyxRQUFRLEVBQUU7UUFDckIsQ0FBQyxVQUFVLEdBQUcsZUFBZSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztLQUMxQyxDQUFDO0lBQ0YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2YsQ0FBQztBQUVELFNBQVMsY0FBYztJQUNyQixNQUFNLFdBQVcsR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDckUsT0FBTyxtQkFBbUIsQ0FDeEIsT0FBTyxFQUNQLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLHlCQUF5QixDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUNsRSxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsZ0JBQWdCO0lBQ3ZCLE9BQU87UUFDTCxlQUFlO1FBQ2YsNkZBQTZGO1FBQzdGLDBGQUEwRjtRQUMxRixFQUFFO1FBQ0YsY0FBYyxFQUFFO0tBQ2pCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2YsQ0FBQztBQUVELElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUU7SUFDM0IsTUFBTSxPQUFPLEdBQUcscUJBQXFCLENBQUM7SUFDdEMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQztTQUN0QyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDNUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Q0FDbkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcy9wcm9taXNlcyc7XG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcblxuaW1wb3J0IHsgRGltZW5zaW9ucyB9IGZyb20gJy4uL3NyYyc7XG5cbmNvbnN0IGhlYWRlcnMgPSBbXG4gICdTY3JpcHQgVHlwZScsXG4gICdDaGFpbiBDb2RlcycsXG4gICdTcGVuZCBUeXBlJyxcbiAgJ0lucHV0IFNpemUgKFZpcnR1YWwgQnl0ZXMpJyxcbiAgJ1JlbGF0aXZlIFNpemUgKHAydHJNdXNpZzIgPSAxLjAwKScsXG5dO1xuXG5jb25zdCByZWxhdGl2ZUNvc3RSZWYgPSBEaW1lbnNpb25zLmZyb21TY3JpcHRUeXBlKCd0YXByb290S2V5UGF0aFNwZW5kJykuZ2V0SW5wdXRzVlNpemUoKTtcblxudHlwZSBSb3cgPSBbc3RyaW5nLCBzdHJpbmcsIHN0cmluZywgc3RyaW5nLCBzdHJpbmddO1xuXG5mdW5jdGlvbiBmb3JtYXRNYXJrZG93blRhYmxlKGhlYWRlcnM6IHN0cmluZ1tdLCByb3dzOiBzdHJpbmdbXVtdKTogc3RyaW5nIHtcbiAgcmV0dXJuIFtoZWFkZXJzLCBoZWFkZXJzLm1hcCgoKSA9PiAnLS0tJyksIC4uLnJvd3NdLm1hcCgocm93KSA9PiBgfCAke3Jvdy5qb2luKCcgfCAnKX0gfGApLmpvaW4oJ1xcbicpO1xufVxuXG5mdW5jdGlvbiBnZW5lcmF0ZVJvd3NGb3JTY3JpcHRUeXBlKFxuICBoZWFkZXJzOiBzdHJpbmdbXSxcbiAgdDogdXR4b2xpYi5iaXRnby5vdXRwdXRTY3JpcHRzLlNjcmlwdFR5cGUyT2YzLFxuICBwYXJhbXM/OiB7XG4gICAgc3BlbmRUeXBlTmFtZTogc3RyaW5nO1xuICAgIHNjcmlwdFR5cGVQYXJhbXM6IHsgc2NyaXB0UGF0aExldmVsPzogbnVtYmVyIH07XG4gIH1cbik6IFJvd1tdIHtcbiAgY29uc3QgY2hhaW5Db2RlID0gdXR4b2xpYi5iaXRnby50b0NoYWluUGFpcih0KTtcblxuICBpZiAoIXBhcmFtcykge1xuICAgIGlmICh0ID09PSAncDJ0cicpIHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIC4uLmdlbmVyYXRlUm93c0ZvclNjcmlwdFR5cGUoaGVhZGVycywgdCwge1xuICAgICAgICAgIHNwZW5kVHlwZU5hbWU6ICdTY3JpcHQgUGF0aCwgTGV2ZWwgMiAoQmFja3VwL1VzZXIsIEJhY2t1cC9CaXRHbyknLFxuICAgICAgICAgIHNjcmlwdFR5cGVQYXJhbXM6IHsgc2NyaXB0UGF0aExldmVsOiAyIH0sXG4gICAgICAgIH0pLFxuICAgICAgICAuLi5nZW5lcmF0ZVJvd3NGb3JTY3JpcHRUeXBlKGhlYWRlcnMsIHQsIHtcbiAgICAgICAgICBzcGVuZFR5cGVOYW1lOiAnU2NyaXB0IFBhdGgsIExldmVsIDEgKFVzZXIvQml0R28pJyxcbiAgICAgICAgICBzY3JpcHRUeXBlUGFyYW1zOiB7IHNjcmlwdFBhdGhMZXZlbDogMSB9LFxuICAgICAgICB9KSxcbiAgICAgIF07XG4gICAgfVxuXG4gICAgaWYgKHQgPT09ICdwMnRyTXVzaWcyJykge1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgLi4uZ2VuZXJhdGVSb3dzRm9yU2NyaXB0VHlwZShoZWFkZXJzLCB0LCB7XG4gICAgICAgICAgc3BlbmRUeXBlTmFtZTogJ1NjcmlwdCBQYXRoIChCYWNrdXAvVXNlciwgQmFja3VwL0JpdEdvKScsXG4gICAgICAgICAgc2NyaXB0VHlwZVBhcmFtczogeyBzY3JpcHRQYXRoTGV2ZWw6IDEgfSxcbiAgICAgICAgfSksXG4gICAgICAgIC4uLmdlbmVyYXRlUm93c0ZvclNjcmlwdFR5cGUoaGVhZGVycywgdCwge1xuICAgICAgICAgIHNwZW5kVHlwZU5hbWU6ICdLZXkgUGF0aCAoVXNlci9CaXRHbyknLFxuICAgICAgICAgIHNjcmlwdFR5cGVQYXJhbXM6IHsgc2NyaXB0UGF0aExldmVsOiB1bmRlZmluZWQgfSxcbiAgICAgICAgfSksXG4gICAgICBdO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGlucHV0VlNpemUgPSBEaW1lbnNpb25zLmZyb21TY3JpcHRUeXBlKHQsIHBhcmFtcz8uc2NyaXB0VHlwZVBhcmFtcykuZ2V0SW5wdXRzVlNpemUoKTtcbiAgY29uc3Qgcm93OiBSb3cgPSBbXG4gICAgdCxcbiAgICBjaGFpbkNvZGUuam9pbihgL2ApLFxuICAgIHBhcmFtcz8uc3BlbmRUeXBlTmFtZSA/PyAnYWxsJyxcbiAgICBpbnB1dFZTaXplLnRvU3RyaW5nKCksXG4gICAgKGlucHV0VlNpemUgLyByZWxhdGl2ZUNvc3RSZWYpLnRvRml4ZWQoMiksXG4gIF07XG4gIHJldHVybiBbcm93XTtcbn1cblxuZnVuY3Rpb24gZ2VuZXJhdGVUYWJsZXMoKSB7XG4gIGNvbnN0IHNjcmlwdFR5cGVzID0gWy4uLnV0eG9saWIuYml0Z28ub3V0cHV0U2NyaXB0cy5zY3JpcHRUeXBlczJPZjNdO1xuICByZXR1cm4gZm9ybWF0TWFya2Rvd25UYWJsZShcbiAgICBoZWFkZXJzLFxuICAgIHNjcmlwdFR5cGVzLmZsYXRNYXAoKHMpID0+IGdlbmVyYXRlUm93c0ZvclNjcmlwdFR5cGUoaGVhZGVycywgcykpXG4gICk7XG59XG5cbmZ1bmN0aW9uIGdlbmVyYXRlRG9jdW1lbnQoKSB7XG4gIHJldHVybiBbXG4gICAgJyMgSW5wdXQgQ29zdHMnLFxuICAgICdUaGlzIGRvY3VtZW50IGNvbnRhaW5zIHRoZSB3b3JzdC1jYXNlIGlucHV0IGNvc3RzIGZvciB2YXJpb3VzIHNjcmlwdCB0eXBlcyBhbmQgc3BlbmQgdHlwZXMuJyxcbiAgICAnVGhlIGlucHV0IGNvc3RzIGFyZSBjYWxjdWxhdGVkIHVzaW5nIHRoZSBgRGltZW5zaW9uc2AgY2xhc3MgZnJvbSBgQGJpdGdvLWJldGEvdW5zcGVudHNgLicsXG4gICAgJycsXG4gICAgZ2VuZXJhdGVUYWJsZXMoKSxcbiAgXS5qb2luKCdcXG4nKTtcbn1cblxuaWYgKHJlcXVpcmUubWFpbiA9PT0gbW9kdWxlKSB7XG4gIGNvbnN0IG91dGZpbGUgPSAnZG9jcy9pbnB1dC1jb3N0cy5tZCc7XG4gIGZzLndyaXRlRmlsZShvdXRmaWxlLCBnZW5lcmF0ZURvY3VtZW50KCkpXG4gICAgLnRoZW4oKCkgPT4gY29uc29sZS5sb2coJ3dyb3RlIHRvJywgb3V0ZmlsZSkpXG4gICAgLmNhdGNoKChlKSA9PiBjb25zb2xlLmVycm9yKGUpKTtcbn1cbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as tcomb from 'tcomb';
|
|
2
|
-
export
|
|
2
|
+
export type ChainCode = number;
|
|
3
3
|
export declare class ErrorInvalidCode extends Error {
|
|
4
4
|
constructor(code: ChainCode);
|
|
5
5
|
}
|
|
@@ -34,6 +34,7 @@ export declare class CodesByType extends CodeGroup {
|
|
|
34
34
|
p2tr: ChainCode;
|
|
35
35
|
constructor(p: Purpose);
|
|
36
36
|
}
|
|
37
|
+
/** @deprecated - use utxolib.bitgo */
|
|
37
38
|
declare const _default: Readonly<{
|
|
38
39
|
ChainType: tcomb.Irreducible<unknown>;
|
|
39
40
|
/** @deprecated - use utxolib.bitgo */
|
|
@@ -75,5 +76,5 @@ declare const _default: Readonly<{
|
|
|
75
76
|
/** @deprecated - use utxolib.bitgo */
|
|
76
77
|
typeForCode: (c: number) => UnspentType;
|
|
77
78
|
}>;
|
|
78
|
-
/** @deprecated - use utxolib.bitgo */
|
|
79
79
|
export default _default;
|
|
80
|
+
//# sourceMappingURL=codes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codes.d.ts","sourceRoot":"","sources":["../../src/codes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC;AAE/B,qBAAa,gBAAiB,SAAQ,KAAK;gBAC7B,IAAI,EAAE,SAAS;CAG5B;AAED,oBAAY,WAAW;IACrB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,IAAI,SAAS;CACd;AAID,oBAAY,OAAO;IACjB,QAAQ,aAAa;IACrB,QAAQ,aAAa;CACtB;AA0BD,eAAO,MAAM,SAAS,4BAAoD,CAAC;AAmB3E,eAAO,MAAM,OAAO,MAAO,SAAS,KAAG,OAA8C,CAAC;AAStF,qBAAa,SAAS;IACb,MAAM,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;gBAC5B,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC;IAIhC,GAAG,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO;CAMrC;AAED,qBAAa,cAAe,SAAQ,SAAS;IACpC,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;gBAEf,CAAC,EAAE,WAAW;CAa3B;AAED,qBAAa,WAAY,SAAQ,SAAS;IACjC,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,SAAS,CAAC;gBAEX,CAAC,EAAE,OAAO;CAevB;AAYD,sCAAsC;;;IAIpC,sCAAsC;;IAEtC,sCAAsC;;IAEtC,sCAAsC;;IAEtC,sCAAsC;;IAEtC,sCAAsC;;IAEtC,sCAAsC;;IAEtC,sCAAsC;;IAEtC,sCAAsC;;IAEtC,sCAAsC;;IAEtC,sCAAsC;;IAEtC,sCAAsC;;IAEtC,sCAAsC;;IAEtC,sCAAsC;;IAEtC,sCAAsC;;IAEtC,sCAAsC;;IAEtC,sCAAsC;;IAEtC,sCAAsC;;IAEtC,sCAAsC;;IAEtC,sCAAsC;;;AAvCxC,wBAyCG"}
|
|
@@ -0,0 +1,172 @@
|
|
|
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.CodesByType = exports.CodesByPurpose = exports.CodeGroup = exports.isValid = exports.ChainType = exports.Purpose = exports.UnspentType = exports.ErrorInvalidCode = void 0;
|
|
27
|
+
const tcomb = __importStar(require("tcomb"));
|
|
28
|
+
class ErrorInvalidCode extends Error {
|
|
29
|
+
constructor(code) {
|
|
30
|
+
super(`invalid code ${code}`);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.ErrorInvalidCode = ErrorInvalidCode;
|
|
34
|
+
var UnspentType;
|
|
35
|
+
(function (UnspentType) {
|
|
36
|
+
UnspentType["p2pkh"] = "p2pkh";
|
|
37
|
+
UnspentType["p2sh"] = "p2sh";
|
|
38
|
+
UnspentType["p2shP2wsh"] = "p2shP2wsh";
|
|
39
|
+
UnspentType["p2wpkh"] = "p2wpkh";
|
|
40
|
+
UnspentType["p2wsh"] = "p2wsh";
|
|
41
|
+
UnspentType["p2tr"] = "p2tr";
|
|
42
|
+
})(UnspentType = exports.UnspentType || (exports.UnspentType = {}));
|
|
43
|
+
const UnspentTypeTcomb = tcomb.enums.of(Object.keys(UnspentType));
|
|
44
|
+
var Purpose;
|
|
45
|
+
(function (Purpose) {
|
|
46
|
+
Purpose["internal"] = "internal";
|
|
47
|
+
Purpose["external"] = "external";
|
|
48
|
+
})(Purpose = exports.Purpose || (exports.Purpose = {}));
|
|
49
|
+
const PurposeTcomb = tcomb.enums.of(Object.keys(Purpose));
|
|
50
|
+
const codeList = Object.freeze([
|
|
51
|
+
[0, UnspentType.p2sh, Purpose.external],
|
|
52
|
+
[10, UnspentType.p2shP2wsh, Purpose.external],
|
|
53
|
+
[20, UnspentType.p2wsh, Purpose.external],
|
|
54
|
+
[30, UnspentType.p2tr, Purpose.external],
|
|
55
|
+
[1, UnspentType.p2sh, Purpose.internal],
|
|
56
|
+
[11, UnspentType.p2shP2wsh, Purpose.internal],
|
|
57
|
+
[21, UnspentType.p2wsh, Purpose.internal],
|
|
58
|
+
[31, UnspentType.p2tr, Purpose.internal],
|
|
59
|
+
].map(([id, type, purpose]) => Object.freeze({ id, type, purpose })));
|
|
60
|
+
exports.ChainType = tcomb.irreducible('ChainType', (n) => (0, exports.isValid)(n));
|
|
61
|
+
const forType = (u) => {
|
|
62
|
+
// Do tcomb type checking in js projects that use this lib
|
|
63
|
+
if (!UnspentTypeTcomb.is(u)) {
|
|
64
|
+
throw new Error(`invalid unspent type: ${u}`);
|
|
65
|
+
}
|
|
66
|
+
return new CodesByPurpose(u);
|
|
67
|
+
};
|
|
68
|
+
const typeForCode = (c) => {
|
|
69
|
+
const code = codeList.find(({ id }) => id === c);
|
|
70
|
+
if (!code) {
|
|
71
|
+
throw new ErrorInvalidCode(c);
|
|
72
|
+
}
|
|
73
|
+
return code.type;
|
|
74
|
+
};
|
|
75
|
+
const isValid = (c) => codeList.some(({ id }) => id === c);
|
|
76
|
+
exports.isValid = isValid;
|
|
77
|
+
const throwIfUndefined = (v) => {
|
|
78
|
+
if (v === undefined) {
|
|
79
|
+
throw new Error(`expected value to be defined`);
|
|
80
|
+
}
|
|
81
|
+
return v;
|
|
82
|
+
};
|
|
83
|
+
class CodeGroup {
|
|
84
|
+
constructor(values) {
|
|
85
|
+
this.values = Object.freeze([...values]);
|
|
86
|
+
}
|
|
87
|
+
has(code) {
|
|
88
|
+
if (!(0, exports.isValid)(code)) {
|
|
89
|
+
throw new ErrorInvalidCode(code);
|
|
90
|
+
}
|
|
91
|
+
return this.values.includes(code);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
exports.CodeGroup = CodeGroup;
|
|
95
|
+
class CodesByPurpose extends CodeGroup {
|
|
96
|
+
constructor(t) {
|
|
97
|
+
const codeMap = new Map(codeList.filter(({ type }) => type === t).map(({ purpose, id }) => [purpose, id]));
|
|
98
|
+
if (codeMap.size !== 2) {
|
|
99
|
+
throw new Error(`unexpected number of codes for type ${t}`);
|
|
100
|
+
}
|
|
101
|
+
super(codeMap.values());
|
|
102
|
+
this.internal = throwIfUndefined(codeMap.get(Purpose.internal));
|
|
103
|
+
this.external = throwIfUndefined(codeMap.get(Purpose.external));
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
exports.CodesByPurpose = CodesByPurpose;
|
|
107
|
+
class CodesByType extends CodeGroup {
|
|
108
|
+
constructor(p) {
|
|
109
|
+
const codeMap = new Map(codeList.filter(({ purpose }) => purpose === p).map(({ type, id }) => [type, id]));
|
|
110
|
+
if (codeMap.size !== 4) {
|
|
111
|
+
throw new Error(`unexpected number of codes`);
|
|
112
|
+
}
|
|
113
|
+
super(codeMap.values());
|
|
114
|
+
this.p2sh = throwIfUndefined(codeMap.get(UnspentType.p2sh));
|
|
115
|
+
this.p2shP2wsh = throwIfUndefined(codeMap.get(UnspentType.p2shP2wsh));
|
|
116
|
+
this.p2wsh = throwIfUndefined(codeMap.get(UnspentType.p2wsh));
|
|
117
|
+
this.p2tr = throwIfUndefined(codeMap.get(UnspentType.p2tr));
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
exports.CodesByType = CodesByType;
|
|
121
|
+
const boundHas = (instance) => instance.has.bind(instance);
|
|
122
|
+
const p2sh = Object.freeze(new CodesByPurpose(UnspentType.p2sh));
|
|
123
|
+
const p2shP2wsh = Object.freeze(new CodesByPurpose(UnspentType.p2shP2wsh));
|
|
124
|
+
const p2wsh = Object.freeze(new CodesByPurpose(UnspentType.p2wsh));
|
|
125
|
+
const p2tr = Object.freeze(new CodesByPurpose(UnspentType.p2tr));
|
|
126
|
+
const external = Object.freeze(new CodesByType(Purpose.external));
|
|
127
|
+
const internal = Object.freeze(new CodesByType(Purpose.internal));
|
|
128
|
+
const all = Object.freeze(codeList.map(({ id }) => id));
|
|
129
|
+
/** @deprecated - use utxolib.bitgo */
|
|
130
|
+
exports.default = Object.freeze({
|
|
131
|
+
/* @deprecated: use ChainCodeTcomb */
|
|
132
|
+
ChainType: exports.ChainType,
|
|
133
|
+
/** @deprecated - use utxolib.bitgo */
|
|
134
|
+
ChainCodeTcomb: exports.ChainType,
|
|
135
|
+
/** @deprecated - use utxolib.bitgo */
|
|
136
|
+
PurposeTcomb,
|
|
137
|
+
/** @deprecated - use utxolib.bitgo */
|
|
138
|
+
UnspentTypeTcomb,
|
|
139
|
+
/** @deprecated - use utxolib.bitgo */
|
|
140
|
+
p2sh,
|
|
141
|
+
/** @deprecated - use utxolib.bitgo */
|
|
142
|
+
p2shP2wsh,
|
|
143
|
+
/** @deprecated - use utxolib.bitgo */
|
|
144
|
+
p2wsh,
|
|
145
|
+
/** @deprecated - use utxolib.bitgo */
|
|
146
|
+
p2tr,
|
|
147
|
+
/** @deprecated - use utxolib.bitgo */
|
|
148
|
+
external,
|
|
149
|
+
/** @deprecated - use utxolib.bitgo */
|
|
150
|
+
internal,
|
|
151
|
+
/** @deprecated - use utxolib.bitgo */
|
|
152
|
+
all,
|
|
153
|
+
/** @deprecated - use utxolib.bitgo */
|
|
154
|
+
isP2sh: boundHas(p2sh),
|
|
155
|
+
/** @deprecated - use utxolib.bitgo */
|
|
156
|
+
isP2shP2wsh: boundHas(p2shP2wsh),
|
|
157
|
+
/** @deprecated - use utxolib.bitgo */
|
|
158
|
+
isP2wsh: boundHas(p2wsh),
|
|
159
|
+
/** @deprecated - use utxolib.bitgo */
|
|
160
|
+
isP2tr: boundHas(p2tr),
|
|
161
|
+
/** @deprecated - use utxolib.bitgo */
|
|
162
|
+
isExternal: boundHas(external),
|
|
163
|
+
/** @deprecated - use utxolib.bitgo */
|
|
164
|
+
isInternal: boundHas(internal),
|
|
165
|
+
/** @deprecated - use utxolib.bitgo */
|
|
166
|
+
isValid: exports.isValid,
|
|
167
|
+
/** @deprecated - use utxolib.bitgo */
|
|
168
|
+
forType,
|
|
169
|
+
/** @deprecated - use utxolib.bitgo */
|
|
170
|
+
typeForCode,
|
|
171
|
+
});
|
|
172
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29kZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2Q0FBK0I7QUFJL0IsTUFBYSxnQkFBaUIsU0FBUSxLQUFLO0lBQ3pDLFlBQVksSUFBZTtRQUN6QixLQUFLLENBQUMsZ0JBQWdCLElBQUksRUFBRSxDQUFDLENBQUM7SUFDaEMsQ0FBQztDQUNGO0FBSkQsNENBSUM7QUFFRCxJQUFZLFdBT1g7QUFQRCxXQUFZLFdBQVc7SUFDckIsOEJBQWUsQ0FBQTtJQUNmLDRCQUFhLENBQUE7SUFDYixzQ0FBdUIsQ0FBQTtJQUN2QixnQ0FBaUIsQ0FBQTtJQUNqQiw4QkFBZSxDQUFBO0lBQ2YsNEJBQWEsQ0FBQTtBQUNmLENBQUMsRUFQVyxXQUFXLEdBQVgsbUJBQVcsS0FBWCxtQkFBVyxRQU90QjtBQUVELE1BQU0sZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0FBRWxFLElBQVksT0FHWDtBQUhELFdBQVksT0FBTztJQUNqQixnQ0FBcUIsQ0FBQTtJQUNyQixnQ0FBcUIsQ0FBQTtBQUN2QixDQUFDLEVBSFcsT0FBTyxHQUFQLGVBQU8sS0FBUCxlQUFPLFFBR2xCO0FBRUQsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBUTFELE1BQU0sUUFBUSxHQUFtQyxNQUFNLENBQUMsTUFBTSxDQUUxRDtJQUNFLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQztJQUN2QyxDQUFDLEVBQUUsRUFBRSxXQUFXLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUM7SUFDN0Ms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TztJQUNQLHNDQUFzQztJQUN0QyxXQUFXO0NBQ1osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdGNvbWIgZnJvbSAndGNvbWInO1xuXG5leHBvcnQgdHlwZSBDaGFpbkNvZGUgPSBudW1iZXI7XG5cbmV4cG9ydCBjbGFzcyBFcnJvckludmFsaWRDb2RlIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3Rvcihjb2RlOiBDaGFpbkNvZGUpIHtcbiAgICBzdXBlcihgaW52YWxpZCBjb2RlICR7Y29kZX1gKTtcbiAgfVxufVxuXG5leHBvcnQgZW51bSBVbnNwZW50VHlwZSB7XG4gIHAycGtoID0gJ3AycGtoJyxcbiAgcDJzaCA9ICdwMnNoJyxcbiAgcDJzaFAyd3NoID0gJ3Ayc2hQMndzaCcsXG4gIHAyd3BraCA9ICdwMndwa2gnLFxuICBwMndzaCA9ICdwMndzaCcsXG4gIHAydHIgPSAncDJ0cicsXG59XG5cbmNvbnN0IFVuc3BlbnRUeXBlVGNvbWIgPSB0Y29tYi5lbnVtcy5vZihPYmplY3Qua2V5cyhVbnNwZW50VHlwZSkpO1xuXG5leHBvcnQgZW51bSBQdXJwb3NlIHtcbiAgaW50ZXJuYWwgPSAnaW50ZXJuYWwnLFxuICBleHRlcm5hbCA9ICdleHRlcm5hbCcsXG59XG5cbmNvbnN0IFB1cnBvc2VUY29tYiA9IHRjb21iLmVudW1zLm9mKE9iamVjdC5rZXlzKFB1cnBvc2UpKTtcblxuaW50ZXJmYWNlIElDb2RlIHtcbiAgaWQ6IENoYWluQ29kZTtcbiAgdHlwZTogVW5zcGVudFR5cGU7XG4gIHB1cnBvc2U6IFB1cnBvc2U7XG59XG5cbmNvbnN0IGNvZGVMaXN0OiBSZWFkb25seUFycmF5PFJlYWRvbmx5PElDb2RlPj4gPSBPYmplY3QuZnJlZXplKFxuICAoXG4gICAgW1xuICAgICAgWzAsIFVuc3BlbnRUeXBlLnAyc2gsIFB1cnBvc2UuZXh0ZXJuYWxdLFxuICAgICAgWzEwLCBVbnNwZW50VHlwZS5wMnNoUDJ3c2gsIFB1cnBvc2UuZXh0ZXJuYWxdLFxuICAgICAgWzIwLCBVbnNwZW50VHlwZS5wMndzaCwgUHVycG9zZS5leHRlcm5hbF0sXG4gICAgICBbMzAsIFVuc3BlbnRUeXBlLnAydHIsIFB1cnBvc2UuZXh0ZXJuYWxdLFxuXG4gICAgICBbMSwgVW5zcGVudFR5cGUucDJzaCwgUHVycG9zZS5pbnRlcm5hbF0sXG4gICAgICBbMTEsIFVuc3BlbnRUeXBlLnAyc2hQMndzaCwgUHVycG9zZS5pbnRlcm5hbF0sXG4gICAgICBbMjEsIFVuc3BlbnRUeXBlLnAyd3NoLCBQdXJwb3NlLmludGVybmFsXSxcbiAgICAgIFszMSwgVW5zcGVudFR5cGUucDJ0ciwgUHVycG9zZS5pbnRlcm5hbF0sXG4gICAgXSBhcyBBcnJheTxbQ2hhaW5Db2RlLCBVbnNwZW50VHlwZSwgUHVycG9zZV0+XG4gICkubWFwKChbaWQsIHR5cGUsIHB1cnBvc2VdKSA9PiBPYmplY3QuZnJlZXplKHsgaWQsIHR5cGUsIHB1cnBvc2UgfSkpXG4pO1xuXG5leHBvcnQgY29uc3QgQ2hhaW5UeXBlID0gdGNvbWIuaXJyZWR1Y2libGUoJ0NoYWluVHlwZScsIChuKSA9PiBpc1ZhbGlkKG4pKTtcblxuY29uc3QgZm9yVHlwZSA9ICh1OiBVbnNwZW50VHlwZSk6IENvZGVzQnlQdXJwb3NlID0+IHtcbiAgLy8gRG8gdGNvbWIgdHlwZSBjaGVja2luZyBpbiBqcyBwcm9qZWN0cyB0aGF0IHVzZSB0aGlzIGxpYlxuICBpZiAoIVVuc3BlbnRUeXBlVGNvbWIuaXModSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgdW5zcGVudCB0eXBlOiAke3V9YCk7XG4gIH1cblxuICByZXR1cm4gbmV3IENvZGVzQnlQdXJwb3NlKHUpO1xufTtcblxuY29uc3QgdHlwZUZvckNvZGUgPSAoYzogQ2hhaW5Db2RlKTogVW5zcGVudFR5cGUgPT4ge1xuICBjb25zdCBjb2RlID0gY29kZUxpc3QuZmluZCgoeyBpZCB9KSA9PiBpZCA9PT0gYyk7XG4gIGlmICghY29kZSkge1xuICAgIHRocm93IG5ldyBFcnJvckludmFsaWRDb2RlKGMpO1xuICB9XG4gIHJldHVybiBjb2RlLnR5cGU7XG59O1xuXG5leHBvcnQgY29uc3QgaXNWYWxpZCA9IChjOiBDaGFpbkNvZGUpOiBib29sZWFuID0+IGNvZGVMaXN0LnNvbWUoKHsgaWQgfSkgPT4gaWQgPT09IGMpO1xuXG5jb25zdCB0aHJvd0lmVW5kZWZpbmVkID0gPFQ+KHY6IFQgfCB1bmRlZmluZWQpOiBUID0+IHtcbiAgaWYgKHYgPT09IHVuZGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgZXhwZWN0ZWQgdmFsdWUgdG8gYmUgZGVmaW5lZGApO1xuICB9XG4gIHJldHVybiB2O1xufTtcblxuZXhwb3J0IGNsYXNzIENvZGVHcm91cCB7XG4gIHB1YmxpYyB2YWx1ZXM6IFJlYWRvbmx5QXJyYXk8Q2hhaW5Db2RlPjtcbiAgY29uc3RydWN0b3IodmFsdWVzOiBJdGVyYWJsZTxDaGFpbkNvZGU+KSB7XG4gICAgdGhpcy52YWx1ZXMgPSBPYmplY3QuZnJlZXplKFsuLi52YWx1ZXNdKTtcbiAgfVxuXG4gIHB1YmxpYyBoYXMoY29kZTogQ2hhaW5Db2RlKTogYm9vbGVhbiB7XG4gICAgaWYgKCFpc1ZhbGlkKGNvZGUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3JJbnZhbGlkQ29kZShjb2RlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMudmFsdWVzLmluY2x1ZGVzKGNvZGUpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDb2Rlc0J5UHVycG9zZSBleHRlbmRzIENvZGVHcm91cCB7XG4gIHB1YmxpYyBpbnRlcm5hbDogQ2hhaW5Db2RlO1xuICBwdWJsaWMgZXh0ZXJuYWw6IENoYWluQ29kZTtcblxuICBjb25zdHJ1Y3Rvcih0OiBVbnNwZW50VHlwZSkge1xuICAgIGNvbnN0IGNvZGVNYXA6IE1hcDxQdXJwb3NlLCBDaGFpbkNvZGU+ID0gbmV3IE1hcChcbiAgICAgIGNvZGVMaXN0LmZpbHRlcigoeyB0eXBlIH0pID0+IHR5cGUgPT09IHQpLm1hcCgoeyBwdXJwb3NlLCBpZCB9KTogW1B1cnBvc2UsIENoYWluQ29kZV0gPT4gW3B1cnBvc2UsIGlkXSlcbiAgICApO1xuICAgIGlmIChjb2RlTWFwLnNpemUgIT09IDIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgdW5leHBlY3RlZCBudW1iZXIgb2YgY29kZXMgZm9yIHR5cGUgJHt0fWApO1xuICAgIH1cblxuICAgIHN1cGVyKGNvZGVNYXAudmFsdWVzKCkpO1xuXG4gICAgdGhpcy5pbnRlcm5hbCA9IHRocm93SWZVbmRlZmluZWQoY29kZU1hcC5nZXQoUHVycG9zZS5pbnRlcm5hbCkpO1xuICAgIHRoaXMuZXh0ZXJuYWwgPSB0aHJvd0lmVW5kZWZpbmVkKGNvZGVNYXAuZ2V0KFB1cnBvc2UuZXh0ZXJuYWwpKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ29kZXNCeVR5cGUgZXh0ZW5kcyBDb2RlR3JvdXAge1xuICBwdWJsaWMgcDJzaDogQ2hhaW5Db2RlO1xuICBwdWJsaWMgcDJzaFAyd3NoOiBDaGFpbkNvZGU7XG4gIHB1YmxpYyBwMndzaDogQ2hhaW5Db2RlO1xuICBwdWJsaWMgcDJ0cjogQ2hhaW5Db2RlO1xuXG4gIGNvbnN0cnVjdG9yKHA6IFB1cnBvc2UpIHtcbiAgICBjb25zdCBjb2RlTWFwOiBNYXA8VW5zcGVudFR5cGUsIENoYWluQ29kZT4gPSBuZXcgTWFwKFxuICAgICAgY29kZUxpc3QuZmlsdGVyKCh7IHB1cnBvc2UgfSkgPT4gcHVycG9zZSA9PT0gcCkubWFwKCh7IHR5cGUsIGlkIH0pOiBbVW5zcGVudFR5cGUsIENoYWluQ29kZV0gPT4gW3R5cGUsIGlkXSlcbiAgICApO1xuICAgIGlmIChjb2RlTWFwLnNpemUgIT09IDQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgdW5leHBlY3RlZCBudW1iZXIgb2YgY29kZXNgKTtcbiAgICB9XG5cbiAgICBzdXBlcihjb2RlTWFwLnZhbHVlcygpKTtcblxuICAgIHRoaXMucDJzaCA9IHRocm93SWZVbmRlZmluZWQoY29kZU1hcC5nZXQoVW5zcGVudFR5cGUucDJzaCkpO1xuICAgIHRoaXMucDJzaFAyd3NoID0gdGhyb3dJZlVuZGVmaW5lZChjb2RlTWFwLmdldChVbnNwZW50VHlwZS5wMnNoUDJ3c2gpKTtcbiAgICB0aGlzLnAyd3NoID0gdGhyb3dJZlVuZGVmaW5lZChjb2RlTWFwLmdldChVbnNwZW50VHlwZS5wMndzaCkpO1xuICAgIHRoaXMucDJ0ciA9IHRocm93SWZVbmRlZmluZWQoY29kZU1hcC5nZXQoVW5zcGVudFR5cGUucDJ0cikpO1xuICB9XG59XG5cbmNvbnN0IGJvdW5kSGFzID0gKGluc3RhbmNlOiBDb2RlR3JvdXApID0+IGluc3RhbmNlLmhhcy5iaW5kKGluc3RhbmNlKTtcblxuY29uc3QgcDJzaCA9IE9iamVjdC5mcmVlemUobmV3IENvZGVzQnlQdXJwb3NlKFVuc3BlbnRUeXBlLnAyc2gpKTtcbmNvbnN0IHAyc2hQMndzaCA9IE9iamVjdC5mcmVlemUobmV3IENvZGVzQnlQdXJwb3NlKFVuc3BlbnRUeXBlLnAyc2hQMndzaCkpO1xuY29uc3QgcDJ3c2ggPSBPYmplY3QuZnJlZXplKG5ldyBDb2Rlc0J5UHVycG9zZShVbnNwZW50VHlwZS5wMndzaCkpO1xuY29uc3QgcDJ0ciA9IE9iamVjdC5mcmVlemUobmV3IENvZGVzQnlQdXJwb3NlKFVuc3BlbnRUeXBlLnAydHIpKTtcbmNvbnN0IGV4dGVybmFsID0gT2JqZWN0LmZyZWV6ZShuZXcgQ29kZXNCeVR5cGUoUHVycG9zZS5leHRlcm5hbCkpO1xuY29uc3QgaW50ZXJuYWwgPSBPYmplY3QuZnJlZXplKG5ldyBDb2Rlc0J5VHlwZShQdXJwb3NlLmludGVybmFsKSk7XG5jb25zdCBhbGwgPSBPYmplY3QuZnJlZXplKGNvZGVMaXN0Lm1hcCgoeyBpZCB9KSA9PiBpZCkpO1xuXG4vKiogQGRlcHJlY2F0ZWQgLSB1c2UgdXR4b2xpYi5iaXRnbyAqL1xuZXhwb3J0IGRlZmF1bHQgT2JqZWN0LmZyZWV6ZSh7XG4gIC8qIEBkZXByZWNhdGVkOiB1c2UgQ2hhaW5Db2RlVGNvbWIgKi9cbiAgQ2hhaW5UeXBlLFxuICAvKiogQGRlcHJlY2F0ZWQgLSB1c2UgdXR4b2xpYi5iaXRnbyAqL1xuICBDaGFpbkNvZGVUY29tYjogQ2hhaW5UeXBlLFxuICAvKiogQGRlcHJlY2F0ZWQgLSB1c2UgdXR4b2xpYi5iaXRnbyAqL1xuICBQdXJwb3NlVGNvbWIsXG4gIC8qKiBAZGVwcmVjYXRlZCAtIHVzZSB1dHhvbGliLmJpdGdvICovXG4gIFVuc3BlbnRUeXBlVGNvbWIsXG4gIC8qKiBAZGVwcmVjYXRlZCAtIHVzZSB1dHhvbGliLmJpdGdvICovXG4gIHAyc2gsXG4gIC8qKiBAZGVwcmVjYXRlZCAtIHVzZSB1dHhvbGliLmJpdGdvICovXG4gIHAyc2hQMndzaCxcbiAgLyoqIEBkZXByZWNhdGVkIC0gdXNlIHV0eG9saWIuYml0Z28gKi9cbiAgcDJ3c2gsXG4gIC8qKiBAZGVwcmVjYXRlZCAtIHVzZSB1dHhvbGliLmJpdGdvICovXG4gIHAydHIsXG4gIC8qKiBAZGVwcmVjYXRlZCAtIHVzZSB1dHhvbGliLmJpdGdvICovXG4gIGV4dGVybmFsLFxuICAvKiogQGRlcHJlY2F0ZWQgLSB1c2UgdXR4b2xpYi5iaXRnbyAqL1xuICBpbnRlcm5hbCxcbiAgLyoqIEBkZXByZWNhdGVkIC0gdXNlIHV0eG9saWIuYml0Z28gKi9cbiAgYWxsLFxuICAvKiogQGRlcHJlY2F0ZWQgLSB1c2UgdXR4b2xpYi5iaXRnbyAqL1xuICBpc1Ayc2g6IGJvdW5kSGFzKHAyc2gpLFxuICAvKiogQGRlcHJlY2F0ZWQgLSB1c2UgdXR4b2xpYi5iaXRnbyAqL1xuICBpc1Ayc2hQMndzaDogYm91bmRIYXMocDJzaFAyd3NoKSxcbiAgLyoqIEBkZXByZWNhdGVkIC0gdXNlIHV0eG9saWIuYml0Z28gKi9cbiAgaXNQMndzaDogYm91bmRIYXMocDJ3c2gpLFxuICAvKiogQGRlcHJlY2F0ZWQgLSB1c2UgdXR4b2xpYi5iaXRnbyAqL1xuICBpc1AydHI6IGJvdW5kSGFzKHAydHIpLFxuICAvKiogQGRlcHJlY2F0ZWQgLSB1c2UgdXR4b2xpYi5iaXRnbyAqL1xuICBpc0V4dGVybmFsOiBib3VuZEhhcyhleHRlcm5hbCksXG4gIC8qKiBAZGVwcmVjYXRlZCAtIHVzZSB1dHhvbGliLmJpdGdvICovXG4gIGlzSW50ZXJuYWw6IGJvdW5kSGFzKGludGVybmFsKSxcbiAgLyoqIEBkZXByZWNhdGVkIC0gdXNlIHV0eG9saWIuYml0Z28gKi9cbiAgaXNWYWxpZCxcbiAgLyoqIEBkZXByZWNhdGVkIC0gdXNlIHV0eG9saWIuYml0Z28gKi9cbiAgZm9yVHlwZSxcbiAgLyoqIEBkZXByZWNhdGVkIC0gdXNlIHV0eG9saWIuYml0Z28gKi9cbiAgdHlwZUZvckNvZGUsXG59KTtcbiJdfQ==
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import * as utxolib from '@bitgo-beta/utxo-lib';
|
|
3
3
|
import { bitgo } from '@bitgo-beta/utxo-lib';
|
|
4
|
-
|
|
4
|
+
type ChainCode = bitgo.ChainCode;
|
|
5
5
|
import { VirtualSizes } from './virtualSizes';
|
|
6
6
|
export { VirtualSizes };
|
|
7
7
|
/**
|
|
@@ -164,7 +164,7 @@ export declare class Dimensions {
|
|
|
164
164
|
/**
|
|
165
165
|
* Return dimensions of an unspent according to `chain` parameter
|
|
166
166
|
* @param chain - Chain code as defined by utxo.chain
|
|
167
|
-
* @param params - Hint for unspents with variable input sizes (p2tr)
|
|
167
|
+
* @param params - Hint for unspents with variable input sizes (p2tr, p2trMusig2)
|
|
168
168
|
* @return {Dimensions} of the unspent
|
|
169
169
|
* @throws if the chain code is invalid or unsupported
|
|
170
170
|
*/
|
|
@@ -173,11 +173,12 @@ export declare class Dimensions {
|
|
|
173
173
|
}, params?: FromUnspentParams): Dimensions;
|
|
174
174
|
/**
|
|
175
175
|
* @param unspents
|
|
176
|
+
* @param params - Hint for unspents with variable input sizes (p2tr, p2trMusig2)
|
|
176
177
|
* @return {Dimensions} sum of the dimensions for each unspent (@see Dimensions.fromUnspent())
|
|
177
178
|
*/
|
|
178
179
|
static fromUnspents(unspents: {
|
|
179
180
|
chain: ChainCode;
|
|
180
|
-
}[]): Dimensions;
|
|
181
|
+
}[], params?: FromUnspentParams): Dimensions;
|
|
181
182
|
/**
|
|
182
183
|
* @param transaction - bitcoin-like transaction
|
|
183
184
|
* @param [param.assumeUnsigned] - default type for unsigned inputs
|
|
@@ -232,3 +233,4 @@ export declare class Dimensions {
|
|
|
232
233
|
*/
|
|
233
234
|
getVSize(): number;
|
|
234
235
|
}
|
|
236
|
+
//# sourceMappingURL=dimensions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dimensions.d.ts","sourceRoot":"","sources":["../../src/dimensions.ts"],"names":[],"mappings":"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"}
|