Prepare for sub to eth relay (#248)

* fixed PoA contract deploy (granda_authorities call)

* pause if all submitted headers were rejected

* give funds to Bertha and Carlos

* max 1 active PoA transaction in headers sync :(

* display initial header id when deploying PoA contract

* cargo fmt + clipy

* fix compilation

* Update relays/ethereum/src/sync_types.rs

Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com>

* Update relays/ethereum/src/utils.rs

Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com>

Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com>
This commit is contained in:
Svyatoslav Nikolsky
2020-07-30 18:05:50 +03:00
committed by Bastian Köcher
parent fddfbb5b1c
commit b98b7d2e43
11 changed files with 117 additions and 72 deletions
+1 -37
View File
@@ -16,7 +16,7 @@
//! Relaying proofs of exchange transaction.
use crate::sync_types::MaybeConnectionError;
use crate::utils::{MaybeConnectionError, StringifiedMaybeConnectionError};
use async_trait::async_trait;
use std::{
@@ -135,14 +135,6 @@ pub struct RelayedBlockTransactions {
pub failed: usize,
}
/// Stringified error that may be either connection-related or not.
enum StringifiedMaybeConnectionError {
/// The error is connection-related error.
Connection(String),
/// The error is connection-unrelated error.
NonConnection(String),
}
/// Relay all suitable transactions from single block.
///
/// If connection error occurs, returns Err with number of successfully processed transactions.
@@ -448,34 +440,6 @@ async fn wait_header_finalized<P: TransactionProofPipeline>(
}
}
impl StringifiedMaybeConnectionError {
fn new(is_connection_error: bool, error: String) -> Self {
if is_connection_error {
StringifiedMaybeConnectionError::Connection(error)
} else {
StringifiedMaybeConnectionError::NonConnection(error)
}
}
}
impl MaybeConnectionError for StringifiedMaybeConnectionError {
fn is_connection_error(&self) -> bool {
match *self {
StringifiedMaybeConnectionError::Connection(_) => true,
StringifiedMaybeConnectionError::NonConnection(_) => false,
}
}
}
impl ToString for StringifiedMaybeConnectionError {
fn to_string(&self) -> String {
match *self {
StringifiedMaybeConnectionError::Connection(ref err) => err.clone(),
StringifiedMaybeConnectionError::NonConnection(ref err) => err.clone(),
}
}
}
#[cfg(test)]
pub(crate) mod tests {
use super::*;