/**
 * 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.6.2
 * Contact: developers@fireblocks.com
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
import { AmlScreeningResult } from './aml-screening-result';
import { AmountInfo } from './amount-info';
import { AuthorizationInfo } from './authorization-info';
import { BlockInfo } from './block-info';
import { ComplianceResults } from './compliance-results';
import { DestinationTransferPeerPathResponse } from './destination-transfer-peer-path-response';
import { ExtraParameters } from './extra-parameters';
import { FeeInfo } from './fee-info';
import { FeePayerInfo } from './fee-payer-info';
import { GetTransactionOperation } from './get-transaction-operation';
import { NetworkRecord } from './network-record';
import { RewardInfo } from './reward-info';
import { SignedMessages } from './signed-messages';
import { SourceTransferPeerPathResponse } from './source-transfer-peer-path-response';
import { SystemMessageInfo } from './system-message-info';
import { TransactionResponseContractCallDecodedData } from './transaction-response-contract-call-decoded-data';
import { TransactionResponseDestination } from './transaction-response-destination';
/**
 *
 * @export
 * @interface TransactionResponse
 */
export interface TransactionResponse {
    /**
     * ID of the transaction.
     * @type {string}
     * @memberof TransactionResponse
     */
    'id'?: string;
    /**
     * Unique transaction ID provided by the user. Fireblocks highly recommends setting an `externalTxId` for every transaction created, to avoid submitting the same transaction twice.
     * @type {string}
     * @memberof TransactionResponse
     */
    'externalTxId'?: string;
    /**
     * The primary status of the transaction. For details, see [Primary transaction statuses](https://developers.fireblocks.com/reference/primary-transaction-statuses).
     * @type {string}
     * @memberof TransactionResponse
     */
    'status'?: string;
    /**
     * See [Transaction substatuses](https://developers.fireblocks.com/reference/transaction-substatuses) for the list of transaction sub statuses.
     * @type {string}
     * @memberof TransactionResponse
     */
    'subStatus'?: string;
    /**
     * The hash of the transaction on the blockchain.  * This parameter exists if at least one of the following conditions is met:       1. The transaction’s source type is `UNKNOWN`, `WHITELISTED_ADDRESS`, `NETWORK_CONNECTION`, `ONE_TIME_ADDRESS`, `FIAT_ACCOUNT` or `GAS_STATION`.       2. The transaction’s source type is `VAULT` and the status is either: `CONFIRMING`, `COMPLETED`, or was in any of these statuses prior to changing to `FAILED` or `REJECTED`. In some instances, transactions in status `BROADCASTING` will include the txHash as well.       3. The transaction’s source type is `EXCHANGE_ACCOUNT` and the transaction’s destination type is `VAULT`, and the status is either: `CONFIRMING`, `COMPLETED`, or was in any of these status prior to changing to `FAILED`.   * In addition, the following conditions must be met:      1. The asset is a crypto asset (not fiat).      2. The transaction operation is not RAW or `TYPED_MESSAGE`.
     * @type {string}
     * @memberof TransactionResponse
     */
    'txHash'?: string;
    /**
     *
     * @type {GetTransactionOperation}
     * @memberof TransactionResponse
     */
    'operation'?: GetTransactionOperation;
    /**
     * Custom note, not sent to the blockchain, that describes the transaction at your Fireblocks workspace.
     * @type {string}
     * @memberof TransactionResponse
     */
    'note'?: string;
    /**
     * The ID of the asset to transfer for `TRANSFER`, `MINT`, `BURN`, `ENABLE_ASSET`, or `STAKE` operations. [See the list of supported assets and their IDs on Fireblocks](https://developers.fireblocks.com/reference/get_supported-assets).
     * @type {string}
     * @memberof TransactionResponse
     */
    'assetId'?: string;
    /**
     * Type classification of the asset
     * @type {string}
     * @memberof TransactionResponse
     */
    'assetType'?: string;
    /**
     *
     * @type {SourceTransferPeerPathResponse}
     * @memberof TransactionResponse
     */
    'source'?: SourceTransferPeerPathResponse;
    /**
     * For account based assets only, the source address of the transaction. **Note:** If the status is `CONFIRMING`, `COMPLETED`, or has been `CONFIRMING`; then moved forward to `FAILED` or `REJECTED`, then this parameter will contain the source address. In any other case, this parameter will be empty.
     * @type {string}
     * @memberof TransactionResponse
     */
    'sourceAddress'?: string;
    /**
     * Source address tag for XRP, used as memo for EOS/XLM, or Bank Transfer Description for the fiat provider BLINC (by BCB Group).
     * @type {string}
     * @memberof TransactionResponse
     */
    'tag'?: string;
    /**
     *
     * @type {DestinationTransferPeerPathResponse}
     * @memberof TransactionResponse
     */
    'destination'?: DestinationTransferPeerPathResponse;
    /**
     * The transaction’s destinations. **Note:** In case the transaction is sent to a single destination, the `destination` parameter is used instead of this.
     * @type {Array<TransactionResponseDestination>}
     * @memberof TransactionResponse
     */
    'destinations'?: Array<TransactionResponseDestination>;
    /**
     * Address where the asset were transferred. Notes:   - For [Multi destination transactions](https://support.fireblocks.io/hc/en-us/articles/360018447980-Multi-destination-transactions), this parameter will be empty. In this case, you should refer to the destinations field.   - If the status is `CONFIRMING`, `COMPLETED`, or has been `CONFIRMING`; then moved forward to `FAILED` or `REJECTED`, then this parameter will contain the destination address. In any other case, this parameter will be empty.
     * @type {string}
     * @memberof TransactionResponse
     */
    'destinationAddress'?: string;
    /**
     * Description of the address.
     * @type {string}
     * @memberof TransactionResponse
     */
    'destinationAddressDescription'?: string;
    /**
     * Destination address tag for XRP, used as memo for EOS/XLM, or Bank Transfer Description for the fiat provider BLINC (by BCB Group).
     * @type {string}
     * @memberof TransactionResponse
     */
    'destinationTag'?: string;
    /**
     *
     * @type {TransactionResponseContractCallDecodedData}
     * @memberof TransactionResponse
     */
    'contractCallDecodedData'?: TransactionResponseContractCallDecodedData;
    /**
     *
     * @type {AmountInfo}
     * @memberof TransactionResponse
     */
    'amountInfo'?: AmountInfo;
    /**
     * For transactions initiated via this Fireblocks workspace, when set to `true`, the fee is deducted from the requested amount.  **Note**: This parameter can only be considered if a transaction\'s asset is a base asset, such as ETH or MATIC. If the asset can\'t be used for transaction fees, like USDC, this parameter is ignored and the fee is deducted from the relevant base asset wallet in the source account.
     * @type {boolean}
     * @memberof TransactionResponse
     */
    'treatAsGrossAmount'?: boolean;
    /**
     *
     * @type {FeeInfo}
     * @memberof TransactionResponse
     */
    'feeInfo'?: FeeInfo;
    /**
     * The asset which was withdrawn to pay the transaction fee, for example ETH for EVM-based blockchains, BTC for Tether Omni.
     * @type {string}
     * @memberof TransactionResponse
     */
    'feeCurrency'?: string;
    /**
     * In case a single transaction resulted with multiple transfers, for example a result of a contract call, then this parameter specifies each transfer that took place on the blockchain. In case of a single transfer transaction, this parameter is empty.
     * @type {Array<NetworkRecord>}
     * @memberof TransactionResponse
     */
    'networkRecords'?: Array<NetworkRecord>;
    /**
     * The transaction’s creation date and time, in unix timestamp.
     * @type {number}
     * @memberof TransactionResponse
     */
    'createdAt'?: number;
    /**
     * The transaction’s last update date and time, in unix timestamp.
     * @type {number}
     * @memberof TransactionResponse
     */
    'lastUpdated'?: number;
    /**
     * User ID of the initiator of the transaction.
     * @type {string}
     * @memberof TransactionResponse
     */
    'createdBy'?: string;
    /**
     * User ID’s of the signers of the transaction.
     * @type {Array<string>}
     * @memberof TransactionResponse
     */
    'signedBy'?: Array<string>;
    /**
     * User ID of the user that rejected the transaction (in case it was rejected).
     * @type {string}
     * @memberof TransactionResponse
     */
    'rejectedBy'?: string;
    /**
     *
     * @type {AuthorizationInfo}
     * @memberof TransactionResponse
     */
    'authorizationInfo'?: AuthorizationInfo;
    /**
     * If the transaction originated from an exchange, this is the ID of this transaction at the exchange.
     * @type {string}
     * @memberof TransactionResponse
     */
    'exchangeTxId'?: string;
    /**
     * The ID for AML providers to associate the owner of funds with transactions.
     * @type {string}
     * @memberof TransactionResponse
     */
    'customerRefId'?: string;
    /**
     * The ID of the travel rule message from any travel rule provider. Used for  travel rule supporting functionality to associate transactions with existing  travel rule messages.
     * @type {string}
     * @memberof TransactionResponse
     */
    'travelRuleMessageId'?: string;
    /**
     *
     * @type {AmlScreeningResult}
     * @memberof TransactionResponse
     */
    'amlScreeningResult'?: AmlScreeningResult;
    /**
     *
     * @type {ComplianceResults}
     * @memberof TransactionResponse
     */
    'complianceResults'?: ComplianceResults;
    /**
     * Indicates the transaction was not broadcast by Fireblocks
     * @type {boolean}
     * @memberof TransactionResponse
     */
    'notBroadcastByFireblocks'?: boolean;
    /**
     * DApp URL for Web3 transactions
     * @type {string}
     * @memberof TransactionResponse
     */
    'dappUrl'?: string;
    /**
     * Gas limit for EVM-based blockchain transactions
     * @type {string}
     * @memberof TransactionResponse
     */
    'gasLimit'?: string;
    /**
     * Blockchain-specific index or identifier for the transaction
     * @type {string}
     * @memberof TransactionResponse
     */
    'blockchainIndex'?: string;
    /**
     * Solana rent payment amount
     * @type {string}
     * @memberof TransactionResponse
     */
    'paidRent'?: string;
    /**
     *
     * @type {ExtraParameters}
     * @memberof TransactionResponse
     */
    'extraParameters'?: ExtraParameters;
    /**
     *
     * @type {SignedMessages}
     * @memberof TransactionResponse
     */
    'signedMessages'?: SignedMessages;
    /**
     * The number of confirmations of the transaction. The number will increase until the transaction will be considered completed according to the confirmation policy.
     * @type {number}
     * @memberof TransactionResponse
     */
    'numOfConfirmations'?: number;
    /**
     *
     * @type {BlockInfo}
     * @memberof TransactionResponse
     */
    'blockInfo'?: BlockInfo;
    /**
     * For UTXO based assets this is the vOut, for Ethereum based, this is the index of the event of the contract call.  **Note:** This field is not returned if a transaction uses the `destinations` object with more than one value.
     * @type {number}
     * @memberof TransactionResponse
     */
    'index'?: number;
    /**
     *
     * @type {RewardInfo}
     * @memberof TransactionResponse
     */
    'rewardInfo'?: RewardInfo;
    /**
     *
     * @type {FeePayerInfo}
     * @memberof TransactionResponse
     */
    'feePayerInfo'?: FeePayerInfo;
    /**
     *
     * @type {Array<SystemMessageInfo>}
     * @memberof TransactionResponse
     */
    'systemMessages'?: Array<SystemMessageInfo>;
    /**
     *
     * @type {string}
     * @memberof TransactionResponse
     */
    'addressType'?: TransactionResponseAddressTypeEnum;
    /**
     * The amount requested by the user. Deprecated - please use the `amountInfo` field for accuracy.
     * @type {number}
     * @memberof TransactionResponse
     * @deprecated
     */
    'requestedAmount'?: number;
    /**
     * If the transfer is a withdrawal from an exchange, the actual amount that was requested to be transferred. Otherwise, the requested amount. Deprecated - please use the `amountInfo` field for accuracy.
     * @type {number}
     * @memberof TransactionResponse
     * @deprecated
     */
    'amount'?: number;
    /**
     * The net amount of the transaction, after fee deduction. Deprecated - please use the `amountInfo` field for accuracy.
     * @type {number}
     * @memberof TransactionResponse
     * @deprecated
     */
    'netAmount'?: number;
    /**
     * The USD value of the requested amount. Deprecated - please use the `amountInfo` field for accuracy.
     * @type {number}
     * @memberof TransactionResponse
     * @deprecated
     */
    'amountUSD'?: number | null;
    /**
     * The total fee deducted by the exchange from the actual requested amount (`serviceFee` = `amount` - `netAmount`). Deprecated - please use the `feeInfo` field for accuracy.
     * @type {number}
     * @memberof TransactionResponse
     * @deprecated
     */
    'serviceFee'?: number;
    /**
     * Deprecated - please use the `feeInfo` field for accuracy.
     * @type {number}
     * @memberof TransactionResponse
     * @deprecated
     */
    'fee'?: number;
    /**
     * The fee paid to the network. Deprecated - please use the `feeInfo` field for accuracy.
     * @type {number}
     * @memberof TransactionResponse
     * @deprecated
     */
    'networkFee'?: number;
    /**
     * The transaction\'s revert reason. This field will be returned when  `subStatus` =  \'SMART_CONTRACT_EXECUTION_FAILED\'.
     * @type {string}
     * @memberof TransactionResponse
     */
    'errorDescription'?: string;
    /**
     * if the transaction is a replace by fee (RBF) transaction, this is the hash of the transsaction that was replaced
     * @type {string}
     * @memberof TransactionResponse
     */
    'replacedTxHash'?: string;
    /**
     * blockchain nonce for the transaction
     * @type {string}
     * @memberof TransactionResponse
     */
    'nonce'?: string;
    /**
     * A JSON used to store additional data that is blockchain-specific.
     * @type {object}
     * @memberof TransactionResponse
     */
    'blockchainInfo'?: object;
}
export declare const TransactionResponseAddressTypeEnum: {
    readonly Empty: "";
    readonly Whitelisted: "WHITELISTED";
    readonly OneTime: "ONE_TIME";
};
export type TransactionResponseAddressTypeEnum = typeof TransactionResponseAddressTypeEnum[keyof typeof TransactionResponseAddressTypeEnum];
