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:
getAvailableRewardsto be added to theRewardsManagerModuleto return an account balance for a registered distributor.getPoolCollateralConfigurationto be added to thePoolModuleto 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:
getAvailableRewardsinRewardsManagerModule.test.tsgetPoolCollateralConfigurationinPoolConfigurationModule.test.ts
Configurable Values (Via SCCP)
N/A
Copyright
Copyright and related rights waived via CC0.