В смарт-контракте можно хранить различные типы данных и манипулировать ими. Вот некоторые распространенные типы данных и методов, которые можно использовать в смарт-контракте, а также примеры кода:
-
Хранение и получение данных:
-
Сохранение строки:
string public myString; function setString(string memory _value) public { myString = _value; } -
Сохранение целого числа:
uint public myNumber; function setNumber(uint _value) public { myNumber = _value; } -
Хранение массива адресов:
address[] public myAddresses; function addAddress(address _newAddress) public { myAddresses.push(_newAddress); }
-
-
Контроль доступа:
- Ограничение доступа к функции с помощью модификаторов:
address public owner; modifier onlyOwner() { require(msg.sender == owner, "Only the contract owner can call this function."); _; } function setOwner(address _newOwner) public onlyOwner { owner = _newOwner; }
- Ограничение доступа к функции с помощью модификаторов:
-
События:
- Отправка события:
event NewValue(string value); function setValue(string memory _value) public { emit NewValue(_value); }
- Отправка события:
-
Условные операторы:
- Использование операторов if-else:
function checkValue(uint _value) public pure returns (string memory) { if (_value > 10) { return "Value is greater than 10."; } else { return "Value is less than or equal to 10."; } }
- Использование операторов if-else:
-
Петли:
-
Использование цикла for:
function sumNumbers(uint[] memory _numbers) public pure returns (uint) { uint sum = 0; for (uint i = 0; i < _numbers.length; i++) { sum += _numbers[i]; } return sum; } -
Использование цикла while:
function countdown(uint _start) public pure { uint i = _start; while (i > 0) { // Do something i--; } }
-
Это всего лишь несколько примеров методов, которые можно использовать в смарт-контракте. Возможности огромны, а конкретные используемые методы будут зависеть от требований контракта.