Struct levana_perpswap_cosmos::contracts::market::entry::SlippageAssert
source · pub struct SlippageAssert {
pub price: PriceBaseInQuote,
pub tolerance: Number,
}Expand description
There are two sources of slippage in the protocol:
- Change in the oracle price from creation of the message to execution of the message.
- Change in delta neutrality fee from creation of the message to execution of the message. Slippage assert tolerance is the tolerance to the sum of the two sources of slippage.
Fields§
§price: PriceBaseInQuoteExpected effective price from the sender. To incorporate tolerance on delta neutrality fee,
the expected price should be modified by expected fee rate:
price = oracle_price * (1 + fee_rate)
fee_rate here is the ratio between the delta neutrality fee amount and notional size delta (in collateral asset).
tolerance: NumberMax ratio tolerance of actual trade price differing in an unfavorable direction from expected price. Tolerance of 0.01 means max 1% difference.
Trait Implementations§
source§impl Clone for SlippageAssert
impl Clone for SlippageAssert
source§fn clone(&self) -> SlippageAssert
fn clone(&self) -> SlippageAssert
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moresource§impl Debug for SlippageAssert
impl Debug for SlippageAssert
source§impl<'de> Deserialize<'de> for SlippageAssert
impl<'de> Deserialize<'de> for SlippageAssert
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
source§impl JsonSchema for SlippageAssert
impl JsonSchema for SlippageAssert
source§fn schema_name() -> String
fn schema_name() -> String
The name of the generated JSON Schema. Read more
source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Returns a string that uniquely identifies the schema produced by this type. Read more
source§fn json_schema(gen: &mut SchemaGenerator) -> Schema
fn json_schema(gen: &mut SchemaGenerator) -> Schema
Generates a JSON Schema for this type. Read more
§fn is_referenceable() -> bool
fn is_referenceable() -> bool
Whether JSON Schemas generated for this type should be re-used where possible using the
$ref keyword. Read moresource§impl PartialEq for SlippageAssert
impl PartialEq for SlippageAssert
source§fn eq(&self, other: &SlippageAssert) -> bool
fn eq(&self, other: &SlippageAssert) -> bool
This method tests for
self and other values to be equal, and is used
by ==.source§impl Serialize for SlippageAssert
impl Serialize for SlippageAssert
impl Eq for SlippageAssert
impl StructuralPartialEq for SlippageAssert
Auto Trait Implementations§
impl Freeze for SlippageAssert
impl RefUnwindSafe for SlippageAssert
impl Send for SlippageAssert
impl Sync for SlippageAssert
impl Unpin for SlippageAssert
impl UnwindSafe for SlippageAssert
Blanket Implementations§
§impl<U> As for U
impl<U> As for U
§fn as_<T>(self) -> Twhere
T: CastFrom<U>,
fn as_<T>(self) -> Twhere
T: CastFrom<U>,
Casts
self to type T. The semantics of numeric casting with the as operator are followed, so <T as As>::as_::<U> can be used in the same way as T as U for numeric conversions. Read moresource§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit)§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<T> QueryResultExt for Twhere
T: Serialize,
impl<T> QueryResultExt for Twhere
T: Serialize,
source§fn query_result(&self) -> Result<Binary, Error>
fn query_result(&self) -> Result<Binary, Error>
Convert the value to its JSON representation