PHP WebShell
Текущая директория: /opt/BitGoJS/modules/sdk-coin-btc/dist/test/unit
Просмотр файла: btc.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;
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
require("should");
const sdk_test_1 = require("@bitgo/sdk-test");
const src_1 = require("../../src");
const sdk_api_1 = require("@bitgo/sdk-api");
const utxolib = __importStar(require("@bitgo/utxo-lib"));
describe('BTC:', function () {
let bitgo;
before(function () {
bitgo = sdk_test_1.TestBitGo.decorate(sdk_api_1.BitGoAPI, { env: 'test' });
bitgo.safeRegister('tbtc', src_1.Tbtc.createInstance);
bitgo.initializeTestVars();
});
describe('Address validation:', () => {
let coin;
before(() => {
coin = bitgo.coin('tbtc');
});
it('should validate a base58 address', () => {
const validBase58Address = '2Mv1fGp8gHSqsiXYG7WqcYmHZdurDGVtUbn';
coin.isValidAddress(validBase58Address).should.be.true();
const invalidBase58Address = '2MV1FGP8GHSQSSXYG7WQCYMHZDURDGVTUBN';
coin.isValidAddress(invalidBase58Address).should.be.false();
});
it('should validate a bech32 address', () => {
const validBech32Address = 'tb1qtxxqmkkdx4n4lcp0nt2cct89uh3h3dlcu940kw9fcqyyq36peh0st94hfp';
coin.isValidAddress(validBech32Address).should.be.true();
coin.isValidAddress(validBech32Address.toUpperCase()).should.be.false();
});
it('should validate a bech32m address', () => {
// https://github.com/bitcoin/bips/blob/master/bip-0350.mediawiki#Test_vectors_for_Bech32m
const validBech32mAddress = 'tb1qrp33g0q5c5txsp9arysrx4k6zdkfs4nce4xj0gdcccefvpysxf3q0sl5k7';
coin.isValidAddress(validBech32mAddress).should.be.true();
coin.isValidAddress(validBech32mAddress.toUpperCase()).should.be.false();
});
});
describe('Post Build Validation', () => {
let coin;
before(() => {
coin = bitgo.coin('tbtc');
});
it('should not modify locktime on postProcessPrebuild', async () => {
const txHex = '0100000001a8ec78f09f7acb0d344622ed3082c1a98e51ba1b1ab65406044f6e0a801609020100000000ffffffff02a0860100000000001976a9149f9a7abd600c0caa03983a77c8c3df8e062cb2fa88acfbf2150000000000220020b922cc1e737e679d24ff2d2b18cfa9fff4e35a733b4fba94282eaa1b7cfe56d200000000';
const blockHeight = 100;
const preBuild = { txHex, blockHeight };
const postProcessBuilt = await coin.postProcessPrebuild(preBuild);
const transaction = utxolib.bitgo.createTransactionFromHex(postProcessBuilt.txHex, utxolib.networks.bitcoin);
transaction.locktime.should.equal(0);
const inputs = transaction.ins;
for (const input of inputs) {
input.sequence.should.equal(0xffffffff);
}
});
});
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnRjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdGVzdC91bml0L2J0Yy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGtCQUFnQjtBQUVoQiw4Q0FBMEQ7QUFFMUQsbUNBQWlDO0FBQ2pDLDRDQUEwQztBQUMxQyx5REFBMkM7QUFFM0MsUUFBUSxDQUFDLE1BQU0sRUFBRTtJQUNmLElBQUksS0FBbUIsQ0FBQztJQUV4QixNQUFNLENBQUM7UUFDTCxLQUFLLEdBQUcsb0JBQVMsQ0FBQyxRQUFRLENBQUMsa0JBQVEsRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ3RELEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLFVBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNoRCxLQUFLLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM3QixDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxxQkFBcUIsRUFBRSxHQUFHLEVBQUU7UUFDbkMsSUFBSSxJQUFVLENBQUM7UUFDZixNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFTLENBQUM7UUFDcEMsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsa0NBQWtDLEVBQUUsR0FBRyxFQUFFO1lBQzFDLE1BQU0sa0JBQWtCLEdBQUcscUNBQXFDLENBQUM7WUFDakUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDekQsTUFBTSxvQkFBb0IsR0FBRyxxQ0FBcUMsQ0FBQztZQUNuRSxJQUFJLENBQUMsY0FBYyxDQUFDLG9CQUFvQixDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM5RCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxrQ0FBa0MsRUFBRSxHQUFHLEVBQUU7WUFDMUMsTUFBTSxrQkFBa0IsR0FBRyxnRUFBZ0UsQ0FBQztZQUM1RixJQUFJLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN6RCxJQUFJLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMxRSxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxtQ0FBbUMsRUFBRSxHQUFHLEVBQUU7WUFDM0MsMEZBQTBGO1lBQzFGLE1BQU0sbUJBQW1CLEdBQUcsZ0VBQWdFLENBQUM7WUFDN0YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDMUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDM0UsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyx1QkFBdUIsRUFBRSxHQUFHLEVBQUU7UUFDckMsSUFBSSxJQUFVLENBQUM7UUFDZixNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFTLENBQUM7UUFDcEMsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsbURBQW1ELEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDakUsTUFBTSxLQUFLLEdBQ1Qsa1FBQWtRLENBQUM7WUFDclEsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDO1lBQ3hCLE1BQU0sUUFBUSxHQUFHLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxDQUFDO1lBQ3hDLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbEUsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsQ0FDeEQsZ0JBQWdCLENBQUMsS0FBZSxFQUNoQyxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FDekIsQ0FBQztZQUVGLFdBQVcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyQyxNQUFNLE1BQU0sR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDO1lBQy9CLEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxFQUFFLENBQUM7Z0JBQzNCLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUMxQyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICdzaG91bGQnO1xuXG5pbXBvcnQgeyBUZXN0Qml0R29BUEksIFRlc3RCaXRHbyB9IGZyb20gJ0BiaXRnby9zZGstdGVzdCc7XG5cbmltcG9ydCB7IFRidGMgfSBmcm9tICcuLi8uLi9zcmMnO1xuaW1wb3J0IHsgQml0R29BUEkgfSBmcm9tICdAYml0Z28vc2RrLWFwaSc7XG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby91dHhvLWxpYic7XG5cbmRlc2NyaWJlKCdCVEM6JywgZnVuY3Rpb24gKCkge1xuICBsZXQgYml0Z286IFRlc3RCaXRHb0FQSTtcblxuICBiZWZvcmUoZnVuY3Rpb24gKCkge1xuICAgIGJpdGdvID0gVGVzdEJpdEdvLmRlY29yYXRlKEJpdEdvQVBJLCB7IGVudjogJ3Rlc3QnIH0pO1xuICAgIGJpdGdvLnNhZmVSZWdpc3RlcigndGJ0YycsIFRidGMuY3JlYXRlSW5zdGFuY2UpO1xuICAgIGJpdGdvLmluaXRpYWxpemVUZXN0VmFycygpO1xuICB9KTtcblxuICBkZXNjcmliZSgnQWRkcmVzcyB2YWxpZGF0aW9uOicsICgpID0+IHtcbiAgICBsZXQgY29pbjogVGJ0YztcbiAgICBiZWZvcmUoKCkgPT4ge1xuICAgICAgY29pbiA9IGJpdGdvLmNvaW4oJ3RidGMnKSBhcyBUYnRjO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSBhIGJhc2U1OCBhZGRyZXNzJywgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsaWRCYXNlNThBZGRyZXNzID0gJzJNdjFmR3A4Z0hTcXNpWFlHN1dxY1ltSFpkdXJER1Z0VWJuJztcbiAgICAgIGNvaW4uaXNWYWxpZEFkZHJlc3ModmFsaWRCYXNlNThBZGRyZXNzKS5zaG91bGQuYmUudHJ1ZSgpO1xuICAgICAgY29uc3QgaW52YWxpZEJhc2U1OEFkZHJlc3MgPSAnMk1WMUZHUDhHSFNRU1NYWUc3V1FDWU1IWkRVUkRHVlRVQk4nO1xuICAgICAgY29pbi5pc1ZhbGlkQWRkcmVzcyhpbnZhbGlkQmFzZTU4QWRkcmVzcykuc2hvdWxkLmJlLmZhbHNlKCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHZhbGlkYXRlIGEgYmVjaDMyIGFkZHJlc3MnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWxpZEJlY2gzMkFkZHJlc3MgPSAndGIxcXR4eHFta2tkeDRuNGxjcDBudDJjY3Q4OXVoM2gzZGxjdTk0MGt3OWZjcXl5cTM2cGVoMHN0OTRoZnAnO1xuICAgICAgY29pbi5pc1ZhbGlkQWRkcmVzcyh2YWxpZEJlY2gzMkFkZHJlc3MpLnNob3VsZC5iZS50cnVlKCk7XG4gICAgICBjb2luLmlzVmFsaWRBZGRyZXNzKHZhbGlkQmVjaDMyQWRkcmVzcy50b1VwcGVyQ2FzZSgpKS5zaG91bGQuYmUuZmFsc2UoKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUgYSBiZWNoMzJtIGFkZHJlc3MnLCAoKSA9PiB7XG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vYml0Y29pbi9iaXBzL2Jsb2IvbWFzdGVyL2JpcC0wMzUwLm1lZGlhd2lraSNUZXN0X3ZlY3RvcnNfZm9yX0JlY2gzMm1cbiAgICAgIGNvbnN0IHZhbGlkQmVjaDMybUFkZHJlc3MgPSAndGIxcXJwMzNnMHE1YzV0eHNwOWFyeXNyeDRrNnpka2ZzNG5jZTR4ajBnZGNjY2VmdnB5c3hmM3Ewc2w1azcnO1xuICAgICAgY29pbi5pc1ZhbGlkQWRkcmVzcyh2YWxpZEJlY2gzMm1BZGRyZXNzKS5zaG91bGQuYmUudHJ1ZSgpO1xuICAgICAgY29pbi5pc1ZhbGlkQWRkcmVzcyh2YWxpZEJlY2gzMm1BZGRyZXNzLnRvVXBwZXJDYXNlKCkpLnNob3VsZC5iZS5mYWxzZSgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnUG9zdCBCdWlsZCBWYWxpZGF0aW9uJywgKCkgPT4ge1xuICAgIGxldCBjb2luOiBUYnRjO1xuICAgIGJlZm9yZSgoKSA9PiB7XG4gICAgICBjb2luID0gYml0Z28uY29pbigndGJ0YycpIGFzIFRidGM7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIG5vdCBtb2RpZnkgbG9ja3RpbWUgb24gcG9zdFByb2Nlc3NQcmVidWlsZCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHR4SGV4ID1cbiAgICAgICAgJzAxMDAwMDAwMDFhOGVjNzhmMDlmN2FjYjBkMzQ0NjIyZWQzMDgyYzFhOThlNTFiYTFiMWFiNjU0MDYwNDRmNmUwYTgwMTYwOTAyMDEwMDAwMDAwMGZmZmZmZmZmMDJhMDg2MDEwMDAwMDAwMDAwMTk3NmE5MTQ5ZjlhN2FiZDYwMGMwY2FhMDM5ODNhNzdjOGMzZGY4ZTA2MmNiMmZhODhhY2ZiZjIxNTAwMDAwMDAwMDAyMjAwMjBiOTIyY2MxZTczN2U2NzlkMjRmZjJkMmIxOGNmYTlmZmY0ZTM1YTczM2I0ZmJhOTQyODJlYWExYjdjZmU1NmQyMDAwMDAwMDAnO1xuICAgICAgY29uc3QgYmxvY2tIZWlnaHQgPSAxMDA7XG4gICAgICBjb25zdCBwcmVCdWlsZCA9IHsgdHhIZXgsIGJsb2NrSGVpZ2h0IH07XG4gICAgICBjb25zdCBwb3N0UHJvY2Vzc0J1aWx0ID0gYXdhaXQgY29pbi5wb3N0UHJvY2Vzc1ByZWJ1aWxkKHByZUJ1aWxkKTtcbiAgICAgIGNvbnN0IHRyYW5zYWN0aW9uID0gdXR4b2xpYi5iaXRnby5jcmVhdGVUcmFuc2FjdGlvbkZyb21IZXgoXG4gICAgICAgIHBvc3RQcm9jZXNzQnVpbHQudHhIZXggYXMgc3RyaW5nLFxuICAgICAgICB1dHhvbGliLm5ldHdvcmtzLmJpdGNvaW5cbiAgICAgICk7XG5cbiAgICAgIHRyYW5zYWN0aW9uLmxvY2t0aW1lLnNob3VsZC5lcXVhbCgwKTtcbiAgICAgIGNvbnN0IGlucHV0cyA9IHRyYW5zYWN0aW9uLmlucztcbiAgICAgIGZvciAoY29uc3QgaW5wdXQgb2YgaW5wdXRzKSB7XG4gICAgICAgIGlucHV0LnNlcXVlbmNlLnNob3VsZC5lcXVhbCgweGZmZmZmZmZmKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==Выполнить команду
Для локальной разработки. Не используйте в интернете!