PHP WebShell

Текущая директория: /opt/BitGoJS/modules/utxo-lib/dist/test/bitgo

Просмотр файла: nonStandardHalfSigned.js

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const path = require("path");
const fs = require("fs-extra");
const assert = require("assert");
const src_1 = require("../../src");
const bitgo_1 = require("../../src/bitgo");
const outputScripts_1 = require("../../src/bitgo/outputScripts");
const testutil_1 = require("../../src/testutil");
const transaction_util_1 = require("../transaction_util");
const fixtures_1 = require("../integration_local_rpc/generate/fixtures");
const nonStandardHalfSigned_1 = require("../../src/bitgo/nonStandardHalfSigned");
async function getFixture(network, name) {
    const p = path.join(__dirname, 'fixtures', 'nonStandardHalfSigned', (0, src_1.getNetworkName)(network), name);
    return JSON.parse(await fs.readFile(p, 'utf-8'));
}
function runTest(scriptType, amountType) {
    const network = src_1.networks.bitcoin;
    describe(`createTransactionFromNonStandardHalfSigned ${scriptType} ${amountType}`, function () {
        if (scriptType === 'p2tr' || scriptType === 'p2trMusig2') {
            return; // TODO: enable p2tr tests when signing is supported
        }
        fixtures_1.fixtureKeys.forEach((signKey, pubkeyIndex) => {
            it(`parses non-standard half signed transaction pubkeyIndex=${pubkeyIndex}`, async function () {
                const standardHalfSigned = (0, transaction_util_1.getHalfSignedTransaction2Of3)(fixtures_1.fixtureKeys, signKey, (0, testutil_1.getDefaultCosigner)(fixtures_1.fixtureKeys, signKey), scriptType, network, { amountType });
                // Fixtures can only be constructed using utxolib < 1.10
                const nonStandardHalfSigned = (0, bitgo_1.createTransactionFromBuffer)(Buffer.from(await getFixture(network, `nonStandardHalfSigned-${scriptType}-${pubkeyIndex}.json`), 'hex'), network, { amountType });
                // The nonstandard transaction input is missing two `OP_0`
                assert.strictEqual(nonStandardHalfSigned.toBuffer().length, standardHalfSigned.toBuffer().length - 2);
                nonStandardHalfSigned.ins.forEach((input) => (0, nonStandardHalfSigned_1.padInputScript)(input, pubkeyIndex));
                assert.strictEqual(nonStandardHalfSigned.toBuffer().length, standardHalfSigned.toBuffer().length);
                assert.strictEqual(nonStandardHalfSigned.toBuffer().toString('hex'), standardHalfSigned.toBuffer().toString('hex'));
            });
        });
    });
}
describe('Non-Standard Half-Signed Transactions', function () {
    outputScripts_1.scriptTypes2Of3.forEach((scriptType) => runTest(scriptType, 'number'));
    outputScripts_1.scriptTypes2Of3.forEach((scriptType) => runTest(scriptType, 'bigint'));
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9uU3RhbmRhcmRIYWxmU2lnbmVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdGVzdC9iaXRnby9ub25TdGFuZGFyZEhhbGZTaWduZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw2QkFBNkI7QUFDN0IsK0JBQStCO0FBQy9CLGlDQUFpQztBQUVqQyxtQ0FBOEQ7QUFDOUQsMkNBQThEO0FBQzlELGlFQUFnRjtBQUNoRixpREFBd0Q7QUFFeEQsMERBQW1FO0FBQ25FLHlFQUF5RTtBQUN6RSxpRkFBdUU7QUFFdkUsS0FBSyxVQUFVLFVBQVUsQ0FBSSxPQUFnQixFQUFFLElBQVk7SUFDekQsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLHVCQUF1QixFQUFFLElBQUEsb0JBQWMsRUFBQyxPQUFPLENBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM3RyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQ25ELENBQUM7QUFFRCxTQUFTLE9BQU8sQ0FBa0MsVUFBMEIsRUFBRSxVQUErQjtJQUMzRyxNQUFNLE9BQU8sR0FBRyxjQUFRLENBQUMsT0FBTyxDQUFDO0lBRWpDLFFBQVEsQ0FBQyw4Q0FBOEMsVUFBVSxJQUFJLFVBQVUsRUFBRSxFQUFFO1FBQ2pGLElBQUksVUFBVSxLQUFLLE1BQU0sSUFBSSxVQUFVLEtBQUssWUFBWSxFQUFFLENBQUM7WUFDekQsT0FBTyxDQUFDLG9EQUFvRDtRQUM5RCxDQUFDO1FBQ0Qsc0JBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLEVBQUU7WUFDM0MsRUFBRSxDQUFDLDJEQUEyRCxXQUFXLEVBQUUsRUFBRSxLQUFLO2dCQUNoRixNQUFNLGtCQUFrQixHQUFHLElBQUEsK0NBQTRCLEVBQ3JELHNCQUFXLEVBQ1gsT0FBTyxFQUNQLElBQUEsNkJBQWtCLEVBQUMsc0JBQVcsRUFBRSxPQUFPLENBQUMsRUFDeEMsVUFBVSxFQUNWLE9BQU8sRUFDUCxFQUFFLFVBQVUsRUFBRSxDQUNmLENBQUM7Z0JBRUYsd0RBQXdEO2dCQUN4RCxNQUFNLHFCQUFxQixHQUFHLElBQUEsbUNBQTJCLEVBQ3ZELE1BQU0sQ0FBQyxJQUFJLENBQ1QsTUFBTSxVQUFVLENBQVMsT0FBTyxFQUFFLHlCQUF5QixVQUFVLElBQUksV0FBVyxPQUFPLENBQUMsRUFDNUYsS0FBSyxDQUNOLEVBQ0QsT0FBTyxFQUNQLEVBQUUsVUFBVSxFQUFFLENBQ2YsQ0FBQztnQkFFRiwwREFBMEQ7Z0JBQzFELE1BQU0sQ0FBQyxXQUFXLENBQUMscUJBQXFCLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxFQUFFLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFFdEcscUJBQXFCLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBQSxzQ0FBYyxFQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO2dCQUVqRixNQUFNLENBQUMsV0FBVyxDQUFDLHFCQUFxQixDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sRUFBRSxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDbEcsTUFBTSxDQUFDLFdBQVcsQ0FDaEIscUJBQXFCLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUNoRCxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQzlDLENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsUUFBUSxDQUFDLHVDQUF1QyxFQUFFO0lBQ2hELCtCQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQVMsVUFBNEIsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ2pHLCtCQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQVMsVUFBNEIsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO0FBQ25HLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCAqIGFzIGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5pbXBvcnQgeyBuZXR3b3JrcywgTmV0d29yaywgZ2V0TmV0d29ya05hbWUgfSBmcm9tICcuLi8uLi9zcmMnO1xuaW1wb3J0IHsgY3JlYXRlVHJhbnNhY3Rpb25Gcm9tQnVmZmVyIH0gZnJvbSAnLi4vLi4vc3JjL2JpdGdvJztcbmltcG9ydCB7IFNjcmlwdFR5cGUyT2YzLCBzY3JpcHRUeXBlczJPZjMgfSBmcm9tICcuLi8uLi9zcmMvYml0Z28vb3V0cHV0U2NyaXB0cyc7XG5pbXBvcnQgeyBnZXREZWZhdWx0Q29zaWduZXIgfSBmcm9tICcuLi8uLi9zcmMvdGVzdHV0aWwnO1xuXG5pbXBvcnQgeyBnZXRIYWxmU2lnbmVkVHJhbnNhY3Rpb24yT2YzIH0gZnJvbSAnLi4vdHJhbnNhY3Rpb25fdXRpbCc7XG5pbXBvcnQgeyBmaXh0dXJlS2V5cyB9IGZyb20gJy4uL2ludGVncmF0aW9uX2xvY2FsX3JwYy9nZW5lcmF0ZS9maXh0dXJlcyc7XG5pbXBvcnQgeyBwYWRJbnB1dFNjcmlwdCB9IGZyb20gJy4uLy4uL3NyYy9iaXRnby9ub25TdGFuZGFyZEhhbGZTaWduZWQnO1xuXG5hc3luYyBmdW5jdGlvbiBnZXRGaXh0dXJlPFQ+KG5ldHdvcms6IE5ldHdvcmssIG5hbWU6IHN0cmluZyk6IFByb21pc2U8VD4ge1xuICBjb25zdCBwID0gcGF0aC5qb2luKF9fZGlybmFtZSwgJ2ZpeHR1cmVzJywgJ25vblN0YW5kYXJkSGFsZlNpZ25lZCcsIGdldE5ldHdvcmtOYW1lKG5ldHdvcmspIGFzIHN0cmluZywgbmFtZSk7XG4gIHJldHVybiBKU09OLnBhcnNlKGF3YWl0IGZzLnJlYWRGaWxlKHAsICd1dGYtOCcpKTtcbn1cblxuZnVuY3Rpb24gcnVuVGVzdDxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50PihzY3JpcHRUeXBlOiBTY3JpcHRUeXBlMk9mMywgYW1vdW50VHlwZTogJ251bWJlcicgfCAnYmlnaW50Jykge1xuICBjb25zdCBuZXR3b3JrID0gbmV0d29ya3MuYml0Y29pbjtcblxuICBkZXNjcmliZShgY3JlYXRlVHJhbnNhY3Rpb25Gcm9tTm9uU3RhbmRhcmRIYWxmU2lnbmVkICR7c2NyaXB0VHlwZX0gJHthbW91bnRUeXBlfWAsIGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoc2NyaXB0VHlwZSA9PT0gJ3AydHInIHx8IHNjcmlwdFR5cGUgPT09ICdwMnRyTXVzaWcyJykge1xuICAgICAgcmV0dXJuOyAvLyBUT0RPOiBlbmFibGUgcDJ0ciB0ZXN0cyB3aGVuIHNpZ25pbmcgaXMgc3VwcG9ydGVkXG4gICAgfVxuICAgIGZpeHR1cmVLZXlzLmZvckVhY2goKHNpZ25LZXksIHB1YmtleUluZGV4KSA9PiB7XG4gICAgICBpdChgcGFyc2VzIG5vbi1zdGFuZGFyZCBoYWxmIHNpZ25lZCB0cmFuc2FjdGlvbiBwdWJrZXlJbmRleD0ke3B1YmtleUluZGV4fWAsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY29uc3Qgc3RhbmRhcmRIYWxmU2lnbmVkID0gZ2V0SGFsZlNpZ25lZFRyYW5zYWN0aW9uMk9mMzxUTnVtYmVyPihcbiAgICAgICAgICBmaXh0dXJlS2V5cyxcbiAgICAgICAgICBzaWduS2V5LFxuICAgICAgICAgIGdldERlZmF1bHRDb3NpZ25lcihmaXh0dXJlS2V5cywgc2lnbktleSksXG4gICAgICAgICAgc2NyaXB0VHlwZSxcbiAgICAgICAgICBuZXR3b3JrLFxuICAgICAgICAgIHsgYW1vdW50VHlwZSB9XG4gICAgICAgICk7XG5cbiAgICAgICAgLy8gRml4dHVyZXMgY2FuIG9ubHkgYmUgY29uc3RydWN0ZWQgdXNpbmcgdXR4b2xpYiA8IDEuMTBcbiAgICAgICAgY29uc3Qgbm9uU3RhbmRhcmRIYWxmU2lnbmVkID0gY3JlYXRlVHJhbnNhY3Rpb25Gcm9tQnVmZmVyPFROdW1iZXI+KFxuICAgICAgICAgIEJ1ZmZlci5mcm9tKFxuICAgICAgICAgICAgYXdhaXQgZ2V0Rml4dHVyZTxzdHJpbmc+KG5ldHdvcmssIGBub25TdGFuZGFyZEhhbGZTaWduZWQtJHtzY3JpcHRUeXBlfS0ke3B1YmtleUluZGV4fS5qc29uYCksXG4gICAgICAgICAgICAnaGV4J1xuICAgICAgICAgICksXG4gICAgICAgICAgbmV0d29yayxcbiAgICAgICAgICB7IGFtb3VudFR5cGUgfVxuICAgICAgICApO1xuXG4gICAgICAgIC8vIFRoZSBub25zdGFuZGFyZCB0cmFuc2FjdGlvbiBpbnB1dCBpcyBtaXNzaW5nIHR3byBgT1BfMGBcbiAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5vblN0YW5kYXJkSGFsZlNpZ25lZC50b0J1ZmZlcigpLmxlbmd0aCwgc3RhbmRhcmRIYWxmU2lnbmVkLnRvQnVmZmVyKCkubGVuZ3RoIC0gMik7XG5cbiAgICAgICAgbm9uU3RhbmRhcmRIYWxmU2lnbmVkLmlucy5mb3JFYWNoKChpbnB1dCkgPT4gcGFkSW5wdXRTY3JpcHQoaW5wdXQsIHB1YmtleUluZGV4KSk7XG5cbiAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5vblN0YW5kYXJkSGFsZlNpZ25lZC50b0J1ZmZlcigpLmxlbmd0aCwgc3RhbmRhcmRIYWxmU2lnbmVkLnRvQnVmZmVyKCkubGVuZ3RoKTtcbiAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKFxuICAgICAgICAgIG5vblN0YW5kYXJkSGFsZlNpZ25lZC50b0J1ZmZlcigpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgICAgICBzdGFuZGFyZEhhbGZTaWduZWQudG9CdWZmZXIoKS50b1N0cmluZygnaGV4JylcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcbn1cblxuZGVzY3JpYmUoJ05vbi1TdGFuZGFyZCBIYWxmLVNpZ25lZCBUcmFuc2FjdGlvbnMnLCBmdW5jdGlvbiAoKSB7XG4gIHNjcmlwdFR5cGVzMk9mMy5mb3JFYWNoKChzY3JpcHRUeXBlKSA9PiBydW5UZXN0PG51bWJlcj4oc2NyaXB0VHlwZSBhcyBTY3JpcHRUeXBlMk9mMywgJ251bWJlcicpKTtcbiAgc2NyaXB0VHlwZXMyT2YzLmZvckVhY2goKHNjcmlwdFR5cGUpID0+IHJ1blRlc3Q8YmlnaW50PihzY3JpcHRUeXBlIGFzIFNjcmlwdFR5cGUyT2YzLCAnYmlnaW50JykpO1xufSk7XG4iXX0=

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


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