Разбираем код первого контракта.

Здесь я разберу код, который мы деплоили в блокчейн из прошлого поста «Как начать работать с geth и mist. Деплой первого контракта в сеть.»

Продублирую полный код контракта:

pragma solidity ^0.4.18;
 
contract HelloWorld {
string wellcomeString = "Hello, world!";
function getData() public constant returns (string) {
 return wellcomeString;
 }
function setData(string newData) public {
 wellcomeString = newData;
 }
}

Далее разберемся построчно что же делает контракт.

pragma solidity ^0.4.18

pragma (прагма) — препроцессорная директива, которая указывает компилятору на какой версии solidity написан контракт.

contract HelloWorld {

Создаем контракт с названием HelloWorld, контракты можно сравнить с классами в ООП.

string wellcomeString = "Hello, world!";

Создаем переменную с именем welcomeString типа String и значением «Hello, world!»

function getData() public constant returns (string) {

Создаем публичную функцию с именем getData, которая возвращает значение типа String.

return wellcomeString;

Внутри функции мы описываем, что она должна делать, в данном конкретном случае — возвращает переменную wellcomeString, с заданным ранее значением «Hello, World!».
В этом контракте мы пошли немного дальше стандартного «Hello, World!» и создали еще одну публичную функцию с именем setData.

function setData(string newData) public {

Данная функция принимает значение переменной newData типа String.

wellcomeString = newData;

Функция присваивает значение переменной newData переменной wellcomeString. Тем самым мы можем менять начальное «Hello, World!» на что угодно.

Загрузив контракт в сеть, если вы все сделали правильно из прошлого поста, вы можете это проверить.

Для этого в браузере Mist перейдите на вкладку Contracts и выберите созданный контракт.

В поле Select Function, выберите функцию Set Data и в поле ниже введите свое значение, например «Wellcome» и нажмите кнопку Execute.

Если вы все сделали правильно, то вы увидите, что значение переменной getData поменялось на «Wellcome».

 

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *