fireblocks-sdk 2026.3.27

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},
};

/// ExtraParameters : Additional protocol / operation specific key-value parameters:  For UTXO-based blockchain input selection, add the key `inputsSelection` with the value set the [input selection structure.](https://developers.fireblocks.com/reference/transaction-objects#inputsselection) The inputs can be retrieved from the [Retrieve Unspent Inputs endpoint.](https://developers.fireblocks.com/reference/get_vault-accounts-vaultaccountid-assetid-unspent-inputs)  For `RAW` operations, add the key `rawMessageData` with the value set to the [raw message data structure.](https://developers.fireblocks.com/reference/raw-signing-objects#rawmessagedata)  For `CONTRACT_CALL` operations, add the key `contractCallData` with the value set to the Ethereum smart contract Application Binary Interface (ABI) payload. The Fireblocks [development libraries](https://developers.fireblocks.com/docs/ethereum-development#convenience-libraries) are recommended for building contract call transactions. *Note: `rawMessageData`, `contractCallData`, and `inputsSelection` cannot be used together in the same call.\"
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct ExtraParameters {
    #[serde(rename = "nodeControls", skip_serializing_if = "Option::is_none")]
    pub node_controls: Option<models::NodeControls>,
    #[serde(rename = "rawMessageData", skip_serializing_if = "Option::is_none")]
    pub raw_message_data: Option<models::ExtraParametersRawMessageData>,
    /// Hex encoded contract call data as a string.
    #[serde(rename = "contractCallData", skip_serializing_if = "Option::is_none")]
    pub contract_call_data: Option<String>,
    #[serde(rename = "programCallData", skip_serializing_if = "Option::is_none")]
    pub program_call_data: Option<String>,
    #[serde(rename = "inputsSelection", skip_serializing_if = "Option::is_none")]
    pub inputs_selection: Option<models::ExtraParametersInputsSelection>,
}

impl ExtraParameters {
    /// Additional protocol / operation specific key-value parameters:  For UTXO-based blockchain input selection, add the key `inputsSelection` with the value set the [input selection structure.](https://developers.fireblocks.com/reference/transaction-objects#inputsselection) The inputs can be retrieved from the [Retrieve Unspent Inputs endpoint.](https://developers.fireblocks.com/reference/get_vault-accounts-vaultaccountid-assetid-unspent-inputs)  For `RAW` operations, add the key `rawMessageData` with the value set to the [raw message data structure.](https://developers.fireblocks.com/reference/raw-signing-objects#rawmessagedata)  For `CONTRACT_CALL` operations, add the key `contractCallData` with the value set to the Ethereum smart contract Application Binary Interface (ABI) payload. The Fireblocks [development libraries](https://developers.fireblocks.com/docs/ethereum-development#convenience-libraries) are recommended for building contract call transactions. *Note: `rawMessageData`, `contractCallData`, and `inputsSelection` cannot be used together in the same call.\"
    pub fn new() -> ExtraParameters {
        ExtraParameters {
            node_controls: None,
            raw_message_data: None,
            contract_call_data: None,
            inputs_selection: None,
            program_call_data: None,
        }
    }
}