レッスン3

Написання базового розумного контракту

Змінні, функції та модифікатори є важливими компонентами у розумних контрактах Solidity. Solidity має два типи змінних: станові змінні та локальні змінні.

У цьому розділі ми обговоримо процес написання базового розумного договору за допомогою Solidity. Ми розглянемо важливі компоненти, такі як змінні, функції та модифікатори. Потім ми розглянемо приклад реалізації простого контракту токенів.

Змінні, функції та модифікатори

  • Змінні: У Solidity існують два типи змінних – змінні стану та локальні змінні. Змінні стану постійно зберігаються на блокчейні, тоді як локальні змінні тимчасові і існують лише в межах функції.
  • Функції: Функції - це будівельні блоки смарт-контрактів. Вони використовуються для виконання конкретних завдань, таких як створення транзакцій та виконання власної логіки. Функції можуть мати вхідні параметри та значення, що дозволяє забезпечити більшу настроюваність та гнучкість.
  • Модифікатори: Модифікатори є унікальними для Solidity і використовуються для зміни поведінки функції. Вони можуть покращити зрозумілість та керованість коду і використовуватися для автентифікації вхідних значень або умовно виконувати викликану функцію.

Приклад1: Реалізація простого контракту токенів

Давайте створимо простий контракт токена за допомогою Solidity. Цей контракт дозволить користувачам передавати токени між рахунками та перевіряти баланс токенів будь-якого рахунку.

Solidity TypeScriptpragma ^0.8.0; contract SimpleToken { // Оголошення змінних стану адреси публічного власника;    mapping(address = > uint256) публічні баланси;    Ініціалізація конструктора контракту токена (uint256 initialSupply) { owner = msg.sender;        баланси[власник] = початкове постачання;    } // Функція передачі токенів functions transfer(address to, uint256 amount) public { require(balances[msg.sender] >= amount, "Недостатній баланс");        залишки[msg.sender] -= сума;        залишки[до] += сума;    } // Функція перевірки балансу токенів облікового запису, функція balanceOf(адресний обліковий запис) public view returns (uint256) { return balances[account];    }}

У цьому контракті у нас є:

  • Змінні стану власникібалансизберігати адресу власника контракту та баланси токенів всіх адрес, відповідно.
  • A конструкторфункція, яка встановлює початковий обсяг токенів та призначає їх власнику контракту.
  • A передачафункція, яка дозволяє користувачам пересилати токени на інші рахунки. Вона використовує потребуватизаява для переконання в тому, що відправник має достатньо токенів для переказу.
  • A балансфункція, яка повертає баланс токенів вказаного облікового запису.
  • Цей базовий токенний контракт демонструє, як використовувати змінні, функції та модифікатори в Solidity для створення простого, функціонального смарт-контракту.

Приклад2: Впровадження простої системи голосування

pragma solidity ^0.8.0;contract VotingSystem {    mapping (bytes32 => uint256) public votesReceived;    bytes32[] public candidateList;    constructor(bytes32[] memory candidateNames) {        candidateList = candidateNames;    }    function voteForCandidate(bytes32 candidate) public {        require(validCandidate(candidate), "Недійсний кандидат.");        votesReceived[candidate] += 1;    }    function totalVotesFor(bytes32 candidate) public view returns (uint256) {        require(validCandidate(candidate), "Недійсний кандидат.");        return votesReceived[candidate];    }    function validCandidate(bytes32 candidate) public view returns (bool) {        for (uint256 i = 0; i < candidateList.length; i++) {            if (candidateList[i] == candidate) {                return true;            }        }        return false;    }}

У цьому прикладі,Система голосуванняКонтракт дозволяє користувачам голосувати за одного з кількох кандидатів, зателефонувавши голосувати за кандидатафункція. Контракт відстежує кількість голосів, отриманих за кожного кандидата за допомогоюполучені голосивідображення, де ключем є ім'я кандидата, а значенням є кількість голосів. список кандидатівЗмінна зберігає список дійсних кандидатів. ЗагальнаКількістьГолосівДляфункцію можна викликати, щоб перевірити кількість голосів, яку отримав конкретний кандидат, тадійсний кандидатфункція перевіряє, чи кандидат є дійсним. Це простий приклад того, як Solidity може бути використаний для побудови децентралізованих додатків зі складною логікою.

Основне
Змінні, функції та модифікатори є невід'ємними компонентами у розумних контрактах Solidity.
У Solidity є два типи змінних: змінні стану та локальні змінні.
Функції використовуються для виконання завдань і можуть мати вхідні параметри та значення повернення.
Модифікатори використовуються для зміни поведінки функції та покращення зрозумілості та керованості коду.
Контракт SimpleToken дозволяє користувачам передавати токени та перевіряти баланси токенів.
Контракт SimpleToken демонструє використання змінних стану, функції конструктора та функцій, таких як transfer та balanceOf.
Контракт VotingSystem дозволяє користувачам голосувати за кандидатів та відстежує кількість голосів.
Контракт VotingSystem демонструє використання відображень, масивів та функцій, таких як voteForCandidate, totalVotesFor та validCandidate.

免責事項
* 暗号資産投資には重大なリスクが伴います。注意して進めてください。このコースは投資アドバイスを目的としたものではありません。
※ このコースはGate Learnに参加しているメンバーが作成したものです。作成者が共有した意見はGate Learnを代表するものではありません。
カタログ
レッスン3

Написання базового розумного контракту

Змінні, функції та модифікатори є важливими компонентами у розумних контрактах Solidity. Solidity має два типи змінних: станові змінні та локальні змінні.

У цьому розділі ми обговоримо процес написання базового розумного договору за допомогою Solidity. Ми розглянемо важливі компоненти, такі як змінні, функції та модифікатори. Потім ми розглянемо приклад реалізації простого контракту токенів.

Змінні, функції та модифікатори

  • Змінні: У Solidity існують два типи змінних – змінні стану та локальні змінні. Змінні стану постійно зберігаються на блокчейні, тоді як локальні змінні тимчасові і існують лише в межах функції.
  • Функції: Функції - це будівельні блоки смарт-контрактів. Вони використовуються для виконання конкретних завдань, таких як створення транзакцій та виконання власної логіки. Функції можуть мати вхідні параметри та значення, що дозволяє забезпечити більшу настроюваність та гнучкість.
  • Модифікатори: Модифікатори є унікальними для Solidity і використовуються для зміни поведінки функції. Вони можуть покращити зрозумілість та керованість коду і використовуватися для автентифікації вхідних значень або умовно виконувати викликану функцію.

Приклад1: Реалізація простого контракту токенів

Давайте створимо простий контракт токена за допомогою Solidity. Цей контракт дозволить користувачам передавати токени між рахунками та перевіряти баланс токенів будь-якого рахунку.

Solidity TypeScriptpragma ^0.8.0; contract SimpleToken { // Оголошення змінних стану адреси публічного власника;    mapping(address = > uint256) публічні баланси;    Ініціалізація конструктора контракту токена (uint256 initialSupply) { owner = msg.sender;        баланси[власник] = початкове постачання;    } // Функція передачі токенів functions transfer(address to, uint256 amount) public { require(balances[msg.sender] >= amount, "Недостатній баланс");        залишки[msg.sender] -= сума;        залишки[до] += сума;    } // Функція перевірки балансу токенів облікового запису, функція balanceOf(адресний обліковий запис) public view returns (uint256) { return balances[account];    }}

У цьому контракті у нас є:

  • Змінні стану власникібалансизберігати адресу власника контракту та баланси токенів всіх адрес, відповідно.
  • A конструкторфункція, яка встановлює початковий обсяг токенів та призначає їх власнику контракту.
  • A передачафункція, яка дозволяє користувачам пересилати токени на інші рахунки. Вона використовує потребуватизаява для переконання в тому, що відправник має достатньо токенів для переказу.
  • A балансфункція, яка повертає баланс токенів вказаного облікового запису.
  • Цей базовий токенний контракт демонструє, як використовувати змінні, функції та модифікатори в Solidity для створення простого, функціонального смарт-контракту.

Приклад2: Впровадження простої системи голосування

pragma solidity ^0.8.0;contract VotingSystem {    mapping (bytes32 => uint256) public votesReceived;    bytes32[] public candidateList;    constructor(bytes32[] memory candidateNames) {        candidateList = candidateNames;    }    function voteForCandidate(bytes32 candidate) public {        require(validCandidate(candidate), "Недійсний кандидат.");        votesReceived[candidate] += 1;    }    function totalVotesFor(bytes32 candidate) public view returns (uint256) {        require(validCandidate(candidate), "Недійсний кандидат.");        return votesReceived[candidate];    }    function validCandidate(bytes32 candidate) public view returns (bool) {        for (uint256 i = 0; i < candidateList.length; i++) {            if (candidateList[i] == candidate) {                return true;            }        }        return false;    }}

У цьому прикладі,Система голосуванняКонтракт дозволяє користувачам голосувати за одного з кількох кандидатів, зателефонувавши голосувати за кандидатафункція. Контракт відстежує кількість голосів, отриманих за кожного кандидата за допомогоюполучені голосивідображення, де ключем є ім'я кандидата, а значенням є кількість голосів. список кандидатівЗмінна зберігає список дійсних кандидатів. ЗагальнаКількістьГолосівДляфункцію можна викликати, щоб перевірити кількість голосів, яку отримав конкретний кандидат, тадійсний кандидатфункція перевіряє, чи кандидат є дійсним. Це простий приклад того, як Solidity може бути використаний для побудови децентралізованих додатків зі складною логікою.

Основне
Змінні, функції та модифікатори є невід'ємними компонентами у розумних контрактах Solidity.
У Solidity є два типи змінних: змінні стану та локальні змінні.
Функції використовуються для виконання завдань і можуть мати вхідні параметри та значення повернення.
Модифікатори використовуються для зміни поведінки функції та покращення зрозумілості та керованості коду.
Контракт SimpleToken дозволяє користувачам передавати токени та перевіряти баланси токенів.
Контракт SimpleToken демонструє використання змінних стану, функції конструктора та функцій, таких як transfer та balanceOf.
Контракт VotingSystem дозволяє користувачам голосувати за кандидатів та відстежує кількість голосів.
Контракт VotingSystem демонструє використання відображень, масивів та функцій, таких як voteForCandidate, totalVotesFor та validCandidate.

免責事項
* 暗号資産投資には重大なリスクが伴います。注意して進めてください。このコースは投資アドバイスを目的としたものではありません。
※ このコースはGate Learnに参加しているメンバーが作成したものです。作成者が共有した意見はGate Learnを代表するものではありません。