PHP WebShell
Текущая директория: /opt/BitGoJS/modules/utxo-lib/dist/src/bitgo/litecoin
Просмотр файла: LitecoinTransaction.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.LitecoinTransaction = void 0;
const bufferutils_1 = require("bitcoinjs-lib/src/bufferutils");
const UtxoTransaction_1 = require("../UtxoTransaction");
const networks_1 = require("../../networks");
/**
* We only care about reading a transaction that can have a potentially different advanced transaction flag,
* but we dont need to write one.
*/
class LitecoinTransaction extends UtxoTransaction_1.UtxoTransaction {
constructor(network, tx, amountType) {
super(network, tx, amountType);
if (!(0, networks_1.isLitecoin)(network)) {
throw new Error(`invalid network`);
}
}
static newTransaction(network, transaction, amountType) {
return new LitecoinTransaction(network, transaction, amountType);
}
clone(amountType) {
return new LitecoinTransaction(this.network, this, amountType);
}
static fromBuffer(buffer, noStrict, amountType = 'number', network) {
if (!network) {
throw new Error(`must provide network`);
}
const bufferReader = new bufferutils_1.BufferReader(buffer);
const txVersion = bufferReader.readInt32();
const marker = bufferReader.readUInt8();
const flag = bufferReader.readUInt8();
if (marker === LitecoinTransaction.ADVANCED_TRANSACTION_MARKER &&
flag === LitecoinTransaction.MWEB_PEGOUT_TX_FLAG) {
// Litecoin has an MWEB advanced transaction marker. Slice out the marker and 5th to last byte and read like a normal transaction
const bufferWriter = new bufferutils_1.BufferWriter(Buffer.allocUnsafe(buffer.length - 3));
bufferWriter.writeUInt32(txVersion);
bufferWriter.writeSlice(buffer.slice(6, buffer.length - 5));
bufferWriter.writeSlice(buffer.slice(buffer.length - 4, buffer.length));
return super.fromBuffer(bufferWriter.buffer, noStrict, amountType, network);
}
return super.fromBuffer(buffer, noStrict, amountType, network);
}
}
exports.LitecoinTransaction = LitecoinTransaction;
LitecoinTransaction.MWEB_PEGOUT_TX_FLAG = 0x08;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGl0ZWNvaW5UcmFuc2FjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iaXRnby9saXRlY29pbi9MaXRlY29pblRyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtEQUEyRTtBQUUzRSx3REFBcUQ7QUFDckQsNkNBQStEO0FBSS9EOzs7R0FHRztBQUNILE1BQWEsbUJBQThELFNBQVEsaUNBQXdCO0lBR3pHLFlBQVksT0FBZ0IsRUFBRSxFQUF5QyxFQUFFLFVBQWdDO1FBQ3ZHLEtBQUssQ0FBQyxPQUFPLEVBQUUsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRS9CLElBQUksQ0FBQyxJQUFBLHFCQUFVLEVBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUN6QixNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDckMsQ0FBQztJQUNILENBQUM7SUFFUyxNQUFNLENBQUMsY0FBYyxDQUM3QixPQUFnQixFQUNoQixXQUFrRCxFQUNsRCxVQUFnQztRQUVoQyxPQUFPLElBQUksbUJBQW1CLENBQVUsT0FBTyxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRUQsS0FBSyxDQUF3QyxVQUFnQztRQUMzRSxPQUFPLElBQUksbUJBQW1CLENBQU0sSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELE1BQU0sQ0FBQyxVQUFVLENBQ2YsTUFBYyxFQUNkLFFBQWlCLEVBQ2pCLGFBQWtDLFFBQVEsRUFDMUMsT0FBeUI7UUFFekIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFFRCxNQUFNLFlBQVksR0FBRyxJQUFJLDBCQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUMsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQzNDLE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN4QyxNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsU0FBUyxFQUFFLENBQUM7UUFFdEMsSUFDRSxNQUFNLEtBQUssbUJBQW1CLENBQUMsMkJBQTJCO1lBQzFELElBQUksS0FBSyxtQkFBbUIsQ0FBQyxtQkFBbUIsRUFDaEQsQ0FBQztZQUNELGtJQUFrSTtZQUNsSSxNQUFNLFlBQVksR0FBRyxJQUFJLDBCQUFZLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDN0UsWUFBWSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNwQyxZQUFZLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM1RCxZQUFZLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDeEUsT0FBTyxLQUFLLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM5RSxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2pFLENBQUM7O0FBbERILGtEQW1EQztBQWxEUSx1Q0FBbUIsR0FBRyxJQUFJLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCdWZmZXJSZWFkZXIsIEJ1ZmZlcldyaXRlciB9IGZyb20gJ2JpdGNvaW5qcy1saWIvc3JjL2J1ZmZlcnV0aWxzJztcblxuaW1wb3J0IHsgVXR4b1RyYW5zYWN0aW9uIH0gZnJvbSAnLi4vVXR4b1RyYW5zYWN0aW9uJztcbmltcG9ydCB7IGlzTGl0ZWNvaW4sIE5ldHdvcmssIG5ldHdvcmtzIH0gZnJvbSAnLi4vLi4vbmV0d29ya3MnO1xuXG5leHBvcnQgdHlwZSBMaXRlY29pbk5ldHdvcmsgPSB0eXBlb2YgbmV0d29ya3MubGl0ZWNvaW4gfCB0eXBlb2YgbmV0d29ya3MubGl0ZWNvaW5UZXN0O1xuXG4vKipcbiAqIFdlIG9ubHkgY2FyZSBhYm91dCByZWFkaW5nIGEgdHJhbnNhY3Rpb24gdGhhdCBjYW4gaGF2ZSBhIHBvdGVudGlhbGx5IGRpZmZlcmVudCBhZHZhbmNlZCB0cmFuc2FjdGlvbiBmbGFnLFxuICogYnV0IHdlIGRvbnQgbmVlZCB0byB3cml0ZSBvbmUuXG4gKi9cbmV4cG9ydCBjbGFzcyBMaXRlY29pblRyYW5zYWN0aW9uPFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQgPSBudW1iZXI+IGV4dGVuZHMgVXR4b1RyYW5zYWN0aW9uPFROdW1iZXI+IHtcbiAgc3RhdGljIE1XRUJfUEVHT1VUX1RYX0ZMQUcgPSAweDA4O1xuXG4gIGNvbnN0cnVjdG9yKG5ldHdvcms6IE5ldHdvcmssIHR4PzogTGl0ZWNvaW5UcmFuc2FjdGlvbjxiaWdpbnQgfCBudW1iZXI+LCBhbW91bnRUeXBlPzogJ2JpZ2ludCcgfCAnbnVtYmVyJykge1xuICAgIHN1cGVyKG5ldHdvcmssIHR4LCBhbW91bnRUeXBlKTtcblxuICAgIGlmICghaXNMaXRlY29pbihuZXR3b3JrKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIG5ldHdvcmtgKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgc3RhdGljIG5ld1RyYW5zYWN0aW9uPFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQgPSBudW1iZXI+KFxuICAgIG5ldHdvcms6IE5ldHdvcmssXG4gICAgdHJhbnNhY3Rpb24/OiBMaXRlY29pblRyYW5zYWN0aW9uPG51bWJlciB8IGJpZ2ludD4sXG4gICAgYW1vdW50VHlwZT86ICdudW1iZXInIHwgJ2JpZ2ludCdcbiAgKTogTGl0ZWNvaW5UcmFuc2FjdGlvbjxUTnVtYmVyPiB7XG4gICAgcmV0dXJuIG5ldyBMaXRlY29pblRyYW5zYWN0aW9uPFROdW1iZXI+KG5ldHdvcmssIHRyYW5zYWN0aW9uLCBhbW91bnRUeXBlKTtcbiAgfVxuXG4gIGNsb25lPFROMiBleHRlbmRzIGJpZ2ludCB8IG51bWJlciA9IFROdW1iZXI+KGFtb3VudFR5cGU/OiAnbnVtYmVyJyB8ICdiaWdpbnQnKTogTGl0ZWNvaW5UcmFuc2FjdGlvbjxUTjI+IHtcbiAgICByZXR1cm4gbmV3IExpdGVjb2luVHJhbnNhY3Rpb248VE4yPih0aGlzLm5ldHdvcmssIHRoaXMsIGFtb3VudFR5cGUpO1xuICB9XG5cbiAgc3RhdGljIGZyb21CdWZmZXI8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludCA9IG51bWJlcj4oXG4gICAgYnVmZmVyOiBCdWZmZXIsXG4gICAgbm9TdHJpY3Q6IGJvb2xlYW4sXG4gICAgYW1vdW50VHlwZTogJ251bWJlcicgfCAnYmlnaW50JyA9ICdudW1iZXInLFxuICAgIG5ldHdvcms/OiBMaXRlY29pbk5ldHdvcmtcbiAgKTogTGl0ZWNvaW5UcmFuc2FjdGlvbjxUTnVtYmVyPiB7XG4gICAgaWYgKCFuZXR3b3JrKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYG11c3QgcHJvdmlkZSBuZXR3b3JrYCk7XG4gICAgfVxuXG4gICAgY29uc3QgYnVmZmVyUmVhZGVyID0gbmV3IEJ1ZmZlclJlYWRlcihidWZmZXIpO1xuICAgIGNvbnN0IHR4VmVyc2lvbiA9IGJ1ZmZlclJlYWRlci5yZWFkSW50MzIoKTtcbiAgICBjb25zdCBtYXJrZXIgPSBidWZmZXJSZWFkZXIucmVhZFVJbnQ4KCk7XG4gICAgY29uc3QgZmxhZyA9IGJ1ZmZlclJlYWRlci5yZWFkVUludDgoKTtcblxuICAgIGlmIChcbiAgICAgIG1hcmtlciA9PT0gTGl0ZWNvaW5UcmFuc2FjdGlvbi5BRFZBTkNFRF9UUkFOU0FDVElPTl9NQVJLRVIgJiZcbiAgICAgIGZsYWcgPT09IExpdGVjb2luVHJhbnNhY3Rpb24uTVdFQl9QRUdPVVRfVFhfRkxBR1xuICAgICkge1xuICAgICAgLy8gTGl0ZWNvaW4gaGFzIGFuIE1XRUIgYWR2YW5jZWQgdHJhbnNhY3Rpb24gbWFya2VyLiBTbGljZSBvdXQgdGhlIG1hcmtlciBhbmQgNXRoIHRvIGxhc3QgYnl0ZSAgYW5kIHJlYWQgbGlrZSBhIG5vcm1hbCB0cmFuc2FjdGlvblxuICAgICAgY29uc3QgYnVmZmVyV3JpdGVyID0gbmV3IEJ1ZmZlcldyaXRlcihCdWZmZXIuYWxsb2NVbnNhZmUoYnVmZmVyLmxlbmd0aCAtIDMpKTtcbiAgICAgIGJ1ZmZlcldyaXRlci53cml0ZVVJbnQzMih0eFZlcnNpb24pO1xuICAgICAgYnVmZmVyV3JpdGVyLndyaXRlU2xpY2UoYnVmZmVyLnNsaWNlKDYsIGJ1ZmZlci5sZW5ndGggLSA1KSk7XG4gICAgICBidWZmZXJXcml0ZXIud3JpdGVTbGljZShidWZmZXIuc2xpY2UoYnVmZmVyLmxlbmd0aCAtIDQsIGJ1ZmZlci5sZW5ndGgpKTtcbiAgICAgIHJldHVybiBzdXBlci5mcm9tQnVmZmVyKGJ1ZmZlcldyaXRlci5idWZmZXIsIG5vU3RyaWN0LCBhbW91bnRUeXBlLCBuZXR3b3JrKTtcbiAgICB9XG4gICAgcmV0dXJuIHN1cGVyLmZyb21CdWZmZXIoYnVmZmVyLCBub1N0cmljdCwgYW1vdW50VHlwZSwgbmV0d29yayk7XG4gIH1cbn1cbiJdfQ==Выполнить команду
Для локальной разработки. Не используйте в интернете!