Add randomness contract support to AuthorityRound. (#10946)
* Add randomness contract support to Authority Round. Changes have been cherry-picked from poanetwork's aura-pos branch. Most of the work has been done by @mbr. * Address review comments for randomness contract. Co-Authored-By: David <dvdplm@gmail.com> * Rename revealSecret to revealNumber * Update Randomness contract bytecode * Use H256, rename secret to random number. * Use get_commit_and_cipher * Clean up Miner::prepare_block. * Remove is_reveal_phase call. * Add more comments, require randomness contract map. * Simplify run_randomness_phase * Address review comments. * Remove Client::transact_contract.
This commit is contained in:
@@ -20,7 +20,7 @@ use std::sync::Arc;
|
||||
|
||||
use ethereum_types::{Address, H256};
|
||||
use ethkey::Password;
|
||||
use parity_crypto::publickey::{Signature, Error};
|
||||
use parity_crypto::publickey::{Public, Signature, Error};
|
||||
use log::warn;
|
||||
use accounts::{self, AccountProvider, SignError};
|
||||
|
||||
@@ -44,7 +44,18 @@ impl EngineSigner for (Arc<AccountProvider>, Address, Password) {
|
||||
}
|
||||
}
|
||||
|
||||
fn decrypt(&self, auth_data: &[u8], cipher: &[u8]) -> Result<Vec<u8>, Error> {
|
||||
self.0.decrypt(self.1, None, auth_data, cipher).map_err(|e| {
|
||||
warn!("Unable to decrypt message: {:?}", e);
|
||||
Error::InvalidMessage
|
||||
})
|
||||
}
|
||||
|
||||
fn address(&self) -> Address {
|
||||
self.1
|
||||
}
|
||||
|
||||
fn public(&self) -> Option<Public> {
|
||||
self.0.account_public(self.1, &self.2).ok()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user