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
Partnered With:

Giới thiệu đơn giản về Solidity|Bài 21: Gọi các hợp đồng khác

Đọc bài viết này mất 8 phút
Bài viết này mô tả cách tạo một tham chiếu đến hợp đồng thông qua mã hợp đồng đích (hoặc giao diện) và địa chỉ, từ đó gọi chức năng của hợp đồng đích.
Tiêu đề gốc: " Giới thiệu đơn giản về Solidity: 21. Gọi các hợp đồng khác 》
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à viết một "Sự tối giản vững chắc ""Bắt đầu" dành cho người mới học (chuyên gia lập trình có thể tìm bài hướng dẫn khác), với 1-3 bài giảng được cập nhật mỗi tuần.


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


Gọi Hợp đồng đã triển khai


Các nhà phát triển viết hợp đồng thông minh để gọi các hợp đồng khác, cho phép tái sử dụng các chương trình trên mạng Ethereum, từ đó xây dựng một hệ sinh thái thịnh vượng. Nhiều dự án web3 dựa vào việc gọi các hợp đồng khác, chẳng hạn như canh tác năng suất. Trong bài giảng này, chúng tôi giới thiệu cách gọi hàm của hợp đồng đích khi biết mã hợp đồng (hoặc giao diện) và địa chỉ.


Hợp đồng đích


Đầu tiên chúng ta viết một hợp đồng đơn giản OtherContract để gọi.



Hợp đồng này chứa biến trạng thái x, Nhật ký sự kiện được kích hoạt khi nhận được ETH và ba hàm:


getBalance(): Trả về số dư ETH của hợp đồng.

setX(): hàm thanh toán bên ngoài, có thể đặt giá trị của x và gửi ETH đến hợp đồng.

getX(): Đọc giá trị của x.


Gọi hợp đồng OtherContract


Chúng ta có thể sử dụng địa chỉ hợp đồng và mã hợp đồng (hoặc giao diện ) Để tạo tham chiếu đến hợp đồng: _Name(_Address), trong đó _Name là tên hợp đồng và _Address là địa chỉ hợp đồng. Sau đó, sử dụng tham chiếu của hợp đồng để gọi hàm của nó: _Name(_Address).f(), trong đó f() là hàm được gọi.


Ở đây chúng tôi giới thiệu 4 ví dụ về hợp đồng gọi điện:


1. Truyền địa chỉ hợp đồng


Chúng ta có thể chuyển địa chỉ hợp đồng đích vào hàm, tạo tham chiếu đến hợp đồng đích rồi gọi hàm mục tiêu. Lấy hàm setX của hợp đồng OtherContract làm ví dụ, chúng ta viết hàm callSetX trong hợp đồng mới và chuyển vào địa chỉ hợp đồng OtherContract đã triển khai _Address và tham số setX x:



2. Truyền các biến hợp đồng


Chúng ta có thể trực tiếp chuyển tham chiếu hợp đồng vào hàm, chỉ cần thay đổi loại địa chỉ của tham số trên thành tên hợp đồng đích , hơn Hợp đồng khác. Ví dụ sau triển khai việc gọi hàm getX() của hợp đồng đích.



3. Tạo các biến hợp đồng


Chúng ta có thể tạo các biến hợp đồng và sau đó gọi hàm mục tiêu thông qua nó . Trong ví dụ sau, chúng tôi lưu trữ tham chiếu đến hợp đồng OtherContract trong biến oc:



4. Gọi hợp đồng và gửi ETH


Nếu chức năng của hợp đồng mục tiêu là thanh toán thì chúng ta có thể chuyển tiền vào hợp đồng bằng cách gọi nó: _Name(_Address).f{value: _Value}(), trong đó _Name là tên hợp đồng , _Address là địa chỉ hợp đồng, f là tên của hàm mục tiêu và _Value là số lượng ETH được chuyển (bằng wei).


Hàm setX của hợp đồng OtherContract có thể thanh toán. Trong ví dụ sau, chúng tôi chuyển tiền đến và đi từ hợp đồng mục tiêu bằng cách gọi setX.



Sau khi chuyển, chúng ta có thể quan sát các thay đổi trong số dư ETH của hợp đồng mục tiêu thông qua sự kiện Log và hàm getBalance().


Tóm tắt


Trong bài giảng này chúng tôi giới thiệu cách tạo tham chiếu đến hợp đồng thông qua mã hợp đồng đích (hoặc giao diện) và địa chỉ, từ đó gọi chức năng của hợp đồng đích.


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