ERC20 bond staking module info library

ERC20BondStakingModuleInfo

this library provides read-only convenience functions to query additional information about the ERC20BondStakingModule contract.



tokens(address module) → address[] addresses_, string[] names_, string[] symbols_, uint8[] decimals_ (external)

convenience function to get all token metadata in a single call

Parameters

  • module: address of reward module


positions(address module, address addr, bytes data) → bytes32[] accounts_, uint256[] shares_ (external)

get all staking positions for user

Parameters

  • module: address of staking module

  • addr: user address of interest

  • data: additional encoded data



metadata(address module, uint256 id, bytes) → string (external)

provide the metadata URI for a bond position

Parameters

  • module: address of bond staking module

  • id: bond position identifier



quote(address module, address token, uint256 amount) → uint256, bool (public)

quote the debt share values to be issued for an amount of tokens

Parameters

  • module: address of bond staking module

  • token: address of market

  • amount: number of tokens to be deposited

Returns

  • debt estimated debt shares issued

  • okay if debt amount is within max size and capacity of market (note: this does not check reward module funding)



quote(address module, address token, uint256 amount, address config) → uint256, bool (external)

quote the debt share values to be issued for an amount of tokens after protocol fees

Parameters

  • module: address of bond staking module

  • token: address of market

  • amount: number of tokens to be deposited

  • config: address of configuration contract

Returns

  • debt estimated debt shares issued

  • okay if debt amount is within max size and capacity of market (note: this does not check reward module funding)



price(address module, address token) → uint256 (public)

get current price of debt share (reward token) in specified principal token shares

Parameters

  • module: address of bond staking module

  • token: address of market

Returns

  • price current price of reward debt share in principal token shares


unstakeable(address module, uint256 id, uint256 amount) → uint256, uint256, bool (external)

preview amount of deposit to be returned for an unstake

Parameters

  • module: address of bond staking module

  • id: bond position identifier

  • amount: number of tokens to be unstaked (pass 0 for all)

Returns

  • principal token amount returned

  • debt shares to be redeemed (possibly not all vested)

  • okay if unstake is valid for bond id and principal amount



withdrawable(address module, address token) → uint256 (public)

get current vested balance of specified principal token

Parameters

  • module: address of bond staking module

  • token: address of market

Returns

  • withdrawable amount of principal token