Oracle
Encapsulated the call to PythOracle.
Config
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
pub struct Config {
pub owner: CanonicalAddr,
pub pyth_contract: CanonicalAddr,
pub new_owner: Option<CanonicalAddr>,
}
owner
CanonicalAddr
The address of the contract's owner
pyth_contract
CanonicalAddr
The address of pyth oracle contract
new_owner*
CanonicalAddr
The address of the contract's new owner
* = optional
InitMsg
#[cw_serde]
pub struct InstantiateMsg {
pub pyth_contract: String,
pub owner: Addr,
}
{
"owner": "sei...address...",
"pyth_contract": "sei...address..."
}
owner
string
The address of the contract's owner
pyth_contract
string
The address of pyth oracle contract
ExecuteMsg
ConfigFeedInfo
Set the relevant information for updating oracle.
#[cw_serde]
pub enum ExecuteMsg {
ConfigFeedInfo {
asset: String,
price_feed_id: String,
price_feed_symbol: String,
price_feed_decimal: u32,
check_feed_age: bool,
price_feed_age: u64,
},
}
{
"config_feed_info": {
"asset": "factory/sei1h3ukufh4lhacftdf6kyxzum4p86rcnel35v4jk/usdt",
"price_feed_id": "ff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace",
"price_feed_symbol": "Crypto.ETH/USD",
"price_feed_decimal": 8,
"price_feed_age": 360,
"check_feed_age": true
}
}
asset
string
The address of the asset
price_feed_id
string
The pyth price feed id
price_feed_symbol
string
The pyth price feed symbol
price_feed_decimal
u32
The pyth price feed decimal
check_feed_age
bool
Whether to check the age of the price feed
price_feed_age
u64
The maximum age of the price feed in seconds
ChangeOwner
Change the contract owner, only can issued by current owner.
#[cw_serde]
pub enum ExecuteMsg {
ChangeOwner {
new_owner: String,
},
}
{
"change_owner": {
"new_owner": "sei...addr..."
}
}
new_owner
string
The address of the new contract owner.
SetConfigFeedValid
Set whether the oracle is available, the default is available, the type is bool.
#[cw_serde]
pub enum ExecuteMsg {
SetConfigFeedValid {
asset: String,
valid: bool,
},
}
{
"set_config_feed_valid": {
"asset": "factory/sei1h3ukufh4lhacftdf6kyxzum4p86rcnel35v4jk/usdt",
"valid": true
}
}
asset
string
The address of the asset
valid
bool
Whether the oracle is available
ChangePythContract
Change the pyth contract address, only can issued by current owner.
#[cw_serde]
pub enum ExecuteMsg {
ChangePythContract {
pyth_contract: String,
},
}
{
"change_pyth_contract": {
"pyth_contract": "sei...addr..."
}
}
pyth_contract
String
The pyth contract address
QueryMsg
All query messages are described below. A custom struct is defined for each query response.
QueryPrice
Returns the price of the asset.
#[cw_serde]
#[derive(QueryResponses)]
pub enum QueryMsg {
#[returns(PriceResponse)]
QueryPrice { asset: String },
}
{
"query_price": {
"asset": "factory/sei1h3ukufh4lhacftdf6kyxzum4p86rcnel35v4jk/usdt"
}
}
asset
string
The address of the asset
PriceResponse
#[cw_serde]
pub struct PriceResponse {
pub asset: String,
pub emv_price: Decimal256,
pub emv_price_raw: i64,
pub price: Decimal256,
pub price_raw: i64,
pub last_updated_base: u64,
pub last_updated_quote: u64,
}
{
"price_response": {
"asset": "factory/sei1h3ukufh4lhacftdf6kyxzum4p86rcnel35v4jk/usdt",
"emv_price": "1.00000000",
"emv_price_raw": 100000000,
"price": "1.00000000",
"price_raw": 100000000,
"last_updated_base": 1634160000,
"last_updated_quote": 1634160000
}
}
asset
string
The address of the asset
emv_price
decimal
The emv price of the asset in the base currency
emv_price_raw
i64
The emv price of the asset in the base currency, multiplied by 10^8
price
decimal
The price of the asset in the quote currency
price_raw
i64
The price of the asset in the quote currency, multiplied by 10^8
last_updated_base
u64
The timestamp of the last update of the price of the asset in the base currency
last_updated_quote
u64
The timestamp of the last update of the price of the asset in the quote currency
QueryPrices
Returns the prices of the assets.
#[cw_serde]
#[derive(QueryResponses)]
pub enum QueryMsg {
#[returns(Vec < PriceResponse >)]
QueryPrices { assets: Vec<String> },
}
{
"query_prices": {
"assets": [
"factory/sei1h3ukufh4lhacftdf6kyxzum4p86rcnel35v4jk/usdt",
"factory/sei1h3ukufh4lhacftdf6kyxzum4p86rcnel35v4jk/eth"
]
}
}
assets
Vec<String>
The list of asset addresses
QueryConfig
Returns information about global config.
#[cw_serde]
#[derive(QueryResponses)]
pub enum QueryMsg {
#[returns(ConfigResponse)]
QueryConfig {},
}
{
"query_config": {}
}
ConfigResponse
#[cw_serde]
pub struct PythFeederConfigResponse {
pub price_feed_id: PriceIdentifier,
pub price_feed_symbol: String,
pub price_feed_decimal: u32,
pub price_feed_age: u64,
pub check_feed_age: bool,
pub is_valid: bool,
}
{
"config_response": {
"price_feed_id": "fff...",
"price_feed_symbol": "USDT",
"price_feed_decimal": 6,
"price_feed_age": 1634160000,
"check_feed_age": true,
"is_valid": true
}
}
QueryPythFeederConfig
Returns the pyth feeder config.
#[cw_serde]
#[derive(QueryResponses)]
pub enum QueryMsg {
#[returns(PythFeederConfigResponse)]
QueryPythFeederConfig { asset: String },
}
{
"query_pyth_feeder_config": {
"asset": "factory/sei1h3ukufh4lhacftdf6kyxzum4p86rcnel35v4jk/usdt"
}
}
asset
string
The address of the asset
PythFeederConfigResponse
#[cw_serde]
pub struct PythFeederConfigResponse {
pub price_feed_id: PriceIdentifier,
pub price_feed_symbol: String,
pub price_feed_decimal: u32,
pub price_feed_age: u64,
pub check_feed_age: bool,
pub is_valid: bool,
}
{
"pyth_feeder_config_response": {
"price_feed_id": "fff...",
"price_feed_symbol": "USDT",
"price_feed_decimal": 6,
"price_feed_age": 1634160000,
"check_feed_age": true,
"is_valid": true
}
}
price_feed_id
string
The price feed id
price_feed_symbol
string
The price feed symbol
price_feed_decimal
u32
The price feed decimal
price_feed_age
u64
The price feed age
check_feed_age
bool
Whether to check the price feed age
is_valid
bool
Whether the config is valid
QueryExchangeRateByAssetLabel
Returns the exchange rate of the asset label.
#[cw_serde]
#[derive(QueryResponses)]
pub enum QueryMsg {
#[returns(Decimal256)]
QueryExchangeRateByAssetLabel { base_label: String, quote_label: String },
}
{
"query_exchange_rate_by_asset_label": {
"base_label": "USDT",
"quote_label": "ETH"
}
}
base_label
String
The base label
quote_label
String
The quote label
Last updated