Thiết lập môi trường phát triển
Mạng thử nghiệm sidechain EVM tương thích với EVM với hầu hết các phần mềm Ethereum để phát triển và triển khai các hợp đồng thông minh bao gồm:
Remix
Hướng dẫn này sẽ chỉ cho bạn cách triển khai hợp đồng thông minh Solidity cho mạng thử nghiệm sidechain EVM bằng Remix. Remix là một IDE trực tuyến để phát triển và triển khai các hợp đồng thông minh Solidity.
Điều kiện tiên quyết:
Trong hướng dẫn này, bạn sẽ sử dụng MetaMask làm ví và nhà cung cấp Web3 của mình. Nếu bạn chưa sở hữu ví Metamask, hãy tạo hoặc nhập tài khoản bằng MetaMask và cấp tiền cho ví của bạn bằng mã thông báo testnet bằng cách sử dụng vòi .
Bước 1 - Định cấu hình Remix
- Truy cập IDE Remix . Phía bên trái có menu [1] và trình duyệt tệp điển hình [2]. Các phần bổ trợ
Solidity Compiler
[3] vàDeploy and run transactions
[4] sẽ được kích hoạt theo mặc định.
Nếu trình biên soạn Solidity và plugin triển khai chưa được kích hoạt, bạn có thể tìm kiếm và kích hoạt chúng bằng trình quản lý plugin [5] nằm ở phía dưới bên trái của màn hình.
Mở MetaMask và kiểm tra kỹ xem sidechain testnet có phải là mạng đã chọn không. Điều này sẽ đảm bảo Remix kết nối với đúng mạng khi bạn định cấu hình môi trường của mình trong bước tiếp theo.
[
- Trong Remix, chọn plugin
Deploy and run transactions
. Vì bạn đang sử dụng MetaMask làm nhà cung cấp Web3 của mình, hãy chọn ‘Nhà cung cấp được tiêm’ trong cài đặt môi trường.
Bước 2 - Hợp đồng thông minh
Với Remix được định cấu hình cho mạng thử nghiệm sidechain, bạn có thể chuyển sang phát triển và triển khai hợp đồng thông minh của mình.
- Trong trình khám phá tệp Remix, tạo tệp
erc20.sol
trong thư mụccontracts/
và nhập các câu lệnh Solidity sau:
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.4;
import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol";
import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/Ownable.sol";
/**
* @title {Mintable ERC20 Token}
*/
contract MintableERC20 is ERC20("Mintable Token", "MT"), Ownable {
/**
* @dev See (ERC20 - _mint) function for details.
*
*/
function mint(address to, uint256 amount) external payable onlyOwner() {
_mint(to, amount);
}
}
Hợp đồng thông minh này mô tả mã thông báo ERC20 có thể đúc được bằng thư viện hợp đồng OpenZeppelin ERC20.
Bước 3 - Biên dịch và triển khai
- Sử dụng plugin
Solidity compiler
[1], chọn ‘biên dịch’ hợp đồng thông minh [2].
Khi hợp đồng được biên dịch, bạn có thể xem ABI, Bytecode của hợp đồng và nhiều thông tin khác nằm trong ‘Chi tiết biên dịch’ [3].
- Sau đó, chọn plugin
Deploy and run transactions
> chọn ‘Triển khai’ [1] và xác nhận mọi lời nhắc MetaMask để ký giao dịch. Nếu quá trình triển khai thành công, bảng điều khiển Remix sẽ trả về dấu kiểm màu lục với thông tin chi tiết có thể mở rộng [2]. Bảng ‘Hợp đồng đã triển khai’ sẽ chứa địa chỉ hợp đồng và tạo giao diện hợp đồng để kiểm tra các chức năng [3].
Để xác minh rằng hợp đồng thông minh đã được triển khai trên testnet sidechain, bạn có thể:
- Tìm kiếm hàm băm giao dịch hoặc địa chỉ hợp đồng trên trình khám phá testnet chuỗi bên EVM.
- Mở MetaMask và xem giao dịch triển khai hợp đồng đã được ký thành công chưa.
- Kiểm tra nhật ký Remix để biết chi tiết triển khai.
Hardhat
Hướng dẫn này sẽ chỉ cho bạn cách triển khai hợp đồng thông minh Solidity cho mạng thử nghiệm sidechain EVM bằng Hardhat. Hardhat là một môi trường phát triển phổ biến cho phần mềm Ethereum.
Điều kiện tiên quyết:
Hardhat được sử dụng trong các dự án NPM cục bộ, vì vậy bạn sẽ cần NPM 7 trở lên.
- Cài đặt Node.js phiên bản 15 trở lên bằng NVM :
$nvm install 15 --lts
$nvm alias default 15
- Kiểm tra phiên bản Node và NPM:
$node -v
v15.14.0
$npm -v
7.7.6
Bước 01 - Tạo dự án Hardhat
Hướng dẫn này sẽ tạo một dự án NPM mới và khởi tạo npx hardhat để khởi động một dự án JavaScript mẫu và định cấu hình nó để triển khai cho mạng thử nghiệm sidechain.
- Tạo một dự án mới:
$mkdir Hardhat/
$cd Hardhat/
- Khởi tạo dự án NPM mới và cài đặt Hardhat cục bộ:
$npm init
$npm install --save-dev hardhat
Để tạo dự án JavaScript mẫu, hãy chạy npx hardhat trong thư mục dự án của bạn và chọn Tạo dự án JavaScript.
$npx hardhat
888 888 888 888 888
888 888 888 888 888
888 888 888 888 888
8888888888 8888b. 888d888 .d88888 88888b. 8888b. 888888
888 888 "88b 888P" d88" 888 888 "88b "88b 888
888 888 .d888888 888 888 888 888 888 .d888888 888
888 888 888 888 888 Y88b 888 888 888 888 888 Y88b.
888 888 "Y888888 888 "Y88888 888 888 "Y888888 "Y888
👷 Welcome to Hardhat v2.9.9 👷
? What do you want to do? …
❯ Create a JavaScript project
Create a TypeScript project
Create an empty hardhat.config.js
Quit
Đang chạy nhiệm vụ
Để xem tất cả các tùy chọn và lệnh với dự án Hardhat của bạn, chỉ cần chạy npx hardhat:
$ npx hardhat
Hardhat version 2.12.2
Usage: hardhat [GLOBAL OPTIONS] <TASK> [TASK OPTIONS]
GLOBAL OPTIONS:
--config A Hardhat config file
--emoji Use emoji in messages
--flamegraph Generate a flamegraph of your Hardhat tasks
--help Shows this message, or a task's help if its name is provided
--max-memory The maximum amount of memory that Hardhat can use
--network The network to connect to
--show-stack-traces Show stack traces (always enabled on CI servers)
--tsconfig A TypeScript config file
--typecheck Enable TypeScript type-checking of your scripts/tests
--verbose Enables Hardhat verbose logging
--version Shows hardhat's version
AVAILABLE TASKS:
check Check whatever you need
clean Clears the cache and deletes all artifacts
compile Compiles the entire project, building all artifacts
console Opens a Hardhat console
coverage Generates a code coverage report for tests
flatten Flattens and prints contracts and their dependencies
gas-reporter:merge
help Prints this message
node Starts a JSON-RPC server on top of the Hardhat network
run Runs a user-defined script after compiling the project
test Runs mocha tests
typechain Generates Typechain typings for compiled contracts
verify Verifies contract on Etherscan
To get help for a specific task run: npx hardhat help [task]
Bước 02 - Định cấu hình Hardhat
Dự án JavaScript mẫu của chúng tôi chứa tệp hardhat.config.js. Trường cấu hình mạng là một đối tượng tùy chọn trong đó tên mạng ánh xạ tới cấu hình của chúng và chúng tôi có thể đặt tài khoản mà chúng tôi muốn ký giao dịch. Ví dụ:
require("@nomicfoundation/hardhat-toolbox");
/** @type import('hardhat/config').HardhatUserConfig */
const Private_Key = "INSERT_PRIV_KEY"
module.exports = {
networks: {
evm-sidechain: {
url: `https://faucet.sidechain.evmtestnet.iohkdev.io/`,
accounts: [`0x${Private_Key}`]
},
},
solidity: "0.8.17",
};
Bước 03 - Biên dịch và triển khai
Để biên dịch các tệp Solidity trong thư mục hợp đồng/của dự án Hardhat của bạn, hãy thực hiện biên dịch npx hardhat:
$npx hardhat compile
Triển khai với Hardhat sử dụng các tập lệnh triển khai nằm trong scripts/.
- Để triển khai với Hardhat, hãy thực thi tập lệnh triển khai với evm-sidechain làm tùy chọn mạng.
$npx hardhat run scripts/deploy.js --network evm-sidechain
Greeter deployed to: 0x95E1C8F6C00d8cB518faBA33c8Ae814fc12E3090
🎉 Hoan hô! Bạn đã triển khai hợp đồng thông minh của mình cho mạng thử nghiệm sidechain EVM và có thể tìm kiếm triển khai của bạn trên trình khám phá testnet.
Truffle
Hướng dẫn này sẽ chỉ cho bạn cách triển khai hợp đồng thông minh Solidity cho mạng thử nghiệm sidechain EVM bằng Truffle. Truffle là một khung phát triển phổ biến cho các ứng dụng dựa trên EVM.
Điều kiện tiên quyết:
Cài đặt các phụ thuộc sau:
- Phiên bản LTS của Node.js.
- Truffle Suite
Kiểm tra Node.js và NPM đã được cài đặt chưa:
$node --version
$npm --version
Cài đặt Truffle và kiểm tra xem nó đã được cài chưa:\
$npm install -g truffle
$truffle version
Bước 1 - Định cấu hình Truffle
Bạn cần tạo một dự án Truffle trước khi định cấu hình Truffle để triển khai trên mạng thử nghiệm sidechain EVM. Phần trình diễn này sẽ sử dụng React Truffle Box .
Tạo một thư mục dự án mới cho dự án Truffle của bạn và mở hộp React Truffle Box:
$mkdir React-Truffle
$cd React-Truffle
$truffle unbox react
Định cấu hình Truffle để sử dụng mạng thử nghiệm sidechain EVM bằng cách thêm phần sau vào React-Truffle/truffle/truffle-config.js
> Dòng 45. Xóa nhận xét trên Dòng 25. Thay thế YOUR_SEED_PHRASE
bằng cụm từ dễ nhớ của bạn.
Bước - Di chuyển Truffle
Tại thời điểm này, bạn đã xác định mạng thử nghiệm sidechain EVM và tài khoản mạng thử nghiệm của mình để ký triển khai hợp đồng thông minh. Bây giờ bạn đã sẵn sàng để triển khai!
Trong thư mục truffle/
của dự án của chúng ta, hãy thực thi truffle migrate
trong khi chuyển evm-sidechain
cho --network parameter
:
$truffle migrate --network evm-sidechain
Khi thực hiện truffle migrate
, Truffle sẽ trả lại hàm băm giao dịch và địa chỉ hợp đồng có thể được tìm kiếm trên trình khám phá testnet chuỗi bên EVM.