UNPKG

@emeraldpay/api

Version:
61 lines 2.11 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ConvertMarket = void 0; const typesCommon_1 = require("./typesCommon"); class ConvertMarket { constructor(factory, common = new typesCommon_1.ConvertCommon(factory)) { this.factory = factory; this.common = common; } ratesRequest(pairs) { const req = this.factory('market_pb.GetRatesRequest'); pairs.forEach((pair) => { const pairProto = this.factory('market_pb.Pair'); if ((0, typesCommon_1.isErc20Asset)(pair.base)) { pairProto.setErc20Base(this.common.pbErc20Asset(pair.base)); } else { pairProto.setBase(pair.base); } if ((0, typesCommon_1.isErc20Asset)(pair.target)) { pairProto.setErc20Target(this.common.pbErc20Asset(pair.target)); } else { pairProto.setTarget(pair.target); } req.addPairs(pairProto); }); return req; } ratesResponse() { return (value) => { const rates = value.getRatesList().map((rate) => { let base; if (rate.hasErc20Base()) { base = this.common.erc20Asset(rate.getErc20Base()); } else if (rate.hasBase()) { base = rate.getBase(); } else { throw new Error('No base currency in rate'); } let target; if (rate.hasErc20Target()) { target = this.common.erc20Asset(rate.getErc20Target()); } else if (rate.hasTarget()) { target = rate.getTarget(); } return { base: base, target: target, rate: rate.getRate(), }; }); return rates; }; } } exports.ConvertMarket = ConvertMarket; //# sourceMappingURL=typesMarket.js.map