Pada tutorial langkah demi langkah ini, kamu akan belajar cara menciptakan dan mendeploy token ERC-20
di Ethereum.
Kita akan gunakan Metamask dan Remix IDE pada tutorial ini.
ERC
adalah singkatan dari Ethereum Request for Comment
. Pada dasarnya, mereka adalah standar yang disetujui oleh komunitas dan digunakan untuk menyampaikan persyaratan teknis dan spesifikasi untuk beberapa kasus penggunaan.
ERC-20
secara khusus adalah standar yang menguraikan spesifikasi teknis dari token yang dapat dipertukarkan.
Fungible token adalah token di mana semua ‘bagian’ dari token tersebut sama. Menukar 1 ETH dengan 1 ETH yang berbeda tidak mengubah apa pun. kamu masih memiliki 1 ETH. Oleh karena itu, ETH adalah token yang dapat dipertukarkan. Semua mata uang fiat seperti USD, Rupiah, juga dapat dipertukarkan.
NFT adalah Non-Fungible Tokens (lebih lanjut akan dijelaskan nanti) di mana setiap token berbeda dari token lain.
Sebagian besar token di Ethereum memenuhi spesifikasi ERC-20
. Mengikuti standar seperti ERC-20
memungkinkan pengembang aplikasi yang menggunakan token ERC-20
untuk dengan mudah mendukung semua token ERC-20
tanpa perlu menulis kode khusus untuk masing-masing token secara individual.
Misalnya, aplikasi decentralized exchange seperti Uniswap memungkinkan kamu menukar token apa pun dengan token lainnya. Hal ini hanya dimungkinkan karena hampir semua token mengikuti standar ERC-20
, sehingga Uniswap dapat menulis kode yang berfungsi dengan semua token yang mengikuti standar tersebut.
Pastikan kamu telah mengunduh dan menginstal Metamask. Pilih jaringan Sepolia Testnet
. Minta ether testnet di Sepolia melalui faucet berikut: - Sepolia Faucet
Setelah semuanya siap, mari kita mulai!
Kita gunakan Remix IDE untuk menulis smart contract. Di Remix, buat file kontrak baru, misalnya MyToken.sol
Di kontrak, tulis kode berikut:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "<https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol>";
contract MyToken is ERC20 {
constructor(string memory _name, string memory _symbol) ERC20(_name, _symbol) {
_mint(msg.sender, 10 * 10 ** 18);
}
}
Mari kita bahas baris per baris:
pragma solidity ^0.8.0;
Baris ini menentukan versi kompilator Solidity yang akan digunakan. ^0.8.0
berarti versi apa saja yang lebih besar dari 0.8.0. Biasanya, kamu ingin menggunakan versi kompilator Solidity terbaru, karena versi baru biasanya memiliki fitur-fitur baru atau optimisasi fitur lama.