Merge remote-tracking branch 'parity/master' into bft
Conflicts: Cargo.lock
This commit is contained in:
@@ -30,7 +30,7 @@ pub use self::tendermint::Tendermint;
|
||||
pub use self::signed_vote::SignedVote;
|
||||
pub use self::propose_collect::ProposeCollect;
|
||||
|
||||
use common::{HashMap, SemanticVersion, Header, EnvInfo, Address, Builtin, BTreeMap, U256, Bytes, SignedTransaction, Error, H520};
|
||||
use common::*;
|
||||
use rlp::UntrustedRlp;
|
||||
use account_provider::AccountProvider;
|
||||
use block::ExecutedBlock;
|
||||
@@ -69,7 +69,7 @@ pub trait Engine : Sync + Send {
|
||||
fn extra_info(&self, _header: &Header) -> HashMap<String, String> { HashMap::new() }
|
||||
|
||||
/// Additional information.
|
||||
fn additional_params(&self) -> HashMap<String, String> { HashMap::new() }
|
||||
fn additional_params(&self) -> HashMap<String, String> { HashMap::new() }
|
||||
|
||||
/// Get the general parameters of the chain.
|
||||
fn params(&self) -> &CommonParams;
|
||||
@@ -95,6 +95,11 @@ pub trait Engine : Sync + Send {
|
||||
/// Block transformation functions, after the transactions.
|
||||
fn on_close_block(&self, _block: &mut ExecutedBlock) {}
|
||||
|
||||
/// If Some(true) this author is able to generate seals, generate_seal has to be implemented.
|
||||
/// None indicates that this Engine never seals internally regardless of author (e.g. PoW).
|
||||
fn is_sealer(&self, _author: &Address) -> Option<bool> { None }
|
||||
/// Checks if default address is able to seal.
|
||||
fn is_default_sealer(&self) -> Option<bool> { self.is_sealer(&Default::default()) }
|
||||
/// Attempt to seal the block internally.
|
||||
///
|
||||
/// If `Some` is returned, then you get a valid seal.
|
||||
@@ -149,7 +154,7 @@ pub trait Engine : Sync + Send {
|
||||
fn cost_of_builtin(&self, a: &Address, input: &[u8]) -> U256 { self.builtins().get(a).unwrap().cost(input.len()) }
|
||||
/// Execution the builtin contract `a` on `input` and return `output`.
|
||||
/// Panics if `is_builtin(a)` is not true.
|
||||
fn execute_builtin(&self, a: &Address, input: &[u8], output: &mut [u8]) { self.builtins().get(a).unwrap().execute(input, output); }
|
||||
fn execute_builtin(&self, a: &Address, input: &[u8], output: &mut BytesRef) { self.builtins().get(a).unwrap().execute(input, output); }
|
||||
|
||||
// TODO: sealing stuff - though might want to leave this for later.
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user