rubic-sdk
Version:
Simplify dApp creation
56 lines • 2.4 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.CelerDirectContractTrade = void 0;
const blockchain_id_1 = require("../../../../../../../core/blockchain/utils/blockchains-info/constants/blockchain-id");
const evm_web3_pure_1 = require("../../../../../../../core/blockchain/web3-pure/typed-web3-pure/evm-web3-pure/evm-web3-pure");
const celer_contract_trade_1 = require("../celer-contract-trade");
const provider_type_enum_1 = require("../models/provider-type.enum");
class CelerDirectContractTrade extends celer_contract_trade_1.CelerContractTrade {
constructor(blockchain, contract, token) {
super(blockchain, contract, 0);
this.token = token;
this.fromToken = this.token;
this.toToken = this.token;
this.toTokenAmountMin = this.toToken.tokenAmount;
}
getCelerSourceTrade() {
const trade = {
srcBridgeToken: this.toToken.address
};
return trade.srcBridgeToken;
}
getCelerDestinationTrade(integratorAddress, receiverAddress) {
const trade = {
dex: evm_web3_pure_1.EvmWeb3Pure.EMPTY_ADDRESS,
nativeOut: this.toToken.isNative,
receiverEOA: receiverAddress,
integrator: integratorAddress,
version: provider_type_enum_1.SwapVersion.BRIDGE,
path: [this.toToken.address],
pathV3: '0x',
deadline: 0,
amountOutMinimum: '0'
};
return Object.values(trade);
}
/**
* Returns method's arguments to use in source network.
*/
async getMethodArguments(toContractTrade, walletAddress, providerAddress, options) {
const receiver = toContractTrade.contract.address || walletAddress;
const tokenInAmountAbsolute = this.fromToken.stringWeiAmount;
const targetChainId = blockchain_id_1.blockchainId[toContractTrade.toToken.blockchain];
const source = this.getCelerSourceTrade();
const destination = toContractTrade.getCelerDestinationTrade(providerAddress, options.receiverAddress);
return [
receiver,
tokenInAmountAbsolute,
targetChainId,
source,
destination,
options.maxSlippage
];
}
}
exports.CelerDirectContractTrade = CelerDirectContractTrade;
//# sourceMappingURL=celer-direct-contract-trade.js.map
;