@ledgerhq/live-common
Version:
Common ground for the Ledger Live apps
38 lines • 1.42 kB
JavaScript
import { TransportStatusError } from "@ledgerhq/errors";
import { DeviceNotOnboarded } from "../errors";
export var FlowName;
(function (FlowName) {
FlowName["send"] = "send";
FlowName["receive"] = "receive";
FlowName["swap"] = "swap";
FlowName["staking"] = "staking";
FlowName["addAccount"] = "addAccount";
FlowName["unknown"] = "unknown";
})(FlowName || (FlowName = {}));
export function getCurrencyName(request) {
if (request == null || typeof request !== "object")
return "";
const req = request;
const currencyName = req.tokenCurrency?.name ?? req.account?.currency?.name ?? "";
return currencyName;
}
export function getFlowNameFromMapping(location, request, flowMapping) {
if (!location)
return FlowName.unknown;
const mapped = flowMapping[location] ?? FlowName.unknown;
if (mapped === FlowName.send) {
const req = request;
if (req?.transaction?.mode !== FlowName.send) {
return FlowName.staking;
}
}
return mapped;
}
// remap transport status 6d06/6d07 as DeviceNotOnboarded for UX handling consistency.
export function isDeviceNotOnboardedError(e) {
const maybeMessage = e?.message;
return (e instanceof DeviceNotOnboarded ||
(e instanceof TransportStatusError &&
(maybeMessage?.includes("0x6d06") || maybeMessage?.includes("0x6d07"))));
}
//# sourceMappingURL=utils.js.map