Por ejemplo, el contrato "ABC" utilizará las propiedades y métodos "XYZ". Ambos propietarios del contrato son los mismos.
Gracias
Prueba este código en Remix:
pragma solidity 0.4.24;
contract XYZ {
address public owner;
constructor() public {
owner = msg.sender;
}
function doSomething() external {
emit SomethingDone(address(this));
}
event SomethingDone(address _addr);
}
contract ABC {
address public owner;
XYZ xyz_;
constructor(XYZ _xyz) public {
xyz_ = _xyz;
owner = msg.sender;
}
function interactWithXYZ() external {
xyz_.doSomething();
}
}
Primero, implemente el contrato XYZ
. Luego, implemente el contrato ABC
utilizando la dirección del XYZ
contrato implementado. Cuando haya terminado, intente llamar ABC
al interactWithXYZ()
método. Verá un evento en la consola.
Tienes que crear una interfaz con todos los métodos de tu contrato XYZ
interface IXYZ {
function doSomething() external;
}
y luego lo llama dentro de su contrato donde desea usarlo con el contrato de dirección
IXYZ(xyz_).doSomething();