PHP WebShell

Текущая директория: /usr/lib/node_modules/bitgo/node_modules/@bitgo/utxo-lib/dist/src/bitgo

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

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.UtxoTransactionBuilder = void 0;
const transaction_builder_1 = require("../transaction_builder");
const UtxoTransaction_1 = require("./UtxoTransaction");
class UtxoTransactionBuilder extends transaction_builder_1.TransactionBuilder {
    constructor(network, tx) {
        super();
        this.network = network;
        this.__TX = this.createInitialTransaction(network, tx);
    }
    static newTransactionBuilder(network, tx) {
        return new UtxoTransactionBuilder(network, tx);
    }
    createInitialTransaction(network, tx) {
        return new UtxoTransaction_1.UtxoTransaction(network, tx);
    }
    static fromTransaction(tx, network, prevOutputs) {
        const txb = transaction_builder_1.TransactionBuilder.fromTransaction(tx, network, prevOutputs);
        const utxb = this.newTransactionBuilder(tx.network, tx);
        utxb.__INPUTS = txb.__INPUTS;
        if (prevOutputs) {
            const txbInputs = utxb.__INPUTS;
            if (prevOutputs.length !== txbInputs.length) {
                throw new Error(`prevOuts must match txbInput length`);
            }
            prevOutputs.forEach((o, i) => {
                txbInputs[i].value = o.value;
                txbInputs[i].prevOutScript = o.script;
            });
        }
        return utxb;
    }
    get tx() {
        return this.__TX;
    }
    build() {
        return super.build();
    }
    buildIncomplete() {
        return super.buildIncomplete();
    }
    sign(signParams, keyPair, redeemScript, hashType, witnessValue, witnessScript) {
        // Regular bitcoin p2sh-p2ms inputs do not include the input amount (value) in the signature and
        // thus do not require the parameter `value` to be set.
        // For bitcoincash and bitcoinsv p2sh-p2ms inputs, the value parameter *is* required however.
        // Since the `value` parameter is not passed to the legacy hashing method, we must store it
        // on the transaction input object.
        if (typeof signParams === 'number') {
            if (typeof witnessValue === 'number' || typeof witnessValue === 'bigint') {
                this.tx.ins[signParams].value = witnessValue;
            }
            return super.sign(signParams, keyPair, redeemScript, hashType, witnessValue, witnessScript);
        }
        if (signParams.witnessValue !== undefined) {
            this.tx.ins[signParams.vin].value = signParams.witnessValue;
        }
        // When calling the sign method via TxbSignArg, the `value` parameter is actually not permitted
        // to be set for p2sh-p2ms transactions.
        if (signParams.prevOutScriptType === 'p2sh-p2ms') {
            delete signParams.witnessValue;
        }
        return super.sign(signParams);
    }
}
exports.UtxoTransactionBuilder = UtxoTransactionBuilder;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXR4b1RyYW5zYWN0aW9uQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iaXRnby9VdHhvVHJhbnNhY3Rpb25CdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUlBLGdFQUFvRTtBQUNwRSx1REFBb0Q7QUFhcEQsTUFBYSxzQkFHWCxTQUFRLHdDQUEyQjtJQUNuQyxZQUFZLE9BQWdCLEVBQUUsRUFBNkI7UUFDekQsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN0QixJQUFZLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVTLE1BQU0sQ0FBQyxxQkFBcUIsQ0FDcEMsT0FBZ0IsRUFDaEIsRUFBNEI7UUFFNUIsT0FBTyxJQUFJLHNCQUFzQixDQUFVLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRVMsd0JBQXdCLENBQUMsT0FBZ0IsRUFBRSxFQUF5QjtRQUM1RSxPQUFPLElBQUksaUNBQWUsQ0FBVSxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELE1BQU0sQ0FBQyxlQUFlLENBQ3BCLEVBQTRCLEVBQzVCLE9BQWlCLEVBQ2pCLFdBQWlDO1FBRWpDLE1BQU0sR0FBRyxHQUFHLHdDQUFrQixDQUFDLGVBQWUsQ0FBVSxFQUFFLEVBQUUsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ2xGLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBVSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWhFLElBQVksQ0FBQyxRQUFRLEdBQUksR0FBVyxDQUFDLFFBQVEsQ0FBQztRQUUvQyxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ2hCLE1BQU0sU0FBUyxHQUFJLElBQVksQ0FBQyxRQUFRLENBQUM7WUFDekMsSUFBSSxXQUFXLENBQUMsTUFBTSxLQUFLLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDNUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO1lBQ3pELENBQUM7WUFDRCxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUMzQixTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7Z0JBQzdCLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUN4QyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFJLEVBQUU7UUFDSixPQUFRLElBQVksQ0FBQyxJQUFJLENBQUM7SUFDNUIsQ0FBQztJQUVELEtBQUs7UUFDSCxPQUFPLEtBQUssQ0FBQyxLQUFLLEVBQU8sQ0FBQztJQUM1QixDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sS0FBSyxDQUFDLGVBQWUsRUFBTyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUFJLENBQ0YsVUFBd0MsRUFDeEMsT0FBZ0IsRUFDaEIsWUFBcUIsRUFDckIsUUFBaUIsRUFDakIsWUFBc0IsRUFDdEIsYUFBc0I7UUFFdEIsZ0dBQWdHO1FBQ2hHLHVEQUF1RDtRQUN2RCw2RkFBNkY7UUFDN0YsMkZBQTJGO1FBQzNGLG1DQUFtQztRQUVuQyxJQUFJLE9BQU8sVUFBVSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ25DLElBQUksT0FBTyxZQUFZLEtBQUssUUFBUSxJQUFJLE9BQU8sWUFBWSxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUN4RSxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQVMsQ0FBQyxLQUFLLEdBQUcsWUFBWSxDQUFDO1lBQ3hELENBQUM7WUFFRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxhQUFhLENBQUMsQ0FBQztRQUM5RixDQUFDO1FBRUQsSUFBSSxVQUFVLENBQUMsWUFBWSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQVMsQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDLFlBQVksQ0FBQztRQUN2RSxDQUFDO1FBQ0QsK0ZBQStGO1FBQy9GLHdDQUF3QztRQUN4QyxJQUFJLFVBQVUsQ0FBQyxpQkFBaUIsS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUNqRCxPQUFPLFVBQVUsQ0FBQyxZQUFZLENBQUM7UUFDakMsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNoQyxDQUFDO0NBQ0Y7QUF4RkQsd0RBd0ZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHhPdXRwdXQsIFRyYW5zYWN0aW9uIH0gZnJvbSAnYml0Y29pbmpzLWxpYic7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbmltcG9ydCAqIGFzIGJpdGNvaW5qcyBmcm9tICdiaXRjb2luanMtbGliJztcbmltcG9ydCB7IE5ldHdvcmsgfSBmcm9tICcuLic7XG5pbXBvcnQgeyBTaWduZXIsIFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4uL3RyYW5zYWN0aW9uX2J1aWxkZXInO1xuaW1wb3J0IHsgVXR4b1RyYW5zYWN0aW9uIH0gZnJvbSAnLi9VdHhvVHJhbnNhY3Rpb24nO1xuXG5leHBvcnQgaW50ZXJmYWNlIFR4YlNpZ25Bcmc8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludCA9IG51bWJlcj4ge1xuICBwcmV2T3V0U2NyaXB0VHlwZTogc3RyaW5nO1xuICB2aW46IG51bWJlcjtcbiAga2V5UGFpcjogU2lnbmVyO1xuICByZWRlZW1TY3JpcHQ/OiBCdWZmZXI7XG4gIGhhc2hUeXBlPzogbnVtYmVyO1xuICB3aXRuZXNzVmFsdWU/OiBUTnVtYmVyO1xuICB3aXRuZXNzU2NyaXB0PzogQnVmZmVyO1xuICBjb250cm9sQmxvY2s/OiBCdWZmZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBVdHhvVHJhbnNhY3Rpb25CdWlsZGVyPFxuICBUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gbnVtYmVyLFxuICBUIGV4dGVuZHMgVXR4b1RyYW5zYWN0aW9uPFROdW1iZXI+ID0gVXR4b1RyYW5zYWN0aW9uPFROdW1iZXI+XG4+IGV4dGVuZHMgVHJhbnNhY3Rpb25CdWlsZGVyPFROdW1iZXI+IHtcbiAgY29uc3RydWN0b3IobmV0d29yazogTmV0d29yaywgdHg/OiBVdHhvVHJhbnNhY3Rpb248VE51bWJlcj4pIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMubmV0d29yayA9IG5ldHdvcms7XG4gICAgKHRoaXMgYXMgYW55KS5fX1RYID0gdGhpcy5jcmVhdGVJbml0aWFsVHJhbnNhY3Rpb24obmV0d29yaywgdHgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHN0YXRpYyBuZXdUcmFuc2FjdGlvbkJ1aWxkZXI8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4oXG4gICAgbmV0d29yazogTmV0d29yayxcbiAgICB0eDogVXR4b1RyYW5zYWN0aW9uPFROdW1iZXI+XG4gICk6IFV0eG9UcmFuc2FjdGlvbkJ1aWxkZXI8VE51bWJlcj4ge1xuICAgIHJldHVybiBuZXcgVXR4b1RyYW5zYWN0aW9uQnVpbGRlcjxUTnVtYmVyPihuZXR3b3JrLCB0eCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY3JlYXRlSW5pdGlhbFRyYW5zYWN0aW9uKG5ldHdvcms6IE5ldHdvcmssIHR4PzogVHJhbnNhY3Rpb248VE51bWJlcj4pOiBVdHhvVHJhbnNhY3Rpb248VE51bWJlcj4ge1xuICAgIHJldHVybiBuZXcgVXR4b1RyYW5zYWN0aW9uPFROdW1iZXI+KG5ldHdvcmssIHR4KTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVHJhbnNhY3Rpb248VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludCA9IG51bWJlcj4oXG4gICAgdHg6IFV0eG9UcmFuc2FjdGlvbjxUTnVtYmVyPixcbiAgICBuZXR3b3JrPzogTmV0d29yayxcbiAgICBwcmV2T3V0cHV0cz86IFR4T3V0cHV0PFROdW1iZXI+W11cbiAgKTogVXR4b1RyYW5zYWN0aW9uQnVpbGRlcjxUTnVtYmVyPiB7XG4gICAgY29uc3QgdHhiID0gVHJhbnNhY3Rpb25CdWlsZGVyLmZyb21UcmFuc2FjdGlvbjxUTnVtYmVyPih0eCwgbmV0d29yaywgcHJldk91dHB1dHMpO1xuICAgIGNvbnN0IHV0eGIgPSB0aGlzLm5ld1RyYW5zYWN0aW9uQnVpbGRlcjxUTnVtYmVyPih0eC5uZXR3b3JrLCB0eCk7XG5cbiAgICAodXR4YiBhcyBhbnkpLl9fSU5QVVRTID0gKHR4YiBhcyBhbnkpLl9fSU5QVVRTO1xuXG4gICAgaWYgKHByZXZPdXRwdXRzKSB7XG4gICAgICBjb25zdCB0eGJJbnB1dHMgPSAodXR4YiBhcyBhbnkpLl9fSU5QVVRTO1xuICAgICAgaWYgKHByZXZPdXRwdXRzLmxlbmd0aCAhPT0gdHhiSW5wdXRzLmxlbmd0aCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHByZXZPdXRzIG11c3QgbWF0Y2ggdHhiSW5wdXQgbGVuZ3RoYCk7XG4gICAgICB9XG4gICAgICBwcmV2T3V0cHV0cy5mb3JFYWNoKChvLCBpKSA9PiB7XG4gICAgICAgIHR4YklucHV0c1tpXS52YWx1ZSA9IG8udmFsdWU7XG4gICAgICAgIHR4YklucHV0c1tpXS5wcmV2T3V0U2NyaXB0ID0gby5zY3JpcHQ7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHV0eGI7XG4gIH1cblxuICBnZXQgdHgoKTogVCB7XG4gICAgcmV0dXJuICh0aGlzIGFzIGFueSkuX19UWDtcbiAgfVxuXG4gIGJ1aWxkKCk6IFQge1xuICAgIHJldHVybiBzdXBlci5idWlsZCgpIGFzIFQ7XG4gIH1cblxuICBidWlsZEluY29tcGxldGUoKTogVCB7XG4gICAgcmV0dXJuIHN1cGVyLmJ1aWxkSW5jb21wbGV0ZSgpIGFzIFQ7XG4gIH1cblxuICBzaWduKFxuICAgIHNpZ25QYXJhbXM6IG51bWJlciB8IFR4YlNpZ25Bcmc8VE51bWJlcj4sXG4gICAga2V5UGFpcj86IFNpZ25lcixcbiAgICByZWRlZW1TY3JpcHQ/OiBCdWZmZXIsXG4gICAgaGFzaFR5cGU/OiBudW1iZXIsXG4gICAgd2l0bmVzc1ZhbHVlPzogVE51bWJlcixcbiAgICB3aXRuZXNzU2NyaXB0PzogQnVmZmVyXG4gICk6IHZvaWQge1xuICAgIC8vIFJlZ3VsYXIgYml0Y29pbiBwMnNoLXAybXMgaW5wdXRzIGRvIG5vdCBpbmNsdWRlIHRoZSBpbnB1dCBhbW91bnQgKHZhbHVlKSBpbiB0aGUgc2lnbmF0dXJlIGFuZFxuICAgIC8vIHRodXMgZG8gbm90IHJlcXVpcmUgdGhlIHBhcmFtZXRlciBgdmFsdWVgIHRvIGJlIHNldC5cbiAgICAvLyBGb3IgYml0Y29pbmNhc2ggYW5kIGJpdGNvaW5zdiBwMnNoLXAybXMgaW5wdXRzLCB0aGUgdmFsdWUgcGFyYW1ldGVyICppcyogcmVxdWlyZWQgaG93ZXZlci5cbiAgICAvLyBTaW5jZSB0aGUgYHZhbHVlYCBwYXJhbWV0ZXIgaXMgbm90IHBhc3NlZCB0byB0aGUgbGVnYWN5IGhhc2hpbmcgbWV0aG9kLCB3ZSBtdXN0IHN0b3JlIGl0XG4gICAgLy8gb24gdGhlIHRyYW5zYWN0aW9uIGlucHV0IG9iamVjdC5cblxuICAgIGlmICh0eXBlb2Ygc2lnblBhcmFtcyA9PT0gJ251bWJlcicpIHtcbiAgICAgIGlmICh0eXBlb2Ygd2l0bmVzc1ZhbHVlID09PSAnbnVtYmVyJyB8fCB0eXBlb2Ygd2l0bmVzc1ZhbHVlID09PSAnYmlnaW50Jykge1xuICAgICAgICAodGhpcy50eC5pbnNbc2lnblBhcmFtc10gYXMgYW55KS52YWx1ZSA9IHdpdG5lc3NWYWx1ZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHN1cGVyLnNpZ24oc2lnblBhcmFtcywga2V5UGFpciwgcmVkZWVtU2NyaXB0LCBoYXNoVHlwZSwgd2l0bmVzc1ZhbHVlLCB3aXRuZXNzU2NyaXB0KTtcbiAgICB9XG5cbiAgICBpZiAoc2lnblBhcmFtcy53aXRuZXNzVmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgKHRoaXMudHguaW5zW3NpZ25QYXJhbXMudmluXSBhcyBhbnkpLnZhbHVlID0gc2lnblBhcmFtcy53aXRuZXNzVmFsdWU7XG4gICAgfVxuICAgIC8vIFdoZW4gY2FsbGluZyB0aGUgc2lnbiBtZXRob2QgdmlhIFR4YlNpZ25BcmcsIHRoZSBgdmFsdWVgIHBhcmFtZXRlciBpcyBhY3R1YWxseSBub3QgcGVybWl0dGVkXG4gICAgLy8gdG8gYmUgc2V0IGZvciBwMnNoLXAybXMgdHJhbnNhY3Rpb25zLlxuICAgIGlmIChzaWduUGFyYW1zLnByZXZPdXRTY3JpcHRUeXBlID09PSAncDJzaC1wMm1zJykge1xuICAgICAgZGVsZXRlIHNpZ25QYXJhbXMud2l0bmVzc1ZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gc3VwZXIuc2lnbihzaWduUGFyYW1zKTtcbiAgfVxufVxuIl19

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


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