PoolAddressesProvider
Addresses register of the protocol for a particular market. This contract is immutable and the address will never change.
Whenever the `Pool` contract is needed, we recommended you fetch the correct address from the `PoolAddressesProvider` smart contract.
function getMarketId() external view override returns (string memory)
Fetch the market id of the associated Themis 2.0 market.
Type | Description |
---|---|
string | A string representation of the market |
function getAddress(bytes32 id) public view override returns (address)
Fetch the address of the protocol contract stored at the given id.
Name | Type | Description |
---|---|---|
id | bytes32 | id. Example, the Protocol Data Provider uses id 0x1 |
Type | Description |
---|---|
address | The address associated with the bytes32 id passed |
// Get address of incentive controller
import {utils} from '@ethers/lib/utils';
const id = utils.keccak256(utils.toUtf8Bytes("INCENTIVES_CONTROLLER"));
const address = poolAddressProvider.getAddress(id);
function getPool() external view override returns (address)
Fetch the contract of latest pool
Type | Description |
---|---|
address | The address of the associated Pool |
function getPoolConfigurator() external view override returns (address)
Fetch the PoolConfigurator is used for configuration methods, like init reserves or update token implementation etc, of the market.
Type | Description |
---|---|
address | The address of associated market’s PoolConfigurator |
function getPriceOracle() external view override returns (address)
function getPriceOracle() external view override returns (address)
Fetch Price Oracle used by the market.
Type | Description |
---|---|
address | The address of the price oracle used by associated market. |
function getACLManager() external view override returns (address)
Fetch ACLManger that manages the system role of the market
Type | Description |
---|---|
address | The address of the ACLManger contract managing the system role of the associated market. |
function getACLAdmin() external view override returns (address)
Fetch ACLAdmin of the market which holds the DEFAULT_ADMIN_ROLE in ACLManager.
Type | Description |
---|---|
address | The address of the access control list admin of the associated market. |
function getPriceOracleSentinel() external view override returns (address)
Type | Description |
---|---|
address | The address of the Price oracle sentinel of the associated market. |
function getPoolDataProvider() external view override returns (address)
Fetch address of latest pool data provider.
Type | Description |
---|---|
address | The address of the pool data provider of the associated market. |
unction getM1Pool() external view override returns (address)
Fetch the contract of latest M1 pool
Type | Description |
---|---|
address | The address of the associated M1 Pool |
function getM1PoolConfigurator() external view override returns (address)
Fetch the M1 PoolConfigurator is used for configuration methods, like init reserves or update token implementation etc, of the market.
Type | Description |
---|---|
address | The address of associated market’s M1 PoolConfigurator |
function getM1CollateralValueCalculator() external view override returns (address)
M1 pool collateral calculation contract for M1 collateral value calculation
Type | Description |
---|---|
address | The address of associated market’s CollateralValueCalculator |
function setMarketId(string memory newMarketId) external override onlyOwner Updates the identifier of the Themis market
Name | Type | Description |
---|---|---|
newMarketId | string | The new id of the market |
function setAddress(bytes32 id, address newAddress) external override onlyOwner
Sets the address of protocol contract stored at given id.
Eg.
utils.keccak256(utils.toUtf8Bytes("INCENTIVES_CONTROLLER"))
is set to address of INCENTIVES_CONTROLLERName | Type | Description |
---|---|---|
id | bytes32 | keccak256 hash of UTF8Bytes string representing Contract |
newAddress | address | The new address to be set corresponding to the id |
function setAddressAsProxy(bytes32 id, address newImplementationAddress) external override onlyOwner
Sets/updates the implementation address of a specific proxied protocol contract.
If there is no proxy registered with the given identifier, it creates the proxy setting newAddress as implementation and calls the initialize() function on the proxy
Name | Type | Description |
---|---|---|
id | bytes32 | id of Proxy contract |
newImplementationAddress | address | The address of new implementation contract corresponding to the proxy |
function setPoolImpl(address newPoolImpl) external override onlyOwner
Sets/update the implementation of the POOL proxy contract.
Name | Type | Description |
---|---|---|
newPoolImpl | address | The address of new Pool implementation contract |
function setPoolConfiguratorImpl(address newPoolConfiguratorImpl) external override onlyOwner
Sets/updates the implementation of the POOL_CONFIGURATOR proxy contract.
Name | Type | Description |
---|---|---|
newPoolConfiguratorImpl | address | The address of new PoolConfigurator implementation contract |
function setPriceOracle(address newPriceOracle) external override onlyOwner
Sets/updates address of the PriceOracle contract.
Name | Type | Description |
---|---|---|
newPriceOracle | address | The address of new PriceOracle contract |
function setACLAdmin(address newAclAdmin) external override onlyOwner
Sets/updates address of the AclAdmin.
Name | Type | Description |
---|---|---|
newAclAdmin | address | The address of new AclAdming |
function setPriceOracleSentinel(address newPriceOracleSentinel) external override onlyOwner
Sets/updates address of the Price oracle sentinel.
Name | Type | Description |
---|---|---|
newPriceOracleSentinel | address | The address of new PriceOracleSentinel |
function setPoolDataProvider(address newDataProvider) external override onlyOwner
Sets/updates address of PoolDataProvider.
Name | Type | Description |
---|---|---|
newDataProvider | address | The address of new PoolDataProvider |
function setM1PoolImpl(address newM1PoolImpl) external override onlyOwner
Sets/update the implementation of the POOL proxy contract.
Name | Type | Description |
---|---|---|
newM1PoolImpl | address | The address of new M1Pool implementation contract |
function setM1PoolConfiguratorImpl(address newM1PoolConfiguratorImpl) external override onlyOwner
Sets/updates the implementation of the M1_POOL_CONFIGURATOR proxy contract.
Name | Type | Description |
---|---|---|
newM1PoolConfiguratorImpl | address | The address of new M1PoolConfigurator implementation contract |
Last modified 1yr ago