Bảy mẹo giúp bạn nắm vững phát triển hợp đồng thông minh

Chia sẻ kinh nghiệm và mẹo phát triển hợp đồng

Gần đây, khi tham gia một dự án hướng dẫn phát triển sàn giao dịch phi tập trung, tôi đã học được nhiều kỹ năng phát triển hợp đồng có giá trị thông qua việc nghiên cứu mã nguồn của Uniswap V3. Là một người mới bắt đầu tiếp xúc với phát triển hợp đồng Defi, những kỹ năng này đã mang lại cho tôi nhiều cảm hứng, tôi tin rằng cũng sẽ hữu ích cho những người mới khác muốn học phát triển hợp đồng.

Web3 Người mới bắt đầu: Những mẹo nhỏ trong phát triển hợp đồng mà tôi học được từ mã Uniswap

Địa chỉ hợp đồng có thể dự đoán

Thông thường, khi triển khai hợp đồng, địa chỉ nhận được là ngẫu nhiên, nhưng trong một số tình huống, chúng ta cần có khả năng dự đoán địa chỉ hợp đồng. Uniswap đã sử dụng phương thức CREATE2 để tạo ra hợp đồng, bằng cách thêm tham số salt, giúp cho địa chỉ hợp đồng được tạo ra có thể được dự đoán. Điều này rất hữu ích trong các tình huống như xác định quyền giao dịch hoặc lấy địa chỉ của các bể.

Web3 Người mới bắt đầu: Những mẹo phát triển hợp đồng mà tôi học được từ mã Uniswap

Sử dụng hiệu quả hàm callback

Trong một số tình huống, việc gọi lẫn nhau giữa các hợp đồng là rất hữu ích. Ví dụ, trong Uniswap, khi gọi phương thức swap của hợp đồng UniswapV3Pool, nó sẽ gọi lại swapCallback, truyền vào số lượng Token thực tế cần thiết đã được tính toán. Bên gọi cần chuyển Token vào UniswapV3Pool trong callback, điều này đảm bảo việc thực hiện hoàn chỉnh và an toàn của phương thức swap.

Sử dụng ngoại lệ để truyền thông tin

Trong hợp đồng Quoter của Uniswap, sử dụng try-catch để bao bọc việc thực hiện phương thức swap của UniswapV3Pool. Điều này nhằm mục đích mô phỏng swap để ước tính Token cần thiết cho giao dịch, thông qua việc bắt các lỗi cụ thể và phân tích thông tin lỗi để thu thập dữ liệu cần thiết. Phương pháp này tránh việc phải cải tiến đặc biệt phương thức swap chỉ để ước tính giao dịch, làm cho logic trở nên đơn giản hơn.

Web3 Người mới bắt đầu: Những mẹo nhỏ trong phát triển hợp đồng mà tôi học được từ mã Uniswap

Đảm bảo độ chính xác trong tính toán số lớn

Trong Uniswap có liên quan đến một lượng lớn tính toán, để tránh mất độ chính xác khi thực hiện phép chia, thường sử dụng phép dịch trái 96 bit ( tương đương với việc nhân với 2^96). Như vậy, trong trường hợp giao dịch bình thường không bị tràn, có thể đảm bảo độ chính xác của phép tính. Mặc dù về lý thuyết vẫn có thể xảy ra một chút mất mát độ chính xác, nhưng đã có thể chấp nhận.

Tính toán lợi nhuận theo cách chia sẻ

Để tránh việc tiêu tốn nhiều Gas cho việc ghi lại phí giao dịch cho mỗi LP mỗi lần giao dịch, Uniswap đã áp dụng một phương pháp tương tự như cổ tức cổ phiếu. Chỉ cần ghi lại tổng phí giao dịch và phí giao dịch nên được phân bổ cho mỗi đơn vị thanh khoản, phí giao dịch mà LP nhận được có thể được tính toán dựa trên thanh khoản mà họ nắm giữ khi rút tiền.

Web3 Người mới bắt đầu: Những mẹo phát triển hợp đồng tôi học được từ mã Uniswap

Kết hợp dữ liệu trên chuỗi và ngoài chuỗi

Không phải tất cả thông tin đều cần phải lấy từ chuỗi. Chẳng hạn, danh sách giao dịch, thông tin hồ bơi có thể được lưu trữ trong cơ sở dữ liệu thông thường và đồng bộ định kỳ từ chuỗi. Giao dịch quan trọng được thực hiện trên chuỗi, trong khi thông tin không quan trọng có thể được lấy bằng cách hiệu quả hơn để nâng cao hiệu suất và hiệu quả.

Phân tách hợp đồng và tái sử dụng hợp đồng chuẩn

Các dự án lớn thường bao gồm nhiều hợp đồng được triển khai thực tế, ngay cả khi chỉ triển khai một hợp đồng, cũng có thể duy trì bằng cách kế thừa và chia nhỏ thành nhiều hợp đồng. Đồng thời, việc sử dụng các hợp đồng tiêu chuẩn đã có như ( như ERC721) có thể nâng cao hiệu quả phát triển và đơn giản hóa quản lý.

Web3 Người mới bắt đầu: Những mẹo nhỏ trong phát triển hợp đồng mà tôi học được từ mã Uniswap

Thực hành là cách học tốt nhất. Bằng cách tự tay xây dựng một phiên bản đơn giản của sàn giao dịch phi tập trung, không chỉ giúp hiểu sâu hơn về mã nguồn của Uniswap mà còn học hỏi được nhiều kiến thức thực tiễn từ các dự án. Hy vọng những chia sẻ kinh nghiệm này sẽ hữu ích cho con đường phát triển hợp đồng của bạn.

UNI-1.74%
Xem bản gốc
Trang này có thể chứa nội dung của bên thứ ba, được cung cấp chỉ nhằm mục đích thông tin (không phải là tuyên bố/bảo đảm) và không được coi là sự chứng thực cho quan điểm của Gate hoặc là lời khuyên về tài chính hoặc chuyên môn. Xem Tuyên bố từ chối trách nhiệm để biết chi tiết.
  • Phần thưởng
  • 7
  • Chia sẻ
Bình luận
0/400
LiquidityOraclevip
· 08-02 23:11
Tổng hợp một bài viết khác về cách đầu tư cơ bản.
Xem bản gốcTrả lời0
WhaleWatchervip
· 08-02 19:29
Có chút khó hiểu, ai có thể giải thích cho tôi về create2?
Xem bản gốcTrả lời0
RetailTherapistvip
· 07-31 02:40
Gửi cái này còn không bằng tự viết một dex để chơi đùa với mọi người.
Xem bản gốcTrả lời0
gas_guzzlervip
· 07-31 02:40
Dự đoán địa chỉ chiêu này cười chết, Thánh mẫu uniswap
Xem bản gốcTrả lời0
DeFiGraylingvip
· 07-31 02:35
Không nói nên lời, lại là buổi đào tạo kiểu này dành cho người mới...
Xem bản gốcTrả lời0
DEXRobinHoodvip
· 07-31 02:35
DOGE giáo sư nói đúng! Ngồi tù không phải là mơ!
Xem bản gốcTrả lời0
NightAirdroppervip
· 07-31 02:34
Nói nửa ngày không bằng gửi khoản vay nhanh thơm~
Xem bản gốcTrả lời0
  • Ghim
Giao dịch tiền điện tử mọi lúc mọi nơi
qrCode
Quét để tải xuống ứng dụng Gate
Cộng đồng
Tiếng Việt
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)