UNPKG

rubic-sdk

Version:
56 lines 2.4 kB
"use strict"; 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