PriceProvidersRepository

PriceProvidersRepository

A repository of price providers. It manages price providers as well as maps assets to their price provider. It acts as a entry point for Silo for token prices.

Methods

acceptOwnership

function acceptOwnership() external nonpayable

Transfers ownership of the contract to a pending owner Can only be called by the pending owner.

addPriceProvider

function addPriceProvider(contract IPriceProvider _provider) external nonpayable

Register new price provider

Parameters

changeManager

function changeManager(address _manager) external nonpayable

Change manager address

Callable by manager or external owner role

Parameters

getPrice

function getPrice(address _asset) external view returns (uint256)

Returns "Time-Weighted Average Price" for an asset

Parameters

Returns

isPriceProvider

function isPriceProvider(contract IPriceProvider _provider) external view returns (bool)

Returns true if address is a registered price provider

Parameters

Returns

manager

function manager() external view returns (address)

Gets manager role address

Returns

owner

function owner() external view returns (address)

Returns the address of the current owner.

Returns

pendingOwner

function pendingOwner() external view returns (address)

Returns the address of the pending owner.

Returns

priceProviders

function priceProviders(address) external view returns (contract IPriceProvider)

Maps asset address to its price provider

Each asset must have a price provider contract assigned, otherwise it's not supported

Parameters

Returns

priceProvidersRepositoryPing

function priceProvidersRepositoryPing() external pure returns (bool)

Sanity check funciton

Returns

providerList

function providerList() external view returns (address[])

Gets an array of price providers

Returns

providersCount

function providersCount() external view returns (uint256)

Gets number of pice providers registerd

Returns

providersReadyForAsset

function providersReadyForAsset(address _asset) external view returns (bool)

Check if prices are available for an asset

Parameters

Returns

quoteToken

function quoteToken() external view returns (address)

Token in which prices are quoted. It's most likely WETH, however it could vary from deployment to deployment. For example 1 SILO costs X amount of quoteToken.

Returns

removePriceProvider

function removePriceProvider(contract IPriceProvider _provider) external nonpayable

Unregister price provider

Parameters

renounceOwnership

function renounceOwnership() external nonpayable

Leaves the contract without owner. It will not be possible to call onlyOwner functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.

setPriceProviderForAsset

function setPriceProviderForAsset(address _asset, contract IPriceProvider _provider) external nonpayable

Sets price provider for asset

Request for asset price is forwarded to the price provider assigned to that asset

Parameters

siloRepository

function siloRepository() external view returns (address)

SiloRepository contract address

Returns

transferOwnership

function transferOwnership(address newOwner) external nonpayable

Transfers ownership of the contract to a new account (newOwner). Can only be called by the current owner.

Parameters

transferPendingOwnership

function transferPendingOwnership(address newPendingOwner) external nonpayable

Transfers pending ownership of the contract to a new account (newPendingOwner). Can only be called by the current owner.

Parameters

Events

ManagerChanged

event ManagerChanged(address manager)

Emitted when manager is changed

Parameters

NewPriceProvider

event NewPriceProvider(contract IPriceProvider newPriceProvider)

Emitted when price provider is added

Parameters

OwnershipPending

event OwnershipPending(address indexed previousOwner, address indexed newOwner)

Emitted when ownership transfer is proposed, aka pending owner is set

Parameters

OwnershipTransferred

event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)

Emitted when ownership is transferred on transferOwnership and acceptOwnership

Parameters

PriceProviderForAsset

event PriceProviderForAsset(address indexed asset, contract IPriceProvider priceProvider)

Emitted when asset is assigned to price provider

Parameters

PriceProviderRemoved

event PriceProviderRemoved(contract IPriceProvider priceProvider)

Emitted when price provider is removed

Parameters

Last updated