Cara Membuat Smart Contract Polygon Dengan Mudah

Apakah kamu ingin Membuat Smart Contract Polygon? Atau jika Kamu seseorang yang baru terjun dalam pengembangan blockchain dan tidak tahu harus mulai dari mana? Atau Kamu hanya ingin memahami cara menerapkan dan berinteraksi dengan Smart Contract Polygon? Maka panduan ini sangat cocok untuk Kamu.

Kita akan membahas pembuatan dan penerapan Smart Contract Polygon sederhana di jaringan uji Polygon Mumbai menggunakan dompet virtual ( Metamask ), Solidity, Hardhat, dan Alchemy (jangan khawatir jika Kamu belum memahami apa artinya semua ini, Kita akan menjelaskannya!).

Jika Kamu memiliki pertanyaan, jangan ragu untuk menghubungi Alchemy Discord !

Membuat Smart Contract Polygon Menggunakan Hardhat

  1. Langkah 1: Hubungkan ke jaringan Polygon
  2. Langkah 2: Buat Aplikasi Kamu (API Key)
  3. Langkah 3: Buat Alamat Dompet
  4. Langkah 4: Tambahkan Polygon Mumbai Test MATIC dari Faucet
  5. Langkah 5: Periksa Saldo Kamu
  6. Langkah 6: Inisialisasi Proyek Kita
  7. Langkah 7: Unduh Hardhat
  8. Langkah 8: Buat Proyek Hardhat
  9. Langkah 9: Tambahkan Folder Proyek
  10. Langkah 10: Tulis Kontrak Kita
  11. Langkah 11: Hubungkan Metamask & Alchemy Ke Proyek Kamu
  12. Langkah 12: Instal Ethers.js
  13. Langkah 13: Perbarui hardhat.config.js
  14. Langkah 14: Kompilasi Kontrak Kita
  15. Langkah 15: Tulis Skrip Penerapan Kita
  16. Langkah 16: Terapkan Kontrak Kita

Oke mari kita bahas satu persatu langkah-langkah di atas, simak ulasannya di bawah ini:

Langkah 1: Hubungkan ke jaringan Polygon

Ada banyak cara untuk membuat permintaan ke Polygon Chain. Untuk kesederhanaan, Kita akan menggunakan akun gratis di Alchemy, platform pengembang blockchain dan API yang memungkinkan Kita untuk berkomunikasi dengan Polygon chain tanpa harus menjalankan node kita sendiri.

Platform ini juga memiliki alat pengembang untuk pemantauan dan analitik yang akan Kita manfaatkan dalam tutorial ini untuk memahami apa yang terjadi di balik layar dalam penerapan Smart Contract Polygon Kita. Jika Kamu belum memiliki akun Alchemy, Kamu dapat mendaftar secara gratis di situs resminya .

Langkah 2: Buat Aplikasi Kamu (API Key)

Setelah membuat akun Alchemy, Kamu dapat membuat API Key dengan membuat aplikasi. Ini akan memungkinkan Kita untuk membuat permintaan ke jaringan uji Polygon Mumbai. Jika Kamu tidak terbiasa dengan testnet, lihat panduan ini .

Navigasikan ke halaman “Create App” di Dasbor Alchemy Kamu dengan mengarahkan kursor ke “Apps” di bilah navigasi dan mengklik “Create App”.

Beri nama aplikasi Kamu “Hello World”, berikan deskripsi singkat, pilih “Staging” untuk Lingkungan (digunakan untuk pembukuan aplikasi Kamu),

  1. Klik “Polygon” untuk Chain, dan pilih “Polygon Mumbai” untuk jaringan Kamu.
  2. Klik “Create App” dan hanya itu! Aplikasi Kamu akan muncul dalam tabel di bawah ini.

Langkah 3: Buat Alamat Dompet

Karena Polygon adalah solusi penskalaan Layer-2 untuk Ethereum, Kita perlu mendapatkan dompet Ethereum dan menambahkan URL Polygon khusus untuk mengirim dan menerima transaksi di jaringan Polygon. Untuk tutorial ini, Kita akan menggunakan Metamask, dompet virtual di browser yang digunakan untuk mengelola alamat dompet Kamu. Jika Kamu ingin memahami lebih lanjut tentang cara kerja transaksi di Ethereum, lihat halaman ini dari yayasan Ethereum.

Untuk mendapatkan URL RPC Polygon pelanggan Kamu dari Alchemy, buka aplikasi “Hello World” di dasbor Alchemy Kamu dan klik “View Key” di pojok kanan atas. Kemudian lanjutkan dan salin kunci API HTTP Alchemy Kamu!

Kamu juga dapat mengunduh dan membuat akun Metamask secara gratis di sini. Setelah Kamu membuat akun, ikuti langkah-langkah ini untuk menyiapkan jaringan Polygon di dompet Kamu.

  1. Pilih “Settings” dari menu drop down di sudut kanan atas dompet Metamask Kamu.
  2. Pilih “Networks” dari menu di sebelah kiri.
  3. Hubungkan dompet Kamu ke Mumbai Testnet menggunakan parameter berikut.

  • Network Name: Polygon Mumbai Testnet
  • New RPC URL: https://polygon-mumbai.g.alchemy.com/v2/your-api-key
  • ChainID: 80001
  • Symbol: MATIC
  • Block Explorer URL: https://mumbai.polygonscan.com/

Langkah 4: Tambahkan Polygon Mumbai Test MATIC dari Faucet

Untuk menyebarkan Smart Contract Polygon Kita ke jaringan uji, Kita memerlukan beberapa MATIC palsu. Untuk mendapatkan MATIC, Kamu bisa pergi ke Faucet Polygon Mumbai, pilih “Mumbai”, pilih “MATIC Token”, dan masukkan alamat dompet Polygon Kamu, lalu klik “Submit.” Mungkin perlu beberapa waktu untuk menerima ETH palsu kamu karena lalu lintas jaringan. (Pada saat penulisan ini, dibutuhkan sekitar 30 menit.)

Kamu akan segera melihat ETH di akun Metamask Kamu!

Langkah 5: Periksa Saldo Kamu

Untuk memeriksa ulang saldo kita, mari buat permintaan eth _ getBalance menggunakan alat komposer Alchemy. Pilih “Polygon” sebagai chain, “Polygon Mumbai” sebagai jaringan, “eth_getBalance” sebagai metode, dan masukkan alamat Kamu. Ini akan mengembalikan jumlah MATIC di dompet Kita.

Setelah Kamu memasukkan alamat akun Metamask Kamu dan klik “Send Request”, Kamu akan melihat respons yang terlihat seperti ini:

{ "jsonrpc": "2.0", "id": 0, "result": "0xde0b6b3a7640000" }

CATATAN: Hasil ini dalam wei not ETH. Wei digunakan sebagai denominasi terkecil dari ether. Konversi dari wei ke ETH adalah: 1 eth = 10^18 wei. Jadi jika Kita mengubah 0xde0b6b3a7640000 ke desimal kita mendapatkan 1 * 10^18 yang sama dengan 1 ETH, yang dapat dipetakan ke 1 MATIC berdasarkan denominasi.

Langkah 6: Inisialisasi Proyek Kita

Pertama, kita perlu membuat folder untuk proyek kita. Arahkan ke baris perintah Kamu dan ketik:

mkdir hello-world
cd hello-world

Sekarang kita berada di dalam folder proyek kita, kita akan menggunakannya npm init untuk menginisialisasi proyek. Jika Kamu belum menginstal npm, ikuti petunjuk ini (Kita juga membutuhkan Node.js jadi unduh juga!).

npm init # (or npm init --yes)

Tidak masalah bagaimana Kamu menjawab pertanyaan penginstalan, berikut adalah cara Kita melakukannya untuk referensi:

package name: (hello-world)
version: (1.0.0)
description: hello world smart contract
entry point: (index.js)
test command:
git repository:
keywords:
author:
license: (ISC)

About to write to /Users/.../.../.../hello-world/package.json:

{
"name": "hello-world",
"version": "1.0.0",
"description": "hello world smart contract",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"
}

Setujui package.json dan Kita siap berangkat!

Langkah 7: Unduh Hardhat

Hardhat adalah lingkungan pengembangan untuk mengkompilasi, menyebarkan, menguji, dan men-debug perangkat lunak Ethereum Kamu. Alat ini juga membantu pengembang saat membangun Smart Contract Polygon dan dApps secara lokal sebelum menerapkan ke chain langsung.

npm install --save-dev hardhat

Langkah 8: Buat Proyek Hardhat

Di dalam hello-world folder proyek Kita, jalankanlah:

npx hardhat

Kamu kemudian akan melihat pesan selamat datang dan opsi untuk memilih apa yang ingin Kamu lakukan. Pilih “create an empty hardhat.config.js”:

$ npx hardhat
888    888                      888 888               888
888    888                      888 888               888
888    888                      888 888               888
8888888888  8888b.  888d888 .d88888 88888b.   8888b.  888888
888    888     "88b 888P"  d88" 888 888 "88b     "88b 888
888    888 .d888888 888    888  888 888  888 .d888888 888
888    888 888  888 888    Y88b 888 888  888 888  888 Y88b.
888    888 "Y888888 888     "Y88888 888  888 "Y888888  "Y888

Welcome to Hardhat v2.2.1

✔ What do you want to do? · Create an empty hardhat.config.js
Config file created

Ini akan menghasilkan hardhat.config.js file untuk Kita, di mana Kita akan menentukan semua pengaturan untuk proyek Kita (pada langkah 13).

Langkah 9: Tambahkan Folder Proyek

Untuk menjaga agar proyek Kita tetap teratur, Kita akan membuat dua folder baru. Arahkan ke direktori root hello-world proyek Kamu di baris perintah Kamu dan ketik:

mkdir contracts
mkdir scripts

  • contracts/ adalah tempat kami menyimpan file kode smart contract hello world Kita.
  • scripts/ adalah tempat kami menyimpan skrip untuk digunakan dan berinteraksi dengan kontrak Kita.

Langkah 10: Tulis Kontrak Kita

Kamu mungkin bertanya pada diri sendiri, kapan kita akan menulis kode?? Nah, ini dia, pada Langkah 10

Buka proyek hello-world di editor favorit Kamu ( Kami suka VSCode ). Smart Contract ditulis dalam bahasa yang disebut Solidity yang akan Kita gunakan untuk menulis kontrak pintar HelloWorld.sol.‌

  1. Arahkan ke folder “Contract” dan buat file baru bernama HelloWorld.sol
  2. Di bawah ini adalah contoh Smart Contract Hello World dari Ethereum Foundation yang akan Kita gunakan untuk tutorial ini. Salin dan tempel konten di bawah ini ke HelloWorld.sol file, dan pastikan untuk membaca komentar untuk memahami apa yang dilakukan kontrak ini:


// SPDX-License-Identifier: None

// Specifies the version of Solidity, using semantic versioning.
// Learn more: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#pragma
pragma solidity >=0.8.9;

// Defines a contract named `HelloWorld`.
// A contract is a collection of functions and data (its state). Once deployed, a contract resides at a specific address on the Ethereum blockchain. Learn more: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html
contract HelloWorld {

//Emitted when update function is called
//Smart contract events are a way for your contract to communicate that something happened on the blockchain to your app front-end, which can be 'listening' for certain events and take action when they happen.

event UpdatedMessages(string oldStr, string newStr);

// Declares a state variable `message` of type `string`.
// State variables are variables whose values are permanently stored in contract storage. The keyword `public` makes variables accessible from outside a contract and creates a function that other contracts or clients can call to access the value.

string public message;

// Similar to many class-based object-oriented languages, a constructor is a special function that is only executed upon contract creation.
// Constructors are used to initialize the contract's data. Learn more:https://solidity.readthedocs.io/en/v0.5.10/contracts.html#constructors
constructor(string memory initMessage) {

// Accepts a string argument `initMessage` and sets the value into the contract's `message` storage variable).
message = initMessage;
}

// A public function that accepts a string argument and updates the `message` storage variable.
function update(string memory newMessage) public {
string memory oldMsg = message;
message = newMessage;
emit UpdatedMessages(oldMsg, newMessage);
}
}

Ini adalah Smart Contract Polygon super sederhana yang menyimpan pesan saat dibuat dan dapat diperbarui dengan memanggil update fungsi.

Langkah 11: Hubungkan Metamask & Alchemy Ke Proyek Kamu

Kita telah membuat dompet Metamask, akun Alchemy, dan menulis Smart Contract Kita, sekarang saatnya untuk menghubungkan ketiganya.

Setiap transaksi yang dikirim dari dompet virtual Kamu memerlukan tanda tangan menggunakan kunci pribadi unik Kamu. Untuk memberikan izin ini kepada program Kita, Kita dapat dengan aman menyimpan kunci pribadi Kita (dan kunci API Alchemy) dalam file lingkungan.

Pertama, instal paket dotenv di direktori proyek Kamu:

npm install dotenv --save

Kemudian, buat .env file di direktori root proyek Kita, dan tambahkan kunci pribadi Metamask Kamu dan URL API Alchemy HTTP ke dalamnya.

File lingkungan Anda harus diberi nama .env atau tidak akan dikenali sebagai file lingkungan.

Jangan beri nama process.env atau .env-custom apa pun.

PERINGATAN: Jika Kamu menggunakan sistem kontrol versi seperti git untuk mengelola proyek Kamu , JANGAN lacak file .env. Tambahkan .env ke file .gitignore Kamu sehingga Kamu tidak akan secara tidak sengaja mempublikasikan rahasia Kamu ke luar sana.

Ikuti petunjuk ini untuk mengekspor kunci pribadi Kamu

Untuk mendapatkan Kunci API HTTP Alchemy (URL RPC), buka aplikasi “Hello World” di dasbor Alchemy Kamu dan klik “View Key” di sudut kanan atas. Kemudian lanjutkan dan salin kunci API HTTP Alchemy Kamu!

.env Kamu akan terlihat seperti ini:

API_URL = "https://polygon-mumbai.g.alchemy.com/v2/your-api-key"
PRIVATE_KEY = "your-metamask-private-key"

Untuk benar-benar menghubungkan ini ke kode Kita, Kita akan mereferensikan variabel-variabel ini di hardhat.config.js file Kita pada langkah ke 13.

Langkah 12: Instal Ethers.js

Ethers.js adalah library yang memudahkan untuk berinteraksi dan membuat permintaan ke Ethereum dengan menggabungkan metode JSON-RPC standar dengan metode yang lebih ramah pengguna.

Hardhat membuatnya sangat mudah untuk mengintegrasikan Plugin untuk tools tambahan dan fungsionalitas yang diperluas. Kita akan memanfaatkan plugin Ethers untuk penerapan kontrak ( Ethers.js memiliki beberapa metode penerapan kontrak yang sangat bersih).

Dalam jenis direktori proyek Kamu:

npm install --save-dev @nomiclabs/hardhat-ethers "[email protected]^5.0.0"

Kita juga akan membutuhkan ETH dalam hardhat.config.js pada langkah Kita berikutnya.

Langkah 13: Perbarui hardhat.config.js

Kita telah menambahkan beberapa dependensi dan plugin sejauh ini, sekarang Kita perlu memperbarui hardhat.config.js agar proyek Kita mengetahui semuanya.

Perbarui hardhat.config.js Kamu agar terlihat seperti ini:

/**
* @type import('hardhat/config').HardhatUserConfig
*/

require('dotenv').config();
require("@nomiclabs/hardhat-ethers");

const { API_URL, PRIVATE_KEY } = process.env;

module.exports = {
solidity: "0.8.9",
defaultNetwork: "polygon_mumbai",
networks: {
hardhat: {},
polygon_mumbai: {
url: API_URL,
accounts: [`0x${PRIVATE_KEY}`]
}
},
}

Langkah 14: Kompilasi Kontrak Kita

Untuk memastikan semuanya berjalan baik sejauh ini, mari kita susun kontrak kita. Tugas compile tersebut adalah salah satu tugas hardhat bawaan.

Dari baris perintah jalankan:

npx hardhat compile

Kamu mungkin mendapatkan peringatan tentang SPDX license identifier not provided in source file, tetapi tidak perlu khawatir tentang itu — semoga semuanya terlihat bagus! Jika tidak, Kamu selalu dapat mengirim pesan di Alchemy Discord .

Langkah 15: Tulis Skrip Penerapan Kita

Sekarang setelah kontrak Kita ditulis dan file konfigurasi Kita siap digunakan, saatnya untuk menulis skrip penerapan kontrak Kita.

Arahkan ke scripts/ folder dan buat file baru bernama deploy.js, tambahkan konten berikut ke dalamnya:

async function main() {
const HelloWorld = await ethers.getContractFactory("HelloWorld");

// Start deployment, returning a promise that resolves to a contract object
const hello_world = await HelloWorld.deploy("Hello World!");
console.log("Contract deployed to address:", hello_world.address);
}

main()
.then(() => process.exit(0))
.catch(error => {
console.error(error);
process.exit(1);
});

Hardhat melakukan pekerjaan yang luar biasa dalam menjelaskan apa yang dilakukan masing-masing baris kode ini dalam tutorial Kontrak mereka, Kita telah mengadopsi penjelasannya di sini.

const HelloWorld = await ethers.getContractFactory("HelloWorld");

Sebuah ContractFactory di ethers.js adalah abstraksi yang digunakan untuk menerapkan Smart Contract baru, jadi HelloWorld di sini adalah factory untuk contoh kontrak hello world Kita. Saat menggunakan hardhat-ethers plugin ContractFactory dan Contract, instans terhubung ke penandatangan pertama (pemilik) secara default.

const hello_world = await HelloWorld.deploy();

Memanggil deploy() dan ContractFactory akan memulai penerapan, dan mengembalikan Promise yang menyelesaikan ke Contract objek. Ini adalah objek yang memiliki metode untuk setiap fungsi Smart Contract Kita.

Langkah 16: Terapkan Kontrak Kita

Kita akhirnya siap untuk menerapkan kontrak pintar Kita! Arahkan ke baris perintah dan jalankan:

npx hardhat run scripts/deploy.js --network polygon_mumbai

Kemudian Kamu akan melihat sesuatu seperti:

Contract deployed to address: 0x3d94af870ED272Cd5370e4135F9B2Bd0e311d65D

Harap salin dan tempel alamat ini untuk menyimpannya di suatu tempat, karena Kita akan menggunakan alamat ini untuk tutorial selanjutnya, jadi Kamu jangan sampai kehilangannya.

Jika kita pergi ke Polygon Mumbai explorer dan mencari alamat kontrak Kita, Kita akan dapat melihat bahwa itu telah berhasil digunakan.

Alamat From harus sesuai dengan alamat akun Metamask Kamu dan alamat akan bertuliskan “Contract Creation”. Tetapi jika kita mengklik transaksi, kita akan melihat alamat kontrak kita di To bidang:

Congrats! You just deployed a smart contract to the Polygon chain 🎉

Untuk memahami apa yang terjadi di balik layar, mari navigasikan ke tab Penjelajah di dasbor Alchemy Kita. Jika Kamu memiliki beberapa aplikasi Alchemy, pastikan untuk memfilter berdasarkan aplikasi dan pilih “Hello World”.

Di sini Kamu akan melihat beberapa panggilan JSON-RPC yang dibuat Hardhat/Ethers Untuk Kita saat Kita memanggil .deploy() fungsi tersebut. Dua yang penting untuk dipanggil di sini adalah eth_sendRawTransaction, yang merupakan permintaan untuk benar-benar menulis kontrak Kita ke Chain Polygon, dan eth_getTransactionByHash yang merupakan permintaan untuk membaca informasi tentang transaksi Kita yang diberikan hash (pola khas saat mengirim transaksi).

Akhir Kata

Itu saja untuk tutorial kali ini mengani Cara Membuat Smart Contract Polygon. Setelah Kamu menyelesaikan tutorial ini, beri tahu Kita bagaimana pengalaman Kamu atau jika Kamu memiliki pertanyaan silahkan sampaikan di kolom komentar. Terima kasih sudah berkunjung dan salam sukses selalu.!

5/5 - (200 votes)
Share Jika Bermanfaat Ya 🙂

Leave a Comment