PHP WebShell
Текущая директория: /opt/BitGoJS/modules/utxo-core/dist/test
Просмотр файла: dustThreshold.js
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const assert_1 = __importDefault(require("assert"));
const utxolib = __importStar(require("@bitgo/utxo-lib"));
const dustThreshold_1 = require("../src/dustThreshold");
describe('getDustThresholdSat', function () {
it('has expected values', function () {
assert_1.default.deepStrictEqual(utxolib.getNetworkList().flatMap((n) => {
if (n === utxolib.networks.bitcoin) {
return [
['bitcoin', (0, dustThreshold_1.getDustThresholdSat)(n, 34, false)],
['bitcoin (segwit)', (0, dustThreshold_1.getDustThresholdSat)(n, 31, true)],
];
}
try {
return [[utxolib.getNetworkName(n), (0, dustThreshold_1.getDustThresholdSat)(n, 34, false)]];
}
catch (e) {
(0, assert_1.default)(e instanceof Error);
return [[utxolib.getNetworkName(n), e.message]];
}
}), [
/*
https://github.com/bitcoin/bitcoin/blob/v28.0/src/policy/policy.cpp#L28
>> "Dust" is defined in terms of dustRelayFee,
>> which has units satoshis-per-kilobyte.
>> If you'd pay more in fees than the value of the output
>> to spend something, then we consider it dust.
>> A typical spendable non-segwit txout is 34 bytes big, and will
>> need a CTxIn of at least 148 bytes to spend:
>> so dust is a spendable txout less than
>> 182*dustRelayFee/1000 (in satoshis).
>> 546 satoshis at the default rate of 3000 sat/kvB.
*/
['bitcoin', 546],
/*
>> A typical spendable segwit P2WPKH txout is 31 bytes big, and will
>> need a CTxIn of at least 67 bytes to spend:
>> so dust is a spendable txout less than
>> 98*dustRelayFee/1000 (in satoshis).
>> 294 satoshis at the default rate of 3000 sat/kvB.
for us it is 297 because we round up
*/
['bitcoin (segwit)', 297],
['testnet', 546],
['bitcoinPublicSignet', 546],
['bitcoinTestnet4', 546],
['bitcoinBitGoSignet', 546],
['bitcoincash', 182],
['bitcoincashTestnet', 182],
['bitcoingold', 546],
['bitcoingoldTestnet', 546],
['bitcoinsv', 'deprecated coin'],
['bitcoinsvTestnet', 'deprecated coin'],
['dash', 546],
['dashTest', 546],
['dogecoin', 1000000],
['dogecoinTest', 1000000],
['ecash', 'unsupported network'],
['ecashTest', 'unsupported network'],
['litecoin', 5460],
['litecoinTest', 5460],
['zcash', 300],
['zcashTest', 300],
]);
});
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVzdFRocmVzaG9sZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3Rlc3QvZHVzdFRocmVzaG9sZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9EQUE0QjtBQUU1Qix5REFBMkM7QUFFM0Msd0RBQTJEO0FBRTNELFFBQVEsQ0FBQyxxQkFBcUIsRUFBRTtJQUM5QixFQUFFLENBQUMscUJBQXFCLEVBQUU7UUFDeEIsZ0JBQU0sQ0FBQyxlQUFlLENBQ3BCLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQXdCLEVBQUU7WUFDM0QsSUFBSSxDQUFDLEtBQUssT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDbkMsT0FBTztvQkFDTCxDQUFDLFNBQVMsRUFBRSxJQUFBLG1DQUFtQixFQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7b0JBQzlDLENBQUMsa0JBQWtCLEVBQUUsSUFBQSxtQ0FBbUIsRUFBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO2lCQUN2RCxDQUFDO1lBQ0osQ0FBQztZQUNELElBQUksQ0FBQztnQkFDSCxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUEsbUNBQW1CLEVBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDMUUsQ0FBQztZQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ1gsSUFBQSxnQkFBTSxFQUFDLENBQUMsWUFBWSxLQUFLLENBQUMsQ0FBQztnQkFDM0IsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNsRCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLEVBQ0Y7WUFDRTs7Ozs7Ozs7Ozs7Ozs7ZUFjRztZQUNILENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQztZQUNoQjs7Ozs7Ozs7OztlQVVHO1lBQ0gsQ0FBQyxrQkFBa0IsRUFBRSxHQUFHLENBQUM7WUFDekIsQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDO1lBQ2hCLENBQUMscUJBQXFCLEVBQUUsR0FBRyxDQUFDO1lBQzVCLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxDQUFDO1lBQ3hCLENBQUMsb0JBQW9CLEVBQUUsR0FBRyxDQUFDO1lBQzNCLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQztZQUNwQixDQUFDLG9CQUFvQixFQUFFLEdBQUcsQ0FBQztZQUMzQixDQUFDLGFBQWEsRUFBRSxHQUFHLENBQUM7WUFDcEIsQ0FBQyxvQkFBb0IsRUFBRSxHQUFHLENBQUM7WUFDM0IsQ0FBQyxXQUFXLEVBQUUsaUJBQWlCLENBQUM7WUFDaEMsQ0FBQyxrQkFBa0IsRUFBRSxpQkFBaUIsQ0FBQztZQUN2QyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUM7WUFDYixDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUM7WUFDakIsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDO1lBQ3JCLENBQUMsY0FBYyxFQUFFLE9BQU8sQ0FBQztZQUN6QixDQUFDLE9BQU8sRUFBRSxxQkFBcUIsQ0FBQztZQUNoQyxDQUFDLFdBQVcsRUFBRSxxQkFBcUIsQ0FBQztZQUNwQyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUM7WUFDbEIsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDO1lBQ3RCLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQztZQUNkLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQztTQUNuQixDQUNGLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby91dHhvLWxpYic7XG5cbmltcG9ydCB7IGdldER1c3RUaHJlc2hvbGRTYXQgfSBmcm9tICcuLi9zcmMvZHVzdFRocmVzaG9sZCc7XG5cbmRlc2NyaWJlKCdnZXREdXN0VGhyZXNob2xkU2F0JywgZnVuY3Rpb24gKCkge1xuICBpdCgnaGFzIGV4cGVjdGVkIHZhbHVlcycsIGZ1bmN0aW9uICgpIHtcbiAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKFxuICAgICAgdXR4b2xpYi5nZXROZXR3b3JrTGlzdCgpLmZsYXRNYXAoKG4pOiBbdW5rbm93biwgdW5rbm93bl1bXSA9PiB7XG4gICAgICAgIGlmIChuID09PSB1dHhvbGliLm5ldHdvcmtzLmJpdGNvaW4pIHtcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgWydiaXRjb2luJywgZ2V0RHVzdFRocmVzaG9sZFNhdChuLCAzNCwgZmFsc2UpXSxcbiAgICAgICAgICAgIFsnYml0Y29pbiAoc2Vnd2l0KScsIGdldER1c3RUaHJlc2hvbGRTYXQobiwgMzEsIHRydWUpXSxcbiAgICAgICAgICBdO1xuICAgICAgICB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmV0dXJuIFtbdXR4b2xpYi5nZXROZXR3b3JrTmFtZShuKSwgZ2V0RHVzdFRocmVzaG9sZFNhdChuLCAzNCwgZmFsc2UpXV07XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBhc3NlcnQoZSBpbnN0YW5jZW9mIEVycm9yKTtcbiAgICAgICAgICByZXR1cm4gW1t1dHhvbGliLmdldE5ldHdvcmtOYW1lKG4pLCBlLm1lc3NhZ2VdXTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICBbXG4gICAgICAgIC8qXG5cbiAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL2JpdGNvaW4vYml0Y29pbi9ibG9iL3YyOC4wL3NyYy9wb2xpY3kvcG9saWN5LmNwcCNMMjhcblxuICAgICAgICA+PiBcIkR1c3RcIiBpcyBkZWZpbmVkIGluIHRlcm1zIG9mIGR1c3RSZWxheUZlZSxcbiAgICAgICAgPj4gd2hpY2ggaGFzIHVuaXRzIHNhdG9zaGlzLXBlci1raWxvYnl0ZS5cbiAgICAgICAgPj4gSWYgeW91J2QgcGF5IG1vcmUgaW4gZmVlcyB0aGFuIHRoZSB2YWx1ZSBvZiB0aGUgb3V0cHV0XG4gICAgICAgID4+IHRvIHNwZW5kIHNvbWV0aGluZywgdGhlbiB3ZSBjb25zaWRlciBpdCBkdXN0LlxuICAgICAgICA+PiBBIHR5cGljYWwgc3BlbmRhYmxlIG5vbi1zZWd3aXQgdHhvdXQgaXMgMzQgYnl0ZXMgYmlnLCBhbmQgd2lsbFxuICAgICAgICA+PiBuZWVkIGEgQ1R4SW4gb2YgYXQgbGVhc3QgMTQ4IGJ5dGVzIHRvIHNwZW5kOlxuICAgICAgICA+PiBzbyBkdXN0IGlzIGEgc3BlbmRhYmxlIHR4b3V0IGxlc3MgdGhhblxuICAgICAgICA+PiAxODIqZHVzdFJlbGF5RmVlLzEwMDAgKGluIHNhdG9zaGlzKS5cbiAgICAgICAgPj4gNTQ2IHNhdG9zaGlzIGF0IHRoZSBkZWZhdWx0IHJhdGUgb2YgMzAwMCBzYXQva3ZCLlxuXG4gICAgICAgICAqL1xuICAgICAgICBbJ2JpdGNvaW4nLCA1NDZdLFxuICAgICAgICAvKlxuXG4gICAgICAgID4+IEEgdHlwaWNhbCBzcGVuZGFibGUgc2Vnd2l0IFAyV1BLSCB0eG91dCBpcyAzMSBieXRlcyBiaWcsIGFuZCB3aWxsXG4gICAgICAgID4+IG5lZWQgYSBDVHhJbiBvZiBhdCBsZWFzdCA2NyBieXRlcyB0byBzcGVuZDpcbiAgICAgICAgPj4gc28gZHVzdCBpcyBhIHNwZW5kYWJsZSB0eG91dCBsZXNzIHRoYW5cbiAgICAgICAgPj4gOTgqZHVzdFJlbGF5RmVlLzEwMDAgKGluIHNhdG9zaGlzKS5cbiAgICAgICAgPj4gMjk0IHNhdG9zaGlzIGF0IHRoZSBkZWZhdWx0IHJhdGUgb2YgMzAwMCBzYXQva3ZCLlxuXG4gICAgICAgIGZvciB1cyBpdCBpcyAyOTcgYmVjYXVzZSB3ZSByb3VuZCB1cFxuXG4gICAgICAgICAqL1xuICAgICAgICBbJ2JpdGNvaW4gKHNlZ3dpdCknLCAyOTddLFxuICAgICAgICBbJ3Rlc3RuZXQnLCA1NDZdLFxuICAgICAgICBbJ2JpdGNvaW5QdWJsaWNTaWduZXQnLCA1NDZdLFxuICAgICAgICBbJ2JpdGNvaW5UZXN0bmV0NCcsIDU0Nl0sXG4gICAgICAgIFsnYml0Y29pbkJpdEdvU2lnbmV0JywgNTQ2XSxcbiAgICAgICAgWydiaXRjb2luY2FzaCcsIDE4Ml0sXG4gICAgICAgIFsnYml0Y29pbmNhc2hUZXN0bmV0JywgMTgyXSxcbiAgICAgICAgWydiaXRjb2luZ29sZCcsIDU0Nl0sXG4gICAgICAgIFsnYml0Y29pbmdvbGRUZXN0bmV0JywgNTQ2XSxcbiAgICAgICAgWydiaXRjb2luc3YnLCAnZGVwcmVjYXRlZCBjb2luJ10sXG4gICAgICAgIFsnYml0Y29pbnN2VGVzdG5ldCcsICdkZXByZWNhdGVkIGNvaW4nXSxcbiAgICAgICAgWydkYXNoJywgNTQ2XSxcbiAgICAgICAgWydkYXNoVGVzdCcsIDU0Nl0sXG4gICAgICAgIFsnZG9nZWNvaW4nLCAxMDAwMDAwXSxcbiAgICAgICAgWydkb2dlY29pblRlc3QnLCAxMDAwMDAwXSxcbiAgICAgICAgWydlY2FzaCcsICd1bnN1cHBvcnRlZCBuZXR3b3JrJ10sXG4gICAgICAgIFsnZWNhc2hUZXN0JywgJ3Vuc3VwcG9ydGVkIG5ldHdvcmsnXSxcbiAgICAgICAgWydsaXRlY29pbicsIDU0NjBdLFxuICAgICAgICBbJ2xpdGVjb2luVGVzdCcsIDU0NjBdLFxuICAgICAgICBbJ3pjYXNoJywgMzAwXSxcbiAgICAgICAgWyd6Y2FzaFRlc3QnLCAzMDBdLFxuICAgICAgXVxuICAgICk7XG4gIH0pO1xufSk7XG4iXX0=Выполнить команду
Для локальной разработки. Не используйте в интернете!