* Revert "Pin Rust Nightly to 2020-12-17 (#652)"
This reverts commit e54e6f7e3d34c28d698e637f9099162b3c1917e9.
* fix clippy
* clippy again
* more clippy in test code
* and new cargo fmt
* another try
* Make AncestryProof type more flexible
* Only import single finalized header instead of a chain
* Fix unchecked header import tests
* Add option for limiting ancestry proof size
* Update finality verifier Config in runtimes
* Update some documentation
* Fix Clippy warning
* Allow AncestryChecker to return proof size
Stops us from abusing the `Size` trait
* Remove Size impl for Vec<T>
* Remove size contraints for ancestry proofs
With different proof types its unclear how to "size" should be interpreted,
so we remove this requirement all together to avoid confusion.
* Add Finality Verifier pallet to runtimes
* Implement simple ancestry checker
* Use the new checker in runtimes
* Remove unused import warning
* Bump max allowed ancestry proof size
* Add a few optimization suggestions when verifying ancestry
* Use session length as upper bound for ancestry proof size
* Remove unused time units
* Add skeleton for `pallet-finality-verifier`
* Sketch out implementation for importing finality proofs
* Get pallet compiling
* Introduce skeleton for mock runtime
* Start using real Grandpa types in finality pallet
* Redefine types in header chain primitives crate
* Implement HeaderChain for Substrate bridge pallet
* Plug Substrate Bridge Pallet into verifier mock
* Fix compilation of `header-chain` primitives
* Start writing to base pallet storage
* Add first "cross-pallet" test
* Move keyring primitives used in tests to shared crate
* Stop pulling `std` deps into `no_std` builds
* Revert "Stop pulling `std` deps into `no_std` builds"
This reverts commit f74dd660652f98b7336936d1534a4e63cc9169a5.
* Revert "Move keyring primitives used in tests to shared crate"
This reverts commit b774fa730b2cdc40545afff308a66b0840266001.
* Use new SS58Prefix type in mock
* Start using `bp-test-utils` in finality pallet
* Start using real justification code
* Get a test working with real justification verification
* Add basic tests for invalid proofs
* Get rid of AncestryProof config type
* Add error types to transaction outcome
* Bound number of headers allowed in a single ancestry proof
* Disallow invalid authority sets
* Remove unused items
* Add some documentation
* Get rid of Clippy warnings
* Rename BaseHeaderChain to TransactionVerifier
* Remove unused code
* Make dummy trait implementations more generic
* Fix more Clippy complaints
* Update tests to use fix for duplicate headers
* Fix benchmarking compilation
* Rename TransactionVerifier to InclusionProofVerifier
* message fee formula
* update GetDelvieryConfirmationTransactionFee
* include cost of transactions (i.e. not only dispatch cost) in delivery_and_dispatch_fee
* endow relayers fund account
* include db ops weight in max tx weight estimation
* (in bytes)
Co-authored-by: Hernando Castano <castano.ha@gmail.com>
* Document relayers fund existence and add root account.
* Introduce initialize method instead of assuming that relayer_fund_account is always required.
* cargo fmt --all
* Fix benchmarks.
* cargo fmt --all
* Fix docs for the relayer fund account.
* Add AccountIdConverter impl to Kusama and Polkadot primitives
* Add missing message lane config constants
* Add more consts
* Add another missing const
* Move consts in primitives so that they're consistent across files
* Move types and consts to more intuitive locations
* Downgrade hyper from v0.13.8 to v0.13.6
This conflicts with a requirement on the Polkadot side
which requires that hyper is =v0.13.6
* Update hyper to v0.13.9
* Update async-io to v1.3.1
* Update socket2 from v0.3.15 to v0.3.18
* Update message weight/size constants
* Make BlockWeights/Length parameter types
Allows us to re-use these types from both the runtime and
the message lane config files without creating a new instance
of them.
* Remove uneccesary weight constants
These can be found in the `runtime-common` crate used
by Polkadot/Kusama. The constants there will also be
the most up-to-date versions.
* Update `sp-io` dependency
* Rename Trait to Config
* RustFmt
* Bump `sp-io` again
* Use new frame_system weight types in Rialto and Millau runtimes
* Update test Runtimes to use new weight types
* Bump `sp-io` again
* Update to not-the latest first.
* Update benchmarks.
* Another Trai.
* Move new weight types into runtime primitive crates
This allows us to check limits for extrinsics from other parts
of the codebase without pulling in the entire chain runtime.
* Remove leftover comments
* Move new functions to a better location
* Small formatting fixes
* Add actual documentation to new weight config types
* Decrease maximum block weight of Millau chain
* Decreease maximum block length of Millau chain
Co-authored-by: Tomasz Drwięga <tomasz@parity.io>
* limit maximal number of unconfirmed messages at inbound lane
* unrewarded_relayer_entries API
* change relay to support max unrewarded relayer entries
* Update modules/message-lane/src/inbound_lane.rs
Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com>
* Update relays/messages-relay/src/message_lane_loop.rs
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com>
* removed pub
Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com>
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com>
* limit max number of messages in delivery tx
* support max-messages-in-delivery-tx in relayer
* clippy
* clippy
* Update modules/message-lane/src/lib.rs
Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com>
Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com>
* lower limit for message weight
* fmt
* do not include tx overhead in weights returned by weight_limits_of_message_on_bridged_chain
* Use correct chain in comment
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com>
* Update some docs
* Add derived account origin
* Add tests for derived origin
* Do a little bit of cleanup
* Change Origin type to use AccountIds instead of Public keys
* Update (most) tests to use new Origin types
* Remove redundant test
* Update `runtime-common` tests to use new Origin types
* Remove unused import
* Fix documentation around origin verification
* Update config types to use AccountIds in runtime
* Update Origin type used in message relay
* Use correct type when verifying message origin
* Make CallOrigin docs more consistent
* Use AccountIds instead of Public keys in Runtime types
* Introduce trait for converting AccountIds
* Bring back standalone function for deriving account IDs
* Remove AccountIdConverter configuration trait
* Remove old bridge_account_id derivation function
* Handle target ID decoding errors more gracefully
* Update message-lane to use new AccountId derivation
* Update merged code to use new Origin types
* Use explicit conversion between H256 and AccountIds
* Make relayer fund account a config option in `message-lane` pallet
* Add note about deriving the same account on different chains
* Fix test weight
* Use AccountId instead of Public key when signing Calls
* Semi-hardcode relayer fund address into Message Lane pallet
* initialize substrate bridge from relay
* is_halted: false
* initialize using su instead of owner
* Fix wording in comments
Co-authored-by: Hernando Castano <castano.ha@gmail.com>
* Copy-Pasta owner and freezing code from `message-lane`
* Halt pallet if bridge hasn't been initialized
* Make owner optional in `message-lane` pallet
* Add `is_halted` to `InitializationData`
* Fix initialization tests
* Only allow pallet to be initialized once
* Add some logging around halting and ownership changes
* Remove `target` in debugging calls