tokenlon-sdk
Version:
imToken Tokenlon API for node
61 lines • 2.04 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var helper_1 = require("./helper");
var types_1 = require("../types");
var assert_1 = require("./assert");
exports.getTokenByName = function (tokenName, pairs) {
assert_1.assert.isValidTokenName(tokenName, pairs);
var token = null;
pairs.some(function (p) {
if (helper_1.helpCompareStr(p.base.symbol, tokenName)) {
token = p.base;
return true;
}
else if (helper_1.helpCompareStr(p.quote.symbol, tokenName)) {
token = p.quote;
return true;
}
});
if (token)
return token;
};
var getPairHelper = function (baseQuote, pairs, tokenPropName) {
var base = baseQuote.base, quote = baseQuote.quote;
var pair = pairs.find(function (p) { return helper_1.helpCompareStr(p.base[tokenPropName], base) && helper_1.helpCompareStr(p.quote[tokenPropName], quote); });
if (!pair)
throw helper_1.newError(types_1.TokenlonError.UnsupportedPair);
return pair;
};
exports.getPairBySymbol = function (baseQuote, pairs) {
assert_1.assert.isValidBaseQuote(baseQuote, pairs);
return getPairHelper(baseQuote, pairs, 'symbol');
};
exports.getPairByContractAddress = function (baseQuote, pairs) {
return getPairHelper(baseQuote, pairs, 'contractAddress');
};
exports.getPairBySignedOrder = function (order, pairs) {
var pair = null;
var baseQuotes = [
{
base: order.makerTokenAddress,
quote: order.takerTokenAddress,
}, {
base: order.takerTokenAddress,
quote: order.makerTokenAddress,
},
];
baseQuotes.some(function (baseQuote, index) {
try {
var result = exports.getPairByContractAddress(baseQuote, pairs);
pair = result;
return true;
}
catch (e) {
if (index === baseQuotes.length) {
throw e;
}
}
});
return pair;
};
//# sourceMappingURL=pair.js.map