pub struct ConsensusProof;Expand description
Consensus Proof - wrapper struct for consensus validation functions
This struct provides a convenient API for accessing all consensus validation functions. All methods delegate to the corresponding module functions.
Implementations§
Source§impl ConsensusProof
impl ConsensusProof
Sourcepub fn validate_transaction(&self, tx: &Transaction) -> Result<ValidationResult>
pub fn validate_transaction(&self, tx: &Transaction) -> Result<ValidationResult>
Spec-locked to Orange Paper Section 5.1: ValidateTransaction
Function ‘ValidateTransaction’ referenced but not yet in spec section 5.1 (Migration mode). Available: CheckTransaction, CheckTxInputs Validate a transaction according to consensus rules
Sourcepub fn validate_tx_inputs(
&self,
tx: &Transaction,
utxo_set: &UtxoSet,
height: Natural,
) -> Result<(ValidationResult, Integer)>
pub fn validate_tx_inputs( &self, tx: &Transaction, utxo_set: &UtxoSet, height: Natural, ) -> Result<(ValidationResult, Integer)>
Spec-locked to Orange Paper Section 5.1: ValidateTxInputs
Function ‘ValidateTxInputs’ referenced but not yet in spec section 5.1 (Migration mode). Available: CheckTransaction, CheckTxInputs Validate transaction inputs against UTXO set
Sourcepub fn validate_block(
&self,
block: &Block,
utxo_set: UtxoSet,
height: Natural,
) -> Result<(ValidationResult, UtxoSet)>
pub fn validate_block( &self, block: &Block, utxo_set: UtxoSet, height: Natural, ) -> Result<(ValidationResult, UtxoSet)>
Spec-locked to Orange Paper Section 5.3: ValidateBlock
Function ‘ValidateBlock’ referenced but not yet in spec section 5.3 (Migration mode). Available: ConnectBlock Validate a complete block
Sourcepub fn validate_block_with_time_context(
&self,
block: &Block,
witnesses: &[Vec<Witness>],
utxo_set: UtxoSet,
height: Natural,
time_context: Option<TimeContext>,
network: Network,
) -> Result<(ValidationResult, UtxoSet)>
pub fn validate_block_with_time_context( &self, block: &Block, witnesses: &[Vec<Witness>], utxo_set: UtxoSet, height: Natural, time_context: Option<TimeContext>, network: Network, ) -> Result<(ValidationResult, UtxoSet)>
Spec-locked to Orange Paper Section 5.3: ValidateBlockWithTimeContext
Function ‘ValidateBlockWithTimeContext’ referenced but not yet in spec section 5.3 (Migration mode). Available: ConnectBlock Validate a complete block with witness data and time context
Sourcepub fn verify_script(
&self,
script_sig: &ByteString,
script_pubkey: &ByteString,
witness: Option<&ByteString>,
flags: u32,
) -> Result<bool>
pub fn verify_script( &self, script_sig: &ByteString, script_pubkey: &ByteString, witness: Option<&ByteString>, flags: u32, ) -> Result<bool>
Spec-locked to Orange Paper Section 5.2: VerifyScript
Verify script execution
Sourcepub fn check_proof_of_work(&self, header: &BlockHeader) -> Result<bool>
pub fn check_proof_of_work(&self, header: &BlockHeader) -> Result<bool>
Spec-locked to Orange Paper Section 7.2: CheckProofOfWork
Check proof of work
Sourcepub fn get_block_subsidy(&self, height: Natural) -> Integer
pub fn get_block_subsidy(&self, height: Natural) -> Integer
Spec-locked to Orange Paper Section 6.1: GetBlockSubsidy
Get block subsidy for height
Sourcepub fn total_supply(&self, height: Natural) -> Integer
pub fn total_supply(&self, height: Natural) -> Integer
Spec-locked to Orange Paper Section 6.2: TotalSupply
Calculate total supply at height
Sourcepub fn get_next_work_required(
&self,
current_header: &BlockHeader,
prev_headers: &[BlockHeader],
) -> Result<Natural>
pub fn get_next_work_required( &self, current_header: &BlockHeader, prev_headers: &[BlockHeader], ) -> Result<Natural>
Spec-locked to Orange Paper Section 7.1: GetNextWorkRequired
Get next work required for difficulty adjustment
Sourcepub fn accept_to_memory_pool(
&self,
tx: &Transaction,
utxo_set: &UtxoSet,
mempool: &Mempool,
height: Natural,
time_context: Option<TimeContext>,
) -> Result<MempoolResult>
pub fn accept_to_memory_pool( &self, tx: &Transaction, utxo_set: &UtxoSet, mempool: &Mempool, height: Natural, time_context: Option<TimeContext>, ) -> Result<MempoolResult>
Spec-locked to Orange Paper Section 9.1: AcceptToMemoryPool
Accept transaction to memory pool
Sourcepub fn is_standard_tx(&self, tx: &Transaction) -> Result<bool>
pub fn is_standard_tx(&self, tx: &Transaction) -> Result<bool>
Spec-locked to Orange Paper Section 9.2: IsStandardTx
Check if transaction is standard
Sourcepub fn replacement_checks(
&self,
new_tx: &Transaction,
existing_tx: &Transaction,
utxo_set: &UtxoSet,
mempool: &Mempool,
) -> Result<bool>
pub fn replacement_checks( &self, new_tx: &Transaction, existing_tx: &Transaction, utxo_set: &UtxoSet, mempool: &Mempool, ) -> Result<bool>
Spec-locked to Orange Paper Section 9.3: ReplacementChecks
Check if transaction can replace existing one (RBF)
Sourcepub fn create_new_block(
&self,
utxo_set: &UtxoSet,
mempool_txs: &[Transaction],
height: Natural,
prev_header: &BlockHeader,
prev_headers: &[BlockHeader],
coinbase_script: &ByteString,
coinbase_address: &ByteString,
) -> Result<Block>
pub fn create_new_block( &self, utxo_set: &UtxoSet, mempool_txs: &[Transaction], height: Natural, prev_header: &BlockHeader, prev_headers: &[BlockHeader], coinbase_script: &ByteString, coinbase_address: &ByteString, ) -> Result<Block>
Spec-locked to Orange Paper Section 12.1: CreateNewBlock
Create new block from mempool transactions
Sourcepub fn mine_block(
&self,
block: Block,
max_attempts: Natural,
) -> Result<(Block, MiningResult)>
pub fn mine_block( &self, block: Block, max_attempts: Natural, ) -> Result<(Block, MiningResult)>
Spec-locked to Orange Paper Section 12.3: MineBlock
Mine a block by finding valid nonce
Sourcepub fn create_block_template(
&self,
utxo_set: &UtxoSet,
mempool_txs: &[Transaction],
height: Natural,
prev_header: &BlockHeader,
prev_headers: &[BlockHeader],
coinbase_script: &ByteString,
coinbase_address: &ByteString,
) -> Result<BlockTemplate>
pub fn create_block_template( &self, utxo_set: &UtxoSet, mempool_txs: &[Transaction], height: Natural, prev_header: &BlockHeader, prev_headers: &[BlockHeader], coinbase_script: &ByteString, coinbase_address: &ByteString, ) -> Result<BlockTemplate>
Spec-locked to Orange Paper Section 12.1: CreateBlockTemplate
Function ‘CreateBlockTemplate’ referenced but not yet in spec section 12.1 (Migration mode). Available: CreateNewBlock Create block template for mining
Sourcepub fn reorganize_chain(
&self,
new_chain: &[Block],
current_chain: &[Block],
current_utxo_set: UtxoSet,
current_height: Natural,
network: Network,
) -> Result<ReorganizationResult>
pub fn reorganize_chain( &self, new_chain: &[Block], current_chain: &[Block], current_utxo_set: UtxoSet, current_height: Natural, network: Network, ) -> Result<ReorganizationResult>
Spec-locked to Orange Paper Section 11.3: ReorganizeChain
Function ‘ReorganizeChain’ referenced but not yet in spec section 11.3 (Migration mode). Available: Reorganization Reorganize chain when longer chain is found
Sourcepub fn should_reorganize(
&self,
new_chain: &[Block],
current_chain: &[Block],
) -> Result<bool>
pub fn should_reorganize( &self, new_chain: &[Block], current_chain: &[Block], ) -> Result<bool>
Spec-locked to Orange Paper Section 11.3: ShouldReorganize
Function ‘ShouldReorganize’ referenced but not yet in spec section 11.3 (Migration mode). Available: Reorganization Check if reorganization is beneficial
Sourcepub fn calculate_transaction_weight(
&self,
tx: &Transaction,
witness: Option<&Witness>,
) -> Result<Natural>
pub fn calculate_transaction_weight( &self, tx: &Transaction, witness: Option<&Witness>, ) -> Result<Natural>
Spec-locked to Orange Paper Section 11.1.1: CalculateTransactionWeight
Calculate transaction weight for SegWit
Sourcepub fn validate_segwit_block(
&self,
block: &Block,
witnesses: &[Witness],
max_block_weight: Natural,
) -> Result<bool>
pub fn validate_segwit_block( &self, block: &Block, witnesses: &[Witness], max_block_weight: Natural, ) -> Result<bool>
Spec-locked to Orange Paper Section 11.1.7: ValidateSegWitBlock
Validate SegWit block
Sourcepub fn validate_taproot_transaction(
&self,
tx: &Transaction,
witness: Option<&Witness>,
) -> Result<bool>
pub fn validate_taproot_transaction( &self, tx: &Transaction, witness: Option<&Witness>, ) -> Result<bool>
Spec-locked to Orange Paper Section 11.2.5: ValidateTaprootTransaction
Validate Taproot transaction
Sourcepub fn is_taproot_output(&self, output: &TransactionOutput) -> bool
pub fn is_taproot_output(&self, output: &TransactionOutput) -> bool
Spec-locked to Orange Paper Section 11.2.1: IsTaprootOutput
Check if transaction output is Taproot
Trait Implementations§
Source§impl Clone for ConsensusProof
impl Clone for ConsensusProof
Source§fn clone(&self) -> ConsensusProof
fn clone(&self) -> ConsensusProof
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ConsensusProof
impl Debug for ConsensusProof
Source§impl Default for ConsensusProof
impl Default for ConsensusProof
Source§fn default() -> ConsensusProof
fn default() -> ConsensusProof
impl Copy for ConsensusProof
Auto Trait Implementations§
impl Freeze for ConsensusProof
impl RefUnwindSafe for ConsensusProof
impl Send for ConsensusProof
impl Sync for ConsensusProof
impl Unpin for ConsensusProof
impl UnsafeUnpin for ConsensusProof
impl UnwindSafe for ConsensusProof
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more