Solidity є основною мовою програмування для створення смарт-контрактів на Tron та інших блокчейнах на основі Ethereum. Синтаксис Solidity подібний до JavaScript, що полегшує його вивчення для людей, які мають досвід роботи з JavaScript.
Завдання 1: Витратьте приблизно 20 хвилин на ознайомлення з документацією Solidity (https://docs.soliditylang.org/). Запишіть будь-які подібності чи відмінності, які ви помітили між Solidity та іншими мовами програмування, які ви знаєте.
У Solidity ми маємо різні типи даних, включаючи uint, адресу, bool і рядок. Ми визначаємо змінні для зберігання даних і пишемо функції для обробки цих даних. Давайте створимо простий розумний контракт. Ми створимо договір, який зберігає номер і дозволяє нам отримувати та змінювати цей номер.
Відкрийте TronIDE і створіть нову робочу область. У першому контракті під назвою Storage.sol ви можете знайти цей код:
Solidity
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
/**
* @title Storage
* @dev Зберігати та отримувати значення у змінній
*/
contract Storage {
uint256 number;
/**
* @dev Зберігати значення у змінній
* @param num значення для збереження
*/
функція store(uint256 num) public {
number = num;
}
/**
* @dev Повернене значення
* @повернене значення з 'number'
*/
функція retrieve() публічний перегляд повертає (uint256){
return number;
}
}
У цьому контракті ми заявляємо:
number
змінної стану типу uint256
(256-розрядне ціле число без знаку)store()
, яка оновлює значення number
retrieve()
, яка повертає поточне значення number
Тепер, коли у нас є контракт, давайте розгорнемо його в Nile Testnet.
Вуаля! Ваш перший контракт уже опубліковано на Nile Testnet!
Після успішного розгортання смарт-контракту в Nile Testnet через TronIDE виконайте такі дії:
store()
і retrieve()
.store()
. Переконайтеся, що число знаходиться в прийнятному діапазоні для uint256
(від 0 до приблизно 1,15x10^77). Після введення числа натисніть кнопку store()
. Буде ініційовано транзакцію.retrieve()
. Натисніть кнопку retrieve()
. Для цієї функції не потрібно вводити значення.retrieve()
не створить нову транзакцію, оскільки це функція view
(вона не змінює стан контракту). Ви повинні побачити результат, який відображається на вкладці «консоль» у нижній частині екрана TronIDE. Число, яке ви бачите, має збігатися з тим, яке ви зберегли за допомогою функції store()
.Це воно! Ви взаємодіяли з розгорнутим контрактом. Ця взаємодія є основною частиною того, як користувачі взаємодіють із вашими dApps.
Solidity є основною мовою програмування для створення смарт-контрактів на Tron та інших блокчейнах на основі Ethereum. Синтаксис Solidity подібний до JavaScript, що полегшує його вивчення для людей, які мають досвід роботи з JavaScript.
Завдання 1: Витратьте приблизно 20 хвилин на ознайомлення з документацією Solidity (https://docs.soliditylang.org/). Запишіть будь-які подібності чи відмінності, які ви помітили між Solidity та іншими мовами програмування, які ви знаєте.
У Solidity ми маємо різні типи даних, включаючи uint, адресу, bool і рядок. Ми визначаємо змінні для зберігання даних і пишемо функції для обробки цих даних. Давайте створимо простий розумний контракт. Ми створимо договір, який зберігає номер і дозволяє нам отримувати та змінювати цей номер.
Відкрийте TronIDE і створіть нову робочу область. У першому контракті під назвою Storage.sol ви можете знайти цей код:
Solidity
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
/**
* @title Storage
* @dev Зберігати та отримувати значення у змінній
*/
contract Storage {
uint256 number;
/**
* @dev Зберігати значення у змінній
* @param num значення для збереження
*/
функція store(uint256 num) public {
number = num;
}
/**
* @dev Повернене значення
* @повернене значення з 'number'
*/
функція retrieve() публічний перегляд повертає (uint256){
return number;
}
}
У цьому контракті ми заявляємо:
number
змінної стану типу uint256
(256-розрядне ціле число без знаку)store()
, яка оновлює значення number
retrieve()
, яка повертає поточне значення number
Тепер, коли у нас є контракт, давайте розгорнемо його в Nile Testnet.
Вуаля! Ваш перший контракт уже опубліковано на Nile Testnet!
Після успішного розгортання смарт-контракту в Nile Testnet через TronIDE виконайте такі дії:
store()
і retrieve()
.store()
. Переконайтеся, що число знаходиться в прийнятному діапазоні для uint256
(від 0 до приблизно 1,15x10^77). Після введення числа натисніть кнопку store()
. Буде ініційовано транзакцію.retrieve()
. Натисніть кнопку retrieve()
. Для цієї функції не потрібно вводити значення.retrieve()
не створить нову транзакцію, оскільки це функція view
(вона не змінює стан контракту). Ви повинні побачити результат, який відображається на вкладці «консоль» у нижній частині екрана TronIDE. Число, яке ви бачите, має збігатися з тим, яке ви зберегли за допомогою функції store()
.Це воно! Ви взаємодіяли з розгорнутим контрактом. Ця взаємодія є основною частиною того, як користувачі взаємодіють із вашими dApps.