Shardeum — Cara Menerapkan Kontrak Cerdas ERC-20 di Shardeum Menggunakan Truffle
--
Truffle adalah lingkungan pengembangan kelas dunia, kerangka kerja pengujian, dan jalur aset untuk blockchain menggunakan Ethereum Virtual Machine (EVM). Tujuan dari lingkungan pengembangan ini adalah untuk membuat hidup sebagai pengembang lebih mudah sementara mereka fokus pada membangun proyek mereka di blockchain.
Shardeum adalah platform kontrak pintar berbasis EVM sehingga setiap kontrak pintar yang Anda tulis di/untuk Ethereum dapat digunakan atau dimigrasikan ke Shardeum dengan mulus. Manfaat menggunakan Shardeum adalah dapat memproses dengan kecepatan lebih dari 100k TPS dengan desentralisasi sejati dan perkiraan biaya transaksi sebesar $0,01. Dengan transaksi yang murah dan cepat, Anda dan pengguna Anda akan dimanjakan ketika jaringan diharapkan akan diluncurkan pada akhir tahun 2022.
Ada berbagai cara ramah EVM untuk menerapkan kontrak pintar dan DApps Anda di Shardeum Liberty (alphanet). Truffle, Remix, Hardhat adalah beberapa lingkungan pengembangan terkenal yang dapat Anda gunakan untuk mengembangkan aplikasi Web 3 Anda. Meskipun kami telah membahas tentang menyebarkan aplikasi menggunakan Remix dan Hardhat di blog kami sebelumnya, kami ingin membawa Anda melalui cara memanfaatkan Truffle untuk membuat kontrak pintar dan membangun DApps Anda.
Pengaturan Lingkungan Truffle
Ada beberapa persyaratan teknis bagi pengembang untuk mulai menggunakan Truffle. Instal dependensi berikut:
- NodeJS v12 atau yang lebih baru (tersedia di sini)
- Penginstal Paket Npm/Yarn (disertakan dengan Node)
- Windows, Linux atau Mac OS X
Memasang Truffle
Setelah dependensi di atas berhasil diinstal. Anda sekarang dapat menginstal Truffle.
npm install -g truffle
Untuk memverifikasi bahwa Truffle diinstal dengan benar, ketik versi truffle ke terminal (cmd).
Membuat Proyek
Setelah memastikan Truffle berhasil diinstal, buat proyek Anda sendiri dan beri nama seperti “testToken”.
Membuat direktori baru untuk proyek Truffle Anda
mkdir testToken
cd testToken
Inisialisasi proyek Anda
truffle init
Setelah operasi ini selesai, Anda sekarang akan memiliki struktur proyek dengan item berikut:
- contracts/: Direktori untuk kontrak Solidity
- migrations/: Direktori untuk file penyebaran yang dapat ditulis
- test/: Direktori untuk file pengujian untuk menguji aplikasi dan kontrak Anda
- truffle-config.js: File konfigurasi truffle
- build (terlihat setelah dikompilasi): Kontrak Soliditas yang dikompilasi dengan bytecode dan ABI
Buat Kontrak
Anda dapat menulis kontrak pintar Anda sendiri, atau menggunakan kontrak standar ‘openzeppellin’ sumber terbuka dan membangun di atasnya. Karena kita menggunakan ‘openzeppelin’ untuk testToken kita, itu membutuhkan ketergantungan berikut.
npm install @openzeppelin/contracts
Setelah dependensi diinstal, buat file bernama “testToken.sol” di direktori kontrak.
// SPDX-License-Identifier: MITpragma solidity ^0.8.0;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";contract testToken is ERC20 {
constructor(uint256 initialSupply) ERC20("testTkn", "TST") { _mint(msg.sender, initialSupply);
}
}
Kompilasi Kontrak
Untuk mengkompilasi proyek Truffle, ubah ke direktori root (dalam direktori testToken kasus kami) dan jalankan perintah di terminal.
truffle compile
Migrasi Pengkodean
Untuk menyebarkan kontrak testToken kami di Shardeum Liberty, kami harus membuat migrasi untuk mendapatkan kontrak di jaringan. Buat file di folder migrasi bernama “2_deploy.js”.
var test = artifacts.require("testToken");module.exports = function(deployer) {
// deployment
deployer.deploy(test, '10000000000000000000000');
};
Mengkonfigurasi Truffle Untuk Shardeum Liberty (Testnet)
- Buka truffle-config.js (terletak di direktori root)
- Perbarui dengan detail Shardeum Liberty (tersedia di sini)
const HDWalletProvider = require('@truffle/hdwallet-provider');
const fs = require('fs');
const mnemonic = fs.readFileSync(".secret").toString().trim();module.exports = {
networks: {
development: {
host: "127.0.0.1", // Localhost (default: none)
port: 8545, // Standard port (default: none)
network_id: "*", // Any network (default: none)
},
liberty: {
provider: () => new HDWalletProvider(mnemonic, `https://liberty10.shardeum.org/`),
network_id: 8080,
confirmations: 2,
timeoutBlocks: 200,
skipDryRun: true
}
}, // Set default mocha options here, use special reporters etc.
mocha: {
// timeout: 100000
}, // Configure your compilers
compilers: {
solc: {
version: "^0.8.0", // A version or constraint - Ex. "^0.5.0"
}
}
}
Nota: Pastikan untuk menambahkan kunci mnemonik atau pribadi Anda dan menambahkannya ke file terpisah “.secret” (pastikan untuk tidak pernah mengunggah file ini ke GitHub atau GitLab).
Pastikan juga, Anda telah menginstal ketergantungan @truffle/hdwallet-provider. Jika tidak, silakan instal menggunakan perintah di bawah ini.
truffle migrate --network liberty
Kontrak akan digunakan di Shardeum Liberty dan akan terlihat seperti ini:
Starting migrations...
======================
> Network name: 'liberty'
> Network id: 8080
> Block gas limit: 20000000000 (0x4a817c800)2_deploy.js
=========== Deploying 'testToken'
---------------------
> transaction hash: 0x9a3fcdb6d517d7cf0ee69f8076d020e1bba8cdd01378cc34eaf1030a7fdfc273
> Blocks: 0 Seconds: 8
> contract address: 0x4d63Ba5f3E48dbE7f2b1e459C74BE94B8d61e919
> block number: 11
> block timestamp: 1438271100
> account: 0xFa0B6609cd5d8fC19A1aC16311da1466FaF09978
> balance: 99.964878389908455424
> gas used: 1170047 (0x11da7f)
> gas price: 20 gwei
> value sent: 0.00429 ETH
> total cost: 0.02769094 ETH > Saving migration to chain.
> Saving artifacts
-------------------------------------
> Total cost: 0.02769094 ETHSummary
=======
> Total deployments: 1
> Final cost: 0.02769094 ETH
Selamat! Anda telah berhasil menerapkan ERC20 Smart Contract menggunakan Truffle. Sekarang Anda dapat berinteraksi dengan kontrak pintar dengan membangun DApp dan membuat proyek blockchain Anda sendiri yang menyediakan berbagai layanan dan produk. 🙂
Konten/pendapat yang diungkapkan dalam publikasi ini adalah milik penulis. Mereka tidak selalu bermaksud untuk mencerminkan pendapat atau pandangan Shardeum Foundation.
Tentang Penulis: Shailesh Khote telah berkecimpung dalam pengembangan blockchain sejak Januari 2021. Dia bekerja dengan kontrak pintar soliditas untuk DEX, NFT, Yield Farming, IDOs, dan Yield Aggregation dan kompetensi intinya termasuk Solidity, web3.js dan ReactJs. Anda dapat mengikutinya di Twitter