pub struct SimulationResult {
pub success: bool,
pub from_token: String,
pub to_token: String,
pub input_amount: Decimal,
pub output_amount: Decimal,
pub price_impact_percent: Decimal,
pub gas_cost_usd: Decimal,
pub min_output: Decimal,
pub exchange: String,
pub route: Vec<String>,
pub warnings: Vec<String>,
}Expand description
Result of a trade simulation
Fields§
§success: boolWhether simulation was successful
from_token: StringInput token
to_token: StringOutput token
input_amount: DecimalInput amount
output_amount: DecimalExpected output amount
price_impact_percent: DecimalEstimated price impact percentage
gas_cost_usd: DecimalEstimated gas cost in USD
min_output: DecimalMinimum output with slippage
exchange: StringExchange/DEX being used
route: Vec<String>Route taken (for multi-hop swaps)
warnings: Vec<String>Warnings if any
Implementations§
Source§impl SimulationResult
impl SimulationResult
Sourcepub fn has_high_impact(&self, threshold: Decimal) -> bool
pub fn has_high_impact(&self, threshold: Decimal) -> bool
Check if this trade has high price impact
Sourcepub fn total_cost_usd(&self, input_price_usd: Decimal) -> Decimal
pub fn total_cost_usd(&self, input_price_usd: Decimal) -> Decimal
Get total cost (gas + price impact)
Trait Implementations§
Source§impl Clone for SimulationResult
impl Clone for SimulationResult
Source§fn clone(&self) -> SimulationResult
fn clone(&self) -> SimulationResult
Returns a duplicate 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 SimulationResult
impl Debug for SimulationResult
Source§impl<'de> Deserialize<'de> for SimulationResult
impl<'de> Deserialize<'de> for SimulationResult
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
Auto Trait Implementations§
impl Freeze for SimulationResult
impl RefUnwindSafe for SimulationResult
impl Send for SimulationResult
impl Sync for SimulationResult
impl Unpin for SimulationResult
impl UnwindSafe for SimulationResult
Blanket Implementations§
Source§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§impl<T> GetSetFdFlags for T
impl<T> GetSetFdFlags for T
Source§fn get_fd_flags(&self) -> Result<FdFlags, Error>where
T: AsFilelike,
fn get_fd_flags(&self) -> Result<FdFlags, Error>where
T: AsFilelike,
Query the “status” flags for the
self file descriptor.Source§fn new_set_fd_flags(&self, fd_flags: FdFlags) -> Result<SetFdFlags<T>, Error>where
T: AsFilelike,
fn new_set_fd_flags(&self, fd_flags: FdFlags) -> Result<SetFdFlags<T>, Error>where
T: AsFilelike,
Source§fn set_fd_flags(&mut self, set_fd_flags: SetFdFlags<T>) -> Result<(), Error>where
T: AsFilelike,
fn set_fd_flags(&mut self, set_fd_flags: SetFdFlags<T>) -> Result<(), Error>where
T: AsFilelike,
Set the “status” flags for the
self file descriptor. Read moreSource§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::RequestSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request