Svyatoslav Nikolsky
5f2ff7e06e
Wrap confirmation and finality transactions into batch_all in Millau -> RialtoParachain bridge ( #1898 )
...
* wrap confirmation and finality transactions into batch_all in RialtoParachain<>Millau
* review comments
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
bb078b8226
use complex transactions on RBH/WBH bridge hubs ( #1893 )
2024-04-10 10:28:37 +02:00
Serban Iorga
b2832575f6
Add tool for auto generating runtime code from metadata ( #1812 )
...
* Create CLI tool for generating indirect runtimes code
* Use the generated runtime for rialto parachain
* Avoid autogenerated files when executing cargo spellcheck
* Fix clippy warning
2024-04-10 10:28:37 +02:00
Serban Iorga
1ce1924815
Change some macro names ( #1837 )
...
Change the names of the macros used for generating indirect runtime
calls
Signed-off-by: Serban Iorga <serban@parity.io >
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
63308ac22b
bump bridge hub versions ( #1830 )
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
Serban Iorga
dd433a71d4
Update bundled runtime version for bridge hub r/wococo ( #1814 )
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
ec9cd8ddb0
Remove chain-specific dependencies from crates that will be used in Cumulus ( #1783 )
...
* leave-modules.sh
* remove bp-rialto dependency from bp-relayers
* update leave-modules.sh
* fix Cargo.toml of pallet-bridge-relayers
* update leave-modules.sh
* remove bp-rialto and millau-runtime frombridge-runtime-common Cargo.toml
* update leave-modules.sh
* remove chain dependencies from bridge-runtime-common crate
* fix tests
* cleanup script
* rename script
* kind of success message
* remove leave-modules.sh
* use TargetHeaderChainAdapter and SourceHeaderChainAdapter in our testnets
* update script
2024-04-10 10:28:37 +02:00
Serban Iorga
b4c338f77d
Set R/WococoBridgeHub bundle runtime version ( #1756 )
...
* Define SimpleRuntimeVersion
* Set R/WococoBridgeHub bundle runtime version
2024-04-10 10:28:37 +02:00
Serban Iorga
444dbe7173
Use indirect runtime calls for RialtoParachain ( #1753 )
...
* Use indirect runtime calls for RialtoParachain
* Code review fixes
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
Serban Iorga
4a10ccb118
Remove CliChain::KeyPair ( #1741 )
2024-04-10 10:28:37 +02:00
Serban Iorga
e47f1e42e0
Replace BATCH_CALL_SUPPORTED ( #1733 )
...
* Simplify submit_and_watch_signed_extrinsic
The way submit_and_watch_signed_extrinsic is used now, we can always
derive the SignParam from other params. If in the future we need more
customization possibilities, we can define a new method.
* Simplify submit_signed_extrinsic
* Send maybe_batch_tx as a parameter
Send `maybe_batch_tx` as a parameter to `submit_proof()`. This way we
can deduplicate the logic that submits the extrinsic for
`messages_source and `messages_target` and we can simplify the logic in
the race loop a bit.
* Define BatchProofTransaction
Deduplicate BatchConfirmationTransaction and BatchDeliveryTransaction by
replacing both of them with BatchProofTransaction
* Define ChainWithUtilityPallet and BatchCallBuilderConstructor
- Define `ChainWithUtilityPallet` in order to be able to associate the
batching functionality with chains
- Defining `BatchCallBuilderConstructor` in order to have a more reliable
way of checking whether an end of a messages pipeline supports batching
or no. `BatchCallBuilderConstructor::new_builder()` returns an
`Option<BatchCallBuilder>`.This is a bit safer because each time a caller
tries to start creating a batch call, it will call `new_builder()` and
will be required to handle the returned `Option`. Before we only had a
bool `BATCH_CALL_SUPPORTED` the caller could have forgetten to check.
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
be27bd5e97
Batch transactions in complex relays ( #1669 )
...
* batch transactions in message relay: API prototype
* get rid of Box<dyn BatchTransaction> and actually submit it
* test batch transactions
* message_lane_loop_works_with_batch_transactions
* removed logger
* BatchConfirmationTransaction + BatchDeliveryTransaction
* more prototyping
* fmt
* continue with batch calls
* impl BatchCallBuilder for ()
* BatchDeliveryTransaction impl
* BundledBatchCallBuilder
* proper impl of BundledBatchCallBuilder + use it in RialtoParachain -> Millau
* impl prove_header in OnDemandHeadersRelay
* impl OnDemandParachainsRelay::prove_header (needs extensive tests)
* added a couple of TODOs
* return Result<Option<BatchTx>> when asking for more headers
* prove headers when reauire_* is called && return proper headers from required_header_id
* split parachains::prove_header and test select_headers_to_prove
* more traces and leave TODOs
* use finality stream in SubstrateFinalitySource::prove_block_finality
* prove parachain head at block, selected by headers relay
* const ANCIENT_BLOCK_THRESHOLD
* TODO -> proof
* clippy and spelling
* BatchCallBuilder::build_batch_call() returns Result
* read first proof from two streams
* FailedToFindFinalityProof -> FinalityProofNotFound
* changed select_headers_to_prove to version from PR review
2024-04-10 10:28:37 +02:00
Serban Iorga
bde1629f86
Remove SOURCE_PARACHAIN_PARA_ID ( #1716 )
...
* Remove SOURCE_PARACHAIN_PARA_ID
Remove SubstrateParachainsPipeline::SOURCE_PARACHAIN_PARA_ID
* Avoid duplicate ChainBase and ParachainBase implementations
* Replace ChainShadow with UnderlyingChainProvider
2024-04-10 10:28:37 +02:00
Serban Iorga
e85b3fd998
Fix bridge hub rococo/wococo weights ( #1712 )
...
* Fix bridge hub rococo/wococo weights
* Remove SS58Prefix
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
7ab985718a
added version guards to RBH<>WBH GRANDPA finality (and complex) relay ( #1697 )
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
9c8f8a90e7
removed ESTIMATE_MESSAGE_FEE_METHOD ( #1696 )
2024-04-10 10:28:37 +02:00
Serban Iorga
7b74940539
Add RococoBridgeHub <> WococoBridgeHub full 2 way bridge ( #1663 )
...
* Add RococoBridgeHub <> WococoBridgeHub full 2 way bridge
* Use StorageMapKeyProvider instead of account_info_storage_key()
Avoid duplicating storage_map_final_key()
* clippy + leftovers
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
8c845602cf
Remove message fee + message send calls ( #1642 )
...
* remove message fee
* it is compiling!
* fixes + fmt
* more cleanup
* more cleanup
* restore MessageDeliveryAndDispatchPayment since we'll need relayer rewards
* started rational relayer removal
* more removal
* removed estimate fee subcommand
* remove DispatchFeePayment
* more removals
* removed conversion rates && some metrics
* - unneeded associated type
* - OutboundMessageFee
* fix benchmarks compilation
* fmt
* test + fix benchmarks
* fix send message
* clippy
2024-04-10 10:28:37 +02:00
Branislav Kontur
6c4728f1cc
Rococo/Wococo bridge hub relay integration ( #1565 )
...
* [BridgeHub] Added bridge-hub-rococo/wococo clients with bridge-hub-rococo-runtime
* [BridgeHub] Add init-bridge stuff for bridge-hub-rococo/wococo
* [BridgeHub] Add init-bridge stuff for bridge-hub-rococo/wococo
* [BridgeHub] Fixed Call-encoding for init-bridge rococo runtime wrapper
* Final index update to runtime calls
* [BridgeHub] Add init-bridge stuff for bridge-hub-rococo/wococo (otherside)
* Added runtime best_finalized functions + relay-headers init
* Renaming and change BridgeHubRococo/Wococo to Rococo/Wococo config
* [BridgeHub] Add relay-parachains (Rococo/Wococo)
* Missing stuff for adding xcm messaging to BridgeHub
* extracted parachain IDs to the primitives
* fix compilation
* Fixes
* Init setup for Rococo->Wococo messaging support
* Removed unused AccountId from `trait MessagesBridge`
* Removed unused trait SenderOrigin
* Small fixes
* Cleaning after master-merge
* Fixes
* Fixes
* Fixes
* Fixes
* Fixes:
- align WeightToFee with BridgeHubRococo runtime
- MAX_HEADER_SIZE
- updated TODOs
* Added relay_messages cfg for BridgeHubWococo -> BridgeHubRococo
Co-authored-by: Svyatoslav Nikolsky <svyatonik@gmail.com >
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
3e00c5c022
Statemine primitives ( #1625 )
...
* Statemine primitives
* ref issue in TODO
* fix TODO
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
a979340e49
refactor transaction sign scheme ( #1621 )
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
a3dc2d2748
Bump Substrate/Polkadot/Cumulus refs (aka Weights v1.5) ( #1597 )
...
* update Substrate + Polkadot + Cumulus refs
* Origin -> RuntimeOrigin
* weights v1.5
* update refs once again + `cargo test -p pallet-bridge-grandpa` works
* started work on `cargo test -p pallet-bridge-messages`
* cargo test -p pallet-bridge-relayers
* cargo test -p pallet-bridge-parachains
* cargo test -p millau-runtime
* cargo test -p bridge-runtime-common
* cargo test -p rialto-runtime
* cargo test -p rialto-parachain-runtime
* cargo test -p millau-bridge-node
* cargo test -p rialto-bridge-node
* cargo test -p rialto-parachain-collator
* cargo test -p messages-relay
* cargo test -p parachains-relay
* cargo test -p substrate-relay
* cargo test --all
* cargo check -p millau-runtime --locked --features runtime-benchmarks
* fix remaining test
* fmt
* try to allow clippy failure temporarily
* Revert "try to allow clippy failure temporarily"
This reverts commit d1b6593580f07e0dbeecb7ab0aa92cee98888ed3.
* use min_by
* Revert "use min_by"
This reverts commit 33042f49ed37e8dd0505370289e17f03bf1a56ee.
* Revert "Revert "use min_by""
This reverts commit 1d2204f0b14dc81e5650bb574dedb5fa78c7097d.
* trigger CI
* Revert "trigger CI"
This reverts commit 259d91b5606743bba9d043c69f07eac6c8700ef5.
* new day, new clippy warning
* more clippy issues
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
5ff36549f1
remove unnecessary consts ( #1586 )
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
f35b4f4897
Extract unsigned tx from the SignParam structure ( #1561 )
...
* change sign_transaction method
* clippy
* rustup update && clippy
* remove redudnant clone
2024-04-10 10:28:37 +02:00
Serban Iorga
e0b42dfae7
Follow-up on #1518 ( #1546 )
...
* Adjustments for the xcm messages sending logic
Signed-off-by: Serban Iorga <serban@parity.io >
* Deduplicate XCM destination
Signed-off-by: Serban Iorga <serban@parity.io >
* [send_message] small changes
Signed-off-by: Serban Iorga <serban@parity.io >
* Define CustomNetworkId
Right now we use some associations between Rialto, RialtoParachain and
Millau chains and chains defined in the NetworkId enum. But if we are
not carreful we might do mistakes like:
In Millau:
pub const ThisNetwork: NetworkId = Kusama;
pub const RialtoNetwork: NetworkId = Polkadot;
In Rialto:
pub const ThisNetwork: NetworkId = Kusama;
pub const MillauNetwork: NetworkId = Polkadot;
We're introducing CustomNetworkId to have a centralized mapping between
NetworkId chains and our custom chains.
Signed-off-by: Serban Iorga <serban@parity.io >
* Revert "Deduplicate XCM destination"
This reverts commit 3a0a950e1d7484e3ecac45f5c00b152f0485cd11.
Signed-off-by: Serban Iorga <serban@parity.io >
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
c131a5e3c8
Send messages using xcm pallet ( #1518 )
...
* send messages using xcm pallet
* XcmBridge && XcmBridgeAdapter + (untested) config in RialtoParachain
* impl encode_send_xcm for the rest
* remove duplicate code
* some fixes
* cleanup
* some more tests
* cleanup
* cleanup
* send Rialto -> Millau messages using bridge-messages pallet
* fmt
* some clippy fixes
* more clippy
2024-04-10 10:28:37 +02:00
Serban Iorga
a2dcb1b4ad
Move bridge definitions
...
Move bridge definitions to their specific folder.
Signed-off-by: Serban Iorga <serban@parity.io >
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
88e95388bb
Remove obsolete bridges ( #1491 )
...
* remove Rococo<>Wococo bridge mentions
* remove Kusama <> Polkadot bridge mentions
* fmt
* remove unneeded mocked runtimes && trait impls for obsolete bridges
* remove unused deps
2024-04-10 10:28:37 +02:00
Serban Iorga
46c0400f26
[CLI] Remove some macros
...
Refactor the implementations for the following CLI methods in order to
avoid using macros:
- init_bridge
- relay_headers
- relay_parachains
Signed-off-by: Serban Iorga <serban@parity.io >
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
852f629d78
Sync Westmint to Millau ( #1482 )
...
* sync Westmint to Millau
* "Westend parachains at Millau" dashboard
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
9988a7ac99
actually use RialtoParachainMessagesToMillauUpdateConversionRateCallBuilder ( #1456 )
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
2f9d8e33e0
Add missing parts to rialto parachain bridge (part 1) ( #1454 )
...
* add proper parameter names to bridge declaration
* associate RialtoParachain token with DOT
* RialtoParachain<>Millau message pallet owners
* fix compilation
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
b870fe74f8
Parachains pallet benchmarks ( #1436 )
...
* added parachains pallet benchmarks
* deduplicate insertion of bridged header
* pruning weight
* fixes
* fix compilation
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
542ebb5654
Complex RialtoParachain <> Millau relay ( #1405 )
...
* complex parachain relay
* fix spelling
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
5f2f61ced5
messages bridge between RialtoParachain and Millau ( #1218 )
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
03c2f06a27
Parachains finality relay ( #1199 )
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
d582061dff
Remove support for encoded-call messaging from relay and runtime integration code ( #1376 )
...
* remove support for encoded-call messaging
* continue cleanup
* continue cleanup
* continue cleanup
* more cleanpup
* more cleanup
* fmt
* continue cleanup
* spellcheck
* rename
* fix benchmarks
* mention encoded-calls-messaging tag
* fixing deployments
* fix messages generation
* fmt
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
b3c8852bcf
FinalityEngine in substrate relay ( #1374 )
...
* introduce FinalityEngine in relay code
* add FinalityEngine to relay
* spelling
* fix test compilation
* Update relays/lib-substrate-relay/src/finality/source.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
ba2b0b086c
Mortal conversion rate updater transactions ( #1257 )
...
* merge all similar update_conversion_rate functions
* stall timeout in conversion rate update loop
* fmt
* fix
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
efa3e97210
Encode and estimate Rococo/Wococo/Kusama/Polkadot messages ( #1322 )
...
* encode and estimate Rococo/Wococo/Kusama/Polkadot messages
* allow send-message for non-bundled chains
* weight -> dispatch-weight
* fmt
* fix spelling
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
214febc46a
expose fee multiplier metrics in messages relay ( #1312 )
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
d4e692e429
increase relay balance guard limits for Polkadot<>Kusama bridge ( #1308 )
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
c0f6509d40
Fix ss58 prefixes of Polkadot, Kusama and Westend used by relay ( #1298 )
...
* fix ss58 prefixes of Polkadot, Kusama and Westend
* fmt
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
c4837d2368
do not start spec_version guard when version mode is set to auto ( #1278 )
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
00f68e7722
Move benchmarks from Rialto to Millau ( #1277 )
...
* move brnchmarks from Rialto to Millau
* fix limits test
2024-04-10 10:28:37 +02:00
fewensa
3aff81a707
Change submit transaction spec_version and transaction_version query from chain ( #1248 )
...
* The `spec_version` and `transaction_version` query from chain
* fix compile
* Lint
* Custom spec_version and transaction_version
* runtime version params struct opt
* runtime version cli
* cli params
* Add missing types defined
* fix compile
* debug cli
* clippy
* clippy
* Query spec_version and transaction_version same times
* Fix vars
* Wrap option
* Wrap option
* Try fix ci
* Change follow suggestions
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
4cdd959057
Refactor message relay helpers ( #1234 )
...
* refactor message relay helpers
* single standalone_metrics function
* fixed tests
* clippy + fmt
* removed commented code
* add calls tracing
* fix spelling
* cargo fmt
* -commented code
* fix build again
* post-merge build fix
* clippy + fmt
2024-04-10 10:28:37 +02:00
Svyatoslav Nikolsky
e675b13042
Refactor finality relay helpers ( #1220 )
...
* refactor finality relay helper definitions
* add missing doc
* removed commented code
* fmt
* disable rustfmt for macro
* move best_finalized method const to relay chain def
2024-04-10 10:28:37 +02:00