Skip to main content

VMExecution

Trait VMExecution 

Source
pub trait VMExecution:
    Send
    + Sync
    + 'static {
Show 26 methods // Required methods fn create_state_transition<I: Iterator<Item = LedgerTransaction>>( &self, transition_data: &StateTransitionData, mempool_txs: I, ) -> Result<(Vec<SpentTransaction>, Vec<LedgerTransaction>, StateTransitionResult), StateTransitionError>; fn verify_state_transition( &self, prev_state: [u8; 32], blk: &Block, cert_voters: &[Voter], ) -> Result<(), StateTransitionError>; fn accept_state_transition( &self, prev_state: [u8; 32], blk: &Block, cert_voters: &[Voter], ) -> Result<(Vec<SpentTransaction>, Vec<ContractTxEvent>), StateTransitionError>; fn finalize_state( &self, header: &Header, to_merge: Vec<[u8; 32]>, ) -> Result<()>; fn preverify( &self, tx: &CanonicalTransaction, tip_height: u64, ) -> Result<PreverificationResult>; fn get_provisioners(&self, base_header: &Header) -> Result<Provisioners>; fn get_changed_provisioners( &self, base_header: &Header, ) -> Result<Vec<(PublicKey, Option<Stake>)>>; fn get_provisioner(&self, pk: &BlsPublicKey) -> Result<Option<Stake>>; fn get_state_root(&self) -> Result<[u8; 32]>; fn move_to_header(&self, header: &Header) -> Result<()>; fn get_finalized_state_root(&self) -> Result<[u8; 32]>; fn get_block_gas_limit(&self) -> u64; fn revert(&self, header: &Header) -> Result<[u8; 32]>; fn revert_to_finalized(&self) -> Result<[u8; 32]>; fn gas_per_deploy_byte(&self) -> u64; fn min_deployment_gas_price(&self) -> u64; fn min_gas_limit(&self) -> u64; fn min_deploy_points(&self) -> u64; fn gas_per_blob(&self) -> u64; fn blob_active(&self, block_height: u64) -> bool; fn wasm64_disabled(&self, block_height: u64) -> bool; fn wasm32_disabled(&self, block_height: u64) -> bool; fn third_party_disabled(&self, block_height: u64) -> bool; fn phoenix_refund_check_active(&self, block_height: u64) -> bool; fn shade_3rd_party(&self, contract_id: ContractId) -> Result<()>; fn enable_3rd_party(&self, contract_id: ContractId) -> Result<()>;
}

Required Methods§

Source

fn create_state_transition<I: Iterator<Item = LedgerTransaction>>( &self, transition_data: &StateTransitionData, mempool_txs: I, ) -> Result<(Vec<SpentTransaction>, Vec<LedgerTransaction>, StateTransitionResult), StateTransitionError>

Source

fn verify_state_transition( &self, prev_state: [u8; 32], blk: &Block, cert_voters: &[Voter], ) -> Result<(), StateTransitionError>

Source

fn accept_state_transition( &self, prev_state: [u8; 32], blk: &Block, cert_voters: &[Voter], ) -> Result<(Vec<SpentTransaction>, Vec<ContractTxEvent>), StateTransitionError>

Source

fn finalize_state(&self, header: &Header, to_merge: Vec<[u8; 32]>) -> Result<()>

Source

fn preverify( &self, tx: &CanonicalTransaction, tip_height: u64, ) -> Result<PreverificationResult>

Source

fn get_provisioners(&self, base_header: &Header) -> Result<Provisioners>

Source

fn get_changed_provisioners( &self, base_header: &Header, ) -> Result<Vec<(PublicKey, Option<Stake>)>>

Source

fn get_provisioner(&self, pk: &BlsPublicKey) -> Result<Option<Stake>>

Source

fn get_state_root(&self) -> Result<[u8; 32]>

Source

fn move_to_header(&self, header: &Header) -> Result<()>

Source

fn get_finalized_state_root(&self) -> Result<[u8; 32]>

Returns last finalized state root

Source

fn get_block_gas_limit(&self) -> u64

Returns block gas limit

Source

fn revert(&self, header: &Header) -> Result<[u8; 32]>

Source

fn revert_to_finalized(&self) -> Result<[u8; 32]>

Source

fn gas_per_deploy_byte(&self) -> u64

Source

fn min_deployment_gas_price(&self) -> u64

Source

fn min_gas_limit(&self) -> u64

Source

fn min_deploy_points(&self) -> u64

Source

fn gas_per_blob(&self) -> u64

Source

fn blob_active(&self, block_height: u64) -> bool

Source

fn wasm64_disabled(&self, block_height: u64) -> bool

Source

fn wasm32_disabled(&self, block_height: u64) -> bool

Source

fn third_party_disabled(&self, block_height: u64) -> bool

Source

fn phoenix_refund_check_active(&self, block_height: u64) -> bool

Source

fn shade_3rd_party(&self, contract_id: ContractId) -> Result<()>

Source

fn enable_3rd_party(&self, contract_id: ContractId) -> Result<()>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§