Как манипулировать структурой Solidity с Solidity? - PullRequest
0 голосов
/ 29 сентября 2018

Я пишу умный контракт, в котором я создаю объект (структуру) в одной функции, а затем я хочу изменить свойства в другой функции.Одно из свойств структуры добавляется в отображение, и именно так я отслеживаю их, но даже несмотря на то, что я создал функцию для получения свойств структуры из отображения, я все еще не могу понять, как их изменить.

Это структура

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 возвращает все, что находится в структуре, и здесь я инициализирую некоторые локальные переменные для хранения тех, которые мне нужны.Однако я не уверен, что то, что я делаю после этого, работает, потому что таким образом локальные переменные кажутся бесполезными, и если я изменю локальные переменные, изменения не будут проходить в реальном объекте.Пожалуйста, поправьте меня, если я ошибаюсь.Любая помощь приветствуется.

1 Ответ

0 голосов
/ 29 сентября 2018

Предполагая, что у вас есть отображение, такое как:

mapping(uint => Component) public components;

Вы можете манипулировать так:

components[id].compDetails = "comp details";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...