Smart Contract adalah program komputer yang berjalan di atas jaringan blockchain dan secara otomatis mengeksekusi perjanjian yang telah diprogram ketika kondisi tertentu terpenuhi. Smart contract dirancang untuk memfasilitasi, menegakkan, dan mengotomatisasi proses kontrak tanpa memerlukan pihak ketiga.
Karakteristik Smart Contract:
- Desentralisasi: Berjalan di jaringan blockchain, sehingga tidak bergantung pada satu server pusat.
- Transparansi: Semua transaksi dan eksekusi kontrak dapat dilihat oleh semua pengguna di jaringan.
- Keamanan: Data dalam blockchain dienkripsi dan sulit untuk dimanipulasi.
- Otomatisasi: Kontrak akan berjalan otomatis sesuai dengan kode yang telah ditentukan.
- Immutable: Setelah kontrak diterapkan, tidak dapat diubah.
Contoh Penggunaan:
- Keuangan: Transfer aset otomatis setelah pembayaran selesai.
- Supply Chain: Memvalidasi dan melacak barang dalam rantai pasokan.
- Aset Digital: Membuat dan mentransfer NFT.
- Asuransi: Membayar klaim secara otomatis jika syarat terpenuhi.
Smart contract sering digunakan dalam jaringan blockchain seperti Ethereum, Binance Smart Chain, dan Solana, dengan bahasa pemrograman seperti Solidity untuk pengembangannya.
Sekarang kita akan mencoba membuat blockchain sederhana
Langkah 1: Install dan Konfigurasi Ganache
Ganache adalah sebuah personal blockchain yang sering digunakan untuk pengembangan, pengujian, dan debugging aplikasi blockchain. Ini adalah bagian dari paket perangkat lunak yang disediakan oleh Truffle Suite, yang dirancang untuk membantu pengembang dalam membangun dan menguji aplikasi blockchain.
Berbeda dengan blockchain publik seperti Ethereum yang digunakan di lingkungan produksi, Ganache menyediakan lingkungan blockchain lokal yang dapat dijalankan di mesin pengembangan.
Download dan Install Ganache:
- Download Ganache dari https://trufflesuite.com/ganache/
- Install dan jalankan Ganache di komputer Anda.
Konfigurasi Ganache:
Setelah Ganache berjalan, buat jaringan blockchain lokal (Quickstart Ethereum) atau proyek khusus.
Catat IP Address dan Port yang disediakan di Ganache.
Langkah 2: Download MyEtherWallet
Download MEW:
Download file ZIP MyEtherWallet (MEW) dari https://github.com/MyEtherWallet/etherwallet.
Ekstrak file ZIP di komputer Anda dan jalankan file index.html di browser untuk membuka MyEtherWallet secara lokal (Disini saya menggunakan xampp yang akan diletakkan didalam htdocs folder.
Langkah 3: Menulis dan Mengimplementasikan Kontrak Pintar
Buka Remix IDE:
Akses https://remix.ethereum.org/.
Buat File Baru:
Buat file baru dengan nama hadcoin.sol atau sesuai selera kalian di Remix.
Kode Kontrak Pintar: Copy dan letakkan didalam file tersebut
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.22;
contract HadcoinICO {
// Maximum number of Hadcoins available for sale
uint public maxHadcoins = 1000000;
// USD to Hadcoins conversion rate
uint public usdToHadcoins = 1000;
// Total number of Hadcoins bought by investors
uint public totalHadcoinsBought = 0;
// Mapping from investor address to equity in Hadcoins and USD
mapping(address => uint) public equityHadcoins;
mapping(address => uint) public equityUsd;
// Modifier to check if an investor can buy Hadcoins
modifier canBuyHadcoins(uint usdInvested) {
require(
usdInvested * usdToHadcoins + totalHadcoinsBought <= maxHadcoins,
"Not enough Hadcoins available"
);
_;
}
// Get equity in Hadcoins of an investor
function equityInHadcoins(address investor) external view returns (uint) {
return equityHadcoins[investor];
}
// Get equity in USD of an investor
function equityInUsd(address investor) external view returns (uint) {
return equityUsd[investor];
}
// Buy Hadcoins
function buyHadcoins(address investor, uint usdInvested) external canBuyHadcoins(usdInvested) {
uint hadcoinsBought = usdInvested * usdToHadcoins;
equityHadcoins[investor] += hadcoinsBought;
equityUsd[investor] = equityHadcoins[investor] / usdToHadcoins;
totalHadcoinsBought += hadcoinsBought;
}
// Sell Hadcoins
function sellHadcoins(address investor, uint hadcoinsSold) external {
require(equityHadcoins[investor] >= hadcoinsSold, "Insufficient Hadcoins to sell");
equityHadcoins[investor] -= hadcoinsSold;
equityUsd[investor] = equityHadcoins[investor] / usdToHadcoins;
totalHadcoinsBought -= hadcoinsSold;
}
}
Compile Kontrak Pintar:
Pilih compiler 0.8.22 di Remix dan klik Compile.
Langkah 4: Deploy Kontrak di MyEtherWallet
Salin Bytecode:
Setelah kontrak berhasil dikompilasi, salin Bytecode dari tab Compilation Details di Remix yang berada di HadcoinICO.json. Kemudian atur gas
Hubungkan MEW dengan Ganache:
Di MyEtherWallet, klik Add Custom Network/Node.
Masukkan IP Address dan Port dari Ganache.
Pilih jaringan ini untuk digunakan.
Deploy Kontrak:
Di MEW, buka menu Contracts dan pilih Deploy Contract.
Tempelkan Bytecode yang disalin sebelumnya.
Pilih akun dari Ganache untuk mendanai transaksi (gunakan private key dari Ganache).
Klik Sign Transaction dan kemudian Deploy.
Langkah 5: Interaksi dengan Kontrak
Masukkan ABI:
Salin ABI dari Remix dan tempelkan di MEW pada bagian Interact with Contract.
Interaksi Fungsi Kontrak:
Gunakan fungsi seperti buy_hadcoins atau sell_hadcoins untuk menguji. Isi parameter sesuai kebutuhan (misalnya, alamat akun dan jumlah USD).
No comments:
Post a Comment