@ledgerhq/live-common
Version:
Common ground for the Ledger Live apps
35 lines • 1.4 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getTokenFromAsset = getTokenFromAsset;
exports.getAssetFromToken = getAssetFromToken;
exports.default = evmBridge;
const state_1 = require("@ledgerhq/cryptoassets/state");
const eip55_1 = __importDefault(require("eip55"));
async function getTokenFromAsset(currency, asset) {
const result = "assetReference" in asset && typeof asset.assetReference === "string"
? await (0, state_1.getCryptoAssetsStore)().findTokenByAddressInCurrency(asset.assetReference, currency.id)
: undefined;
return result;
}
function getAssetFromToken(currency, token, owner) {
if (token.parentCurrency.id !== currency.id) {
throw new Error(`'${token.id}' is not a valid token for '${currency.id}'`);
}
return {
type: token.tokenType,
assetReference: eip55_1.default.encode(token.contractAddress),
assetOwner: owner,
name: token.name,
unit: token.units[0],
};
}
function evmBridge(currency) {
return {
getTokenFromAsset: async (asset) => getTokenFromAsset(currency, asset),
getAssetFromToken: (token, owner) => getAssetFromToken(currency, token, owner),
};
}
//# sourceMappingURL=bridge.js.map