PHP WebShell
Текущая директория: /opt/BitGoJS/modules/utxo-lib/dist/src/bitgo/zcash
Просмотр файла: address.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.fromBase58Check = fromBase58Check;
exports.toBase58Check = toBase58Check;
exports.fromOutputScript = fromOutputScript;
exports.toOutputScript = toOutputScript;
const assert = require("assert");
const bitcoinjs_lib_1 = require("bitcoinjs-lib");
const types = require("bitcoinjs-lib/src/types");
const networks_1 = require("../../networks");
const bs58check = require('bs58check');
const typeforce = require('typeforce');
function fromBase58Check(address) {
const payload = bs58check.decode(address);
const version = payload.readUInt16BE(0);
const hash = payload.slice(2);
return { version, hash };
}
function toBase58Check(hash, version) {
typeforce(types.tuple(types.Hash160bit, types.Number), arguments);
const payload = Buffer.allocUnsafe(22);
payload.writeUInt16BE(version, 0);
hash.copy(payload, 2);
return bs58check.encode(payload);
}
function fromOutputScript(outputScript, network) {
assert((0, networks_1.isZcash)(network));
let o;
let prefix;
try {
o = bitcoinjs_lib_1.payments.p2pkh({ output: outputScript });
prefix = network.pubKeyHash;
}
catch (e) { }
try {
o = bitcoinjs_lib_1.payments.p2sh({ output: outputScript });
prefix = network.scriptHash;
}
catch (e) { }
if (!o || !o.hash || prefix === undefined) {
throw new Error(`unsupported outputScript`);
}
return toBase58Check(o.hash, prefix);
}
function toOutputScript(address, network) {
assert((0, networks_1.isZcash)(network));
const { version, hash } = fromBase58Check(address);
if (version === network.pubKeyHash) {
return bitcoinjs_lib_1.payments.p2pkh({ hash }).output;
}
if (version === network.scriptHash) {
return bitcoinjs_lib_1.payments.p2sh({ hash }).output;
}
throw new Error(address + ' has no matching Script');
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iaXRnby96Y2FzaC9hZGRyZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBUUEsMENBS0M7QUFFRCxzQ0FPQztBQUVELDRDQWdCQztBQUVELHdDQVVDO0FBcERELGlDQUFpQztBQUNqQyxpREFBeUM7QUFDekMsaURBQWlEO0FBRWpELDZDQUFrRDtBQUNsRCxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDdkMsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBRXZDLFNBQWdCLGVBQWUsQ0FBQyxPQUFlO0lBQzdDLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDMUMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlCLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7QUFDM0IsQ0FBQztBQUVELFNBQWdCLGFBQWEsQ0FBQyxJQUFZLEVBQUUsT0FBZTtJQUN6RCxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUVsRSxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZDLE9BQU8sQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3RCLE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUNuQyxDQUFDO0FBRUQsU0FBZ0IsZ0JBQWdCLENBQUMsWUFBb0IsRUFBRSxPQUFnQjtJQUNyRSxNQUFNLENBQUMsSUFBQSxrQkFBTyxFQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDekIsSUFBSSxDQUFDLENBQUM7SUFDTixJQUFJLE1BQU0sQ0FBQztJQUNYLElBQUksQ0FBQztRQUNILENBQUMsR0FBRyx3QkFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQzdDLE1BQU0sR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDO0lBQzlCLENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQztJQUNkLElBQUksQ0FBQztRQUNILENBQUMsR0FBRyx3QkFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLE1BQU0sR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDO0lBQzlCLENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQztJQUNkLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUMxQyxNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUNELE9BQU8sYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDdkMsQ0FBQztBQUVELFNBQWdCLGNBQWMsQ0FBQyxPQUFlLEVBQUUsT0FBZ0I7SUFDOUQsTUFBTSxDQUFDLElBQUEsa0JBQU8sRUFBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3pCLE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25ELElBQUksT0FBTyxLQUFLLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNuQyxPQUFPLHdCQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFnQixDQUFDO0lBQ25ELENBQUM7SUFDRCxJQUFJLE9BQU8sS0FBSyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbkMsT0FBTyx3QkFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsTUFBZ0IsQ0FBQztJQUNsRCxDQUFDO0lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLEdBQUcseUJBQXlCLENBQUMsQ0FBQztBQUN2RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgeyBwYXltZW50cyB9IGZyb20gJ2JpdGNvaW5qcy1saWInO1xuaW1wb3J0ICogYXMgdHlwZXMgZnJvbSAnYml0Y29pbmpzLWxpYi9zcmMvdHlwZXMnO1xuaW1wb3J0IHsgQmFzZTU4Q2hlY2tSZXN1bHQgfSBmcm9tICdiaXRjb2luanMtbGliL3NyYy9hZGRyZXNzJztcbmltcG9ydCB7IGlzWmNhc2gsIE5ldHdvcmsgfSBmcm9tICcuLi8uLi9uZXR3b3Jrcyc7XG5jb25zdCBiczU4Y2hlY2sgPSByZXF1aXJlKCdiczU4Y2hlY2snKTtcbmNvbnN0IHR5cGVmb3JjZSA9IHJlcXVpcmUoJ3R5cGVmb3JjZScpO1xuXG5leHBvcnQgZnVuY3Rpb24gZnJvbUJhc2U1OENoZWNrKGFkZHJlc3M6IHN0cmluZyk6IEJhc2U1OENoZWNrUmVzdWx0IHtcbiAgY29uc3QgcGF5bG9hZCA9IGJzNThjaGVjay5kZWNvZGUoYWRkcmVzcyk7XG4gIGNvbnN0IHZlcnNpb24gPSBwYXlsb2FkLnJlYWRVSW50MTZCRSgwKTtcbiAgY29uc3QgaGFzaCA9IHBheWxvYWQuc2xpY2UoMik7XG4gIHJldHVybiB7IHZlcnNpb24sIGhhc2ggfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvQmFzZTU4Q2hlY2soaGFzaDogQnVmZmVyLCB2ZXJzaW9uOiBudW1iZXIpOiBzdHJpbmcge1xuICB0eXBlZm9yY2UodHlwZXMudHVwbGUodHlwZXMuSGFzaDE2MGJpdCwgdHlwZXMuTnVtYmVyKSwgYXJndW1lbnRzKTtcblxuICBjb25zdCBwYXlsb2FkID0gQnVmZmVyLmFsbG9jVW5zYWZlKDIyKTtcbiAgcGF5bG9hZC53cml0ZVVJbnQxNkJFKHZlcnNpb24sIDApO1xuICBoYXNoLmNvcHkocGF5bG9hZCwgMik7XG4gIHJldHVybiBiczU4Y2hlY2suZW5jb2RlKHBheWxvYWQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZnJvbU91dHB1dFNjcmlwdChvdXRwdXRTY3JpcHQ6IEJ1ZmZlciwgbmV0d29yazogTmV0d29yayk6IHN0cmluZyB7XG4gIGFzc2VydChpc1pjYXNoKG5ldHdvcmspKTtcbiAgbGV0IG87XG4gIGxldCBwcmVmaXg7XG4gIHRyeSB7XG4gICAgbyA9IHBheW1lbnRzLnAycGtoKHsgb3V0cHV0OiBvdXRwdXRTY3JpcHQgfSk7XG4gICAgcHJlZml4ID0gbmV0d29yay5wdWJLZXlIYXNoO1xuICB9IGNhdGNoIChlKSB7fVxuICB0cnkge1xuICAgIG8gPSBwYXltZW50cy5wMnNoKHsgb3V0cHV0OiBvdXRwdXRTY3JpcHQgfSk7XG4gICAgcHJlZml4ID0gbmV0d29yay5zY3JpcHRIYXNoO1xuICB9IGNhdGNoIChlKSB7fVxuICBpZiAoIW8gfHwgIW8uaGFzaCB8fCBwcmVmaXggPT09IHVuZGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgdW5zdXBwb3J0ZWQgb3V0cHV0U2NyaXB0YCk7XG4gIH1cbiAgcmV0dXJuIHRvQmFzZTU4Q2hlY2soby5oYXNoLCBwcmVmaXgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9PdXRwdXRTY3JpcHQoYWRkcmVzczogc3RyaW5nLCBuZXR3b3JrOiBOZXR3b3JrKTogQnVmZmVyIHtcbiAgYXNzZXJ0KGlzWmNhc2gobmV0d29yaykpO1xuICBjb25zdCB7IHZlcnNpb24sIGhhc2ggfSA9IGZyb21CYXNlNThDaGVjayhhZGRyZXNzKTtcbiAgaWYgKHZlcnNpb24gPT09IG5ldHdvcmsucHViS2V5SGFzaCkge1xuICAgIHJldHVybiBwYXltZW50cy5wMnBraCh7IGhhc2ggfSkub3V0cHV0IGFzIEJ1ZmZlcjtcbiAgfVxuICBpZiAodmVyc2lvbiA9PT0gbmV0d29yay5zY3JpcHRIYXNoKSB7XG4gICAgcmV0dXJuIHBheW1lbnRzLnAyc2goeyBoYXNoIH0pLm91dHB1dCBhcyBCdWZmZXI7XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKGFkZHJlc3MgKyAnIGhhcyBubyBtYXRjaGluZyBTY3JpcHQnKTtcbn1cbiJdfQ==Выполнить команду
Для локальной разработки. Не используйте в интернете!