PHP WebShell

Текущая директория: /opt/BitGoJS/modules/sdk-coin-hash/dist/test/unit/transactionBuilder

Просмотр файла: transactionBuilder.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 sdk_core_1 = require("@bitgo/sdk-core");
const should_1 = __importDefault(require("should"));
const sdk_api_1 = require("@bitgo/sdk-api");
const sdk_test_1 = require("@bitgo/sdk-test");
const src_1 = require("../../../src");
const testData = __importStar(require("../../resources/hash"));
describe('Hash Transaction Builder', async () => {
    let bitgo;
    let basecoin;
    let factory;
    before(function () {
        bitgo = sdk_test_1.TestBitGo.decorate(sdk_api_1.BitGoAPI, { env: 'mock' });
        bitgo.safeRegister('hash', src_1.Hash.createInstance);
        bitgo.safeRegister('thash', src_1.Thash.createInstance);
        bitgo.initializeTestVars();
        basecoin = bitgo.coin('thash');
        factory = basecoin.getBuilder();
    });
    const testTxData = testData.TEST_SEND_TX;
    let data;
    beforeEach(() => {
        data = [
            {
                type: sdk_core_1.TransactionType.Send,
                testTx: testData.TEST_SEND_TX,
                builder: factory.getTransferBuilder(),
            },
            {
                type: sdk_core_1.TransactionType.StakingActivate,
                testTx: testData.TEST_DELEGATE_TX,
                builder: factory.getStakingActivateBuilder(),
            },
            {
                type: sdk_core_1.TransactionType.StakingDeactivate,
                testTx: testData.TEST_UNDELEGATE_TX,
                builder: factory.getStakingDeactivateBuilder(),
            },
            {
                type: sdk_core_1.TransactionType.StakingWithdraw,
                testTx: testData.TEST_WITHDRAW_REWARDS_TX,
                builder: factory.getStakingWithdrawRewardsBuilder(),
            },
        ];
    });
    it('should build a signed tx from signed tx data', async function () {
        const txBuilder = factory.from(testTxData.signedTxBase64);
        const tx = await txBuilder.build();
        should_1.default.equal(tx.type, sdk_core_1.TransactionType.Send);
        // Should recreate the same raw tx data when re-build and turned to broadcast format
        const rawTx = tx.toBroadcastFormat();
        should_1.default.equal(rawTx, testTxData.signedTxBase64);
    });
    describe('gasBudget tests', async () => {
        it('should succeed for valid gasBudget', function () {
            for (const { builder } of data) {
                should_1.default.doesNotThrow(() => builder.gasBudget(testTxData.gasBudget));
            }
        });
        it('should throw for invalid gasBudget', function () {
            const invalidGasBudget = 0;
            for (const { builder } of data) {
                (0, should_1.default)(() => builder.gasBudget({ gasLimit: invalidGasBudget })).throw('Invalid gas limit ' + invalidGasBudget);
            }
        });
    });
    it('validateAddress', function () {
        const invalidAddress = { address: 'randomString' };
        for (const { builder } of data) {
            should_1.default.doesNotThrow(() => builder.validateAddress({ address: testTxData.sender }));
            (0, should_1.default)(() => builder.validateAddress(invalidAddress)).throwError('transactionBuilder: address isValidAddress check failed: ' + invalidAddress.address);
        }
    });
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGVzdC91bml0L3RyYW5zYWN0aW9uQnVpbGRlci90cmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw4Q0FBa0Q7QUFDbEQsb0RBQTRCO0FBRTVCLDRDQUEwQztBQUMxQyw4Q0FBMEQ7QUFDMUQsc0NBQTJDO0FBQzNDLCtEQUFpRDtBQUVqRCxRQUFRLENBQUMsMEJBQTBCLEVBQUUsS0FBSyxJQUFJLEVBQUU7SUFDOUMsSUFBSSxLQUFtQixDQUFDO0lBQ3hCLElBQUksUUFBUSxDQUFDO0lBQ2IsSUFBSSxPQUFPLENBQUM7SUFDWixNQUFNLENBQUM7UUFDTCxLQUFLLEdBQUcsb0JBQVMsQ0FBQyxRQUFRLENBQUMsa0JBQVEsRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ3RELEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLFVBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNoRCxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxXQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDbEQsS0FBSyxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDM0IsUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDL0IsT0FBTyxHQUFHLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNsQyxDQUFDLENBQUMsQ0FBQztJQUVILE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUM7SUFDekMsSUFBSSxJQUFJLENBQUM7SUFFVCxVQUFVLENBQUMsR0FBRyxFQUFFO1FBQ2QsSUFBSSxHQUFHO1lBQ0w7Z0JBQ0UsSUFBSSxFQUFFLDBCQUFlLENBQUMsSUFBSTtnQkFDMUIsTUFBTSxFQUFF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cmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHNob3VsZCBmcm9tICdzaG91bGQnO1xuXG5pbXBvcnQgeyBCaXRHb0FQSSB9IGZyb20gJ0BiaXRnby9zZGstYXBpJztcbmltcG9ydCB7IFRlc3RCaXRHbywgVGVzdEJpdEdvQVBJIH0gZnJvbSAnQGJpdGdvL3Nkay10ZXN0JztcbmltcG9ydCB7IEhhc2gsIFRoYXNoIH0gZnJvbSAnLi4vLi4vLi4vc3JjJztcbmltcG9ydCAqIGFzIHRlc3REYXRhIGZyb20gJy4uLy4uL3Jlc291cmNlcy9oYXNoJztcblxuZGVzY3JpYmUoJ0hhc2ggVHJhbnNhY3Rpb24gQnVpbGRlcicsIGFzeW5jICgpID0+IHtcbiAgbGV0IGJpdGdvOiBUZXN0Qml0R29BUEk7XG4gIGxldCBiYXNlY29pbjtcbiAgbGV0IGZhY3Rvcnk7XG4gIGJlZm9yZShmdW5jdGlvbiAoKSB7XG4gICAgYml0Z28gPSBUZXN0Qml0R28uZGVjb3JhdGUoQml0R29BUEksIHsgZW52OiAnbW9jaycgfSk7XG4gICAgYml0Z28uc2FmZVJlZ2lzdGVyKCdoYXNoJywgSGFzaC5jcmVhdGVJbnN0YW5jZSk7XG4gICAgYml0Z28uc2FmZVJlZ2lzdGVyKCd0aGFzaCcsIFRoYXNoLmNyZWF0ZUluc3RhbmNlKTtcbiAgICBiaXRnby5pbml0aWFsaXplVGVzdFZhcnMoKTtcbiAgICBiYXNlY29pbiA9IGJpdGdvLmNvaW4oJ3RoYXNoJyk7XG4gICAgZmFjdG9yeSA9IGJhc2Vjb2luLmdldEJ1aWxkZXIoKTtcbiAgfSk7XG5cbiAgY29uc3QgdGVzdFR4RGF0YSA9IHRlc3REYXRhLlRFU1RfU0VORF9UWDtcbiAgbGV0IGRhdGE7XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgZGF0YSA9IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogVHJhbnNhY3Rpb25UeXBlLlNlbmQsXG4gICAgICAgIHRlc3RUeDogdGVzdERhdGEuVEVTVF9TRU5EX1RYLFxuICAgICAgICBidWlsZGVyOiBmYWN0b3J5LmdldFRyYW5zZmVyQnVpbGRlcigpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdBY3RpdmF0ZSxcbiAgICAgICAgdGVzdFR4OiB0ZXN0RGF0YS5URVNUX0RFTEVHQVRFX1RYLFxuICAgICAgICBidWlsZGVyOiBmYWN0b3J5LmdldFN0YWtpbmdBY3RpdmF0ZUJ1aWxkZXIoKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nRGVhY3RpdmF0ZSxcbiAgICAgICAgdGVzdFR4OiB0ZXN0RGF0YS5URVNUX1VOREVMRUdBVEVfVFgsXG4gICAgICAgIGJ1aWxkZXI6IGZhY3RvcnkuZ2V0U3Rha2luZ0RlYWN0aXZhdGVCdWlsZGVyKCksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ1dpdGhkcmF3LFxuICAgICAgICB0ZXN0VHg6IHRlc3REYXRhLlRFU1RfV0lUSERSQVdfUkVXQVJEU19UWCxcbiAgICAgICAgYnVpbGRlcjogZmFjdG9yeS5nZXRTdGFraW5nV2l0aGRyYXdSZXdhcmRzQnVpbGRlcigpLFxuICAgICAgfSxcbiAgICBdO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGJ1aWxkIGEgc2lnbmVkIHR4IGZyb20gc2lnbmVkIHR4IGRhdGEnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgdHhCdWlsZGVyID0gZmFjdG9yeS5mcm9tKHRlc3RUeERhdGEuc2lnbmVkVHhCYXNlNjQpO1xuICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgc2hvdWxkLmVxdWFsKHR4LnR5cGUsIFRyYW5zYWN0aW9uVHlwZS5TZW5kKTtcbiAgICAvLyBTaG91bGQgcmVjcmVhdGUgdGhlIHNhbWUgcmF3IHR4IGRhdGEgd2hlbiByZS1idWlsZCBhbmQgdHVybmVkIHRvIGJyb2FkY2FzdCBmb3JtYXRcbiAgICBjb25zdCByYXdUeCA9IHR4LnRvQnJvYWRjYXN0Rm9ybWF0KCk7XG4gICAgc2hvdWxkLmVxdWFsKHJhd1R4LCB0ZXN0VHhEYXRhLnNpZ25lZFR4QmFzZTY0KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2dhc0J1ZGdldCB0ZXN0cycsIGFzeW5jICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIHN1Y2NlZWQgZm9yIHZhbGlkIGdhc0J1ZGdldCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGZvciAoY29uc3QgeyBidWlsZGVyIH0gb2YgZGF0YSkge1xuICAgICAgICBzaG91bGQuZG9lc05vdFRocm93KCgpID0+IGJ1aWxkZXIuZ2FzQnVkZ2V0KHRlc3RUeERhdGEuZ2FzQnVkZ2V0KSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHRocm93IGZvciBpbnZhbGlkIGdhc0J1ZGdldCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGludmFsaWRHYXNCdWRnZXQgPSAwO1xuICAgICAgZm9yIChjb25zdCB7IGJ1aWxkZXIgfSBvZiBkYXRhKSB7XG4gICAgICAgIHNob3VsZCgoKSA9PiBidWlsZGVyLmdhc0J1ZGdldCh7IGdhc0xpbWl0OiBpbnZhbGlkR2FzQnVkZ2V0IH0pKS50aHJvdygnSW52YWxpZCBnYXMgbGltaXQgJyArIGludmFsaWRHYXNCdWRnZXQpO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcblxuICBpdCgndmFsaWRhdGVBZGRyZXNzJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IGludmFsaWRBZGRyZXNzID0geyBhZGRyZXNzOiAncmFuZG9tU3RyaW5nJyB9O1xuICAgIGZvciAoY29uc3QgeyBidWlsZGVyIH0gb2YgZGF0YSkge1xuICAgICAgc2hvdWxkLmRvZXNOb3RUaHJvdygoKSA9PiBidWlsZGVyLnZhbGlkYXRlQWRkcmVzcyh7IGFkZHJlc3M6IHRlc3RUeERhdGEuc2VuZGVyIH0pKTtcbiAgICAgIHNob3VsZCgoKSA9PiBidWlsZGVyLnZhbGlkYXRlQWRkcmVzcyhpbnZhbGlkQWRkcmVzcykpLnRocm93RXJyb3IoXG4gICAgICAgICd0cmFuc2FjdGlvbkJ1aWxkZXI6IGFkZHJlc3MgaXNWYWxpZEFkZHJlc3MgY2hlY2sgZmFpbGVkOiAnICsgaW52YWxpZEFkZHJlc3MuYWRkcmVzc1xuICAgICAgKTtcbiAgICB9XG4gIH0pO1xufSk7XG4iXX0=

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


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