UNPKG

@trezor/connect

Version:

High-level javascript interface for Trezor hardware wallet.

32 lines 1.83 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getBinaryForFirmwareUpgrade = void 0; const utils_1 = require("@trezor/utils"); const getBinary_1 = require("./getBinary"); const firmwareInfo_1 = require("../../data/firmwareInfo"); const assets_1 = require("../../utils/assets"); const firmwareUtils_1 = require("../../utils/firmwareUtils"); const getBinaryForFirmwareUpgrade = ({ releases, baseUrl, version, btcOnly, intermediaryVersion, features, }) => { if (!(0, firmwareUtils_1.isStrictFeatures)(features)) { throw new Error('Features of unexpected shape provided'); } if (intermediaryVersion) { return (0, assets_1.httpRequest)(`${baseUrl}/firmware/t1b1/trezor-t1b1-inter-v${intermediaryVersion}.bin`, 'binary'); } const infoByBootloader = (0, firmwareInfo_1.getInfo)({ features, releases }); const releaseByFirmware = releases.find(r => version && utils_1.versionUtils.isVersionArray(version) && utils_1.versionUtils.isEqual(r.version, version)); if (!infoByBootloader || !releaseByFirmware) { throw new Error('no firmware found for this device'); } if (btcOnly && !releaseByFirmware.url_bitcoinonly) { throw new Error(`firmware version ${version} does not exist in btc only variant`); } if (!utils_1.versionUtils.isEqual(releaseByFirmware.version, infoByBootloader.release.version)) { throw new Error(`version provided as param (${releaseByFirmware.version}) does not match firmware version found by features in bootloader (${infoByBootloader.release.version})`); } return (0, getBinary_1.getBinary)({ release: releaseByFirmware, baseUrl, btcOnly }); }; exports.getBinaryForFirmwareUpgrade = getBinaryForFirmwareUpgrade; //# sourceMappingURL=getBinaryForFirmwareUpgrade.js.map