UNPKG

rubic-sdk

Version:
45 lines 2.32 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AscentHorizenEonTrade = void 0; const injector_1 = require("../../../../../../../core/injector/injector"); const on_chain_trade_type_1 = require("../../../common/models/on-chain-trade-type"); const uniswap_v2_abstract_trade_1 = require("../../common/uniswap-v2-abstract/uniswap-v2-abstract-trade"); const constants_1 = require("./constants"); class AscentHorizenEonTrade extends uniswap_v2_abstract_trade_1.UniswapV2AbstractTrade { constructor() { super(...arguments); this.dexContractAddress = constants_1.ASCENT_HORIZEN_EON_CONTRACT_ADDRESS; } static get type() { return on_chain_trade_type_1.ON_CHAIN_TRADE_TYPE.ASCENT; } static async callForRoutes(blockchain, exact, routesMethodArguments) { const web3Public = injector_1.Injector.web3PublicService.getWeb3Public(blockchain); const methodName = exact === 'input' ? 'getAmountsOut' : 'getAmountsIn'; const args = routesMethodArguments.map(([amount, routes]) => { const [firstRoute, ...otherRoutes] = routes; const routesArgs = otherRoutes.map((route, index) => (index === 0 ? [firstRoute, route, false] : [otherRoutes[index - 1], route, false])); return [amount, routesArgs]; }); return web3Public.multicallContractMethod(this.getDexContractAddress(blockchain), this.contractAbi, methodName, args); } getCallParameters(receiverAddress) { const { amountIn, amountOut } = this.getAmountInAndAmountOut(); const amountParameters = this.from.isNative ? [amountOut] : [amountIn, amountOut]; const [firstToken, ...otherTokens] = [...this.wrappedPath]; const path = otherTokens.map((token, index) => index === 0 ? [firstToken.address, token.address, false] : [otherTokens[index - 1].address, token.address, false]); return [ ...amountParameters, path, receiverAddress || this.walletAddress, this.deadlineMinutesTimestamp ]; } } exports.AscentHorizenEonTrade = AscentHorizenEonTrade; AscentHorizenEonTrade.contractAbi = constants_1.ASCENT_CONTRACT_ABI; //# sourceMappingURL=ascent-horizen-eon-trade.js.map