Struct PositionChangedEvent

Source
pub struct PositionChangedEvent {
    pub final_position: Option<Position>,
    pub position_notional: String,
    pub transaction_fee: Option<Coin>,
    pub realized_pnl: String,
    pub bad_debt: Option<Coin>,
    pub funding_payment: String,
    pub block_height: i64,
    pub margin_to_user: String,
    pub change_reason: String,
    pub exchanged_size: String,
    pub exchanged_notional: String,
}
Expand description

Emitted when a position changes.

Fields§

§final_position: Option<Position>§position_notional: String

Position notional (in quote units) after the change. In general, ‘notional = baseAmount * priceQuotePerBase’, where size is the baseAmount.

§transaction_fee: Option<Coin>

Transaction fee paid. A “taker” fee.

§realized_pnl: String

realize profits and losses after the change

§bad_debt: Option<Coin>

Amount of bad debt cleared by the PerpEF during the change. Bad debt is negative net margin past the liquidation point of a position.

§funding_payment: String

A funding payment made or received by the trader on the current position. ‘fundingPayment’ is positive if ‘owner’ is the sender and negative if ‘owner’ is the receiver of the payment. Its magnitude is abs(size * fundingRate). Funding payments act to converge the mark price and index price (average price on major exchanges).

§block_height: i64

The block number at which this position was changed.

§margin_to_user: String

margin_to_user is the amount of collateral received by the trader during the position change. A positve value indicates that the trader received funds, while a negative value indicates that the trader spent funds.

§change_reason: String

change_reason describes the reason for why the position resulted in a change. Change type can take the following values:

  • CHANGE_REASON_UNSPECIFIED: Unspecified change reason.
  • CHANGE_REASON_ADD_MARGIN: Margin was added to the position.
  • CHANGE_REASON_REMOVE_MARGIN: Margin was removed from the position.
  • CHANGE_REASON_OPEN_POSITION: A new position was opened.
  • CHANGE_REASON_CLOSE_POSITION: An existing position was closed.
§exchanged_size: String

exchanged_size represent the change in size for an existing position after the change. A positive value indicates that the position size increased, while a negative value indicates that the position size decreased.

§exchanged_notional: String

exchanged_notional represent the change in notional for an existing position after the change. A positive value indicates that the position notional increased, while a negative value indicates that the position notional decreased.

Trait Implementations§

Source§

impl Clone for PositionChangedEvent

Source§

fn clone(&self) -> PositionChangedEvent

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for PositionChangedEvent

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for PositionChangedEvent

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Message for PositionChangedEvent

Source§

fn encoded_len(&self) -> usize

Returns the encoded length of the message without a length delimiter.
Source§

fn clear(&mut self)

Clears the message, resetting all fields to their default.
Source§

fn encode<B>(&self, buf: &mut B) -> Result<(), EncodeError>
where B: BufMut, Self: Sized,

Encodes the message to a buffer. Read more
Source§

fn encode_to_vec(&self) -> Vec<u8>
where Self: Sized,

Encodes the message to a newly allocated buffer.
Source§

fn encode_length_delimited<B>(&self, buf: &mut B) -> Result<(), EncodeError>
where B: BufMut, Self: Sized,

Encodes the message with a length-delimiter to a buffer. Read more
Source§

fn encode_length_delimited_to_vec(&self) -> Vec<u8>
where Self: Sized,

Encodes the message with a length-delimiter to a newly allocated buffer.
Source§

fn decode<B>(buf: B) -> Result<Self, DecodeError>
where B: Buf, Self: Default,

Decodes an instance of the message from a buffer. Read more
Source§

fn decode_length_delimited<B>(buf: B) -> Result<Self, DecodeError>
where B: Buf, Self: Default,

Decodes a length-delimited instance of the message from the buffer.
Source§

fn merge<B>(&mut self, buf: B) -> Result<(), DecodeError>
where B: Buf, Self: Sized,

Decodes an instance of the message from a buffer, and merges it into self. Read more
Source§

fn merge_length_delimited<B>(&mut self, buf: B) -> Result<(), DecodeError>
where B: Buf, Self: Sized,

Decodes a length-delimited instance of the message from buffer, and merges it into self.
Source§

impl PartialEq for PositionChangedEvent

Source§

fn eq(&self, other: &PositionChangedEvent) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for PositionChangedEvent

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<U> As for U

Source§

fn as_<T>(self) -> T
where 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 more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

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

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
Source§

impl<M> NibiruProstMsg for M
where M: Message,

Source§

fn to_bytes(&self) -> Vec<u8>

Serialize this protobuf message as a byte vector
Source§

fn to_binary(&self) -> Binary

Source§

fn try_into_stargate_msg(&self, type_url: &str) -> CosmosMsg

A type implementing prost::Message is not guaranteed to implement prost::Name and have a Name.type_url() function. This method attempts to downcast the message to prost::Name, and if successful, constructs a CosmosMsg::Stargate object corresponding to the type.
Source§

fn from_any(any: &Any) -> Result<Self, DecodeError>
where Self: Default + Name + Sized,

Parse into this protobuf type from prost_types::Any.
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

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

fn clone_into(&self, target: &mut T)

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

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V