Я читал о состоянии смарт-контракта. Здесь
Также приводится небольшой пример договора.
contract SimpleStorage {
uint storedData;
function set(uint x) {
storedData = x;
}
function get() constant returns (uint) {
return storedData;
}
}
Здесь у нас есть переменная storageData и если мы хотим ее установить, то транзакция с x отправляется и состояние контракта меняется. Насколько я понял правильно не нужно отправлять транзакцию для чтения хранимых данных. Я могу совершить местный звонок.
А как насчет следующего контракта:
contract SimpleStorage {
function set(uint x) {
uint storedData = x;
return storedData;
}
}
StoredData теперь находится внутри функции и сохраняет содержимое, но изменит ли это состояние контракта? Нужно ли отправлять транзакцию для вызова этой функции или достаточно локального вызова?
Судя по моим знаниям в области программирования, я бы сказал, что нет, но я не уверен, когда дело доходит до смарт-контрактов :)
Спасибо
Отличие первого примера от второго в том, что в первом storedData
он находится в хранилище контракта , а во втором uint
— в переменной памяти . Хранилище сохраняется между транзакциями, память — нет. Таким образом, вы правы.
Пончик
0xcaff
Тьяден Хесс