@ledgerhq/live-common
Version:
Common ground for the Ledger Live apps
26 lines (25 loc) • 928 B
text/typescript
// Perform a genuine check. error is fails. complete on success.
import Transport from "@ledgerhq/hw-transport";
import type { DeviceInfo, SocketEvent } from "@ledgerhq/types-live";
import { Observable, from } from "rxjs";
import { switchMap } from "rxjs/operators";
import ManagerAPI from "../manager/api";
import { getProviderId } from "../manager";
export default (transport: Transport, deviceInfo: DeviceInfo): Observable<SocketEvent> =>
from(ManagerAPI.getDeviceVersion(deviceInfo.targetId, getProviderId(deviceInfo))).pipe(
switchMap(deviceVersion =>
from(
ManagerAPI.getCurrentFirmware({
deviceId: deviceVersion.id,
version: deviceInfo.version,
provider: getProviderId(deviceInfo),
}),
),
),
switchMap(firmware =>
ManagerAPI.genuineCheck(transport, {
targetId: deviceInfo.targetId,
perso: firmware.perso,
}),
),
);