Menggunakan Mallet untuk Berkomunikasi Dengan Testnet IELE Cardano
Testnet Cardano
Cardano adalah blockchain publik sekaligus platform smart contract yang menawarkan fitur-fitur yang lebih canggih dibandingkan protokol-protokol yang pernah dikembangkan sebelumnya.
Saat ini ada dua testnet Cardano yang dapat digunakan untuk men-deploy dan mengeksekusi smart contracts yaitu testnet KEVM dan IELE. Testnet KEVM adalah testnet untuk mencoba smart contracts yang dibuat untuk Ethereum Virtual Machine (EVM) sedangkan testnet IELE adalah virtual machine smart contract pertama yang menggunakan formal semantics yang dikembangkan untuk tujuan memberikan keamanan dan kinerja lebih baik.
Mallet
Mallet adalah ‘minimum wallet’, sebuah command-line utility untuk men-deploy smart contracts dan berinteraksi dengan testnet KEVM dan IELE. Mallet ditulis dalam Javascript dan dibuat berdasarkan Node.js REPL sehingga dapat memberikan akses pada fungsi-fungsi praktis dan juga berbagai jenis library seperti Web3. Selain itu Mallet dapat digunakan sebagai library untuk program-program yang dibangun dengan Javascript.
Environment
Contoh-contoh di bawah dijalankan di Ubuntu 16.04.
Instalasi Mallet
Mallet memerlukan Node.js versi 10.4.0 atau lebih. Jika Node.js belum terpasang gunakan nvm untuk menginstalnya.
Untuk mendapatkan versi teranyar dari Mallet, clone repo GitHub-nya:
$ git clone https://github.com/input-output-hk/mallet
Lalu ketik:
$ cd mallet
$ npm install
Perintah ini akan mengunduh Mallet dan menginstalnya beserta dependencies-nya.
Setelah selesai, cek instalasi dengan mengetik:
$ ./mallet --help
Jika help message Mallet muncul seperti di bawah ini maka instalasi telah berhasil.
mallet 2.1.0 - command line utility for KEVM/IELE testnetsUSAGE mallet <testnet>ARGUMENTS <testnet> JSON RPC endpoint to connect. Possible values are: 'kevm', 'iele', or a custom HTTP(S) URL requiredOPTIONS -d, --datadir Specify data directory optional default: "/home/ubuntu/.mallet2"GLOBAL OPTIONS -h, --help Display help
-V, --version Display version
--no-color Disable colors
--quiet Quiet mode - only displays warn and error messages
-v, --verbose Verbose mode - will also output debug messages
Apabila ada error sehubungan dengan bignumber.js seperti:

Instal bignumber.js:
$ npm i bignumber.js@2.0.7
Kemudian periksa kembali instalasi dan pastikan help message Mallet muncul seperti di atas.
Command-Line Interface (CLI)
CLI Mallet dapat digunakan untuk:
- Berkomunikasi dengan testnet
- Membuat account
- Meminta token dari faucet
- Compile smart contract
- Deploy smart contract ke testnet
- Mengeksekusi smart contract
Jalankan Mallet dan hubungkan ke testnet IELE:
$ ./mallet iele
Prompt Mallet akan muncul:

yang berarti Mallet siap untuk digunakan.
Perintah-perintah (Commands) Mallet
Bantuan
help

memanggil README file Mallet yang ada di:
$ https://github.com/input-output-hk/mallet/blob/master/README.md
listCommands memperlihatkan semua perintah yang dapat digunakan.

Manajemen Account
newAccount membuat account baru (membuat key pair untuk sebuah account baru). Private key dari key pair disimpan di datadir (yang default-nya di ~/.mallet2) dan dienkripsi dengan password yang diberikan. newAccount memberikan alamat account yang baru dibuat.

Dalam hal ini account yang baru dibuat mempunyai alamat: 0x38e9cdff00b3e2820069cc4b624d9811f3d0ad01
listAccounts menampilkan alamat dari semua account yang ada.

selectAccount memilih account untuk perintah-perintah seperti iele.simpleTransfer, getBalance, requestFunds.

currentAccount mengecek account mana yang sedang di-select.

Komunikasi Dengan Testnet
getBalance menampilkan saldo sebuah account.

Saldo account 0x38e9cdff00b3e2820069cc4b624d9811f3d0ad01 adalah nol.
requestFunds memanggil Faucet dari testnet guna meminta dana bagi sebuah account. requestFunds akan mengembalikan hash dari transaksi tersebut. Terlihat di sini bahwa saldo account bertambah setelah perintah requestFunds dieksekusi.

Detil transaksi ini (0xeee1e76c5e062dad0619a4d928042af1c4470b70b8ea58edfb0575ea6d87086f) dapat dilihat di testnet blockchain explorer:

dengan cara mem-paste hash transaksi tersebut ke search box lalu menekan tombol ‘Search’.
Perintah-perintah IELE
iele.simpleTransfer mentransfer nilai dari satu account ke account lainnya dan mengembalikan hash dari transaksi tersebut.

Transaksi terlihat di testnet explorer seperti:

Di artikel berikutnya akan kami jelaskan bagaimana men-deploy smart contract ke testnet IELE.