@ledgerhq/live-common
Version:
Common ground for the Ledger Live apps
28 lines • 1.37 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.usesEncodedAccountIdFormat = usesEncodedAccountIdFormat;
exports.deriveAccountIdForManifest = deriveAccountIdForManifest;
const constants_1 = require("../../wallet-api/constants");
const semver_1 = __importDefault(require("semver"));
/**
* Determines if a manifest uses (Ledger Live) account ID format or UUID (Wallet API) format.
* @param manifest - The live app manifest to check
* @returns true if the manifest uses encoded format (v3+ dapp), false otherwise
*/
function usesEncodedAccountIdFormat(manifest) {
return ("dapp" in manifest &&
!!manifest.apiVersion &&
semver_1.default.satisfies(constants_1.WALLET_API_VERSION, manifest.apiVersion));
}
/** The dapp connector "v3" uses the ledger live account ID to find the correct account. Live app and dapp browser manifests require wallet API ID. */
function deriveAccountIdForManifest(accountId, walletApiAccountId, manifest) {
if (usesEncodedAccountIdFormat(manifest)) {
return accountId;
}
/** Assume dapp browser <=v2 or live app, fallback to wallet ID. */
return walletApiAccountId;
}
//# sourceMappingURL=deriveAccountIdForManifest.js.map