Я пишу умный контракт, в котором я создаю объект (структуру) в одной функции, а затем я хочу изменить свойства в другой функции.Одно из свойств структуры добавляется в отображение, и именно так я отслеживаю их, но даже несмотря на то, что я создал функцию для получения свойств структуры из отображения, я все еще не могу понять, как их изменить.
Это структура
struct Component {
uint compID;
string compManufacturer;
string compDetails;
address owner;
address[] pastOwners;
bool transfer;
}
Это пример функции, в которой я пытаюсь изменить значения в структуре.
function transfer (address factory, uint id) public {
address compad;
address[] compowners;
bool boolean;
(,,, compad, compowners, boolean) = getComponent(id);
require(component.transfer == true);
component.owner = factory;
pastOwners = pastOwners.push(factory);
}
Функция getComponent
возвращает все, что находится в структуре, и здесь я инициализирую некоторые локальные переменные для хранения тех, которые мне нужны.Однако я не уверен, что то, что я делаю после этого, работает, потому что таким образом локальные переменные кажутся бесполезными, и если я изменю локальные переменные, изменения не будут проходить в реальном объекте.Пожалуйста, поправьте меня, если я ошибаюсь.Любая помощь приветствуется.