BTC
$96,000
5.73%
ETH
$3,521.91
3.97%
HTX
$0.{5}2273
5.23%
SOL
$198.17
3.05%
BNB
$710
3.05%
lang
简体中文
繁體中文
English
Tiếng Việt
한국어
日本語
ภาษาไทย
Türkçe
Trang chủ
AI AI
Tin nhanh
Bài viết
Sự kiện
BlockBeats Pro
Thêm
Thông tin tài chính
Chuyên đề
Hệ sinh thái chuỗi khối
Mục nhập
Podcast
Data
OPRR

Giới thiệu tối giản về sự vững chắc|Bài 24: Tạo hợp đồng mới trong hợp đồng

Đọc bài viết này mất 8 phút
Bài viết này sử dụng một ví dụ Uniswap tối giản để giới thiệu cách sử dụng phương thức create để tạo hợp đồng trong hợp đồng.
Tiêu đề gốc: "Giới thiệu về chủ nghĩa tối giản Solidity: 24. Tạo hợp đồng mới trong hợp đồng 》
Tác giả gốc: 0xAA 


Gần đây tôi đang học lại sự vững chắc, củng cố các chi tiết và cũng viết "Giới thiệu về sự tối giản của sự vững chắc " , dành cho người mới sử dụng (chuyên gia lập trình có thể tìm bài hướng dẫn khác), mỗi tuần có 1-3 bài giảng được cập nhật.


Tất cả mã và hướng dẫn đều là nguồn mở trên github: github.com/AmazingAng/WTFSolidity


Trong chuỗi Ethereum, người dùng (tài khoản bên ngoài, EOA) có thể tạo hợp đồng thông minh và hợp đồng thông minh cũng có thể tạo hợp đồng thông minh mới. Nền tảng giao dịch phi tập trung uniswap sử dụng hợp đồng nhà máy (Factory) để tạo ra vô số hợp đồng cặp tiền tệ (Pair). Trong bài giảng này, tôi sẽ sử dụng phiên bản đơn giản của uniswap để giải thích cách tạo hợp đồng thông qua hợp đồng.


tạo và tạo2


Có hai cách để tạo hợp đồng mới trong hợp đồng, create và create2, ở đây chúng ta nói về create, còn create2 sẽ được giới thiệu ở bài giảng tiếp theo.


Cách sử dụng create rất đơn giản, chỉ cần tạo một hợp đồng mới và chuyển vào các tham số mà trình tạo hợp đồng mới yêu cầu:



Hợp đồng nằm ở đâu được tạo Tên hợp đồng, x là đối tượng hợp đồng (địa chỉ), nếu người xây dựng phải trả tiền thì số tiền _value của ETH có thể được chuyển khi tạo và params là tham số của người xây dựng hợp đồng mới.


Uniswap tối giản


Hợp đồng cốt lõi Uniswap V2 bao gồm hai hợp đồng:


UniswapV2Pair: hợp đồng cặp tiền tệ, dùng để quản lý địa chỉ cặp tiền tệ, tính thanh khoản và hoạt động mua bán.

UniswapV2Factory: Hợp đồng nhà máy, được sử dụng để tạo các cặp tiền tệ mới và quản lý địa chỉ cặp tiền tệ.


Dưới đây, chúng tôi sử dụng phương thức tạo để triển khai phiên bản Uniswap tối giản: hợp đồng cặp tiền tệ Pair chịu trách nhiệm quản lý địa chỉ cặp tiền tệ và hợp đồng nhà máy PairFactory chịu trách nhiệm quản lý được sử dụng để tạo các cặp tiền tệ mới. , và quản lý địa chỉ cặp tiền tệ.



Hợp đồng Cặp rất đơn giản và chứa 3 biến trạng thái: Factory, token0 và token1.


Người xây dựng gán địa chỉ hợp đồng nhà máy cho nhà máy trong quá trình triển khai. Hàm khởi tạo sẽ được gọi một lần bởi hợp đồng nhà máy khi hợp đồng Cặp được tạo và token0 và token1 sẽ được cập nhật thành địa chỉ của hai Token trong cặp tiền tệ.


Câu hỏi: Tại sao uniswap không cập nhật địa chỉ token0 và token1 trong hàm tạo?


PairFactory  



Hợp đồng nhà máy (PairFactory) có hai biến trạng thái, getPair là hai Mã thông báo Bản đồ từ địa chỉ đến địa chỉ cặp tiền tệ, thuận tiện theo dõi Mã thông báo Tìm địa chỉ cặp tiền tệ; allPairs là một mảng các địa chỉ cặp tiền tệ, lưu trữ tất cả Mã thông báo Địa chỉ.


Hợp đồng PairFactory chỉ có một hàm createPair.Theo hai đầu vào Mã thông báo Xác định địa chỉ tokenA và tokenB để tạo hợp đồng Cặp mới. Trong số đó



Đó là đoạn mã để tạo hợp đồng, rất đơn giản. Bạn có thể triển khai hợp đồng PairFactory, sau đó gọi createPair với hai địa chỉ sau làm tham số để xem địa chỉ của cặp tiền tệ đã tạo là gì:  



Tóm tắt


Trong bài giảng này, chúng tôi sử dụng ví dụ về Uniswap tối giản để giới thiệu cách sử dụng phương thức create để tạo hợp đồng trong hợp đồng. Trong bài giảng tiếp theo, chúng tôi sẽ giới thiệu cách sử dụng phương thức create2 để triển khai Uniswap tối giản.


Liên kết gốc


Chào mừng bạn tham gia cộng đồng chính thức của BlockBeats:

Nhóm Telegram đăng ký: https://t.me/theblockbeats

Nhóm Telegram thảo luận: https://t.me/BlockBeats_App

Tài khoản Twitter chính thức: https://twitter.com/BlockBeatsAsia

举报 Báo lỗi/Báo cáo
Chọn thư viện
Thêm mới thư viện
Hủy
Hoàn thành
Thêm mới thư viện
Chỉ mình tôi có thể nhìn thấy
Công khai
Lưu
Báo lỗi/Báo cáo
Gửi