5. Triển khai hợp đồng
Last updated
Last updated
Nhận testnet KLAY để triển khai hợp đồng
Cấu hình Truffle
Thiết lập triển khai (chọn hợp đồng bạn muốn triển khai)
Triển khai
Để triển khai hợp đồng, ta cần có KLAY trong tài khoản của bạn để trả phí gas. Bạn có thể nhận 150 KLAY qua Ví Klaytn trong testnet. 1. Tạo tài khoản Klaytn của bạn tại Ví Baobab Klaytnkhóa riêng tư -> PRIVATE KEY
sẽ được dùng trong cấu hình Truffle. Sao chép khóa riêng tư vào đâu đó 2. Sau khi tạo tài khoản Klaytn, chạy Faucet để nhận 5 KLAY từ testnet Baobab trong Vòi Baobab Klaytn
truffle-config.js
là tập tin cấu hình có chứa cấu hình triển khai. Ta sẽ triển khai hợp đồng bằng cách dùng Private key
vừa tạo ở bước trước. Dán Private key
có đủ KLAY của bạn vào truffle-config.js
CẢNH BÁO: Bạn không nên để lộ khóa riêng tư của mình. Nếu không tài khoản của bạn sẽ bị xâm nhập.
networks
Xem thuộc tính networks
ở trên. Mạng lưới klaytn
có 4 thuộc tính,
provider
, network_id
, gas
, gasPrice
.
provider: () => new HDWalletProvider(PRIVATE_KEY, URL)
Như tên gọi, thuộc tính này tích hợp khóa riêng tư và url được định nghĩa ở trên.
network_id: NETWORK_ID
Chỉ ra ID của mạng lưới trong Klaytn, bạn nên đặt thành 1001
để sử dụng mạng lưới Baobab Klaytn (testnet).
gas: GASLIMIT
Phí gas tối đa bạn sẵn sàng chi trả.
gasPrice: null
Đây là mức giá trên mỗi đơn vị gas. Hiện giá gas trong Klaytn được cố định ở mức '25000000000'
. Bằng cách đặt thành null
, truffle sẽ tự động đặt giá gas.
compiler
Hãy nhớ rằng ta đã dùng phiên bản 0.5.6 cho hợp đồng Solidity, đồng thời chỉ ra phiên bản trình biên dịch ở đây.
migrations/2_deploy_contracts.js
:
Bạn có thể chỉ ra mã hợp đồng bạn sẽ triển khai trong thư mục contracts/
.
Nhập tập tin hợp đồng của bạn (Klaystagram.sol
) qua
const Klaystagram = artifacts.require('./Klaystagram.sol')
Dùng deployer
để triển khai hợp đồng của bạn, deployer.deploy(Klaystagram)
.
Nếu bạn muốn thêm logic sau khi triển khai hợp đồng, hãy dùng .then()
(không bắt buộc)
Để lưu deployedABI
và deployedAddress
của hợp đồng, hãy dùng fs
mô-đun node.js
fs.writeFile(filename, content, callback)
(không bắt buộc)
cf. Để biết thêm thông tin về artifacts.require()
, hãy tham chiếu tài liệu chính thức của truffle tại truffle docs
Trong cửa sổ lệnh của bạn, hãy gõ $ truffle deploy --network baobab
.
Hệ thống sẽ triển khai hợp đồng của bạn theo cấu hình truffle-config.js
và migrations/2_deploy_contracts.js
.
Cửa sổ lệnh sẽ hiển thị địa chỉ hợp đồng đã triển khai nếu triển khai thành công.
cf) --reset
option
Nếu bạn đưa ra tùy chọn này, Truffle sẽ biên dịch và triển khai lại hợp đồng của bạn ngay cả khi hợp đồng không thay đổi.\ ex) $ truffle deploy --reset --network baobab