pragma solidity >=0.4.22 <0.7.0; interface IStorage { function store(uint256 num) external; function retrieve() external view returns (uint256); } /** * @title Storage * @dev Store & retrieve value in a variable */ contract Storage is IStorage { uint256 number; /** * @dev Store value in variable * @param num value to store */ function store(uint256 num) external override { number = num; } /** * @dev Return value * @return value of 'number' */ function retrieve() public view override returns (uint256){ return number; } } contract A { uint256 a =1; function retrieve(address _s) public returns (uint256) { IStorage s = IStorage(_s); s.retrieve(); s.retrieve(); } function retrieveB(address _s) public returns (uint256) { IStorage(_s).retrieve(); IStorage(_s).retrieve(); } }
0.4.18