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=

Выполнить команду


Для локальной разработки. Не используйте в интернете!