@emeraldpay/api
Version:
Common code for Emerald gRPC APIs
61 lines • 2.11 kB
JavaScript
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
;