@trezor/connect
Version:
High-level javascript interface for Trezor hardware wallet.
33 lines • 2.23 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.buildFirmwareFileName = exports.filterSafeListByFirmware = exports.filterSafeListByBootloader = exports.isValidReleases = exports.isStrictFeatures = void 0;
const utils_1 = require("@trezor/utils");
const types_1 = require("../types");
const isStrictFeatures = (extFeatures) => [1, 2].includes(extFeatures.major_version) &&
(extFeatures.firmware_present === false ||
extFeatures.bootloader_mode == null ||
extFeatures.bootloader_mode === true);
exports.isStrictFeatures = isStrictFeatures;
const isValidReleases = (extReleases) => Array.isArray(extReleases) &&
extReleases.every(release => release.version && release.min_firmware_version && release.min_bootloader_version);
exports.isValidReleases = isValidReleases;
const filterSafeListByBootloader = (releasesList, bootloaderVersion) => {
const bootloaderVersions = releasesList.flatMap(item => item.bootloader_version ? [item.bootloader_version] : []);
const compatibleRelease = bootloaderVersions.find(item => utils_1.versionUtils.isNewerOrEqual(item, bootloaderVersion));
if (bootloaderVersions.length > 0 && !compatibleRelease) {
return [];
}
return releasesList.filter(item => (!item.min_bootloader_version ||
utils_1.versionUtils.isNewerOrEqual(bootloaderVersion, item.min_bootloader_version)) &&
(!item.bootloader_version ||
utils_1.versionUtils.isNewerOrEqual(item.bootloader_version, bootloaderVersion)));
};
exports.filterSafeListByBootloader = filterSafeListByBootloader;
const filterSafeListByFirmware = (releasesList, firmwareVersion) => releasesList.filter(item => utils_1.versionUtils.isNewerOrEqual(firmwareVersion, item.min_firmware_version));
exports.filterSafeListByFirmware = filterSafeListByFirmware;
const buildFirmwareFileName = (firmwareType, internalModel, version) => {
const firmwareTypeFileString = firmwareType === types_1.FirmwareType.BitcoinOnly ? '-bitcoinonly' : '';
return `trezor-${internalModel.toLocaleLowerCase()}-${version.join('.')}${firmwareTypeFileString}.bin`;
};
exports.buildFirmwareFileName = buildFirmwareFileName;
//# sourceMappingURL=firmwareUtils.js.map