mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-07-06 06:47:25 +00:00
Sync ethereum headers using unsigned (substrate) transactions (#45)
* reward submitters on finalization * PoA -> Substrate: unsigned_import_header API * fix grumble * make submitter part of ImportContext * verify using next validators set + tests * fix nostd compilation * add sub-tx-mode argument * support sub-tx-mode * impl ValidateUnsigned for Runtime * do not submit too much transactions to the pool * cargo fmt * fix bad merge * revert license fix * Update modules/ethereum/src/lib.rs Co-Authored-By: Hernando Castano <HCastano@users.noreply.github.com> * Update modules/ethereum/src/verification.rs Co-Authored-By: Hernando Castano <HCastano@users.noreply.github.com> * updated comment * validate receipts before accepting unsigned tx to pool * cargo fmt * fix comment * fix grumbles * Update modules/ethereum/src/verification.rs Co-Authored-By: Hernando Castano <HCastano@users.noreply.github.com> * cargo fmt --all * struct ChangeToEnact * updated doc * fix doc * add docs to the code method * simplify fn ancestry * finish incomplete docs * Update modules/ethereum/src/lib.rs Co-Authored-By: Tomasz Drwięga <tomusdrw@users.noreply.github.com> * Update modules/ethereum/src/lib.rs Co-Authored-By: Tomasz Drwięga <tomusdrw@users.noreply.github.com> * return err from unsigned_import_header * get header once * Update relays/ethereum/src/ethereum_sync.rs Co-Authored-By: Tomasz Drwięga <tomusdrw@users.noreply.github.com> * fix * UnsignedTooFarInTheFuture -> Custom(err.code()) * updated ImportContext::last_signal_block * cargo fmt --all * rename runtime calls Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com> Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com>
This commit is contained in:
committed by
Bastian Köcher
parent
b055027161
commit
c6c46462ab
@@ -15,7 +15,7 @@
|
||||
// along with Parity Bridges Common. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
use crate::error::Error;
|
||||
use crate::Storage;
|
||||
use crate::{ChangeToEnact, Storage};
|
||||
use primitives::{Address, Header, LogEntry, Receipt, H256, U256};
|
||||
use sp_std::prelude::*;
|
||||
|
||||
@@ -183,10 +183,13 @@ impl<'a> Validators<'a> {
|
||||
&self,
|
||||
storage: &mut S,
|
||||
finalized_blocks: &[(u64, H256, Option<S::Submitter>)],
|
||||
) -> Option<Vec<Address>> {
|
||||
) -> Option<ChangeToEnact> {
|
||||
for (_, finalized_hash, _) in finalized_blocks.iter().rev() {
|
||||
if let Some(changes) = storage.scheduled_change(finalized_hash) {
|
||||
return Some(changes);
|
||||
return Some(ChangeToEnact {
|
||||
signal_block: Some(*finalized_hash),
|
||||
validators: changes.validators,
|
||||
});
|
||||
}
|
||||
}
|
||||
None
|
||||
|
||||
Reference in New Issue
Block a user