rubic-sdk
Version:
Simplify dApp creation
45 lines • 2.32 kB
JavaScript
;
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