Thursday 9 December 2021

Memahami Standarisasi Token ERC-20 (Cryptocurrency)



EIP 20 token - ERC 20 adalah sebuah standarisasi token cryptocurrency. Dengan kata lain, sebuah token bisa dikatakan 'token crypto' jika memiliki sifat dan fungsi yang sesuai dengan ERC 20.

Standarisasi ini ditulis di kode solidity, sebuah bahasa pemrograman universal untuk membuat token dan smart contract. Kali ini, saya akan break down dan menjelaskan satu demi satu tentang setiap public method di ERC 20.

Method:
Public method adalah segala fungsi yang bisa di-trigger di solidity. Ini bisa menjadi semua bentuk sifat token yang akan dibuat. Token bisa dikatakan sebagai token nft, crypto, stablecoin, atau security jika token tersebut memiliki karakter method yang sesuai dengan standarisasi.

1. Name
function name() public view returns (string)
Method ini digunakan untuk menetapkan nama token crypto yang dibuat. Contoh: ArsanCoin.

2. Symbol
function symbol() public view returns (string)
Method ini digunakan untuk menetapkan simbol dari token crypto. Contoh: ACN.

3. Total Supply
function totalSupply() public view returns (uint256)
Method ini adalah untuk cek berapa banyak total token yang kita produksi. Contoh: 1 juta token ACN.

4. Decimals
function decimals() public view returns (uint8)
Method ini menentukan berapa jumlah desimal dari total supply dan transaksi di token yang dibuat. Contohnya, jika kita menetapkan nilai desimal di method ini sebagai 18, maka token ini dianggap bernilai x jika nilainya x * (10^18). Jadi untuk mengirim 1 token, nilai yang dikirim harus sebanyak 1000000000000000000. Banyak sekali ya? Hal ini dikarenakan kemungkinan yang bisa saja terjadi ketika swap token. Karena perbandingan harga bisa aja berbeda jauh.  

5. Balance Of
function balanceOf(address _owner) public view returns (uint256 balance)
Method ini digunakan untuk cek saldo token dari address tertentu. Method ini memiliki parameter (address _owner). Yang artinya, kita harus memasukan sebuah address, kemudian method ini akan me-return saldo yang address itu punya.

6. Transfer
function transfer(address _to, uint256 _value) public returns (bool success)
Jika kita ingin men-transfer token ke address lain, method inilah yang digunakan. Sebagaimana kita lihat di parameter method ini, kita harus set address penerima, dan juga berapa jumlah token yang ingin kita kirim.

7. Approve
function approve(address _spender, uint256 _value) public returns (bool success)
Method ini digunakan untuk mengizinkan smart contract lain untuk mengirim saldo dari wallet kita. Ketika kita men-trigger method ini, address kita akan masuk ke data map allowance. Contoh, ada smart contract pihak ketiga bernama XYZ. Disini, smart contract XYZ akan cek apakah user lain telah setuju untuk mengirim token ke address lain melalui smart contract XYZ.

8. Allowance
function allowance(address _owner, address _spender) public view returns (uint256 remaining)
Method ini digunakan untuk smart contract lain agar bisa cek apakah address kita telah approve atau belum untuk melakukan transaksi di smart contract pihak ketiga.

9. Transfer From
function transferFrom(address _from, address _to, uint256 _value) public returns (bool success)
Method ini sama seperti method Transfer. Namun disini kita bisa set penerima, jumlah token, dan pengirimnya juga. Method ini juga biasa digunakan oleh smart contract pihak ketiga untuk mengirim token dari seseorang ke orang lain. Dengan syarat, transaksi tersebut sudah di approve.

Event:
Event adalah sebuah fungsi yang harus di-trigger ketika menjalankan method. Dengan di-triggernya event, kita bisa mengirim informasi secara realtime ke DApp jika method tersebut telah selesai dijalankan.

1. Transfer
event Transfer(address indexed _from, address indexed _to, uint256 _value)
Di-trigger ketika Transfer dan Transfer From dijalankan.

2. Approval
event Approval(address indexed _owner, address indexed _spender, uint256 _value)
Di-trigger ketika method Approve dijalankan.

Itulah penjelasan mengenai tiap karakteristik dari standarisasi token erc 20. Semoga bermanfaat! Terima kasih!

0 komentar

Post a Comment

Hai, Mohon Komentar Yang Relevan Dan Tidak OOT!