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: PriceBaseInQuote
Expected 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: Number
Max 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