rubic-sdk
Version:
Simplify dApp creation
37 lines • 2 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.VooiAbstractTrade = void 0;
const options_1 = require("../../../../../../../common/utils/options");
const evm_web3_pure_1 = require("../../../../../../../core/blockchain/web3-pure/typed-web3-pure/evm-web3-pure/evm-web3-pure");
const on_chain_trade_type_1 = require("../../../common/models/on-chain-trade-type");
const evm_on_chain_trade_1 = require("../../../common/on-chain-trade/evm-on-chain-trade/evm-on-chain-trade");
const vooi_abi_1 = require("./constants/vooi-abi");
class VooiAbstractTrade extends evm_on_chain_trade_1.EvmOnChainTrade {
static get type() {
return on_chain_trade_type_1.ON_CHAIN_TRADE_TYPE.VOOI;
}
constructor(tradeStruct, providerAddress) {
super(tradeStruct, providerAddress);
this.type = on_chain_trade_type_1.ON_CHAIN_TRADE_TYPE.VOOI;
this.fromPoolId = tradeStruct.fromPoolId;
this.toPoolId = tradeStruct.toPoolId;
this.deadlineInMinutes = tradeStruct.deadlineMinutes;
}
async getTransactionConfigAndAmount(options) {
await this.checkFromAddress(options.fromAddress, true);
await this.checkReceiverAddress(options.receiverAddress);
const receiver = options?.receiverAddress || this.walletAddress;
const gasParams = this.getGasParams(options);
const config = evm_web3_pure_1.EvmWeb3Pure.encodeMethodCall(this.dexContractAddress, vooi_abi_1.vooiAbi, 'swap', [
this.fromPoolId,
this.toPoolId,
this.fromWithoutFee.stringWeiAmount,
this.toTokenAmountMin.stringWeiAmount,
receiver,
(0, options_1.deadlineMinutesTimestamp)(this.deadlineInMinutes)
], this.fromWithoutFee.isNative ? this.fromWithoutFee.stringWeiAmount : '0', gasParams);
return { tx: config, toAmount: this.to.stringWeiAmount };
}
}
exports.VooiAbstractTrade = VooiAbstractTrade;
//# sourceMappingURL=vooi-abstract-trade.js.map