//указываем версию солидити pragma solidity ^0.4.11; //Обьявляем контракт contract smartContractDiff { //Объявляем переменную donator, хранящую значение типа Адресс //Public озночает то, что значение переменной будет видно всем address public donator; //Объявляем переменную owner, владелец контракта значение типа Адресс address public owner; //Объявляем перменную value, в которой будет хранится значение значение типа uint uint public value; //Объявляем переменную lastTimeForDonate,в которой будет хранится значение типа uint uint public lastTimeForDonate; //Объявляем переменную lastTimeForValue,в которой будет хранится значение типа uint uint public lastTimeForValue; //Объявляем переменную timeOut,в которой будет хранится определенное значение типа uint uint timeOut = 120 seconds; //Функция инициализации смарт-контракта function smartContractDiff() { //присваиваем в owner адрес того, кто задеплоил смарт контракт owner = msg.sender; } //Функция для приема ефиров //Без названия //Модификатор payable function () payable { //Проверяем что переведено достаточно средств require(msg.value > 1 finney); //Проверяем, что с момента предыдущего перевода прошло больше 120 секунд require(lastTimeForDonate > 120 seconds); //Проверяем, что выполнено условие по времени require(lastTimeForDonate + timeOut < now); //вызываем внутреннюю функция setDonator(msg.sender); } //Функция для приема ефиров и установки значения //Функция принимает переменную _value в формате uint //Модификатор payable function buyValue(uint _value) payable { //Проверяемб что переведено достаточно средств require(msg.value > 1 finney); //Проверяем, что выполнено условие по времени require(lastTimeForValue + timeOut < now); //вызываем внутреннюю функция setValue(_value); } //Функция установки нового значения //Модификатор internal //Присваиваем новое значение value //Установка нового времени function setValue(uint _value) internal { //Присваиваем переменной value значение адреса находящегося в _value value = _value; lastTimeForValue = now; } //Функция установки нового адреса donator //модификатор internal //Присваиваем новое значение donator //Установка нового времени function setDonator(address _donator) internal { donator = _donator; lastTimeForDonate = now; } }
0.4.11