Skip to main content

SablierBobState

Git Source

Inherits: ISablierBobState

Title: SablierBobState

See the documentation in ISablierBobState.

State Variables

_defaultAdapters

Default adapters mapped by token address.

mapping(IERC20 token => ISablierBobAdapter adapter) internal _defaultAdapters

nativeToken

Retrieves the address of the ERC-20 interface of the native token, if it exists.

The native tokens on some chains have a dual interface as ERC-20. For example, on Polygon the $POL token is the native token and has an ERC-20 version at 0x0000000000000000000000000000000000001010. This means that address(this).balance returns the same value as balanceOf(address(this)). To avoid any unintended behavior, these tokens cannot be used in Sablier. As an alternative, users can use the Wrapped version of the token, i.e. WMATIC, which is a standard ERC-20 token.

address public override nativeToken

nextVaultId

Counter for vault IDs, incremented every time a new vault is created.

uint256 public override nextVaultId

_vaults

Vaults mapped by unsigned integers.

mapping(uint256 vaultId => Bob.Vault vault) internal _vaults

Functions

notNull

Checks that vaultId does not reference a null vault.

modifier notNull(uint256 vaultId) ;

constructor

Initializes the state variables.

constructor() ;

getAdapter

Returns the adapter configured for a specific vault.

Reverts if vaultId references a null vault.

function getAdapter(uint256 vaultId) external view override notNull(vaultId) returns (ISablierBobAdapter adapter);

getDefaultAdapterFor

Returns the default adapter for a given token.

Zero address means no adapter is set.

function getDefaultAdapterFor(IERC20 token) external view override returns (ISablierBobAdapter adapter);

Parameters

NameTypeDescription
tokenIERC20The ERC-20 token to query the default adapter for.

Returns

NameTypeDescription
adapterISablierBobAdapterThe default adapter for the token.

getExpiry

Returns the timestamp when the vault expires.

Reverts if vaultId references a null vault.

function getExpiry(uint256 vaultId) external view override notNull(vaultId) returns (uint40 expiry);

getLastSyncedAt

Returns the timestamp when the oracle price was last synced for a vault.

Reverts if vaultId references a null vault.

function getLastSyncedAt(uint256 vaultId) external view override notNull(vaultId) returns (uint40 lastSyncedAt);

getLastSyncedPrice

Returns the oracle price stored for a vault.

Reverts if vaultId references a null vault.

function getLastSyncedPrice(uint256 vaultId)
external
view
override
notNull(vaultId)
returns (uint128 lastSyncedPrice);

getOracle

Returns the oracle address set for a vault.

Reverts if vaultId references a null vault.

function getOracle(uint256 vaultId) external view override notNull(vaultId) returns (AggregatorV3Interface oracle);

getShareToken

Returns the address of the ERC-20 share token for a vault.

Reverts if vaultId references a null vault.

function getShareToken(uint256 vaultId)
external
view
override
notNull(vaultId)
returns (IBobVaultShare shareToken);

getTargetPrice

Returns the target price at which the vault settles.

Reverts if vaultId references a null vault.

function getTargetPrice(uint256 vaultId) external view override notNull(vaultId) returns (uint128 targetPrice);

getUnderlyingToken

Returns the ERC-20 token accepted for deposits in a vault.

Reverts if vaultId references a null vault.

function getUnderlyingToken(uint256 vaultId) external view override notNull(vaultId) returns (IERC20 token);

isStakedInAdapter

Returns whether the vault tokens are staked in an adapter.

Reverts if vaultId references a null vault.

function isStakedInAdapter(uint256 vaultId) external view override notNull(vaultId) returns (bool stakedInAdapter);

statusOf

Returns the vault status.

Reverts if vaultId references a null vault.

function statusOf(uint256 vaultId) external view override notNull(vaultId) returns (Bob.Status status);

_statusOf

Retrieves the vault's status without performing a null check.

function _statusOf(uint256 vaultId) internal view returns (Bob.Status);

_notNull

Reverts if vaultId references a null vault.

A private function is used instead of inlining this logic in a modifier because Solidity copies modifiers into every function that uses them.

function _notNull(uint256 vaultId) private view;