• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

tari-project / tari / 18097567115

29 Sep 2025 12:50PM UTC coverage: 58.554% (-2.3%) from 60.88%
18097567115

push

github

web-flow
chore(ci): switch rust toolchain to stable (#7524)

Description
switch rust toolchain to stable

Motivation and Context
use stable rust toolchain


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Chores**
* Standardized Rust toolchain on stable across CI workflows for more
predictable builds.
* Streamlined setup by removing unnecessary components and aligning
toolchain configuration with environment variables.
  * Enabled an environment flag to improve rustup behavior during CI.
* Improved coverage workflow consistency with dynamic toolchain
selection.

* **Tests**
* Removed nightly-only requirements, simplifying test commands and
improving compatibility.
* Expanded CI triggers to include ci-* branches for better pre-merge
validation.
* Maintained existing job logic while improving reliability and
maintainability.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

66336 of 113291 relevant lines covered (58.55%)

551641.45 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

46.51
/base_layer/node_components/src/blocks/historical_block.rs
1
//  Copyright 2021, The Tari Project
2
//
3
//  Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
4
//  following conditions are met:
5
//
6
//  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following
7
//  disclaimer.
8
//
9
//  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the
10
//  following disclaimer in the documentation and/or other materials provided with the distribution.
11
//
12
//  3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote
13
//  products derived from this software without specific prior written permission.
14
//
15
//  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
16
//  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
17
//  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
18
//  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
19
//  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
20
//  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
21
//  USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
22

23
use std::{fmt, fmt::Display, sync::Arc};
24

25
use tari_common_types::types::HashOutput;
26

27
use crate::blocks::{error::BlockError, Block, BlockHeader, BlockHeaderAccumulatedData, ChainBlock};
28

29
/// The representation of a historical block in the blockchain. It is essentially identical to a protocol-defined
30
/// block but contains some extra metadata that clients such as Block Explorers will find interesting.
31
#[derive(Debug, Clone, PartialEq)]
32
pub struct HistoricalBlock {
33
    /// The number of blocks that have been mined since this block, including this one. The current tip will have one
34
    /// confirmation.
35
    confirmations: u64,
36
    /// The underlying block
37
    block: Block,
38
    /// Accumulated data in the block header
39
    accumulated_data: BlockHeaderAccumulatedData,
40
}
41

42
impl HistoricalBlock {
43
    pub fn new(block: Block, confirmations: u64, accumulated_data: BlockHeaderAccumulatedData) -> Self {
72✔
44
        HistoricalBlock {
72✔
45
            confirmations,
72✔
46
            block,
72✔
47
            accumulated_data,
72✔
48
        }
72✔
49
    }
72✔
50

51
    pub fn confirmations(&self) -> u64 {
×
52
        self.confirmations
×
53
    }
×
54

55
    pub fn header(&self) -> &BlockHeader {
2✔
56
        &self.block.header
2✔
57
    }
2✔
58

59
    /// Returns a reference to the block of the HistoricalBlock
60
    pub fn block(&self) -> &Block {
38✔
61
        &self.block
38✔
62
    }
38✔
63

64
    pub fn into_block(self) -> Block {
18✔
65
        self.block
18✔
66
    }
18✔
67

68
    pub fn accumulated_data(&self) -> &BlockHeaderAccumulatedData {
×
69
        &self.accumulated_data
×
70
    }
×
71

72
    pub fn hash(&self) -> &HashOutput {
×
73
        &self.accumulated_data.hash
×
74
    }
×
75

76
    pub fn try_into_chain_block(self) -> Result<ChainBlock, BlockError> {
36✔
77
        let chain_block = ChainBlock::try_construct(Arc::new(self.block), self.accumulated_data).ok_or_else(|| {
36✔
78
            BlockError::ChainBlockInvariantError(
×
79
                "Unable to construct ChainBlock because of a hash mismatch".to_string(),
×
80
            )
×
81
        })?;
×
82

83
        Ok(chain_block)
36✔
84
    }
36✔
85

86
    pub fn dissolve(self) -> (Block, BlockHeaderAccumulatedData, u64) {
×
87
        (self.block, self.accumulated_data, self.confirmations)
×
88
    }
×
89
}
90

91
impl Display for HistoricalBlock {
92
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
×
93
        writeln!(f, "{}", self.block())?;
×
94
        Ok(())
×
95
    }
×
96
}
97

98
impl From<HistoricalBlock> for Block {
99
    fn from(block: HistoricalBlock) -> Self {
×
100
        block.block
×
101
    }
×
102
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc