Triangular arbitrage trên Uniswap v3

Trung cấp5/7/2024, 10:38:35 AM
Arbitrage tam giác phục vụ như một chiến lược trong giao dịch trao đổi tiền điện tử, tận dụng những biến đổi trong tỷ giá trao đổi trong một thị trường duy nhất hoặc trên nhiều thị trường.

Thực hiện với các giao dịch đổi mới nhiều bước

Arbitrage tam giác phục vụ như một chiến lược trong giao dịch trao đổi tiền điện tử, tận dụng sự biến động trong tỷ giá trao đổi trong một thị trường duy nhất hoặc qua nhiều thị trường. Phương pháp này bao gồm ba giao dịch liên tiếp: đổi một loại tiền điện tử ban đầu sang một loại thứ hai, loại thứ hai sang loại thứ ba, và cuối cùng, loại thứ ba trở lại tiền điện tử ban đầu, tất cả với mục đích tạo ra lợi nhuận. Do đó, thuật ngữ “tam giác” thể hiện quy trình ba bước của nó.

Hình ảnh được tạo ra bởi trí tuệ nhân tạo

Làm thế nào nó hoạt động?

Trên DEX, cơ hội cho giao dịch chênh lệch tam giác thường do sự khác biệt về thanh khoản qua nhiều hồ bơi gây ra. Thông thường chúng chỉ tồn tại trong thời gian ngắn, chỉ kéo dài vài giây hoặc thậm chí ngắn hơn, khi sàn giao dịch nhanh chóng điều chỉnh bất kỳ sai lệch giá nào. Do đó, các thuật toán giao dịch tự động được trang bị để thực hiện giao dịch một cách nhanh chóng được sử dụng để tận dụng những khác biệt thoáng qua này. Để giúp hiểu rõ vấn đề, dưới đây là một ví dụ:

Giao dịch tam giác trên bắt đầu từ 01 - mua 1 wBTC với $60,000 USDC, tiếp theo là 02 - mua 16 WETH với 1 wBTC và kết thúc là 03 - bán 16 WETH với $66,000 USDC. Cuối cùng của chặng hành trình, chúng ta sẽ có được $6,000 USDC làm lợi nhuận.

Thực hiện với Mutihop Swaps trên Uniswap v3

Có hai kiểu trao đổi nhiều bước có sẵn trên Uniswap v3: Đầu vào Chính xác và Đầu ra Chính xác. Như tên gọi của họ, kiểu đầu tiên mong đợi token có số lượng chính xác như đầu vào của quá trình trao đổi, và cuối cùng, một token có số lượng cụ thể sẽ được đầu ra theo tỷ lệ trao đổi; Kiểu thứ hai mong đợi số lượng cụ thể được chỉ định là đầu ra, chỉ có số lượng đủ của token làm đầu vào mới có thể thực hiện trao đổi theo tỷ lệ trao đổi.

Với bản chất kinh doanh của việc trarbitrage tam giác, chúng tôi muốn lấy một token với số tiền chính xác như đầu vào, đổi nó thành một loại tiền điện tử khác và sau đó đổi lại thành token ban đầu để thu lợi nhuận, như mong muốn.

địa chỉ hằng số SWAP_ROUTER_02 = 0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45;

địa chỉ hằng WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;

địa chỉ hằng số USDC = 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48;

địa chỉ hằng số DAI = 0x6B175474E89094C44Da98b954EedeAC495271d0F;

contract MultiHopSwap { using SafeERC20 for IERC20;ISwapRouter02 private constant ROUTER = ISwapRouter02(SWAP_ROUTER_02);uint256 private constant MAX_INT =   115792089237316195423570985008687907853269984665640564039457584007913129639935;function swapExactInputMultiHop(uint256 amountIn) external {   IERC20(USDC).safeApprove(address(ROUTER), MAX_INT);   IERC20(WETH).safeApprove(address(ROUTER), MAX_INT);   IERC20(DAI).safeApprove(address(ROUTER), MAX_INT);   bytes memory path =       abi.encodePacked(USDC, uint24(3000), WETH, uint24(3000), DAI, uint24(3000), USDC) ;   ISwapRouter02.ExactInputParams memory params = ISwapRouter02       .ExactInputParams({       path: path,       recipient: address(this),       amountIn: amountIn,       amountOutMinimum: 1   });   ROUTER.exactInput(params); }}

Routers đóng vai trò quan trọng trong việc tạo điều kiện cho việc cung cấp thanh khoản. Bởi vì chúng không có trạng thái và không giữ cân đối token, nên việc thay thế routers có thể được thực hiện một cách an toàn. Vì lý do này, routers có số phiên bản, bắt đầu từ 01. Trong triển khai của chúng tôi, chúng tôi sử dụng Router02 tại 0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45trên mainnet.

SafeERC20 là một lớp bảo vệ xây dựng xung quanh các giao dịch ERC20, đảm bảo tương tác an toàn với các mã thông báo ERC20 trong hợp đồng của chúng tôi. Không giống như các chức năng ERC20 thông thường, SafeERC20 tăng cường tính an toàn bằng cách xác minh các giá trị trả về boolean của các hoạt động ERC20. Nếu bất kỳ hoạt động nào thất bại, giao dịch sẽ bị quay trở lại, giảm thiểu các rủi ro. Ngoài ra, SafeERC20 hỗ trợ các mã thông báo ERC20 phi chuẩn thiếu giá trị trả về boolean, cung cấp sự linh hoạt và mạnh mẽ trong quản lý token. Bằng cách phê duyệt số lượng tối đa, chúng tôi cho phép Router02 chuyển token thay mặt cho chúng tôi. Nếu không làm như vậy, bạn sẽ thấy một thông báo lỗi STF trong đó STF có nghĩa là việc thực thi bị quay trở lại bởi khẳng định yêu cầu trong hàm TransferHelper.safeTransferFrom.

Tiếp theo, chúng ta sẽ xem cách một đường đi tam giác được xác định:

bytes bộ nhớ đường dẫn = abi.encodePacked(USDC, uint24(3000),

WETH, uint24(3000), DAI, uint24(3000), USDC) ;

Qua `abi.encodePacked`, Solidity nén chặt nhiều giá trị mà không thêm bất kỳ đệm nào. Nó nối ghép dữ liệu nhị phân thô của mỗi tham số. Không khó hiểu rằng các tham số chuỗi hóa các giao dịch với phí giữa các cặp tiền điện tử. Con đường bắt đầu từ USDC và dừng lại tại USDC với mong đợi lợi nhuận. Sau đó, nó được bọc bởi ExactInputParams với các tham số bắt buộc khác và đưa vào bộ định tuyến để thực hiện việc đổi tiền đa điểm.

Kiểm tra

Chúng tôi sử dụng cùng kỹ thuật bởi forking mainnet với sự mạo danh. Sau khi xác minh được 10 USDC được ghi nhận vào hợp đồng, các giao dịch đổi mới có thể được kích hoạt như sau:

nó("thực hiện swap nhiều bước", async () => {balance = await swap.tokenBalance(USDC);console.log(`Số dư hiện tại của USDC = ${balance}`);console.log(`Đang thực hiện swap ${initialFundingHuman} USDC`);const tx = await swap.swapExactInputMultiHop(ethers.parseUnits(initialFundingHuman, DECIMALS));receipt = await tx.wait();balance = await swap.tokenBalance(USDC);console.log(`Số dư hiện tại của USDC = ${balance}`);expect(balance).not.equal(0);});

Kết quả xét nghiệm sẽ giống như dưới đây:

Số dư USDC của cá voi: 170961218210457n

Bắt đầu Giả mạo.

Hoàn thành việc giả mạo.

Số dư hiện tại của USDC = 100000000

Đổi 100 USDC

Số dư hiện tại của USDC = 91677417

Sau khi nhảy qua các rào cản, chúng tôi đã mất tiền — Rõ ràng con đường với tỷ giá hiện tại không ủng hộ chúng tôi, nhưng bạn đã hiểu cách thực hiện chiến lược giao dịch tam giác bằng cách sử dụng các giao dịch đổi nhiều bước trên Uniswap v3.

Vay nhanh tài chính cho cơ hội giao dịch ba cạnh

Tôi đã không nói saonguồn vốn mạnh mẽ nhất trong hệ sinh thái DeFi là Flash loan? Không cần nhiều sự sáng tạo từ bạn để xây dựng một chiến lược giao dịch tam giác chênh lệch được tài trợ bởi Flash loan bằng cách sử dụng cả Flash loan và multihop swaps mà tôi đã giảng dạy về. Một logic kết hợp có thể được giải thích bằng biểu đồ chuỗi cập nhật như dưới đây:

Sơ đồ chuỗi cho vay Flash cho cơ hội giao dịch ba cạnh trên Uniswap v3 (Đã bỏ qua một số thao tác để đơn giản hóa)

Kiểm tra mã nguồn của tôi cho cả vay Flash và giao dịch Multihop được thực hiện trên Uniswap v3 —https://medium.com/cryptocurrency-scripts/flash-loan-on-uniswap-v3-84bca2bfe255, hãy tiêu hóa sơ đồ chuỗi và tự làm bài tập của bạn để hoàn thành các hợp đồng thông minh kết hợp.

Xem xét về lợi nhuận

Điều đầu tiên chúng tôi muốn xem xét là con đường bao gồm chuỗi 3 giao dịch: Để có lợi nhuận, chúng phải là 3 cặp tiền điện tử phù hợp với tỷ giá phù hợp. Để tìm ra tất cả sự đúng đắn này, bạn cần phát triển một chương trình hoán đổi các cặp có thể giao dịch theo mô hình chênh lệch giá tam giác và mô phỏng các giao dịch hoán đổi để kiểm tra lợi nhuận. Việc truy xuất tỷ lệ từ blockchain có thể chậm và nó sẽ làm chậm quá trình hơn nữa nếu có quá nhiều con đường đang chờ được xác minh về lợi nhuận. Bạn có thể muốn thu hẹp danh sách các đường dẫn tam giác bằng cách tính toán Lợi nhuận & Lỗ dựa trên giá bề mặt được cung cấp bởi các điểm cuối định giá GraphQL của DEX nếu có (đây đến Uniswap v3’s) graphql api nhanh hơn rất nhiều so với blockchain để cung cấp dữ liệu báo giá. Khi các đường dẫn được rút ngắn, chạy chúng với báo giá lấy từ chuỗi để tính toán Lợi nhuận & Lỗ lực chính xác hơn.

Nâng cao đầu tư của bạn với Flash loancó thể mở rộng lợi nhuận hơn nữa - vay token với lãi suất thấp và đầu tư chúng với chiến lược sinh lời luôn là một ý tưởng tốt. Lý thuyết, miễn là lợi nhuận gộp đủ để cover phí vay Flash và phí swap, chiến lược tạo lợi nhuận ba cạnh sẽ được xem xét là sinh lời. Một chiêu trò quan trọng để bảo vệ lợi nhuận của bạn và giảm thiểu rủi ro giao dịch tổng thể là phải có một logic trong hợp đồng giao dịch của bạn để thất bại giao dịch vay flash nếu kiểm tra lợi nhuận gộp thất bại, vì lý do khi giao dịch thất bại, tất cả các hoạt động sẽ quay lại và bạn không cần phải chịu thiệt hại và thậm chí là phí cho giao dịch. Mảnh logic này sẽ hoạt động như một người bảo vệ toàn diện để ngăn chặn trượt giá hoặc biến động tỷ giá không thuận lợi với chúng ta.

Tuy nói vậy, bất kể thành công hay thất bại của giao dịch, phí gas là điều bạn không bao giờ thoát khỏi và có thể là nguyên nhân chính khiến bạn mất tiền từ cơ hội giao dịch ba cạnh. Luôn đánh giá phí gas cho giao dịch của chiến lược của bạn và tính vào phép tính lợi nhuận ròng. Vui lòng tham khảo các trường hợp kiểm tra ước tính phí gas trong mã nguồn của tôi.

免責聲明:

  1. Bài viết này được tái bản từ [GateKịch bản tiền điện tử], All copyrights belong to the original author [Aaron Li]. Nếu có ý kiến ​​phản đối về việc tái in này, vui lòng liên hệ Gate Learnđội ngũ, và họ sẽ xử lý nó ngay lập tức.
  2. Tuyên bố miễn trừ trách nhiệm: Các quan điểm và ý kiến được thể hiện trong bài viết này chỉ thuộc về tác giả và không cấu thành bất kỳ lời khuyên đầu tư nào.
  3. Các bản dịch của bài viết sang các ngôn ngữ khác được thực hiện bởi nhóm Gate Learn. Trừ khi được nêu, việc sao chép, phân phối hoặc đạo văn các bài viết dịch là không được phép.

Triangular arbitrage trên Uniswap v3

Trung cấp5/7/2024, 10:38:35 AM
Arbitrage tam giác phục vụ như một chiến lược trong giao dịch trao đổi tiền điện tử, tận dụng những biến đổi trong tỷ giá trao đổi trong một thị trường duy nhất hoặc trên nhiều thị trường.

Thực hiện với các giao dịch đổi mới nhiều bước

Arbitrage tam giác phục vụ như một chiến lược trong giao dịch trao đổi tiền điện tử, tận dụng sự biến động trong tỷ giá trao đổi trong một thị trường duy nhất hoặc qua nhiều thị trường. Phương pháp này bao gồm ba giao dịch liên tiếp: đổi một loại tiền điện tử ban đầu sang một loại thứ hai, loại thứ hai sang loại thứ ba, và cuối cùng, loại thứ ba trở lại tiền điện tử ban đầu, tất cả với mục đích tạo ra lợi nhuận. Do đó, thuật ngữ “tam giác” thể hiện quy trình ba bước của nó.

Hình ảnh được tạo ra bởi trí tuệ nhân tạo

Làm thế nào nó hoạt động?

Trên DEX, cơ hội cho giao dịch chênh lệch tam giác thường do sự khác biệt về thanh khoản qua nhiều hồ bơi gây ra. Thông thường chúng chỉ tồn tại trong thời gian ngắn, chỉ kéo dài vài giây hoặc thậm chí ngắn hơn, khi sàn giao dịch nhanh chóng điều chỉnh bất kỳ sai lệch giá nào. Do đó, các thuật toán giao dịch tự động được trang bị để thực hiện giao dịch một cách nhanh chóng được sử dụng để tận dụng những khác biệt thoáng qua này. Để giúp hiểu rõ vấn đề, dưới đây là một ví dụ:

Giao dịch tam giác trên bắt đầu từ 01 - mua 1 wBTC với $60,000 USDC, tiếp theo là 02 - mua 16 WETH với 1 wBTC và kết thúc là 03 - bán 16 WETH với $66,000 USDC. Cuối cùng của chặng hành trình, chúng ta sẽ có được $6,000 USDC làm lợi nhuận.

Thực hiện với Mutihop Swaps trên Uniswap v3

Có hai kiểu trao đổi nhiều bước có sẵn trên Uniswap v3: Đầu vào Chính xác và Đầu ra Chính xác. Như tên gọi của họ, kiểu đầu tiên mong đợi token có số lượng chính xác như đầu vào của quá trình trao đổi, và cuối cùng, một token có số lượng cụ thể sẽ được đầu ra theo tỷ lệ trao đổi; Kiểu thứ hai mong đợi số lượng cụ thể được chỉ định là đầu ra, chỉ có số lượng đủ của token làm đầu vào mới có thể thực hiện trao đổi theo tỷ lệ trao đổi.

Với bản chất kinh doanh của việc trarbitrage tam giác, chúng tôi muốn lấy một token với số tiền chính xác như đầu vào, đổi nó thành một loại tiền điện tử khác và sau đó đổi lại thành token ban đầu để thu lợi nhuận, như mong muốn.

địa chỉ hằng số SWAP_ROUTER_02 = 0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45;

địa chỉ hằng WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;

địa chỉ hằng số USDC = 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48;

địa chỉ hằng số DAI = 0x6B175474E89094C44Da98b954EedeAC495271d0F;

contract MultiHopSwap { using SafeERC20 for IERC20;ISwapRouter02 private constant ROUTER = ISwapRouter02(SWAP_ROUTER_02);uint256 private constant MAX_INT =   115792089237316195423570985008687907853269984665640564039457584007913129639935;function swapExactInputMultiHop(uint256 amountIn) external {   IERC20(USDC).safeApprove(address(ROUTER), MAX_INT);   IERC20(WETH).safeApprove(address(ROUTER), MAX_INT);   IERC20(DAI).safeApprove(address(ROUTER), MAX_INT);   bytes memory path =       abi.encodePacked(USDC, uint24(3000), WETH, uint24(3000), DAI, uint24(3000), USDC) ;   ISwapRouter02.ExactInputParams memory params = ISwapRouter02       .ExactInputParams({       path: path,       recipient: address(this),       amountIn: amountIn,       amountOutMinimum: 1   });   ROUTER.exactInput(params); }}

Routers đóng vai trò quan trọng trong việc tạo điều kiện cho việc cung cấp thanh khoản. Bởi vì chúng không có trạng thái và không giữ cân đối token, nên việc thay thế routers có thể được thực hiện một cách an toàn. Vì lý do này, routers có số phiên bản, bắt đầu từ 01. Trong triển khai của chúng tôi, chúng tôi sử dụng Router02 tại 0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45trên mainnet.

SafeERC20 là một lớp bảo vệ xây dựng xung quanh các giao dịch ERC20, đảm bảo tương tác an toàn với các mã thông báo ERC20 trong hợp đồng của chúng tôi. Không giống như các chức năng ERC20 thông thường, SafeERC20 tăng cường tính an toàn bằng cách xác minh các giá trị trả về boolean của các hoạt động ERC20. Nếu bất kỳ hoạt động nào thất bại, giao dịch sẽ bị quay trở lại, giảm thiểu các rủi ro. Ngoài ra, SafeERC20 hỗ trợ các mã thông báo ERC20 phi chuẩn thiếu giá trị trả về boolean, cung cấp sự linh hoạt và mạnh mẽ trong quản lý token. Bằng cách phê duyệt số lượng tối đa, chúng tôi cho phép Router02 chuyển token thay mặt cho chúng tôi. Nếu không làm như vậy, bạn sẽ thấy một thông báo lỗi STF trong đó STF có nghĩa là việc thực thi bị quay trở lại bởi khẳng định yêu cầu trong hàm TransferHelper.safeTransferFrom.

Tiếp theo, chúng ta sẽ xem cách một đường đi tam giác được xác định:

bytes bộ nhớ đường dẫn = abi.encodePacked(USDC, uint24(3000),

WETH, uint24(3000), DAI, uint24(3000), USDC) ;

Qua `abi.encodePacked`, Solidity nén chặt nhiều giá trị mà không thêm bất kỳ đệm nào. Nó nối ghép dữ liệu nhị phân thô của mỗi tham số. Không khó hiểu rằng các tham số chuỗi hóa các giao dịch với phí giữa các cặp tiền điện tử. Con đường bắt đầu từ USDC và dừng lại tại USDC với mong đợi lợi nhuận. Sau đó, nó được bọc bởi ExactInputParams với các tham số bắt buộc khác và đưa vào bộ định tuyến để thực hiện việc đổi tiền đa điểm.

Kiểm tra

Chúng tôi sử dụng cùng kỹ thuật bởi forking mainnet với sự mạo danh. Sau khi xác minh được 10 USDC được ghi nhận vào hợp đồng, các giao dịch đổi mới có thể được kích hoạt như sau:

nó("thực hiện swap nhiều bước", async () => {balance = await swap.tokenBalance(USDC);console.log(`Số dư hiện tại của USDC = ${balance}`);console.log(`Đang thực hiện swap ${initialFundingHuman} USDC`);const tx = await swap.swapExactInputMultiHop(ethers.parseUnits(initialFundingHuman, DECIMALS));receipt = await tx.wait();balance = await swap.tokenBalance(USDC);console.log(`Số dư hiện tại của USDC = ${balance}`);expect(balance).not.equal(0);});

Kết quả xét nghiệm sẽ giống như dưới đây:

Số dư USDC của cá voi: 170961218210457n

Bắt đầu Giả mạo.

Hoàn thành việc giả mạo.

Số dư hiện tại của USDC = 100000000

Đổi 100 USDC

Số dư hiện tại của USDC = 91677417

Sau khi nhảy qua các rào cản, chúng tôi đã mất tiền — Rõ ràng con đường với tỷ giá hiện tại không ủng hộ chúng tôi, nhưng bạn đã hiểu cách thực hiện chiến lược giao dịch tam giác bằng cách sử dụng các giao dịch đổi nhiều bước trên Uniswap v3.

Vay nhanh tài chính cho cơ hội giao dịch ba cạnh

Tôi đã không nói saonguồn vốn mạnh mẽ nhất trong hệ sinh thái DeFi là Flash loan? Không cần nhiều sự sáng tạo từ bạn để xây dựng một chiến lược giao dịch tam giác chênh lệch được tài trợ bởi Flash loan bằng cách sử dụng cả Flash loan và multihop swaps mà tôi đã giảng dạy về. Một logic kết hợp có thể được giải thích bằng biểu đồ chuỗi cập nhật như dưới đây:

Sơ đồ chuỗi cho vay Flash cho cơ hội giao dịch ba cạnh trên Uniswap v3 (Đã bỏ qua một số thao tác để đơn giản hóa)

Kiểm tra mã nguồn của tôi cho cả vay Flash và giao dịch Multihop được thực hiện trên Uniswap v3 —https://medium.com/cryptocurrency-scripts/flash-loan-on-uniswap-v3-84bca2bfe255, hãy tiêu hóa sơ đồ chuỗi và tự làm bài tập của bạn để hoàn thành các hợp đồng thông minh kết hợp.

Xem xét về lợi nhuận

Điều đầu tiên chúng tôi muốn xem xét là con đường bao gồm chuỗi 3 giao dịch: Để có lợi nhuận, chúng phải là 3 cặp tiền điện tử phù hợp với tỷ giá phù hợp. Để tìm ra tất cả sự đúng đắn này, bạn cần phát triển một chương trình hoán đổi các cặp có thể giao dịch theo mô hình chênh lệch giá tam giác và mô phỏng các giao dịch hoán đổi để kiểm tra lợi nhuận. Việc truy xuất tỷ lệ từ blockchain có thể chậm và nó sẽ làm chậm quá trình hơn nữa nếu có quá nhiều con đường đang chờ được xác minh về lợi nhuận. Bạn có thể muốn thu hẹp danh sách các đường dẫn tam giác bằng cách tính toán Lợi nhuận & Lỗ dựa trên giá bề mặt được cung cấp bởi các điểm cuối định giá GraphQL của DEX nếu có (đây đến Uniswap v3’s) graphql api nhanh hơn rất nhiều so với blockchain để cung cấp dữ liệu báo giá. Khi các đường dẫn được rút ngắn, chạy chúng với báo giá lấy từ chuỗi để tính toán Lợi nhuận & Lỗ lực chính xác hơn.

Nâng cao đầu tư của bạn với Flash loancó thể mở rộng lợi nhuận hơn nữa - vay token với lãi suất thấp và đầu tư chúng với chiến lược sinh lời luôn là một ý tưởng tốt. Lý thuyết, miễn là lợi nhuận gộp đủ để cover phí vay Flash và phí swap, chiến lược tạo lợi nhuận ba cạnh sẽ được xem xét là sinh lời. Một chiêu trò quan trọng để bảo vệ lợi nhuận của bạn và giảm thiểu rủi ro giao dịch tổng thể là phải có một logic trong hợp đồng giao dịch của bạn để thất bại giao dịch vay flash nếu kiểm tra lợi nhuận gộp thất bại, vì lý do khi giao dịch thất bại, tất cả các hoạt động sẽ quay lại và bạn không cần phải chịu thiệt hại và thậm chí là phí cho giao dịch. Mảnh logic này sẽ hoạt động như một người bảo vệ toàn diện để ngăn chặn trượt giá hoặc biến động tỷ giá không thuận lợi với chúng ta.

Tuy nói vậy, bất kể thành công hay thất bại của giao dịch, phí gas là điều bạn không bao giờ thoát khỏi và có thể là nguyên nhân chính khiến bạn mất tiền từ cơ hội giao dịch ba cạnh. Luôn đánh giá phí gas cho giao dịch của chiến lược của bạn và tính vào phép tính lợi nhuận ròng. Vui lòng tham khảo các trường hợp kiểm tra ước tính phí gas trong mã nguồn của tôi.

免責聲明:

  1. Bài viết này được tái bản từ [GateKịch bản tiền điện tử], All copyrights belong to the original author [Aaron Li]. Nếu có ý kiến ​​phản đối về việc tái in này, vui lòng liên hệ Gate Learnđội ngũ, và họ sẽ xử lý nó ngay lập tức.
  2. Tuyên bố miễn trừ trách nhiệm: Các quan điểm và ý kiến được thể hiện trong bài viết này chỉ thuộc về tác giả và không cấu thành bất kỳ lời khuyên đầu tư nào.
  3. Các bản dịch của bài viết sang các ngôn ngữ khác được thực hiện bởi nhóm Gate Learn. Trừ khi được nêu, việc sao chép, phân phối hoặc đạo văn các bài viết dịch là không được phép.
Mulai Sekarang
Daftar dan dapatkan Voucher
$100
!