Menulis dan Mendeploy Smart Contract Sendiri ke Sepolia

rantissi Avatar
Menulis dan Mendeploy Smart Contract Sendiri ke Sepolia

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 pesan
  • sendMessage() untuk menambah pesan
  • getAllMessages() 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

Your email address will not be published. Required fields are marked *