Skip to content
  1. Jul 06, 2020
  2. Jun 29, 2020
  3. 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
    • Tomasz Drwięga's avatar
      Update web3 dependency. (#140) · 55f8d744
      Tomasz Drwięga authored
      * Update web3 dependency.
      
      * Switch to crates.io.
      55f8d744
  4. Jun 22, 2020
  5. Jun 15, 2020
  6. Jun 11, 2020
  7. Jun 08, 2020
  8. Jun 05, 2020
  9. Jun 03, 2020
  10. Jun 02, 2020
  11. Jun 01, 2020
  12. May 27, 2020
  13. 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
  14. May 20, 2020
  15. 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
  16. May 18, 2020
  17. 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
  18. May 11, 2020
  19. May 04, 2020
  20. 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
  21. Apr 28, 2020
  22. Apr 13, 2020
  23. Apr 08, 2020
  24. Apr 07, 2020