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() , яка оновлює значення numberretrieve() , яка повертає поточне значення numberТепер, коли у нас є контракт, давайте розгорнемо його в Nile Testnet.


Вуаля! Ваш перший контракт уже опубліковано на Nile Testnet!
Після успішного розгортання смарт-контракту в Nile Testnet через TronIDE виконайте такі дії:
store() і retrieve().store() . Переконайтеся, що число знаходиться в прийнятному діапазоні для uint256 (від 0 до приблизно 1,15x10^77). Після введення числа натисніть кнопку store() . Буде ініційовано транзакцію.
retrieve() . Натисніть кнопку retrieve() . Для цієї функції не потрібно вводити значення.retrieve() не створить нову транзакцію, оскільки це функція view (вона не змінює стан контракту). Ви повинні побачити результат, який відображається на вкладці «консоль» у нижній частині екрана TronIDE. Число, яке ви бачите, має збігатися з тим, яке ви зберегли за допомогою функції store() .Це воно! Ви взаємодіяли з розгорнутим контрактом. Ця взаємодія є основною частиною того, як користувачі взаємодіють із вашими dApps.