1. Jun 30, 2020
  2. Jun 29, 2020
  3. Jun 26, 2020
  4. Jun 24, 2020
    • Svyatoslav Nikolsky's avatar
      Runtime benchmarks: start (#136) · 9cd9bc1e
      Svyatoslav Nikolsky authored
      
      
      * runtime benchmarks: start
      
      * merge tests + benchmarks infrastructure
      
      * fix compilation
      
      * Fix compilation issues with runtime-benchmark feature flag
      
      Mainly involved pulling in correct dependencies and adding some functions
      which were called but didn't yet exist.
      
      * Fix broken compilation for tests
      
      * Move header signing methods into trait
      
      * Move signing related test helpers to own module
      
      * Remove comment about feature flag
      
      * Add constants to tests
      
      * Add top level comment for testing utilities
      
      Co-authored-by: default avatarHernando Castano <[email protected]>
      9cd9bc1e
  5. 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
  6. Jun 22, 2020
  7. Jun 18, 2020
  8. Jun 16, 2020
  9. Jun 15, 2020
  10. Jun 11, 2020
    • Hernando Castano's avatar
      Add async_trait to SourceClient and TargetClient (#123) · 044e0334
      Hernando Castano authored
      * Use async_trait for SourceClient
      
      * Use aync_trait for TargetClient
      
      * Revert async_trait usage for Source/Target client
      
      This reverts commit f636ffaf.
      This reverts commit 2c15755e
      
      .
      
      I'm having a very hard time finding out what is causing compilation
      issues, and I think it's best to start over again.
      
      * Use async_trait for TargetClient
      
      * Use async_trait for SourceClient
      
      * Move where non-async methods are
      
      * RustFmt
      
      * QueuedHeader holds Arc to actual data
      
      * Clean up async return type
      
      Co-authored-by: default avatarSvyatoslav Nikolsky <[email protected]>
      
      * Clean up async return type
      
      Co-authored-by: default avatarSvyatoslav Nikolsky <[email protected]>
      
      * Clean up async return type
      
      Co-authored-by: default avatarSvyatoslav Nikolsky <[email protected]>
      
      * Remove unused import
      
      Co-authored-by: default avatarSvyatoslav Nikolsky <[email protected]>
      044e0334
    • Svyatoslav Nikolsky's avatar
      Update Substrate to latest master (rc3) (#129) · 688abd31
      Svyatoslav Nikolsky authored
      * Substrate 606c56d2e2f69f68f3947551224be6a3515dff60
      
      * update jsonrpsee
      688abd31
    • Hernando Castano's avatar
      Add diagrams from draw.io (#122) · 36353d11
      Hernando Castano authored
      * Add diagrams from draw.io
      
      I'm trying to figure out how best to share these in such a way that we
      can all contribute to them easily. While integration between draw.io
      and GitHub exists, it requires read/write permissions to all ParityTech
      repos, which doesn't comfort me. I think having the .drawio file and
      the corresponding pictures available in a folder is a good start.
      
      I imagine the workflow would be something like this: Someone wants to
      update a diagram, so they go to draw.io and upload the .drawio file
      from the repo. They make their changes, download the new .drawio file
      and corresponding SVG, and commit their changes to the repo.
      
      * Make diagrams consistent with background/filling
      
      The background for each diagram has been removed (now it's transparent)
      and the boxes that make up the diagrams have gotten a filled in white
      colour. This will make it possible to have these diagrams show up on
      non-white backgrounds.
      
      * Add file for describing diagrams
      
      * Add missing extension
      36353d11
  11. Jun 10, 2020
  12. Jun 08, 2020
  13. Jun 05, 2020
  14. Jun 03, 2020
  15. Jun 02, 2020
  16. Jun 01, 2020
  17. May 27, 2020
  18. 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