PHP WebShell

Текущая директория: /opt/BitGoJS/modules/blockapis/dist/src

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

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.fetchInputs = fetchInputs;
exports.fetchTransactionSpends = fetchTransactionSpends;
const utxolib = require("@bitgo/utxo-lib");
const BaseHttpClient_1 = require("./BaseHttpClient");
/**
 * Helper to efficiently fetch output data.
 * Typical we can query output data for all outputs of a transaction, so we first fetch all
 * the output list via `f` and then pick the output data from the result.
 * @param outpoints
 * @param f - maps txid to a list of outputs with type TOut
 * @return list of TOut corresponding to outputs
 */
async function mapInputs(outpoints, f) {
    const txids = [...new Set(outpoints.map((i) => i.txid))];
    const txMap = new Map(await (0, BaseHttpClient_1.mapSeries)(txids, async (txid) => [txid, await f(txid)]));
    return outpoints.map((i) => {
        const arr = txMap.get(i.txid);
        if (arr) {
            if (i.vout in arr) {
                return arr[i.vout];
            }
            throw new Error(`could not find output ${i.vout}`);
        }
        throw new Error(`could not find tx ${i.txid}`);
    });
}
/**
 * Fetch transaction inputs from transaction input list
 * @param ins
 * @param api
 * @param network
 */
async function fetchInputs(ins, api, network) {
    return mapInputs(ins.map((i) => {
        if ('txid' in i) {
            return i;
        }
        return utxolib.bitgo.getOutputIdForInput(i);
    }), async (txid) => utxolib.bitgo.createTransactionFromHex(await api.getTransactionHex(txid), network).outs);
}
/**
 * Fetch transaction spend status outpoints.
 */
async function fetchTransactionSpends(outpoints, api) {
    return mapInputs(outpoints, async (txid) => await api.getTransactionSpends(txid));
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXR4b0FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9VdHhvQXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBNEVBLGtDQWNDO0FBS0Qsd0RBS0M7QUFwR0QsMkNBQTJDO0FBQzNDLHFEQUE2QztBQTJDN0M7Ozs7Ozs7R0FPRztBQUNILEtBQUssVUFBVSxTQUFTLENBQ3RCLFNBQXFDLEVBQ3JDLENBQW9DO0lBRXBDLE1BQU0sS0FBSyxHQUFHLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pELE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sSUFBQSwwQkFBUyxFQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyRixPQUFPLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUN6QixNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QixJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ1IsSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDO2dCQUNsQixPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDckIsQ0FBQztZQUNELE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3JELENBQUM7UUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNJLEtBQUssVUFBVSxXQUFXLENBQy9CLEdBQW1ELEVBQ25ELEdBQVksRUFDWixPQUF3QjtJQUV4QixPQUFPLFNBQVMsQ0FDZCxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBNkMsRUFBRSxFQUFFO1FBQ3hELElBQUksTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ2hCLE9BQU8sQ0FBQyxDQUFDO1FBQ1gsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5QyxDQUFDLENBQUMsRUFDRixLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLHdCQUF3QixDQUFDLE1BQU0sR0FBRyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDeEcsQ0FBQztBQUNKLENBQUM7QUFFRDs7R0FFRztBQUNJLEtBQUssVUFBVSxzQkFBc0IsQ0FDMUMsU0FBcUMsRUFDckMsR0FBWTtJQUVaLE9BQU8sU0FBUyxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ3BGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby91dHhvLWxpYic7XG5pbXBvcnQgeyBtYXBTZXJpZXMgfSBmcm9tICcuL0Jhc2VIdHRwQ2xpZW50JztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQXBpIH0gZnJvbSAnLi9UcmFuc2FjdGlvbkFwaSc7XG5cbmV4cG9ydCB0eXBlIE91dHB1dFNwZW5kID1cbiAgfCB7XG4gICAgICB0eGlkOiBzdHJpbmc7XG4gICAgICB2aW46IG51bWJlcjtcbiAgICB9XG4gIHwgeyB0eGlkOiB1bmRlZmluZWQ7IHZpbjogdW5kZWZpbmVkIH07XG5cbmV4cG9ydCB0eXBlIFRyYW5zYWN0aW9uSU8gPSB7XG4gIGlucHV0czogeyBhZGRyZXNzOiBzdHJpbmcgfVtdO1xuICBvdXRwdXRzOiB7IGFkZHJlc3M6IHN0cmluZyB9W107XG59O1xuXG4vKipcbiAqIE1ldGhvZHMgc3BlY2lmaWMgdG8gVVRYTy1iYXNlZCBibG9ja2NoYWluc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFV0eG9BcGkgZXh0ZW5kcyBUcmFuc2FjdGlvbkFwaSB7XG4gIC8qKlxuICAgKiBAcGFyYW0gdHhpZFxuICAgKiBAcmV0dXJuIHRyYW5zYWN0aW9uIGlucHV0c1xuICAgKi9cbiAgZ2V0VHJhbnNhY3Rpb25JbnB1dHModHhpZDogc3RyaW5nKTogUHJvbWlzZTx1dHhvbGliLmJpdGdvLlVuc3BlbnRbXT47XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB0eGlkXG4gICAqIEByZXR1cm4gdHJhbnNhY3Rpb24gaW5wdXQgYW5kIG91dHB1dCBhZGRyZXNzZXNcbiAgICovXG4gIGdldFRyYW5zYWN0aW9uSU8odHhpZDogc3RyaW5nKTogUHJvbWlzZTxUcmFuc2FjdGlvbklPPjtcblxuICAvKipcbiAgICogQHBhcmFtIHR4aWRcbiAgICovXG4gIGdldFRyYW5zYWN0aW9uU3BlbmRzKHR4aWQ6IHN0cmluZyk6IFByb21pc2U8T3V0cHV0U3BlbmRbXT47XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBhZGRyZXNzXG4gICAqIEByZXR1cm4gdW5zcGVudCBvdXRwdXRzIGZvciBhZGRyZXNzZXNcbiAgICovXG4gIGdldFVuc3BlbnRzRm9yQWRkcmVzc2VzKGFkZHJlc3M6IHN0cmluZ1tdKTogUHJvbWlzZTx1dHhvbGliLmJpdGdvLlVuc3BlbnRbXT47XG59XG5cbi8qKlxuICogSGVscGVyIHRvIGVmZmljaWVudGx5IGZldGNoIG91dHB1dCBkYXRhLlxuICogVHlwaWNhbCB3ZSBjYW4gcXVlcnkgb3V0cHV0IGRhdGEgZm9yIGFsbCBvdXRwdXRzIG9mIGEgdHJhbnNhY3Rpb24sIHNvIHdlIGZpcnN0IGZldGNoIGFsbFxuICogdGhlIG91dHB1dCBsaXN0IHZpYSBgZmAgYW5kIHRoZW4gcGljayB0aGUgb3V0cHV0IGRhdGEgZnJvbSB0aGUgcmVzdWx0LlxuICogQHBhcmFtIG91dHBvaW50c1xuICogQHBhcmFtIGYgLSBtYXBzIHR4aWQgdG8gYSBsaXN0IG9mIG91dHB1dHMgd2l0aCB0eXBlIFRPdXRcbiAqIEByZXR1cm4gbGlzdCBvZiBUT3V0IGNvcnJlc3BvbmRpbmcgdG8gb3V0cHV0c1xuICovXG5hc3luYyBmdW5jdGlvbiBtYXBJbnB1dHM8VE91dD4oXG4gIG91dHBvaW50czogdXR4b2xpYi5iaXRnby5UeE91dFBvaW50W10sXG4gIGY6ICh0eGlkOiBzdHJpbmcpID0+IFByb21pc2U8VE91dFtdPlxuKTogUHJvbWlzZTxUT3V0W10+IHtcbiAgY29uc3QgdHhpZHMgPSBbLi4ubmV3IFNldChvdXRwb2ludHMubWFwKChpKSA9PiBpLnR4aWQpKV07XG4gIGNvbnN0IHR4TWFwID0gbmV3IE1hcChhd2FpdCBtYXBTZXJpZXModHhpZHMsIGFzeW5jICh0eGlkKSA9PiBbdHhpZCwgYXdhaXQgZih0eGlkKV0pKTtcbiAgcmV0dXJuIG91dHBvaW50cy5tYXAoKGkpID0+IHtcbiAgICBjb25zdCBhcnIgPSB0eE1hcC5nZXQoaS50eGlkKTtcbiAgICBpZiAoYXJyKSB7XG4gICAgICBpZiAoaS52b3V0IGluIGFycikge1xuICAgICAgICByZXR1cm4gYXJyW2kudm91dF07XG4gICAgICB9XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGNvdWxkIG5vdCBmaW5kIG91dHB1dCAke2kudm91dH1gKTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKGBjb3VsZCBub3QgZmluZCB0eCAke2kudHhpZH1gKTtcbiAgfSk7XG59XG5cbi8qKlxuICogRmV0Y2ggdHJhbnNhY3Rpb24gaW5wdXRzIGZyb20gdHJhbnNhY3Rpb24gaW5wdXQgbGlzdFxuICogQHBhcmFtIGluc1xuICogQHBhcmFtIGFwaVxuICogQHBhcmFtIG5ldHdvcmtcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZldGNoSW5wdXRzKFxuICBpbnM6IHV0eG9saWIuVHhJbnB1dFtdIHwgdXR4b2xpYi5iaXRnby5UeE91dFBvaW50W10sXG4gIGFwaTogVXR4b0FwaSxcbiAgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrXG4pOiBQcm9taXNlPHV0eG9saWIuVHhPdXRwdXRbXT4ge1xuICByZXR1cm4gbWFwSW5wdXRzKFxuICAgIGlucy5tYXAoKGk6IHV0eG9saWIuVHhJbnB1dCB8IHV0eG9saWIuYml0Z28uVHhPdXRQb2ludCkgPT4ge1xuICAgICAgaWYgKCd0eGlkJyBpbiBpKSB7XG4gICAgICAgIHJldHVybiBpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHV0eG9saWIuYml0Z28uZ2V0T3V0cHV0SWRGb3JJbnB1dChpKTtcbiAgICB9KSxcbiAgICBhc3luYyAodHhpZCkgPT4gdXR4b2xpYi5iaXRnby5jcmVhdGVUcmFuc2FjdGlvbkZyb21IZXgoYXdhaXQgYXBpLmdldFRyYW5zYWN0aW9uSGV4KHR4aWQpLCBuZXR3b3JrKS5vdXRzXG4gICk7XG59XG5cbi8qKlxuICogRmV0Y2ggdHJhbnNhY3Rpb24gc3BlbmQgc3RhdHVzIG91dHBvaW50cy5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZldGNoVHJhbnNhY3Rpb25TcGVuZHMoXG4gIG91dHBvaW50czogdXR4b2xpYi5iaXRnby5UeE91dFBvaW50W10sXG4gIGFwaTogVXR4b0FwaVxuKTogUHJvbWlzZTxPdXRwdXRTcGVuZFtdPiB7XG4gIHJldHVybiBtYXBJbnB1dHMob3V0cG9pbnRzLCBhc3luYyAodHhpZCkgPT4gYXdhaXQgYXBpLmdldFRyYW5zYWN0aW9uU3BlbmRzKHR4aWQpKTtcbn1cbiJdfQ==

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


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