レッスン3

Menulis Kontrak Pintar Dasar

Variabel, fungsi, dan modifier adalah komponen penting dalam kontrak pintar Solidity. Solidity memiliki dua jenis variabel: variabel status dan variabel lokal.

Dalam bagian ini, kita akan membahas proses menulis kontrak pintar dasar menggunakan Solidity. Kita akan mencakup komponen-komponen penting seperti variabel, fungsi, dan pengubah. Kemudian, kita akan menjelajahi contoh implementasi kontrak token sederhana.

Variabel, fungsi, dan modifier

  • VariabelDalam Solidity, ada dua jenis variabel - variabel status dan variabel lokal. Variabel status disimpan secara permanen di blockchain, sedangkan variabel lokal bersifat sementara dan hanya ada dalam lingkup fungsi.
  • Fungsi: Fungsi adalah blok bangunan dari kontrak pintar. Mereka digunakan untuk melakukan tugas-tugas tertentu, seperti membuat transaksi dan menjalankan logika kustom. Fungsi dapat memiliki parameter input dan nilai pengembalian, memungkinkan untuk penyesuaian dan fleksibilitas yang lebih besar.
  • Pengubah: Modifiers unik untuk Solidity dan digunakan untuk memodifikasi perilaku fungsi. Mereka dapat meningkatkan keterbacaan dan kelola kode dan dapat digunakan untuk mengotentikasi nilai masuk atau menjalankan fungsi yang dipanggil secara kondisional.

Contoh 1: Melaksanakan kontrak token sederhana

Mari kita buat kontrak token sederhana menggunakan Solidity. Kontrak ini akan memungkinkan pengguna untuk mentransfer token antar akun dan memeriksa saldo token dari setiap akun.

TypeScriptpragma soliditas ^0.8.0;kontrak SimpleToken {    // Mendeklarasikan variabel status    alamat publik pemilik;    pemetaan(alamat => uint256) publik saldo;    // Menginisialisasi kontrak token    konstruktor(uint256 pasokanAwal) {        pemilik = msg.sender;        saldo[pemilik] = pasokanAwal;    }    // Fungsi untuk mentransfer token    fungsi transfer(alamat ke, uint256 jumlah) publik {        memerlukan(saldo[msg.sender] >= jumlah, "Saldo tidak mencukupi");        saldo[msg.sender] -= jumlah;        saldo[ke] += jumlah;    }    // Fungsi untuk memeriksa saldo token dari sebuah akun    fungsi balanceOf(alamat akun) publik tampilan mengembalikan (uint256) {        kembali saldo[akun];    }}

Dalam kontrak ini, kita memiliki:

  • Variabel negarapemilikdansaldountuk menyimpan alamat pemilik kontrak dan saldo token dari semua alamat, masing-masing.
  • Sebuah konstruktorfungsi yang menetapkan pasokan awal token dan menugaskan mereka kepada pemilik kontrak.
  • Sebuahtransferfungsi yang memungkinkan pengguna untuk mentransfer token ke akun lain. Ini menggunakan memerlukanpernyataan untuk memastikan pengirim memiliki cukup token untuk ditransfer.
  • Sebuah saldoDarifungsi yang mengembalikan saldo token dari rekening yang ditentukan.
  • Kontrak token dasar ini menunjukkan bagaimana menggunakan variabel, fungsi, dan modifier di Solidity untuk membuat kontrak pintar sederhana dan fungsional.

Contoh2: Melaksanakan sistem pemungutan suara sederhana

TypeScriptpragma soliditas ^0.8.0;kontrak VotingSystem {    pemetaan (bytes32 => uint256) public votesReceived;    bytes32[] public candidateList;    constructor(bytes32[] memory candidateNames) {        candidateList = candidateNames;    }    function voteForCandidate(bytes32 candidate) public {        memerlukan(validCandidate(candidate), "Kandidat tidak valid.");        votesReceived[candidate] += 1;    }    function totalVotesFor(bytes32 candidate) public view returns (uint256) {        memerlukan(validCandidate(candidate), "Kandidat tidak valid.");        kembali votesReceived[candidate];    }    function validCandidate(bytes32 candidate) public view returns (bool) {        untuk (uint256 i = 0; i < candidateList.length; i++) {            if (candidateList[i] == candidate) {                kembali benar;            }        }        kembali salah;    }}

Dalam contoh ini, Sistem Pemungutan Suarakontrak memungkinkan pengguna untuk memilih salah satu dari beberapa kandidat dengan menelepon memilihUntukKandidatfungsi. Kontrak ini melacak jumlah suara yang diterima untuk setiap kandidat menggunakan suara yang diterimapemetaan, di mana kunci adalah nama calon dan nilai adalah jumlah suara. daftar kandidatvariabel menyimpan daftar kandidat yang valid. The totalVotesForfungsi dapat dipanggil untuk memeriksa jumlah suara yang diterima oleh kandidat tertentu, dan kandidat yang validfungsi memeriksa apakah seorang kandidat valid. Ini adalah contoh sederhana bagaimana Solidity dapat digunakan untuk membangun aplikasi terdesentralisasi dengan logika kompleks.

Sorotan
Variabel, fungsi, dan pengubah sangat penting dalam kontrak pintar Solidity.
Solidity memiliki dua jenis variabel: variabel keadaan dan variabel lokal.
Fungsi digunakan untuk melakukan tugas dan dapat memiliki parameter masukan serta nilai pengembalian.
Modifiers digunakan untuk memodifikasi perilaku fungsi dan meningkatkan keterbacaan dan kelolaan kode.
Kontrak SimpleToken memungkinkan pengguna untuk mentransfer token dan memeriksa saldo token.
Kontrak SimpleToken menunjukkan penggunaan variabel keadaan, fungsi konstruktor, dan fungsi seperti transfer dan balanceOf.
Kontrak VotingSystem memungkinkan pengguna untuk memilih kandidat dan melacak jumlah suara.
Kontrak VotingSystem menampilkan penggunaan pemetaan, larik, dan fungsi seperti voteForCandidate, totalVotesFor, dan validCandidate.

免責事項
* 暗号資産投資には重倧なリスクが䌎いたす。泚意しお進めおください。このコヌスは投資アドバむスを目的ずしたものではありたせん。
※ このコヌスはGate Learnに参加しおいるメンバヌが䜜成したものです。䜜成者が共有した意芋はGate Learnを代衚するものではありたせん。
カタログ
レッスン3

Menulis Kontrak Pintar Dasar

Variabel, fungsi, dan modifier adalah komponen penting dalam kontrak pintar Solidity. Solidity memiliki dua jenis variabel: variabel status dan variabel lokal.

Dalam bagian ini, kita akan membahas proses menulis kontrak pintar dasar menggunakan Solidity. Kita akan mencakup komponen-komponen penting seperti variabel, fungsi, dan pengubah. Kemudian, kita akan menjelajahi contoh implementasi kontrak token sederhana.

Variabel, fungsi, dan modifier

  • VariabelDalam Solidity, ada dua jenis variabel - variabel status dan variabel lokal. Variabel status disimpan secara permanen di blockchain, sedangkan variabel lokal bersifat sementara dan hanya ada dalam lingkup fungsi.
  • Fungsi: Fungsi adalah blok bangunan dari kontrak pintar. Mereka digunakan untuk melakukan tugas-tugas tertentu, seperti membuat transaksi dan menjalankan logika kustom. Fungsi dapat memiliki parameter input dan nilai pengembalian, memungkinkan untuk penyesuaian dan fleksibilitas yang lebih besar.
  • Pengubah: Modifiers unik untuk Solidity dan digunakan untuk memodifikasi perilaku fungsi. Mereka dapat meningkatkan keterbacaan dan kelola kode dan dapat digunakan untuk mengotentikasi nilai masuk atau menjalankan fungsi yang dipanggil secara kondisional.

Contoh 1: Melaksanakan kontrak token sederhana

Mari kita buat kontrak token sederhana menggunakan Solidity. Kontrak ini akan memungkinkan pengguna untuk mentransfer token antar akun dan memeriksa saldo token dari setiap akun.

TypeScriptpragma soliditas ^0.8.0;kontrak SimpleToken {    // Mendeklarasikan variabel status    alamat publik pemilik;    pemetaan(alamat => uint256) publik saldo;    // Menginisialisasi kontrak token    konstruktor(uint256 pasokanAwal) {        pemilik = msg.sender;        saldo[pemilik] = pasokanAwal;    }    // Fungsi untuk mentransfer token    fungsi transfer(alamat ke, uint256 jumlah) publik {        memerlukan(saldo[msg.sender] >= jumlah, "Saldo tidak mencukupi");        saldo[msg.sender] -= jumlah;        saldo[ke] += jumlah;    }    // Fungsi untuk memeriksa saldo token dari sebuah akun    fungsi balanceOf(alamat akun) publik tampilan mengembalikan (uint256) {        kembali saldo[akun];    }}

Dalam kontrak ini, kita memiliki:

  • Variabel negarapemilikdansaldountuk menyimpan alamat pemilik kontrak dan saldo token dari semua alamat, masing-masing.
  • Sebuah konstruktorfungsi yang menetapkan pasokan awal token dan menugaskan mereka kepada pemilik kontrak.
  • Sebuahtransferfungsi yang memungkinkan pengguna untuk mentransfer token ke akun lain. Ini menggunakan memerlukanpernyataan untuk memastikan pengirim memiliki cukup token untuk ditransfer.
  • Sebuah saldoDarifungsi yang mengembalikan saldo token dari rekening yang ditentukan.
  • Kontrak token dasar ini menunjukkan bagaimana menggunakan variabel, fungsi, dan modifier di Solidity untuk membuat kontrak pintar sederhana dan fungsional.

Contoh2: Melaksanakan sistem pemungutan suara sederhana

TypeScriptpragma soliditas ^0.8.0;kontrak VotingSystem {    pemetaan (bytes32 => uint256) public votesReceived;    bytes32[] public candidateList;    constructor(bytes32[] memory candidateNames) {        candidateList = candidateNames;    }    function voteForCandidate(bytes32 candidate) public {        memerlukan(validCandidate(candidate), "Kandidat tidak valid.");        votesReceived[candidate] += 1;    }    function totalVotesFor(bytes32 candidate) public view returns (uint256) {        memerlukan(validCandidate(candidate), "Kandidat tidak valid.");        kembali votesReceived[candidate];    }    function validCandidate(bytes32 candidate) public view returns (bool) {        untuk (uint256 i = 0; i < candidateList.length; i++) {            if (candidateList[i] == candidate) {                kembali benar;            }        }        kembali salah;    }}

Dalam contoh ini, Sistem Pemungutan Suarakontrak memungkinkan pengguna untuk memilih salah satu dari beberapa kandidat dengan menelepon memilihUntukKandidatfungsi. Kontrak ini melacak jumlah suara yang diterima untuk setiap kandidat menggunakan suara yang diterimapemetaan, di mana kunci adalah nama calon dan nilai adalah jumlah suara. daftar kandidatvariabel menyimpan daftar kandidat yang valid. The totalVotesForfungsi dapat dipanggil untuk memeriksa jumlah suara yang diterima oleh kandidat tertentu, dan kandidat yang validfungsi memeriksa apakah seorang kandidat valid. Ini adalah contoh sederhana bagaimana Solidity dapat digunakan untuk membangun aplikasi terdesentralisasi dengan logika kompleks.

Sorotan
Variabel, fungsi, dan pengubah sangat penting dalam kontrak pintar Solidity.
Solidity memiliki dua jenis variabel: variabel keadaan dan variabel lokal.
Fungsi digunakan untuk melakukan tugas dan dapat memiliki parameter masukan serta nilai pengembalian.
Modifiers digunakan untuk memodifikasi perilaku fungsi dan meningkatkan keterbacaan dan kelolaan kode.
Kontrak SimpleToken memungkinkan pengguna untuk mentransfer token dan memeriksa saldo token.
Kontrak SimpleToken menunjukkan penggunaan variabel keadaan, fungsi konstruktor, dan fungsi seperti transfer dan balanceOf.
Kontrak VotingSystem memungkinkan pengguna untuk memilih kandidat dan melacak jumlah suara.
Kontrak VotingSystem menampilkan penggunaan pemetaan, larik, dan fungsi seperti voteForCandidate, totalVotesFor, dan validCandidate.

免責事項
* 暗号資産投資には重倧なリスクが䌎いたす。泚意しお進めおください。このコヌスは投資アドバむスを目的ずしたものではありたせん。
※ このコヌスはGate Learnに参加しおいるメンバヌが䜜成したものです。䜜成者が共有した意芋はGate Learnを代衚するものではありたせん。