Talking to Contracts
Tự học lập trình Web3: Talking to Contracts: Nói chuyện với hợp đồng trong khoá tự học Solidity
Nói chuyện với hợp đồng thông minh bằng Javascript
Bây giờ chúng ta đã khởi tạo Web3.js với nhà cung cấp Web3 của MetaMask, hãy thiết lập nó để nói chuyện với hợp đồng thông minh của chúng ta.
Web3.js sẽ cần 2 thứ để trao đổi với hợp đồng của bạn: địa chỉ hợp đồng và ABI của nó.
Địa chỉ hợp đồng
Sau khi bạn viết xong hợp đồng thông minh của mình, bạn sẽ biên dịch nó và triển khai nó lên Ethereum. Sau khi bạn triển khai hợp đồng của mình, nó sẽ nhận được một địa chỉ cố định trên Ethereum, nơi nó sẽ tồn tại mãi mãi. Nếu bạn nhớ lại từ học trước, địa chỉ của hợp đồng CryptoKitties trên mạng chính Ethereum là 0x06012c8cf97BEaD5deAe237070F9587f8E7A266d.
Bạn sẽ cần sao chép địa chỉ này sau khi triển khai để trao đổi với hợp đồng thông minh của mình.
Hợp đồng ABI
Một điều kiện cần nữa để Web3.js có thể trao đổi với hợp đồng thông minh là ABI của nó.
ABI là viết tắt của Application Binary Interface. Về cơ bản, đó là bản trình bày các phương thức trong hợp đồng của bạn ở định dạng JSON cho Web3.js biết cách định dạng các lệnh gọi hàm theo cách mà hợp đồng của bạn sẽ hiểu.
Khi bạn biên dịch hợp đồng của mình để triển khai sang Ethereum, trình biên dịch của ngôn ngữ lập trình Solidity sẽ cung cấp cho bạn ABI, vì vậy bạn sẽ cần sao chép và lưu nó ngoài địa chỉ hợp đồng.
Nếu chúng tôi bao gồm cryptozombies_abi.js trong dự án của mình, chúng tôi sẽ có thể truy cập vào CryptoZombies ABI bằng cách sử dụng biến đó.
Khởi tạo Hợp đồng Web3.js
Khi bạn có địa chỉ và ABI của hợp đồng, bạn có thể khởi tạo nó trong Web3 như sau: