Kita Akan Buat Apa?
Hari ini kamu akan membuat smart contract bernama “MessagePortal”:
๐น Siapa pun bisa kirim pesan ke blockchain
๐น Setiap pesan disimpan di dalam smart contract
๐น Kita bisa ambil semua pesan yang pernah dikirim
Buat File Smart Contract
๐ Masuk ke folder contracts/
dan buat file baru:
cd contracts
nano MessagePortal.sol
โ๏ธ Isi dengan kode ini:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
contract MessagePortal {
string[] public messages;
function sendMessage(string memory _message) public {
messages.push(_message);
}
function getAllMessages() public view returns (string[] memory) {
return messages;
}
}
๐ Penjelasan singkat:
messages[]
menyimpan semua pesansendMessage()
untuk menambah pesangetAllMessages()
untuk melihat semua pesan
Buat Skrip Deploy
๐ Masuk ke folder scripts/
dan buat file:
cd ../scripts
nano deploy.js
โ๏ธ Isi dengan kode:
const hre = require("hardhat");
async function main() {
const MessagePortal = await hre.ethers.getContractFactory("MessagePortal");
const contract = await MessagePortal.deploy();
await contract.deployed();
console.log("โ
Contract deployed to:", contract.address);
}
main().catch((error) => {
console.error(error);
process.exitCode = 1;
});
Deploy ke Sepolia Testnet
๐ Kembali ke root proyek, jalankan:
npx hardhat run scripts/deploy.js --network sepolia
Jika sukses, kamu akan lihat:
โ
Contract deployed to: 0x1234abc....7890
Salin alamat itu, lalu buka:
๐ https://sepolia.etherscan.io
โ tempel alamat untuk melihat kontrakmu live di blockchain!
Bonus: Verifikasi Kontrak di Etherscan (opsional)
Jika kamu ingin nama kontrak + kode muncul di Etherscan, tambahkan plugin Hardhat Etherscan:
npm install --save-dev @nomicfoundation/hardhat-verify
Lalu tambahkan ini di hardhat.config.js
:
require("@nomicfoundation/hardhat-toolbox");
module.exports = {
solidity: "0.8.20",
networks: {
sepolia: {
url: "https://eth-sepolia.g.alchemy.com/v2/YOUR_ALCHEMY_KEY",
accounts: ["0xYOUR_PRIVATE_KEY"]
}
},
etherscan: {
apiKey: "YOUR_ETHERSCAN_API_KEY"
}
};
Lalu jalankan:
npx hardhat verify --network sepolia 0xALAMAT_KONTRAK_KAMU
Ringkasan
โ
Kamu berhasil menulis kontrak MessagePortal.sol
โ
Kamu berhasil deploy ke Sepolia
โ
Kamu bisa lihat hasilnya di Etherscan
โ
(Opsional) Bisa verifikasi kode di Etherscan
Leave a Reply