Oracle
The Oracle contract acts as the price source for the Anchor Money Market. Stablecoin-denominated prices of bAssets are periodically reported by oracle feeders, and are made queriable by other smart contracts in the Anchor ecosystem.
Config
Key
Type
Description
owner
CanonicalAddr
Address of contract owner that can feed in price values
base_asset
String
Asset which fed-in prices will be denominated in
InstantiateMsg
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
pub struct InstantiateMsg {
pub owner: String,
pub base_asset: String,
}
Key
Type
Description
owner
String
Address of contract owner that can feed in price values
base_asset
String
Asset which fed-in prices will be denominated in
ExecuteMsg
UpdateConfig
UpdateConfig
Updates the configuration of the contract. Can only be issued by the owner.
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
#[serde(rename_all = "snake_case")]
pub enum ExecuteMsg {
UpdateConfig {
owner: Option<String>,
}
}
Key
Type
Description
owner
*
String
Address of new owner
* = optional
RegisterFeeder
RegisterFeeder
Registers a feeder to the specified asset token.
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
#[serde(rename_all = "snake_case")]
pub enum ExecuteMsg {
RegisterFeeder {
asset: String,
feeder: String,
}
}
Key
Type
Description
asset
String
Asset to register feeder
feeder
String
Address of feeder to register
FeedPrice
FeedPrice
Feeds new price data. Can only be issued by the owner.
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
#[serde(rename_all = "snake_case")]
pub enum ExecuteMsg {
FeedPrice {
prices: Vec<(String, Decimal256)>,
}
}
Key
Type
Description
prices
Vec<(String, Decimal256)>
Vector of assets and their prices
QueryMsg
Config
Config
Gets the Oracle contract configuration.
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
#[serde(rename_all = "snake_case")]
pub enum QueryMsg {
Config {}
}
Key
Type
Description
ConfigResponse
ConfigResponse
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
pub struct ConfigResponse {
pub owner: String,
pub base_asset: String,
}
Key
Type
Description
owner
String
Address of contract owner
base_asset
String
Asset in which fed-in prices will be denominated
Feeder
Feeder
Gets the feeder for the specified asset.
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
#[serde(rename_all = "snake_case")]
pub enum QueryMsg {
Feeder {
asset: String,
}
}
Key
Type
Description
asset
String
Asset to get feeder information
FeederResponse
FeederResponse
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
pub struct FeederResponse {
pub asset: String,
pub feeder: String,
}
Key
Type
Description
asset
String
Asset type
feeder
String
Address of feeder allowed to feed prices for this asset
Price
Price
Gets price information for the specified base asset denominated in the quote asset.
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
#[serde(rename_all = "snake_case")]
pub enum QueryMsg {
Price {
base: String,
quote: String,
}
}
Key
Type
Description
base
String
Asset for which to get price
quote
String
Asset in which calculated price will be denominated
* = optional
PriceResponse
PriceResponse
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
pub struct PriceResponse {
pub rate: Decimal256,
pub last_updated_base: u64,
pub last_updated_quote: u64,
}
Key
Type
Description
rate
Decimal256
Price of base
asset denominated in quote
assets
last_updated_base
u64
Unix block timestamp when the base
asset price was last fed in
last_updated_quote
u64
Unix block timestamp when the quote
asset price was last fed in
Prices
Prices
Gets price information for all assets
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
#[serde(rename_all = "snake_case")]
pub enum QueryMsg {
Prices {
start_after: Option<String>,
limit: Option<u32>,
}
}
Key
Type
Description
start_after
*
String
Asset to start query
limit
*
u32
Maximum number of query entries
PricesResponse
PricesResponse
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
pub struct PricesResponse {
pub prices: Vec<PricesResponseElem>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
pub struct PricesResponseElem {
pub asset: String,
pub price: Decimal256,
pub last_updated_time: u64,
}
Key
Type
Description
prices
Vec<PricesResponseElem>
Vector of Asset price information
Key
Type
Description
asset
String
Asset whose price is being read
price
Decimal256
Price of Asset
last_updated_time
u64
Unix block timestamp when the price was last updated
Last updated
Was this helpful?