pub enum OsmosisQuery {
    FullDenom {
        contract: String,
        sub_denom: String,
    },
    PoolState {
        id: u64,
    },
    SpotPrice {
        swap: Swap,
        with_swap_fee: bool,
    },
    EstimatePrice {
        contract: String,
        first: Swap,
        route: Vec<Step>,
        amount: SwapAmount,
    },
}

Variants

FullDenom

Fields

contract: String
sub_denom: String

Given a sub-denom minted by a contract via OsmosisMsg::MintTokens, returns the full denom as used by BankMsg::Send. You may call FullDenom { contract: env.contract.address, sub_denom } to find the denom issued by the current contract.

PoolState

Fields

id: u64

For a given pool ID, list all tokens traded on it with current liquidity (spot). As well as the total number of LP shares and their denom

SpotPrice

Fields

swap: Swap
with_swap_fee: bool

Return current spot price swapping In for Out on given pool ID. Warning: this can easily be manipulated via sandwich attacks, do not use as price oracle. We will add TWAP for more robust price feed.

EstimatePrice

Fields

contract: String
first: Swap
route: Vec<Step>
amount: SwapAmount

Return current spot price swapping In for Out on given pool ID. You can call EstimatePrice { contract: env.contract.address, ... } to set sender to the current contract. Warning: this can easily be manipulated via sandwich attacks, do not use as price oracle. We will add TWAP for more robust price feed.

Implementations

Calculate spot price without swap fee

Basic helper to estimate price of a swap on one pool

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Deserialize this value from the given Serde deserializer. Read more

The name of the generated JSON Schema. Read more

Generates a JSON Schema for this type. Read more

Whether JSON Schemas generated for this type should be re-used where possible using the $ref keyword. Read more

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Should always be Self

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.