- Aug 19, 2020
-
-
Svyatoslav Nikolsky authored
* changed log level from error to trace * incomplete during submit != synced
-
Svyatoslav Nikolsky authored
-
- Aug 18, 2020
-
-
Svyatoslav Nikolsky authored
* parse all deploy contract arguments * cargo fmt --all
-
- Aug 07, 2020
-
-
Hernando Castano authored
-
Hernando Castano authored
* Rename Ethereum PoA primitives crate The "sp" prefix comes from Substrate primitives, since this crate originated in that repo. However, it is not part of Substrate anymore and its name should be updated to reflect that. * Rename currency exchange primitives * Rust Fmt * Update import in benchmarking module * Rust Fmt * Split pub and no-pub * Sort toml files. Co-authored-by: Tomasz Drwięga <[email protected]>
-
- Aug 05, 2020
-
-
Svyatoslav Nikolsky authored
* 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 * update PoA contract to accept <= 4 Substrate headers at once * pause submitting headers when contract rejects all new headers + we have active transactions * fix compilation * cargo fmt --all * does_not_select_new_headers_to_submit_when_submit_is_paused * updated bridge contract * Update relays/ethereum/src/sync.rs Co-authored-by: Hernando Castano <[email protected]> * WiP. * Submit first incomplete header. * Finish up test. * cargo fmt --all * Remove redundant clone. * Address review comments. * cargo fmt --all * Fix clippy. Co-authored-by: Hernando Castano <[email protected]> Co-authored-by: Tomasz Drwięga <[email protected]>
-
- Aug 04, 2020
-
-
Hernando Castano authored
* Sketch out how to support different bridge pallet instances * Create a common interface for using pallet instances * Start introducing generic instance parameter Attemps to make the compiler happy, but I'm having second thoughts about this approach. Commiting now as a way to have a checkpoint, but I think I'm going to need to re-consider my approach here. Ideally I want a change which introduces minimal changes, but this seems to be propagating around the codebase in ways I don't want. * Use trait objects instead of generics * Implement traits for Boxed trait objects This is done in order to statisfy trait bounds by types which use these new trait objects * Remove Clone usage for sync parameters * Remove implementation of Default for sync params * Require that BridgeInstance implements Debug * Ensure that BridgeInstance trait implements Send/Sync * Add documentation related to instances * Rust Fmt * Remove needless format * Make instance CLI option case insensitive * Replace `with_*` constructors with `new` * Clean up usage of instance structs * Enforce a default instance in the CLI params * Build sync params as we process input from CLI * Remove case insensitivity from sub-tx-mode I think this should happen, but maybe as part of a different PR * Process default Eth contract deployment config in CLI * Build EthereumExchangeParams in CLI * Process EthereumExchangeSubmitParams params in CLI
-
- Jul 31, 2020
-
-
Svyatoslav Nikolsky authored
* gas_used should be cumulative_gas_used!!! * more runtime traces * improve logs
-
- Jul 30, 2020
-
-
Svyatoslav Nikolsky authored
* 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 <[email protected]> * Update relays/ethereum/src/utils.rs Co-authored-by: Tomasz Drwięga <[email protected]> Co-authored-by: Tomasz Drwięga <[email protected]>
-
- Jul 29, 2020
-
-
Svyatoslav Nikolsky authored
* submit Eth exchange transactions * submit ethereum in docker-compose * submit Eth exchange transactions * fix duplicate message * fix relay script * lost file * cargo fmt --all * cargo +nightly clippy * Show sccache * remove test-helpers remains * what's going on with jsonrpsee + Cargo.lock? * relay-eth-submit-exchange-tx -> poa-exchange-tx-generator * Update relays/ethereum/src/main.rs Co-authored-by: Tomasz Drwięga <[email protected]> * configuring exchange-gen loop using env variables * fixed signer account from dev chain to Arthur * improve debug prints * parse nonce from relay output * --eth-nonce= * fix compilation * cargo fmt --all * fix typo * duplicate relay output to tty * allow using from bash scripts tests * fix: U256::parse() expects hex string :/ * cargo fmt --all * BRIDGE_HASH: ${BRIDGE_HASH:-master} * script comment * generate exchange PoA transactions by Bertha * Bertha address Co-authored-by: Denis S. Soldatov aka General-Beck <[email protected]> Co-authored-by: Tomasz Drwięga <[email protected]>
-
- Jul 28, 2020
-
-
Svyatoslav Nikolsky authored
* update dashboards * cargo fmt --all * Update deployments/rialto/dashboard/prometheus/prometheus.yml Co-authored-by: Tomasz Drwięga <[email protected]> Co-authored-by: Tomasz Drwięga <[email protected]>
-
Svyatoslav Nikolsky authored
-
Svyatoslav Nikolsky authored
* auto exchange tx relay dashboard * cargo fmt --all * single metrics startup fn
-
Svyatoslav Nikolsky authored
* make receipts part of tx proof * is_successful_raw_receipt_with_empty_data * cargo fmt --all * clippy * fix everything
-
- Jul 27, 2020
-
-
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: Denis S. Soldatov aka General-Beck <[email protected]>
-
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: Hernando Castano <[email protected]> * finish comment * (bool, String) -> StringifiedMaybeConnectionError * Update deployments/rialto/docker-compose.yml Co-authored-by: Hernando Castano <[email protected]> Co-authored-by: Denis S. Soldatov aka General-Beck <[email protected]> Co-authored-by: Hernando Castano <[email protected]>
-
- Jul 20, 2020
-
-
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: Hernando Castano <[email protected]>
-
- Jul 17, 2020
-
-
Svyatoslav Nikolsky authored
* expose metrics for Prometheus * added preconfigured configs for Prometheus and Grafana * metrics-related cli args * fix compilation
-
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: Hernando Castano <[email protected]> * Add some docs. * Updat...
-
- Jul 14, 2020
-
-
Svyatoslav Nikolsky authored
* fixed best_ethereum_block() params encoding * updated versions
-
Svyatoslav Nikolsky authored
* relay exchange transaction(s) * fixed Ethereum::get_block_by_hash * added exchange trace * fixed method name * update for new web3 * svyatonik/rust-web3 -> tomusdrw/rust-web3 * if let Some() -> .expect() * extracted loops in separate functions * use yaml references (TIL) * get eth header with transactions * cargo fmt --all * Update primitives/ethereum-poa/src/lib.rs Co-authored-by: Hernando Castano <[email protected]> * Update relays/ethereum/src/ethereum_exchange.rs Co-authored-by: Hernando Castano <[email protected]> * Update relays/ethereum/src/rpc_errors.rs Co-authored-by: Hernando Castano <[email protected]> * Update relays/ethereum/src/exchange.rs Co-authored-by: Hernando Castano <[email protected]> * removed comment * Update relays/ethereum/src/ethereum_exchange.rs Co-authored-by: Hernando Castano <[email protected]> * Update relays/ethereum/src/ethereum_exchange.rs Co-authored-by: Hernando Castano <[email protected]> * module-level comments * updated readme * use web3 from crates.io * added missing fields info in error description * cargo fmt --all Co-authored-by: Hernando Castano <[email protected]>
-
Svyatoslav Nikolsky authored
* basic sync loop tests * cargo ftm --all * SyncLoopTestParams * move sync loop tests to sync_loop_tests.rs * cargo fmt --all
-
- Jul 10, 2020
-
-
Svyatoslav Nikolsky authored
-
- Jul 08, 2020
-
-
Svyatoslav Nikolsky authored
* backoff on connection-unrelated errors * cargo fmt --all * Fix some typos Co-authored-by: Hernando Castano <[email protected]>
-
- Jul 06, 2020
-
-
Svyatoslav Nikolsky authored
* ease serde version requirements (to build OE with builtin) * trace + fix completion notifications * check incompletion on submit * fix compilation * do not ask for synced blocks when queue is empty * cargo fmt --all * Update relays/ethereum/src/ethereum_client.rs Co-authored-by: Tomasz Drwięga <[email protected]> * remove closure * fn submit_substrate_header() -> Option<RpcError> Co-authored-by: Tomasz Drwięga <[email protected]>
-
- Jun 23, 2020
-
-
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: Svyatoslav Nikolsky <[email protected]>
-
- Jun 11, 2020
-
-
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: Svyatoslav Nikolsky <[email protected]> * Clean up async return type Co-authored-by: Svyatoslav Nikolsky <[email protected]> * Clean up async return type Co-authored-by: Svyatoslav Nikolsky <[email protected]> * Remove unused import Co-authored-by: Svyatoslav Nikolsky <[email protected]>
-
- Jun 03, 2020
-
-
Svyatoslav Nikolsky authored
* bump substrate * cargo fmt --all
-
- May 22, 2020
-
-
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
-
- May 20, 2020
-
-
Hernando Castano authored
* Use `CallRequest` type from rust-web3 crate * Change CallRequest's `to` field to be optional Required due to changes in upstream `rust-web3` crate.
-
- May 19, 2020
-
-
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.
-
- May 18, 2020
-
-
Svyatoslav Nikolsky authored
-
- May 12, 2020
-
-
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: Tomasz Drwięga <[email protected]> * Update relays/ethereum/src/ethereum_sync_loop.rs Co-authored-by: Tomasz 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: Tomasz Drwięga <[email protected]> * Update relays/ethereum/src/ethereum_sync_loop.rs Co-authored-by: Tomasz Drwięga <[email protected]> * Use Duration::from_secs() instead of from_millis() * grumbles * Update relays/ethereum/src/headers.rs Co-authored-by: Hernando Castano <[email protected]> * Update relays/ethereum/src/headers.rs Co-authored-by: Hernando 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: Hernando Castano <[email protected]> * Update relays/ethereum/src/headers.rs Co-authored-by: Hernando Castano <[email protected]> * Update relays/ethereum/src/headers.rs Co-authored-by: Hernando Castano <[email protected]> * Update relays/ethereum/src/headers.rs Co-authored-by: Hernando Castano <[email protected]> * Update relays/ethereum/src/headers.rs Co-authored-by: Hernando Castano <[email protected]> * Update relays/ethereum/src/headers.rs Co-authored-by: Hernando Castano <[email protected]> * Update relays/ethereum/src/headers.rs Co-authored-by: Hernando Castano <[email protected]> * Update relays/ethereum/src/headers.rs Co-authored-by: Hernando Castano <[email protected]> * added comments on Extra and Completion Co-authored-by: Tomasz Drwięga <[email protected]> Co-authored-by: Hernando Castano <[email protected]>
-
- Apr 29, 2020
-
-
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
-
- Apr 08, 2020
-
-
Svyatoslav Nikolsky authored
* renamed to-be-generic files * make everything required generic over source/target chains * some more fixes * cargo fmt --all * trait functions -> trait constants * cargo --fmt --all
-
- Apr 07, 2020
-
-
Svyatoslav Nikolsky authored
* 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 <[email protected]> * Update modules/ethereum/src/verification.rs Co-Authored-By: Hernando Castano <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * Update modules/ethereum/src/lib.rs Co-Authored-By: Tomasz Drwięga <[email protected]> * return err from unsigned_import_header * get header once * Update relays/ethereum/src/ethereum_sync.rs Co-Authored-By: Tomasz Drwięga <[email protected]> * fix * UnsignedTooFarInTheFuture -> Custom(err.code()) * updated ImportContext::last_signal_block * cargo fmt --all * rename runtime calls Co-authored-by: Hernando Castano <[email protected]> Co-authored-by: Tomasz Drwięga <[email protected]>
-
- Apr 06, 2020
-
-
Svyatoslav Nikolsky authored
-
- Mar 23, 2020
-
-
Svyatoslav Nikolsky authored
-
dependabot-preview[bot] authored
* Bump time from 0.1.42 to 0.2.9 Bumps [time](https://github.com/time-rs/time) from 0.1.42 to 0.2.9. - [Release notes](https://github.com/time-rs/time/releases) - [Changelog](https://github.com/time-rs/time/blob/master/CHANGELOG.md) - [Commits](https://github.com/time-rs/time/commits/v0.2.9) Signed-off-by: dependabot-preview[bot] <[email protected]> * Update to new API. Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> Co-authored-by: Tomasz Drwięga <[email protected]>
-
- Mar 19, 2020
-
-
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
-