UNPKG

tokenlon-sdk

Version:

imToken Tokenlon API for node

61 lines 2.04 kB
"use strict"; 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