diff --git a/contracts/presets/kpi-tokens/BaseKPIToken.sol b/contracts/presets/kpi-tokens/BaseKPIToken.sol index f550d77..2c29dda 100644 --- a/contracts/presets/kpi-tokens/BaseKPIToken.sol +++ b/contracts/presets/kpi-tokens/BaseKPIToken.sol @@ -10,11 +10,10 @@ import {IKPIToken} from "../../interfaces/IKPIToken.sol"; /// implementations for a set of Carrot KPI token functions. /// @author Federico Luzzi - abstract contract BaseKPIToken is IKPIToken, Initializable { - address public override owner; - string public override description; - bool public override finalized; - uint256 public override expiration; - uint256 public override creationTimestamp; + address internal internalOwner; + string internal internalDescription; + uint256 internal internalExpiration; + uint256 internal internalCreationTimestamp; address internal kpiTokensManager; uint128 internal templateVersion; uint256 internal templateId; @@ -53,10 +52,10 @@ abstract contract BaseKPIToken is IKPIToken, Initializable { if (_templateId == 0) revert InvalidTemplateId(); if (_templateVersion == 0) revert InvalidTemplateVersion(); - owner = _owner; - description = _description; - expiration = _expiration; - creationTimestamp = block.timestamp; + internalOwner = _owner; + internalDescription = _description; + internalExpiration = _expiration; + internalCreationTimestamp = block.timestamp; kpiTokensManager = _kpiTokensManager; templateId = _templateId; templateVersion = _templateVersion; @@ -67,12 +66,32 @@ abstract contract BaseKPIToken is IKPIToken, Initializable { /// @param _newOwner The new owner. function transferOwnership(address _newOwner) external override { if (_newOwner == address(0)) revert InvalidOwner(); - address _owner = owner; + address _owner = internalOwner; if (msg.sender != _owner) revert Forbidden(); - owner = _newOwner; + internalOwner = _newOwner; emit OwnershipTransferred(_owner, _newOwner); } + /// @dev Returns the KPI token's owner. + function owner() external view virtual override returns (address) { + return internalOwner; + } + + /// @dev Returns the KPI token's description. + function description() external view virtual override returns (string memory) { + return internalDescription; + } + + /// @dev Returns the KPI token's expiration. + function expiration() external view virtual override returns (uint256) { + return internalExpiration; + } + + /// @dev Returns the KPI token's creation timestamp. + function creationTimestamp() external view virtual override returns (uint256) { + return internalCreationTimestamp; + } + /// @dev Returns the KPI token's template as fetched from Carrot's KPI tokens manager, /// given the template's id and version. function template() external view override returns (Template memory) { diff --git a/contracts/presets/oracles/BaseOracle.sol b/contracts/presets/oracles/BaseOracle.sol index 3ebfbdc..5ff9a82 100644 --- a/contracts/presets/oracles/BaseOracle.sol +++ b/contracts/presets/oracles/BaseOracle.sol @@ -10,7 +10,6 @@ import {IOracle} from "../../interfaces/IOracle.sol"; /// implementations for a set of Carrot oracle functions. /// @author Federico Luzzi - abstract contract BaseOracle is IOracle, Initializable { - bool public override finalized; address public override kpiToken; address internal oraclesManager; uint128 internal templateVersion; diff --git a/test/mocks/MockBaseOracle.sol b/test/mocks/MockBaseOracle.sol index 2d1fa9e..765e645 100644 --- a/test/mocks/MockBaseOracle.sol +++ b/test/mocks/MockBaseOracle.sol @@ -6,6 +6,8 @@ import {InitializeOracleParams} from "../../contracts/commons/Types.sol"; import {BaseOracle} from "../../contracts/presets/oracles/BaseOracle.sol"; contract MockBaseOracle is BaseOracle { + bool public override finalized; + function initialize(InitializeOracleParams memory _params) external payable override initializer { __BaseOracle_init(_params.kpiToken, _params.templateId, _params.templateVersion); } diff --git a/test/mocks/MockConstantAnswererTrustedOracle.sol b/test/mocks/MockConstantAnswererTrustedOracle.sol index cb7824c..c19b6ff 100644 --- a/test/mocks/MockConstantAnswererTrustedOracle.sol +++ b/test/mocks/MockConstantAnswererTrustedOracle.sol @@ -5,6 +5,8 @@ import {BaseOracle} from "../../contracts/presets/oracles/BaseOracle.sol"; import {InitializeOracleParams} from "../../contracts/commons/Types.sol"; contract MockConstantAnswererTrustedOracle is BaseOracle, ConstantAnswererTrustedOracle { + bool public override finalized; + constructor(address _answerer) ConstantAnswererTrustedOracle(_answerer) {} function initialize(InitializeOracleParams memory _params) external payable override initializer { diff --git a/test/mocks/MockConstrainedOracle.sol b/test/mocks/MockConstrainedOracle.sol index ef3378b..ff95128 100644 --- a/test/mocks/MockConstrainedOracle.sol +++ b/test/mocks/MockConstrainedOracle.sol @@ -6,6 +6,8 @@ import {IBaseTemplatesManager, Template} from "../../contracts/interfaces/IBaseT import {InitializeOracleParams} from "../../contracts/commons/Types.sol"; contract MockConstrainedOracle is BaseOracle, ConstrainedOracle { + bool public override finalized; + function initialize(InitializeOracleParams memory _params) external payable override initializer { (Constraint _constraint, uint256 _value0, uint256 _value1) = abi.decode(_params.data, (Constraint, uint256, uint256)); diff --git a/test/mocks/MockKPIToken.sol b/test/mocks/MockKPIToken.sol index d38eb51..eefce59 100644 --- a/test/mocks/MockKPIToken.sol +++ b/test/mocks/MockKPIToken.sol @@ -16,6 +16,7 @@ struct OracleData { /// @dev A KPI token template implementation /// @author Federico Luzzi - contract MockKPIToken is BaseKPIToken { + bool public override finalized; address[] internal _oracles; function initialize(InitializeKPITokenParams memory _params) external payable override initializer { diff --git a/test/mocks/MockOracle.sol b/test/mocks/MockOracle.sol index 83f7231..72d0de3 100644 --- a/test/mocks/MockOracle.sol +++ b/test/mocks/MockOracle.sol @@ -9,7 +9,7 @@ import {InitializeOracleParams} from "../../contracts/commons/Types.sol"; contract MockOracle is IOracle, Initializable { address public constant RESULT_GETTER = address(4321); - bool public finalized; + bool public override finalized; address public kpiToken; address internal oraclesManager; uint128 internal templateVersion;