fireblocks-sdk 2025.10.17

Rust implementation of the Fireblocks SDK
Documentation
// Fireblocks API
//
// Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain.  - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
//
// The version of the OpenAPI document: 1.8.0
// Contact: developers@fireblocks.com
// Generated by: https://openapi-generator.tech

use {
    crate::models,
    serde::{Deserialize, Serialize},
};

/// NonWalletQuoteResponse : Return a quote that cannot be used for a swap
/// operation.
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct NonWalletQuoteResponse {
    #[serde(rename = "protocol")]
    pub protocol: models::SwapProviderProtocolsEnum,
    /// The amount of tokens the swapper will provide
    #[serde(rename = "inputAmount")]
    pub input_amount: String,
    /// The id of the asset the swapper will provide
    #[serde(rename = "inputAsset")]
    pub input_asset: String,
    /// The slippage tolerance is a percentage. The slippage tolerance is the
    /// maximum amount the price can change between the time the transaction is
    /// submitted and the time it is executed
    #[serde(rename = "slippageTolerance")]
    pub slippage_tolerance: f64,
    /// The minimum amount of tokens the swapper will receive
    #[serde(rename = "outputMinAmount")]
    pub output_min_amount: String,
    /// Maximum amount of tokens that the swapper will receive
    #[serde(rename = "outputMaxAmount")]
    pub output_max_amount: String,
    /// The id of the asset the swapper will receive
    #[serde(rename = "outputAsset")]
    pub output_asset: String,
    #[serde(rename = "additionalData")]
    pub additional_data: models::ProviderAdditionalData,
    #[serde(rename = "estimatedFees")]
    pub estimated_fees: models::NonWalletQuoteFee,
}

impl NonWalletQuoteResponse {
    /// Return a quote that cannot be used for a swap operation.
    pub fn new(
        protocol: models::SwapProviderProtocolsEnum,
        input_amount: String,
        input_asset: String,
        slippage_tolerance: f64,
        output_min_amount: String,
        output_max_amount: String,
        output_asset: String,
        additional_data: models::ProviderAdditionalData,
        estimated_fees: models::NonWalletQuoteFee,
    ) -> NonWalletQuoteResponse {
        NonWalletQuoteResponse {
            protocol,
            input_amount,
            input_asset,
            slippage_tolerance,
            output_min_amount,
            output_max_amount,
            output_asset,
            additional_data,
            estimated_fees,
        }
    }
}