dependabot-preview[bot]
b088efee32
Bump async-trait from 0.1.35 to 0.1.36 ( #145 )
...
Bumps [async-trait](https://github.com/dtolnay/async-trait ) from 0.1.35 to 0.1.36.
- [Release notes](https://github.com/dtolnay/async-trait/releases )
- [Commits](https://github.com/dtolnay/async-trait/compare/0.1.35...0.1.36 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com >
Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2024-04-10 10:28:37 +02:00
dependabot-preview[bot]
c005fdd79c
Bump serde from 1.0.112 to 1.0.114 ( #144 )
...
Bumps [serde](https://github.com/serde-rs/serde ) from 1.0.112 to 1.0.114.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.112...v1.0.114 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com >
Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
f5a00140cb
Forbid appending blocks to forks that are competing with finalized chain ( #138 )
...
* Error::TryingToFinalizeSibling
* cargo fmt --all
* updated PruningStrategy comment
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
a0c8206684
Move pruning strategy to runtime level ( #128 )
...
* move pruning strategy to runtim level
* cargo fmt --all
* Update modules/ethereum/src/lib.rs
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
* finalize_headers -> finalize_and_prune_headers
* PruningStrategy::default()
* fn import_of_non_best_block_may_finalize_blocks()
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
2024-04-10 10:28:37 +02:00
dependabot-preview[bot]
7513775676
Bump serde from 1.0.111 to 1.0.112 ( #133 )
2024-04-10 10:28:37 +02:00
dependabot-preview[bot]
90641e065a
Bump async-trait from 0.1.33 to 0.1.35 ( #135 )
2024-04-10 10:28:37 +02:00
dependabot-preview[bot]
1dbbfe2daa
Bump serde_json from 1.0.53 to 1.0.55 ( #134 )
2024-04-10 10:28:37 +02:00
Hernando Castano
650f32342c
Add async_trait to SourceClient and TargetClient ( #123 )
...
* Use async_trait for SourceClient
* Use aync_trait for TargetClient
* Revert async_trait usage for Source/Target client
This reverts commit f636ffaffd60197e90e887362b4a0c35a0dc5a6c.
This reverts commit 2c15755e8c93318f8e0a605852efe87d72edb769.
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 <svyatonik@gmail.com >
* Clean up async return type
Co-authored-by: Svyatoslav Nikolsky <svyatonik@gmail.com >
* Clean up async return type
Co-authored-by: Svyatoslav Nikolsky <svyatonik@gmail.com >
* Remove unused import
Co-authored-by: Svyatoslav Nikolsky <svyatonik@gmail.com >
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
b701c2be8d
Update Substrate to latest master (rc3) ( #129 )
...
* Substrate 606c56d2e2f69f68f3947551224be6a3515dff60
* update jsonrpsee
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
643075f7fa
Finality votes cache ( #116 )
...
* removeInMemoryStorage + extract Kovan stuff to runtime
* removed comment from the future
* remove redundant conversions
* remove redundant `u8 as usize`
* remove redundant `u8 as usize`
* Update modules/ethereum/src/mock.rs
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
* use hex-literal in kovan config
* cargo fmt --all
* extracted insert_header
* cargo fmt --all
* finality cache
* cargo fmt --all
* cargo fmt --all
* impl Default for FinalityVotes
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
Co-authored-by: Hernando Castano <castano.ha@gmail.com >
2024-04-10 10:28:37 +02:00
Tomasz Drwięga
ca8b370de2
Revert "Bump async-std from 1.5.0 to 1.6.0" ( #127 )
...
* Revert "Bump async-std from 1.5.0 to 1.6.0 (#126 )"
This reverts commit 3c15a65929447a12aa23c1f34c9b783d117deed2.
* Add async-std=1.6 to ignore.
2024-04-10 10:28:37 +02:00
dependabot-preview[bot]
bad7e7c1d0
Bump async-std from 1.5.0 to 1.6.0 ( #126 )
2024-04-10 10:28:37 +02:00
dependabot-preview[bot]
6b13a6f560
Bump async-trait from 0.1.31 to 0.1.33 ( #125 )
2024-04-10 10:28:37 +02:00
dependabot-preview[bot]
e0510a5507
Bump jsonrpc-core from 14.1.0 to 14.2.0 ( #124 )
2024-04-10 10:28:37 +02:00
Hernando Castano
592409d740
Provide overview about project components ( #121 )
...
* Add descriptions for folder structure + node
* Beef up descriptions of project components
* Fix list formatting
* Add note about nightly Rust
* Update README.md
Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com >
* Update README.md
Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com >
* Reword Tomek's currency-exchange suggestion
* Add link to Substrate's installation guide
Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com >
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
7294ea44e1
Claim funds on Substrate chain by providing proof of funds locking on PoA chain ( #91 )
...
* ethereum exchange module
* continue
* continue
* added tests for exchange module
* moved
* remove println
* move again
* fixes
* removed redundant deps
* cargo fmt
* fund_locks_transaction_decode_works
* cargo fmt --all
* fix error processing
* added some tracing to bridge modules
* more tests
* more tests
* cargo fmt --all
* kovan.rs -> exchange.rs
* Update bin/node/runtime/src/exchange.rs
Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com >
* added assumption doc
* Airdrop -> DepositInto
* AsIs -> Identity
* OnTransactionSubmitted
* Transfers::Key = Id
* typo
* Update bin/node/runtime/src/exchange.rs
Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com >
* block+tx+proof -> proof { block, tx, proof }
* cargo fmt --all
* docs
* check <-> verify
* parse hex
* extracted exchange primitives to separate crate
* added docs to runtime::exchange module
* Update bin/node/runtime/src/exchange.rs
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
* typo
* Update modules/currency-exchange/Cargo.toml
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
* add docs to currency-exchange module
* change tests names
* cargo fmt --all
* Update bin/node/runtime/src/exchange.rs
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
* Update bin/node/runtime/src/exchange.rs
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
* Update bin/node/runtime/src/exchange.rs
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
* Update bin/node/runtime/src/exchange.rs
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
* Update bin/node/runtime/src/exchange.rs
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
* fixed verify_transaction_finalized for siblings of finalized blocks
* cargo fmt --all
* added double spend note
* cargo fmt --all
Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com >
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
a7e7c895f6
Bump substrate version ( #120 )
...
* bump substrate
* cargo fmt --all
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
944859319e
Limit number of headers that are pruned within single import Call ( #105 )
...
* removeInMemoryStorage + extract Kovan stuff to runtime
* removed comment from the future
* limit number of headers that are pruned within single import Call
* verify that pruning range upper bottom is always-increasing
* Fix typo
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
3ebaf0548d
downgrade async-std to 1.5.0 ( #119 )
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
a6a86c21bb
Use runtime storage in PoA -> Substrate module tests ( #103 )
...
* removeInMemoryStorage + extract Kovan stuff to runtime
* removed comment from the future
* remove redundant conversions
* remove redundant `u8 as usize`
* remove redundant `u8 as usize`
* Update modules/ethereum/src/mock.rs
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
* use hex-literal in kovan config
* cargo fmt --all
* extracted insert_header
* cargo fmt --all
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
2024-04-10 10:28:37 +02:00
dependabot-preview[bot]
7fb99cd575
Bump serde from 1.0.110 to 1.0.111 ( #114 )
2024-04-10 10:28:37 +02:00
dependabot-preview[bot]
e48d943b31
Bump async-std from 1.5.0 to 1.6.0 ( #107 )
2024-04-10 10:28:37 +02:00
dependabot-preview[bot]
6ea9a28d90
Bump async-trait from 0.1.30 to 0.1.31 ( #106 )
2024-04-10 10:28:37 +02:00
Hernando Castano
0e7666e63b
RPC Module for Relays ( #80 )
...
* 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 `0f0435d` to `ca75502`
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
2024-04-10 10:28:37 +02:00
Hernando Castano
792226c9fd
Use CallRequest type from rust-web3 crate ( #101 )
...
* Use `CallRequest` type from rust-web3 crate
* Change CallRequest's `to` field to be optional
Required due to changes in upstream `rust-web3` crate.
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
e16dd14e20
Mute warnings from Substrate <-> Substrate runtime module and relay ( #104 )
...
* mute warnings from sub2sub module+relay
* cargo fmt --all
2024-04-10 10:28:37 +02:00
Hernando Castano
5bcae00f19
Bump rust-web3 to latest v0.11 ( #100 )
...
* 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.
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
7a3468a919
removed unused files ( #99 )
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
f42905186d
fix error processing ( #97 )
2024-04-10 10:28:37 +02:00
dependabot-preview[bot]
7ddff25912
Bump clap from 2.33.0 to 2.33.1 ( #94 )
2024-04-10 10:28:37 +02:00
dependabot-preview[bot]
04c091a050
Bump ethereum-types from 0.9.1 to 0.9.2 ( #95 )
2024-04-10 10:28:37 +02:00
dependabot-preview[bot]
9765c53a15
Bump derive_more from 0.99.5 to 0.99.7 ( #93 )
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
c9e81e48b5
Process finality proofs in solidity PoA -> Substrate contract ( #69 )
...
* 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 <tomusdrw@users.noreply.github.com >
* Update relays/ethereum/src/ethereum_sync_loop.rs
Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com >
* 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 <tomusdrw@users.noreply.github.com >
* Update relays/ethereum/src/ethereum_sync_loop.rs
Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com >
* Use Duration::from_secs() instead of from_millis()
* grumbles
* Update relays/ethereum/src/headers.rs
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
* Update relays/ethereum/src/headers.rs
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
* 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 <HCastano@users.noreply.github.com >
* Update relays/ethereum/src/headers.rs
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
* Update relays/ethereum/src/headers.rs
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
* Update relays/ethereum/src/headers.rs
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
* Update relays/ethereum/src/headers.rs
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
* Update relays/ethereum/src/headers.rs
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
* Update relays/ethereum/src/headers.rs
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
* Update relays/ethereum/src/headers.rs
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
* added comments on Extra and Completion
Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com >
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
2024-04-10 10:28:37 +02:00
dependabot-preview[bot]
9496303aff
Bump futures from 0.3.4 to 0.3.5 ( #89 )
2024-04-10 10:28:37 +02:00
dependabot-preview[bot]
13fbc6ea5c
Bump serde from 1.0.106 to 1.0.110 ( #90 )
2024-04-10 10:28:37 +02:00
dependabot-preview[bot]
5a463ff3ca
Bump linked-hash-map from 0.5.2 to 0.5.3 ( #88 )
2024-04-10 10:28:37 +02:00
dependabot-preview[bot]
4f119c0fd9
Bump serde_json from 1.0.52 to 1.0.53 ( #87 )
2024-04-10 10:28:37 +02:00
dependabot-preview[bot]
16d49f6417
Bump finality-grandpa from 0.12.1 to 0.12.2 ( #86 )
2024-04-10 10:28:37 +02:00
dependabot-preview[bot]
c2bd5fbbf3
Bump finality-grandpa from 0.11.2 to 0.12.1 ( #82 )
2024-04-10 10:28:37 +02:00
dependabot-preview[bot]
96af3e9a49
Bump ethabi-derive from 11.0.0 to 12.0.0 ( #81 )
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
3d15ac7c90
Solidity contract that accepts unverified substrate headers ( #65 )
...
* 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
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
50d6ed186f
Migrate to new substrate ( #79 )
...
* new substrate version + actually verify justification
* cargo update + fix remaining stuff
* add weight=0 comments
* cargo fmt --all
* fix hash types
2024-04-10 10:28:37 +02:00
dependabot-preview[bot]
4bbef4d45a
Bump structopt from 0.3.13 to 0.3.14 ( #77 )
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
04c9da81da
local testnet for substrate node ( #70 )
2024-04-10 10:28:37 +02:00
dependabot-preview[bot]
37b8bc51aa
Bump jsonrpc-core from 14.0.5 to 14.1.0 ( #68 )
2024-04-10 10:28:37 +02:00
dependabot-preview[bot]
8a8a868b97
Bump structopt from 0.3.12 to 0.3.13 ( #64 )
2024-04-10 10:28:37 +02:00
dependabot-preview[bot]
28bb7238f6
Bump parking_lot from 0.10.0 to 0.10.2 ( #63 )
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
d631178e41
Make relay generic over source/target chains ( #58 )
...
* 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
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
c6c46462ab
Sync ethereum headers using unsigned (substrate) transactions ( #45 )
...
* 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 <HCastano@users.noreply.github.com >
* Update modules/ethereum/src/verification.rs
Co-Authored-By: Hernando Castano <HCastano@users.noreply.github.com >
* 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 <HCastano@users.noreply.github.com >
* 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 <tomusdrw@users.noreply.github.com >
* Update modules/ethereum/src/lib.rs
Co-Authored-By: Tomasz Drwięga <tomusdrw@users.noreply.github.com >
* return err from unsigned_import_header
* get header once
* Update relays/ethereum/src/ethereum_sync.rs
Co-Authored-By: Tomasz Drwięga <tomusdrw@users.noreply.github.com >
* fix
* UnsignedTooFarInTheFuture -> Custom(err.code())
* updated ImportContext::last_signal_block
* cargo fmt --all
* rename runtime calls
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com >
Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com >
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
b055027161
Add missing RPC required for relay ( #57 )
...
* add missing RPC required for relay
* cargo fmt --all
2024-04-10 10:28:37 +02:00