rosetta_types/
block_response.rs

1/*
2 * Rosetta
3 *
4 * Build Once. Integrate Your Blockchain Everywhere.
5 *
6 * The version of the OpenAPI document: 1.4.13
7 *
8 * Generated by: https://openapi-generator.tech
9 */
10
11/// BlockResponse : A BlockResponse includes a fully-populated block or a partially-populated block with a list of other transactions to fetch (other_transactions).  As a result of the consensus algorithm of some blockchains, blocks can be omitted (i.e. certain block indices can be skipped). If a query for one of these omitted indices is made, the response should not include a `Block` object.  It is VERY important to note that blocks MUST still form a canonical, connected chain of blocks where each block has a unique index. In other words, the `PartialBlockIdentifier` of a block after an omitted block should reference the last non-omitted block.
12
13#[derive(Clone, Debug, PartialEq, Eq, Default, Serialize, Deserialize)]
14pub struct BlockResponse {
15    #[serde(rename = "block", skip_serializing_if = "Option::is_none")]
16    pub block: Option<crate::Block>,
17    /// Some blockchains may require additional transactions to be fetched that weren't returned in the block response (ex: block only returns transaction hashes). For blockchains with a lot of transactions in each block, this can be very useful as consumers can concurrently fetch all transactions returned.
18    #[serde(rename = "other_transactions", skip_serializing_if = "Option::is_none")]
19    pub other_transactions: Option<Vec<crate::TransactionIdentifier>>,
20}
21
22impl BlockResponse {
23    /// A BlockResponse includes a fully-populated block or a partially-populated block with a list of other transactions to fetch (other_transactions).  As a result of the consensus algorithm of some blockchains, blocks can be omitted (i.e. certain block indices can be skipped). If a query for one of these omitted indices is made, the response should not include a `Block` object.  It is VERY important to note that blocks MUST still form a canonical, connected chain of blocks where each block has a unique index. In other words, the `PartialBlockIdentifier` of a block after an omitted block should reference the last non-omitted block.
24    pub fn new() -> BlockResponse {
25        BlockResponse {
26            block: None,
27            other_transactions: None,
28        }
29    }
30}