Skip to content
  1. Jul 28, 2020
  2. Jul 27, 2020
    • Hernando Castano's avatar
      Allow Multiple Bridge Pallet Instances (#226) · 639b7664
      Hernando Castano authored
      
      
      * Add Instance type parameter to pallet
      
      * Sketch out what the runtime could look like
      
      * Allow runtime to compile with multiple bridge pallets
      
      * Cargo Fmt
      
      * Allow an instance of a PoA chain to be used with currency-exchange
      
      I specify that it's only _an instance_ instead of _instances_ since the currency-exchange
      pallet does not support multiple instances itself. What this commit does is make it so
      that the different instances of the PoA chains we currently have are compatible with the
      currency-exchange pallet through the implementation of the PeerBlockchain trait.
      
      * Add Instance type parameter to Currency Exchange pallet
      
      * Wire up currency exchange intances in runtime
      
      * Rust Fmt
      
      * Show sccache
      
      * Allow Eth pallet to use a default instance
      
      * Use a default instance in Eth pallet tests
      
      * Remove Rialto and Kovan feature flags
      
      Through some discussions it has been decided that the `bridge-node` should, like
      Substrate's `node-template`, be a showcase of the different pallets available in
      a project. Because of this I've removed the feature flags for the Rialto and Kovan
      networks in favour of having both of them included in the runtime.
      
      * Update the chain_spec to use both Rialto and Kovan configs
      
      * Update pallet level calls used by Substrate client
      
      Allows the project to compile. However, it should be noted that in reality
      we shouldn't be hardcoding the pallet we're calling.
      
      * Allow currency-exchange pallet to use a default instance
      
      * Support benchmarking an instance of the Eth pallet
      
      * Update currency exchange benchmarks to work with instances
      
      * Fix test helpers which now need a PoA instance
      
      * Remove Actions for checking Rialto and Kovan features
      
      * Add missing comments
      
      * Update Runtime API string constants
      
      * Add issue number for generic chain support in relay
      
      * Add Runtime APIs for instances of the currency-exchange pallet
      
      * Rust Fmt
      
      Co-authored-by: default avatarDenis S. Soldatov aka General-Beck <[email protected]>
      639b7664
    • Svyatoslav Nikolsky's avatar
      Auto relay exchange transactions (#227) · 4e919b8d
      Svyatoslav Nikolsky authored
      
      
      * auto relay exchange transactions
      
      * docker + auto-relay-tx
      
      * clippy
      
      * jsonrpsee in Cargo.lock ???
      
      * fix tests compilation
      
      * Show sccache
      
      * mute clippy
      
      * move
      
      * Update relays/ethereum/src/exchange.rs
      
      Co-authored-by: default avatarHernando Castano <[email protected]>
      
      * finish comment
      
      * (bool, String) -> StringifiedMaybeConnectionError
      
      * Update deployments/rialto/docker-compose.yml
      
      Co-authored-by: default avatarHernando Castano <[email protected]>
      
      Co-authored-by: default avatarDenis S. Soldatov aka General-Beck <[email protected]>
      Co-authored-by: default avatarHernando Castano <[email protected]>
      4e919b8d
  3. Jul 20, 2020
    • Tomasz Drwięga's avatar
      Fix clippy suggestions. (#179) · f10e344c
      Tomasz Drwięga authored
      
      
      * Fix clippy errors.
      
      * Cargo fmt.
      
      * Enable clippy checks.
      
      * Create if does not exist.
      
      * Fix warnings and enable sccache for clippy.
      
      * chmod +x
      
      * Revert and ignore errors.
      
      * Update cancel-workflow-action.
      
      * Fixes.
      
      * Clippy fixes.
      
      * Fix compilation.
      
      * Fix new clippy warnings.
      
      * fmt --all
      
      * Fix the rest.
      
      * fmt --all
      
      * Conditional.
      
      * Bump smallvec.
      
      * Use separate cache dir for clippy to prevent races.
      
      * Remove unused imports in tests
      
      * Remove "useless conversion"
      
      * Move clippy to main worfklow to avoid clashes.
      
      * Fix clippy error.
      
      * Fix remaning clippy errors.
      
      * cargo fmt --all
      
      Co-authored-by: default avatarHernando Castano <[email protected]>
      f10e344c
  4. Jul 17, 2020
    • Svyatoslav Nikolsky's avatar
      Relay dashboard (#191) · 6be18c57
      Svyatoslav Nikolsky authored
      * expose metrics for Prometheus
      
      * added preconfigured configs for Prometheus and Grafana
      
      * metrics-related cli args
      
      * fix compilation
      6be18c57
    • Tomasz Drwięga's avatar
      Rialto test network setup (#163) · 010c65be
      Tomasz Drwięga authored
      
      
      * Dockerfile for OpenEth.
      
      * Add relayer dockerfile.
      
      * Add docker-compose.
      
      * Working on the relay.
      
      * Bump a bunch of deps.
      
      * Change relay branch.
      
      * Running a 3-validators poa network.
      
      * Add bridge nodes.
      
      * Conditional compilation of bridge configs.
      
      * Fix genesis hash.
      
      * Disable features build.
      
      * Disable empty steps.
      
      * Work on sub2eth
      
      * Add some logs.
      
      * More logs.
      
      * Fix compilation.
      
      * Add chain-id parameter to relay.
      
      * Unify bridge-hash.
      
      * Update the hash.
      
      * Ditch sub2eth for now.
      
      * Add some docs & proxy configuration.
      
      * Fixes.
      
      * Fix remaining issues.
      
      * Increase health timeout.
      
      * Make sure to install curl for health monitoring.
      
      * Fix kovan.
      
      * Fix build.
      
      * Create if does not exist.
      
      * Fix benches.
      
      * Revert CLI params requirements.
      
      * cargo fmt --all
      
      * Apply suggestions from code review
      
      Co-authored-by: default avatarHernando Castano <[email protected]>
      
      * Add some docs.
      
      * Updat...
      010c65be
  5. Jul 14, 2020
  6. Jul 10, 2020
  7. Jul 08, 2020
  8. Jul 06, 2020
  9. Jun 23, 2020
    • Hernando Castano's avatar
      Switch to new RPC interface (#131) · 5bf635e6
      Hernando Castano authored
      
      
      * Move EthereumRpc implementation to Eth client
      
      * Move SubstrateRpc implementation to SubstrateClient
      
      * Update deploy_contract to use new RPC interface
      
      * Fix some types in the Substrate client
      
      * Swap out method bodies in Eth sync loop
      
      * Swap out method bodies in Substrate sync loop
      
      * Remove Client from SourceClient trait return types
      
      * Remove Client from TargetClient trait return types
      
      * Remove client from Source select! arms
      
      * Remove client from Target select! arms
      
      * Add missing mutable refs in Substrate client
      
      * Use mutable references in Source/Target Client traits
      
      * Try and use mutable references in Source/Client trait implementations
      
      * Handle errors more gracefully
      
      * Remove unused imports
      
      * Remove dead_code and unused_variables lints
      
      * Remove usage of `jsonrpsee::RawClient`
      
      By using a `jsonrpsee::Client` we are able to remove all the shared
      mutable references required when interacting with the RPC server. This
      is convenient as trying to sharing mutable references in code that uses
      async/await is a bit of a pain.
      
      However, using a `Client` instead of a `RawClient` is not yet supported
      by the `jsonrpsee::rpc_api` macro, so a fork must be used for the moment.
      
      * Clean up dead code and warnings
      
      * Clean up higher level RPCs
      
      Some of the RPCs that were "high level" didn't necessarily belong
      as part of the trait, so they were removed.
      
      * Use positional parameters for RPCs
      
      Both Substrate and Ethereum's RPCs use positional (array) parameters,
      so in order to be compatible with both we need to make sure that
      our API is defined with positional paramters in mind.
      
      * Rename argument for eth_getBlockByNumber
      
      * Remove some unecessary Ok-wraps
      
      * Process client requests synchonously
      
      Before the refactoring the sync loop would wait until a client finished
      handling a request before issuing another one. This behaviour was
      inadvertently changed during the refactoring leading to race conditions.
      This commit makes sure that the previous behaviour is respected.
      
      * Reduce the errors that are considered a connection error
      
      * Only decode bridge contract once
      
      * Set genesis_config at RPC client startup
      
      * Fetch genesis hash in SubstrateRpcClient::new()
      
      * Move Decode error into SubstrateNodeError
      
      * Suppress warnings caused by `rpc_api!`
      
      * Implement From RpcError for String
      
      * Handle Substrate client initalization errors more gracefully
      
      * Remove match in favour of ?
      
      Co-authored-by: default avatarSvyatoslav Nikolsky <[email protected]>
      5bf635e6
  10. Jun 11, 2020
  11. Jun 03, 2020
  12. May 22, 2020
    • Hernando Castano's avatar
      RPC Module for Relays (#80) · 55aa5780
      Hernando Castano authored
      * Test defining an RPC API
      
      * Add wrapper clients for the RPC API
      
      * Implement most Ethereum RPCs
      
      Does not include RPCs that require the bridge contract.
      
      * Implement a few of the Substrate RPCs
      
      Still missing proper error handling, as well as decoding responses from the
      Substrate node.
      
      * Make error handling more ergonomic
      
      * Implement Substrate RPCs that use `state_call`
      
      * Implement rest of Substrate RPCs
      
      * Implement `eth_call` RPC
      
      This can be used to implement higher level requests like fetching Substrate headers
      from an Ethereum node.
      
      * Build some of the higher level Ethereum RPCs
      
      Uses the new Ethereum RPC interface to do so
      
      * Build some of the higher level Substrate RPCs
      
      * Remove old Ethereum RPC methods
      
      * Remove old Substrate RPC methods
      
      * Add some documentation to Substrate RPCs
      
      * Fix typo in enum construction
      
      * Revert commits `0f0435d2` to `ca755029`
      
      This range of commits was mainly trying to integrate the new RPC interface into the existing
      codebase, however this turned out to be a little out of scope for the current PR. Instead this work
      will be incorporated into a PR which aims to close #72.
      
      * Add documentation to RPCs
      
      * Rename functions in RPC API to conform to snake_case
      
      * Check that header contains a number and hash
      
      * Put doc comments on trait instead of impl methods
      
      * Remove expect() calls
      
      * Replace runtime API enums with consts
      
      * Accept Bytes when submitting extrinsic
      
      Let's us avoid using a runtime specific Extrinsic.
      
      * Add strictly typed arguments to RPC API
      
      Missing two methods right now, which require a `serde::Deserialize`
      implemenation before they can be changed.
      
      * Add `chain_getBlock` Substrate RPC
      
      * Use typed arguments for `eth_estimateGas` and `eth_call`
      
      * Silence dead code warnings
      
      * Add check for logs bloom
      
      * Remove unused variables
      
      * Add documentation to RPC error enums
      55aa5780
  13. May 20, 2020
  14. May 19, 2020
    • Hernando Castano's avatar
      Bump rust-web3 to latest v0.11 (#100) · acf24309
      Hernando Castano authored
      * Bump rust-web3 to latest master
      
      * Use tagged release from crates.io
      
      * Add check for `logs_bloom`
      
      Since this is required by the runtime we want to enforce that an
      incoming header has this.
      acf24309
  15. May 18, 2020
  16. May 12, 2020
    • Svyatoslav Nikolsky's avatar
      Process finality proofs in solidity PoA -> Substrate contract (#69) · fb9a31b4
      Svyatoslav Nikolsky authored
      
      
      * solidity contract
      
      * continue
      
      * upd
      
      * cargo update
      
      * fixes
      
      * ehtereum_headers -> headers
      
      * extracted some common stuff
      
      * ethereum_sync.rs -> sync.rs
      
      * make sync generic
      
      * continue extracting
      
      * continue
      
      * add eth-contract argument
      
      * continue
      
      * some fixes
      
      * contract v2
      
      * continue
      
      * more fixes
      
      * more fixes
      
      * deal with duplicated params
      
      * removed multiple call_rpc variants
      
      * bail_on_error!()
      
      * fn submit_ethereum_transaction
      
      * more fixes
      
      * cargo fmt --all
      
      * fix
      
      * bail_on_arg_error!()
      
      * fix
      
      * fix
      
      * remove async_extra stuff
      
      * start work on finality builtin
      
      remove async_extra stuff
      
      continue
      
      continue
      
      local testnet (Alice + Bob) for node
      
      * added TODO
      
      * substrate-bridge.json -> substrate-bridge-abi.json
      
      * get rid of substrate transactions hashes
      
      * get rid of ethereum transactions hashes
      
      * extracted contract bytecode to separate file
      
      * cargo fmt --all
      
      * avoid duplicate import in contracts
      
      * removed Default::default()
      
      * swapped configurations for sub2eth && eth2sub
      
      * fix compilation
      
      * do not double gas limit when submitting Substrate headers
      
      * fix finality storage
      
      * at least 1 validator required
      
      * shift_session_manager_works
      
      * cargo fmt --all
      
      * solidity contract removed
      
      * consts
      
      * extracted solc compilation details to separate file
      
      * removed (obsolete in future Vec<u8> justification)
      
      * fixed cli option description
      
      * fix typos
      
      * fix grumble
      
      * extracted constants
      
      * log decoded header
      
      * new substrate version + actually verify justification
      
      * intermediate cargo fmt --all
      
      * comments
      
      * disable completion data resubmission
      
      * increased timeouts + _MS -> Duration
      
      * forget completion data after submission
      
      * builtin tests
      
      * headers tests
      
      * cargo fmt --all
      
      * update contract
      
      * Update relays/ethereum/src/ethereum_sync_loop.rs
      
      Co-authored-by: default avatarTomasz Drwięga <[email protected]>
      
      * Update relays/ethereum/src/ethereum_sync_loop.rs
      
      Co-authored-by: default avatarTomasz Drwięga <[email protected]>
      
      * added docs
      
      * OwnedFutureOutput
      
      * more docs fixes
      
      * cargo fmt --all
      
      * encode headers
      
      * consts + docs
      
      * aliases again
      
      * cargo fmt --all
      
      * Update relays/ethereum/src/ethereum_sync_loop.rs
      
      Co-authored-by: default avatarTomasz Drwięga <[email protected]>
      
      * Update relays/ethereum/src/ethereum_sync_loop.rs
      
      Co-authored-by: default avatarTomasz Drwięga <[email protected]>
      
      * Use Duration::from_secs() instead of from_millis()
      
      * grumbles
      
      * Update relays/ethereum/src/headers.rs
      
      Co-authored-by: default avatarHernando Castano <[email protected]>
      
      * Update relays/ethereum/src/headers.rs
      
      Co-authored-by: default avatarHernando Castano <[email protected]>
      
      * incomplete_headers_are_still_incomplete_after_advance
      
      * add hex-encoded headers to substrate_header_without_signal_parsed
      
      * cargo fmt --all
      
      * Update relays/ethereum/src/sync_loop.rs
      
      Co-authored-by: default avatarHernando Castano <[email protected]>
      
      * Update relays/ethereum/src/headers.rs
      
      Co-authored-by: default avatarHernando Castano <[email protected]>
      
      * Update relays/ethereum/src/headers.rs
      
      Co-authored-by: default avatarHernando Castano <[email protected]>
      
      * Update relays/ethereum/src/headers.rs
      
      Co-authored-by: default avatarHernando Castano <[email protected]>
      
      * Update relays/ethereum/src/headers.rs
      
      Co-authored-by: default avatarHernando Castano <[email protected]>
      
      * Update relays/ethereum/src/headers.rs
      
      Co-authored-by: default avatarHernando Castano <[email protected]>
      
      * Update relays/ethereum/src/headers.rs
      
      Co-authored-by: default avatarHernando Castano <[email protected]>
      
      * Update relays/ethereum/src/headers.rs
      
      Co-authored-by: default avatarHernando Castano <[email protected]>
      
      * added comments on Extra and Completion
      
      Co-authored-by: default avatarTomasz Drwięga <[email protected]>
      Co-authored-by: default avatarHernando Castano <[email protected]>
      fb9a31b4
  17. Apr 29, 2020
    • Svyatoslav Nikolsky's avatar
      Solidity contract that accepts unverified substrate headers (#65) · 9993873c
      Svyatoslav Nikolsky authored
      * solidity contract
      
      * continue
      
      * upd
      
      * cargo update
      
      * fixes
      
      * ehtereum_headers -> headers
      
      * extracted some common stuff
      
      * ethereum_sync.rs -> sync.rs
      
      * make sync generic
      
      * continue extracting
      
      * continue
      
      * add eth-contract argument
      
      * continue
      
      * some fixes
      
      * contract v2
      
      * continue
      
      * more fixes
      
      * more fixes
      
      * deal with duplicated params
      
      * removed multiple call_rpc variants
      
      * bail_on_error!()
      
      * fn submit_ethereum_transaction
      
      * more fixes
      
      * cargo fmt --all
      
      * fix
      
      * bail_on_arg_error!()
      
      * fix
      
      * fix
      
      * remove async_extra stuff
      
      * substrate-bridge.json -> substrate-bridge-abi.json
      
      * get rid of substrate transactions hashes
      
      * get rid of ethereum transactions hashes
      
      * extracted contract bytecode to separate file
      
      * cargo fmt --all
      
      * avoid duplicate import in contracts
      
      * removed Default::default()
      
      * swapped configurations for sub2eth && eth2sub
      
      * fix compilation
      
      * do not double gas limit when submitting Substrate headers
      
      * cargo fmt --all
      
      * solidity contract removed
      
      * consts
      
      * extracted solc compilation details to separate file
      
      * removed (obsolete in future Vec<u8> justification)
      
      * fixed cli option description
      
      * fix typos
      
      * fix grumble
      
      * extracted constants
      
      * log decoded header
      
      * cargo fmt --all
      
      * comment
      9993873c
  18. Apr 08, 2020
  19. Apr 07, 2020
  20. Apr 06, 2020
  21. Mar 23, 2020
  22. Mar 19, 2020
    • Hernando Castano's avatar
      Run RustFmt as part of the CI (#37) · e030497c
      Hernando Castano authored
      * Run RustFmt as part of the CI
      
      * Format repo
      
      * Run RustFmt before the default Travis build step
      
      Apparently if you override `script` you also need to make
      sure to `build` and `test` the code yourself.
      
      * Format repo
      e030497c
  23. Mar 17, 2020
    • Hernando Castano's avatar
      Get Ethereum Relay to Compile (#21) · 1eb8f879
      Hernando Castano authored
      * Update dependencies
      
      Upgrades Substrate based dependencies from v2.0.0 -> v2.0.0-alpha.1
      and uses the `jsonrpsee`'s new feature flags. The actual code hasn't
      been updated though, so this won't compile.
      
      * Use `RawClient`s from `jsonrpsee`
      
      * Update to use jsonrpsee's new API
      
      * Hook up Ethereum Bridge Runtime, Relay, and Node Runtime
      
      * Bump `parity-crypto` from v0.4 to v0.6
      
      Fixes error when trying to compile tests. This was caused by
      `parity-crypto` v0.4's use of `parity-secp256k1` over `secp256k1'.
      Using the Parity fork meant multiple version of the same underlying
      C library were being pulled in. `parity-crypto` v0.6 moved away from
      this, only relying on `secp256k1` thus fixing the issue.
      1eb8f879
  24. Mar 07, 2020
  25. Jan 30, 2020
    • Hernando Castano's avatar
      Squashed commit of slava-async-bridge: · 1fa1f395
      Hernando Castano authored
      commit 657deb4cf4b90f24b9c5bfd62764b197776c262c
      Author: Hernando Castano <[email protected]>
      Date:   Wed Jan 29 20:14:20 2020 -0500
      
          Move Slava's bridge code into relays folder
      
      commit 4868c42c7da959dde7252766996b3ed4e408e439
      Author: Hernando Castano <[email protected]>
      Date:   Wed Jan 29 20:01:06 2020 -0500
      
          Move files into `modules/ethereum`
      
      commit d1093f3e4238acb1a1a020011452cb928d3f8d7a
      Merge: 29dc6f9 bfd30ef
      Author: Hernando Castano <[email protected]>
      Date:   Wed Jan 29 19:59:27 2020 -0500
      
          Merge branch 'master' of slava-async-bridge
      
      commit 29dc6f97b1b7d1db99086d35a5336f43d2f0f8af
      Author: Hernando Castano <[email protected]>
      Date:   Wed Jan 29 19:51:31 2020 -0500
      
          Squashed commit of the following:
      
          commit 265365920836bb1d286c9b48b1902a2de278fdd9
          Author: Hernando Castano <[email protected]>
          Date:   Wed Jan 29 19:51:15 2020 -0500
      
              Move hc-jp-bridge repo to different folder
      
          commit 8271991e95320baba70bd1cb9c4234d0ffd5b638
          Merge: 04c393f3 304cbc5
          Author: Hernando Castano <[email protected]>
          Date:   Wed Jan 29 19:36:41 2020 -0500
      
              Merge branch 'hc-jp-bridge-module' of hc-jp-bridge-module
      
          commit 304cbc5f02d003ffa5404c1c01e461e5b8539888
          Author: Hernando Castano <[email protected]>
          Date:   Wed Jan 29 00:38:27 2020 -0500
      
              Update bridge pallet to work with the (almost) lastest master (#4672)
      
              * Update decl_error usage
      
              * WIP: Update error handling to use DispatchResult
      
              * Get module compiling with new error handling
      
              * Make tests compile again
      
              Main change was updating the usage of InMemoryBackend
      
              * Move `sp-state-machine` into dev-dependencies
      
              * Bump dependencies to v2.0.0
      
              * Remove some stray comments
      
              * Appy code review suggestion
      
          commit 510cd6d96372688517496efa61773ea2839f8474
          Author: Hernando Castano <[email protected]>
          Date:   Tue Dec 17 12:52:51 2019 -0500
      
              Move Bridge Pallet into FRAME (#4373)
      
              * Move `bridge` crate into `frame` folder
      
              * Make `bridge` pallet compile after `the-big-reorg`
      
          commit ab54e838ef75e6a3f68fd0944bf22598c10c552f
          Author: Hernando Castano <[email protected]>
          Date:   Mon Nov 11 21:56:40 2019 +0100
      
              Use new StorageProof type from #3834
      
          commit 8fc8911fd1b4acc2274c6863fb3dba91b30c90af
          Author: Hernando Castano <[email protected]>
          Date:   Tue Nov 5 00:50:34 2019 +0100
      
              Verify Ancestry between Headers (#3963)
      
              * Create module for checking ancestry proofs
      
              * Use Vec of Headers instead of a HashMap
      
              * Move the ancestry verification into the lib.rs file
      
              * Change the proof format to exclude `child` and `ancestor` headers
      
              * Add a testing function for building header chains
      
              * Rename AncestorNotFound error to InvalidAncestryProof
      
              * Use ancestor hash instead of header when verifying ancestry
      
              * Clean up some stuff missed in the merge
      
          commit dbe85738b68358b790cf927b34a804b965a88f96
          or: Hernando Castano <[email protected]>
          Date:   Fri Nov 1 15:41:58 2019 +0100
      
              Check given Grandpa validator set against set found in storage (#3915)
      
              * Make StorageProofChecker happy
      
              * Update some tests
      
              * Check given validator set against set found in storage
      
              * Use Finality Grandpa's Authority Id and Weight
      
              * Add better error handling
      
              * Use error type from decl_error! macro
      
          commit 31b09216603d3e9c21144ce8c0b6bf59307a4f97
          or: Hernando Castano <[email protected]>
          Date:   Wed Oct 23 14:55:37 2019 +0200
      
              Make tests work after the changes introduced in #3793 (#3874)
      
              * Make tests work after the changes introduced in #3793
      
              * Remove unneccessary import
      
          commit bce6d804aa86504599ff912387295c58f846cbf3
          Author: Jim Posen <[email protected]>
          Date:   Thu Oct 10 12:18:58 2019 +0200
      
              Logic for checking Substrate proofs from within runtime module. (#3783)
      
          commit a7013e94b6c772c1d45a7cacbb445f73f6554fca
          Author: Hernando Castano <[email protected]>
          Date:   Fri Oct 4 15:21:00 2019 +0300
      
              Allow tracking of multiple bridges
      
          commit 3cf648242d631e32bd553a67df54bf5a48912839
          Author: Hernando Castano <[email protected]>
          Date:   Tue Oct 1 14:55:04 2019 +0200
      
              Add BridgeId => Bridge mapping
      
          commit 001c74c45072213e01857d0a2454379b447c5a76
          Author: Hernando Castano <[email protected]>
          Date:   Tue Oct 1 11:10:19 2019 +0200
      
              Get the mock runtime for tests set up
      
          commit 38443a1e8b424ed2f148eb95121d009f730e3b5a
          Author: Hernando Castano <[email protected]>
          Date:   Fri Sep 27 14:52:53 2019 +0200
      
              Clean up some warnings
      
          commit bdc3b01401e89c7111f8bf71f84c50750d25089f
          Author: Hernando Castano <[email protected]>
          Date:   Thu Sep 26 16:41:01 2019 +0200
      
              Add more skeleton code
      
          commit 26995efbf4bac2842eb2822322f7ad3c3e88feb8
          Author: Hernando Castano <[email protected]>
          Date:   Wed Sep 25 15:16:57 2019 +0200
      
              Create `bridge` module skeleton
      
      commit bfd30ef8363b1483ef1107ae1eb958a4e944c93b
      Author: Svyatoslav Nikolsky <[email protected]>
      Date:   Tue Dec 10 12:10:53 2019 +0300
      
          actually use signer from CLI to sign Substrate transactions
      
      commit 504028eac60d9d14ba95b506cd355b0d2f405ce0
      Author: Svyatoslav Nikolsky <[email protected]>
      Date:   Tue Dec 10 12:02:22 2019 +0300
      
          go offline for a bit on connection error
      
      commit 446d0c8d20187dfd1beb173958ea28f2ad97887d
      Author: Svyatoslav Nikolsky <[email protected]>
      Date:   Tue Dec 10 11:25:50 2019 +0300
      
          enable info logs by default
      
      commit d039c60ec72bc91adfdad85442bc99a93b7f8e8d
      Author: Svyatoslav Nikolsky <[email protected]>
      Date:   Tue Dec 10 11:12:51 2019 +0300
      
          support basic CLI arguments
      
      commit 65c6d48e23576f36e8541878b920a03730226392
      Author: Svyatoslav Nikolsky <[email protected]>
      Date:   Mon Dec 9 15:37:48 2019 +0300
      
          fix restart
      
      commit 96e94c1c4b22d732078f8c401b872c5f8246c3fe
      Author: Svyatoslav Nikolsky <[email protected]>
      Date:   Mon Dec 9 14:57:53 2019 +0300
      
          license
      
      commit 68f4191e6cdd211ac8975e0b79f8a6f46a3ca953
      Author: Svyatoslav Nikolsky <[email protected]>
      Date:   Mon Dec 9 14:56:05 2019 +0300
      
          restart sync when Substrate reorgs && we are unlucky
      
      commit 29887c446167d580d73cc03a0b71c31890cafb51
      Author: Svyatoslav Nikolsky <[email protected]>
      Date:   Mon Dec 9 13:49:31 2019 +0300
      
          only read genesis hash once
      
      commit 832492b8393fe2063adf9c58c2b9e060dc3e4efb
      Author: Svyatoslav Nikolsky <[email protected]>
      Date:   Mon Dec 9 13:23:26 2019 +0300
      
          changed TODO
      
      commit 9dbc130e5fa036ae63d973819daf30f4ed6ffb5b
      Author: Svyatoslav Nikolsky <[email protected]>
      Date:   Mon Dec 9 13:16:56 2019 +0300
      
          removed obsolete exit future
      
      commit d03408cd8284eb0c61e7e96429b4f6199353e030
      Author: Svyatoslav Nikolsky <[email protected]>
      Date:   Mon Dec 9 13:16:17 2019 +0300
      
          removed obsolete TODOs + moved a couple of TODOs to runtime module
      
      commit ed8bec44b79f9a2ce829e59f10181368b2f42139
      Author: Svyatoslav Nikolsky <[email protected]>
      Date:   Mon Dec 9 12:37:05 2019 +0300
      
          explained TODO fix
      
      commit aa9c4c66ec2904eeb6072d654718b0ac0b7d8803
      Author: Svyatoslav Nikolsky <[email protected]>
      Date:   Mon Dec 9 12:28:09 2019 +0300
      
          fix tx outcome serialization
      
      commit 126f8f5484dac8c4af588ae86dc8855919d6c822
      Author: Svyatoslav Nikolsky <[email protected]>
      Date:   Mon Dec 9 12:05:05 2019 +0300
      
          prune old ethereum headers when Substrate best header is too far in the future
      
      commit c7bd301e631a44fe3263e188d0956081aa84f31e
      Author: Svyatoslav Nikolsky <[email protected]>
      Date:   Fri Dec 6 12:51:50 2019 +0300
      
          fix trace
      
      commit 549bb7acdb30cfdafe6c8600f0410212539ea63d
      Author: Svyatoslav Nikolsky <[email protected]>
      Date:   Fri Dec 6 12:51:26 2019 +0300
      
          tx hashes are already a part of Block response
      
      commit 7864017909f87ea36955d605a924c3c88bc88df3
      Author: Svyatoslav Nikolsky <[email protected]>
      Date:   Thu Dec 5 12:29:37 2019 +0300
      
          submit bunch of headers at once + some fixes
      
      commit 96485f85d38c144f0771f02ba692216a60356665
      Author: Svyatoslav Nikolsky <[email protected]>
      Date:   Wed Dec 4 17:22:13 2019 +0300
      
          print status messages
      
      commit ae0ec4c087136db653339537daab7f96a8c21b65
      Author: Svyatoslav Nikolsky <[email protected]>
      Date:   Wed Dec 4 17:06:00 2019 +0300
      
          continue actual Substrate client implementation
      
      commit 8146293740d70b88904568ff8e5acdfbadf06fd3
      Author: Svyatoslav Nikolsky <[email protected]>
      Date:   Wed Dec 4 13:49:30 2019 +0300
      
          fix IncompleteHeader condition
      
      commit 767c6201157dabcccf7f62e643681ca298224fb1
      Author: Svyatoslav Nikolsky <[email protected]>
      Date:   Wed Dec 4 10:55:06 2019 +0300
      
          actual Substrate client implementation
      
      commit 221fd4ccd2b1eea12c9dacf800d80e15ec115c1b
      Author: Svyatoslav Nikolsky <[email protected]>
      Date:   Wed Nov 20 17:28:13 2019 +0300
      
          initial commit
      1fa1f395