PHP WebShell
Текущая директория: /opt/BitGoJS/modules/utxo-lib/dist/test/bitgo/psbt
Просмотр файла: ZcashPsbt.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const assert = require("assert");
const src_1 = require("../../../src");
const utxolib = require("../../../src");
const bitgo_1 = require("../../../src/bitgo");
const testutil_1 = require("../../../src/testutil");
const mock_1 = require("../../../src/testutil/mock");
const network = src_1.networks.zcash;
const rootWalletKeys = (0, testutil_1.getDefaultWalletKeys)();
describe('Zcash PSBT', function () {
let psbt;
before(async function () {
const unspents = (0, mock_1.mockUnspents)(rootWalletKeys, ['p2sh'], BigInt('10000000000000000'), network);
psbt = await utxolib.bitgo.ZcashPsbt.createPsbt({ network });
unspents.forEach((unspent) => {
utxolib.bitgo.addWalletUnspentToPsbt(psbt, unspent, rootWalletKeys, 'user', 'bitgo');
});
(0, bitgo_1.addWalletOutputToPsbt)(psbt, rootWalletKeys, (0, bitgo_1.getInternalChainCode)('p2sh'), 0, BigInt('1000000000000000'));
});
describe('txHex should serialize psbt', function () {
function testToHexForVersion(version) {
it(`version ${version} should serialize properly`, async function () {
psbt.setDefaultsForVersion(network, version);
assert.deepStrictEqual(psbt.toHex(), psbt.toBuffer().toString('hex'));
});
}
[400, 450, 455, 500, 550].forEach((version) => testToHexForVersion(version));
function testFromHexForVersion(version) {
it(`version ${version} should deserialize from toHex`, async function () {
psbt.setDefaultsForVersion(network, version);
const psbtHex = psbt.toHex();
const psbt2Hex = bitgo_1.ZcashPsbt.fromHex(psbtHex, { network }).toHex();
assert.deepStrictEqual(psbt2Hex, psbtHex);
});
}
[400, 450, 455, 500, 550].forEach((version) => testFromHexForVersion(version));
});
describe('should be able to sign the transaction', function () {
it('can sign the inputs', async function () {
psbt.signAllInputsHD(rootWalletKeys.user);
assert(!psbt.__CACHE.__UNSAFE_SIGN_NONSEGWIT);
psbt.signAllInputsHD(rootWalletKeys.bitgo);
assert(!psbt.__CACHE.__UNSAFE_SIGN_NONSEGWIT);
});
it('can validate the signatures on the unspents', async function () {
psbt.validateSignaturesOfAllInputs();
assert(!psbt.__CACHE.__UNSAFE_SIGN_NONSEGWIT);
});
it('can finalize and extract the transaction', async function () {
psbt.finalizeAllInputs();
psbt.extractTransaction(true);
});
});
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiWmNhc2hQc2J0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGVzdC9iaXRnby9wc2J0L1pjYXNoUHNidC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLGlDQUFpQztBQUVqQyxzQ0FBd0M7QUFDeEMsd0NBQXdDO0FBQ3hDLDhDQUEyRztBQUMzRyxvREFBNkQ7QUFFN0QscURBQTBEO0FBRTFELE1BQU0sT0FBTyxHQUFHLGNBQVEsQ0FBQyxLQUFLLENBQUM7QUFDL0IsTUFBTSxjQUFjLEdBQUcsSUFBQSwrQkFBb0IsR0FBRSxDQUFDO0FBRTlDLFFBQVEsQ0FBQyxZQUFZLEVBQUU7SUFDckIsSUFBSSxJQUE2QixDQUFDO0lBQ2xDLE1BQU0sQ0FBQyxLQUFLO1FBQ1YsTUFBTSxRQUFRLEdBQUcsSUFBQSxtQkFBWSxFQUFDLGNBQWMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzlGLElBQUksR0FBRyxNQUFNLE9BQU8sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFFN0QsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQzNCLE9BQU8sQ0FBQyxLQUFLLENBQUMsc0JBQXNCLENBQUMsSUFBSSxFQUFFLE9BQWdDLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNoSCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUEsNkJBQXFCLEVBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRSxJQUFBLDRCQUFvQixFQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO0lBQzNHLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLDZCQUE2QixFQUFFO1FBQ3RDLFNBQVMsbUJBQW1CLENBQUMsT0FBZTtZQUMxQyxFQUFFLENBQUMsV0FBVyxPQUFPLDRCQUE0QixFQUFFLEtBQUs7Z0JBQ3RELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQzdDLE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUN4RSxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFFN0UsU0FBUyxxQkFBcUIsQ0FBQyxPQUFlO1lBQzVDLEVBQUUsQ0FBQyxXQUFXLE9BQU8sZ0NBQWdDLEVBQUUsS0FBSztnQkFDMUQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDN0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUM3QixNQUFNLFFBQVEsR0FBRyxpQkFBUyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNqRSxNQUFNLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUM1QyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDakYsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsd0NBQXdDLEVBQUU7UUFDakQsRUFBRSxDQUFDLHFCQUFxQixFQUFFLEtBQUs7WUFDN0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDMUMsTUFBTSxDQUFDLENBQUUsSUFBWSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1lBQ3ZELElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzNDLE1BQU0sQ0FBQyxDQUFFLElBQVksQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUN6RCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyw2Q0FBNkMsRUFBRSxLQUFLO1lBQ3JELElBQUksQ0FBQyw2QkFBNkIsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sQ0FBQyxDQUFFLElBQVksQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUN6RCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQywwQ0FBMEMsRUFBRSxLQUFLO1lBQ2xELElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuaW1wb3J0IHsgbmV0d29ya3MgfSBmcm9tICcuLi8uLi8uLi9zcmMnO1xuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICcuLi8uLi8uLi9zcmMnO1xuaW1wb3J0IHsgYWRkV2FsbGV0T3V0cHV0VG9Qc2J0LCBnZXRJbnRlcm5hbENoYWluQ29kZSwgV2FsbGV0VW5zcGVudCwgWmNhc2hQc2J0IH0gZnJvbSAnLi4vLi4vLi4vc3JjL2JpdGdvJztcbmltcG9ydCB7IGdldERlZmF1bHRXYWxsZXRLZXlzIH0gZnJvbSAnLi4vLi4vLi4vc3JjL3Rlc3R1dGlsJztcblxuaW1wb3J0IHsgbW9ja1Vuc3BlbnRzIH0gZnJvbSAnLi4vLi4vLi4vc3JjL3Rlc3R1dGlsL21vY2snO1xuXG5jb25zdCBuZXR3b3JrID0gbmV0d29ya3MuemNhc2g7XG5jb25zdCByb290V2FsbGV0S2V5cyA9IGdldERlZmF1bHRXYWxsZXRLZXlzKCk7XG5cbmRlc2NyaWJlKCdaY2FzaCBQU0JUJywgZnVuY3Rpb24gKCkge1xuICBsZXQgcHNidDogdXR4b2xpYi5iaXRnby5aY2FzaFBzYnQ7XG4gIGJlZm9yZShhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgdW5zcGVudHMgPSBtb2NrVW5zcGVudHMocm9vdFdhbGxldEtleXMsIFsncDJzaCddLCBCaWdJbnQoJzEwMDAwMDAwMDAwMDAwMDAwJyksIG5ldHdvcmspO1xuICAgIHBzYnQgPSBhd2FpdCB1dHhvbGliLmJpdGdvLlpjYXNoUHNidC5jcmVhdGVQc2J0KHsgbmV0d29yayB9KTtcblxuICAgIHVuc3BlbnRzLmZvckVhY2goKHVuc3BlbnQpID0+IHtcbiAgICAgIHV0eG9saWIuYml0Z28uYWRkV2FsbGV0VW5zcGVudFRvUHNidChwc2J0LCB1bnNwZW50IGFzIFdhbGxldFVuc3BlbnQ8YmlnaW50Piwgcm9vdFdhbGxldEtleXMsICd1c2VyJywgJ2JpdGdvJyk7XG4gICAgfSk7XG4gICAgYWRkV2FsbGV0T3V0cHV0VG9Qc2J0KHBzYnQsIHJvb3RXYWxsZXRLZXlzLCBnZXRJbnRlcm5hbENoYWluQ29kZSgncDJzaCcpLCAwLCBCaWdJbnQoJzEwMDAwMDAwMDAwMDAwMDAnKSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCd0eEhleCBzaG91bGQgc2VyaWFsaXplIHBzYnQnLCBmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gdGVzdFRvSGV4Rm9yVmVyc2lvbih2ZXJzaW9uOiBudW1iZXIpIHtcbiAgICAgIGl0KGB2ZXJzaW9uICR7dmVyc2lvbn0gc2hvdWxkIHNlcmlhbGl6ZSBwcm9wZXJseWAsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcHNidC5zZXREZWZhdWx0c0ZvclZlcnNpb24obmV0d29yaywgdmVyc2lvbik7XG4gICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocHNidC50b0hleCgpLCBwc2J0LnRvQnVmZmVyKCkudG9TdHJpbmcoJ2hleCcpKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBbNDAwLCA0NTAsIDQ1NSwgNTAwLCA1NTBdLmZvckVhY2goKHZlcnNpb24pID0+IHRlc3RUb0hleEZvclZlcnNpb24odmVyc2lvbikpO1xuXG4gICAgZnVuY3Rpb24gdGVzdEZyb21IZXhGb3JWZXJzaW9uKHZlcnNpb246IG51bWJlcikge1xuICAgICAgaXQoYHZlcnNpb24gJHt2ZXJzaW9ufSBzaG91bGQgZGVzZXJpYWxpemUgZnJvbSB0b0hleGAsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcHNidC5zZXREZWZhdWx0c0ZvclZlcnNpb24obmV0d29yaywgdmVyc2lvbik7XG4gICAgICAgIGNvbnN0IHBzYnRIZXggPSBwc2J0LnRvSGV4KCk7XG4gICAgICAgIGNvbnN0IHBzYnQySGV4ID0gWmNhc2hQc2J0LmZyb21IZXgocHNidEhleCwgeyBuZXR3b3JrIH0pLnRvSGV4KCk7XG4gICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocHNidDJIZXgsIHBzYnRIZXgpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIFs0MDAsIDQ1MCwgNDU1LCA1MDAsIDU1MF0uZm9yRWFjaCgodmVyc2lvbikgPT4gdGVzdEZyb21IZXhGb3JWZXJzaW9uKHZlcnNpb24pKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3Nob3VsZCBiZSBhYmxlIHRvIHNpZ24gdGhlIHRyYW5zYWN0aW9uJywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdjYW4gc2lnbiB0aGUgaW5wdXRzJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgcHNidC5zaWduQWxsSW5wdXRzSEQocm9vdFdhbGxldEtleXMudXNlcik7XG4gICAgICBhc3NlcnQoIShwc2J0IGFzIGFueSkuX19DQUNIRS5fX1VOU0FGRV9TSUdOX05PTlNFR1dJVCk7XG4gICAgICBwc2J0LnNpZ25BbGxJbnB1dHNIRChyb290V2FsbGV0S2V5cy5iaXRnbyk7XG4gICAgICBhc3NlcnQoIShwc2J0IGFzIGFueSkuX19DQUNIRS5fX1VOU0FGRV9TSUdOX05PTlNFR1dJVCk7XG4gICAgfSk7XG5cbiAgICBpdCgnY2FuIHZhbGlkYXRlIHRoZSBzaWduYXR1cmVzIG9uIHRoZSB1bnNwZW50cycsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIHBzYnQudmFsaWRhdGVTaWduYXR1cmVzT2ZBbGxJbnB1dHMoKTtcbiAgICAgIGFzc2VydCghKHBzYnQgYXMgYW55KS5fX0NBQ0hFLl9fVU5TQUZFX1NJR05fTk9OU0VHV0lUKTtcbiAgICB9KTtcblxuICAgIGl0KCdjYW4gZmluYWxpemUgYW5kIGV4dHJhY3QgdGhlIHRyYW5zYWN0aW9uJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgcHNidC5maW5hbGl6ZUFsbElucHV0cygpO1xuICAgICAgcHNidC5leHRyYWN0VHJhbnNhY3Rpb24odHJ1ZSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=Выполнить команду
Для локальной разработки. Не используйте в интернете!