Может ли дочерний контракт изменить значения родительского контракта в солидности

#inheritance #solidity #smartcontracts

Вопрос:

Если у нас есть 2 таких контракта :

 contract A {
  struct SampleA{
    uint id;
    bytes32 name;
    bytes32 toChange;
  }
  mapping (uint=> SampleA) public idToStruct;
}

contract B is A{
  function changeVar (bytes32 newVar) public {
    idToStruct[0].toChange = newVar;
  }
}
 

Могу ли я обновить переменную в контракте A из контракта B следующим образом?
Возможно ли это в солидности, если нет, есть ли обходной путь?

Ответ №1:

Да, вы можете изменять свойства родительского контракта, если это свойство не private является таковым .

Документы: https://docs.soliditylang.org/en/v0.8.6/contracts.html#visibility-and-getters