/* Do not change, this code is generated from Golang structs */ export interface APIError { /** Human-readable error message describing the issue. */ Text: string; /** Whether the error message can safely be shown to the end user. */ Public: boolean; } export interface AddressAlias { /** Type of alias, e.g., user-defined name or contract name. */ Type: string; /** Alias string for the address. */ Alias: string; } export interface EthereumInternalTransfer { /** Type of internal transfer (CALL, CREATE, etc.). */ type: number; /** Address from which the transfer originated. */ from: string; /** Address to which the transfer was sent. */ to: string; /** Value transferred internally (in Wei or base units). */ value: string; } export interface EthereumParsedInputParam { /** Parameter type (e.g. 'uint256'). */ type: string; /** List of stringified parameter values. */ values?: string[]; } export interface EthereumParsedInputData { /** First 4 bytes of the input data (method signature ID). */ methodId: string; /** Parsed function name if recognized. */ name: string; /** Full function signature (including parameter types). */ function?: string; /** List of parsed parameters for this function call. */ params?: EthereumParsedInputParam[]; } export interface EthereumSpecific { /** High-level type of the Ethereum tx (e.g., 'call', 'create'). */ type?: number; /** Address of contract created by this transaction, if any. */ createdContract?: string; /** Execution status of the transaction (1: success, 0: fail, -1: pending). */ status: number; /** Error encountered during execution, if any. */ error?: string; /** Transaction nonce (sequential number from the sender). */ nonce: number; /** Maximum gas allowed by the sender for this transaction. */ gasLimit: number; /** Actual gas consumed by the transaction execution. */ gasUsed?: number; /** Price (in Wei or base units) per gas unit. */ gasPrice?: string; maxPriorityFeePerGas?: string; maxFeePerGas?: string; baseFeePerGas?: string; /** Fee used for L1 part in rollups (e.g. Optimism). */ l1Fee?: number; /** Scaling factor for L1 fees in certain Layer 2 solutions. */ l1FeeScalar?: string; /** Gas price for L1 component, if applicable. */ l1GasPrice?: string; /** Amount of gas used in L1 for this tx, if applicable. */ l1GasUsed?: number; /** Hex-encoded input data for the transaction. */ data?: string; /** Decoded transaction data (function name, params, etc.). */ parsedData?: EthereumParsedInputData; /** List of internal (sub-call) transfers. */ internalTransfers?: EthereumInternalTransfer[]; } export interface MultiTokenValue { /** Token ID (for ERC1155). */ id?: string; /** Amount of that specific token ID. */ value?: string; } export interface TokenTransfer { /** @deprecated: Use standard instead. */ type: '' | 'XPUBAddress' | 'ERC20' | 'ERC721' | 'ERC1155' | 'BEP20' | 'BEP721' | 'BEP1155'; standard: '' | 'XPUBAddress' | 'ERC20' | 'ERC721' | 'ERC1155' | 'BEP20' | 'BEP721' | 'BEP1155'; /** Source address of the token transfer. */ from: string; /** Destination address of the token transfer. */ to: string; /** Contract address of the token. */ contract: string; /** Token name. */ name?: string; /** Token symbol. */ symbol?: string; /** Number of decimals for this token (if applicable). */ decimals: number; /** Amount (in base units) of tokens transferred. */ value?: string; /** List of multiple ID-value pairs for ERC1155 transfers. */ multiTokenValues?: MultiTokenValue[]; } export interface Vout { /** Amount (in satoshi or base units) of the output. */ value?: string; /** Relative index of this output within the transaction. */ n: number; /** Indicates whether this output has been spent. */ spent?: boolean; /** Transaction ID in which this output was spent. */ spentTxId?: string; /** Index of the input that spent this output. */ spentIndex?: number; /** Block height at which this output was spent. */ spentHeight?: number; /** Raw script hex data for this output - aka ScriptPubKey. */ hex?: string; /** Disassembled script for this output. */ asm?: string; /** List of addresses associated with this output. */ addresses: string[]; /** Indicates whether this output is owned by valid address. */ isAddress: boolean; /** Indicates if this output belongs to the wallet in context. */ isOwn?: boolean; /** Output script type (e.g., 'P2PKH', 'P2SH'). */ type?: string; } export interface Vin { /** ID/hash of the originating transaction (where the UTXO comes from). */ txid?: string; /** Index of the output in the referenced transaction. */ vout?: number; /** Sequence number for this input (e.g. 4294967293). */ sequence?: number; /** Relative index of this input within the transaction. */ n: number; /** List of addresses associated with this input. */ addresses?: string[]; /** Indicates if this input is from a known address. */ isAddress: boolean; /** Indicates if this input belongs to the wallet in context. */ isOwn?: boolean; /** Amount (in satoshi or base units) of the input. */ value?: string; /** Raw script hex data for this input. */ hex?: string; /** Disassembled script for this input. */ asm?: string; /** Data for coinbase inputs (when mining). */ coinbase?: string; } export interface Tx { /** Transaction ID (hash). */ txid: string; /** Version of the transaction (if applicable). */ version?: number; /** Locktime indicating earliest time/height transaction can be mined. */ lockTime?: number; /** Array of inputs for this transaction. */ vin: Vin[]; /** Array of outputs for this transaction. */ vout: Vout[]; /** Hash of the block containing this transaction. */ blockHash?: string; /** Block height in which this transaction was included. */ blockHeight: number; /** Number of confirmations (blocks mined after this tx's block). */ confirmations: number; /** Estimated blocks remaining until confirmation (if unconfirmed). */ confirmationETABlocks?: number; /** Estimated seconds remaining until confirmation (if unconfirmed). */ confirmationETASeconds?: number; /** Unix timestamp of the block in which this transaction was included. 0 if unconfirmed. */ blockTime: number; /** Transaction size in bytes. */ size?: number; /** Virtual size in bytes, for SegWit-enabled chains. */ vsize?: number; /** Total value of all outputs (in satoshi or base units). */ value: string; /** Total value of all inputs (in satoshi or base units). */ valueIn?: string; /** Transaction fee (inputs - outputs). */ fees?: string; /** Raw hex-encoded transaction data. */ hex?: string; /** Indicates if this transaction is replace-by-fee (RBF) enabled. */ rbf?: boolean; /** Blockchain-specific extended data. */ coinSpecificData?: any; /** List of token transfers that occurred in this transaction. */ tokenTransfers?: TokenTransfer[]; /** Ethereum-like blockchain specific data (if applicable). */ ethereumSpecific?: EthereumSpecific; /** Aliases for addresses involved in this transaction. */ addressAliases?: { [key: string]: AddressAlias }; } export interface FeeStats { /** Number of transactions in the given block. */ txCount: number; /** Sum of all fees in satoshi or base units. */ totalFeesSat: string; /** Average fee per kilobyte in satoshi or base units. */ averageFeePerKb: number; /** Fee distribution deciles (0%..100%) in satoshi or base units per kB. */ decilesFeePerKb: number[]; } export interface StakingPool { /** Staking pool contract address on-chain. */ contract: string; /** Name of the staking pool contract. */ name: string; /** Balance pending deposit or withdrawal, if any. */ pendingBalance: string; /** Any pending deposit that is not yet finalized. */ pendingDepositedBalance: string; /** Currently deposited/staked balance. */ depositedBalance: string; /** Total amount withdrawn from this pool by the address. */ withdrawTotalAmount: string; /** Rewards or principal currently claimable by the address. */ claimableAmount: string; /** Total rewards that have been restaked automatically. */ restakedReward: string; /** Any balance automatically reinvested into the pool. */ autocompoundBalance: string; } export interface ContractInfo { /** @deprecated: Use standard instead. */ type: '' | 'XPUBAddress' | 'ERC20' | 'ERC721' | 'ERC1155' | 'BEP20' | 'BEP721' | 'BEP1155'; standard: '' | 'XPUBAddress' | 'ERC20' | 'ERC721' | 'ERC1155' | 'BEP20' | 'BEP721' | 'BEP1155'; /** Smart contract address. */ contract: string; /** Readable name of the contract. */ name: string; /** Symbol for tokens under this contract, if applicable. */ symbol: string; /** Number of decimal places, if applicable. */ decimals: number; /** Block height where contract was first created. */ createdInBlock?: number; /** Block height where contract was destroyed (if any). */ destructedInBlock?: number; } export interface Token { /** @deprecated: Use standard instead. */ type: '' | 'XPUBAddress' | 'ERC20' | 'ERC721' | 'ERC1155' | 'BEP20' | 'BEP721' | 'BEP1155'; standard: '' | 'XPUBAddress' | 'ERC20' | 'ERC721' | 'ERC1155' | 'BEP20' | 'BEP721' | 'BEP1155'; /** Readable name of the token. */ name: string; /** Derivation path if this token is derived from an XPUB-based address. */ path?: string; /** Contract address on-chain. */ contract?: string; /** Total number of token transfers for this address. */ transfers: number; /** Symbol for the token (e.g., 'ETH', 'USDT'). */ symbol?: string; /** Number of decimals for this token. */ decimals: number; /** Current token balance (in minimal base units). */ balance?: string; /** Value in the base currency (e.g. ETH for ERC20 tokens). */ baseValue?: number; /** Value in a secondary currency (e.g. fiat), if available. */ secondaryValue?: number; /** List of token IDs (for ERC721, each ID is a unique collectible). */ ids?: string[]; /** Multiple ERC1155 token balances (id + value). */ multiTokenValues?: MultiTokenValue[]; /** Total amount of tokens received. */ totalReceived?: string; /** Total amount of tokens sent. */ totalSent?: string; } export interface Address { /** Current page index. */ page?: number; /** Total number of pages available. */ totalPages?: number; /** Number of items returned on this page. */ itemsOnPage?: number; /** The address string in standard format. */ address: string; /** Current confirmed balance (in satoshi or base units). */ balance: string; /** Total amount ever received by this address. */ totalReceived?: string; /** Total amount ever sent by this address. */ totalSent?: string; /** Unconfirmed balance for this address. */ unconfirmedBalance: string; /** Number of unconfirmed transactions for this address. */ unconfirmedTxs: number; /** Unconfirmed outgoing balance for this address. */ unconfirmedSending?: string; /** Unconfirmed incoming balance for this address. */ unconfirmedReceiving?: string; /** Number of transactions for this address (including confirmed). */ txs: number; /** Historical total count of transactions, if known. */ addrTxCount?: number; /** Number of transactions not involving tokens (pure coin transfers). */ nonTokenTxs?: number; /** Number of internal transactions (e.g., Ethereum calls). */ internalTxs?: number; /** List of transaction details (if requested). */ transactions?: Tx[]; /** List of transaction IDs (if detailed data is not requested). */ txids?: string[]; /** Current transaction nonce for Ethereum-like addresses. */ nonce?: string; /** Number of tokens with any historical usage at this address. */ usedTokens?: number; /** List of tokens associated with this address. */ tokens?: Token[]; /** Total value of the address in secondary currency (e.g. fiat). */ secondaryValue?: number; /** Sum of token values in base currency. */ tokensBaseValue?: number; /** Sum of token values in secondary currency (fiat). */ tokensSecondaryValue?: number; /** Address's entire value in base currency, including tokens. */ totalBaseValue?: number; /** Address's entire value in secondary currency, including tokens. */ totalSecondaryValue?: number; /** Extra info if the address is a contract (ABI, type). */ contractInfo?: ContractInfo; /** @deprecated: replaced by contractInfo */ erc20Contract?: ContractInfo; /** Aliases assigned to this address. */ addressAliases?: { [key: string]: AddressAlias }; /** List of staking pool data if address interacts with staking. */ stakingPools?: StakingPool[]; } export interface Utxo { /** Transaction ID in which this UTXO was created. */ txid: string; /** Index of the output in that transaction. */ vout: number; /** Value of this UTXO (in satoshi or base units). */ value: string; /** Block height in which the UTXO was confirmed. */ height?: number; /** Number of confirmations for this UTXO. */ confirmations: number; /** Address to which this UTXO belongs. */ address?: string; /** Derivation path for XPUB-based wallets, if applicable. */ path?: string; /** If non-zero, locktime required before spending this UTXO. */ lockTime?: number; /** Indicates if this UTXO originated from a coinbase transaction. */ coinbase?: boolean; } export interface BalanceHistory { /** Unix timestamp for this point in the balance history. */ time: number; /** Number of transactions in this interval. */ txs: number; /** Amount received in this interval (in satoshi or base units). */ received: string; /** Amount sent in this interval (in satoshi or base units). */ sent: string; /** Amount sent to the same address (self-transfer). */ sentToSelf: string; /** Exchange rates at this point in time, if available. */ rates?: { [key: string]: number }; /** Transaction ID if the time corresponds to a specific tx. */ txid?: string; } export interface BlockInfo { Hash: string; Time: number; Txs: number; Size: number; Height: number; } export interface Blocks { /** Current page index. */ page?: number; /** Total number of pages available. */ totalPages?: number; /** Number of items returned on this page. */ itemsOnPage?: number; /** List of blocks. */ blocks: BlockInfo[]; } export interface Block { /** Current page index. */ page?: number; /** Total number of pages available. */ totalPages?: number; /** Number of items returned on this page. */ itemsOnPage?: number; /** Block hash. */ hash: string; /** Hash of the previous block in the chain. */ previousBlockHash?: string; /** Hash of the next block, if known. */ nextBlockHash?: string; /** Block height (0-based index in the chain). */ height: number; /** Number of confirmations of this block (distance from best chain tip). */ confirmations: number; /** Size of the block in bytes. */ size: number; /** Timestamp of when this block was mined. */ time?: number; /** Block version (chain-specific meaning). */ version: string; /** Merkle root of the block's transactions. */ merkleRoot: string; /** Nonce used in the mining process. */ nonce: string; /** Compact representation of the target threshold. */ bits: string; /** Difficulty target for mining this block. */ difficulty: string; /** List of transaction IDs included in this block. */ tx?: string[]; /** Total count of transactions in this block. */ txCount: number; /** List of full transaction details (if requested). */ txs?: Tx[]; /** Optional aliases for addresses found in this block. */ addressAliases?: { [key: string]: AddressAlias }; } export interface BlockRaw { /** Hex-encoded block data. */ hex: string; } export interface BackendInfo { /** Error message if something went wrong in the backend. */ error?: string; /** Name of the chain - e.g. 'main'. */ chain?: string; /** Number of fully verified blocks in the chain. */ blocks?: number; /** Number of block headers in the chain. */ headers?: number; /** Hash of the best block in hex. */ bestBlockHash?: string; /** Current difficulty of the network. */ difficulty?: string; /** Size of the blockchain data on disk in bytes. */ sizeOnDisk?: number; /** Version of the blockchain backend - e.g. '280000'. */ version?: string; /** Subversion of the blockchain backend - e.g. '/Satoshi:28.0.0/'. */ subversion?: string; /** Protocol version of the blockchain backend - e.g. '70016'. */ protocolVersion?: string; /** Time offset (in seconds) reported by the backend. */ timeOffset?: number; /** Any warnings given by the backend regarding the chain state. */ warnings?: string; /** Version or details of the consensus protocol in use. */ consensus_version?: string; /** Additional chain-specific consensus data. */ consensus?: any; } export interface InternalStateColumn { /** Name of the database column. */ name: string; /** Version or schema version of the column. */ version: number; /** Number of rows stored in this column. */ rows: number; /** Total size (in bytes) of keys stored in this column. */ keyBytes: number; /** Total size (in bytes) of values stored in this column. */ valueBytes: number; /** Timestamp of the last update to this column. */ updated: string; } export interface BlockbookInfo { /** Coin name, e.g. 'Bitcoin'. */ coin: string; /** Network shortcut, e.g. 'BTC'. */ network: string; /** Hostname of the blockbook instance, e.g. 'backend5'. */ host: string; /** Running blockbook version, e.g. '0.4.0'. */ version: string; /** Git commit hash of the running blockbook, e.g. 'a0960c8e'. */ gitCommit: string; /** Build time of running blockbook, e.g. '2024-08-08T12:32:50+00:00'. */ buildTime: string; /** If true, blockbook is syncing from scratch or in a special sync mode. */ syncMode: boolean; /** Indicates if blockbook is in its initial sync phase. */ initialSync: boolean; /** Indicates if the backend is fully synced with the blockchain. */ inSync: boolean; /** Best (latest) block height according to this instance. */ bestHeight: number; /** Timestamp of the latest block in the chain. */ lastBlockTime: string; /** Indicates if mempool info is synced as well. */ inSyncMempool: boolean; /** Timestamp of the last mempool update. */ lastMempoolTime: string; /** Number of unconfirmed transactions in the mempool. */ mempoolSize: number; /** Number of decimals for this coin's base unit. */ decimals: number; /** Size of the underlying database in bytes. */ dbSize: number; /** Whether this instance provides fiat exchange rates. */ hasFiatRates?: boolean; /** Whether this instance provides fiat exchange rates for tokens. */ hasTokenFiatRates?: boolean; /** Timestamp of the latest fiat rates update. */ currentFiatRatesTime?: string; /** Timestamp of the latest historical fiat rates update. */ historicalFiatRatesTime?: string; /** Timestamp of the latest historical token fiat rates update. */ historicalTokenFiatRatesTime?: string; /** List of contract addresses supported for staking. */ supportedStakingPools?: string[]; /** Optional calculated DB size from columns. */ dbSizeFromColumns?: number; /** List of columns/tables in the DB for internal state. */ dbColumns?: InternalStateColumn[]; /** Additional human-readable info about this blockbook instance. */ about: string; } export interface SystemInfo { /** Blockbook instance information. */ blockbook: BlockbookInfo; /** Information about the connected backend node. */ backend: BackendInfo; } export interface FiatTicker { /** Unix timestamp for these fiat rates. */ ts?: number; /** Map of currency codes to their exchange rate. */ rates: { [key: string]: number }; /** Any error message encountered while fetching rates. */ error?: string; } export interface FiatTickers { /** List of fiat tickers with timestamps and rates. */ tickers: FiatTicker[]; } export interface AvailableVsCurrencies { /** Timestamp for the available currency list. */ ts?: number; /** List of currency codes (e.g., USD, EUR) supported by the rates. */ available_currencies: string[]; /** Error message, if any, when fetching the available currencies. */ error?: string; } export interface WsReq { /** Unique request identifier. */ id: string; /** Requested method name. */ method: | 'getAccountInfo' | 'getInfo' | 'getBlockHash' | 'getBlock' | 'getAccountUtxo' | 'getBalanceHistory' | 'getTransaction' | 'getTransactionSpecific' | 'estimateFee' | 'sendTransaction' | 'subscribeNewBlock' | 'unsubscribeNewBlock' | 'subscribeNewTransaction' | 'unsubscribeNewTransaction' | 'subscribeAddresses' | 'unsubscribeAddresses' | 'subscribeFiatRates' | 'unsubscribeFiatRates' | 'ping' | 'getCurrentFiatRates' | 'getFiatRatesForTimestamps' | 'getFiatRatesTickersList' | 'getMempoolFilters'; /** Parameters for the requested method in raw JSON format. */ params: any; } export interface WsRes { /** Corresponding request identifier. */ id: string; /** Payload of the response, structure depends on the request. */ data: any; } export interface WsAccountInfoReq { /** Address or XPUB descriptor to query. */ descriptor: string; /** Level of detail to retrieve about the account. */ details?: 'basic' | 'tokens' | 'tokenBalances' | 'txids' | 'txslight' | 'txs'; /** Which tokens to include in the account info. */ tokens?: 'derived' | 'used' | 'nonzero'; /** Number of items per page, if paging is used. */ pageSize?: number; /** Requested page index, if paging is used. */ page?: number; /** Starting block height for transaction filtering. */ from?: number; /** Ending block height for transaction filtering. */ to?: number; /** Filter by specific contract address (for token data). */ contractFilter?: string; /** Currency code to convert values into (e.g. 'USD'). */ secondaryCurrency?: string; /** Gap limit for XPUB scanning, if relevant. */ gap?: number; } export interface WsBackendInfo { /** Backend version string. */ version?: string; /** Backend sub-version string. */ subversion?: string; /** Consensus protocol version in use. */ consensus_version?: string; /** Additional consensus details, structure depends on blockchain. */ consensus?: any; } export interface WsInfoRes { /** Human-readable blockchain name. */ name: string; /** Short code for the blockchain (e.g. BTC, ETH). */ shortcut: string; /** Network identifier (e.g. mainnet, testnet). */ network: string; /** Number of decimals in the base unit of the coin. */ decimals: number; /** Version of the blockbook or backend service. */ version: string; /** Current best chain height according to the backend. */ bestHeight: number; /** Block hash of the best (latest) block. */ bestHash: string; /** Genesis block hash or identifier. */ block0Hash: string; /** Indicates if this is a test network. */ testnet: boolean; /** Additional backend-related information. */ backend: WsBackendInfo; } export interface WsBlockHashReq { /** Block height for which the hash is requested. */ height: number; } export interface WsBlockHashRes { /** Block hash at the requested height. */ hash: string; } export interface WsBlockReq { /** Block identifier (hash). */ id: string; /** Number of transactions per page in the block. */ pageSize?: number; /** Page index to retrieve if multiple pages of transactions are available. */ page?: number; } export interface WsBlockFilterReq { /** Type of script filter (e.g., P2PKH, P2SH). */ scriptType: string; /** Block hash for which we want the filter. */ blockHash: string; /** Optional parameter for certain filter logic. */ M?: number; } export interface WsBlockFiltersBatchReq { /** Type of script filter (e.g., P2PKH, P2SH). */ scriptType: string; /** Hash of the latest known block. Filters will be retrieved backward from here. */ bestKnownBlockHash: string; /** Number of block filters per request. */ pageSize?: number; /** Optional parameter for certain filter logic. */ M?: number; } export interface WsAccountUtxoReq { /** Address or XPUB descriptor to retrieve UTXOs for. */ descriptor: string; } export interface WsBalanceHistoryReq { /** Address or XPUB descriptor to query history for. */ descriptor: string; /** Unix timestamp from which to start the history. */ from?: number; /** Unix timestamp at which to end the history. */ to?: number; /** List of currency codes for which to fetch exchange rates at each interval. */ currencies?: string[]; /** Gap limit for XPUB scanning, if relevant. */ gap?: number; /** Size of each aggregated time window in seconds. */ groupBy?: number; } export interface WsTransactionReq { /** Transaction ID to retrieve details for. */ txid: string; } export interface WsTransactionSpecificReq { /** Transaction ID for the detailed blockchain-specific data. */ txid: string; } export interface WsEstimateFeeReq { /** Block confirmations targets for which fees should be estimated. */ blocks?: number[]; /** Additional chain-specific parameters (e.g. for Ethereum). */ specific?: { conservative?: boolean; txsize?: number; from?: string; to?: string; data?: string; value?: string; }; } export interface Eip1559Fee { maxFeePerGas: string; maxPriorityFeePerGas: string; minWaitTimeEstimate?: number; maxWaitTimeEstimate?: number; } export interface Eip1559Fees { baseFeePerGas?: string; low?: Eip1559Fee; medium?: Eip1559Fee; high?: Eip1559Fee; instant?: Eip1559Fee; networkCongestion?: number; latestPriorityFeeRange?: string[]; historicalPriorityFeeRange?: string[]; historicalBaseFeeRange?: string[]; priorityFeeTrend?: 'up' | 'down'; baseFeeTrend?: 'up' | 'down'; } export interface WsEstimateFeeRes { /** Estimated total fee per transaction, if relevant. */ feePerTx?: string; /** Estimated fee per unit (sat/byte, Wei/gas, etc.). */ feePerUnit?: string; /** Max fee limit for blockchains like Ethereum. */ feeLimit?: string; eip1559?: Eip1559Fees; } export interface WsLongTermFeeRateRes { /** Long term fee rate (in sat/kByte). */ feePerUnit: string; /** Amount of blocks used for the long term fee rate estimation. */ blocks: number; } export interface WsSendTransactionReq { /** Hex-encoded transaction data to broadcast. */ hex: string; /** Use alternative RPC method to broadcast transaction. */ disableAlternativeRPC?: boolean; } export interface WsSubscribeAddressesReq { /** List of addresses to subscribe for updates (e.g., new transactions). */ addresses: string[]; newBlockTxs?: boolean; } export interface WsSubscribeFiatRatesReq { /** Fiat currency code (e.g. 'USD'). */ currency?: string; /** List of token symbols or IDs to get fiat rates for. */ tokens?: string[]; } export interface WsCurrentFiatRatesReq { /** List of fiat currencies, e.g. ['USD','EUR']. */ currencies?: string[]; /** Token symbol or ID if asking for token fiat rates (e.g. 'ETH'). */ token?: string; } export interface WsFiatRatesForTimestampsReq { /** List of Unix timestamps for which to retrieve fiat rates. */ timestamps: number[]; /** List of fiat currencies, e.g. ['USD','EUR']. */ currencies?: string[]; /** Token symbol or ID if asking for token fiat rates. */ token?: string; } export interface WsFiatRatesTickersListReq { /** Timestamp for which the list of available tickers is needed. */ timestamp?: number; /** Token symbol or ID if asking for token-specific fiat rates. */ token?: string; } export interface WsMempoolFiltersReq { /** Type of script we are filtering for (e.g., P2PKH, P2SH). */ scriptType: string; /** Only retrieve filters for mempool txs after this timestamp. */ fromTimestamp: number; /** Optional parameter for certain filter logic (e.g., n-bloom). */ M?: number; } export interface WsRpcCallReq { /** Address from which the RPC call is originated (if relevant). */ from?: string; /** Contract or address to which the RPC call is made. */ to: string; /** Hex-encoded call data (function signature + parameters). */ data: string; } export interface WsRpcCallRes { /** Hex-encoded return data from the call. */ data: string; } export interface MempoolTxidFilterEntries { /** Map of txid to filter data (hex-encoded). */ entries?: { [key: string]: string }; /** Indicates if a zeroed key was used in filter calculation. */ usedZeroedKey?: boolean; }