UNPKG

rubic-sdk-next

Version:
35 lines 1.66 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.EddyBridgeTrade = void 0; const bignumber_js_1 = __importDefault(require("bignumber.js")); const errors_1 = require("../../../../../common/errors"); const evm_api_cross_chain_trade_1 = require("../../../../ws-api/chains/evm/evm-api-cross-chain-trade"); class EddyBridgeTrade extends evm_api_cross_chain_trade_1.EvmApiCrossChainTrade { async needApprove() { // @TODO API FIX this.checkWalletConnected(); if (this.from.isNative) return false; const allowance = await this.fromWeb3Public.getAllowance(this.from.address, this.walletAddress, this.contractSpender); // need allowance = amount + 1 wei at least return this.from.weiAmount.gte(allowance); } async approve(options, checkNeedApprove = true, amount = new bignumber_js_1.default(0)) { if (checkNeedApprove) { const needApprove = await this.needApprove(); if (!needApprove) { throw new errors_1.UnnecessaryApproveError(); } } this.checkWalletConnected(); await this.checkBlockchainCorrect(); // because of error on EddyBridge contract(they check on allowance > amount instead of allowance >= amount) const approveAmount = amount.plus(1); return super.approve(options, checkNeedApprove, approveAmount); } } exports.EddyBridgeTrade = EddyBridgeTrade; //# sourceMappingURL=eddy-bridge-trade.js.map