SIP-342: Add missing view functions to access current configurations and state
Author | |
---|---|
Status | Implemented |
Type | Governance |
Network | Ethereum & Optimism |
Implementor | James Zwar (@jmzwar), Noisekit (@noisekit) |
Release | TBD |
Proposal | Loading status... |
Created | 2023-10-03 |
Abstract
SIP-342 Proposes adding a few missing view functions to read current state to be used in UI, tests and other scripts:
getAvailableRewards
to be added to theRewardsManagerModule
to return an account balance for a registered distributor.getPoolCollateralConfiguration
to be added to thePoolModule
to return a collateral configuration specific to the pool.
Motivation
Currently, to retrieve the available balance of an account a static call to claimRewards
is required, which throws an exception on an account have a zero balance. This is cumbersome for frontend providers to handle an the exceptions must be handled.
Collateral configuration for pool is currently only available via event PoolCollateralConfiguration
which makes it impossible to query contract directly to retrieve such configuration after it has been set. This requies UIs to rely on subgraphs exclusively to access such configuration.
Technical Specification
In the RewardsManagerModule
view function to be added:
function getAvailableRewards(
uint128 accountId,
uint128 poolId,
address collateralType,
address distributor
) external view returns (uint256 rewardAmount);
In the PoolModule
view function to be added:
function getPoolCollateralConfiguration(
uint128 poolId,
address collateralType
) external view returns (PoolCollateralConfiguration.Data memory config);
Test Case
Extra test cases to be added for new view methods:
getAvailableRewards
inRewardsManagerModule.test.ts
getPoolCollateralConfiguration
inPoolConfigurationModule.test.ts
Configurable Values (Via SCCP)
N/A
Copyright
Copyright and related rights waived via CC0.