UNPKG

@bitgo/utxo-lib

Version:

Client-side Bitcoin JavaScript library

47 lines 6.75 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.toBech32 = exports.fromBech32 = void 0; exports.fromOutputScript = fromOutputScript; exports.toOutputScript = toOutputScript; exports.toBase58Check = toBase58Check; exports.fromBase58Check = fromBase58Check; const bitcoinjs = require("bitcoinjs-lib"); const zcashAddress = require("../src/bitgo/zcash/address"); const networks_1 = require("./networks"); const index_1 = require("./index"); function fromOutputScript(outputScript, network) { if ((0, networks_1.isValidNetwork)(network) && (0, networks_1.isZcash)(network)) { return zcashAddress.fromOutputScript(outputScript, network); } // We added p2tr payments from our forked bitcoinjs-lib to utxo-lib instead. Our bitcoinjs fork will no longer have // p2tr support so utxo-lib should take care of retrieving a p2tr address from outputScript and bitcoinjs-lib can // handle the other type of payments. try { return index_1.p2trPayments.p2tr({ output: outputScript, network }).address; } catch (e) { // noop. try the bitcoinjs method } return bitcoinjs.address.fromOutputScript(outputScript, network); } function toOutputScript(address, network) { if ((0, networks_1.isValidNetwork)(network) && (0, networks_1.isZcash)(network)) { return zcashAddress.toOutputScript(address, network); } return bitcoinjs.address.toOutputScript(address, network); } function toBase58Check(hash, version, network) { if ((0, networks_1.isValidNetwork)(network) && (0, networks_1.isZcash)(network)) { return zcashAddress.toBase58Check(hash, version); } return bitcoinjs.address.toBase58Check(hash, version); } function fromBase58Check(address, network) { if ((0, networks_1.isValidNetwork)(network) && (0, networks_1.isZcash)(network)) { return zcashAddress.fromBase58Check(address); } return bitcoinjs.address.fromBase58Check(address); } _a = bitcoinjs.address, exports.fromBech32 = _a.fromBech32, exports.toBech32 = _a.toBech32; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hZGRyZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFPQSw0Q0FlQztBQUVELHdDQUtDO0FBRUQsc0NBS0M7QUFFRCwwQ0FLQztBQTNDRCwyQ0FBMkM7QUFHM0MsMkRBQTJEO0FBQzNELHlDQUE4RDtBQUM5RCxtQ0FBdUM7QUFFdkMsU0FBZ0IsZ0JBQWdCLENBQUMsWUFBb0IsRUFBRSxPQUFnQjtJQUNyRSxJQUFJLElBQUEseUJBQWMsRUFBQyxPQUFPLENBQUMsSUFBSSxJQUFBLGtCQUFPLEVBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNoRCxPQUFPLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELG1IQUFtSDtJQUNuSCxpSEFBaUg7SUFDakgscUNBQXFDO0lBQ3JDLElBQUksQ0FBQztRQUNILE9BQU8sb0JBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBaUIsQ0FBQztJQUNoRixDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNYLGlDQUFpQztJQUNuQyxDQUFDO0lBRUQsT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxPQUE0QixDQUFDLENBQUM7QUFDeEYsQ0FBQztBQUVELFNBQWdCLGNBQWMsQ0FBQyxPQUFlLEVBQUUsT0FBZ0I7SUFDOUQsSUFBSSxJQUFBLHlCQUFjLEVBQUMsT0FBTyxDQUFDLElBQUksSUFBQSxrQkFBTyxFQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDaEQsT0FBTyxZQUFZLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBQ0QsT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsT0FBNEIsQ0FBQyxDQUFDO0FBQ2pGLENBQUM7QUFFRCxTQUFnQixhQUFhLENBQUMsSUFBWSxFQUFFLE9BQWUsRUFBRSxPQUFnQjtJQUMzRSxJQUFJLElBQUEseUJBQWMsRUFBQyxPQUFPLENBQUMsSUFBSSxJQUFBLGtCQUFPLEVBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNoRCxPQUFPLFlBQVksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFDRCxPQUFPLFNBQVMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN4RCxDQUFDO0FBRUQsU0FBZ0IsZUFBZSxDQUFDLE9BQWUsRUFBRSxPQUFnQjtJQUMvRCxJQUFJLElBQUEseUJBQWMsRUFBQyxPQUFPLENBQUMsSUFBSSxJQUFBLGtCQUFPLEVBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNoRCxPQUFPLFlBQVksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUNELE9BQU8sU0FBUyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDcEQsQ0FBQztBQUVZLEtBQTJCLFNBQVMsQ0FBQyxPQUFPLEVBQTFDLGtCQUFVLGtCQUFFLGdCQUFRLGVBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgYml0Y29pbmpzIGZyb20gJ2JpdGNvaW5qcy1saWInO1xuaW1wb3J0IHsgQmFzZTU4Q2hlY2tSZXN1bHQsIEJlY2gzMlJlc3VsdCB9IGZyb20gJ2JpdGNvaW5qcy1saWIvc3JjL2FkZHJlc3MnO1xuXG5pbXBvcnQgKiBhcyB6Y2FzaEFkZHJlc3MgZnJvbSAnLi4vc3JjL2JpdGdvL3pjYXNoL2FkZHJlc3MnO1xuaW1wb3J0IHsgaXNWYWxpZE5ldHdvcmssIGlzWmNhc2gsIE5ldHdvcmsgfSBmcm9tICcuL25ldHdvcmtzJztcbmltcG9ydCB7IHAydHJQYXltZW50cyB9IGZyb20gJy4vaW5kZXgnO1xuXG5leHBvcnQgZnVuY3Rpb24gZnJvbU91dHB1dFNjcmlwdChvdXRwdXRTY3JpcHQ6IEJ1ZmZlciwgbmV0d29yazogTmV0d29yayk6IHN0cmluZyB7XG4gIGlmIChpc1ZhbGlkTmV0d29yayhuZXR3b3JrKSAmJiBpc1pjYXNoKG5ldHdvcmspKSB7XG4gICAgcmV0dXJuIHpjYXNoQWRkcmVzcy5mcm9tT3V0cHV0U2NyaXB0KG91dHB1dFNjcmlwdCwgbmV0d29yayk7XG4gIH1cblxuICAvLyBXZSBhZGRlZCBwMnRyIHBheW1lbnRzIGZyb20gb3VyIGZvcmtlZCBiaXRjb2luanMtbGliIHRvIHV0eG8tbGliIGluc3RlYWQuIE91ciBiaXRjb2luanMgZm9yayB3aWxsIG5vIGxvbmdlciBoYXZlXG4gIC8vIHAydHIgc3VwcG9ydCBzbyB1dHhvLWxpYiBzaG91bGQgdGFrZSBjYXJlIG9mIHJldHJpZXZpbmcgYSBwMnRyIGFkZHJlc3MgZnJvbSBvdXRwdXRTY3JpcHQgYW5kIGJpdGNvaW5qcy1saWIgY2FuXG4gIC8vIGhhbmRsZSB0aGUgb3RoZXIgdHlwZSBvZiBwYXltZW50cy5cbiAgdHJ5IHtcbiAgICByZXR1cm4gcDJ0clBheW1lbnRzLnAydHIoeyBvdXRwdXQ6IG91dHB1dFNjcmlwdCwgbmV0d29yayB9KS5hZGRyZXNzIGFzIHN0cmluZztcbiAgfSBjYXRjaCAoZSkge1xuICAgIC8vIG5vb3AuIHRyeSB0aGUgYml0Y29pbmpzIG1ldGhvZFxuICB9XG5cbiAgcmV0dXJuIGJpdGNvaW5qcy5hZGRyZXNzLmZyb21PdXRwdXRTY3JpcHQob3V0cHV0U2NyaXB0LCBuZXR3b3JrIGFzIGJpdGNvaW5qcy5OZXR3b3JrKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvT3V0cHV0U2NyaXB0KGFkZHJlc3M6IHN0cmluZywgbmV0d29yazogTmV0d29yayk6IEJ1ZmZlciB7XG4gIGlmIChpc1ZhbGlkTmV0d29yayhuZXR3b3JrKSAmJiBpc1pjYXNoKG5ldHdvcmspKSB7XG4gICAgcmV0dXJuIHpjYXNoQWRkcmVzcy50b091dHB1dFNjcmlwdChhZGRyZXNzLCBuZXR3b3JrKTtcbiAgfVxuICByZXR1cm4gYml0Y29pbmpzLmFkZHJlc3MudG9PdXRwdXRTY3JpcHQoYWRkcmVzcywgbmV0d29yayBhcyBiaXRjb2luanMuTmV0d29yayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b0Jhc2U1OENoZWNrKGhhc2g6IEJ1ZmZlciwgdmVyc2lvbjogbnVtYmVyLCBuZXR3b3JrOiBOZXR3b3JrKTogc3RyaW5nIHtcbiAgaWYgKGlzVmFsaWROZXR3b3JrKG5ldHdvcmspICYmIGlzWmNhc2gobmV0d29yaykpIHtcbiAgICByZXR1cm4gemNhc2hBZGRyZXNzLnRvQmFzZTU4Q2hlY2soaGFzaCwgdmVyc2lvbik7XG4gIH1cbiAgcmV0dXJuIGJpdGNvaW5qcy5hZGRyZXNzLnRvQmFzZTU4Q2hlY2soaGFzaCwgdmVyc2lvbik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmcm9tQmFzZTU4Q2hlY2soYWRkcmVzczogc3RyaW5nLCBuZXR3b3JrOiBOZXR3b3JrKTogQmFzZTU4Q2hlY2tSZXN1bHQge1xuICBpZiAoaXNWYWxpZE5ldHdvcmsobmV0d29yaykgJiYgaXNaY2FzaChuZXR3b3JrKSkge1xuICAgIHJldHVybiB6Y2FzaEFkZHJlc3MuZnJvbUJhc2U1OENoZWNrKGFkZHJlc3MpO1xuICB9XG4gIHJldHVybiBiaXRjb2luanMuYWRkcmVzcy5mcm9tQmFzZTU4Q2hlY2soYWRkcmVzcyk7XG59XG5cbmV4cG9ydCBjb25zdCB7IGZyb21CZWNoMzIsIHRvQmVjaDMyIH0gPSBiaXRjb2luanMuYWRkcmVzcztcblxuZXhwb3J0IHsgQmFzZTU4Q2hlY2tSZXN1bHQsIEJlY2gzMlJlc3VsdCB9O1xuIl19