Commit Graph

145 Commits

Author SHA1 Message Date
Svyatoslav Nikolsky 31a6cbeafb Dynamic fees for bridges-v1 (#2294)
* impl backpressure in the XcmBlobHaulerAdapter

* LocalXcmQueueManager + more adapters

* OnMessageDelviered callback

* forbid mesage delivery transactions when the channel between target bridge hub and target asset hub is suspended

* pallet-xcm-bridge-hub-router

* removed commented code

* improvements and tests for palle-xcm-bridge-router

* use LocalXcmChannel in XcmBlobMessageDispatch

* new tests for logic changes in messages pallet

* tests for LocalXcmQueueSuspender

* tests for LocalXcmQueueMessageProcessor

* tests for new logic in the XcmBlobHaulerAdapter

* fix other tests in the bridge-runtime-common

* extension_reject_call_when_dispatcher_is_inactive

* benchmarks for pallet-xcm-bridge-hub-router

* get rid of redundant storage value

* add new pallet to verify-pallets-build.sh

* fixing spellcheck, clippy and rustdoc

* trigger CI

* Revert "trigger CI"

This reverts commit 48f1ba032334e3c6d8470436483736988aa060ac.

* change log target for xcm bridge router pallet

* Update modules/xcm-bridge-hub-router/src/lib.rs

Co-authored-by: Branislav Kontur <bkontur@gmail.com>

* use saturated_len where possible

* fmt

* (Suggestion) Ability to externalize configuration for `ExporterFor` (#2313)

* Ability to externalize configuration for `ExporterFor`
(Replaced `BridgedNetworkId/SiblingBridgeHubLocation` with `Bridges: ExporterFor`)

* Fix millau

* Compile fix

* Return back `BridgedNetworkId` but as optional filter

* Replaced `BaseFee` with fees from inner `Bridges: ExporterFor`

* typo

* Clippy

* Rename LocalXcmChannel to XcmChannelStatusProvider (#2319)

* Rename LocalXcmChannel to XcmChannelStatusProvider

* fmt

* added/fixed some docs

* Dynamic fees v1: report congestion status to sending chain (#2318)

* report congestion status: changes at the sending chain

* OnMessagesDelivered is back

* report congestion status: changes at the bridge hub

* moer logging

* fix? benchmarks

* spelling

* tests for XcmBlobHaulerAdapter and LocalXcmQueueManager

* tests for messages pallet

* fix typo

* rustdoc

* Update modules/messages/src/lib.rs

* apply review suggestions

* ".git/.scripts/commands/fmt/fmt.sh"

* Added `XcmBridgeHubRouterCall::report_bridge_status` encodings for AHK/P (#2350)

* Added `XcmBridgeHubRouterCall::report_bridge_status` encodings for AHK/P

* Spellcheck

* Added const for `XcmBridgeHubRouterTransactCallMaxWeight`

* Cargo.lock

* Introduced base delivery fee constants

* Congestion messages as Optional to turn on/off `supports_congestion_detection`

* Spellcheck

* Ability to externalize dest for benchmarks

* Ability to externalize dest for benchmarks

---------

Co-authored-by: Branislav Kontur <bkontur@gmail.com>
Co-authored-by: command-bot <>
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky f42b883745 remove message sender origin (#2322) 2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky 4d42bb22f3 Update dependecies (#2277) (#2281)
* cargo update -p parachain-info

* flush

* it compiles

* clippy

* temporary add more logging to cargo deny

* Revert "temporary add more logging to cargo deny"

This reverts commit 20daa88bca6d9a01dbe933579b1d57ae5c3a7bd8.

* list installed Rust binaries before running cargo deny

* changed prev commit

* once again

* try cargo update?

* post-update fixes (nothing important)
2024-04-10 10:28:37 +02:00
Adrian Catangiu ac725ec93f backport cumulus changes to polkadot-staging (#2167)
* backport cumulus changes

* bump substrate & polkadot and make it build

* fix runtimes

* bump substrate, polkadot & cumulus

* fix build: remove ump leftovers

* fix tests: disable runtime version check in tests

* fix build: use sp_version::runtime_version macro

Signed-off-by: acatangiu <adrian@parity.io>
2024-04-10 10:28:37 +02:00
Serban Iorga d479232c34 Small fixes (#2126) 2024-04-10 10:28:37 +02:00
Serban Iorga d80d2a5039 Cosmetics (#2124)
* Cosmetics

* Address PR comment
2024-04-10 10:28:37 +02:00
Serban Iorga 06e0204694 Remove some expect() statements (#2123)
* Return error on save_message()

Prevent unexpected failures.

* Remove RefCell

* Fix spellcheck

* CI fixes
2024-04-10 10:28:37 +02:00
Serban Iorga 201dfddc54 Propagate message receival confirmation errors (#2116)
* Propagate message receival confirmation errors

* spellcheck
2024-04-10 10:28:37 +02:00
Serban Iorga 56d4013878 Propagate message verification errors (#2114)
* Propagate message verification errors

* Replace parse_finalized_storage_proof() with storage_proof_checker()

* small fixes

* fix comment
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky 49d11e9ce5 Add weight of refund extension post_dispatch to the weights of messages pallet (#2089)
* add weight of refund extension post_dispatch to the weights of messages pallet

* fixed tests and removed TODO

* verify runtime overhead weight in integrity tests

* add integrity tests to rialto-parachain runtime

* refactor weights a bit

* refund ext is disabled for Rialto <> Millau bridge

* Update bin/runtime-common/src/integrity.rs

Co-authored-by: Adrian Catangiu <adrian@parity.io>

* Update bin/runtime-common/src/integrity.rs

Co-authored-by: Adrian Catangiu <adrian@parity.io>

* Update modules/relayers/src/weights_ext.rs

Co-authored-by: Adrian Catangiu <adrian@parity.io>

---------

Co-authored-by: Adrian Catangiu <adrian@parity.io>
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky b03c584e31 Add millau specific messages weights (#2097)
* refactor weights a bit

* post cherry-pick fixes

* do not run spellcheck on new weight files

* fix
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky c17f625770 Add more logs to relayer and message pallets (#2082)
* add more logs

* unused import

* fmt
2024-04-10 10:28:37 +02:00
bear b495f8b28d Update comment (#2081) 2024-04-10 10:28:37 +02:00
Branislav Kontur db53d68e9b Removed relayer_account: &AccountId from MessageDispatch (#2080)
* SourceBridgeHubChain/TargetBridgeHubChain replaced with RelayerAccountChain

* Fix

* Removed `relayer_account: &AccountId` from `MessageDispatch`
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky dc61bcdc01 Fixed off-by-one when confirming rewards in messages pallet (#2075)
* fixed off-by-one when confirming rewards in messages pallet

* Update modules/messages/src/inbound_lane.rs
2024-04-10 10:28:37 +02:00
Serban Iorga 13ecaf1eca Small simplifications (#2050) 2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky 512d43fabe Revert dispatch-results (#2048)
* Revert "Reintroduce msg dispatch status reporting (#2027)"

This reverts commit 38bb051e3d778ee2f5e9451f89cf479a71fd68f8.

* post-revert fix
2024-04-10 10:28:37 +02:00
Serban Iorga b8f4086095 Define RangeInclusiveExt (#2037)
* Define RangeInclusiveExt

* Use RangeInclusiveExt

* Add docs
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky 9e48162df2 refund extra weight in receive_messages_delivery_proof call (#2031) 2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky ceea1a10f7 Reject delivery transactions with at least one obsolete message (#2021)
* reject delivery transactions with at least one obsolete message

* clippy

* allow empty delivery transactions with rewards confirmations BUT only when there's no room left in the unrewarded relayers vector

* clippy

* allow empty delivery transactions if no message slots in unrewarded relayers vector
2024-04-10 10:28:37 +02:00
Serban Iorga 3b968a2aba Reintroduce msg dispatch status reporting (#2027)
* Use an actual Result inside MessageDispatchResult

We need this in order to distinguish between Ok and Err

* Revert #1660

* Fixes + simplifications

* Implement review suggestions
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky f659ebed7a fail with InsufficientDispatchWeight if dispatch_weight doesn't cover weight of all bundled messages (#2018) 2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky 068f6f648b Run benchmarks for mock runtimes (#1996)
* run benchmarks for pallet-bridge-grandpa mock runtime

* run benchmarks for pallet-bridge-relayers mock runtime

* run benchmarks for pallet-bridge-parachains mock runtime

* run benchmarks for pallet-bridge-messages mock runtime

* test benchmarks on mockj runtimes from CI

* clippy and spelling
2024-04-10 10:28:37 +02:00
Adrian Catangiu e55d4dd6e0 bump substrate+polkadot refs and fix builds (#1989)
* bump refs and fix build

* more fixes

* Fix rialto-parachain node

* Update dependencies for tools/runtime-codegen

* Regenerate rialto-parachain indirect runtime

* Fix register_parachain

* Fix clippy

* Undo clippy allow

---------

Co-authored-by: Serban Iorga <serban@parity.io>
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky 830afff353 Added receive_single_message_proof_with_dispatch benchmark (#1990)
* added receive_single_message_proof_with_dispatch benchmark

* clippy
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky eccbdff851 remove invalid weight, returned by send_message (#1984) 2024-04-10 10:28:37 +02:00
Branislav Kontur ce89a2edca Removed deprecated #[pallet::generate_store(pub(super) trait Store)] according to latest Cumulus (#1964) 2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky 3a145e5844 get rid of obsolete weight functions (#1926) 2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky aa466a485d Fix benchmarks (#1919)
* fixed benchmarks broken by rejecting storage proofs with excessive trie nodes and justifications with extra prevotes

* update weights

* fmt

* accidental paste

* revert changes to millau runtime (separate PR)

* revert comment change
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky 26330d9a25 get rid of ChainWithMessages::WeightInfo, because we can't have exact weights for "external chains" (#1899) 2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky 9e30130054 Refund extra proof bytes in message delivery transaction (#1864)
* refund extra proof bytes in message delivery transaction

* Update modules/messages/src/lib.rs

Co-authored-by: Adrian Catangiu <adrian@parity.io>

* more tests

---------

Co-authored-by: Adrian Catangiu <adrian@parity.io>
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky d8764450c9 MaxValues for OutboundLanes map (#1871) 2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky 89bb368e45 More tests for message pallet weights (#1870)
* more tests for message pallet weights

* move tests to ensure_weights_are_correct

* removed extra tests
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky a5a3f8065f fixed TODOs for weights v2 (#1860) 2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky 795a049937 Message delivery transaction is not free!!! (#1859)
* message delivery transaction is not free!!!

* test pays_fee
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky 7755c1b526 changed some tests for weights v2 (#1855) 2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky a091b8405e Update Substrate/Polkadot/Cumulus dependencies + weights v2 (#1850)
* cargo update

* weights v2

* clippy

* no spellcheck for weights.rs

* fix proof_size component in MAXIMUM_BLOCK_WEIGHT  constants

* "fix" proof_size in select_delivery_transaction_limits_works

* spellcheck
2024-04-10 10:28:37 +02:00
Serban Iorga 5d875d05d3 Use named parameters for indirect calls (#1823) 2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky 74fb0a536d Default impl for some methods in messages benchmarking pallet config (#1777)
* default impl for some methods in messages benchmarking pallet config

* typo
2024-04-10 10:28:37 +02:00
Branislav Kontur 5fdc89d651 Bump xcm-v3 + substrate (#1767)
* Bump xcm-v3 + substrate

* More fixes

* Added `#[pallet::call_index`

* Fixes for MMR (TODO:plese check)

* More call indexes

* Cumulus bump

* Fixes for mmr

* Fixes for weights

* Fixes for xcm

* MMR fixes + cargo fmt

* Fix some rpc errors (bump jsonrpsee version)

* Fix cumulus stuff

* Fixes cumulus

* clippy

* more clipy

* Fix test + unused deps

* PR fixes

* cargo update (bump xcm-v3)

Co-authored-by: Serban Iorga <serban@parity.io>
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky cca75ee841 fixed receive_delivery_proof_for_two_messages_by_two_relayers (#1764) 2024-04-10 10:28:37 +02:00
Serban Iorga 63a538a9bb Deduplicate pallet call structs used for indirect runtime calls (#1744)
* Small changes

* Define generic bridge pallets call structs

* polkadot-core SignedExtension simplifications

- we don't seem to need to pass the Call as a generic param
- we can use codec(skip) instead of implementing Encode and Decode

* Split BridgeHubRococo and BridgeHubWococo calls

* code review fixes
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky 03425b33ae Use TypedLaneId instead of LaneId (#1738)
* TypedLaneId -> LaneId

* fix benchmarks compilation
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky df1aed01c4 Updated db weights and some experiments (#1732)
* updated weights

* also fix off-by-one in benchmarks
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky 2c5e2f09eb New relayer rewards scheme integration (#1652)
* relayer rewards integration: initial commit

* added refund-relayer-extension to the millau runtime

* spelling

* spelling again

* new -> Default
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky 161d861d9b Signed extension to refund relayer at the target chain (#1657)
* add utlity pallet to the Millau runtime

* RefundRelayerForMessagesDeliveryFromParachain prototype

* done with RefundRelayerForMessagesDeliveryFromParachain::post_dispatch

* parse calls

* check batch for obsolete headers/messages

* fmt

* shorten generic arg names + add parachain id generic arg

* check lane_id

* impl all state read functions

* fix typos from review

* renamed extension + reference issue from TODO

* tests for pre-dispaytch

* renamed extension source file

* tests for post-dispatch

* abstract fee calculation

* clippy

* actually fix clippy

* Update bin/runtime-common/src/refund_relayer_extension.rs

Co-authored-by: Adrian Catangiu <adrian@parity.io>

* Update bin/runtime-common/src/refund_relayer_extension.rs

Co-authored-by: Adrian Catangiu <adrian@parity.io>

* Update bin/runtime-common/src/refund_relayer_extension.rs

Co-authored-by: Adrian Catangiu <adrian@parity.io>

* Update bin/runtime-common/src/refund_relayer_extension.rs

Co-authored-by: Adrian Catangiu <adrian@parity.io>

Co-authored-by: Adrian Catangiu <adrian@parity.io>
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky aeeb53343e DeliveryConfirmationPayments trait for paying relayer rewards at the source chain (#1653)
* DeliveryConfirmationPayments

* ref proper PR in TODO
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky 66dfd2dcae fix clippy (#1698) 2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky 9e92564c69 refund_pay_dispatch_fee removed (#1695) 2024-04-10 10:28:37 +02:00
Binston Sukhael Cardoza 3a8cb23103 Replace const parameters types (#1691)
* Replace const parameters

* fmt

* missed out Maxlocks
2024-04-10 10:28:37 +02:00