mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-30 16:21:02 +00:00
[testnet] Remove Wococo stuff from BridgeHubRococo/AssetHubRococo (#2300)
Rococo<>Wococo bridge is replaced by Rococo<Westend bridge, so this PR removes unneeded code. - [x] update bridges subtree after https://github.com/paritytech/parity-bridges-common/pull/2692 --------- Co-authored-by: command-bot <> Co-authored-by: Svyatoslav Nikolsky <svyatonik@gmail.com>
This commit is contained in:
Generated
-66
@@ -921,10 +921,8 @@ dependencies = [
|
|||||||
"assets-common",
|
"assets-common",
|
||||||
"bp-asset-hub-rococo",
|
"bp-asset-hub-rococo",
|
||||||
"bp-asset-hub-westend",
|
"bp-asset-hub-westend",
|
||||||
"bp-asset-hub-wococo",
|
|
||||||
"bp-bridge-hub-rococo",
|
"bp-bridge-hub-rococo",
|
||||||
"bp-bridge-hub-westend",
|
"bp-bridge-hub-westend",
|
||||||
"bp-bridge-hub-wococo",
|
|
||||||
"cumulus-pallet-aura-ext",
|
"cumulus-pallet-aura-ext",
|
||||||
"cumulus-pallet-dmp-queue",
|
"cumulus-pallet-dmp-queue",
|
||||||
"cumulus-pallet-parachain-system",
|
"cumulus-pallet-parachain-system",
|
||||||
@@ -1690,27 +1688,6 @@ dependencies = [
|
|||||||
"thiserror",
|
"thiserror",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "bp-asset-hub-kusama"
|
|
||||||
version = "0.1.0"
|
|
||||||
dependencies = [
|
|
||||||
"bp-xcm-bridge-hub-router",
|
|
||||||
"frame-support",
|
|
||||||
"parity-scale-codec",
|
|
||||||
"scale-info",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "bp-asset-hub-polkadot"
|
|
||||||
version = "0.1.0"
|
|
||||||
dependencies = [
|
|
||||||
"bp-xcm-bridge-hub-router",
|
|
||||||
"frame-support",
|
|
||||||
"parity-scale-codec",
|
|
||||||
"scale-info",
|
|
||||||
"sp-runtime",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "bp-asset-hub-rococo"
|
name = "bp-asset-hub-rococo"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
@@ -1731,16 +1708,6 @@ dependencies = [
|
|||||||
"scale-info",
|
"scale-info",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "bp-asset-hub-wococo"
|
|
||||||
version = "0.1.0"
|
|
||||||
dependencies = [
|
|
||||||
"bp-xcm-bridge-hub-router",
|
|
||||||
"frame-support",
|
|
||||||
"parity-scale-codec",
|
|
||||||
"scale-info",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "bp-bridge-hub-cumulus"
|
name = "bp-bridge-hub-cumulus"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
@@ -1807,19 +1774,6 @@ dependencies = [
|
|||||||
"sp-std 8.0.0",
|
"sp-std 8.0.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "bp-bridge-hub-wococo"
|
|
||||||
version = "0.1.0"
|
|
||||||
dependencies = [
|
|
||||||
"bp-bridge-hub-cumulus",
|
|
||||||
"bp-messages",
|
|
||||||
"bp-runtime",
|
|
||||||
"frame-support",
|
|
||||||
"sp-api",
|
|
||||||
"sp-runtime",
|
|
||||||
"sp-std 8.0.0",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "bp-header-chain"
|
name = "bp-header-chain"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
@@ -2011,19 +1965,6 @@ dependencies = [
|
|||||||
"sp-std 8.0.0",
|
"sp-std 8.0.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "bp-wococo"
|
|
||||||
version = "0.1.0"
|
|
||||||
dependencies = [
|
|
||||||
"bp-header-chain",
|
|
||||||
"bp-polkadot-core",
|
|
||||||
"bp-rococo",
|
|
||||||
"bp-runtime",
|
|
||||||
"frame-support",
|
|
||||||
"sp-api",
|
|
||||||
"sp-std 8.0.0",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "bp-xcm-bridge-hub-router"
|
name = "bp-xcm-bridge-hub-router"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
@@ -2205,10 +2146,8 @@ version = "0.1.0"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"bp-asset-hub-rococo",
|
"bp-asset-hub-rococo",
|
||||||
"bp-asset-hub-westend",
|
"bp-asset-hub-westend",
|
||||||
"bp-asset-hub-wococo",
|
|
||||||
"bp-bridge-hub-rococo",
|
"bp-bridge-hub-rococo",
|
||||||
"bp-bridge-hub-westend",
|
"bp-bridge-hub-westend",
|
||||||
"bp-bridge-hub-wococo",
|
|
||||||
"bp-header-chain",
|
"bp-header-chain",
|
||||||
"bp-messages",
|
"bp-messages",
|
||||||
"bp-parachains",
|
"bp-parachains",
|
||||||
@@ -2217,7 +2156,6 @@ dependencies = [
|
|||||||
"bp-rococo",
|
"bp-rococo",
|
||||||
"bp-runtime",
|
"bp-runtime",
|
||||||
"bp-westend",
|
"bp-westend",
|
||||||
"bp-wococo",
|
|
||||||
"bridge-hub-test-utils",
|
"bridge-hub-test-utils",
|
||||||
"bridge-runtime-common",
|
"bridge-runtime-common",
|
||||||
"cumulus-pallet-aura-ext",
|
"cumulus-pallet-aura-ext",
|
||||||
@@ -2291,8 +2229,6 @@ name = "bridge-hub-test-utils"
|
|||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"asset-test-utils",
|
"asset-test-utils",
|
||||||
"bp-bridge-hub-rococo",
|
|
||||||
"bp-bridge-hub-wococo",
|
|
||||||
"bp-header-chain",
|
"bp-header-chain",
|
||||||
"bp-messages",
|
"bp-messages",
|
||||||
"bp-parachains",
|
"bp-parachains",
|
||||||
@@ -9661,7 +9597,6 @@ dependencies = [
|
|||||||
"pallet-balances",
|
"pallet-balances",
|
||||||
"parity-scale-codec",
|
"parity-scale-codec",
|
||||||
"scale-info",
|
"scale-info",
|
||||||
"sp-core",
|
|
||||||
"sp-io",
|
"sp-io",
|
||||||
"sp-runtime",
|
"sp-runtime",
|
||||||
"sp-std 8.0.0",
|
"sp-std 8.0.0",
|
||||||
@@ -9706,7 +9641,6 @@ dependencies = [
|
|||||||
"parity-scale-codec",
|
"parity-scale-codec",
|
||||||
"scale-info",
|
"scale-info",
|
||||||
"sp-arithmetic",
|
"sp-arithmetic",
|
||||||
"sp-core",
|
|
||||||
"sp-io",
|
"sp-io",
|
||||||
"sp-runtime",
|
"sp-runtime",
|
||||||
"sp-std 8.0.0",
|
"sp-std 8.0.0",
|
||||||
|
|||||||
@@ -14,23 +14,18 @@ members = [
|
|||||||
"bridges/modules/parachains",
|
"bridges/modules/parachains",
|
||||||
"bridges/modules/relayers",
|
"bridges/modules/relayers",
|
||||||
"bridges/modules/xcm-bridge-hub-router",
|
"bridges/modules/xcm-bridge-hub-router",
|
||||||
"bridges/primitives/chain-asset-hub-kusama",
|
|
||||||
"bridges/primitives/chain-asset-hub-polkadot",
|
|
||||||
"bridges/primitives/chain-asset-hub-rococo",
|
"bridges/primitives/chain-asset-hub-rococo",
|
||||||
"bridges/primitives/chain-asset-hub-westend",
|
"bridges/primitives/chain-asset-hub-westend",
|
||||||
"bridges/primitives/chain-asset-hub-wococo",
|
|
||||||
"bridges/primitives/chain-bridge-hub-cumulus",
|
"bridges/primitives/chain-bridge-hub-cumulus",
|
||||||
"bridges/primitives/chain-bridge-hub-kusama",
|
"bridges/primitives/chain-bridge-hub-kusama",
|
||||||
"bridges/primitives/chain-bridge-hub-polkadot",
|
"bridges/primitives/chain-bridge-hub-polkadot",
|
||||||
"bridges/primitives/chain-bridge-hub-rococo",
|
"bridges/primitives/chain-bridge-hub-rococo",
|
||||||
"bridges/primitives/chain-bridge-hub-westend",
|
"bridges/primitives/chain-bridge-hub-westend",
|
||||||
"bridges/primitives/chain-bridge-hub-wococo",
|
|
||||||
"bridges/primitives/chain-kusama",
|
"bridges/primitives/chain-kusama",
|
||||||
"bridges/primitives/chain-polkadot",
|
"bridges/primitives/chain-polkadot",
|
||||||
"bridges/primitives/chain-polkadot-bulletin",
|
"bridges/primitives/chain-polkadot-bulletin",
|
||||||
"bridges/primitives/chain-rococo",
|
"bridges/primitives/chain-rococo",
|
||||||
"bridges/primitives/chain-westend",
|
"bridges/primitives/chain-westend",
|
||||||
"bridges/primitives/chain-wococo",
|
|
||||||
"bridges/primitives/header-chain",
|
"bridges/primitives/header-chain",
|
||||||
"bridges/primitives/messages",
|
"bridges/primitives/messages",
|
||||||
"bridges/primitives/parachains",
|
"bridges/primitives/parachains",
|
||||||
|
|||||||
+17
-158
@@ -68,7 +68,7 @@ For example, consider the case below where we want to bridge two Substrate based
|
|||||||
```
|
```
|
||||||
+---------------+ +---------------+
|
+---------------+ +---------------+
|
||||||
| | | |
|
| | | |
|
||||||
| Rialto | | Millau |
|
| Rococo | | Westend |
|
||||||
| | | |
|
| | | |
|
||||||
+-------+-------+ +-------+-------+
|
+-------+-------+ +-------+-------+
|
||||||
^ ^
|
^ ^
|
||||||
@@ -79,9 +79,9 @@ For example, consider the case below where we want to bridge two Substrate based
|
|||||||
+---------------+
|
+---------------+
|
||||||
```
|
```
|
||||||
|
|
||||||
The Millau chain must be able to accept Rialto headers and verify their integrity. It does this by using a runtime
|
The Rococo chain must be able to accept Westend headers and verify their integrity. It does this by using a runtime
|
||||||
module designed to track GRANDPA finality. Since two blockchains can't interact directly they need an external service,
|
module designed to track GRANDPA finality. Since two blockchains can't interact directly they need an external service,
|
||||||
called a relayer, to communicate. The relayer will subscribe to new Rialto headers via RPC and submit them to the Millau
|
called a relayer, to communicate. The relayer will subscribe to new Rococo headers via RPC and submit them to the Westend
|
||||||
chain for verification.
|
chain for verification.
|
||||||
|
|
||||||
Take a look at [Bridge High Level Documentation](./docs/high-level-overview.md) for more in-depth description of the
|
Take a look at [Bridge High Level Documentation](./docs/high-level-overview.md) for more in-depth description of the
|
||||||
@@ -94,164 +94,23 @@ Here's an overview of how the project is laid out. The main bits are the `bin`,
|
|||||||
messages between chains.
|
messages between chains.
|
||||||
|
|
||||||
```
|
```
|
||||||
├── bin // Node and Runtime for the various Substrate chains
|
├── modules // Substrate Runtime Modules (a.k.a Pallets)
|
||||||
│ └── ...
|
│ ├── beefy // On-Chain BEEFY Light Client (in progress)
|
||||||
├── deployments // Useful tools for deploying test networks
|
│ ├── grandpa // On-Chain GRANDPA Light Client
|
||||||
|
│ ├── messages // Cross Chain Message Passing
|
||||||
|
│ ├── parachains // On-Chain Parachains Light Client
|
||||||
|
│ ├── relayers // Relayer Rewards Registry
|
||||||
|
│ ├── xcm-bridge-hub // Multiple Dynamic Bridges Support
|
||||||
|
│ ├── xcm-bridge-hub-router // XCM Router that may be used to Connect to XCM Bridge Hub
|
||||||
|
├── primitives // Code shared between modules, runtimes, and relays
|
||||||
│ └── ...
|
│ └── ...
|
||||||
├── modules // Substrate Runtime Modules (a.k.a Pallets)
|
├── relays // Application for sending finality proofs and messages between chains
|
||||||
│ ├── beefy // On-Chain BEEFY Light Client (in progress)
|
|
||||||
│ ├── grandpa // On-Chain GRANDPA Light Client
|
|
||||||
│ ├── messages // Cross Chain Message Passing
|
|
||||||
│ ├── parachains // On-Chain Parachains Light Client
|
|
||||||
│ ├── relayers // Relayer rewards registry
|
|
||||||
│ └── ...
|
│ └── ...
|
||||||
├── primitives // Code shared between modules, runtimes, and relays
|
└── scripts // Useful development and maintenance scripts
|
||||||
│ └── ...
|
|
||||||
├── relays // Application for sending finality proofs and messages between chains
|
|
||||||
│ └── ...
|
|
||||||
└── scripts // Useful development and maintenance scripts
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Running the Bridge
|
## Running the Bridge
|
||||||
|
|
||||||
To run the Bridge you need to be able to connect the bridge relay node to the RPC interface of nodes on each side of the
|
Apart from live Rococo <> Westend bridge, you may spin up local networks and test see how it works locally. More
|
||||||
bridge (source and target chain).
|
details may be found in
|
||||||
|
[this document](https://github.com/paritytech/polkadot-sdk/tree/master//cumulus/parachains/runtimes/bridge-hubs/README.md).
|
||||||
There are 2 ways to run the bridge, described below:
|
|
||||||
|
|
||||||
- building & running from source: with this option, you'll be able to run the bridge between two standalone chains that
|
|
||||||
are running GRANDPA finality gadget to achieve finality;
|
|
||||||
|
|
||||||
- running a Docker Compose setup: this is a recommended option, where you'll see bridges with parachains, complex relays
|
|
||||||
and more.
|
|
||||||
|
|
||||||
### Using the Source
|
|
||||||
|
|
||||||
First you'll need to build the bridge nodes and relay. This can be done as follows:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# In `parity-bridges-common` folder
|
|
||||||
cargo build -p rialto-bridge-node
|
|
||||||
cargo build -p millau-bridge-node
|
|
||||||
cargo build -p substrate-relay
|
|
||||||
```
|
|
||||||
|
|
||||||
### Running a Dev network
|
|
||||||
|
|
||||||
We will launch a dev network to demonstrate how to relay a message between two Substrate based chains (named Rialto and
|
|
||||||
Millau).
|
|
||||||
|
|
||||||
To do this we will need two nodes, two relayers which will relay headers, and two relayers which will relay messages.
|
|
||||||
|
|
||||||
#### Running from local scripts
|
|
||||||
|
|
||||||
To run a simple dev network you can use the scripts located in the [`deployments/local-scripts`
|
|
||||||
folder](./deployments/local-scripts).
|
|
||||||
|
|
||||||
First, we must run the two Substrate nodes.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# In `parity-bridges-common` folder
|
|
||||||
./deployments/local-scripts/run-rialto-node.sh
|
|
||||||
./deployments/local-scripts/run-millau-node.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
After the nodes are up we can run the header relayers.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
./deployments/local-scripts/relay-millau-to-rialto.sh
|
|
||||||
./deployments/local-scripts/relay-rialto-to-millau.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
At this point you should see the relayer submitting headers from the Millau Substrate chain to the Rialto Substrate
|
|
||||||
chain.
|
|
||||||
|
|
||||||
```
|
|
||||||
# Header Relayer Logs
|
|
||||||
[Millau_to_Rialto_Sync] [date] DEBUG bridge Going to submit finality proof of Millau header #147 to Rialto
|
|
||||||
[...] [date] INFO bridge Synced 147 of 147 headers
|
|
||||||
[...] [date] DEBUG bridge Going to submit finality proof of Millau header #148 to Rialto
|
|
||||||
[...] [date] INFO bridge Synced 148 of 149 headers
|
|
||||||
```
|
|
||||||
|
|
||||||
Finally, we can run the message relayers.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
./deployments/local-scripts/relay-messages-millau-to-rialto.sh
|
|
||||||
./deployments/local-scripts/relay-messages-rialto-to-millau.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
You will also see the message lane relayers listening for new messages.
|
|
||||||
|
|
||||||
```
|
|
||||||
# Message Relayer Logs
|
|
||||||
[Millau_to_Rialto_MessageLane_00000000] [date] DEBUG bridge Asking Millau::ReceivingConfirmationsDelivery about best message nonces
|
|
||||||
[...] [date] INFO bridge Synced Some(2) of Some(3) nonces in Millau::MessagesDelivery -> Rialto::MessagesDelivery race
|
|
||||||
[...] [date] DEBUG bridge Asking Millau::MessagesDelivery about message nonces
|
|
||||||
[...] [date] DEBUG bridge Received best nonces from Millau::ReceivingConfirmationsDelivery: TargetClientNonces {
|
|
||||||
latest_nonce: 0, nonces_data: () }
|
|
||||||
[...] [date] DEBUG bridge Asking Millau::ReceivingConfirmationsDelivery about finalized message nonces
|
|
||||||
[...] [date] DEBUG bridge Received finalized nonces from Millau::ReceivingConfirmationsDelivery: TargetClientNonces {
|
|
||||||
latest_nonce: 0, nonces_data: () }
|
|
||||||
[...] [date] DEBUG bridge Received nonces from Millau::MessagesDelivery: SourceClientNonces { new_nonces: {}, confirmed_nonce: Some(0) }
|
|
||||||
[...] [date] DEBUG bridge Asking Millau node about its state
|
|
||||||
[...] [date] DEBUG bridge Received state from Millau node: ClientState { best_self: HeaderId(1593, 0xacac***), best_finalized_self:
|
|
||||||
HeaderId(1590, 0x0be81d...), best_finalized_peer_at_best_self: HeaderId(0, 0xdcdd89...) }
|
|
||||||
```
|
|
||||||
|
|
||||||
To send a message see the ["How to send a message" section](#how-to-send-a-message).
|
|
||||||
|
|
||||||
### How to send a message
|
|
||||||
|
|
||||||
In this section we'll show you how to quickly send a bridge message. The message is just an encoded XCM `Trap(43)`
|
|
||||||
message.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# In `parity-bridges-common` folder
|
|
||||||
./scripts/send-message-from-millau-rialto.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
After sending a message you will see the following logs showing a message was successfully sent:
|
|
||||||
|
|
||||||
```
|
|
||||||
INFO bridge Sending message to Rialto. Size: 11.
|
|
||||||
TRACE bridge Sent transaction to Millau node: 0x5e68...
|
|
||||||
```
|
|
||||||
|
|
||||||
And at the Rialto node logs you'll something like this:
|
|
||||||
|
|
||||||
```
|
|
||||||
... runtime::bridge-messages: Received messages: total=1, valid=1. Weight used: Weight(ref_time: 1215065371, proof_size:
|
|
||||||
48559)/Weight(ref_time: 1215065371, proof_size: 54703).
|
|
||||||
```
|
|
||||||
|
|
||||||
It means that the message has been delivered and dispatched. Message may be dispatched with an error, though - the goal
|
|
||||||
of our test bridge is to ensure that messages are successfully delivered and all involved components are working.
|
|
||||||
|
|
||||||
## Full Network Docker Compose Setup
|
|
||||||
|
|
||||||
For a more sophisticated deployment which includes bidirectional header sync, message passing, monitoring dashboards,
|
|
||||||
etc. see the [Deployments README](./deployments/README.md).
|
|
||||||
|
|
||||||
You should note that you can find images for all the bridge components published on [Docker
|
|
||||||
Hub](https://hub.docker.com/u/paritytech).
|
|
||||||
|
|
||||||
To run a Rialto node for example, you can use the following command:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
docker run -p 30333:30333 -p 9933:9933 -p 9944:9944 \
|
|
||||||
-it paritytech/rialto-bridge-node --dev --tmp \
|
|
||||||
--rpc-cors=all --unsafe-rpc-external
|
|
||||||
```
|
|
||||||
|
|
||||||
## Community
|
|
||||||
|
|
||||||
Main hangout for the community is [Element](https://element.io/) (formerly Riot). Element is a chat server like, for
|
|
||||||
example, Discord. Most discussions around Polkadot and Substrate happen in various Element "rooms" (channels). So,
|
|
||||||
joining Element might be a good idea, anyway.
|
|
||||||
|
|
||||||
If you are interested in information exchange and development of Polkadot related bridges please feel free to join the
|
|
||||||
[Polkadot Bridges](https://app.element.io/#/room/#bridges:web3.foundation) Element channel.
|
|
||||||
|
|
||||||
The [Substrate Technical](https://app.element.io/#/room/#substrate-technical:matrix.org) Element channel is most suited
|
|
||||||
for discussions regarding Substrate itself.
|
|
||||||
|
|||||||
@@ -22,7 +22,6 @@ use crate::messages_call_ext::MessagesCallSubType;
|
|||||||
use pallet_bridge_grandpa::CallSubType as GrandpaCallSubType;
|
use pallet_bridge_grandpa::CallSubType as GrandpaCallSubType;
|
||||||
use pallet_bridge_parachains::CallSubType as ParachainsCallSubtype;
|
use pallet_bridge_parachains::CallSubType as ParachainsCallSubtype;
|
||||||
use sp_runtime::transaction_validity::TransactionValidity;
|
use sp_runtime::transaction_validity::TransactionValidity;
|
||||||
use xcm::v3::NetworkId;
|
|
||||||
|
|
||||||
pub mod messages;
|
pub mod messages;
|
||||||
pub mod messages_api;
|
pub mod messages_api;
|
||||||
@@ -92,8 +91,8 @@ where
|
|||||||
/// ```nocompile
|
/// ```nocompile
|
||||||
/// generate_bridge_reject_obsolete_headers_and_messages!{
|
/// generate_bridge_reject_obsolete_headers_and_messages!{
|
||||||
/// Call, AccountId
|
/// Call, AccountId
|
||||||
/// BridgeRialtoGrandpa, BridgeWestendGrandpa,
|
/// BridgeRococoGrandpa, BridgeRococoMessages,
|
||||||
/// BridgeRialtoParachains
|
/// BridgeRococoParachains
|
||||||
/// }
|
/// }
|
||||||
/// ```
|
/// ```
|
||||||
///
|
///
|
||||||
@@ -147,42 +146,6 @@ macro_rules! generate_bridge_reject_obsolete_headers_and_messages {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
/// A mapping over `NetworkId`.
|
|
||||||
/// Since `NetworkId` doesn't include `Millau`, `Rialto` and `RialtoParachain`, we create some
|
|
||||||
/// synthetic associations between these chains and `NetworkId` chains.
|
|
||||||
pub enum CustomNetworkId {
|
|
||||||
/// The Millau network ID, associated with Kusama.
|
|
||||||
Millau,
|
|
||||||
/// The Rialto network ID, associated with Polkadot.
|
|
||||||
Rialto,
|
|
||||||
/// The RialtoParachain network ID, associated with Westend.
|
|
||||||
RialtoParachain,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl TryFrom<bp_runtime::ChainId> for CustomNetworkId {
|
|
||||||
type Error = ();
|
|
||||||
|
|
||||||
fn try_from(chain: bp_runtime::ChainId) -> Result<Self, Self::Error> {
|
|
||||||
Ok(match chain {
|
|
||||||
bp_runtime::MILLAU_CHAIN_ID => Self::Millau,
|
|
||||||
bp_runtime::RIALTO_CHAIN_ID => Self::Rialto,
|
|
||||||
bp_runtime::RIALTO_PARACHAIN_CHAIN_ID => Self::RialtoParachain,
|
|
||||||
_ => return Err(()),
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl CustomNetworkId {
|
|
||||||
/// Converts self to XCM' network id.
|
|
||||||
pub const fn as_network_id(&self) -> NetworkId {
|
|
||||||
match *self {
|
|
||||||
CustomNetworkId::Millau => NetworkId::Kusama,
|
|
||||||
CustomNetworkId::Rialto => NetworkId::Polkadot,
|
|
||||||
CustomNetworkId::RialtoParachain => NetworkId::Westend,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use crate::BridgeRuntimeFilterCall;
|
use crate::BridgeRuntimeFilterCall;
|
||||||
|
|||||||
@@ -14,12 +14,7 @@
|
|||||||
// You should have received a copy of the GNU General Public License
|
// You should have received a copy of the GNU General Public License
|
||||||
// along with Parity Bridges Common. If not, see <http://www.gnu.org/licenses/>.
|
// along with Parity Bridges Common. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
//! A mock runtime for testing different stuff in the crate. We've been using Millau
|
//! A mock runtime for testing different stuff in the crate.
|
||||||
//! runtime for that before, but it has two drawbacks:
|
|
||||||
//!
|
|
||||||
//! - circular dependencies between this crate and Millau runtime;
|
|
||||||
//!
|
|
||||||
//! - we can't use (e.g. as git subtree or by copying) this crate in repo without Millau.
|
|
||||||
|
|
||||||
#![cfg(test)]
|
#![cfg(test)]
|
||||||
|
|
||||||
@@ -44,13 +39,13 @@ use bp_runtime::{
|
|||||||
};
|
};
|
||||||
use codec::{Decode, Encode};
|
use codec::{Decode, Encode};
|
||||||
use frame_support::{
|
use frame_support::{
|
||||||
parameter_types,
|
derive_impl, parameter_types,
|
||||||
weights::{ConstantMultiplier, IdentityFee, RuntimeDbWeight, Weight},
|
weights::{ConstantMultiplier, IdentityFee, RuntimeDbWeight, Weight},
|
||||||
};
|
};
|
||||||
use pallet_transaction_payment::Multiplier;
|
use pallet_transaction_payment::Multiplier;
|
||||||
use sp_runtime::{
|
use sp_runtime::{
|
||||||
testing::H256,
|
testing::H256,
|
||||||
traits::{BlakeTwo256, ConstU32, ConstU64, ConstU8, IdentityLookup},
|
traits::{BlakeTwo256, ConstU32, ConstU64, ConstU8},
|
||||||
FixedPointNumber, Perquintill,
|
FixedPointNumber, Perquintill,
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -146,30 +141,14 @@ parameter_types! {
|
|||||||
pub const ReserveId: [u8; 8] = *b"brdgrlrs";
|
pub const ReserveId: [u8; 8] = *b"brdgrlrs";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive_impl(frame_system::config_preludes::TestDefaultConfig as frame_system::DefaultConfig)]
|
||||||
impl frame_system::Config for TestRuntime {
|
impl frame_system::Config for TestRuntime {
|
||||||
type RuntimeOrigin = RuntimeOrigin;
|
|
||||||
type Nonce = u64;
|
|
||||||
type RuntimeCall = RuntimeCall;
|
|
||||||
type Hash = ThisChainHash;
|
type Hash = ThisChainHash;
|
||||||
type Hashing = ThisChainHasher;
|
type Hashing = ThisChainHasher;
|
||||||
type AccountId = ThisChainAccountId;
|
type AccountId = ThisChainAccountId;
|
||||||
type Lookup = IdentityLookup<Self::AccountId>;
|
|
||||||
type Block = ThisChainBlock;
|
type Block = ThisChainBlock;
|
||||||
type RuntimeEvent = RuntimeEvent;
|
|
||||||
type BlockHashCount = ConstU32<250>;
|
|
||||||
type Version = ();
|
|
||||||
type PalletInfo = PalletInfo;
|
|
||||||
type AccountData = pallet_balances::AccountData<ThisChainBalance>;
|
type AccountData = pallet_balances::AccountData<ThisChainBalance>;
|
||||||
type OnNewAccount = ();
|
type BlockHashCount = ConstU32<250>;
|
||||||
type OnKilledAccount = ();
|
|
||||||
type BaseCallFilter = frame_support::traits::Everything;
|
|
||||||
type SystemWeightInfo = ();
|
|
||||||
type BlockWeights = ();
|
|
||||||
type BlockLength = ();
|
|
||||||
type DbWeight = DbWeight;
|
|
||||||
type SS58Prefix = ();
|
|
||||||
type OnSetCode = ();
|
|
||||||
type MaxConsumers = frame_support::traits::ConstU32<16>;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
impl pallet_utility::Config for TestRuntime {
|
impl pallet_utility::Config for TestRuntime {
|
||||||
@@ -179,21 +158,10 @@ impl pallet_utility::Config for TestRuntime {
|
|||||||
type WeightInfo = ();
|
type WeightInfo = ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive_impl(pallet_balances::config_preludes::TestDefaultConfig as pallet_balances::DefaultConfig)]
|
||||||
impl pallet_balances::Config for TestRuntime {
|
impl pallet_balances::Config for TestRuntime {
|
||||||
type Balance = ThisChainBalance;
|
|
||||||
type RuntimeEvent = RuntimeEvent;
|
|
||||||
type DustRemoval = ();
|
|
||||||
type ExistentialDeposit = ExistentialDeposit;
|
|
||||||
type AccountStore = System;
|
|
||||||
type WeightInfo = ();
|
|
||||||
type MaxLocks = ConstU32<50>;
|
|
||||||
type MaxReserves = ConstU32<50>;
|
|
||||||
type ReserveIdentifier = [u8; 8];
|
type ReserveIdentifier = [u8; 8];
|
||||||
type RuntimeHoldReason = RuntimeHoldReason;
|
type AccountStore = System;
|
||||||
type RuntimeFreezeReason = RuntimeFreezeReason;
|
|
||||||
type FreezeIdentifier = ();
|
|
||||||
type MaxHolds = ConstU32<0>;
|
|
||||||
type MaxFreezes = ConstU32<0>;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
impl pallet_transaction_payment::Config for TestRuntime {
|
impl pallet_transaction_payment::Config for TestRuntime {
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ use frame_support::traits::Get;
|
|||||||
use sp_runtime::transaction_validity::TransactionPriority;
|
use sp_runtime::transaction_validity::TransactionPriority;
|
||||||
|
|
||||||
// reexport everything from `integrity_tests` module
|
// reexport everything from `integrity_tests` module
|
||||||
|
#[allow(unused_imports)]
|
||||||
pub use integrity_tests::*;
|
pub use integrity_tests::*;
|
||||||
|
|
||||||
/// Compute priority boost for message delivery transaction that delivers
|
/// Compute priority boost for message delivery transaction that delivers
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# High-Level Bridge Documentation
|
# High-Level Bridge Documentation
|
||||||
|
|
||||||
This document gives a brief, abstract description of main components that may be found in this repository. If you want
|
This document gives a brief, abstract description of main components that may be found in this repository. If you want
|
||||||
to see how we're using them to build Rococo <> Wococo (Kusama <> Polkadot) bridge, please refer to the [Polkadot <>
|
to see how we're using them to build Rococo <> Westend (Kusama <> Polkadot) bridge, please refer to the [Polkadot <>
|
||||||
Kusama Bridge](./polkadot-kusama-bridge-overview.md).
|
Kusama Bridge](./polkadot-kusama-bridge-overview.md).
|
||||||
|
|
||||||
## Purpose
|
## Purpose
|
||||||
|
|||||||
@@ -20,16 +20,9 @@
|
|||||||
use bp_header_chain::ChainWithGrandpa;
|
use bp_header_chain::ChainWithGrandpa;
|
||||||
use bp_runtime::Chain;
|
use bp_runtime::Chain;
|
||||||
use frame_support::{
|
use frame_support::{
|
||||||
construct_runtime, parameter_types,
|
construct_runtime, derive_impl, parameter_types, traits::Hooks, weights::Weight,
|
||||||
traits::{ConstU32, ConstU64, Hooks},
|
|
||||||
weights::Weight,
|
|
||||||
};
|
};
|
||||||
use sp_core::sr25519::Signature;
|
use sp_core::sr25519::Signature;
|
||||||
use sp_runtime::{
|
|
||||||
testing::H256,
|
|
||||||
traits::{BlakeTwo256, IdentityLookup},
|
|
||||||
Perbill,
|
|
||||||
};
|
|
||||||
|
|
||||||
pub type AccountId = u64;
|
pub type AccountId = u64;
|
||||||
pub type TestHeader = sp_runtime::testing::Header;
|
pub type TestHeader = sp_runtime::testing::Header;
|
||||||
@@ -49,43 +42,14 @@ construct_runtime! {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
parameter_types! {
|
#[derive_impl(frame_system::config_preludes::TestDefaultConfig as frame_system::DefaultConfig)]
|
||||||
pub const MaximumBlockWeight: Weight = Weight::from_parts(1024, 0);
|
|
||||||
pub const MaximumBlockLength: u32 = 2 * 1024;
|
|
||||||
pub const AvailableBlockRatio: Perbill = Perbill::one();
|
|
||||||
}
|
|
||||||
|
|
||||||
impl frame_system::Config for TestRuntime {
|
impl frame_system::Config for TestRuntime {
|
||||||
type RuntimeOrigin = RuntimeOrigin;
|
|
||||||
type Nonce = u64;
|
|
||||||
type RuntimeCall = RuntimeCall;
|
|
||||||
type Hash = H256;
|
|
||||||
type Hashing = BlakeTwo256;
|
|
||||||
type AccountId = AccountId;
|
|
||||||
type Lookup = IdentityLookup<Self::AccountId>;
|
|
||||||
type Block = Block;
|
type Block = Block;
|
||||||
type RuntimeEvent = RuntimeEvent;
|
|
||||||
type BlockHashCount = ConstU64<250>;
|
|
||||||
type Version = ();
|
|
||||||
type PalletInfo = PalletInfo;
|
|
||||||
type AccountData = ();
|
|
||||||
type OnNewAccount = ();
|
|
||||||
type OnKilledAccount = ();
|
|
||||||
type BaseCallFilter = frame_support::traits::Everything;
|
|
||||||
type SystemWeightInfo = ();
|
|
||||||
type DbWeight = ();
|
|
||||||
type BlockWeights = ();
|
|
||||||
type BlockLength = ();
|
|
||||||
type SS58Prefix = ();
|
|
||||||
type OnSetCode = ();
|
|
||||||
type MaxConsumers = ConstU32<16>;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
parameter_types! {
|
parameter_types! {
|
||||||
pub const MaxFreeMandatoryHeadersPerBlock: u32 = 2;
|
pub const MaxFreeMandatoryHeadersPerBlock: u32 = 2;
|
||||||
pub const HeadersToKeep: u32 = 5;
|
pub const HeadersToKeep: u32 = 5;
|
||||||
pub const SessionLength: u64 = 5;
|
|
||||||
pub const NumValidators: u32 = 5;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
impl grandpa::Config for TestRuntime {
|
impl grandpa::Config for TestRuntime {
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
|
//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
|
||||||
|
|
||||||
// Executed Command:
|
// Executed Command:
|
||||||
// target/release/millau-bridge-node
|
// target/release/unknown-bridge-node
|
||||||
// benchmark
|
// benchmark
|
||||||
// pallet
|
// pallet
|
||||||
// --chain=dev
|
// --chain=dev
|
||||||
@@ -58,39 +58,39 @@ pub trait WeightInfo {
|
|||||||
/// Those weights are test only and must never be used in production.
|
/// Those weights are test only and must never be used in production.
|
||||||
pub struct BridgeWeight<T>(PhantomData<T>);
|
pub struct BridgeWeight<T>(PhantomData<T>);
|
||||||
impl<T: frame_system::Config> WeightInfo for BridgeWeight<T> {
|
impl<T: frame_system::Config> WeightInfo for BridgeWeight<T> {
|
||||||
/// Storage: BridgeRialtoGrandpa PalletOperatingMode (r:1 w:0)
|
/// Storage: BridgeUnknownGrandpa PalletOperatingMode (r:1 w:0)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoGrandpa PalletOperatingMode (max_values: Some(1), max_size: Some(1),
|
/// Proof: BridgeUnknownGrandpa PalletOperatingMode (max_values: Some(1), max_size: Some(1),
|
||||||
/// added: 496, mode: MaxEncodedLen)
|
/// added: 496, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoGrandpa RequestCount (r:1 w:1)
|
/// Storage: BridgeUnknownGrandpa RequestCount (r:1 w:1)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoGrandpa RequestCount (max_values: Some(1), max_size: Some(4), added: 499,
|
/// Proof: BridgeUnknownGrandpa RequestCount (max_values: Some(1), max_size: Some(4), added:
|
||||||
/// mode: MaxEncodedLen)
|
/// 499, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoGrandpa BestFinalized (r:1 w:1)
|
/// Storage: BridgeUnknownGrandpa BestFinalized (r:1 w:1)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoGrandpa BestFinalized (max_values: Some(1), max_size: Some(36), added:
|
/// Proof: BridgeUnknownGrandpa BestFinalized (max_values: Some(1), max_size: Some(36), added:
|
||||||
/// 531, mode: MaxEncodedLen)
|
/// 531, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoGrandpa CurrentAuthoritySet (r:1 w:0)
|
/// Storage: BridgeUnknownGrandpa CurrentAuthoritySet (r:1 w:0)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoGrandpa CurrentAuthoritySet (max_values: Some(1), max_size: Some(209),
|
/// Proof: BridgeUnknownGrandpa CurrentAuthoritySet (max_values: Some(1), max_size: Some(209),
|
||||||
/// added: 704, mode: MaxEncodedLen)
|
/// added: 704, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoGrandpa ImportedHashesPointer (r:1 w:1)
|
/// Storage: BridgeUnknownGrandpa ImportedHashesPointer (r:1 w:1)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoGrandpa ImportedHashesPointer (max_values: Some(1), max_size: Some(4),
|
/// Proof: BridgeUnknownGrandpa ImportedHashesPointer (max_values: Some(1), max_size: Some(4),
|
||||||
/// added: 499, mode: MaxEncodedLen)
|
/// added: 499, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoGrandpa ImportedHashes (r:1 w:1)
|
/// Storage: BridgeUnknownGrandpa ImportedHashes (r:1 w:1)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoGrandpa ImportedHashes (max_values: Some(14400), max_size: Some(36),
|
/// Proof: BridgeUnknownGrandpa ImportedHashes (max_values: Some(14400), max_size: Some(36),
|
||||||
/// added: 2016, mode: MaxEncodedLen)
|
/// added: 2016, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoGrandpa ImportedHeaders (r:0 w:2)
|
/// Storage: BridgeUnknownGrandpa ImportedHeaders (r:0 w:2)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68),
|
/// Proof: BridgeUnknownGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68),
|
||||||
/// added: 2048, mode: MaxEncodedLen)
|
/// added: 2048, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// The range of component `p` is `[1, 4]`.
|
/// The range of component `p` is `[1, 4]`.
|
||||||
@@ -113,39 +113,39 @@ impl<T: frame_system::Config> WeightInfo for BridgeWeight<T> {
|
|||||||
|
|
||||||
// For backwards compatibility and tests
|
// For backwards compatibility and tests
|
||||||
impl WeightInfo for () {
|
impl WeightInfo for () {
|
||||||
/// Storage: BridgeRialtoGrandpa PalletOperatingMode (r:1 w:0)
|
/// Storage: BridgeUnknownGrandpa PalletOperatingMode (r:1 w:0)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoGrandpa PalletOperatingMode (max_values: Some(1), max_size: Some(1),
|
/// Proof: BridgeUnknownGrandpa PalletOperatingMode (max_values: Some(1), max_size: Some(1),
|
||||||
/// added: 496, mode: MaxEncodedLen)
|
/// added: 496, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoGrandpa RequestCount (r:1 w:1)
|
/// Storage: BridgeUnknownGrandpa RequestCount (r:1 w:1)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoGrandpa RequestCount (max_values: Some(1), max_size: Some(4), added: 499,
|
/// Proof: BridgeUnknownGrandpa RequestCount (max_values: Some(1), max_size: Some(4), added:
|
||||||
/// mode: MaxEncodedLen)
|
/// 499, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoGrandpa BestFinalized (r:1 w:1)
|
/// Storage: BridgeUnknownGrandpa BestFinalized (r:1 w:1)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoGrandpa BestFinalized (max_values: Some(1), max_size: Some(36), added:
|
/// Proof: BridgeUnknownGrandpa BestFinalized (max_values: Some(1), max_size: Some(36), added:
|
||||||
/// 531, mode: MaxEncodedLen)
|
/// 531, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoGrandpa CurrentAuthoritySet (r:1 w:0)
|
/// Storage: BridgeUnknownGrandpa CurrentAuthoritySet (r:1 w:0)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoGrandpa CurrentAuthoritySet (max_values: Some(1), max_size: Some(209),
|
/// Proof: BridgeUnknownGrandpa CurrentAuthoritySet (max_values: Some(1), max_size: Some(209),
|
||||||
/// added: 704, mode: MaxEncodedLen)
|
/// added: 704, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoGrandpa ImportedHashesPointer (r:1 w:1)
|
/// Storage: BridgeUnknownGrandpa ImportedHashesPointer (r:1 w:1)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoGrandpa ImportedHashesPointer (max_values: Some(1), max_size: Some(4),
|
/// Proof: BridgeUnknownGrandpa ImportedHashesPointer (max_values: Some(1), max_size: Some(4),
|
||||||
/// added: 499, mode: MaxEncodedLen)
|
/// added: 499, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoGrandpa ImportedHashes (r:1 w:1)
|
/// Storage: BridgeUnknownGrandpa ImportedHashes (r:1 w:1)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoGrandpa ImportedHashes (max_values: Some(14400), max_size: Some(36),
|
/// Proof: BridgeUnknownGrandpa ImportedHashes (max_values: Some(14400), max_size: Some(36),
|
||||||
/// added: 2016, mode: MaxEncodedLen)
|
/// added: 2016, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoGrandpa ImportedHeaders (r:0 w:2)
|
/// Storage: BridgeUnknownGrandpa ImportedHeaders (r:0 w:2)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68),
|
/// Proof: BridgeUnknownGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68),
|
||||||
/// added: 2048, mode: MaxEncodedLen)
|
/// added: 2048, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// The range of component `p` is `[1, 4]`.
|
/// The range of component `p` is `[1, 4]`.
|
||||||
|
|||||||
@@ -22,7 +22,6 @@ bp-runtime = { path = "../../primitives/runtime", default-features = false }
|
|||||||
frame-benchmarking = { path = "../../../substrate/frame/benchmarking", default-features = false, optional = true }
|
frame-benchmarking = { path = "../../../substrate/frame/benchmarking", default-features = false, optional = true }
|
||||||
frame-support = { path = "../../../substrate/frame/support", default-features = false }
|
frame-support = { path = "../../../substrate/frame/support", default-features = false }
|
||||||
frame-system = { path = "../../../substrate/frame/system", default-features = false }
|
frame-system = { path = "../../../substrate/frame/system", default-features = false }
|
||||||
sp-core = { path = "../../../substrate/primitives/core", default-features = false }
|
|
||||||
sp-runtime = { path = "../../../substrate/primitives/runtime", default-features = false }
|
sp-runtime = { path = "../../../substrate/primitives/runtime", default-features = false }
|
||||||
sp-std = { path = "../../../substrate/primitives/std", default-features = false }
|
sp-std = { path = "../../../substrate/primitives/std", default-features = false }
|
||||||
|
|
||||||
@@ -43,7 +42,6 @@ std = [
|
|||||||
"log/std",
|
"log/std",
|
||||||
"num-traits/std",
|
"num-traits/std",
|
||||||
"scale-info/std",
|
"scale-info/std",
|
||||||
"sp-core/std",
|
|
||||||
"sp-runtime/std",
|
"sp-runtime/std",
|
||||||
"sp-std/std",
|
"sp-std/std",
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -34,16 +34,11 @@ use bp_messages::{
|
|||||||
use bp_runtime::{messages::MessageDispatchResult, Size};
|
use bp_runtime::{messages::MessageDispatchResult, Size};
|
||||||
use codec::{Decode, Encode};
|
use codec::{Decode, Encode};
|
||||||
use frame_support::{
|
use frame_support::{
|
||||||
parameter_types,
|
derive_impl, parameter_types,
|
||||||
traits::ConstU64,
|
|
||||||
weights::{constants::RocksDbWeight, Weight},
|
weights::{constants::RocksDbWeight, Weight},
|
||||||
};
|
};
|
||||||
use scale_info::TypeInfo;
|
use scale_info::TypeInfo;
|
||||||
use sp_core::H256;
|
use sp_runtime::BuildStorage;
|
||||||
use sp_runtime::{
|
|
||||||
traits::{BlakeTwo256, ConstU32, IdentityLookup},
|
|
||||||
BuildStorage, Perbill,
|
|
||||||
};
|
|
||||||
use std::{
|
use std::{
|
||||||
collections::{BTreeMap, VecDeque},
|
collections::{BTreeMap, VecDeque},
|
||||||
ops::RangeInclusive,
|
ops::RangeInclusive,
|
||||||
@@ -84,56 +79,19 @@ frame_support::construct_runtime! {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
parameter_types! {
|
|
||||||
pub const BlockHashCount: u64 = 250;
|
|
||||||
pub const MaximumBlockWeight: Weight = Weight::from_parts(1024, 0);
|
|
||||||
pub const MaximumBlockLength: u32 = 2 * 1024;
|
|
||||||
pub const AvailableBlockRatio: Perbill = Perbill::one();
|
|
||||||
}
|
|
||||||
|
|
||||||
pub type DbWeight = RocksDbWeight;
|
pub type DbWeight = RocksDbWeight;
|
||||||
|
|
||||||
|
#[derive_impl(frame_system::config_preludes::TestDefaultConfig as frame_system::DefaultConfig)]
|
||||||
impl frame_system::Config for TestRuntime {
|
impl frame_system::Config for TestRuntime {
|
||||||
type RuntimeOrigin = RuntimeOrigin;
|
|
||||||
type Nonce = u64;
|
|
||||||
type RuntimeCall = RuntimeCall;
|
|
||||||
type Hash = H256;
|
|
||||||
type Hashing = BlakeTwo256;
|
|
||||||
type AccountId = AccountId;
|
|
||||||
type Lookup = IdentityLookup<Self::AccountId>;
|
|
||||||
type Block = Block;
|
type Block = Block;
|
||||||
type RuntimeEvent = RuntimeEvent;
|
|
||||||
type BlockHashCount = ConstU64<250>;
|
|
||||||
type Version = ();
|
|
||||||
type PalletInfo = PalletInfo;
|
|
||||||
type AccountData = pallet_balances::AccountData<Balance>;
|
type AccountData = pallet_balances::AccountData<Balance>;
|
||||||
type OnNewAccount = ();
|
|
||||||
type OnKilledAccount = ();
|
|
||||||
type BaseCallFilter = frame_support::traits::Everything;
|
|
||||||
type SystemWeightInfo = ();
|
|
||||||
type BlockWeights = ();
|
|
||||||
type BlockLength = ();
|
|
||||||
type DbWeight = DbWeight;
|
type DbWeight = DbWeight;
|
||||||
type SS58Prefix = ();
|
|
||||||
type OnSetCode = ();
|
|
||||||
type MaxConsumers = frame_support::traits::ConstU32<16>;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive_impl(pallet_balances::config_preludes::TestDefaultConfig as pallet_balances::DefaultConfig)]
|
||||||
impl pallet_balances::Config for TestRuntime {
|
impl pallet_balances::Config for TestRuntime {
|
||||||
type MaxLocks = ();
|
type ReserveIdentifier = [u8; 8];
|
||||||
type Balance = Balance;
|
type AccountStore = System;
|
||||||
type DustRemoval = ();
|
|
||||||
type RuntimeEvent = RuntimeEvent;
|
|
||||||
type ExistentialDeposit = ConstU64<1>;
|
|
||||||
type AccountStore = frame_system::Pallet<TestRuntime>;
|
|
||||||
type WeightInfo = ();
|
|
||||||
type MaxReserves = ();
|
|
||||||
type ReserveIdentifier = ();
|
|
||||||
type RuntimeHoldReason = RuntimeHoldReason;
|
|
||||||
type RuntimeFreezeReason = RuntimeFreezeReason;
|
|
||||||
type FreezeIdentifier = ();
|
|
||||||
type MaxHolds = ConstU32<0>;
|
|
||||||
type MaxFreezes = ConstU32<0>;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
parameter_types! {
|
parameter_types! {
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
// You should have received a copy of the GNU General Public License
|
// You should have received a copy of the GNU General Public License
|
||||||
// along with Parity Bridges Common. If not, see <http://www.gnu.org/licenses/>.
|
// along with Parity Bridges Common. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
//! Autogenerated weights for RialtoMessages
|
//! Autogenerated weights for pallet_bridge_messages
|
||||||
//!
|
//!
|
||||||
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
|
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
|
||||||
//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
|
//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
|
||||||
@@ -23,13 +23,13 @@
|
|||||||
//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
|
//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
|
||||||
|
|
||||||
// Executed Command:
|
// Executed Command:
|
||||||
// target/release/millau-bridge-node
|
// target/release/unknown-bridge-node
|
||||||
// benchmark
|
// benchmark
|
||||||
// pallet
|
// pallet
|
||||||
// --chain=dev
|
// --chain=dev
|
||||||
// --steps=50
|
// --steps=50
|
||||||
// --repeat=20
|
// --repeat=20
|
||||||
// --pallet=RialtoMessages
|
// --pallet=pallet_bridge_messages
|
||||||
// --extrinsic=*
|
// --extrinsic=*
|
||||||
// --execution=wasm
|
// --execution=wasm
|
||||||
// --wasm-execution=Compiled
|
// --wasm-execution=Compiled
|
||||||
@@ -48,7 +48,7 @@ use frame_support::{
|
|||||||
};
|
};
|
||||||
use sp_std::marker::PhantomData;
|
use sp_std::marker::PhantomData;
|
||||||
|
|
||||||
/// Weight functions needed for RialtoMessages.
|
/// Weight functions needed for pallet_bridge_messages.
|
||||||
pub trait WeightInfo {
|
pub trait WeightInfo {
|
||||||
fn receive_single_message_proof() -> Weight;
|
fn receive_single_message_proof() -> Weight;
|
||||||
fn receive_two_messages_proof() -> Weight;
|
fn receive_two_messages_proof() -> Weight;
|
||||||
@@ -61,24 +61,24 @@ pub trait WeightInfo {
|
|||||||
fn receive_single_message_proof_with_dispatch(i: u32) -> Weight;
|
fn receive_single_message_proof_with_dispatch(i: u32) -> Weight;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Weights for `RialtoMessages` that are generated using one of the Bridge testnets.
|
/// Weights for `pallet_bridge_messages` that are generated using one of the Bridge testnets.
|
||||||
///
|
///
|
||||||
/// Those weights are test only and must never be used in production.
|
/// Those weights are test only and must never be used in production.
|
||||||
pub struct BridgeWeight<T>(PhantomData<T>);
|
pub struct BridgeWeight<T>(PhantomData<T>);
|
||||||
impl<T: frame_system::Config> WeightInfo for BridgeWeight<T> {
|
impl<T: frame_system::Config> WeightInfo for BridgeWeight<T> {
|
||||||
/// Storage: BridgeRialtoMessages PalletOperatingMode (r:1 w:0)
|
/// Storage: BridgeUnknownMessages PalletOperatingMode (r:1 w:0)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoMessages PalletOperatingMode (max_values: Some(1), max_size: Some(2),
|
/// Proof: BridgeUnknownMessages PalletOperatingMode (max_values: Some(1), max_size: Some(2),
|
||||||
/// added: 497, mode: MaxEncodedLen)
|
/// added: 497, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoGrandpa ImportedHeaders (r:1 w:0)
|
/// Storage: BridgeUnknownGrandpa ImportedHeaders (r:1 w:0)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68),
|
/// Proof: BridgeUnknownGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68),
|
||||||
/// added: 2048, mode: MaxEncodedLen)
|
/// added: 2048, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoMessages InboundLanes (r:1 w:1)
|
/// Storage: BridgeUnknownMessages InboundLanes (r:1 w:1)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoMessages InboundLanes (max_values: None, max_size: Some(49180), added:
|
/// Proof: BridgeUnknownMessages InboundLanes (max_values: None, max_size: Some(49180), added:
|
||||||
/// 51655, mode: MaxEncodedLen)
|
/// 51655, mode: MaxEncodedLen)
|
||||||
fn receive_single_message_proof() -> Weight {
|
fn receive_single_message_proof() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
@@ -89,19 +89,19 @@ impl<T: frame_system::Config> WeightInfo for BridgeWeight<T> {
|
|||||||
.saturating_add(T::DbWeight::get().reads(3_u64))
|
.saturating_add(T::DbWeight::get().reads(3_u64))
|
||||||
.saturating_add(T::DbWeight::get().writes(1_u64))
|
.saturating_add(T::DbWeight::get().writes(1_u64))
|
||||||
}
|
}
|
||||||
/// Storage: BridgeRialtoMessages PalletOperatingMode (r:1 w:0)
|
/// Storage: BridgeUnknownMessages PalletOperatingMode (r:1 w:0)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoMessages PalletOperatingMode (max_values: Some(1), max_size: Some(2),
|
/// Proof: BridgeUnknownMessages PalletOperatingMode (max_values: Some(1), max_size: Some(2),
|
||||||
/// added: 497, mode: MaxEncodedLen)
|
/// added: 497, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoGrandpa ImportedHeaders (r:1 w:0)
|
/// Storage: BridgeUnknownGrandpa ImportedHeaders (r:1 w:0)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68),
|
/// Proof: BridgeUnknownGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68),
|
||||||
/// added: 2048, mode: MaxEncodedLen)
|
/// added: 2048, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoMessages InboundLanes (r:1 w:1)
|
/// Storage: BridgeUnknownMessages InboundLanes (r:1 w:1)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoMessages InboundLanes (max_values: None, max_size: Some(49180), added:
|
/// Proof: BridgeUnknownMessages InboundLanes (max_values: None, max_size: Some(49180), added:
|
||||||
/// 51655, mode: MaxEncodedLen)
|
/// 51655, mode: MaxEncodedLen)
|
||||||
fn receive_two_messages_proof() -> Weight {
|
fn receive_two_messages_proof() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
@@ -112,19 +112,19 @@ impl<T: frame_system::Config> WeightInfo for BridgeWeight<T> {
|
|||||||
.saturating_add(T::DbWeight::get().reads(3_u64))
|
.saturating_add(T::DbWeight::get().reads(3_u64))
|
||||||
.saturating_add(T::DbWeight::get().writes(1_u64))
|
.saturating_add(T::DbWeight::get().writes(1_u64))
|
||||||
}
|
}
|
||||||
/// Storage: BridgeRialtoMessages PalletOperatingMode (r:1 w:0)
|
/// Storage: BridgeUnknownMessages PalletOperatingMode (r:1 w:0)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoMessages PalletOperatingMode (max_values: Some(1), max_size: Some(2),
|
/// Proof: BridgeUnknownMessages PalletOperatingMode (max_values: Some(1), max_size: Some(2),
|
||||||
/// added: 497, mode: MaxEncodedLen)
|
/// added: 497, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoGrandpa ImportedHeaders (r:1 w:0)
|
/// Storage: BridgeUnknownGrandpa ImportedHeaders (r:1 w:0)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68),
|
/// Proof: BridgeUnknownGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68),
|
||||||
/// added: 2048, mode: MaxEncodedLen)
|
/// added: 2048, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoMessages InboundLanes (r:1 w:1)
|
/// Storage: BridgeUnknownMessages InboundLanes (r:1 w:1)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoMessages InboundLanes (max_values: None, max_size: Some(49180), added:
|
/// Proof: BridgeUnknownMessages InboundLanes (max_values: None, max_size: Some(49180), added:
|
||||||
/// 51655, mode: MaxEncodedLen)
|
/// 51655, mode: MaxEncodedLen)
|
||||||
fn receive_single_message_proof_with_outbound_lane_state() -> Weight {
|
fn receive_single_message_proof_with_outbound_lane_state() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
@@ -135,19 +135,19 @@ impl<T: frame_system::Config> WeightInfo for BridgeWeight<T> {
|
|||||||
.saturating_add(T::DbWeight::get().reads(3_u64))
|
.saturating_add(T::DbWeight::get().reads(3_u64))
|
||||||
.saturating_add(T::DbWeight::get().writes(1_u64))
|
.saturating_add(T::DbWeight::get().writes(1_u64))
|
||||||
}
|
}
|
||||||
/// Storage: BridgeRialtoMessages PalletOperatingMode (r:1 w:0)
|
/// Storage: BridgeUnknownMessages PalletOperatingMode (r:1 w:0)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoMessages PalletOperatingMode (max_values: Some(1), max_size: Some(2),
|
/// Proof: BridgeUnknownMessages PalletOperatingMode (max_values: Some(1), max_size: Some(2),
|
||||||
/// added: 497, mode: MaxEncodedLen)
|
/// added: 497, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoGrandpa ImportedHeaders (r:1 w:0)
|
/// Storage: BridgeUnknownGrandpa ImportedHeaders (r:1 w:0)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68),
|
/// Proof: BridgeUnknownGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68),
|
||||||
/// added: 2048, mode: MaxEncodedLen)
|
/// added: 2048, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoMessages InboundLanes (r:1 w:1)
|
/// Storage: BridgeUnknownMessages InboundLanes (r:1 w:1)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoMessages InboundLanes (max_values: None, max_size: Some(49180), added:
|
/// Proof: BridgeUnknownMessages InboundLanes (max_values: None, max_size: Some(49180), added:
|
||||||
/// 51655, mode: MaxEncodedLen)
|
/// 51655, mode: MaxEncodedLen)
|
||||||
fn receive_single_message_proof_1_kb() -> Weight {
|
fn receive_single_message_proof_1_kb() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
@@ -158,19 +158,19 @@ impl<T: frame_system::Config> WeightInfo for BridgeWeight<T> {
|
|||||||
.saturating_add(T::DbWeight::get().reads(3_u64))
|
.saturating_add(T::DbWeight::get().reads(3_u64))
|
||||||
.saturating_add(T::DbWeight::get().writes(1_u64))
|
.saturating_add(T::DbWeight::get().writes(1_u64))
|
||||||
}
|
}
|
||||||
/// Storage: BridgeRialtoMessages PalletOperatingMode (r:1 w:0)
|
/// Storage: BridgeUnknownMessages PalletOperatingMode (r:1 w:0)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoMessages PalletOperatingMode (max_values: Some(1), max_size: Some(2),
|
/// Proof: BridgeUnknownMessages PalletOperatingMode (max_values: Some(1), max_size: Some(2),
|
||||||
/// added: 497, mode: MaxEncodedLen)
|
/// added: 497, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoGrandpa ImportedHeaders (r:1 w:0)
|
/// Storage: BridgeUnknownGrandpa ImportedHeaders (r:1 w:0)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68),
|
/// Proof: BridgeUnknownGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68),
|
||||||
/// added: 2048, mode: MaxEncodedLen)
|
/// added: 2048, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoMessages InboundLanes (r:1 w:1)
|
/// Storage: BridgeUnknownMessages InboundLanes (r:1 w:1)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoMessages InboundLanes (max_values: None, max_size: Some(49180), added:
|
/// Proof: BridgeUnknownMessages InboundLanes (max_values: None, max_size: Some(49180), added:
|
||||||
/// 51655, mode: MaxEncodedLen)
|
/// 51655, mode: MaxEncodedLen)
|
||||||
fn receive_single_message_proof_16_kb() -> Weight {
|
fn receive_single_message_proof_16_kb() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
@@ -181,19 +181,19 @@ impl<T: frame_system::Config> WeightInfo for BridgeWeight<T> {
|
|||||||
.saturating_add(T::DbWeight::get().reads(3_u64))
|
.saturating_add(T::DbWeight::get().reads(3_u64))
|
||||||
.saturating_add(T::DbWeight::get().writes(1_u64))
|
.saturating_add(T::DbWeight::get().writes(1_u64))
|
||||||
}
|
}
|
||||||
/// Storage: BridgeRialtoMessages PalletOperatingMode (r:1 w:0)
|
/// Storage: BridgeUnknownMessages PalletOperatingMode (r:1 w:0)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoMessages PalletOperatingMode (max_values: Some(1), max_size: Some(2),
|
/// Proof: BridgeUnknownMessages PalletOperatingMode (max_values: Some(1), max_size: Some(2),
|
||||||
/// added: 497, mode: MaxEncodedLen)
|
/// added: 497, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoGrandpa ImportedHeaders (r:1 w:0)
|
/// Storage: BridgeUnknownGrandpa ImportedHeaders (r:1 w:0)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68),
|
/// Proof: BridgeUnknownGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68),
|
||||||
/// added: 2048, mode: MaxEncodedLen)
|
/// added: 2048, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoMessages OutboundLanes (r:1 w:1)
|
/// Storage: BridgeUnknownMessages OutboundLanes (r:1 w:1)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoMessages OutboundLanes (max_values: Some(1), max_size: Some(44), added:
|
/// Proof: BridgeUnknownMessages OutboundLanes (max_values: Some(1), max_size: Some(44), added:
|
||||||
/// 539, mode: MaxEncodedLen)
|
/// 539, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRelayers RelayerRewards (r:1 w:1)
|
/// Storage: BridgeRelayers RelayerRewards (r:1 w:1)
|
||||||
@@ -209,19 +209,19 @@ impl<T: frame_system::Config> WeightInfo for BridgeWeight<T> {
|
|||||||
.saturating_add(T::DbWeight::get().reads(4_u64))
|
.saturating_add(T::DbWeight::get().reads(4_u64))
|
||||||
.saturating_add(T::DbWeight::get().writes(2_u64))
|
.saturating_add(T::DbWeight::get().writes(2_u64))
|
||||||
}
|
}
|
||||||
/// Storage: BridgeRialtoMessages PalletOperatingMode (r:1 w:0)
|
/// Storage: BridgeUnknownMessages PalletOperatingMode (r:1 w:0)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoMessages PalletOperatingMode (max_values: Some(1), max_size: Some(2),
|
/// Proof: BridgeUnknownMessages PalletOperatingMode (max_values: Some(1), max_size: Some(2),
|
||||||
/// added: 497, mode: MaxEncodedLen)
|
/// added: 497, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoGrandpa ImportedHeaders (r:1 w:0)
|
/// Storage: BridgeUnknownGrandpa ImportedHeaders (r:1 w:0)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68),
|
/// Proof: BridgeUnknownGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68),
|
||||||
/// added: 2048, mode: MaxEncodedLen)
|
/// added: 2048, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoMessages OutboundLanes (r:1 w:1)
|
/// Storage: BridgeUnknownMessages OutboundLanes (r:1 w:1)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoMessages OutboundLanes (max_values: Some(1), max_size: Some(44), added:
|
/// Proof: BridgeUnknownMessages OutboundLanes (max_values: Some(1), max_size: Some(44), added:
|
||||||
/// 539, mode: MaxEncodedLen)
|
/// 539, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRelayers RelayerRewards (r:1 w:1)
|
/// Storage: BridgeRelayers RelayerRewards (r:1 w:1)
|
||||||
@@ -237,19 +237,19 @@ impl<T: frame_system::Config> WeightInfo for BridgeWeight<T> {
|
|||||||
.saturating_add(T::DbWeight::get().reads(4_u64))
|
.saturating_add(T::DbWeight::get().reads(4_u64))
|
||||||
.saturating_add(T::DbWeight::get().writes(2_u64))
|
.saturating_add(T::DbWeight::get().writes(2_u64))
|
||||||
}
|
}
|
||||||
/// Storage: BridgeRialtoMessages PalletOperatingMode (r:1 w:0)
|
/// Storage: BridgeUnknownMessages PalletOperatingMode (r:1 w:0)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoMessages PalletOperatingMode (max_values: Some(1), max_size: Some(2),
|
/// Proof: BridgeUnknownMessages PalletOperatingMode (max_values: Some(1), max_size: Some(2),
|
||||||
/// added: 497, mode: MaxEncodedLen)
|
/// added: 497, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoGrandpa ImportedHeaders (r:1 w:0)
|
/// Storage: BridgeUnknownGrandpa ImportedHeaders (r:1 w:0)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68),
|
/// Proof: BridgeUnknownGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68),
|
||||||
/// added: 2048, mode: MaxEncodedLen)
|
/// added: 2048, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoMessages OutboundLanes (r:1 w:1)
|
/// Storage: BridgeUnknownMessages OutboundLanes (r:1 w:1)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoMessages OutboundLanes (max_values: Some(1), max_size: Some(44), added:
|
/// Proof: BridgeUnknownMessages OutboundLanes (max_values: Some(1), max_size: Some(44), added:
|
||||||
/// 539, mode: MaxEncodedLen)
|
/// 539, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRelayers RelayerRewards (r:2 w:2)
|
/// Storage: BridgeRelayers RelayerRewards (r:2 w:2)
|
||||||
@@ -265,19 +265,19 @@ impl<T: frame_system::Config> WeightInfo for BridgeWeight<T> {
|
|||||||
.saturating_add(T::DbWeight::get().reads(5_u64))
|
.saturating_add(T::DbWeight::get().reads(5_u64))
|
||||||
.saturating_add(T::DbWeight::get().writes(3_u64))
|
.saturating_add(T::DbWeight::get().writes(3_u64))
|
||||||
}
|
}
|
||||||
/// Storage: BridgeRialtoMessages PalletOperatingMode (r:1 w:0)
|
/// Storage: BridgeUnknownMessages PalletOperatingMode (r:1 w:0)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoMessages PalletOperatingMode (max_values: Some(1), max_size: Some(2),
|
/// Proof: BridgeUnknownMessages PalletOperatingMode (max_values: Some(1), max_size: Some(2),
|
||||||
/// added: 497, mode: MaxEncodedLen)
|
/// added: 497, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoGrandpa ImportedHeaders (r:1 w:0)
|
/// Storage: BridgeUnknownGrandpa ImportedHeaders (r:1 w:0)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68),
|
/// Proof: BridgeUnknownGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68),
|
||||||
/// added: 2048, mode: MaxEncodedLen)
|
/// added: 2048, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoMessages InboundLanes (r:1 w:1)
|
/// Storage: BridgeUnknownMessages InboundLanes (r:1 w:1)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoMessages InboundLanes (max_values: None, max_size: Some(49180), added:
|
/// Proof: BridgeUnknownMessages InboundLanes (max_values: None, max_size: Some(49180), added:
|
||||||
/// 51655, mode: MaxEncodedLen)
|
/// 51655, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// The range of component `i` is `[128, 2048]`.
|
/// The range of component `i` is `[128, 2048]`.
|
||||||
@@ -296,19 +296,19 @@ impl<T: frame_system::Config> WeightInfo for BridgeWeight<T> {
|
|||||||
|
|
||||||
// For backwards compatibility and tests
|
// For backwards compatibility and tests
|
||||||
impl WeightInfo for () {
|
impl WeightInfo for () {
|
||||||
/// Storage: BridgeRialtoMessages PalletOperatingMode (r:1 w:0)
|
/// Storage: BridgeUnknownMessages PalletOperatingMode (r:1 w:0)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoMessages PalletOperatingMode (max_values: Some(1), max_size: Some(2),
|
/// Proof: BridgeUnknownMessages PalletOperatingMode (max_values: Some(1), max_size: Some(2),
|
||||||
/// added: 497, mode: MaxEncodedLen)
|
/// added: 497, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoGrandpa ImportedHeaders (r:1 w:0)
|
/// Storage: BridgeUnknownGrandpa ImportedHeaders (r:1 w:0)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68),
|
/// Proof: BridgeUnknownGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68),
|
||||||
/// added: 2048, mode: MaxEncodedLen)
|
/// added: 2048, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoMessages InboundLanes (r:1 w:1)
|
/// Storage: BridgeUnknownMessages InboundLanes (r:1 w:1)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoMessages InboundLanes (max_values: None, max_size: Some(49180), added:
|
/// Proof: BridgeUnknownMessages InboundLanes (max_values: None, max_size: Some(49180), added:
|
||||||
/// 51655, mode: MaxEncodedLen)
|
/// 51655, mode: MaxEncodedLen)
|
||||||
fn receive_single_message_proof() -> Weight {
|
fn receive_single_message_proof() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
@@ -319,19 +319,19 @@ impl WeightInfo for () {
|
|||||||
.saturating_add(RocksDbWeight::get().reads(3_u64))
|
.saturating_add(RocksDbWeight::get().reads(3_u64))
|
||||||
.saturating_add(RocksDbWeight::get().writes(1_u64))
|
.saturating_add(RocksDbWeight::get().writes(1_u64))
|
||||||
}
|
}
|
||||||
/// Storage: BridgeRialtoMessages PalletOperatingMode (r:1 w:0)
|
/// Storage: BridgeUnknownMessages PalletOperatingMode (r:1 w:0)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoMessages PalletOperatingMode (max_values: Some(1), max_size: Some(2),
|
/// Proof: BridgeUnknownMessages PalletOperatingMode (max_values: Some(1), max_size: Some(2),
|
||||||
/// added: 497, mode: MaxEncodedLen)
|
/// added: 497, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoGrandpa ImportedHeaders (r:1 w:0)
|
/// Storage: BridgeUnknownGrandpa ImportedHeaders (r:1 w:0)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68),
|
/// Proof: BridgeUnknownGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68),
|
||||||
/// added: 2048, mode: MaxEncodedLen)
|
/// added: 2048, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoMessages InboundLanes (r:1 w:1)
|
/// Storage: BridgeUnknownMessages InboundLanes (r:1 w:1)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoMessages InboundLanes (max_values: None, max_size: Some(49180), added:
|
/// Proof: BridgeUnknownMessages InboundLanes (max_values: None, max_size: Some(49180), added:
|
||||||
/// 51655, mode: MaxEncodedLen)
|
/// 51655, mode: MaxEncodedLen)
|
||||||
fn receive_two_messages_proof() -> Weight {
|
fn receive_two_messages_proof() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
@@ -342,19 +342,19 @@ impl WeightInfo for () {
|
|||||||
.saturating_add(RocksDbWeight::get().reads(3_u64))
|
.saturating_add(RocksDbWeight::get().reads(3_u64))
|
||||||
.saturating_add(RocksDbWeight::get().writes(1_u64))
|
.saturating_add(RocksDbWeight::get().writes(1_u64))
|
||||||
}
|
}
|
||||||
/// Storage: BridgeRialtoMessages PalletOperatingMode (r:1 w:0)
|
/// Storage: BridgeUnknownMessages PalletOperatingMode (r:1 w:0)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoMessages PalletOperatingMode (max_values: Some(1), max_size: Some(2),
|
/// Proof: BridgeUnknownMessages PalletOperatingMode (max_values: Some(1), max_size: Some(2),
|
||||||
/// added: 497, mode: MaxEncodedLen)
|
/// added: 497, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoGrandpa ImportedHeaders (r:1 w:0)
|
/// Storage: BridgeUnknownGrandpa ImportedHeaders (r:1 w:0)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68),
|
/// Proof: BridgeUnknownGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68),
|
||||||
/// added: 2048, mode: MaxEncodedLen)
|
/// added: 2048, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoMessages InboundLanes (r:1 w:1)
|
/// Storage: BridgeUnknownMessages InboundLanes (r:1 w:1)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoMessages InboundLanes (max_values: None, max_size: Some(49180), added:
|
/// Proof: BridgeUnknownMessages InboundLanes (max_values: None, max_size: Some(49180), added:
|
||||||
/// 51655, mode: MaxEncodedLen)
|
/// 51655, mode: MaxEncodedLen)
|
||||||
fn receive_single_message_proof_with_outbound_lane_state() -> Weight {
|
fn receive_single_message_proof_with_outbound_lane_state() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
@@ -365,19 +365,19 @@ impl WeightInfo for () {
|
|||||||
.saturating_add(RocksDbWeight::get().reads(3_u64))
|
.saturating_add(RocksDbWeight::get().reads(3_u64))
|
||||||
.saturating_add(RocksDbWeight::get().writes(1_u64))
|
.saturating_add(RocksDbWeight::get().writes(1_u64))
|
||||||
}
|
}
|
||||||
/// Storage: BridgeRialtoMessages PalletOperatingMode (r:1 w:0)
|
/// Storage: BridgeUnknownMessages PalletOperatingMode (r:1 w:0)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoMessages PalletOperatingMode (max_values: Some(1), max_size: Some(2),
|
/// Proof: BridgeUnknownMessages PalletOperatingMode (max_values: Some(1), max_size: Some(2),
|
||||||
/// added: 497, mode: MaxEncodedLen)
|
/// added: 497, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoGrandpa ImportedHeaders (r:1 w:0)
|
/// Storage: BridgeUnknownGrandpa ImportedHeaders (r:1 w:0)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68),
|
/// Proof: BridgeUnknownGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68),
|
||||||
/// added: 2048, mode: MaxEncodedLen)
|
/// added: 2048, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoMessages InboundLanes (r:1 w:1)
|
/// Storage: BridgeUnknownMessages InboundLanes (r:1 w:1)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoMessages InboundLanes (max_values: None, max_size: Some(49180), added:
|
/// Proof: BridgeUnknownMessages InboundLanes (max_values: None, max_size: Some(49180), added:
|
||||||
/// 51655, mode: MaxEncodedLen)
|
/// 51655, mode: MaxEncodedLen)
|
||||||
fn receive_single_message_proof_1_kb() -> Weight {
|
fn receive_single_message_proof_1_kb() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
@@ -388,19 +388,19 @@ impl WeightInfo for () {
|
|||||||
.saturating_add(RocksDbWeight::get().reads(3_u64))
|
.saturating_add(RocksDbWeight::get().reads(3_u64))
|
||||||
.saturating_add(RocksDbWeight::get().writes(1_u64))
|
.saturating_add(RocksDbWeight::get().writes(1_u64))
|
||||||
}
|
}
|
||||||
/// Storage: BridgeRialtoMessages PalletOperatingMode (r:1 w:0)
|
/// Storage: BridgeUnknownMessages PalletOperatingMode (r:1 w:0)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoMessages PalletOperatingMode (max_values: Some(1), max_size: Some(2),
|
/// Proof: BridgeUnknownMessages PalletOperatingMode (max_values: Some(1), max_size: Some(2),
|
||||||
/// added: 497, mode: MaxEncodedLen)
|
/// added: 497, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoGrandpa ImportedHeaders (r:1 w:0)
|
/// Storage: BridgeUnknownGrandpa ImportedHeaders (r:1 w:0)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68),
|
/// Proof: BridgeUnknownGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68),
|
||||||
/// added: 2048, mode: MaxEncodedLen)
|
/// added: 2048, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoMessages InboundLanes (r:1 w:1)
|
/// Storage: BridgeUnknownMessages InboundLanes (r:1 w:1)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoMessages InboundLanes (max_values: None, max_size: Some(49180), added:
|
/// Proof: BridgeUnknownMessages InboundLanes (max_values: None, max_size: Some(49180), added:
|
||||||
/// 51655, mode: MaxEncodedLen)
|
/// 51655, mode: MaxEncodedLen)
|
||||||
fn receive_single_message_proof_16_kb() -> Weight {
|
fn receive_single_message_proof_16_kb() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
@@ -411,19 +411,19 @@ impl WeightInfo for () {
|
|||||||
.saturating_add(RocksDbWeight::get().reads(3_u64))
|
.saturating_add(RocksDbWeight::get().reads(3_u64))
|
||||||
.saturating_add(RocksDbWeight::get().writes(1_u64))
|
.saturating_add(RocksDbWeight::get().writes(1_u64))
|
||||||
}
|
}
|
||||||
/// Storage: BridgeRialtoMessages PalletOperatingMode (r:1 w:0)
|
/// Storage: BridgeUnknownMessages PalletOperatingMode (r:1 w:0)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoMessages PalletOperatingMode (max_values: Some(1), max_size: Some(2),
|
/// Proof: BridgeUnknownMessages PalletOperatingMode (max_values: Some(1), max_size: Some(2),
|
||||||
/// added: 497, mode: MaxEncodedLen)
|
/// added: 497, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoGrandpa ImportedHeaders (r:1 w:0)
|
/// Storage: BridgeUnknownGrandpa ImportedHeaders (r:1 w:0)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68),
|
/// Proof: BridgeUnknownGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68),
|
||||||
/// added: 2048, mode: MaxEncodedLen)
|
/// added: 2048, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoMessages OutboundLanes (r:1 w:1)
|
/// Storage: BridgeUnknownMessages OutboundLanes (r:1 w:1)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoMessages OutboundLanes (max_values: Some(1), max_size: Some(44), added:
|
/// Proof: BridgeUnknownMessages OutboundLanes (max_values: Some(1), max_size: Some(44), added:
|
||||||
/// 539, mode: MaxEncodedLen)
|
/// 539, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRelayers RelayerRewards (r:1 w:1)
|
/// Storage: BridgeRelayers RelayerRewards (r:1 w:1)
|
||||||
@@ -439,19 +439,19 @@ impl WeightInfo for () {
|
|||||||
.saturating_add(RocksDbWeight::get().reads(4_u64))
|
.saturating_add(RocksDbWeight::get().reads(4_u64))
|
||||||
.saturating_add(RocksDbWeight::get().writes(2_u64))
|
.saturating_add(RocksDbWeight::get().writes(2_u64))
|
||||||
}
|
}
|
||||||
/// Storage: BridgeRialtoMessages PalletOperatingMode (r:1 w:0)
|
/// Storage: BridgeUnknownMessages PalletOperatingMode (r:1 w:0)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoMessages PalletOperatingMode (max_values: Some(1), max_size: Some(2),
|
/// Proof: BridgeUnknownMessages PalletOperatingMode (max_values: Some(1), max_size: Some(2),
|
||||||
/// added: 497, mode: MaxEncodedLen)
|
/// added: 497, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoGrandpa ImportedHeaders (r:1 w:0)
|
/// Storage: BridgeUnknownGrandpa ImportedHeaders (r:1 w:0)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68),
|
/// Proof: BridgeUnknownGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68),
|
||||||
/// added: 2048, mode: MaxEncodedLen)
|
/// added: 2048, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoMessages OutboundLanes (r:1 w:1)
|
/// Storage: BridgeUnknownMessages OutboundLanes (r:1 w:1)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoMessages OutboundLanes (max_values: Some(1), max_size: Some(44), added:
|
/// Proof: BridgeUnknownMessages OutboundLanes (max_values: Some(1), max_size: Some(44), added:
|
||||||
/// 539, mode: MaxEncodedLen)
|
/// 539, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRelayers RelayerRewards (r:1 w:1)
|
/// Storage: BridgeRelayers RelayerRewards (r:1 w:1)
|
||||||
@@ -467,19 +467,19 @@ impl WeightInfo for () {
|
|||||||
.saturating_add(RocksDbWeight::get().reads(4_u64))
|
.saturating_add(RocksDbWeight::get().reads(4_u64))
|
||||||
.saturating_add(RocksDbWeight::get().writes(2_u64))
|
.saturating_add(RocksDbWeight::get().writes(2_u64))
|
||||||
}
|
}
|
||||||
/// Storage: BridgeRialtoMessages PalletOperatingMode (r:1 w:0)
|
/// Storage: BridgeUnknownMessages PalletOperatingMode (r:1 w:0)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoMessages PalletOperatingMode (max_values: Some(1), max_size: Some(2),
|
/// Proof: BridgeUnknownMessages PalletOperatingMode (max_values: Some(1), max_size: Some(2),
|
||||||
/// added: 497, mode: MaxEncodedLen)
|
/// added: 497, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoGrandpa ImportedHeaders (r:1 w:0)
|
/// Storage: BridgeUnknownGrandpa ImportedHeaders (r:1 w:0)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68),
|
/// Proof: BridgeUnknownGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68),
|
||||||
/// added: 2048, mode: MaxEncodedLen)
|
/// added: 2048, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoMessages OutboundLanes (r:1 w:1)
|
/// Storage: BridgeUnknownMessages OutboundLanes (r:1 w:1)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoMessages OutboundLanes (max_values: Some(1), max_size: Some(44), added:
|
/// Proof: BridgeUnknownMessages OutboundLanes (max_values: Some(1), max_size: Some(44), added:
|
||||||
/// 539, mode: MaxEncodedLen)
|
/// 539, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRelayers RelayerRewards (r:2 w:2)
|
/// Storage: BridgeRelayers RelayerRewards (r:2 w:2)
|
||||||
@@ -495,19 +495,19 @@ impl WeightInfo for () {
|
|||||||
.saturating_add(RocksDbWeight::get().reads(5_u64))
|
.saturating_add(RocksDbWeight::get().reads(5_u64))
|
||||||
.saturating_add(RocksDbWeight::get().writes(3_u64))
|
.saturating_add(RocksDbWeight::get().writes(3_u64))
|
||||||
}
|
}
|
||||||
/// Storage: BridgeRialtoMessages PalletOperatingMode (r:1 w:0)
|
/// Storage: BridgeUnknownMessages PalletOperatingMode (r:1 w:0)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoMessages PalletOperatingMode (max_values: Some(1), max_size: Some(2),
|
/// Proof: BridgeUnknownMessages PalletOperatingMode (max_values: Some(1), max_size: Some(2),
|
||||||
/// added: 497, mode: MaxEncodedLen)
|
/// added: 497, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoGrandpa ImportedHeaders (r:1 w:0)
|
/// Storage: BridgeUnknownGrandpa ImportedHeaders (r:1 w:0)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68),
|
/// Proof: BridgeUnknownGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68),
|
||||||
/// added: 2048, mode: MaxEncodedLen)
|
/// added: 2048, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoMessages InboundLanes (r:1 w:1)
|
/// Storage: BridgeUnknownMessages InboundLanes (r:1 w:1)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoMessages InboundLanes (max_values: None, max_size: Some(49180), added:
|
/// Proof: BridgeUnknownMessages InboundLanes (max_values: None, max_size: Some(49180), added:
|
||||||
/// 51655, mode: MaxEncodedLen)
|
/// 51655, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// The range of component `i` is `[128, 2048]`.
|
/// The range of component `i` is `[128, 2048]`.
|
||||||
|
|||||||
@@ -17,17 +17,18 @@
|
|||||||
use bp_header_chain::ChainWithGrandpa;
|
use bp_header_chain::ChainWithGrandpa;
|
||||||
use bp_polkadot_core::parachains::ParaId;
|
use bp_polkadot_core::parachains::ParaId;
|
||||||
use bp_runtime::{Chain, Parachain};
|
use bp_runtime::{Chain, Parachain};
|
||||||
use frame_support::{construct_runtime, parameter_types, traits::ConstU32, weights::Weight};
|
use frame_support::{
|
||||||
|
construct_runtime, derive_impl, parameter_types, traits::ConstU32, weights::Weight,
|
||||||
|
};
|
||||||
use sp_runtime::{
|
use sp_runtime::{
|
||||||
testing::H256,
|
testing::H256,
|
||||||
traits::{BlakeTwo256, Header as HeaderT, IdentityLookup},
|
traits::{BlakeTwo256, Header as HeaderT},
|
||||||
MultiSignature, Perbill,
|
MultiSignature,
|
||||||
};
|
};
|
||||||
|
|
||||||
use crate as pallet_bridge_parachains;
|
use crate as pallet_bridge_parachains;
|
||||||
|
|
||||||
pub type AccountId = u64;
|
pub type AccountId = u64;
|
||||||
pub type TestNumber = u64;
|
|
||||||
|
|
||||||
pub type RelayBlockHeader =
|
pub type RelayBlockHeader =
|
||||||
sp_runtime::generic::Header<crate::RelayBlockNumber, crate::RelayBlockHasher>;
|
sp_runtime::generic::Header<crate::RelayBlockNumber, crate::RelayBlockHasher>;
|
||||||
@@ -152,42 +153,12 @@ construct_runtime! {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
parameter_types! {
|
#[derive_impl(frame_system::config_preludes::TestDefaultConfig as frame_system::DefaultConfig)]
|
||||||
pub const BlockHashCount: TestNumber = 250;
|
|
||||||
pub const MaximumBlockWeight: Weight = Weight::from_parts(1024, 0);
|
|
||||||
pub const MaximumBlockLength: u32 = 2 * 1024;
|
|
||||||
pub const AvailableBlockRatio: Perbill = Perbill::one();
|
|
||||||
}
|
|
||||||
|
|
||||||
impl frame_system::Config for TestRuntime {
|
impl frame_system::Config for TestRuntime {
|
||||||
type RuntimeOrigin = RuntimeOrigin;
|
|
||||||
type Nonce = u64;
|
|
||||||
type RuntimeCall = RuntimeCall;
|
|
||||||
type Block = Block;
|
type Block = Block;
|
||||||
type Hash = H256;
|
|
||||||
type Hashing = RegularParachainHasher;
|
|
||||||
type AccountId = AccountId;
|
|
||||||
type Lookup = IdentityLookup<Self::AccountId>;
|
|
||||||
type RuntimeEvent = RuntimeEvent;
|
|
||||||
type BlockHashCount = BlockHashCount;
|
|
||||||
type Version = ();
|
|
||||||
type PalletInfo = PalletInfo;
|
|
||||||
type AccountData = ();
|
|
||||||
type OnNewAccount = ();
|
|
||||||
type OnKilledAccount = ();
|
|
||||||
type BaseCallFilter = frame_support::traits::Everything;
|
|
||||||
type SystemWeightInfo = ();
|
|
||||||
type DbWeight = ();
|
|
||||||
type BlockWeights = ();
|
|
||||||
type BlockLength = ();
|
|
||||||
type SS58Prefix = ();
|
|
||||||
type OnSetCode = ();
|
|
||||||
type MaxConsumers = ConstU32<16>;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
parameter_types! {
|
parameter_types! {
|
||||||
pub const SessionLength: u64 = 5;
|
|
||||||
pub const NumValidators: u32 = 5;
|
|
||||||
pub const HeadersToKeep: u32 = 5;
|
pub const HeadersToKeep: u32 = 5;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
|
//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
|
||||||
|
|
||||||
// Executed Command:
|
// Executed Command:
|
||||||
// target/release/millau-bridge-node
|
// target/release/unknown-bridge-node
|
||||||
// benchmark
|
// benchmark
|
||||||
// pallet
|
// pallet
|
||||||
// --chain=dev
|
// --chain=dev
|
||||||
@@ -60,29 +60,29 @@ pub trait WeightInfo {
|
|||||||
/// Those weights are test only and must never be used in production.
|
/// Those weights are test only and must never be used in production.
|
||||||
pub struct BridgeWeight<T>(PhantomData<T>);
|
pub struct BridgeWeight<T>(PhantomData<T>);
|
||||||
impl<T: frame_system::Config> WeightInfo for BridgeWeight<T> {
|
impl<T: frame_system::Config> WeightInfo for BridgeWeight<T> {
|
||||||
/// Storage: BridgeRialtoParachains PalletOperatingMode (r:1 w:0)
|
/// Storage: BridgeUnknownParachains PalletOperatingMode (r:1 w:0)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoParachains PalletOperatingMode (max_values: Some(1), max_size: Some(1),
|
/// Proof: BridgeUnknownParachains PalletOperatingMode (max_values: Some(1), max_size: Some(1),
|
||||||
/// added: 496, mode: MaxEncodedLen)
|
/// added: 496, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoGrandpa ImportedHeaders (r:1 w:0)
|
/// Storage: BridgeUnknownGrandpa ImportedHeaders (r:1 w:0)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68),
|
/// Proof: BridgeUnknownGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68),
|
||||||
/// added: 2048, mode: MaxEncodedLen)
|
/// added: 2048, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoParachains ParasInfo (r:1 w:1)
|
/// Storage: BridgeUnknownParachains ParasInfo (r:1 w:1)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoParachains ParasInfo (max_values: Some(1), max_size: Some(60), added:
|
/// Proof: BridgeUnknownParachains ParasInfo (max_values: Some(1), max_size: Some(60), added:
|
||||||
/// 555, mode: MaxEncodedLen)
|
/// 555, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoParachains ImportedParaHashes (r:1 w:1)
|
/// Storage: BridgeUnknownParachains ImportedParaHashes (r:1 w:1)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoParachains ImportedParaHashes (max_values: Some(1024), max_size:
|
/// Proof: BridgeUnknownParachains ImportedParaHashes (max_values: Some(1024), max_size:
|
||||||
/// Some(64), added: 1549, mode: MaxEncodedLen)
|
/// Some(64), added: 1549, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoParachains ImportedParaHeads (r:0 w:1)
|
/// Storage: BridgeUnknownParachains ImportedParaHeads (r:0 w:1)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoParachains ImportedParaHeads (max_values: Some(1024), max_size:
|
/// Proof: BridgeUnknownParachains ImportedParaHeads (max_values: Some(1024), max_size:
|
||||||
/// Some(196), added: 1681, mode: MaxEncodedLen)
|
/// Some(196), added: 1681, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// The range of component `p` is `[1, 2]`.
|
/// The range of component `p` is `[1, 2]`.
|
||||||
@@ -97,29 +97,29 @@ impl<T: frame_system::Config> WeightInfo for BridgeWeight<T> {
|
|||||||
.saturating_add(T::DbWeight::get().reads(4_u64))
|
.saturating_add(T::DbWeight::get().reads(4_u64))
|
||||||
.saturating_add(T::DbWeight::get().writes(3_u64))
|
.saturating_add(T::DbWeight::get().writes(3_u64))
|
||||||
}
|
}
|
||||||
/// Storage: BridgeRialtoParachains PalletOperatingMode (r:1 w:0)
|
/// Storage: BridgeUnknownParachains PalletOperatingMode (r:1 w:0)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoParachains PalletOperatingMode (max_values: Some(1), max_size: Some(1),
|
/// Proof: BridgeUnknownParachains PalletOperatingMode (max_values: Some(1), max_size: Some(1),
|
||||||
/// added: 496, mode: MaxEncodedLen)
|
/// added: 496, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoGrandpa ImportedHeaders (r:1 w:0)
|
/// Storage: BridgeUnknownGrandpa ImportedHeaders (r:1 w:0)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68),
|
/// Proof: BridgeUnknownGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68),
|
||||||
/// added: 2048, mode: MaxEncodedLen)
|
/// added: 2048, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoParachains ParasInfo (r:1 w:1)
|
/// Storage: BridgeUnknownParachains ParasInfo (r:1 w:1)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoParachains ParasInfo (max_values: Some(1), max_size: Some(60), added:
|
/// Proof: BridgeUnknownParachains ParasInfo (max_values: Some(1), max_size: Some(60), added:
|
||||||
/// 555, mode: MaxEncodedLen)
|
/// 555, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoParachains ImportedParaHashes (r:1 w:1)
|
/// Storage: BridgeUnknownParachains ImportedParaHashes (r:1 w:1)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoParachains ImportedParaHashes (max_values: Some(1024), max_size:
|
/// Proof: BridgeUnknownParachains ImportedParaHashes (max_values: Some(1024), max_size:
|
||||||
/// Some(64), added: 1549, mode: MaxEncodedLen)
|
/// Some(64), added: 1549, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoParachains ImportedParaHeads (r:0 w:1)
|
/// Storage: BridgeUnknownParachains ImportedParaHeads (r:0 w:1)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoParachains ImportedParaHeads (max_values: Some(1024), max_size:
|
/// Proof: BridgeUnknownParachains ImportedParaHeads (max_values: Some(1024), max_size:
|
||||||
/// Some(196), added: 1681, mode: MaxEncodedLen)
|
/// Some(196), added: 1681, mode: MaxEncodedLen)
|
||||||
fn submit_parachain_heads_with_1kb_proof() -> Weight {
|
fn submit_parachain_heads_with_1kb_proof() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
@@ -130,29 +130,29 @@ impl<T: frame_system::Config> WeightInfo for BridgeWeight<T> {
|
|||||||
.saturating_add(T::DbWeight::get().reads(4_u64))
|
.saturating_add(T::DbWeight::get().reads(4_u64))
|
||||||
.saturating_add(T::DbWeight::get().writes(3_u64))
|
.saturating_add(T::DbWeight::get().writes(3_u64))
|
||||||
}
|
}
|
||||||
/// Storage: BridgeRialtoParachains PalletOperatingMode (r:1 w:0)
|
/// Storage: BridgeUnknownParachains PalletOperatingMode (r:1 w:0)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoParachains PalletOperatingMode (max_values: Some(1), max_size: Some(1),
|
/// Proof: BridgeUnknownParachains PalletOperatingMode (max_values: Some(1), max_size: Some(1),
|
||||||
/// added: 496, mode: MaxEncodedLen)
|
/// added: 496, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoGrandpa ImportedHeaders (r:1 w:0)
|
/// Storage: BridgeUnknownGrandpa ImportedHeaders (r:1 w:0)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68),
|
/// Proof: BridgeUnknownGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68),
|
||||||
/// added: 2048, mode: MaxEncodedLen)
|
/// added: 2048, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoParachains ParasInfo (r:1 w:1)
|
/// Storage: BridgeUnknownParachains ParasInfo (r:1 w:1)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoParachains ParasInfo (max_values: Some(1), max_size: Some(60), added:
|
/// Proof: BridgeUnknownParachains ParasInfo (max_values: Some(1), max_size: Some(60), added:
|
||||||
/// 555, mode: MaxEncodedLen)
|
/// 555, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoParachains ImportedParaHashes (r:1 w:1)
|
/// Storage: BridgeUnknownParachains ImportedParaHashes (r:1 w:1)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoParachains ImportedParaHashes (max_values: Some(1024), max_size:
|
/// Proof: BridgeUnknownParachains ImportedParaHashes (max_values: Some(1024), max_size:
|
||||||
/// Some(64), added: 1549, mode: MaxEncodedLen)
|
/// Some(64), added: 1549, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoParachains ImportedParaHeads (r:0 w:1)
|
/// Storage: BridgeUnknownParachains ImportedParaHeads (r:0 w:1)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoParachains ImportedParaHeads (max_values: Some(1024), max_size:
|
/// Proof: BridgeUnknownParachains ImportedParaHeads (max_values: Some(1024), max_size:
|
||||||
/// Some(196), added: 1681, mode: MaxEncodedLen)
|
/// Some(196), added: 1681, mode: MaxEncodedLen)
|
||||||
fn submit_parachain_heads_with_16kb_proof() -> Weight {
|
fn submit_parachain_heads_with_16kb_proof() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
@@ -167,29 +167,29 @@ impl<T: frame_system::Config> WeightInfo for BridgeWeight<T> {
|
|||||||
|
|
||||||
// For backwards compatibility and tests
|
// For backwards compatibility and tests
|
||||||
impl WeightInfo for () {
|
impl WeightInfo for () {
|
||||||
/// Storage: BridgeRialtoParachains PalletOperatingMode (r:1 w:0)
|
/// Storage: BridgeUnknownParachains PalletOperatingMode (r:1 w:0)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoParachains PalletOperatingMode (max_values: Some(1), max_size: Some(1),
|
/// Proof: BridgeUnknownParachains PalletOperatingMode (max_values: Some(1), max_size: Some(1),
|
||||||
/// added: 496, mode: MaxEncodedLen)
|
/// added: 496, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoGrandpa ImportedHeaders (r:1 w:0)
|
/// Storage: BridgeUnknownGrandpa ImportedHeaders (r:1 w:0)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68),
|
/// Proof: BridgeUnknownGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68),
|
||||||
/// added: 2048, mode: MaxEncodedLen)
|
/// added: 2048, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoParachains ParasInfo (r:1 w:1)
|
/// Storage: BridgeUnknownParachains ParasInfo (r:1 w:1)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoParachains ParasInfo (max_values: Some(1), max_size: Some(60), added:
|
/// Proof: BridgeUnknownParachains ParasInfo (max_values: Some(1), max_size: Some(60), added:
|
||||||
/// 555, mode: MaxEncodedLen)
|
/// 555, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoParachains ImportedParaHashes (r:1 w:1)
|
/// Storage: BridgeUnknownParachains ImportedParaHashes (r:1 w:1)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoParachains ImportedParaHashes (max_values: Some(1024), max_size:
|
/// Proof: BridgeUnknownParachains ImportedParaHashes (max_values: Some(1024), max_size:
|
||||||
/// Some(64), added: 1549, mode: MaxEncodedLen)
|
/// Some(64), added: 1549, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoParachains ImportedParaHeads (r:0 w:1)
|
/// Storage: BridgeUnknownParachains ImportedParaHeads (r:0 w:1)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoParachains ImportedParaHeads (max_values: Some(1024), max_size:
|
/// Proof: BridgeUnknownParachains ImportedParaHeads (max_values: Some(1024), max_size:
|
||||||
/// Some(196), added: 1681, mode: MaxEncodedLen)
|
/// Some(196), added: 1681, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// The range of component `p` is `[1, 2]`.
|
/// The range of component `p` is `[1, 2]`.
|
||||||
@@ -204,29 +204,29 @@ impl WeightInfo for () {
|
|||||||
.saturating_add(RocksDbWeight::get().reads(4_u64))
|
.saturating_add(RocksDbWeight::get().reads(4_u64))
|
||||||
.saturating_add(RocksDbWeight::get().writes(3_u64))
|
.saturating_add(RocksDbWeight::get().writes(3_u64))
|
||||||
}
|
}
|
||||||
/// Storage: BridgeRialtoParachains PalletOperatingMode (r:1 w:0)
|
/// Storage: BridgeUnknownParachains PalletOperatingMode (r:1 w:0)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoParachains PalletOperatingMode (max_values: Some(1), max_size: Some(1),
|
/// Proof: BridgeUnknownParachains PalletOperatingMode (max_values: Some(1), max_size: Some(1),
|
||||||
/// added: 496, mode: MaxEncodedLen)
|
/// added: 496, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoGrandpa ImportedHeaders (r:1 w:0)
|
/// Storage: BridgeUnknownGrandpa ImportedHeaders (r:1 w:0)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68),
|
/// Proof: BridgeUnknownGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68),
|
||||||
/// added: 2048, mode: MaxEncodedLen)
|
/// added: 2048, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoParachains ParasInfo (r:1 w:1)
|
/// Storage: BridgeUnknownParachains ParasInfo (r:1 w:1)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoParachains ParasInfo (max_values: Some(1), max_size: Some(60), added:
|
/// Proof: BridgeUnknownParachains ParasInfo (max_values: Some(1), max_size: Some(60), added:
|
||||||
/// 555, mode: MaxEncodedLen)
|
/// 555, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoParachains ImportedParaHashes (r:1 w:1)
|
/// Storage: BridgeUnknownParachains ImportedParaHashes (r:1 w:1)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoParachains ImportedParaHashes (max_values: Some(1024), max_size:
|
/// Proof: BridgeUnknownParachains ImportedParaHashes (max_values: Some(1024), max_size:
|
||||||
/// Some(64), added: 1549, mode: MaxEncodedLen)
|
/// Some(64), added: 1549, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoParachains ImportedParaHeads (r:0 w:1)
|
/// Storage: BridgeUnknownParachains ImportedParaHeads (r:0 w:1)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoParachains ImportedParaHeads (max_values: Some(1024), max_size:
|
/// Proof: BridgeUnknownParachains ImportedParaHeads (max_values: Some(1024), max_size:
|
||||||
/// Some(196), added: 1681, mode: MaxEncodedLen)
|
/// Some(196), added: 1681, mode: MaxEncodedLen)
|
||||||
fn submit_parachain_heads_with_1kb_proof() -> Weight {
|
fn submit_parachain_heads_with_1kb_proof() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
@@ -237,29 +237,29 @@ impl WeightInfo for () {
|
|||||||
.saturating_add(RocksDbWeight::get().reads(4_u64))
|
.saturating_add(RocksDbWeight::get().reads(4_u64))
|
||||||
.saturating_add(RocksDbWeight::get().writes(3_u64))
|
.saturating_add(RocksDbWeight::get().writes(3_u64))
|
||||||
}
|
}
|
||||||
/// Storage: BridgeRialtoParachains PalletOperatingMode (r:1 w:0)
|
/// Storage: BridgeUnknownParachains PalletOperatingMode (r:1 w:0)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoParachains PalletOperatingMode (max_values: Some(1), max_size: Some(1),
|
/// Proof: BridgeUnknownParachains PalletOperatingMode (max_values: Some(1), max_size: Some(1),
|
||||||
/// added: 496, mode: MaxEncodedLen)
|
/// added: 496, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoGrandpa ImportedHeaders (r:1 w:0)
|
/// Storage: BridgeUnknownGrandpa ImportedHeaders (r:1 w:0)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68),
|
/// Proof: BridgeUnknownGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68),
|
||||||
/// added: 2048, mode: MaxEncodedLen)
|
/// added: 2048, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoParachains ParasInfo (r:1 w:1)
|
/// Storage: BridgeUnknownParachains ParasInfo (r:1 w:1)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoParachains ParasInfo (max_values: Some(1), max_size: Some(60), added:
|
/// Proof: BridgeUnknownParachains ParasInfo (max_values: Some(1), max_size: Some(60), added:
|
||||||
/// 555, mode: MaxEncodedLen)
|
/// 555, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoParachains ImportedParaHashes (r:1 w:1)
|
/// Storage: BridgeUnknownParachains ImportedParaHashes (r:1 w:1)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoParachains ImportedParaHashes (max_values: Some(1024), max_size:
|
/// Proof: BridgeUnknownParachains ImportedParaHashes (max_values: Some(1024), max_size:
|
||||||
/// Some(64), added: 1549, mode: MaxEncodedLen)
|
/// Some(64), added: 1549, mode: MaxEncodedLen)
|
||||||
///
|
///
|
||||||
/// Storage: BridgeRialtoParachains ImportedParaHeads (r:0 w:1)
|
/// Storage: BridgeUnknownParachains ImportedParaHeads (r:0 w:1)
|
||||||
///
|
///
|
||||||
/// Proof: BridgeRialtoParachains ImportedParaHeads (max_values: Some(1024), max_size:
|
/// Proof: BridgeUnknownParachains ImportedParaHeads (max_values: Some(1024), max_size:
|
||||||
/// Some(196), added: 1681, mode: MaxEncodedLen)
|
/// Some(196), added: 1681, mode: MaxEncodedLen)
|
||||||
fn submit_parachain_heads_with_16kb_proof() -> Weight {
|
fn submit_parachain_heads_with_16kb_proof() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ use frame_support::weights::{RuntimeDbWeight, Weight};
|
|||||||
pub const DEFAULT_PARACHAIN_HEAD_SIZE: u32 = 384;
|
pub const DEFAULT_PARACHAIN_HEAD_SIZE: u32 = 384;
|
||||||
|
|
||||||
/// Number of extra bytes (excluding size of storage value itself) of storage proof, built at
|
/// Number of extra bytes (excluding size of storage value itself) of storage proof, built at
|
||||||
/// the Rialto chain.
|
/// some generic chain.
|
||||||
pub const EXTRA_STORAGE_PROOF_SIZE: u32 = 1024;
|
pub const EXTRA_STORAGE_PROOF_SIZE: u32 = 1024;
|
||||||
|
|
||||||
/// Extended weight info.
|
/// Extended weight info.
|
||||||
|
|||||||
@@ -30,7 +30,6 @@ sp-std = { path = "../../../substrate/primitives/std", default-features = false
|
|||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
bp-runtime = { path = "../../primitives/runtime" }
|
bp-runtime = { path = "../../primitives/runtime" }
|
||||||
pallet-balances = { path = "../../../substrate/frame/balances" }
|
pallet-balances = { path = "../../../substrate/frame/balances" }
|
||||||
sp-core = { path = "../../../substrate/primitives/core" }
|
|
||||||
sp-io = { path = "../../../substrate/primitives/io" }
|
sp-io = { path = "../../../substrate/primitives/io" }
|
||||||
sp-runtime = { path = "../../../substrate/primitives/runtime" }
|
sp-runtime = { path = "../../../substrate/primitives/runtime" }
|
||||||
|
|
||||||
|
|||||||
@@ -22,12 +22,10 @@ use bp_messages::LaneId;
|
|||||||
use bp_relayers::{
|
use bp_relayers::{
|
||||||
PayRewardFromAccount, PaymentProcedure, RewardsAccountOwner, RewardsAccountParams,
|
PayRewardFromAccount, PaymentProcedure, RewardsAccountOwner, RewardsAccountParams,
|
||||||
};
|
};
|
||||||
use frame_support::{parameter_types, traits::fungible::Mutate, weights::RuntimeDbWeight};
|
use frame_support::{
|
||||||
use sp_core::H256;
|
derive_impl, parameter_types, traits::fungible::Mutate, weights::RuntimeDbWeight,
|
||||||
use sp_runtime::{
|
|
||||||
traits::{BlakeTwo256, ConstU32, IdentityLookup},
|
|
||||||
BuildStorage,
|
|
||||||
};
|
};
|
||||||
|
use sp_runtime::BuildStorage;
|
||||||
|
|
||||||
pub type AccountId = u64;
|
pub type AccountId = u64;
|
||||||
pub type Balance = u64;
|
pub type Balance = u64;
|
||||||
@@ -61,47 +59,17 @@ parameter_types! {
|
|||||||
pub const Lease: BlockNumber = 8;
|
pub const Lease: BlockNumber = 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive_impl(frame_system::config_preludes::TestDefaultConfig as frame_system::DefaultConfig)]
|
||||||
impl frame_system::Config for TestRuntime {
|
impl frame_system::Config for TestRuntime {
|
||||||
type RuntimeOrigin = RuntimeOrigin;
|
|
||||||
type Nonce = u64;
|
|
||||||
type RuntimeCall = RuntimeCall;
|
|
||||||
type Block = Block;
|
type Block = Block;
|
||||||
type Hash = H256;
|
|
||||||
type Hashing = BlakeTwo256;
|
|
||||||
type AccountId = AccountId;
|
|
||||||
type Lookup = IdentityLookup<Self::AccountId>;
|
|
||||||
type RuntimeEvent = RuntimeEvent;
|
|
||||||
type BlockHashCount = frame_support::traits::ConstU64<250>;
|
|
||||||
type Version = ();
|
|
||||||
type PalletInfo = PalletInfo;
|
|
||||||
type AccountData = pallet_balances::AccountData<Balance>;
|
type AccountData = pallet_balances::AccountData<Balance>;
|
||||||
type OnNewAccount = ();
|
|
||||||
type OnKilledAccount = ();
|
|
||||||
type BaseCallFilter = frame_support::traits::Everything;
|
|
||||||
type SystemWeightInfo = ();
|
|
||||||
type BlockWeights = ();
|
|
||||||
type BlockLength = ();
|
|
||||||
type DbWeight = DbWeight;
|
type DbWeight = DbWeight;
|
||||||
type SS58Prefix = ();
|
|
||||||
type OnSetCode = ();
|
|
||||||
type MaxConsumers = frame_support::traits::ConstU32<16>;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive_impl(pallet_balances::config_preludes::TestDefaultConfig as pallet_balances::DefaultConfig)]
|
||||||
impl pallet_balances::Config for TestRuntime {
|
impl pallet_balances::Config for TestRuntime {
|
||||||
type MaxLocks = ();
|
|
||||||
type Balance = Balance;
|
|
||||||
type DustRemoval = ();
|
|
||||||
type RuntimeEvent = RuntimeEvent;
|
|
||||||
type ExistentialDeposit = ExistentialDeposit;
|
|
||||||
type AccountStore = frame_system::Pallet<TestRuntime>;
|
|
||||||
type WeightInfo = ();
|
|
||||||
type MaxReserves = ConstU32<1>;
|
|
||||||
type ReserveIdentifier = [u8; 8];
|
type ReserveIdentifier = [u8; 8];
|
||||||
type RuntimeHoldReason = RuntimeHoldReason;
|
type AccountStore = System;
|
||||||
type RuntimeFreezeReason = RuntimeFreezeReason;
|
|
||||||
type FreezeIdentifier = ();
|
|
||||||
type MaxHolds = ConstU32<0>;
|
|
||||||
type MaxFreezes = ConstU32<0>;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
impl pallet_bridge_relayers::Config for TestRuntime {
|
impl pallet_bridge_relayers::Config for TestRuntime {
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
|
//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
|
||||||
|
|
||||||
// Executed Command:
|
// Executed Command:
|
||||||
// target/release/millau-bridge-node
|
// target/release/rip-bridge-node
|
||||||
// benchmark
|
// benchmark
|
||||||
// pallet
|
// pallet
|
||||||
// --chain=dev
|
// --chain=dev
|
||||||
|
|||||||
@@ -19,13 +19,9 @@
|
|||||||
use crate as pallet_xcm_bridge_hub_router;
|
use crate as pallet_xcm_bridge_hub_router;
|
||||||
|
|
||||||
use bp_xcm_bridge_hub_router::XcmChannelStatusProvider;
|
use bp_xcm_bridge_hub_router::XcmChannelStatusProvider;
|
||||||
use frame_support::{construct_runtime, parameter_types};
|
use frame_support::{construct_runtime, derive_impl, parameter_types};
|
||||||
use frame_system::EnsureRoot;
|
use frame_system::EnsureRoot;
|
||||||
use sp_core::H256;
|
use sp_runtime::{traits::ConstU128, BuildStorage};
|
||||||
use sp_runtime::{
|
|
||||||
traits::{BlakeTwo256, ConstU128, IdentityLookup},
|
|
||||||
BuildStorage,
|
|
||||||
};
|
|
||||||
use xcm::prelude::*;
|
use xcm::prelude::*;
|
||||||
use xcm_builder::{NetworkExportTable, NetworkExportTableItem};
|
use xcm_builder::{NetworkExportTable, NetworkExportTableItem};
|
||||||
|
|
||||||
@@ -64,30 +60,9 @@ parameter_types! {
|
|||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive_impl(frame_system::config_preludes::TestDefaultConfig as frame_system::DefaultConfig)]
|
||||||
impl frame_system::Config for TestRuntime {
|
impl frame_system::Config for TestRuntime {
|
||||||
type RuntimeOrigin = RuntimeOrigin;
|
|
||||||
type Nonce = u64;
|
|
||||||
type RuntimeCall = RuntimeCall;
|
|
||||||
type Block = Block;
|
type Block = Block;
|
||||||
type Hash = H256;
|
|
||||||
type Hashing = BlakeTwo256;
|
|
||||||
type AccountId = AccountId;
|
|
||||||
type Lookup = IdentityLookup<Self::AccountId>;
|
|
||||||
type RuntimeEvent = RuntimeEvent;
|
|
||||||
type BlockHashCount = frame_support::traits::ConstU64<250>;
|
|
||||||
type Version = ();
|
|
||||||
type PalletInfo = PalletInfo;
|
|
||||||
type AccountData = ();
|
|
||||||
type OnNewAccount = ();
|
|
||||||
type OnKilledAccount = ();
|
|
||||||
type BaseCallFilter = frame_support::traits::Everything;
|
|
||||||
type SystemWeightInfo = ();
|
|
||||||
type BlockWeights = ();
|
|
||||||
type BlockLength = ();
|
|
||||||
type DbWeight = ();
|
|
||||||
type SS58Prefix = ();
|
|
||||||
type OnSetCode = ();
|
|
||||||
type MaxConsumers = frame_support::traits::ConstU32<16>;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
impl pallet_xcm_bridge_hub_router::Config<()> for TestRuntime {
|
impl pallet_xcm_bridge_hub_router::Config<()> for TestRuntime {
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
//! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
|
//! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
|
||||||
|
|
||||||
// Executed Command:
|
// Executed Command:
|
||||||
// target/release/millau-bridge-node
|
// target/release/rip-bridge-node
|
||||||
// benchmark
|
// benchmark
|
||||||
// pallet
|
// pallet
|
||||||
// --chain=dev
|
// --chain=dev
|
||||||
|
|||||||
@@ -1,26 +0,0 @@
|
|||||||
[package]
|
|
||||||
name = "bp-asset-hub-kusama"
|
|
||||||
description = "Primitives of AssetHubKusama parachain runtime."
|
|
||||||
version = "0.1.0"
|
|
||||||
authors.workspace = true
|
|
||||||
edition.workspace = true
|
|
||||||
license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
|
|
||||||
|
|
||||||
[dependencies]
|
|
||||||
codec = { package = "parity-scale-codec", version = "3.1.5", default-features = false }
|
|
||||||
scale-info = { version = "2.10.0", default-features = false, features = ["derive"] }
|
|
||||||
|
|
||||||
# Substrate Dependencies
|
|
||||||
frame-support = { path = "../../../substrate/frame/support", default-features = false }
|
|
||||||
|
|
||||||
# Bridge Dependencies
|
|
||||||
bp-xcm-bridge-hub-router = { path = "../xcm-bridge-hub-router", default-features = false }
|
|
||||||
|
|
||||||
[features]
|
|
||||||
default = [ "std" ]
|
|
||||||
std = [
|
|
||||||
"bp-xcm-bridge-hub-router/std",
|
|
||||||
"codec/std",
|
|
||||||
"frame-support/std",
|
|
||||||
"scale-info/std",
|
|
||||||
]
|
|
||||||
@@ -1,49 +0,0 @@
|
|||||||
// Copyright (C) Parity Technologies (UK) Ltd.
|
|
||||||
// This file is part of Parity Bridges Common.
|
|
||||||
|
|
||||||
// Parity Bridges Common is free software: you can redistribute it and/or modify
|
|
||||||
// it under the terms of the GNU General Public License as published by
|
|
||||||
// the Free Software Foundation, either version 3 of the License, or
|
|
||||||
// (at your option) any later version.
|
|
||||||
|
|
||||||
// Parity Bridges Common is distributed in the hope that it will be useful,
|
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
// GNU General Public License for more details.
|
|
||||||
|
|
||||||
// You should have received a copy of the GNU General Public License
|
|
||||||
// along with Parity Bridges Common. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
//! Module with configuration which reflects AssetHubKusama runtime setup.
|
|
||||||
|
|
||||||
#![cfg_attr(not(feature = "std"), no_std)]
|
|
||||||
|
|
||||||
use codec::{Decode, Encode};
|
|
||||||
use scale_info::TypeInfo;
|
|
||||||
|
|
||||||
pub use bp_xcm_bridge_hub_router::XcmBridgeHubRouterCall;
|
|
||||||
|
|
||||||
/// `AssetHubKusama` Runtime `Call` enum.
|
|
||||||
///
|
|
||||||
/// The enum represents a subset of possible `Call`s we can send to `AssetHubKusama` chain.
|
|
||||||
/// Ideally this code would be auto-generated from metadata, because we want to
|
|
||||||
/// avoid depending directly on the ENTIRE runtime just to get the encoding of `Dispatchable`s.
|
|
||||||
///
|
|
||||||
/// All entries here (like pretty much in the entire file) must be kept in sync with
|
|
||||||
/// `AssetHubKusama` `construct_runtime`, so that we maintain SCALE-compatibility.
|
|
||||||
#[allow(clippy::large_enum_variant)]
|
|
||||||
#[derive(Encode, Decode, Debug, PartialEq, Eq, Clone, TypeInfo)]
|
|
||||||
pub enum Call {
|
|
||||||
/// `ToPolkadotXcmRouter` bridge pallet.
|
|
||||||
#[codec(index = 43)]
|
|
||||||
ToPolkadotXcmRouter(XcmBridgeHubRouterCall),
|
|
||||||
}
|
|
||||||
|
|
||||||
frame_support::parameter_types! {
|
|
||||||
/// Some sane weight to execute `xcm::Transact(pallet-xcm-bridge-hub-router::Call::report_bridge_status)`.
|
|
||||||
pub const XcmBridgeHubRouterTransactCallMaxWeight: frame_support::weights::Weight = frame_support::weights::Weight::from_parts(200_000_000, 6144);
|
|
||||||
|
|
||||||
/// Base delivery fee to `BridgeHubKusama`.
|
|
||||||
/// (initially was calculated `170733333` + `10%` by test `BridgeHubKusama::can_calculate_weight_for_paid_export_message_with_reserve_transfer`)
|
|
||||||
pub const BridgeHubKusamaBaseFeeInDots: u128 = 187806666;
|
|
||||||
}
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
[package]
|
|
||||||
name = "bp-asset-hub-polkadot"
|
|
||||||
description = "Primitives of AssetHubPolkadot parachain runtime."
|
|
||||||
version = "0.1.0"
|
|
||||||
authors.workspace = true
|
|
||||||
edition.workspace = true
|
|
||||||
license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
|
|
||||||
|
|
||||||
[dependencies]
|
|
||||||
codec = { package = "parity-scale-codec", version = "3.1.5", default-features = false }
|
|
||||||
scale-info = { version = "2.10.0", default-features = false, features = ["derive"] }
|
|
||||||
|
|
||||||
# Substrate Dependencies
|
|
||||||
frame-support = { path = "../../../substrate/frame/support", default-features = false }
|
|
||||||
sp-runtime = { path = "../../../substrate/primitives/runtime", default-features = false }
|
|
||||||
|
|
||||||
# Bridge Dependencies
|
|
||||||
bp-xcm-bridge-hub-router = { path = "../xcm-bridge-hub-router", default-features = false }
|
|
||||||
|
|
||||||
[features]
|
|
||||||
default = [ "std" ]
|
|
||||||
std = [
|
|
||||||
"bp-xcm-bridge-hub-router/std",
|
|
||||||
"codec/std",
|
|
||||||
"frame-support/std",
|
|
||||||
"scale-info/std",
|
|
||||||
"sp-runtime/std",
|
|
||||||
]
|
|
||||||
@@ -1,49 +0,0 @@
|
|||||||
// Copyright (C) Parity Technologies (UK) Ltd.
|
|
||||||
// This file is part of Parity Bridges Common.
|
|
||||||
|
|
||||||
// Parity Bridges Common is free software: you can redistribute it and/or modify
|
|
||||||
// it under the terms of the GNU General Public License as published by
|
|
||||||
// the Free Software Foundation, either version 3 of the License, or
|
|
||||||
// (at your option) any later version.
|
|
||||||
|
|
||||||
// Parity Bridges Common is distributed in the hope that it will be useful,
|
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
// GNU General Public License for more details.
|
|
||||||
|
|
||||||
// You should have received a copy of the GNU General Public License
|
|
||||||
// along with Parity Bridges Common. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
//! Module with configuration which reflects AssetHubPolkadot runtime setup.
|
|
||||||
|
|
||||||
#![cfg_attr(not(feature = "std"), no_std)]
|
|
||||||
|
|
||||||
use codec::{Decode, Encode};
|
|
||||||
use scale_info::TypeInfo;
|
|
||||||
|
|
||||||
pub use bp_xcm_bridge_hub_router::XcmBridgeHubRouterCall;
|
|
||||||
|
|
||||||
/// `AssetHubPolkadot` Runtime `Call` enum.
|
|
||||||
///
|
|
||||||
/// The enum represents a subset of possible `Call`s we can send to `AssetHubPolkadot` chain.
|
|
||||||
/// Ideally this code would be auto-generated from metadata, because we want to
|
|
||||||
/// avoid depending directly on the ENTIRE runtime just to get the encoding of `Dispatchable`s.
|
|
||||||
///
|
|
||||||
/// All entries here (like pretty much in the entire file) must be kept in sync with
|
|
||||||
/// `AssetHubPolkadot` `construct_runtime`, so that we maintain SCALE-compatibility.
|
|
||||||
#[allow(clippy::large_enum_variant)]
|
|
||||||
#[derive(Encode, Decode, Debug, PartialEq, Eq, Clone, TypeInfo)]
|
|
||||||
pub enum Call {
|
|
||||||
/// `ToKusamaXcmRouter` bridge pallet.
|
|
||||||
#[codec(index = 43)]
|
|
||||||
ToKusamaXcmRouter(XcmBridgeHubRouterCall),
|
|
||||||
}
|
|
||||||
|
|
||||||
frame_support::parameter_types! {
|
|
||||||
/// Some sane weight to execute `xcm::Transact(pallet-xcm-bridge-hub-router::Call::report_bridge_status)`.
|
|
||||||
pub const XcmBridgeHubRouterTransactCallMaxWeight: frame_support::weights::Weight = frame_support::weights::Weight::from_parts(200_000_000, 6144);
|
|
||||||
|
|
||||||
/// Base delivery fee to `BridgeHubPolkadot`.
|
|
||||||
/// (initially was calculated `51220000` + `10%` by test `BridgeHubPolkadot::can_calculate_weight_for_paid_export_message_with_reserve_transfer`)
|
|
||||||
pub const BridgeHubPolkadotBaseFeeInDots: u128 = 56342000;
|
|
||||||
}
|
|
||||||
@@ -34,9 +34,6 @@ pub use bp_xcm_bridge_hub_router::XcmBridgeHubRouterCall;
|
|||||||
#[allow(clippy::large_enum_variant)]
|
#[allow(clippy::large_enum_variant)]
|
||||||
#[derive(Encode, Decode, Debug, PartialEq, Eq, Clone, TypeInfo)]
|
#[derive(Encode, Decode, Debug, PartialEq, Eq, Clone, TypeInfo)]
|
||||||
pub enum Call {
|
pub enum Call {
|
||||||
/// `ToWococoXcmRouter` bridge pallet.
|
|
||||||
#[codec(index = 43)]
|
|
||||||
ToWococoXcmRouter(XcmBridgeHubRouterCall),
|
|
||||||
/// `ToWestendXcmRouter` bridge pallet.
|
/// `ToWestendXcmRouter` bridge pallet.
|
||||||
#[codec(index = 45)]
|
#[codec(index = 45)]
|
||||||
ToWestendXcmRouter(XcmBridgeHubRouterCall),
|
ToWestendXcmRouter(XcmBridgeHubRouterCall),
|
||||||
|
|||||||
@@ -1,26 +0,0 @@
|
|||||||
[package]
|
|
||||||
name = "bp-asset-hub-wococo"
|
|
||||||
description = "Primitives of AssetHubWococo parachain runtime."
|
|
||||||
version = "0.1.0"
|
|
||||||
authors.workspace = true
|
|
||||||
edition.workspace = true
|
|
||||||
license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
|
|
||||||
|
|
||||||
[dependencies]
|
|
||||||
codec = { package = "parity-scale-codec", version = "3.1.5", default-features = false }
|
|
||||||
scale-info = { version = "2.10.0", default-features = false, features = ["derive"] }
|
|
||||||
|
|
||||||
# Substrate Dependencies
|
|
||||||
frame-support = { path = "../../../substrate/frame/support", default-features = false }
|
|
||||||
|
|
||||||
# Bridge Dependencies
|
|
||||||
bp-xcm-bridge-hub-router = { path = "../xcm-bridge-hub-router", default-features = false }
|
|
||||||
|
|
||||||
[features]
|
|
||||||
default = [ "std" ]
|
|
||||||
std = [
|
|
||||||
"bp-xcm-bridge-hub-router/std",
|
|
||||||
"codec/std",
|
|
||||||
"frame-support/std",
|
|
||||||
"scale-info/std",
|
|
||||||
]
|
|
||||||
@@ -1,48 +0,0 @@
|
|||||||
// Copyright (C) Parity Technologies (UK) Ltd.
|
|
||||||
// This file is part of Parity Bridges Common.
|
|
||||||
|
|
||||||
// Parity Bridges Common is free software: you can redistribute it and/or modify
|
|
||||||
// it under the terms of the GNU General Public License as published by
|
|
||||||
// the Free Software Foundation, either version 3 of the License, or
|
|
||||||
// (at your option) any later version.
|
|
||||||
|
|
||||||
// Parity Bridges Common is distributed in the hope that it will be useful,
|
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
// GNU General Public License for more details.
|
|
||||||
|
|
||||||
// You should have received a copy of the GNU General Public License
|
|
||||||
// along with Parity Bridges Common. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
//! Module with configuration which reflects AssetHubWococo runtime setup.
|
|
||||||
|
|
||||||
#![cfg_attr(not(feature = "std"), no_std)]
|
|
||||||
|
|
||||||
use codec::{Decode, Encode};
|
|
||||||
use scale_info::TypeInfo;
|
|
||||||
|
|
||||||
pub use bp_xcm_bridge_hub_router::XcmBridgeHubRouterCall;
|
|
||||||
|
|
||||||
/// `AssetHubWococo` Runtime `Call` enum.
|
|
||||||
///
|
|
||||||
/// The enum represents a subset of possible `Call`s we can send to `AssetHubWococo` chain.
|
|
||||||
/// Ideally this code would be auto-generated from metadata, because we want to
|
|
||||||
/// avoid depending directly on the ENTIRE runtime just to get the encoding of `Dispatchable`s.
|
|
||||||
///
|
|
||||||
/// All entries here (like pretty much in the entire file) must be kept in sync with
|
|
||||||
/// `AssetHubWococo` `construct_runtime`, so that we maintain SCALE-compatibility.
|
|
||||||
#[allow(clippy::large_enum_variant)]
|
|
||||||
#[derive(Encode, Decode, Debug, PartialEq, Eq, Clone, TypeInfo)]
|
|
||||||
pub enum Call {
|
|
||||||
/// `ToRococoXcmRouter` bridge pallet.
|
|
||||||
#[codec(index = 44)]
|
|
||||||
ToRococoXcmRouter(XcmBridgeHubRouterCall),
|
|
||||||
}
|
|
||||||
|
|
||||||
frame_support::parameter_types! {
|
|
||||||
/// Some sane weight to execute `xcm::Transact(pallet-xcm-bridge-hub-router::Call::report_bridge_status)`.
|
|
||||||
pub const XcmBridgeHubRouterTransactCallMaxWeight: frame_support::weights::Weight = frame_support::weights::Weight::from_parts(200_000_000, 6144);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Identifier of AssetHubWococo in the Wococo relay chain.
|
|
||||||
pub const ASSET_HUB_WOCOCO_PARACHAIN_ID: u32 = 1000;
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "bp-bridge-hub-cumulus"
|
name = "bp-bridge-hub-cumulus"
|
||||||
description = "Primitives of BridgeHubRococo parachain runtime."
|
description = "Primitives for BridgeHub parachain runtimes."
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
authors.workspace = true
|
authors.workspace = true
|
||||||
edition.workspace = true
|
edition.workspace = true
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "bp-bridge-hub-kusama"
|
name = "bp-bridge-hub-kusama"
|
||||||
description = "Primitives of BridgeHubRococo parachain runtime."
|
description = "Primitives of BridgeHubKusama parachain runtime."
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
authors.workspace = true
|
authors.workspace = true
|
||||||
edition.workspace = true
|
edition.workspace = true
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "bp-bridge-hub-polkadot"
|
name = "bp-bridge-hub-polkadot"
|
||||||
description = "Primitives of BridgeHubWococo parachain runtime."
|
description = "Primitives of BridgeHubPolkadot parachain runtime."
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
authors.workspace = true
|
authors.workspace = true
|
||||||
edition.workspace = true
|
edition.workspace = true
|
||||||
|
|||||||
@@ -74,9 +74,6 @@ pub const WITH_BRIDGE_HUB_ROCOCO_MESSAGES_PALLET_NAME: &str = "BridgeRococoMessa
|
|||||||
/// chains.
|
/// chains.
|
||||||
pub const WITH_BRIDGE_HUB_ROCOCO_RELAYERS_PALLET_NAME: &str = "BridgeRelayers";
|
pub const WITH_BRIDGE_HUB_ROCOCO_RELAYERS_PALLET_NAME: &str = "BridgeRelayers";
|
||||||
|
|
||||||
/// Pallet index of `BridgeWococoMessages: pallet_bridge_messages::<Instance1>`.
|
|
||||||
pub const WITH_BRIDGE_ROCOCO_TO_WOCOCO_MESSAGES_PALLET_INDEX: u8 = 46;
|
|
||||||
|
|
||||||
/// Pallet index of `BridgeWestendMessages: pallet_bridge_messages::<Instance3>`.
|
/// Pallet index of `BridgeWestendMessages: pallet_bridge_messages::<Instance3>`.
|
||||||
pub const WITH_BRIDGE_ROCOCO_TO_WESTEND_MESSAGES_PALLET_INDEX: u8 = 51;
|
pub const WITH_BRIDGE_ROCOCO_TO_WESTEND_MESSAGES_PALLET_INDEX: u8 = 51;
|
||||||
|
|
||||||
|
|||||||
@@ -1,34 +0,0 @@
|
|||||||
[package]
|
|
||||||
name = "bp-bridge-hub-wococo"
|
|
||||||
description = "Primitives of BridgeHubWococo parachain runtime."
|
|
||||||
version = "0.1.0"
|
|
||||||
authors.workspace = true
|
|
||||||
edition.workspace = true
|
|
||||||
license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
|
|
||||||
|
|
||||||
[dependencies]
|
|
||||||
|
|
||||||
# Bridge Dependencies
|
|
||||||
|
|
||||||
bp-bridge-hub-cumulus = { path = "../chain-bridge-hub-cumulus", default-features = false }
|
|
||||||
bp-runtime = { path = "../runtime", default-features = false }
|
|
||||||
bp-messages = { path = "../messages", default-features = false }
|
|
||||||
|
|
||||||
# Substrate Based Dependencies
|
|
||||||
|
|
||||||
frame-support = { path = "../../../substrate/frame/support", default-features = false }
|
|
||||||
sp-api = { path = "../../../substrate/primitives/api", default-features = false }
|
|
||||||
sp-runtime = { path = "../../../substrate/primitives/runtime", default-features = false }
|
|
||||||
sp-std = { path = "../../../substrate/primitives/std", default-features = false }
|
|
||||||
|
|
||||||
[features]
|
|
||||||
default = [ "std" ]
|
|
||||||
std = [
|
|
||||||
"bp-bridge-hub-cumulus/std",
|
|
||||||
"bp-messages/std",
|
|
||||||
"bp-runtime/std",
|
|
||||||
"frame-support/std",
|
|
||||||
"sp-api/std",
|
|
||||||
"sp-runtime/std",
|
|
||||||
"sp-std/std",
|
|
||||||
]
|
|
||||||
@@ -1,90 +0,0 @@
|
|||||||
// Copyright (C) Parity Technologies (UK) Ltd.
|
|
||||||
// This file is part of Parity Bridges Common.
|
|
||||||
|
|
||||||
// Parity Bridges Common is free software: you can redistribute it and/or modify
|
|
||||||
// it under the terms of the GNU General Public License as published by
|
|
||||||
// the Free Software Foundation, either version 3 of the License, or
|
|
||||||
// (at your option) any later version.
|
|
||||||
|
|
||||||
// Parity Bridges Common is distributed in the hope that it will be useful,
|
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
// GNU General Public License for more details.
|
|
||||||
|
|
||||||
// You should have received a copy of the GNU General Public License
|
|
||||||
// along with Parity Bridges Common. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
//! Module with configuration which reflects BridgeHubWococo runtime setup
|
|
||||||
//! (AccountId, Headers, Hashes...)
|
|
||||||
|
|
||||||
#![cfg_attr(not(feature = "std"), no_std)]
|
|
||||||
|
|
||||||
pub use bp_bridge_hub_cumulus::*;
|
|
||||||
use bp_messages::*;
|
|
||||||
use bp_runtime::{
|
|
||||||
decl_bridge_finality_runtime_apis, decl_bridge_messages_runtime_apis, Chain, Parachain,
|
|
||||||
};
|
|
||||||
use frame_support::dispatch::DispatchClass;
|
|
||||||
use sp_runtime::RuntimeDebug;
|
|
||||||
|
|
||||||
/// BridgeHubWococo parachain.
|
|
||||||
#[derive(RuntimeDebug)]
|
|
||||||
pub struct BridgeHubWococo;
|
|
||||||
|
|
||||||
impl Chain for BridgeHubWococo {
|
|
||||||
type BlockNumber = BlockNumber;
|
|
||||||
type Hash = Hash;
|
|
||||||
type Hasher = Hasher;
|
|
||||||
type Header = Header;
|
|
||||||
|
|
||||||
type AccountId = AccountId;
|
|
||||||
type Balance = Balance;
|
|
||||||
type Nonce = Nonce;
|
|
||||||
type Signature = Signature;
|
|
||||||
|
|
||||||
fn max_extrinsic_size() -> u32 {
|
|
||||||
*BlockLength::get().max.get(DispatchClass::Normal)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn max_extrinsic_weight() -> Weight {
|
|
||||||
BlockWeights::get()
|
|
||||||
.get(DispatchClass::Normal)
|
|
||||||
.max_extrinsic
|
|
||||||
.unwrap_or(Weight::MAX)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Parachain for BridgeHubWococo {
|
|
||||||
const PARACHAIN_ID: u32 = BRIDGE_HUB_WOCOCO_PARACHAIN_ID;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Identifier of BridgeHubWococo in the Wococo relay chain.
|
|
||||||
pub const BRIDGE_HUB_WOCOCO_PARACHAIN_ID: u32 = 1014;
|
|
||||||
|
|
||||||
/// Name of the With-BridgeHubWococo messages pallet instance that is deployed at bridged chains.
|
|
||||||
pub const WITH_BRIDGE_HUB_WOCOCO_MESSAGES_PALLET_NAME: &str = "BridgeWococoMessages";
|
|
||||||
|
|
||||||
/// Name of the With-BridgeHubWococo bridge-relayers pallet instance that is deployed at bridged
|
|
||||||
/// chains.
|
|
||||||
pub const WITH_BRIDGE_HUB_WOCOCO_RELAYERS_PALLET_NAME: &str = "BridgeRelayers";
|
|
||||||
|
|
||||||
/// Pallet index of `BridgeRococoMessages: pallet_bridge_messages::<Instance2>`.
|
|
||||||
pub const WITH_BRIDGE_WOCOCO_TO_ROCOCO_MESSAGES_PALLET_INDEX: u8 = 45;
|
|
||||||
|
|
||||||
decl_bridge_finality_runtime_apis!(bridge_hub_wococo);
|
|
||||||
decl_bridge_messages_runtime_apis!(bridge_hub_wococo);
|
|
||||||
|
|
||||||
frame_support::parameter_types! {
|
|
||||||
/// The XCM fee that is paid for executing XCM program (with `ExportMessage` instruction) at the Wococo
|
|
||||||
/// BridgeHub.
|
|
||||||
/// (initially was calculated by test `BridgeHubWococo::can_calculate_weight_for_paid_export_message_with_reserve_transfer` + `33%`)
|
|
||||||
pub const BridgeHubWococoBaseXcmFeeInWocs: u128 = 1624803349;
|
|
||||||
|
|
||||||
/// Transaction fee that is paid at the Wococo BridgeHub for delivering single inbound message.
|
|
||||||
/// (initially was calculated by test `BridgeHubWococo::can_calculate_fee_for_complex_message_delivery_transaction` + `33%`)
|
|
||||||
pub const BridgeHubWococoBaseDeliveryFeeInWocs: u128 = 6417262881;
|
|
||||||
|
|
||||||
/// Transaction fee that is paid at the Wococo BridgeHub for delivering single outbound message confirmation.
|
|
||||||
/// (initially was calculated by test `BridgeHubWococo::can_calculate_fee_for_complex_message_confirmation_transaction` + `33%`)
|
|
||||||
pub const BridgeHubWococoBaseConfirmationFeeInWocs: u128 = 6159996668;
|
|
||||||
}
|
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
[package]
|
|
||||||
name = "bp-wococo"
|
|
||||||
description = "Primitives of Wococo runtime."
|
|
||||||
version = "0.1.0"
|
|
||||||
authors.workspace = true
|
|
||||||
edition.workspace = true
|
|
||||||
license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
|
|
||||||
|
|
||||||
[dependencies]
|
|
||||||
|
|
||||||
# Bridge Dependencies
|
|
||||||
|
|
||||||
bp-header-chain = { path = "../header-chain", default-features = false }
|
|
||||||
bp-polkadot-core = { path = "../polkadot-core", default-features = false }
|
|
||||||
bp-runtime = { path = "../runtime", default-features = false }
|
|
||||||
bp-rococo = { path = "../chain-rococo", default-features = false }
|
|
||||||
|
|
||||||
# Substrate Based Dependencies
|
|
||||||
|
|
||||||
frame-support = { path = "../../../substrate/frame/support", default-features = false }
|
|
||||||
sp-api = { path = "../../../substrate/primitives/api", default-features = false }
|
|
||||||
sp-std = { path = "../../../substrate/primitives/std", default-features = false }
|
|
||||||
|
|
||||||
[features]
|
|
||||||
default = [ "std" ]
|
|
||||||
std = [
|
|
||||||
"bp-header-chain/std",
|
|
||||||
"bp-polkadot-core/std",
|
|
||||||
"bp-rococo/std",
|
|
||||||
"bp-runtime/std",
|
|
||||||
"frame-support/std",
|
|
||||||
"sp-api/std",
|
|
||||||
"sp-std/std",
|
|
||||||
]
|
|
||||||
@@ -1,68 +0,0 @@
|
|||||||
// Copyright (C) Parity Technologies (UK) Ltd.
|
|
||||||
// This file is part of Parity Bridges Common.
|
|
||||||
|
|
||||||
// Parity Bridges Common is free software: you can redistribute it and/or modify
|
|
||||||
// it under the terms of the GNU General Public License as published by
|
|
||||||
// the Free Software Foundation, either version 3 of the License, or
|
|
||||||
// (at your option) any later version.
|
|
||||||
|
|
||||||
// Parity Bridges Common is distributed in the hope that it will be useful,
|
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
// GNU General Public License for more details.
|
|
||||||
|
|
||||||
// You should have received a copy of the GNU General Public License
|
|
||||||
// along with Parity Bridges Common. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
#![cfg_attr(not(feature = "std"), no_std)]
|
|
||||||
// RuntimeApi generated functions
|
|
||||||
#![allow(clippy::too_many_arguments)]
|
|
||||||
|
|
||||||
pub use bp_polkadot_core::*;
|
|
||||||
pub use bp_rococo::{
|
|
||||||
SS58Prefix, MAX_AUTHORITIES_COUNT, MAX_NESTED_PARACHAIN_HEAD_DATA_SIZE, PARAS_PALLET_NAME,
|
|
||||||
};
|
|
||||||
|
|
||||||
use bp_header_chain::ChainWithGrandpa;
|
|
||||||
use bp_runtime::{decl_bridge_finality_runtime_apis, Chain};
|
|
||||||
use frame_support::weights::Weight;
|
|
||||||
|
|
||||||
/// Wococo Chain
|
|
||||||
pub struct Wococo;
|
|
||||||
|
|
||||||
impl Chain for Wococo {
|
|
||||||
type BlockNumber = <PolkadotLike as Chain>::BlockNumber;
|
|
||||||
type Hash = <PolkadotLike as Chain>::Hash;
|
|
||||||
type Hasher = <PolkadotLike as Chain>::Hasher;
|
|
||||||
type Header = <PolkadotLike as Chain>::Header;
|
|
||||||
|
|
||||||
type AccountId = <PolkadotLike as Chain>::AccountId;
|
|
||||||
type Balance = <PolkadotLike as Chain>::Balance;
|
|
||||||
type Nonce = <PolkadotLike as Chain>::Nonce;
|
|
||||||
type Signature = <PolkadotLike as Chain>::Signature;
|
|
||||||
|
|
||||||
fn max_extrinsic_size() -> u32 {
|
|
||||||
PolkadotLike::max_extrinsic_size()
|
|
||||||
}
|
|
||||||
|
|
||||||
fn max_extrinsic_weight() -> Weight {
|
|
||||||
PolkadotLike::max_extrinsic_weight()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl ChainWithGrandpa for Wococo {
|
|
||||||
const WITH_CHAIN_GRANDPA_PALLET_NAME: &'static str = WITH_WOCOCO_GRANDPA_PALLET_NAME;
|
|
||||||
const MAX_AUTHORITIES_COUNT: u32 = MAX_AUTHORITIES_COUNT;
|
|
||||||
const REASONABLE_HEADERS_IN_JUSTIFICATON_ANCESTRY: u32 =
|
|
||||||
REASONABLE_HEADERS_IN_JUSTIFICATON_ANCESTRY;
|
|
||||||
const MAX_HEADER_SIZE: u32 = MAX_HEADER_SIZE;
|
|
||||||
const AVERAGE_HEADER_SIZE_IN_JUSTIFICATION: u32 = AVERAGE_HEADER_SIZE_IN_JUSTIFICATION;
|
|
||||||
}
|
|
||||||
|
|
||||||
// The SignedExtension used by Wococo.
|
|
||||||
pub use bp_rococo::CommonSignedExtension as SignedExtension;
|
|
||||||
|
|
||||||
/// Name of the With-Wococo GRANDPA pallet instance that is deployed at bridged chains.
|
|
||||||
pub const WITH_WOCOCO_GRANDPA_PALLET_NAME: &str = "BridgeWococoGrandpa";
|
|
||||||
|
|
||||||
decl_bridge_finality_runtime_apis!(wococo, grandpa);
|
|
||||||
@@ -280,7 +280,7 @@ pub type TransactionEraOf<C> = crate::TransactionEra<BlockNumberOf<C>, HashOf<C>
|
|||||||
/// - constants that are stringified names of runtime API methods:
|
/// - constants that are stringified names of runtime API methods:
|
||||||
/// - `BEST_FINALIZED_<THIS_CHAIN>_HEADER_METHOD`
|
/// - `BEST_FINALIZED_<THIS_CHAIN>_HEADER_METHOD`
|
||||||
/// - `<THIS_CHAIN>_ACCEPTED_<CONSENSUS>_FINALITY_PROOFS_METHOD`
|
/// - `<THIS_CHAIN>_ACCEPTED_<CONSENSUS>_FINALITY_PROOFS_METHOD`
|
||||||
/// The name of the chain has to be specified in snake case (e.g. `rialto_parachain`).
|
/// The name of the chain has to be specified in snake case (e.g. `bridge_hub_polkadot`).
|
||||||
#[macro_export]
|
#[macro_export]
|
||||||
macro_rules! decl_bridge_finality_runtime_apis {
|
macro_rules! decl_bridge_finality_runtime_apis {
|
||||||
($chain: ident $(, $consensus: ident => $justification_type: ty)?) => {
|
($chain: ident $(, $consensus: ident => $justification_type: ty)?) => {
|
||||||
@@ -332,7 +332,7 @@ macro_rules! decl_bridge_finality_runtime_apis {
|
|||||||
/// - `From<ThisChain>InboundLaneApi`
|
/// - `From<ThisChain>InboundLaneApi`
|
||||||
/// - constants that are stringified names of runtime API methods:
|
/// - constants that are stringified names of runtime API methods:
|
||||||
/// - `FROM_<THIS_CHAIN>_MESSAGE_DETAILS_METHOD`,
|
/// - `FROM_<THIS_CHAIN>_MESSAGE_DETAILS_METHOD`,
|
||||||
/// The name of the chain has to be specified in snake case (e.g. `rialto_parachain`).
|
/// The name of the chain has to be specified in snake case (e.g. `bridge_hub_polkadot`).
|
||||||
#[macro_export]
|
#[macro_export]
|
||||||
macro_rules! decl_bridge_messages_runtime_apis {
|
macro_rules! decl_bridge_messages_runtime_apis {
|
||||||
($chain: ident) => {
|
($chain: ident) => {
|
||||||
@@ -390,7 +390,7 @@ macro_rules! decl_bridge_messages_runtime_apis {
|
|||||||
|
|
||||||
/// Convenience macro that declares bridge finality runtime apis, bridge messages runtime apis
|
/// Convenience macro that declares bridge finality runtime apis, bridge messages runtime apis
|
||||||
/// and related constants for a chain.
|
/// and related constants for a chain.
|
||||||
/// The name of the chain has to be specified in snake case (e.g. `rialto_parachain`).
|
/// The name of the chain has to be specified in snake case (e.g. `bridge_hub_polkadot`).
|
||||||
#[macro_export]
|
#[macro_export]
|
||||||
macro_rules! decl_bridge_runtime_apis {
|
macro_rules! decl_bridge_runtime_apis {
|
||||||
($chain: ident $(, $consensus: ident)?) => {
|
($chain: ident $(, $consensus: ident)?) => {
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ pub type BridgeRejectObsoleteHeadersAndMessages = GenericSignedExtensionSchema<(
|
|||||||
/// wildcard/placeholder, which relies on the scale encoding for `()` or `((), ())`, or `((), (),
|
/// wildcard/placeholder, which relies on the scale encoding for `()` or `((), ())`, or `((), (),
|
||||||
/// ())` is the same. So runtime can contains any kind of tuple:
|
/// ())` is the same. So runtime can contains any kind of tuple:
|
||||||
/// `(BridgeRefundBridgeHubRococoMessages)`
|
/// `(BridgeRefundBridgeHubRococoMessages)`
|
||||||
/// `(BridgeRefundBridgeHubRococoMessages, BridgeRefundBridgeHubWococoMessages)`
|
/// `(BridgeRefundBridgeHubRococoMessages, BridgeRefundBridgeHubWestendMessages)`
|
||||||
/// `(BridgeRefundParachainMessages1, ..., BridgeRefundParachainMessagesN)`
|
/// `(BridgeRefundParachainMessages1, ..., BridgeRefundParachainMessagesN)`
|
||||||
pub type RefundBridgedParachainMessagesSchema = GenericSignedExtensionSchema<(), ()>;
|
pub type RefundBridgedParachainMessagesSchema = GenericSignedExtensionSchema<(), ()>;
|
||||||
|
|
||||||
|
|||||||
@@ -61,15 +61,6 @@ pub use sp_runtime::paste;
|
|||||||
/// Use this when something must be shared among all instances.
|
/// Use this when something must be shared among all instances.
|
||||||
pub const NO_INSTANCE_ID: ChainId = [0, 0, 0, 0];
|
pub const NO_INSTANCE_ID: ChainId = [0, 0, 0, 0];
|
||||||
|
|
||||||
/// Rialto chain id.
|
|
||||||
pub const RIALTO_CHAIN_ID: ChainId = *b"rlto";
|
|
||||||
|
|
||||||
/// RialtoParachain chain id.
|
|
||||||
pub const RIALTO_PARACHAIN_CHAIN_ID: ChainId = *b"rlpa";
|
|
||||||
|
|
||||||
/// Millau chain id.
|
|
||||||
pub const MILLAU_CHAIN_ID: ChainId = *b"mlau";
|
|
||||||
|
|
||||||
/// Polkadot chain id.
|
/// Polkadot chain id.
|
||||||
pub const POLKADOT_CHAIN_ID: ChainId = *b"pdot";
|
pub const POLKADOT_CHAIN_ID: ChainId = *b"pdot";
|
||||||
|
|
||||||
@@ -88,15 +79,9 @@ pub const ASSET_HUB_WESTEND_CHAIN_ID: ChainId = *b"ahwe";
|
|||||||
/// Rococo chain id.
|
/// Rococo chain id.
|
||||||
pub const ROCOCO_CHAIN_ID: ChainId = *b"roco";
|
pub const ROCOCO_CHAIN_ID: ChainId = *b"roco";
|
||||||
|
|
||||||
/// Wococo chain id.
|
|
||||||
pub const WOCOCO_CHAIN_ID: ChainId = *b"woco";
|
|
||||||
|
|
||||||
/// BridgeHubRococo chain id.
|
/// BridgeHubRococo chain id.
|
||||||
pub const BRIDGE_HUB_ROCOCO_CHAIN_ID: ChainId = *b"bhro";
|
pub const BRIDGE_HUB_ROCOCO_CHAIN_ID: ChainId = *b"bhro";
|
||||||
|
|
||||||
/// BridgeHubWococo chain id.
|
|
||||||
pub const BRIDGE_HUB_WOCOCO_CHAIN_ID: ChainId = *b"bhwo";
|
|
||||||
|
|
||||||
/// BridgeHubWestend chain id.
|
/// BridgeHubWestend chain id.
|
||||||
pub const BRIDGE_HUB_WESTEND_CHAIN_ID: ChainId = *b"bhwd";
|
pub const BRIDGE_HUB_WESTEND_CHAIN_ID: ChainId = *b"bhwd";
|
||||||
|
|
||||||
@@ -277,18 +262,6 @@ pub fn storage_map_final_key<H: StorageHasher>(
|
|||||||
StorageKey(final_key)
|
StorageKey(final_key)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// This is how a storage key of storage parameter (`parameter_types! { storage Param: bool = false;
|
|
||||||
/// }`) is computed.
|
|
||||||
///
|
|
||||||
/// Copied from `frame_support::parameter_types` macro.
|
|
||||||
pub fn storage_parameter_key(parameter_name: &str) -> StorageKey {
|
|
||||||
let mut buffer = Vec::with_capacity(1 + parameter_name.len() + 1);
|
|
||||||
buffer.push(b':');
|
|
||||||
buffer.extend_from_slice(parameter_name.as_bytes());
|
|
||||||
buffer.push(b':');
|
|
||||||
StorageKey(sp_io::hashing::twox_128(&buffer).to_vec())
|
|
||||||
}
|
|
||||||
|
|
||||||
/// This is how a storage key of storage value is computed.
|
/// This is how a storage key of storage value is computed.
|
||||||
///
|
///
|
||||||
/// Copied from `frame_support::storage::storage_prefix`.
|
/// Copied from `frame_support::storage::storage_prefix`.
|
||||||
@@ -574,14 +547,6 @@ where
|
|||||||
mod tests {
|
mod tests {
|
||||||
use super::*;
|
use super::*;
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn storage_parameter_key_works() {
|
|
||||||
assert_eq!(
|
|
||||||
storage_parameter_key("MillauToRialtoConversionRate"),
|
|
||||||
StorageKey(hex_literal::hex!("58942375551bb0af1682f72786b59d04").to_vec()),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn storage_value_key_works() {
|
fn storage_value_key_works() {
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
|
|||||||
@@ -61,19 +61,12 @@ trap revert_to_clean_state EXIT
|
|||||||
rm -rf $BRIDGES_FOLDER/.config
|
rm -rf $BRIDGES_FOLDER/.config
|
||||||
rm -rf $BRIDGES_FOLDER/.github
|
rm -rf $BRIDGES_FOLDER/.github
|
||||||
rm -rf $BRIDGES_FOLDER/.maintain
|
rm -rf $BRIDGES_FOLDER/.maintain
|
||||||
rm -rf $BRIDGES_FOLDER/bin/millau
|
|
||||||
rm -rf $BRIDGES_FOLDER/bin/rialto
|
|
||||||
rm -rf $BRIDGES_FOLDER/bin/rialto-parachain
|
|
||||||
rm -rf $BRIDGES_FOLDER/bin/.keep
|
|
||||||
rm -rf $BRIDGES_FOLDER/deployments
|
rm -rf $BRIDGES_FOLDER/deployments
|
||||||
rm -f $BRIDGES_FOLDER/docs/dockerhub-*
|
rm -f $BRIDGES_FOLDER/docs/dockerhub-*
|
||||||
rm -rf $BRIDGES_FOLDER/fuzz
|
rm -rf $BRIDGES_FOLDER/fuzz
|
||||||
rm -rf $BRIDGES_FOLDER/modules/beefy
|
rm -rf $BRIDGES_FOLDER/modules/beefy
|
||||||
rm -rf $BRIDGES_FOLDER/modules/shift-session-manager
|
rm -rf $BRIDGES_FOLDER/modules/shift-session-manager
|
||||||
rm -rf $BRIDGES_FOLDER/primitives/beefy
|
rm -rf $BRIDGES_FOLDER/primitives/beefy
|
||||||
rm -rf $BRIDGES_FOLDER/primitives/chain-millau
|
|
||||||
rm -rf $BRIDGES_FOLDER/primitives/chain-rialto
|
|
||||||
rm -rf $BRIDGES_FOLDER/primitives/chain-rialto-parachain
|
|
||||||
rm -rf $BRIDGES_FOLDER/relays
|
rm -rf $BRIDGES_FOLDER/relays
|
||||||
rm -rf $BRIDGES_FOLDER/scripts/add_license.sh
|
rm -rf $BRIDGES_FOLDER/scripts/add_license.sh
|
||||||
rm -rf $BRIDGES_FOLDER/scripts/build-containers.sh
|
rm -rf $BRIDGES_FOLDER/scripts/build-containers.sh
|
||||||
@@ -81,8 +74,6 @@ rm -rf $BRIDGES_FOLDER/scripts/ci-cache.sh
|
|||||||
rm -rf $BRIDGES_FOLDER/scripts/dump-logs.sh
|
rm -rf $BRIDGES_FOLDER/scripts/dump-logs.sh
|
||||||
rm -rf $BRIDGES_FOLDER/scripts/license_header
|
rm -rf $BRIDGES_FOLDER/scripts/license_header
|
||||||
rm -rf $BRIDGES_FOLDER/scripts/regenerate_runtimes.sh
|
rm -rf $BRIDGES_FOLDER/scripts/regenerate_runtimes.sh
|
||||||
rm -rf $BRIDGES_FOLDER/scripts/send-message-from-millau-rialto.sh
|
|
||||||
rm -rf $BRIDGES_FOLDER/scripts/send-message-from-rialto-millau.sh
|
|
||||||
rm -rf $BRIDGES_FOLDER/scripts/update-weights.sh
|
rm -rf $BRIDGES_FOLDER/scripts/update-weights.sh
|
||||||
rm -rf $BRIDGES_FOLDER/scripts/update-weights-setup.sh
|
rm -rf $BRIDGES_FOLDER/scripts/update-weights-setup.sh
|
||||||
rm -rf $BRIDGES_FOLDER/scripts/update_substrate.sh
|
rm -rf $BRIDGES_FOLDER/scripts/update_substrate.sh
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# Bridges Tests for Local Rococo <> Wococo Bridge
|
# Bridges Tests for Local Rococo <> Westend Bridge
|
||||||
|
|
||||||
This folder contains [zombienet](https://github.com/paritytech/zombienet/) based integration tests for both
|
This folder contains [zombienet](https://github.com/paritytech/zombienet/) based integration tests for both
|
||||||
onchain and offchain bridges code. Due to some
|
onchain and offchain bridges code. Due to some
|
||||||
@@ -9,7 +9,7 @@ To start those tests, you need to:
|
|||||||
|
|
||||||
- download latest [zombienet release](https://github.com/paritytech/zombienet/releases);
|
- download latest [zombienet release](https://github.com/paritytech/zombienet/releases);
|
||||||
|
|
||||||
- build Polkadot binary by running `cargo build -p polkadot --release` command in the
|
- build Polkadot binary by running `cargo build -p polkadot --release --features fast-runtime` command in the
|
||||||
[`polkadot-sdk`](https://github.com/paritytech/polkadot-sdk) repository clone;
|
[`polkadot-sdk`](https://github.com/paritytech/polkadot-sdk) repository clone;
|
||||||
|
|
||||||
- build Polkadot Parachain binary by running `cargo build -p polkadot-parachain-bin --release` command in the
|
- build Polkadot Parachain binary by running `cargo build -p polkadot-parachain-bin --release` command in the
|
||||||
|
|||||||
@@ -0,0 +1,22 @@
|
|||||||
|
async function run(nodeName, networkInfo, args) {
|
||||||
|
const {wsUri, userDefinedTypes} = networkInfo.nodesByName[nodeName];
|
||||||
|
const api = await zombie.connect(wsUri, userDefinedTypes);
|
||||||
|
|
||||||
|
const sibling = args[0];
|
||||||
|
|
||||||
|
while (true) {
|
||||||
|
const messagingStateAsObj = await api.query.parachainSystem.relevantMessagingState();
|
||||||
|
const messagingState = api.createType("Option<CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot>", messagingStateAsObj);
|
||||||
|
if (messagingState.isSome) {
|
||||||
|
const egressChannels = messagingState.unwrap().egressChannels;
|
||||||
|
if (egressChannels.find(x => x[0] == sibling)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// else sleep and retry
|
||||||
|
await new Promise((resolve) => setTimeout(resolve, 12000));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = { run }
|
||||||
@@ -11,11 +11,11 @@ export BRIDGE_TESTS_FOLDER=$POLKADOT_SDK_FOLDER/bridges/zombienet/tests
|
|||||||
export POLKADOT_BINARY_PATH=$POLKADOT_SDK_FOLDER/target/release/polkadot
|
export POLKADOT_BINARY_PATH=$POLKADOT_SDK_FOLDER/target/release/polkadot
|
||||||
export POLKADOT_PARACHAIN_BINARY_PATH=$POLKADOT_SDK_FOLDER/target/release/polkadot-parachain
|
export POLKADOT_PARACHAIN_BINARY_PATH=$POLKADOT_SDK_FOLDER/target/release/polkadot-parachain
|
||||||
export POLKADOT_PARACHAIN_BINARY_PATH_FOR_ASSET_HUB_ROCOCO=$POLKADOT_PARACHAIN_BINARY_PATH
|
export POLKADOT_PARACHAIN_BINARY_PATH_FOR_ASSET_HUB_ROCOCO=$POLKADOT_PARACHAIN_BINARY_PATH
|
||||||
export POLKADOT_PARACHAIN_BINARY_PATH_FOR_ASSET_HUB_WOCOCO=$POLKADOT_PARACHAIN_BINARY_PATH
|
export POLKADOT_PARACHAIN_BINARY_PATH_FOR_ASSET_HUB_WESTEND=$POLKADOT_PARACHAIN_BINARY_PATH
|
||||||
export ZOMBIENET_BINARY_PATH=~/local_bridge_testing/bin/zombienet-linux
|
export ZOMBIENET_BINARY_PATH=~/local_bridge_testing/bin/zombienet-linux
|
||||||
|
|
||||||
# bridge configuration
|
# bridge configuration
|
||||||
export LANE_ID="00000001"
|
export LANE_ID="00000002"
|
||||||
|
|
||||||
# tests configuration
|
# tests configuration
|
||||||
ALL_TESTS_FOLDER=`mktemp -d`
|
ALL_TESTS_FOLDER=`mktemp -d`
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
pushd $POLKADOT_SDK_FOLDER/cumulus/scripts
|
pushd $POLKADOT_SDK_FOLDER/cumulus/scripts
|
||||||
./bridges_rococo_wococo.sh $1
|
./bridges_rococo_westend.sh $1
|
||||||
popd
|
popd
|
||||||
|
|||||||
@@ -0,0 +1,26 @@
|
|||||||
|
Description: User is able to transfer ROC from Rococo Asset Hub to Westend Asset Hub
|
||||||
|
Network: ../../../cumulus/zombienet/bridge-hubs/bridge_hub_westend_local_network.toml
|
||||||
|
Creds: config
|
||||||
|
|
||||||
|
# step 1: initialize Westend asset hub
|
||||||
|
asset-hub-westend-collator1: run ../scripts/invoke-script.sh with "init-asset-hub-westend-local" within 240 seconds
|
||||||
|
asset-hub-westend-collator1: js-script ../helpers/wait-hrmp-channel-opened.js with "1002" within 400 seconds
|
||||||
|
|
||||||
|
# step 2: initialize Westend bridge hub
|
||||||
|
bridge-hub-westend-collator1: run ../scripts/invoke-script.sh with "init-bridge-hub-westend-local" within 120 seconds
|
||||||
|
|
||||||
|
# step 3: relay is started elsewhere - let's wait until with-Rococo GRANPDA pallet is initialized at Westend
|
||||||
|
bridge-hub-westend-collator1: js-script ../helpers/best-finalized-header-at-bridged-chain.js with "Rococo,0" within 400 seconds
|
||||||
|
|
||||||
|
# step 2: send WOC to Rococo
|
||||||
|
asset-hub-westend-collator1: run ../scripts/invoke-script.sh with "reserve-transfer-assets-from-asset-hub-westend-local" within 60 seconds
|
||||||
|
|
||||||
|
# step 3: elsewhere Rococo has sent ROC to //Alice - let's wait for it
|
||||||
|
asset-hub-westend-collator1: js-script ../helpers/wrapped-assets-balance.js with "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY,0,Rococo" within 600 seconds
|
||||||
|
|
||||||
|
# step 4: check that the relayer //Charlie is rewarded by both our AH and target AH
|
||||||
|
bridge-hub-westend-collator1: js-script ../helpers/relayer-rewards.js with "5FLSigC9HGRKVhB9FiEo4Y3koPsNmBmLJbpXg2mp1hXcS59Y,0x00000002,0x6268726f,BridgedChain,0" within 300 seconds
|
||||||
|
bridge-hub-westend-collator1: js-script ../helpers/relayer-rewards.js with "5FLSigC9HGRKVhB9FiEo4Y3koPsNmBmLJbpXg2mp1hXcS59Y,0x00000002,0x6268726F,ThisChain,0" within 300 seconds
|
||||||
|
|
||||||
|
# wait until other network test has completed OR exit with an error too
|
||||||
|
asset-hub-westend-collator1: run ../scripts/sync-exit.sh within 600 seconds
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
Description: User is able to transfer ROC from Rococo Asset Hub to Wococo Asset Hub
|
|
||||||
Network: ../../../cumulus/zombienet/bridge-hubs/bridge_hub_wococo_local_network.toml
|
|
||||||
Creds: config
|
|
||||||
|
|
||||||
# step 1: initialize Wococo asset hub
|
|
||||||
asset-hub-wococo-collator1: run ../scripts/invoke-script.sh with "init-asset-hub-wococo-local" within 120 seconds
|
|
||||||
|
|
||||||
# step 2: initialize Wococo bridge hub
|
|
||||||
bridge-hub-wococo-collator1: run ../scripts/invoke-script.sh with "init-bridge-hub-wococo-local" within 120 seconds
|
|
||||||
|
|
||||||
# step 3: relay is started elsewhere - let's wait until with-Rococo GRANPDA pallet is initialized at Wococo
|
|
||||||
bridge-hub-wococo-collator1: js-script ../helpers/best-finalized-header-at-bridged-chain.js with "Rococo,0" within 400 seconds
|
|
||||||
|
|
||||||
# step 2: send WOC to Rococo
|
|
||||||
asset-hub-wococo-collator1: run ../scripts/invoke-script.sh with "reserve-transfer-assets-from-asset-hub-wococo-local" within 60 seconds
|
|
||||||
|
|
||||||
# step 3: elsewhere Rococo has sent ROC to //Alice - let's wait for it
|
|
||||||
asset-hub-wococo-collator1: js-script ../helpers/wrapped-assets-balance.js with "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY,0,Rococo" within 600 seconds
|
|
||||||
|
|
||||||
# step 4: check that the relayer //Charlie is rewarded by both our AH and target AH
|
|
||||||
bridge-hub-wococo-collator1: js-script ../helpers/relayer-rewards.js with "5FLSigC9HGRKVhB9FiEo4Y3koPsNmBmLJbpXg2mp1hXcS59Y,0x00000001,0x6268726F,BridgedChain,0" within 300 seconds
|
|
||||||
bridge-hub-wococo-collator1: js-script ../helpers/relayer-rewards.js with "5FLSigC9HGRKVhB9FiEo4Y3koPsNmBmLJbpXg2mp1hXcS59Y,0x00000001,0x6268726F,ThisChain,0" within 300 seconds
|
|
||||||
|
|
||||||
# wait until other network test has completed OR exit with an error too
|
|
||||||
asset-hub-wococo-collator1: run ../scripts/sync-exit.sh within 600 seconds
|
|
||||||
+10
-9
@@ -1,25 +1,26 @@
|
|||||||
Description: User is able to transfer WOC from Wococo Asset Hub to Rococo Asset Hub
|
Description: User is able to transfer WOC from Westend Asset Hub to Rococo Asset Hub
|
||||||
Network: ../../../cumulus/zombienet/bridge-hubs/bridge_hub_rococo_local_network.toml
|
Network: ../../../cumulus/zombienet/bridge-hubs/bridge_hub_rococo_local_network.toml
|
||||||
Creds: config
|
Creds: config
|
||||||
|
|
||||||
# step 1: initialize Rococo asset hub
|
# step 1: initialize Rococo asset hub
|
||||||
asset-hub-rococo-collator1: run ../scripts/invoke-script.sh with "init-asset-hub-rococo-local" within 120 seconds
|
asset-hub-rococo-collator1: run ../scripts/invoke-script.sh with "init-asset-hub-rococo-local" within 240 seconds
|
||||||
|
asset-hub-rococo-collator1: js-script ../helpers/wait-hrmp-channel-opened.js with "1013" within 400 seconds
|
||||||
|
|
||||||
# step 2: initialize Rococo bridge hub
|
# step 2: initialize Rococo bridge hub
|
||||||
bridge-hub-rococo-collator1: run ../scripts/invoke-script.sh with "init-bridge-hub-rococo-local" within 120 seconds
|
bridge-hub-rococo-collator1: run ../scripts/invoke-script.sh with "init-bridge-hub-rococo-local" within 120 seconds
|
||||||
|
|
||||||
# step 3: relay is started elsewhere - let's wait until with-Wococo GRANPDA pallet is initialized at Rococo
|
# step 3: relay is started elsewhere - let's wait until with-Westend GRANPDA pallet is initialized at Rococo
|
||||||
bridge-hub-rococo-collator1: js-script ../helpers/best-finalized-header-at-bridged-chain.js with "Wococo,0" within 400 seconds
|
bridge-hub-rococo-collator1: js-script ../helpers/best-finalized-header-at-bridged-chain.js with "Westend,0" within 400 seconds
|
||||||
|
|
||||||
# step 4: send ROC to Wococo
|
# step 4: send ROC to Westend
|
||||||
asset-hub-rococo-collator1: run ../scripts/invoke-script.sh with "reserve-transfer-assets-from-asset-hub-rococo-local" within 60 seconds
|
asset-hub-rococo-collator1: run ../scripts/invoke-script.sh with "reserve-transfer-assets-from-asset-hub-rococo-local" within 60 seconds
|
||||||
|
|
||||||
# step 5: elsewhere Wococo has sent WOC to //Alice - let's wait for it
|
# step 5: elsewhere Westend has sent WOC to //Alice - let's wait for it
|
||||||
asset-hub-rococo-collator1: js-script ../helpers/wrapped-assets-balance.js with "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY,0,Wococo" within 600 seconds
|
asset-hub-rococo-collator1: js-script ../helpers/wrapped-assets-balance.js with "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY,0,Westend" within 600 seconds
|
||||||
|
|
||||||
# step 6: check that the relayer //Charlie is rewarded by both our AH and target AH
|
# step 6: check that the relayer //Charlie is rewarded by both our AH and target AH
|
||||||
bridge-hub-rococo-collator1: js-script ../helpers/relayer-rewards.js with "5FLSigC9HGRKVhB9FiEo4Y3koPsNmBmLJbpXg2mp1hXcS59Y,0x00000001,0x6268776F,BridgedChain,0" within 300 seconds
|
bridge-hub-rococo-collator1: js-script ../helpers/relayer-rewards.js with "5FLSigC9HGRKVhB9FiEo4Y3koPsNmBmLJbpXg2mp1hXcS59Y,0x00000002,0x62687764,BridgedChain,0" within 300 seconds
|
||||||
bridge-hub-rococo-collator1: js-script ../helpers/relayer-rewards.js with "5FLSigC9HGRKVhB9FiEo4Y3koPsNmBmLJbpXg2mp1hXcS59Y,0x00000001,0x6268776F,ThisChain,0" within 300 seconds
|
bridge-hub-rococo-collator1: js-script ../helpers/relayer-rewards.js with "5FLSigC9HGRKVhB9FiEo4Y3koPsNmBmLJbpXg2mp1hXcS59Y,0x00000002,0x62687764,ThisChain,0" within 300 seconds
|
||||||
|
|
||||||
# wait until other network test has completed OR exit with an error too
|
# wait until other network test has completed OR exit with an error too
|
||||||
asset-hub-rococo-collator1: run ../scripts/sync-exit.sh within 600 seconds
|
asset-hub-rococo-collator1: run ../scripts/sync-exit.sh within 600 seconds
|
||||||
Regular → Executable
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
pushd $POLKADOT_SDK_FOLDER/cumulus/scripts
|
pushd $POLKADOT_SDK_FOLDER/cumulus/scripts
|
||||||
./bridges_rococo_wococo.sh run-relay
|
./bridges_rococo_westend.sh run-relay
|
||||||
popd
|
popd
|
||||||
|
|||||||
+2
-10
@@ -56,19 +56,11 @@ pub fn genesis() -> Storage {
|
|||||||
safe_xcm_version: Some(SAFE_XCM_VERSION),
|
safe_xcm_version: Some(SAFE_XCM_VERSION),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
bridge_wococo_grandpa: bridge_hub_rococo_runtime::BridgeWococoGrandpaConfig {
|
bridge_westend_grandpa: bridge_hub_rococo_runtime::BridgeWestendGrandpaConfig {
|
||||||
owner: Some(get_account_id_from_seed::<sr25519::Public>(accounts::BOB)),
|
owner: Some(get_account_id_from_seed::<sr25519::Public>(accounts::BOB)),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
bridge_rococo_grandpa: bridge_hub_rococo_runtime::BridgeRococoGrandpaConfig {
|
bridge_westend_messages: bridge_hub_rococo_runtime::BridgeWestendMessagesConfig {
|
||||||
owner: Some(get_account_id_from_seed::<sr25519::Public>(accounts::BOB)),
|
|
||||||
..Default::default()
|
|
||||||
},
|
|
||||||
bridge_rococo_messages: bridge_hub_rococo_runtime::BridgeRococoMessagesConfig {
|
|
||||||
owner: Some(get_account_id_from_seed::<sr25519::Public>(accounts::BOB)),
|
|
||||||
..Default::default()
|
|
||||||
},
|
|
||||||
bridge_wococo_messages: bridge_hub_rococo_runtime::BridgeWococoMessagesConfig {
|
|
||||||
owner: Some(get_account_id_from_seed::<sr25519::Public>(accounts::BOB)),
|
owner: Some(get_account_id_from_seed::<sr25519::Public>(accounts::BOB)),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -86,9 +86,7 @@ assets-common = { path = "../common", default-features = false }
|
|||||||
pallet-xcm-bridge-hub-router = { path = "../../../../../bridges/modules/xcm-bridge-hub-router", default-features = false }
|
pallet-xcm-bridge-hub-router = { path = "../../../../../bridges/modules/xcm-bridge-hub-router", default-features = false }
|
||||||
bp-asset-hub-rococo = { path = "../../../../../bridges/primitives/chain-asset-hub-rococo", default-features = false }
|
bp-asset-hub-rococo = { path = "../../../../../bridges/primitives/chain-asset-hub-rococo", default-features = false }
|
||||||
bp-asset-hub-westend = { path = "../../../../../bridges/primitives/chain-asset-hub-westend", default-features = false }
|
bp-asset-hub-westend = { path = "../../../../../bridges/primitives/chain-asset-hub-westend", default-features = false }
|
||||||
bp-asset-hub-wococo = { path = "../../../../../bridges/primitives/chain-asset-hub-wococo", default-features = false }
|
|
||||||
bp-bridge-hub-rococo = { path = "../../../../../bridges/primitives/chain-bridge-hub-rococo", default-features = false }
|
bp-bridge-hub-rococo = { path = "../../../../../bridges/primitives/chain-bridge-hub-rococo", default-features = false }
|
||||||
bp-bridge-hub-wococo = { path = "../../../../../bridges/primitives/chain-bridge-hub-wococo", default-features = false }
|
|
||||||
bp-bridge-hub-westend = { path = "../../../../../bridges/primitives/chain-bridge-hub-westend", default-features = false }
|
bp-bridge-hub-westend = { path = "../../../../../bridges/primitives/chain-bridge-hub-westend", default-features = false }
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
@@ -180,10 +178,8 @@ std = [
|
|||||||
"assets-common/std",
|
"assets-common/std",
|
||||||
"bp-asset-hub-rococo/std",
|
"bp-asset-hub-rococo/std",
|
||||||
"bp-asset-hub-westend/std",
|
"bp-asset-hub-westend/std",
|
||||||
"bp-asset-hub-wococo/std",
|
|
||||||
"bp-bridge-hub-rococo/std",
|
"bp-bridge-hub-rococo/std",
|
||||||
"bp-bridge-hub-westend/std",
|
"bp-bridge-hub-westend/std",
|
||||||
"bp-bridge-hub-wococo/std",
|
|
||||||
"codec/std",
|
"codec/std",
|
||||||
"cumulus-pallet-aura-ext/std",
|
"cumulus-pallet-aura-ext/std",
|
||||||
"cumulus-pallet-dmp-queue/std",
|
"cumulus-pallet-dmp-queue/std",
|
||||||
|
|||||||
@@ -16,12 +16,6 @@
|
|||||||
//! # Asset Hub Rococo Runtime
|
//! # Asset Hub Rococo Runtime
|
||||||
//!
|
//!
|
||||||
//! Asset Hub Rococo, formerly known as "Rockmine", is the test network for its Kusama cousin.
|
//! Asset Hub Rococo, formerly known as "Rockmine", is the test network for its Kusama cousin.
|
||||||
//!
|
|
||||||
//! This runtime is also used for Asset Hub Wococo. But we dont want to create another exact copy of
|
|
||||||
//! Asset Hub Rococo, so we injected some tweaks backed by `RuntimeFlavor` and `pub storage Flavor:
|
|
||||||
//! RuntimeFlavor`. (For example this is needed for successful asset transfer between Asset Hub
|
|
||||||
//! Rococo and Asset Hub Wococo, where we need to have correct `xcm_config::UniversalLocation` with
|
|
||||||
//! correct `GlobalConsensus`.
|
|
||||||
|
|
||||||
#![cfg_attr(not(feature = "std"), no_std)]
|
#![cfg_attr(not(feature = "std"), no_std)]
|
||||||
#![recursion_limit = "256"]
|
#![recursion_limit = "256"]
|
||||||
@@ -106,15 +100,6 @@ use crate::xcm_config::{
|
|||||||
};
|
};
|
||||||
use weights::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight};
|
use weights::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight};
|
||||||
|
|
||||||
/// Enum for handling differences in the runtime configuration for `AssetHubRococo` vs.
|
|
||||||
/// `AssetHubWococo`.
|
|
||||||
#[derive(Default, Eq, PartialEq, Debug, Clone, Copy, Decode, Encode)]
|
|
||||||
pub enum RuntimeFlavor {
|
|
||||||
#[default]
|
|
||||||
Rococo,
|
|
||||||
Wococo,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl_opaque_keys! {
|
impl_opaque_keys! {
|
||||||
pub struct SessionKeys {
|
pub struct SessionKeys {
|
||||||
pub aura: Aura,
|
pub aura: Aura,
|
||||||
@@ -866,73 +851,11 @@ impl pallet_nfts::Config for Runtime {
|
|||||||
type Helper = ();
|
type Helper = ();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// XCM router instance to BridgeHub with bridging capabilities for `Wococo` global
|
|
||||||
/// consensus with dynamic fees and back-pressure.
|
|
||||||
pub type ToWococoXcmRouterInstance = pallet_xcm_bridge_hub_router::Instance1;
|
|
||||||
impl pallet_xcm_bridge_hub_router::Config<ToWococoXcmRouterInstance> for Runtime {
|
|
||||||
type WeightInfo = weights::pallet_xcm_bridge_hub_router_to_wococo::WeightInfo<Runtime>;
|
|
||||||
|
|
||||||
type UniversalLocation = xcm_config::UniversalLocation;
|
|
||||||
type BridgedNetworkId = xcm_config::bridging::to_wococo::WococoNetwork;
|
|
||||||
type Bridges = xcm_config::bridging::NetworkExportTable;
|
|
||||||
|
|
||||||
#[cfg(not(feature = "runtime-benchmarks"))]
|
|
||||||
type BridgeHubOrigin = EnsureXcm<Equals<xcm_config::bridging::SiblingBridgeHub>>;
|
|
||||||
#[cfg(feature = "runtime-benchmarks")]
|
|
||||||
type BridgeHubOrigin = EitherOfDiverse<
|
|
||||||
// for running benchmarks
|
|
||||||
EnsureRoot<AccountId>,
|
|
||||||
// for running tests with `--feature runtime-benchmarks`
|
|
||||||
EnsureXcm<Equals<xcm_config::bridging::SiblingBridgeHub>>,
|
|
||||||
>;
|
|
||||||
|
|
||||||
type ToBridgeHubSender = XcmpQueue;
|
|
||||||
type WithBridgeHubChannel =
|
|
||||||
cumulus_pallet_xcmp_queue::bridging::InAndOutXcmpChannelStatusProvider<
|
|
||||||
xcm_config::bridging::SiblingBridgeHubParaId,
|
|
||||||
Runtime,
|
|
||||||
>;
|
|
||||||
|
|
||||||
type ByteFee = xcm_config::bridging::XcmBridgeHubRouterByteFee;
|
|
||||||
type FeeAsset = xcm_config::bridging::XcmBridgeHubRouterFeeAssetId;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// XCM router instance to BridgeHub with bridging capabilities for `Rococo` global
|
|
||||||
/// consensus with dynamic fees and back-pressure.
|
|
||||||
pub type ToRococoXcmRouterInstance = pallet_xcm_bridge_hub_router::Instance2;
|
|
||||||
impl pallet_xcm_bridge_hub_router::Config<ToRococoXcmRouterInstance> for Runtime {
|
|
||||||
type WeightInfo = weights::pallet_xcm_bridge_hub_router_to_rococo::WeightInfo<Runtime>;
|
|
||||||
|
|
||||||
type UniversalLocation = xcm_config::UniversalLocation;
|
|
||||||
type BridgedNetworkId = xcm_config::bridging::to_rococo::RococoNetwork;
|
|
||||||
type Bridges = xcm_config::bridging::NetworkExportTable;
|
|
||||||
|
|
||||||
#[cfg(not(feature = "runtime-benchmarks"))]
|
|
||||||
type BridgeHubOrigin = EnsureXcm<Equals<xcm_config::bridging::SiblingBridgeHub>>;
|
|
||||||
#[cfg(feature = "runtime-benchmarks")]
|
|
||||||
type BridgeHubOrigin = EitherOfDiverse<
|
|
||||||
// for running benchmarks
|
|
||||||
EnsureRoot<AccountId>,
|
|
||||||
// for running tests with `--feature runtime-benchmarks`
|
|
||||||
EnsureXcm<Equals<xcm_config::bridging::SiblingBridgeHub>>,
|
|
||||||
>;
|
|
||||||
|
|
||||||
type ToBridgeHubSender = XcmpQueue;
|
|
||||||
type WithBridgeHubChannel =
|
|
||||||
cumulus_pallet_xcmp_queue::bridging::InAndOutXcmpChannelStatusProvider<
|
|
||||||
xcm_config::bridging::SiblingBridgeHubParaId,
|
|
||||||
Runtime,
|
|
||||||
>;
|
|
||||||
|
|
||||||
type ByteFee = xcm_config::bridging::XcmBridgeHubRouterByteFee;
|
|
||||||
type FeeAsset = xcm_config::bridging::XcmBridgeHubRouterFeeAssetId;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// XCM router instance to BridgeHub with bridging capabilities for `Westend` global
|
/// XCM router instance to BridgeHub with bridging capabilities for `Westend` global
|
||||||
/// consensus with dynamic fees and back-pressure.
|
/// consensus with dynamic fees and back-pressure.
|
||||||
pub type ToWestendXcmRouterInstance = pallet_xcm_bridge_hub_router::Instance3;
|
pub type ToWestendXcmRouterInstance = pallet_xcm_bridge_hub_router::Instance3;
|
||||||
impl pallet_xcm_bridge_hub_router::Config<ToWestendXcmRouterInstance> for Runtime {
|
impl pallet_xcm_bridge_hub_router::Config<ToWestendXcmRouterInstance> for Runtime {
|
||||||
type WeightInfo = weights::pallet_xcm_bridge_hub_router_to_westend::WeightInfo<Runtime>;
|
type WeightInfo = weights::pallet_xcm_bridge_hub_router::WeightInfo<Runtime>;
|
||||||
|
|
||||||
type UniversalLocation = xcm_config::UniversalLocation;
|
type UniversalLocation = xcm_config::UniversalLocation;
|
||||||
type BridgedNetworkId = xcm_config::bridging::to_westend::WestendNetwork;
|
type BridgedNetworkId = xcm_config::bridging::to_westend::WestendNetwork;
|
||||||
@@ -996,8 +919,6 @@ construct_runtime!(
|
|||||||
Proxy: pallet_proxy::{Pallet, Call, Storage, Event<T>} = 42,
|
Proxy: pallet_proxy::{Pallet, Call, Storage, Event<T>} = 42,
|
||||||
|
|
||||||
// Bridge utilities.
|
// Bridge utilities.
|
||||||
ToWococoXcmRouter: pallet_xcm_bridge_hub_router::<Instance1>::{Pallet, Storage, Call} = 43,
|
|
||||||
ToRococoXcmRouter: pallet_xcm_bridge_hub_router::<Instance2>::{Pallet, Storage, Call} = 44,
|
|
||||||
ToWestendXcmRouter: pallet_xcm_bridge_hub_router::<Instance3>::{Pallet, Storage, Call} = 45,
|
ToWestendXcmRouter: pallet_xcm_bridge_hub_router::<Instance3>::{Pallet, Storage, Call} = 45,
|
||||||
|
|
||||||
// The main stage.
|
// The main stage.
|
||||||
@@ -1073,9 +994,7 @@ mod benches {
|
|||||||
[pallet_timestamp, Timestamp]
|
[pallet_timestamp, Timestamp]
|
||||||
[pallet_collator_selection, CollatorSelection]
|
[pallet_collator_selection, CollatorSelection]
|
||||||
[cumulus_pallet_xcmp_queue, XcmpQueue]
|
[cumulus_pallet_xcmp_queue, XcmpQueue]
|
||||||
[pallet_xcm_bridge_hub_router, ToWococo]
|
|
||||||
[pallet_xcm_bridge_hub_router, ToWestend]
|
[pallet_xcm_bridge_hub_router, ToWestend]
|
||||||
[pallet_xcm_bridge_hub_router, ToRococo]
|
|
||||||
// XCM
|
// XCM
|
||||||
[pallet_xcm, PalletXcmExtrinsiscsBenchmark::<Runtime>]
|
[pallet_xcm, PalletXcmExtrinsiscsBenchmark::<Runtime>]
|
||||||
// NOTE: Make sure you point to the individual modules below.
|
// NOTE: Make sure you point to the individual modules below.
|
||||||
@@ -1332,9 +1251,7 @@ impl_runtime_apis! {
|
|||||||
type Foreign = pallet_assets::Pallet::<Runtime, ForeignAssetsInstance>;
|
type Foreign = pallet_assets::Pallet::<Runtime, ForeignAssetsInstance>;
|
||||||
type Pool = pallet_assets::Pallet::<Runtime, PoolAssetsInstance>;
|
type Pool = pallet_assets::Pallet::<Runtime, PoolAssetsInstance>;
|
||||||
|
|
||||||
type ToWococo = XcmBridgeHubRouterBench<Runtime, ToWococoXcmRouterInstance>;
|
|
||||||
type ToWestend = XcmBridgeHubRouterBench<Runtime, ToWestendXcmRouterInstance>;
|
type ToWestend = XcmBridgeHubRouterBench<Runtime, ToWestendXcmRouterInstance>;
|
||||||
type ToRococo = XcmBridgeHubRouterBench<Runtime, ToRococoXcmRouterInstance>;
|
|
||||||
|
|
||||||
let mut list = Vec::<BenchmarkList>::new();
|
let mut list = Vec::<BenchmarkList>::new();
|
||||||
list_benchmarks!(list, extra);
|
list_benchmarks!(list, extra);
|
||||||
@@ -1402,19 +1319,6 @@ impl_runtime_apis! {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl XcmBridgeHubRouterConfig<ToWococoXcmRouterInstance> for Runtime {
|
|
||||||
fn make_congested() {
|
|
||||||
cumulus_pallet_xcmp_queue::bridging::suspend_channel_for_benchmarks::<Runtime>(
|
|
||||||
xcm_config::bridging::SiblingBridgeHubParaId::get().into()
|
|
||||||
);
|
|
||||||
}
|
|
||||||
fn ensure_bridged_target_destination() -> MultiLocation {
|
|
||||||
ParachainSystem::open_outbound_hrmp_channel_for_benchmarks_or_tests(
|
|
||||||
xcm_config::bridging::SiblingBridgeHubParaId::get().into()
|
|
||||||
);
|
|
||||||
xcm_config::bridging::to_wococo::AssetHubWococo::get()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
impl XcmBridgeHubRouterConfig<ToWestendXcmRouterInstance> for Runtime {
|
impl XcmBridgeHubRouterConfig<ToWestendXcmRouterInstance> for Runtime {
|
||||||
fn make_congested() {
|
fn make_congested() {
|
||||||
cumulus_pallet_xcmp_queue::bridging::suspend_channel_for_benchmarks::<Runtime>(
|
cumulus_pallet_xcmp_queue::bridging::suspend_channel_for_benchmarks::<Runtime>(
|
||||||
@@ -1428,20 +1332,6 @@ impl_runtime_apis! {
|
|||||||
xcm_config::bridging::to_westend::AssetHubWestend::get()
|
xcm_config::bridging::to_westend::AssetHubWestend::get()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
impl XcmBridgeHubRouterConfig<ToRococoXcmRouterInstance> for Runtime {
|
|
||||||
fn make_congested() {
|
|
||||||
cumulus_pallet_xcmp_queue::bridging::suspend_channel_for_benchmarks::<Runtime>(
|
|
||||||
xcm_config::bridging::SiblingBridgeHubParaId::get().into()
|
|
||||||
);
|
|
||||||
}
|
|
||||||
fn ensure_bridged_target_destination() -> MultiLocation {
|
|
||||||
xcm_config::Flavor::set(&RuntimeFlavor::Wococo);
|
|
||||||
ParachainSystem::open_outbound_hrmp_channel_for_benchmarks_or_tests(
|
|
||||||
xcm_config::bridging::SiblingBridgeHubParaId::get().into()
|
|
||||||
);
|
|
||||||
xcm_config::bridging::to_rococo::AssetHubRococo::get()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
use xcm::latest::prelude::*;
|
use xcm::latest::prelude::*;
|
||||||
use xcm_config::{TokenLocation, MaxAssetsIntoHolding};
|
use xcm_config::{TokenLocation, MaxAssetsIntoHolding};
|
||||||
@@ -1498,11 +1388,11 @@ impl_runtime_apis! {
|
|||||||
MultiAsset { fun: Fungible(UNITS), id: Concrete(TokenLocation::get()) },
|
MultiAsset { fun: Fungible(UNITS), id: Concrete(TokenLocation::get()) },
|
||||||
));
|
));
|
||||||
pub const CheckedAccount: Option<(AccountId, xcm_builder::MintLocation)> = None;
|
pub const CheckedAccount: Option<(AccountId, xcm_builder::MintLocation)> = None;
|
||||||
// AssetHubRococo trusts AssetHubWococo as reserve for WOCs
|
// AssetHubRococo trusts AssetHubWestend as reserve for WNDs
|
||||||
pub TrustedReserve: Option<(MultiLocation, MultiAsset)> = Some(
|
pub TrustedReserve: Option<(MultiLocation, MultiAsset)> = Some(
|
||||||
(
|
(
|
||||||
xcm_config::bridging::to_wococo::AssetHubWococo::get(),
|
xcm_config::bridging::to_westend::AssetHubWestend::get(),
|
||||||
MultiAsset::from((xcm_config::bridging::to_wococo::WocLocation::get(), 1000000000000 as u128))
|
MultiAsset::from((xcm_config::bridging::to_westend::WndLocation::get(), 1000000000000 as u128))
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -1577,9 +1467,7 @@ impl_runtime_apis! {
|
|||||||
type Foreign = pallet_assets::Pallet::<Runtime, ForeignAssetsInstance>;
|
type Foreign = pallet_assets::Pallet::<Runtime, ForeignAssetsInstance>;
|
||||||
type Pool = pallet_assets::Pallet::<Runtime, PoolAssetsInstance>;
|
type Pool = pallet_assets::Pallet::<Runtime, PoolAssetsInstance>;
|
||||||
|
|
||||||
type ToWococo = XcmBridgeHubRouterBench<Runtime, ToWococoXcmRouterInstance>;
|
|
||||||
type ToWestend = XcmBridgeHubRouterBench<Runtime, ToWestendXcmRouterInstance>;
|
type ToWestend = XcmBridgeHubRouterBench<Runtime, ToWestendXcmRouterInstance>;
|
||||||
type ToRococo = XcmBridgeHubRouterBench<Runtime, ToRococoXcmRouterInstance>;
|
|
||||||
|
|
||||||
let whitelist: Vec<TrackedStorageKey> = vec![
|
let whitelist: Vec<TrackedStorageKey> = vec![
|
||||||
// Block Number
|
// Block Number
|
||||||
|
|||||||
@@ -36,9 +36,7 @@ pub mod pallet_timestamp;
|
|||||||
pub mod pallet_uniques;
|
pub mod pallet_uniques;
|
||||||
pub mod pallet_utility;
|
pub mod pallet_utility;
|
||||||
pub mod pallet_xcm;
|
pub mod pallet_xcm;
|
||||||
pub mod pallet_xcm_bridge_hub_router_to_rococo;
|
pub mod pallet_xcm_bridge_hub_router;
|
||||||
pub mod pallet_xcm_bridge_hub_router_to_westend;
|
|
||||||
pub mod pallet_xcm_bridge_hub_router_to_wococo;
|
|
||||||
pub mod paritydb_weights;
|
pub mod paritydb_weights;
|
||||||
pub mod rocksdb_weights;
|
pub mod rocksdb_weights;
|
||||||
pub mod xcm;
|
pub mod xcm;
|
||||||
|
|||||||
+26
-30
@@ -17,9 +17,9 @@
|
|||||||
//! Autogenerated weights for `pallet_xcm_bridge_hub_router`
|
//! Autogenerated weights for `pallet_xcm_bridge_hub_router`
|
||||||
//!
|
//!
|
||||||
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
|
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
|
||||||
//! DATE: 2023-10-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
|
//! DATE: 2023-11-15, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
|
||||||
//! WORST CASE MAP SIZE: `1000000`
|
//! WORST CASE MAP SIZE: `1000000`
|
||||||
//! HOSTNAME: `runner-vmdtonbz-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
|
//! HOSTNAME: `runner-yprdrvc7-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
|
||||||
//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-rococo-dev")`, DB CACHE: 1024
|
//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-rococo-dev")`, DB CACHE: 1024
|
||||||
|
|
||||||
// Executed Command:
|
// Executed Command:
|
||||||
@@ -48,38 +48,34 @@ use core::marker::PhantomData;
|
|||||||
/// Weight functions for `pallet_xcm_bridge_hub_router`.
|
/// Weight functions for `pallet_xcm_bridge_hub_router`.
|
||||||
pub struct WeightInfo<T>(PhantomData<T>);
|
pub struct WeightInfo<T>(PhantomData<T>);
|
||||||
impl<T: frame_system::Config> pallet_xcm_bridge_hub_router::WeightInfo for WeightInfo<T> {
|
impl<T: frame_system::Config> pallet_xcm_bridge_hub_router::WeightInfo for WeightInfo<T> {
|
||||||
/// Storage: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
/// Storage: `XcmpQueue::InboundXcmpSuspended` (r:1 w:0)
|
||||||
/// Proof: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
/// Proof: `XcmpQueue::InboundXcmpSuspended` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
||||||
/// Storage: `XcmpQueue::InboundXcmpStatus` (r:1 w:0)
|
|
||||||
/// Proof: `XcmpQueue::InboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:0)
|
/// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:0)
|
||||||
/// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
/// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
||||||
/// Storage: `ToWestendXcmRouter::Bridge` (r:1 w:1)
|
/// Storage: `ToWestendXcmRouter::Bridge` (r:1 w:1)
|
||||||
/// Proof: `ToWestendXcmRouter::Bridge` (`max_values`: Some(1), `max_size`: Some(17), added: 512, mode: `MaxEncodedLen`)
|
/// Proof: `ToWestendXcmRouter::Bridge` (`max_values`: Some(1), `max_size`: Some(17), added: 512, mode: `MaxEncodedLen`)
|
||||||
fn on_initialize_when_non_congested() -> Weight {
|
fn on_initialize_when_non_congested() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `193`
|
// Measured: `154`
|
||||||
// Estimated: `3658`
|
// Estimated: `1639`
|
||||||
// Minimum execution time: 8_528_000 picoseconds.
|
// Minimum execution time: 7_924_000 picoseconds.
|
||||||
Weight::from_parts(8_886_000, 0)
|
Weight::from_parts(8_199_000, 0)
|
||||||
.saturating_add(Weight::from_parts(0, 3658))
|
.saturating_add(Weight::from_parts(0, 1639))
|
||||||
.saturating_add(T::DbWeight::get().reads(4))
|
.saturating_add(T::DbWeight::get().reads(3))
|
||||||
.saturating_add(T::DbWeight::get().writes(1))
|
.saturating_add(T::DbWeight::get().writes(1))
|
||||||
}
|
}
|
||||||
/// Storage: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
/// Storage: `XcmpQueue::InboundXcmpSuspended` (r:1 w:0)
|
||||||
/// Proof: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
/// Proof: `XcmpQueue::InboundXcmpSuspended` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
||||||
/// Storage: `XcmpQueue::InboundXcmpStatus` (r:1 w:0)
|
|
||||||
/// Proof: `XcmpQueue::InboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:0)
|
/// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:0)
|
||||||
/// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
/// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
||||||
fn on_initialize_when_congested() -> Weight {
|
fn on_initialize_when_congested() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `183`
|
// Measured: `144`
|
||||||
// Estimated: `3648`
|
// Estimated: `1629`
|
||||||
// Minimum execution time: 5_170_000 picoseconds.
|
// Minimum execution time: 4_265_000 picoseconds.
|
||||||
Weight::from_parts(5_433_000, 0)
|
Weight::from_parts(4_417_000, 0)
|
||||||
.saturating_add(Weight::from_parts(0, 3648))
|
.saturating_add(Weight::from_parts(0, 1629))
|
||||||
.saturating_add(T::DbWeight::get().reads(3))
|
.saturating_add(T::DbWeight::get().reads(2))
|
||||||
}
|
}
|
||||||
/// Storage: `ToWestendXcmRouter::Bridge` (r:1 w:1)
|
/// Storage: `ToWestendXcmRouter::Bridge` (r:1 w:1)
|
||||||
/// Proof: `ToWestendXcmRouter::Bridge` (`max_values`: Some(1), `max_size`: Some(17), added: 512, mode: `MaxEncodedLen`)
|
/// Proof: `ToWestendXcmRouter::Bridge` (`max_values`: Some(1), `max_size`: Some(17), added: 512, mode: `MaxEncodedLen`)
|
||||||
@@ -87,16 +83,16 @@ impl<T: frame_system::Config> pallet_xcm_bridge_hub_router::WeightInfo for Weigh
|
|||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `150`
|
// Measured: `150`
|
||||||
// Estimated: `1502`
|
// Estimated: `1502`
|
||||||
// Minimum execution time: 10_283_000 picoseconds.
|
// Minimum execution time: 10_292_000 picoseconds.
|
||||||
Weight::from_parts(10_762_000, 0)
|
Weight::from_parts(10_797_000, 0)
|
||||||
.saturating_add(Weight::from_parts(0, 1502))
|
.saturating_add(Weight::from_parts(0, 1502))
|
||||||
.saturating_add(T::DbWeight::get().reads(1))
|
.saturating_add(T::DbWeight::get().reads(1))
|
||||||
.saturating_add(T::DbWeight::get().writes(1))
|
.saturating_add(T::DbWeight::get().writes(1))
|
||||||
}
|
}
|
||||||
/// Storage: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
|
||||||
/// Proof: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
|
||||||
/// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
/// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
||||||
/// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
/// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
||||||
|
/// Storage: UNKNOWN KEY `0x3302afcb67e838a3f960251b417b9a4f` (r:1 w:0)
|
||||||
|
/// Proof: UNKNOWN KEY `0x3302afcb67e838a3f960251b417b9a4f` (r:1 w:0)
|
||||||
/// Storage: UNKNOWN KEY `0x0973fe64c85043ba1c965cbc38eb63c7` (r:1 w:0)
|
/// Storage: UNKNOWN KEY `0x0973fe64c85043ba1c965cbc38eb63c7` (r:1 w:0)
|
||||||
/// Proof: UNKNOWN KEY `0x0973fe64c85043ba1c965cbc38eb63c7` (r:1 w:0)
|
/// Proof: UNKNOWN KEY `0x0973fe64c85043ba1c965cbc38eb63c7` (r:1 w:0)
|
||||||
/// Storage: `ToWestendXcmRouter::Bridge` (r:1 w:1)
|
/// Storage: `ToWestendXcmRouter::Bridge` (r:1 w:1)
|
||||||
@@ -113,16 +109,16 @@ impl<T: frame_system::Config> pallet_xcm_bridge_hub_router::WeightInfo for Weigh
|
|||||||
/// Proof: `ParachainSystem::RelevantMessagingState` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
/// Proof: `ParachainSystem::RelevantMessagingState` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
||||||
/// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:1)
|
/// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:1)
|
||||||
/// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
/// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
||||||
/// Storage: `XcmpQueue::InboundXcmpStatus` (r:1 w:0)
|
/// Storage: `XcmpQueue::InboundXcmpSuspended` (r:1 w:0)
|
||||||
/// Proof: `XcmpQueue::InboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
/// Proof: `XcmpQueue::InboundXcmpSuspended` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
||||||
/// Storage: `XcmpQueue::OutboundXcmpMessages` (r:0 w:1)
|
/// Storage: `XcmpQueue::OutboundXcmpMessages` (r:0 w:1)
|
||||||
/// Proof: `XcmpQueue::OutboundXcmpMessages` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
/// Proof: `XcmpQueue::OutboundXcmpMessages` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
||||||
fn send_message() -> Weight {
|
fn send_message() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `387`
|
// Measured: `387`
|
||||||
// Estimated: `3852`
|
// Estimated: `3852`
|
||||||
// Minimum execution time: 52_040_000 picoseconds.
|
// Minimum execution time: 61_995_000 picoseconds.
|
||||||
Weight::from_parts(53_500_000, 0)
|
Weight::from_parts(65_137_000, 0)
|
||||||
.saturating_add(Weight::from_parts(0, 3852))
|
.saturating_add(Weight::from_parts(0, 3852))
|
||||||
.saturating_add(T::DbWeight::get().reads(11))
|
.saturating_add(T::DbWeight::get().reads(11))
|
||||||
.saturating_add(T::DbWeight::get().writes(4))
|
.saturating_add(T::DbWeight::get().writes(4))
|
||||||
-130
@@ -1,130 +0,0 @@
|
|||||||
// Copyright (C) Parity Technologies (UK) Ltd.
|
|
||||||
// This file is part of Cumulus.
|
|
||||||
|
|
||||||
// Cumulus is free software: you can redistribute it and/or modify
|
|
||||||
// it under the terms of the GNU General Public License as published by
|
|
||||||
// the Free Software Foundation, either version 3 of the License, or
|
|
||||||
// (at your option) any later version.
|
|
||||||
|
|
||||||
// Cumulus is distributed in the hope that it will be useful,
|
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
// GNU General Public License for more details.
|
|
||||||
|
|
||||||
// You should have received a copy of the GNU General Public License
|
|
||||||
// along with Cumulus. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
//! Autogenerated weights for `pallet_xcm_bridge_hub_router`
|
|
||||||
//!
|
|
||||||
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
|
|
||||||
//! DATE: 2023-10-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
|
|
||||||
//! WORST CASE MAP SIZE: `1000000`
|
|
||||||
//! HOSTNAME: `runner-vmdtonbz-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
|
|
||||||
//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-rococo-dev")`, DB CACHE: 1024
|
|
||||||
|
|
||||||
// Executed Command:
|
|
||||||
// target/production/polkadot-parachain
|
|
||||||
// benchmark
|
|
||||||
// pallet
|
|
||||||
// --steps=50
|
|
||||||
// --repeat=20
|
|
||||||
// --extrinsic=*
|
|
||||||
// --wasm-execution=compiled
|
|
||||||
// --heap-pages=4096
|
|
||||||
// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json
|
|
||||||
// --pallet=pallet_xcm_bridge_hub_router
|
|
||||||
// --chain=asset-hub-rococo-dev
|
|
||||||
// --header=./cumulus/file_header.txt
|
|
||||||
// --output=./cumulus/parachains/runtimes/assets/asset-hub-rococo/src/weights/
|
|
||||||
|
|
||||||
#![cfg_attr(rustfmt, rustfmt_skip)]
|
|
||||||
#![allow(unused_parens)]
|
|
||||||
#![allow(unused_imports)]
|
|
||||||
#![allow(missing_docs)]
|
|
||||||
|
|
||||||
use frame_support::{traits::Get, weights::Weight};
|
|
||||||
use core::marker::PhantomData;
|
|
||||||
|
|
||||||
/// Weight functions for `pallet_xcm_bridge_hub_router`.
|
|
||||||
pub struct WeightInfo<T>(PhantomData<T>);
|
|
||||||
impl<T: frame_system::Config> pallet_xcm_bridge_hub_router::WeightInfo for WeightInfo<T> {
|
|
||||||
/// Storage: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
|
||||||
/// Proof: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
|
||||||
/// Storage: `XcmpQueue::InboundXcmpStatus` (r:1 w:0)
|
|
||||||
/// Proof: `XcmpQueue::InboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:0)
|
|
||||||
/// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `ToRococoXcmRouter::Bridge` (r:1 w:1)
|
|
||||||
/// Proof: `ToRococoXcmRouter::Bridge` (`max_values`: Some(1), `max_size`: Some(17), added: 512, mode: `MaxEncodedLen`)
|
|
||||||
fn on_initialize_when_non_congested() -> Weight {
|
|
||||||
// Proof Size summary in bytes:
|
|
||||||
// Measured: `265`
|
|
||||||
// Estimated: `3730`
|
|
||||||
// Minimum execution time: 9_084_000 picoseconds.
|
|
||||||
Weight::from_parts(9_441_000, 0)
|
|
||||||
.saturating_add(Weight::from_parts(0, 3730))
|
|
||||||
.saturating_add(T::DbWeight::get().reads(4))
|
|
||||||
.saturating_add(T::DbWeight::get().writes(1))
|
|
||||||
}
|
|
||||||
/// Storage: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
|
||||||
/// Proof: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
|
||||||
/// Storage: `XcmpQueue::InboundXcmpStatus` (r:1 w:0)
|
|
||||||
/// Proof: `XcmpQueue::InboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:0)
|
|
||||||
/// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
|
||||||
fn on_initialize_when_congested() -> Weight {
|
|
||||||
// Proof Size summary in bytes:
|
|
||||||
// Measured: `202`
|
|
||||||
// Estimated: `3667`
|
|
||||||
// Minimum execution time: 5_971_000 picoseconds.
|
|
||||||
Weight::from_parts(6_260_000, 0)
|
|
||||||
.saturating_add(Weight::from_parts(0, 3667))
|
|
||||||
.saturating_add(T::DbWeight::get().reads(3))
|
|
||||||
}
|
|
||||||
/// Storage: `ToRococoXcmRouter::Bridge` (r:1 w:1)
|
|
||||||
/// Proof: `ToRococoXcmRouter::Bridge` (`max_values`: Some(1), `max_size`: Some(17), added: 512, mode: `MaxEncodedLen`)
|
|
||||||
fn report_bridge_status() -> Weight {
|
|
||||||
// Proof Size summary in bytes:
|
|
||||||
// Measured: `117`
|
|
||||||
// Estimated: `1502`
|
|
||||||
// Minimum execution time: 10_231_000 picoseconds.
|
|
||||||
Weight::from_parts(10_861_000, 0)
|
|
||||||
.saturating_add(Weight::from_parts(0, 1502))
|
|
||||||
.saturating_add(T::DbWeight::get().reads(1))
|
|
||||||
.saturating_add(T::DbWeight::get().writes(1))
|
|
||||||
}
|
|
||||||
/// Storage: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
|
||||||
/// Proof: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
|
||||||
/// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
|
||||||
/// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: UNKNOWN KEY `0x0973fe64c85043ba1c965cbc38eb63c7` (r:1 w:0)
|
|
||||||
/// Proof: UNKNOWN KEY `0x0973fe64c85043ba1c965cbc38eb63c7` (r:1 w:0)
|
|
||||||
/// Storage: `ToRococoXcmRouter::Bridge` (r:1 w:1)
|
|
||||||
/// Proof: `ToRococoXcmRouter::Bridge` (`max_values`: Some(1), `max_size`: Some(17), added: 512, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `XcmpQueue::DeliveryFeeFactor` (r:1 w:0)
|
|
||||||
/// Proof: `XcmpQueue::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0)
|
|
||||||
/// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1)
|
|
||||||
/// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0)
|
|
||||||
/// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `ParachainSystem::RelevantMessagingState` (r:1 w:0)
|
|
||||||
/// Proof: `ParachainSystem::RelevantMessagingState` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:1)
|
|
||||||
/// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `XcmpQueue::InboundXcmpStatus` (r:1 w:0)
|
|
||||||
/// Proof: `XcmpQueue::InboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `XcmpQueue::OutboundXcmpMessages` (r:0 w:1)
|
|
||||||
/// Proof: `XcmpQueue::OutboundXcmpMessages` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
|
||||||
fn send_message() -> Weight {
|
|
||||||
// Proof Size summary in bytes:
|
|
||||||
// Measured: `478`
|
|
||||||
// Estimated: `3943`
|
|
||||||
// Minimum execution time: 53_966_000 picoseconds.
|
|
||||||
Weight::from_parts(55_224_000, 0)
|
|
||||||
.saturating_add(Weight::from_parts(0, 3943))
|
|
||||||
.saturating_add(T::DbWeight::get().reads(11))
|
|
||||||
.saturating_add(T::DbWeight::get().writes(4))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-130
@@ -1,130 +0,0 @@
|
|||||||
// Copyright (C) Parity Technologies (UK) Ltd.
|
|
||||||
// This file is part of Cumulus.
|
|
||||||
|
|
||||||
// Cumulus is free software: you can redistribute it and/or modify
|
|
||||||
// it under the terms of the GNU General Public License as published by
|
|
||||||
// the Free Software Foundation, either version 3 of the License, or
|
|
||||||
// (at your option) any later version.
|
|
||||||
|
|
||||||
// Cumulus is distributed in the hope that it will be useful,
|
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
// GNU General Public License for more details.
|
|
||||||
|
|
||||||
// You should have received a copy of the GNU General Public License
|
|
||||||
// along with Cumulus. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
//! Autogenerated weights for `pallet_xcm_bridge_hub_router`
|
|
||||||
//!
|
|
||||||
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
|
|
||||||
//! DATE: 2023-10-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
|
|
||||||
//! WORST CASE MAP SIZE: `1000000`
|
|
||||||
//! HOSTNAME: `runner-vmdtonbz-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
|
|
||||||
//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-rococo-dev")`, DB CACHE: 1024
|
|
||||||
|
|
||||||
// Executed Command:
|
|
||||||
// target/production/polkadot-parachain
|
|
||||||
// benchmark
|
|
||||||
// pallet
|
|
||||||
// --steps=50
|
|
||||||
// --repeat=20
|
|
||||||
// --extrinsic=*
|
|
||||||
// --wasm-execution=compiled
|
|
||||||
// --heap-pages=4096
|
|
||||||
// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json
|
|
||||||
// --pallet=pallet_xcm_bridge_hub_router
|
|
||||||
// --chain=asset-hub-rococo-dev
|
|
||||||
// --header=./cumulus/file_header.txt
|
|
||||||
// --output=./cumulus/parachains/runtimes/assets/asset-hub-rococo/src/weights/
|
|
||||||
|
|
||||||
#![cfg_attr(rustfmt, rustfmt_skip)]
|
|
||||||
#![allow(unused_parens)]
|
|
||||||
#![allow(unused_imports)]
|
|
||||||
#![allow(missing_docs)]
|
|
||||||
|
|
||||||
use frame_support::{traits::Get, weights::Weight};
|
|
||||||
use core::marker::PhantomData;
|
|
||||||
|
|
||||||
/// Weight functions for `pallet_xcm_bridge_hub_router`.
|
|
||||||
pub struct WeightInfo<T>(PhantomData<T>);
|
|
||||||
impl<T: frame_system::Config> pallet_xcm_bridge_hub_router::WeightInfo for WeightInfo<T> {
|
|
||||||
/// Storage: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
|
||||||
/// Proof: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
|
||||||
/// Storage: `XcmpQueue::InboundXcmpStatus` (r:1 w:0)
|
|
||||||
/// Proof: `XcmpQueue::InboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:0)
|
|
||||||
/// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `ToWococoXcmRouter::Bridge` (r:1 w:1)
|
|
||||||
/// Proof: `ToWococoXcmRouter::Bridge` (`max_values`: Some(1), `max_size`: Some(17), added: 512, mode: `MaxEncodedLen`)
|
|
||||||
fn on_initialize_when_non_congested() -> Weight {
|
|
||||||
// Proof Size summary in bytes:
|
|
||||||
// Measured: `231`
|
|
||||||
// Estimated: `3696`
|
|
||||||
// Minimum execution time: 9_115_000 picoseconds.
|
|
||||||
Weight::from_parts(9_522_000, 0)
|
|
||||||
.saturating_add(Weight::from_parts(0, 3696))
|
|
||||||
.saturating_add(T::DbWeight::get().reads(4))
|
|
||||||
.saturating_add(T::DbWeight::get().writes(1))
|
|
||||||
}
|
|
||||||
/// Storage: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
|
||||||
/// Proof: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
|
||||||
/// Storage: `XcmpQueue::InboundXcmpStatus` (r:1 w:0)
|
|
||||||
/// Proof: `XcmpQueue::InboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:0)
|
|
||||||
/// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
|
||||||
fn on_initialize_when_congested() -> Weight {
|
|
||||||
// Proof Size summary in bytes:
|
|
||||||
// Measured: `183`
|
|
||||||
// Estimated: `3648`
|
|
||||||
// Minimum execution time: 5_207_000 picoseconds.
|
|
||||||
Weight::from_parts(5_534_000, 0)
|
|
||||||
.saturating_add(Weight::from_parts(0, 3648))
|
|
||||||
.saturating_add(T::DbWeight::get().reads(3))
|
|
||||||
}
|
|
||||||
/// Storage: `ToWococoXcmRouter::Bridge` (r:1 w:1)
|
|
||||||
/// Proof: `ToWococoXcmRouter::Bridge` (`max_values`: Some(1), `max_size`: Some(17), added: 512, mode: `MaxEncodedLen`)
|
|
||||||
fn report_bridge_status() -> Weight {
|
|
||||||
// Proof Size summary in bytes:
|
|
||||||
// Measured: `83`
|
|
||||||
// Estimated: `1502`
|
|
||||||
// Minimum execution time: 10_437_000 picoseconds.
|
|
||||||
Weight::from_parts(10_956_000, 0)
|
|
||||||
.saturating_add(Weight::from_parts(0, 1502))
|
|
||||||
.saturating_add(T::DbWeight::get().reads(1))
|
|
||||||
.saturating_add(T::DbWeight::get().writes(1))
|
|
||||||
}
|
|
||||||
/// Storage: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
|
||||||
/// Proof: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
|
||||||
/// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
|
||||||
/// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: UNKNOWN KEY `0x0973fe64c85043ba1c965cbc38eb63c7` (r:1 w:0)
|
|
||||||
/// Proof: UNKNOWN KEY `0x0973fe64c85043ba1c965cbc38eb63c7` (r:1 w:0)
|
|
||||||
/// Storage: `ToWococoXcmRouter::Bridge` (r:1 w:1)
|
|
||||||
/// Proof: `ToWococoXcmRouter::Bridge` (`max_values`: Some(1), `max_size`: Some(17), added: 512, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `XcmpQueue::DeliveryFeeFactor` (r:1 w:0)
|
|
||||||
/// Proof: `XcmpQueue::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0)
|
|
||||||
/// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1)
|
|
||||||
/// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0)
|
|
||||||
/// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `ParachainSystem::RelevantMessagingState` (r:1 w:0)
|
|
||||||
/// Proof: `ParachainSystem::RelevantMessagingState` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:1)
|
|
||||||
/// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `XcmpQueue::InboundXcmpStatus` (r:1 w:0)
|
|
||||||
/// Proof: `XcmpQueue::InboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `XcmpQueue::OutboundXcmpMessages` (r:0 w:1)
|
|
||||||
/// Proof: `XcmpQueue::OutboundXcmpMessages` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
|
||||||
fn send_message() -> Weight {
|
|
||||||
// Proof Size summary in bytes:
|
|
||||||
// Measured: `425`
|
|
||||||
// Estimated: `3890`
|
|
||||||
// Minimum execution time: 52_176_000 picoseconds.
|
|
||||||
Weight::from_parts(54_067_000, 0)
|
|
||||||
.saturating_add(Weight::from_parts(0, 3890))
|
|
||||||
.saturating_add(T::DbWeight::get().reads(11))
|
|
||||||
.saturating_add(T::DbWeight::get().writes(4))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+27
-37
@@ -17,9 +17,9 @@
|
|||||||
//! Autogenerated weights for `pallet_xcm_benchmarks::fungible`
|
//! Autogenerated weights for `pallet_xcm_benchmarks::fungible`
|
||||||
//!
|
//!
|
||||||
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
|
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
|
||||||
//! DATE: 2023-10-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
|
//! DATE: 2023-11-15, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
|
||||||
//! WORST CASE MAP SIZE: `1000000`
|
//! WORST CASE MAP SIZE: `1000000`
|
||||||
//! HOSTNAME: `runner-vmdtonbz-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
|
//! HOSTNAME: `runner-yprdrvc7-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
|
||||||
//! WASM-EXECUTION: Compiled, CHAIN: Some("asset-hub-rococo-dev"), DB CACHE: 1024
|
//! WASM-EXECUTION: Compiled, CHAIN: Some("asset-hub-rococo-dev"), DB CACHE: 1024
|
||||||
|
|
||||||
// Executed Command:
|
// Executed Command:
|
||||||
@@ -54,8 +54,8 @@ impl<T: frame_system::Config> WeightInfo<T> {
|
|||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `101`
|
// Measured: `101`
|
||||||
// Estimated: `3593`
|
// Estimated: `3593`
|
||||||
// Minimum execution time: 20_940_000 picoseconds.
|
// Minimum execution time: 21_643_000 picoseconds.
|
||||||
Weight::from_parts(21_453_000, 3593)
|
Weight::from_parts(22_410_000, 3593)
|
||||||
.saturating_add(T::DbWeight::get().reads(1))
|
.saturating_add(T::DbWeight::get().reads(1))
|
||||||
.saturating_add(T::DbWeight::get().writes(1))
|
.saturating_add(T::DbWeight::get().writes(1))
|
||||||
}
|
}
|
||||||
@@ -65,15 +65,13 @@ impl<T: frame_system::Config> WeightInfo<T> {
|
|||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `101`
|
// Measured: `101`
|
||||||
// Estimated: `6196`
|
// Estimated: `6196`
|
||||||
// Minimum execution time: 44_310_000 picoseconds.
|
// Minimum execution time: 43_758_000 picoseconds.
|
||||||
Weight::from_parts(44_948_000, 6196)
|
Weight::from_parts(44_654_000, 6196)
|
||||||
.saturating_add(T::DbWeight::get().reads(2))
|
.saturating_add(T::DbWeight::get().reads(2))
|
||||||
.saturating_add(T::DbWeight::get().writes(2))
|
.saturating_add(T::DbWeight::get().writes(2))
|
||||||
}
|
}
|
||||||
// Storage: `System::Account` (r:3 w:3)
|
// Storage: `System::Account` (r:3 w:3)
|
||||||
// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
|
// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
|
||||||
// Storage: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
|
||||||
// Proof: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
|
||||||
// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
||||||
// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
||||||
// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0)
|
// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0)
|
||||||
@@ -92,25 +90,21 @@ impl<T: frame_system::Config> WeightInfo<T> {
|
|||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `246`
|
// Measured: `246`
|
||||||
// Estimated: `8799`
|
// Estimated: `8799`
|
||||||
// Minimum execution time: 87_226_000 picoseconds.
|
// Minimum execution time: 87_978_000 picoseconds.
|
||||||
Weight::from_parts(89_399_000, 8799)
|
Weight::from_parts(88_517_000, 8799)
|
||||||
.saturating_add(T::DbWeight::get().reads(11))
|
.saturating_add(T::DbWeight::get().reads(10))
|
||||||
.saturating_add(T::DbWeight::get().writes(5))
|
.saturating_add(T::DbWeight::get().writes(5))
|
||||||
}
|
}
|
||||||
// Storage: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
|
||||||
// Proof: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
|
||||||
// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
||||||
// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
||||||
pub fn reserve_asset_deposited() -> Weight {
|
pub fn reserve_asset_deposited() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `39`
|
// Measured: `0`
|
||||||
// Estimated: `3504`
|
// Estimated: `1489`
|
||||||
// Minimum execution time: 7_320_000 picoseconds.
|
// Minimum execution time: 6_883_000 picoseconds.
|
||||||
Weight::from_parts(7_453_000, 3504)
|
Weight::from_parts(6_979_000, 1489)
|
||||||
.saturating_add(T::DbWeight::get().reads(2))
|
.saturating_add(T::DbWeight::get().reads(1))
|
||||||
}
|
}
|
||||||
// Storage: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
|
||||||
// Proof: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
|
||||||
// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
||||||
// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
||||||
// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0)
|
// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0)
|
||||||
@@ -131,17 +125,17 @@ impl<T: frame_system::Config> WeightInfo<T> {
|
|||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `246`
|
// Measured: `246`
|
||||||
// Estimated: `6196`
|
// Estimated: `6196`
|
||||||
// Minimum execution time: 183_539_000 picoseconds.
|
// Minimum execution time: 198_882_000 picoseconds.
|
||||||
Weight::from_parts(190_968_000, 6196)
|
Weight::from_parts(199_930_000, 6196)
|
||||||
.saturating_add(T::DbWeight::get().reads(10))
|
.saturating_add(T::DbWeight::get().reads(9))
|
||||||
.saturating_add(T::DbWeight::get().writes(4))
|
.saturating_add(T::DbWeight::get().writes(4))
|
||||||
}
|
}
|
||||||
pub fn receive_teleported_asset() -> Weight {
|
pub fn receive_teleported_asset() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `0`
|
// Measured: `0`
|
||||||
// Estimated: `0`
|
// Estimated: `0`
|
||||||
// Minimum execution time: 3_068_000 picoseconds.
|
// Minimum execution time: 3_343_000 picoseconds.
|
||||||
Weight::from_parts(3_228_000, 0)
|
Weight::from_parts(3_487_000, 0)
|
||||||
}
|
}
|
||||||
// Storage: `System::Account` (r:1 w:1)
|
// Storage: `System::Account` (r:1 w:1)
|
||||||
// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
|
// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
|
||||||
@@ -149,15 +143,13 @@ impl<T: frame_system::Config> WeightInfo<T> {
|
|||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `0`
|
// Measured: `0`
|
||||||
// Estimated: `3593`
|
// Estimated: `3593`
|
||||||
// Minimum execution time: 18_788_000 picoseconds.
|
// Minimum execution time: 19_399_000 picoseconds.
|
||||||
Weight::from_parts(19_240_000, 3593)
|
Weight::from_parts(19_659_000, 3593)
|
||||||
.saturating_add(T::DbWeight::get().reads(1))
|
.saturating_add(T::DbWeight::get().reads(1))
|
||||||
.saturating_add(T::DbWeight::get().writes(1))
|
.saturating_add(T::DbWeight::get().writes(1))
|
||||||
}
|
}
|
||||||
// Storage: `System::Account` (r:2 w:2)
|
// Storage: `System::Account` (r:2 w:2)
|
||||||
// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
|
// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
|
||||||
// Storage: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
|
||||||
// Proof: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
|
||||||
// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
||||||
// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
||||||
// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0)
|
// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0)
|
||||||
@@ -176,13 +168,11 @@ impl<T: frame_system::Config> WeightInfo<T> {
|
|||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `145`
|
// Measured: `145`
|
||||||
// Estimated: `6196`
|
// Estimated: `6196`
|
||||||
// Minimum execution time: 58_577_000 picoseconds.
|
// Minimum execution time: 59_017_000 picoseconds.
|
||||||
Weight::from_parts(59_729_000, 6196)
|
Weight::from_parts(60_543_000, 6196)
|
||||||
.saturating_add(T::DbWeight::get().reads(10))
|
.saturating_add(T::DbWeight::get().reads(9))
|
||||||
.saturating_add(T::DbWeight::get().writes(4))
|
.saturating_add(T::DbWeight::get().writes(4))
|
||||||
}
|
}
|
||||||
// Storage: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
|
||||||
// Proof: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
|
||||||
// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
||||||
// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
||||||
// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0)
|
// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0)
|
||||||
@@ -203,9 +193,9 @@ impl<T: frame_system::Config> WeightInfo<T> {
|
|||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `145`
|
// Measured: `145`
|
||||||
// Estimated: `3610`
|
// Estimated: `3610`
|
||||||
// Minimum execution time: 45_804_000 picoseconds.
|
// Minimum execution time: 45_409_000 picoseconds.
|
||||||
Weight::from_parts(46_702_000, 3610)
|
Weight::from_parts(47_041_000, 3610)
|
||||||
.saturating_add(T::DbWeight::get().reads(9))
|
.saturating_add(T::DbWeight::get().reads(8))
|
||||||
.saturating_add(T::DbWeight::get().writes(3))
|
.saturating_add(T::DbWeight::get().writes(3))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+67
-77
@@ -17,9 +17,9 @@
|
|||||||
//! Autogenerated weights for `pallet_xcm_benchmarks::generic`
|
//! Autogenerated weights for `pallet_xcm_benchmarks::generic`
|
||||||
//!
|
//!
|
||||||
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
|
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
|
||||||
//! DATE: 2023-10-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
|
//! DATE: 2023-11-15, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
|
||||||
//! WORST CASE MAP SIZE: `1000000`
|
//! WORST CASE MAP SIZE: `1000000`
|
||||||
//! HOSTNAME: `runner-vmdtonbz-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
|
//! HOSTNAME: `runner-yprdrvc7-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
|
||||||
//! WASM-EXECUTION: Compiled, CHAIN: Some("asset-hub-rococo-dev"), DB CACHE: 1024
|
//! WASM-EXECUTION: Compiled, CHAIN: Some("asset-hub-rococo-dev"), DB CACHE: 1024
|
||||||
|
|
||||||
// Executed Command:
|
// Executed Command:
|
||||||
@@ -48,8 +48,6 @@ use sp_std::marker::PhantomData;
|
|||||||
/// Weights for `pallet_xcm_benchmarks::generic`.
|
/// Weights for `pallet_xcm_benchmarks::generic`.
|
||||||
pub struct WeightInfo<T>(PhantomData<T>);
|
pub struct WeightInfo<T>(PhantomData<T>);
|
||||||
impl<T: frame_system::Config> WeightInfo<T> {
|
impl<T: frame_system::Config> WeightInfo<T> {
|
||||||
// Storage: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
|
||||||
// Proof: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
|
||||||
// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
||||||
// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
||||||
// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0)
|
// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0)
|
||||||
@@ -70,17 +68,17 @@ impl<T: frame_system::Config> WeightInfo<T> {
|
|||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `246`
|
// Measured: `246`
|
||||||
// Estimated: `6196`
|
// Estimated: `6196`
|
||||||
// Minimum execution time: 415_688_000 picoseconds.
|
// Minimum execution time: 440_298_000 picoseconds.
|
||||||
Weight::from_parts(433_876_000, 6196)
|
Weight::from_parts(446_508_000, 6196)
|
||||||
.saturating_add(T::DbWeight::get().reads(10))
|
.saturating_add(T::DbWeight::get().reads(9))
|
||||||
.saturating_add(T::DbWeight::get().writes(4))
|
.saturating_add(T::DbWeight::get().writes(4))
|
||||||
}
|
}
|
||||||
pub fn buy_execution() -> Weight {
|
pub fn buy_execution() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `0`
|
// Measured: `0`
|
||||||
// Estimated: `0`
|
// Estimated: `0`
|
||||||
// Minimum execution time: 3_209_000 picoseconds.
|
// Minimum execution time: 3_313_000 picoseconds.
|
||||||
Weight::from_parts(3_465_000, 0)
|
Weight::from_parts(3_422_000, 0)
|
||||||
}
|
}
|
||||||
// Storage: `PolkadotXcm::Queries` (r:1 w:0)
|
// Storage: `PolkadotXcm::Queries` (r:1 w:0)
|
||||||
// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
||||||
@@ -88,61 +86,59 @@ impl<T: frame_system::Config> WeightInfo<T> {
|
|||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `103`
|
// Measured: `103`
|
||||||
// Estimated: `3568`
|
// Estimated: `3568`
|
||||||
// Minimum execution time: 7_940_000 picoseconds.
|
// Minimum execution time: 9_691_000 picoseconds.
|
||||||
Weight::from_parts(8_208_000, 3568)
|
Weight::from_parts(9_948_000, 3568)
|
||||||
.saturating_add(T::DbWeight::get().reads(1))
|
.saturating_add(T::DbWeight::get().reads(1))
|
||||||
}
|
}
|
||||||
pub fn transact() -> Weight {
|
pub fn transact() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `0`
|
// Measured: `0`
|
||||||
// Estimated: `0`
|
// Estimated: `0`
|
||||||
// Minimum execution time: 9_336_000 picoseconds.
|
// Minimum execution time: 10_384_000 picoseconds.
|
||||||
Weight::from_parts(9_733_000, 0)
|
Weight::from_parts(11_085_000, 0)
|
||||||
}
|
}
|
||||||
pub fn refund_surplus() -> Weight {
|
pub fn refund_surplus() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `0`
|
// Measured: `0`
|
||||||
// Estimated: `0`
|
// Estimated: `0`
|
||||||
// Minimum execution time: 3_368_000 picoseconds.
|
// Minimum execution time: 3_438_000 picoseconds.
|
||||||
Weight::from_parts(3_700_000, 0)
|
Weight::from_parts(3_577_000, 0)
|
||||||
}
|
}
|
||||||
pub fn set_error_handler() -> Weight {
|
pub fn set_error_handler() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `0`
|
// Measured: `0`
|
||||||
// Estimated: `0`
|
// Estimated: `0`
|
||||||
// Minimum execution time: 1_868_000 picoseconds.
|
// Minimum execution time: 2_126_000 picoseconds.
|
||||||
Weight::from_parts(2_034_000, 0)
|
Weight::from_parts(2_243_000, 0)
|
||||||
}
|
}
|
||||||
pub fn set_appendix() -> Weight {
|
pub fn set_appendix() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `0`
|
// Measured: `0`
|
||||||
// Estimated: `0`
|
// Estimated: `0`
|
||||||
// Minimum execution time: 1_870_000 picoseconds.
|
// Minimum execution time: 2_126_000 picoseconds.
|
||||||
Weight::from_parts(1_972_000, 0)
|
Weight::from_parts(2_207_000, 0)
|
||||||
}
|
}
|
||||||
pub fn clear_error() -> Weight {
|
pub fn clear_error() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `0`
|
// Measured: `0`
|
||||||
// Estimated: `0`
|
// Estimated: `0`
|
||||||
// Minimum execution time: 1_890_000 picoseconds.
|
// Minimum execution time: 2_105_000 picoseconds.
|
||||||
Weight::from_parts(1_962_000, 0)
|
Weight::from_parts(2_193_000, 0)
|
||||||
}
|
}
|
||||||
pub fn descend_origin() -> Weight {
|
pub fn descend_origin() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `0`
|
// Measured: `0`
|
||||||
// Estimated: `0`
|
// Estimated: `0`
|
||||||
// Minimum execution time: 2_660_000 picoseconds.
|
// Minimum execution time: 2_999_000 picoseconds.
|
||||||
Weight::from_parts(2_744_000, 0)
|
Weight::from_parts(3_056_000, 0)
|
||||||
}
|
}
|
||||||
pub fn clear_origin() -> Weight {
|
pub fn clear_origin() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `0`
|
// Measured: `0`
|
||||||
// Estimated: `0`
|
// Estimated: `0`
|
||||||
// Minimum execution time: 1_845_000 picoseconds.
|
// Minimum execution time: 2_091_000 picoseconds.
|
||||||
Weight::from_parts(1_945_000, 0)
|
Weight::from_parts(2_176_000, 0)
|
||||||
}
|
}
|
||||||
// Storage: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
|
||||||
// Proof: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
|
||||||
// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
||||||
// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
||||||
// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0)
|
// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0)
|
||||||
@@ -163,9 +159,9 @@ impl<T: frame_system::Config> WeightInfo<T> {
|
|||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `246`
|
// Measured: `246`
|
||||||
// Estimated: `6196`
|
// Estimated: `6196`
|
||||||
// Minimum execution time: 54_283_000 picoseconds.
|
// Minimum execution time: 55_728_000 picoseconds.
|
||||||
Weight::from_parts(54_969_000, 6196)
|
Weight::from_parts(56_704_000, 6196)
|
||||||
.saturating_add(T::DbWeight::get().reads(10))
|
.saturating_add(T::DbWeight::get().reads(9))
|
||||||
.saturating_add(T::DbWeight::get().writes(4))
|
.saturating_add(T::DbWeight::get().writes(4))
|
||||||
}
|
}
|
||||||
// Storage: `PolkadotXcm::AssetTraps` (r:1 w:1)
|
// Storage: `PolkadotXcm::AssetTraps` (r:1 w:1)
|
||||||
@@ -174,8 +170,8 @@ impl<T: frame_system::Config> WeightInfo<T> {
|
|||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `160`
|
// Measured: `160`
|
||||||
// Estimated: `3625`
|
// Estimated: `3625`
|
||||||
// Minimum execution time: 11_850_000 picoseconds.
|
// Minimum execution time: 12_839_000 picoseconds.
|
||||||
Weight::from_parts(12_328_000, 3625)
|
Weight::from_parts(13_457_000, 3625)
|
||||||
.saturating_add(T::DbWeight::get().reads(1))
|
.saturating_add(T::DbWeight::get().reads(1))
|
||||||
.saturating_add(T::DbWeight::get().writes(1))
|
.saturating_add(T::DbWeight::get().writes(1))
|
||||||
}
|
}
|
||||||
@@ -183,8 +179,8 @@ impl<T: frame_system::Config> WeightInfo<T> {
|
|||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `0`
|
// Measured: `0`
|
||||||
// Estimated: `0`
|
// Estimated: `0`
|
||||||
// Minimum execution time: 1_891_000 picoseconds.
|
// Minimum execution time: 2_116_000 picoseconds.
|
||||||
Weight::from_parts(1_950_000, 0)
|
Weight::from_parts(2_219_000, 0)
|
||||||
}
|
}
|
||||||
// Storage: `PolkadotXcm::VersionNotifyTargets` (r:1 w:1)
|
// Storage: `PolkadotXcm::VersionNotifyTargets` (r:1 w:1)
|
||||||
// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
||||||
@@ -204,8 +200,8 @@ impl<T: frame_system::Config> WeightInfo<T> {
|
|||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `145`
|
// Measured: `145`
|
||||||
// Estimated: `3610`
|
// Estimated: `3610`
|
||||||
// Minimum execution time: 23_644_000 picoseconds.
|
// Minimum execution time: 24_891_000 picoseconds.
|
||||||
Weight::from_parts(24_296_000, 3610)
|
Weight::from_parts(25_583_000, 3610)
|
||||||
.saturating_add(T::DbWeight::get().reads(7))
|
.saturating_add(T::DbWeight::get().reads(7))
|
||||||
.saturating_add(T::DbWeight::get().writes(3))
|
.saturating_add(T::DbWeight::get().writes(3))
|
||||||
}
|
}
|
||||||
@@ -215,47 +211,45 @@ impl<T: frame_system::Config> WeightInfo<T> {
|
|||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `0`
|
// Measured: `0`
|
||||||
// Estimated: `0`
|
// Estimated: `0`
|
||||||
// Minimum execution time: 3_719_000 picoseconds.
|
// Minimum execution time: 3_968_000 picoseconds.
|
||||||
Weight::from_parts(3_896_000, 0)
|
Weight::from_parts(4_122_000, 0)
|
||||||
.saturating_add(T::DbWeight::get().writes(1))
|
.saturating_add(T::DbWeight::get().writes(1))
|
||||||
}
|
}
|
||||||
pub fn burn_asset() -> Weight {
|
pub fn burn_asset() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `0`
|
// Measured: `0`
|
||||||
// Estimated: `0`
|
// Estimated: `0`
|
||||||
// Minimum execution time: 125_710_000 picoseconds.
|
// Minimum execution time: 136_220_000 picoseconds.
|
||||||
Weight::from_parts(132_434_000, 0)
|
Weight::from_parts(137_194_000, 0)
|
||||||
}
|
}
|
||||||
pub fn expect_asset() -> Weight {
|
pub fn expect_asset() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `0`
|
// Measured: `0`
|
||||||
// Estimated: `0`
|
// Estimated: `0`
|
||||||
// Minimum execution time: 11_650_000 picoseconds.
|
// Minimum execution time: 12_343_000 picoseconds.
|
||||||
Weight::from_parts(12_277_000, 0)
|
Weight::from_parts(12_635_000, 0)
|
||||||
}
|
}
|
||||||
pub fn expect_origin() -> Weight {
|
pub fn expect_origin() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `0`
|
// Measured: `0`
|
||||||
// Estimated: `0`
|
// Estimated: `0`
|
||||||
// Minimum execution time: 1_978_000 picoseconds.
|
// Minimum execution time: 2_237_000 picoseconds.
|
||||||
Weight::from_parts(2_070_000, 0)
|
Weight::from_parts(2_315_000, 0)
|
||||||
}
|
}
|
||||||
pub fn expect_error() -> Weight {
|
pub fn expect_error() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `0`
|
// Measured: `0`
|
||||||
// Estimated: `0`
|
// Estimated: `0`
|
||||||
// Minimum execution time: 1_899_000 picoseconds.
|
// Minimum execution time: 2_094_000 picoseconds.
|
||||||
Weight::from_parts(2_002_000, 0)
|
Weight::from_parts(2_231_000, 0)
|
||||||
}
|
}
|
||||||
pub fn expect_transact_status() -> Weight {
|
pub fn expect_transact_status() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `0`
|
// Measured: `0`
|
||||||
// Estimated: `0`
|
// Estimated: `0`
|
||||||
// Minimum execution time: 2_133_000 picoseconds.
|
// Minimum execution time: 2_379_000 picoseconds.
|
||||||
Weight::from_parts(2_194_000, 0)
|
Weight::from_parts(2_455_000, 0)
|
||||||
}
|
}
|
||||||
// Storage: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
|
||||||
// Proof: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
|
||||||
// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
||||||
// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
||||||
// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0)
|
// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0)
|
||||||
@@ -276,20 +270,18 @@ impl<T: frame_system::Config> WeightInfo<T> {
|
|||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `246`
|
// Measured: `246`
|
||||||
// Estimated: `6196`
|
// Estimated: `6196`
|
||||||
// Minimum execution time: 58_644_000 picoseconds.
|
// Minimum execution time: 60_734_000 picoseconds.
|
||||||
Weight::from_parts(60_614_000, 6196)
|
Weight::from_parts(61_964_000, 6196)
|
||||||
.saturating_add(T::DbWeight::get().reads(10))
|
.saturating_add(T::DbWeight::get().reads(9))
|
||||||
.saturating_add(T::DbWeight::get().writes(4))
|
.saturating_add(T::DbWeight::get().writes(4))
|
||||||
}
|
}
|
||||||
pub fn expect_pallet() -> Weight {
|
pub fn expect_pallet() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `0`
|
// Measured: `0`
|
||||||
// Estimated: `0`
|
// Estimated: `0`
|
||||||
// Minimum execution time: 5_185_000 picoseconds.
|
// Minimum execution time: 5_500_000 picoseconds.
|
||||||
Weight::from_parts(5_366_000, 0)
|
Weight::from_parts(5_720_000, 0)
|
||||||
}
|
}
|
||||||
// Storage: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
|
||||||
// Proof: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
|
||||||
// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
||||||
// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
||||||
// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0)
|
// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0)
|
||||||
@@ -310,56 +302,54 @@ impl<T: frame_system::Config> WeightInfo<T> {
|
|||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `246`
|
// Measured: `246`
|
||||||
// Estimated: `6196`
|
// Estimated: `6196`
|
||||||
// Minimum execution time: 54_443_000 picoseconds.
|
// Minimum execution time: 55_767_000 picoseconds.
|
||||||
Weight::from_parts(55_873_000, 6196)
|
Weight::from_parts(56_790_000, 6196)
|
||||||
.saturating_add(T::DbWeight::get().reads(10))
|
.saturating_add(T::DbWeight::get().reads(9))
|
||||||
.saturating_add(T::DbWeight::get().writes(4))
|
.saturating_add(T::DbWeight::get().writes(4))
|
||||||
}
|
}
|
||||||
pub fn clear_transact_status() -> Weight {
|
pub fn clear_transact_status() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `0`
|
// Measured: `0`
|
||||||
// Estimated: `0`
|
// Estimated: `0`
|
||||||
// Minimum execution time: 1_909_000 picoseconds.
|
// Minimum execution time: 2_201_000 picoseconds.
|
||||||
Weight::from_parts(2_011_000, 0)
|
Weight::from_parts(2_291_000, 0)
|
||||||
}
|
}
|
||||||
pub fn set_topic() -> Weight {
|
pub fn set_topic() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `0`
|
// Measured: `0`
|
||||||
// Estimated: `0`
|
// Estimated: `0`
|
||||||
// Minimum execution time: 1_814_000 picoseconds.
|
// Minimum execution time: 2_164_000 picoseconds.
|
||||||
Weight::from_parts(1_956_000, 0)
|
Weight::from_parts(2_241_000, 0)
|
||||||
}
|
}
|
||||||
pub fn clear_topic() -> Weight {
|
pub fn clear_topic() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `0`
|
// Measured: `0`
|
||||||
// Estimated: `0`
|
// Estimated: `0`
|
||||||
// Minimum execution time: 1_875_000 picoseconds.
|
// Minimum execution time: 2_127_000 picoseconds.
|
||||||
Weight::from_parts(2_003_000, 0)
|
Weight::from_parts(2_236_000, 0)
|
||||||
}
|
}
|
||||||
// Storage: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
|
||||||
// Proof: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
|
||||||
// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
||||||
// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
||||||
pub fn universal_origin() -> Weight {
|
pub fn universal_origin() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `39`
|
// Measured: `0`
|
||||||
// Estimated: `3504`
|
// Estimated: `1489`
|
||||||
// Minimum execution time: 7_376_000 picoseconds.
|
// Minimum execution time: 4_275_000 picoseconds.
|
||||||
Weight::from_parts(7_620_000, 3504)
|
Weight::from_parts(4_381_000, 1489)
|
||||||
.saturating_add(T::DbWeight::get().reads(2))
|
.saturating_add(T::DbWeight::get().reads(1))
|
||||||
}
|
}
|
||||||
pub fn set_fees_mode() -> Weight {
|
pub fn set_fees_mode() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `0`
|
// Measured: `0`
|
||||||
// Estimated: `0`
|
// Estimated: `0`
|
||||||
// Minimum execution time: 1_863_000 picoseconds.
|
// Minimum execution time: 2_132_000 picoseconds.
|
||||||
Weight::from_parts(1_964_000, 0)
|
Weight::from_parts(2_216_000, 0)
|
||||||
}
|
}
|
||||||
pub fn unpaid_execution() -> Weight {
|
pub fn unpaid_execution() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `0`
|
// Measured: `0`
|
||||||
// Estimated: `0`
|
// Estimated: `0`
|
||||||
// Minimum execution time: 1_956_000 picoseconds.
|
// Minimum execution time: 2_265_000 picoseconds.
|
||||||
Weight::from_parts(2_057_000, 0)
|
Weight::from_parts(2_332_000, 0)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,9 +16,8 @@
|
|||||||
use super::{
|
use super::{
|
||||||
AccountId, AllPalletsWithSystem, Assets, Authorship, Balance, Balances, BaseDeliveryFee,
|
AccountId, AllPalletsWithSystem, Assets, Authorship, Balance, Balances, BaseDeliveryFee,
|
||||||
FeeAssetId, ForeignAssets, ForeignAssetsInstance, ParachainInfo, ParachainSystem, PolkadotXcm,
|
FeeAssetId, ForeignAssets, ForeignAssetsInstance, ParachainInfo, ParachainSystem, PolkadotXcm,
|
||||||
PoolAssets, Runtime, RuntimeCall, RuntimeEvent, RuntimeFlavor, RuntimeOrigin,
|
PoolAssets, Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, ToWestendXcmRouter,
|
||||||
ToRococoXcmRouter, ToWestendXcmRouter, ToWococoXcmRouter, TransactionByteFee,
|
TransactionByteFee, TrustBackedAssetsInstance, WeightToFee, XcmpQueue,
|
||||||
TrustBackedAssetsInstance, WeightToFee, XcmpQueue,
|
|
||||||
};
|
};
|
||||||
use assets_common::{
|
use assets_common::{
|
||||||
local_and_foreign_assets::MatchesLocalAndForeignAssetsMultiLocation,
|
local_and_foreign_assets::MatchesLocalAndForeignAssetsMultiLocation,
|
||||||
@@ -26,7 +25,7 @@ use assets_common::{
|
|||||||
};
|
};
|
||||||
use frame_support::{
|
use frame_support::{
|
||||||
match_types, parameter_types,
|
match_types, parameter_types,
|
||||||
traits::{ConstU32, Contains, Equals, Everything, Get, Nothing, PalletInfoAccess},
|
traits::{ConstU32, Contains, Equals, Everything, Nothing, PalletInfoAccess},
|
||||||
};
|
};
|
||||||
use frame_system::EnsureRoot;
|
use frame_system::EnsureRoot;
|
||||||
use pallet_xcm::XcmPassthrough;
|
use pallet_xcm::XcmPassthrough;
|
||||||
@@ -61,8 +60,8 @@ use xcm_executor::{traits::WithOriginFilter, XcmExecutor};
|
|||||||
use cumulus_primitives_core::ParaId;
|
use cumulus_primitives_core::ParaId;
|
||||||
|
|
||||||
parameter_types! {
|
parameter_types! {
|
||||||
pub storage Flavor: RuntimeFlavor = RuntimeFlavor::default();
|
|
||||||
pub const TokenLocation: MultiLocation = MultiLocation::parent();
|
pub const TokenLocation: MultiLocation = MultiLocation::parent();
|
||||||
|
pub const RelayNetwork: NetworkId = NetworkId::Rococo;
|
||||||
pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into();
|
pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into();
|
||||||
pub UniversalLocation: InteriorMultiLocation =
|
pub UniversalLocation: InteriorMultiLocation =
|
||||||
X2(GlobalConsensus(RelayNetwork::get()), Parachain(ParachainInfo::parachain_id().into()));
|
X2(GlobalConsensus(RelayNetwork::get()), Parachain(ParachainInfo::parachain_id().into()));
|
||||||
@@ -79,22 +78,6 @@ parameter_types! {
|
|||||||
pub RelayTreasuryLocation: MultiLocation = (Parent, PalletInstance(rococo_runtime_constants::TREASURY_PALLET_ID)).into();
|
pub RelayTreasuryLocation: MultiLocation = (Parent, PalletInstance(rococo_runtime_constants::TREASURY_PALLET_ID)).into();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Adapter for resolving `NetworkId` based on `pub storage Flavor: RuntimeFlavor`.
|
|
||||||
pub struct RelayNetwork;
|
|
||||||
impl Get<Option<NetworkId>> for RelayNetwork {
|
|
||||||
fn get() -> Option<NetworkId> {
|
|
||||||
Some(Self::get())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
impl Get<NetworkId> for RelayNetwork {
|
|
||||||
fn get() -> NetworkId {
|
|
||||||
match Flavor::get() {
|
|
||||||
RuntimeFlavor::Rococo => NetworkId::Rococo,
|
|
||||||
RuntimeFlavor::Wococo => NetworkId::Wococo,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Type for specifying how a `MultiLocation` can be converted into an `AccountId`. This is used
|
/// Type for specifying how a `MultiLocation` can be converted into an `AccountId`. This is used
|
||||||
/// when determining ownership of accounts for asset transacting and when attempting to use XCM
|
/// when determining ownership of accounts for asset transacting and when attempting to use XCM
|
||||||
/// `Transact` in order to determine the dispatch Origin.
|
/// `Transact` in order to determine the dispatch Origin.
|
||||||
@@ -285,8 +268,7 @@ impl Contains<RuntimeCall> for SafeCallFilter {
|
|||||||
if items.iter().all(|(k, _)| k.eq(&bridging::XcmBridgeHubRouterByteFee::key())) ||
|
if items.iter().all(|(k, _)| k.eq(&bridging::XcmBridgeHubRouterByteFee::key())) ||
|
||||||
items
|
items
|
||||||
.iter()
|
.iter()
|
||||||
.all(|(k, _)| k.eq(&bridging::XcmBridgeHubRouterBaseFee::key())) ||
|
.all(|(k, _)| k.eq(&bridging::XcmBridgeHubRouterBaseFee::key())) =>
|
||||||
items.iter().all(|(k, _)| k.eq(&Flavor::key())) =>
|
|
||||||
return true,
|
return true,
|
||||||
_ => (),
|
_ => (),
|
||||||
};
|
};
|
||||||
@@ -475,12 +457,8 @@ impl Contains<RuntimeCall> for SafeCallFilter {
|
|||||||
pallet_uniques::Call::set_collection_max_supply { .. } |
|
pallet_uniques::Call::set_collection_max_supply { .. } |
|
||||||
pallet_uniques::Call::set_price { .. } |
|
pallet_uniques::Call::set_price { .. } |
|
||||||
pallet_uniques::Call::buy_item { .. }
|
pallet_uniques::Call::buy_item { .. }
|
||||||
) | RuntimeCall::ToWococoXcmRouter(
|
|
||||||
pallet_xcm_bridge_hub_router::Call::report_bridge_status { .. }
|
|
||||||
) | RuntimeCall::ToWestendXcmRouter(
|
) | RuntimeCall::ToWestendXcmRouter(
|
||||||
pallet_xcm_bridge_hub_router::Call::report_bridge_status { .. }
|
pallet_xcm_bridge_hub_router::Call::report_bridge_status { .. }
|
||||||
) | RuntimeCall::ToRococoXcmRouter(
|
|
||||||
pallet_xcm_bridge_hub_router::Call::report_bridge_status { .. }
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -572,11 +550,7 @@ impl xcm_executor::Config for XcmConfig {
|
|||||||
// as reserve locations (we trust the Bridge Hub to relay the message that a reserve is being
|
// as reserve locations (we trust the Bridge Hub to relay the message that a reserve is being
|
||||||
// held). Asset Hub may _act_ as a reserve location for ROC and assets created
|
// held). Asset Hub may _act_ as a reserve location for ROC and assets created
|
||||||
// under `pallet-assets`. Users must use teleport where allowed (e.g. ROC with the Relay Chain).
|
// under `pallet-assets`. Users must use teleport where allowed (e.g. ROC with the Relay Chain).
|
||||||
type IsReserve = (
|
type IsReserve = (bridging::to_westend::IsTrustedBridgedReserveLocationForConcreteAsset,);
|
||||||
bridging::to_wococo::IsTrustedBridgedReserveLocationForConcreteAsset,
|
|
||||||
bridging::to_westend::IsTrustedBridgedReserveLocationForConcreteAsset,
|
|
||||||
bridging::to_rococo::IsTrustedBridgedReserveLocationForConcreteAsset,
|
|
||||||
);
|
|
||||||
type IsTeleporter = TrustedTeleporters;
|
type IsTeleporter = TrustedTeleporters;
|
||||||
type UniversalLocation = UniversalLocation;
|
type UniversalLocation = UniversalLocation;
|
||||||
type Barrier = Barrier;
|
type Barrier = Barrier;
|
||||||
@@ -627,11 +601,7 @@ impl xcm_executor::Config for XcmConfig {
|
|||||||
XcmFeeToAccount<Self::AssetTransactor, AccountId, TreasuryAccount>,
|
XcmFeeToAccount<Self::AssetTransactor, AccountId, TreasuryAccount>,
|
||||||
>;
|
>;
|
||||||
type MessageExporter = ();
|
type MessageExporter = ();
|
||||||
type UniversalAliases = (
|
type UniversalAliases = (bridging::to_westend::UniversalAliases,);
|
||||||
bridging::to_wococo::UniversalAliases,
|
|
||||||
bridging::to_rococo::UniversalAliases,
|
|
||||||
bridging::to_westend::UniversalAliases,
|
|
||||||
);
|
|
||||||
type CallDispatcher = WithOriginFilter<SafeCallFilter>;
|
type CallDispatcher = WithOriginFilter<SafeCallFilter>;
|
||||||
type SafeCallFilter = SafeCallFilter;
|
type SafeCallFilter = SafeCallFilter;
|
||||||
type Aliasers = Nothing;
|
type Aliasers = Nothing;
|
||||||
@@ -656,15 +626,9 @@ type LocalXcmRouter = (
|
|||||||
/// queues.
|
/// queues.
|
||||||
pub type XcmRouter = WithUniqueTopic<(
|
pub type XcmRouter = WithUniqueTopic<(
|
||||||
LocalXcmRouter,
|
LocalXcmRouter,
|
||||||
// Router which wraps and sends xcm to BridgeHub to be delivered to the Wococo
|
|
||||||
// GlobalConsensus
|
|
||||||
ToWococoXcmRouter,
|
|
||||||
// Router which wraps and sends xcm to BridgeHub to be delivered to the Westend
|
// Router which wraps and sends xcm to BridgeHub to be delivered to the Westend
|
||||||
// GlobalConsensus
|
// GlobalConsensus
|
||||||
ToWestendXcmRouter,
|
ToWestendXcmRouter,
|
||||||
// Router which wraps and sends xcm to BridgeHub to be delivered to the Rococo
|
|
||||||
// GlobalConsensus
|
|
||||||
ToRococoXcmRouter,
|
|
||||||
)>;
|
)>;
|
||||||
|
|
||||||
impl pallet_xcm::Config for Runtime {
|
impl pallet_xcm::Config for Runtime {
|
||||||
@@ -731,7 +695,7 @@ impl<SelfParaId>
|
|||||||
pallet_asset_conversion::BenchmarkHelper<MultiLocation, sp_std::boxed::Box<MultiLocation>>
|
pallet_asset_conversion::BenchmarkHelper<MultiLocation, sp_std::boxed::Box<MultiLocation>>
|
||||||
for BenchmarkMultiLocationConverter<SelfParaId>
|
for BenchmarkMultiLocationConverter<SelfParaId>
|
||||||
where
|
where
|
||||||
SelfParaId: Get<ParaId>,
|
SelfParaId: frame_support::traits::Get<ParaId>,
|
||||||
{
|
{
|
||||||
fn asset_id(asset_id: u32) -> MultiLocation {
|
fn asset_id(asset_id: u32) -> MultiLocation {
|
||||||
MultiLocation {
|
MultiLocation {
|
||||||
@@ -754,7 +718,7 @@ pub mod bridging {
|
|||||||
use assets_common::matching;
|
use assets_common::matching;
|
||||||
use sp_std::collections::btree_set::BTreeSet;
|
use sp_std::collections::btree_set::BTreeSet;
|
||||||
|
|
||||||
// common/shared parameters for Wococo/Rococo
|
// common/shared parameters
|
||||||
parameter_types! {
|
parameter_types! {
|
||||||
/// Base price of every byte of the Rococo -> Westend message. Can be adjusted via
|
/// Base price of every byte of the Rococo -> Westend message. Can be adjusted via
|
||||||
/// governance `set_storage` call.
|
/// governance `set_storage` call.
|
||||||
@@ -775,10 +739,7 @@ pub mod bridging {
|
|||||||
/// governance `set_storage` call.
|
/// governance `set_storage` call.
|
||||||
pub storage XcmBridgeHubRouterByteFee: Balance = TransactionByteFee::get();
|
pub storage XcmBridgeHubRouterByteFee: Balance = TransactionByteFee::get();
|
||||||
|
|
||||||
pub SiblingBridgeHubParaId: u32 = match Flavor::get() {
|
pub SiblingBridgeHubParaId: u32 = bp_bridge_hub_rococo::BRIDGE_HUB_ROCOCO_PARACHAIN_ID;
|
||||||
RuntimeFlavor::Rococo => bp_bridge_hub_rococo::BRIDGE_HUB_ROCOCO_PARACHAIN_ID,
|
|
||||||
RuntimeFlavor::Wococo => bp_bridge_hub_wococo::BRIDGE_HUB_WOCOCO_PARACHAIN_ID,
|
|
||||||
};
|
|
||||||
pub SiblingBridgeHub: MultiLocation = MultiLocation::new(1, X1(Parachain(SiblingBridgeHubParaId::get())));
|
pub SiblingBridgeHub: MultiLocation = MultiLocation::new(1, X1(Parachain(SiblingBridgeHubParaId::get())));
|
||||||
/// Router expects payment with this `AssetId`.
|
/// Router expects payment with this `AssetId`.
|
||||||
/// (`AssetId` has to be aligned with `BridgeTable`)
|
/// (`AssetId` has to be aligned with `BridgeTable`)
|
||||||
@@ -786,90 +747,12 @@ pub mod bridging {
|
|||||||
|
|
||||||
pub BridgeTable: sp_std::vec::Vec<NetworkExportTableItem> =
|
pub BridgeTable: sp_std::vec::Vec<NetworkExportTableItem> =
|
||||||
sp_std::vec::Vec::new().into_iter()
|
sp_std::vec::Vec::new().into_iter()
|
||||||
.chain(to_wococo::BridgeTable::get())
|
|
||||||
.chain(to_westend::BridgeTable::get())
|
.chain(to_westend::BridgeTable::get())
|
||||||
.chain(to_rococo::BridgeTable::get())
|
|
||||||
.collect();
|
.collect();
|
||||||
}
|
}
|
||||||
|
|
||||||
pub type NetworkExportTable = xcm_builder::NetworkExportTable<BridgeTable>;
|
pub type NetworkExportTable = xcm_builder::NetworkExportTable<BridgeTable>;
|
||||||
|
|
||||||
pub mod to_wococo {
|
|
||||||
use super::*;
|
|
||||||
|
|
||||||
parameter_types! {
|
|
||||||
pub SiblingBridgeHubWithBridgeHubWococoInstance: MultiLocation = MultiLocation::new(
|
|
||||||
1,
|
|
||||||
X2(
|
|
||||||
Parachain(SiblingBridgeHubParaId::get()),
|
|
||||||
PalletInstance(bp_bridge_hub_rococo::WITH_BRIDGE_ROCOCO_TO_WOCOCO_MESSAGES_PALLET_INDEX)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
pub const WococoNetwork: NetworkId = NetworkId::Wococo;
|
|
||||||
pub AssetHubWococo: MultiLocation = MultiLocation::new(2, X2(GlobalConsensus(WococoNetwork::get()), Parachain(bp_asset_hub_wococo::ASSET_HUB_WOCOCO_PARACHAIN_ID)));
|
|
||||||
pub WocLocation: MultiLocation = MultiLocation::new(2, X1(GlobalConsensus(WococoNetwork::get())));
|
|
||||||
|
|
||||||
pub WocFromAssetHubWococo: (MultiAssetFilter, MultiLocation) = (
|
|
||||||
Wild(AllOf { fun: WildFungible, id: Concrete(WocLocation::get()) }),
|
|
||||||
AssetHubWococo::get()
|
|
||||||
);
|
|
||||||
|
|
||||||
/// Set up exporters configuration.
|
|
||||||
/// `Option<MultiAsset>` represents static "base fee" which is used for total delivery fee calculation.
|
|
||||||
pub BridgeTable: sp_std::vec::Vec<NetworkExportTableItem> = sp_std::vec![
|
|
||||||
NetworkExportTableItem::new(
|
|
||||||
WococoNetwork::get(),
|
|
||||||
Some(sp_std::vec![
|
|
||||||
AssetHubWococo::get().interior.split_global().expect("invalid configuration for AssetHubWococo").1,
|
|
||||||
]),
|
|
||||||
SiblingBridgeHub::get(),
|
|
||||||
// base delivery fee to local `BridgeHub`
|
|
||||||
Some((
|
|
||||||
XcmBridgeHubRouterFeeAssetId::get(),
|
|
||||||
XcmBridgeHubRouterBaseFee::get(),
|
|
||||||
).into())
|
|
||||||
)
|
|
||||||
];
|
|
||||||
|
|
||||||
/// Universal aliases
|
|
||||||
pub UniversalAliases: BTreeSet<(MultiLocation, Junction)> = BTreeSet::from_iter(
|
|
||||||
sp_std::vec![
|
|
||||||
(SiblingBridgeHubWithBridgeHubWococoInstance::get(), GlobalConsensus(WococoNetwork::get()))
|
|
||||||
]
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Contains<(MultiLocation, Junction)> for UniversalAliases {
|
|
||||||
fn contains(alias: &(MultiLocation, Junction)) -> bool {
|
|
||||||
UniversalAliases::get().contains(alias)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Trusted reserve locations filter for `xcm_executor::Config::IsReserve`.
|
|
||||||
/// Locations from which the runtime accepts reserved assets.
|
|
||||||
pub type IsTrustedBridgedReserveLocationForConcreteAsset =
|
|
||||||
matching::IsTrustedBridgedReserveLocationForConcreteAsset<
|
|
||||||
UniversalLocation,
|
|
||||||
(
|
|
||||||
// allow receive WOC from AssetHubWococo
|
|
||||||
xcm_builder::Case<WocFromAssetHubWococo>,
|
|
||||||
// and nothing else
|
|
||||||
),
|
|
||||||
>;
|
|
||||||
|
|
||||||
impl Contains<RuntimeCall> for ToWococoXcmRouter {
|
|
||||||
fn contains(call: &RuntimeCall) -> bool {
|
|
||||||
matches!(
|
|
||||||
call,
|
|
||||||
RuntimeCall::ToWococoXcmRouter(
|
|
||||||
pallet_xcm_bridge_hub_router::Call::report_bridge_status { .. }
|
|
||||||
)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub mod to_westend {
|
pub mod to_westend {
|
||||||
use super::*;
|
use super::*;
|
||||||
|
|
||||||
@@ -946,82 +829,6 @@ pub mod bridging {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub mod to_rococo {
|
|
||||||
use super::*;
|
|
||||||
|
|
||||||
parameter_types! {
|
|
||||||
pub SiblingBridgeHubWithBridgeHubRococoInstance: MultiLocation = MultiLocation::new(
|
|
||||||
1,
|
|
||||||
X2(
|
|
||||||
Parachain(SiblingBridgeHubParaId::get()),
|
|
||||||
PalletInstance(bp_bridge_hub_wococo::WITH_BRIDGE_WOCOCO_TO_ROCOCO_MESSAGES_PALLET_INDEX)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
pub const RococoNetwork: NetworkId = NetworkId::Rococo;
|
|
||||||
pub AssetHubRococo: MultiLocation = MultiLocation::new(2, X2(GlobalConsensus(RococoNetwork::get()), Parachain(bp_asset_hub_rococo::ASSET_HUB_ROCOCO_PARACHAIN_ID)));
|
|
||||||
pub RocLocation: MultiLocation = MultiLocation::new(2, X1(GlobalConsensus(RococoNetwork::get())));
|
|
||||||
|
|
||||||
pub RocFromAssetHubRococo: (MultiAssetFilter, MultiLocation) = (
|
|
||||||
Wild(AllOf { fun: WildFungible, id: Concrete(RocLocation::get()) }),
|
|
||||||
AssetHubRococo::get()
|
|
||||||
);
|
|
||||||
|
|
||||||
/// Set up exporters configuration.
|
|
||||||
/// `Option<MultiAsset>` represents static "base fee" which is used for total delivery fee calculation.
|
|
||||||
pub BridgeTable: sp_std::vec::Vec<NetworkExportTableItem> = sp_std::vec![
|
|
||||||
NetworkExportTableItem::new(
|
|
||||||
RococoNetwork::get(),
|
|
||||||
Some(sp_std::vec![
|
|
||||||
AssetHubRococo::get().interior.split_global().expect("invalid configuration for AssetHubRococo").1,
|
|
||||||
]),
|
|
||||||
SiblingBridgeHub::get(),
|
|
||||||
// base delivery fee to local `BridgeHub`
|
|
||||||
Some((
|
|
||||||
XcmBridgeHubRouterFeeAssetId::get(),
|
|
||||||
XcmBridgeHubRouterBaseFee::get(),
|
|
||||||
).into())
|
|
||||||
)
|
|
||||||
];
|
|
||||||
|
|
||||||
/// Universal aliases
|
|
||||||
pub UniversalAliases: BTreeSet<(MultiLocation, Junction)> = BTreeSet::from_iter(
|
|
||||||
sp_std::vec![
|
|
||||||
(SiblingBridgeHubWithBridgeHubRococoInstance::get(), GlobalConsensus(RococoNetwork::get()))
|
|
||||||
]
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Contains<(MultiLocation, Junction)> for UniversalAliases {
|
|
||||||
fn contains(alias: &(MultiLocation, Junction)) -> bool {
|
|
||||||
UniversalAliases::get().contains(alias)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Reserve locations filter for `xcm_executor::Config::IsReserve`.
|
|
||||||
/// Locations from which the runtime accepts reserved assets.
|
|
||||||
pub type IsTrustedBridgedReserveLocationForConcreteAsset =
|
|
||||||
matching::IsTrustedBridgedReserveLocationForConcreteAsset<
|
|
||||||
UniversalLocation,
|
|
||||||
(
|
|
||||||
// allow receive ROC from AssetHubRococo
|
|
||||||
xcm_builder::Case<RocFromAssetHubRococo>,
|
|
||||||
// and nothing else
|
|
||||||
),
|
|
||||||
>;
|
|
||||||
|
|
||||||
impl Contains<RuntimeCall> for ToRococoXcmRouter {
|
|
||||||
fn contains(call: &RuntimeCall) -> bool {
|
|
||||||
matches!(
|
|
||||||
call,
|
|
||||||
RuntimeCall::ToRococoXcmRouter(
|
|
||||||
pallet_xcm_bridge_hub_router::Call::report_bridge_status { .. }
|
|
||||||
)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Benchmarks helper for bridging configuration.
|
/// Benchmarks helper for bridging configuration.
|
||||||
#[cfg(feature = "runtime-benchmarks")]
|
#[cfg(feature = "runtime-benchmarks")]
|
||||||
pub struct BridgingBenchmarksHelper;
|
pub struct BridgingBenchmarksHelper;
|
||||||
|
|||||||
@@ -28,8 +28,8 @@ pub use asset_hub_rococo_runtime::{
|
|||||||
},
|
},
|
||||||
AllPalletsWithoutSystem, AssetDeposit, Assets, Balances, ExistentialDeposit, ForeignAssets,
|
AllPalletsWithoutSystem, AssetDeposit, Assets, Balances, ExistentialDeposit, ForeignAssets,
|
||||||
ForeignAssetsInstance, MetadataDepositBase, MetadataDepositPerByte, ParachainSystem, Runtime,
|
ForeignAssetsInstance, MetadataDepositBase, MetadataDepositPerByte, ParachainSystem, Runtime,
|
||||||
RuntimeCall, RuntimeEvent, RuntimeFlavor, SessionKeys, System, ToRococoXcmRouterInstance,
|
RuntimeCall, RuntimeEvent, SessionKeys, System, ToWestendXcmRouterInstance,
|
||||||
ToWestendXcmRouterInstance, ToWococoXcmRouterInstance, TrustBackedAssetsInstance, XcmpQueue,
|
TrustBackedAssetsInstance, XcmpQueue,
|
||||||
};
|
};
|
||||||
use asset_test_utils::{
|
use asset_test_utils::{
|
||||||
test_cases_over_bridge::TestBridgingConfig, CollatorSessionKey, CollatorSessionKeys, ExtBuilder,
|
test_cases_over_bridge::TestBridgingConfig, CollatorSessionKey, CollatorSessionKeys, ExtBuilder,
|
||||||
@@ -674,15 +674,6 @@ fn limited_reserve_transfer_assets_for_native_asset_over_bridge_works(
|
|||||||
mod asset_hub_rococo_tests {
|
mod asset_hub_rococo_tests {
|
||||||
use super::*;
|
use super::*;
|
||||||
|
|
||||||
fn bridging_to_asset_hub_wococo() -> TestBridgingConfig {
|
|
||||||
asset_test_utils::test_cases_over_bridge::TestBridgingConfig {
|
|
||||||
bridged_network: bridging::to_wococo::WococoNetwork::get(),
|
|
||||||
local_bridge_hub_para_id: bridging::SiblingBridgeHubParaId::get(),
|
|
||||||
local_bridge_hub_location: bridging::SiblingBridgeHub::get(),
|
|
||||||
bridged_target_location: bridging::to_wococo::AssetHubWococo::get(),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fn bridging_to_asset_hub_westend() -> TestBridgingConfig {
|
fn bridging_to_asset_hub_westend() -> TestBridgingConfig {
|
||||||
asset_test_utils::test_cases_over_bridge::TestBridgingConfig {
|
asset_test_utils::test_cases_over_bridge::TestBridgingConfig {
|
||||||
bridged_network: bridging::to_westend::WestendNetwork::get(),
|
bridged_network: bridging::to_westend::WestendNetwork::get(),
|
||||||
@@ -692,13 +683,6 @@ mod asset_hub_rococo_tests {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn limited_reserve_transfer_assets_for_native_asset_to_asset_hub_wococo_works() {
|
|
||||||
limited_reserve_transfer_assets_for_native_asset_over_bridge_works(
|
|
||||||
bridging_to_asset_hub_wococo,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn limited_reserve_transfer_assets_for_native_asset_to_asset_hub_westend_works() {
|
fn limited_reserve_transfer_assets_for_native_asset_to_asset_hub_westend_works() {
|
||||||
limited_reserve_transfer_assets_for_native_asset_over_bridge_works(
|
limited_reserve_transfer_assets_for_native_asset_over_bridge_works(
|
||||||
@@ -706,31 +690,6 @@ mod asset_hub_rococo_tests {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn receive_reserve_asset_deposited_woc_from_asset_hub_wococo_works() {
|
|
||||||
const BLOCK_AUTHOR_ACCOUNT: [u8; 32] = [13; 32];
|
|
||||||
asset_test_utils::test_cases_over_bridge::receive_reserve_asset_deposited_from_different_consensus_works::<
|
|
||||||
Runtime,
|
|
||||||
AllPalletsWithoutSystem,
|
|
||||||
XcmConfig,
|
|
||||||
LocationToAccountId,
|
|
||||||
ForeignAssetsInstance,
|
|
||||||
>(
|
|
||||||
collator_session_keys().add(collator_session_key(BLOCK_AUTHOR_ACCOUNT)),
|
|
||||||
ExistentialDeposit::get(),
|
|
||||||
AccountId::from([73; 32]),
|
|
||||||
AccountId::from(BLOCK_AUTHOR_ACCOUNT),
|
|
||||||
// receiving WOCs
|
|
||||||
(MultiLocation { parents: 2, interior: X1(GlobalConsensus(Wococo)) }, 1000000000000, 1_000_000_000),
|
|
||||||
bridging_to_asset_hub_wococo,
|
|
||||||
(
|
|
||||||
X1(PalletInstance(bp_bridge_hub_rococo::WITH_BRIDGE_ROCOCO_TO_WOCOCO_MESSAGES_PALLET_INDEX)),
|
|
||||||
GlobalConsensus(Wococo),
|
|
||||||
X1(Parachain(1000))
|
|
||||||
)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn receive_reserve_asset_deposited_wnd_from_asset_hub_westend_works() {
|
fn receive_reserve_asset_deposited_wnd_from_asset_hub_westend_works() {
|
||||||
const BLOCK_AUTHOR_ACCOUNT: [u8; 32] = [13; 32];
|
const BLOCK_AUTHOR_ACCOUNT: [u8; 32] = [13; 32];
|
||||||
@@ -756,58 +715,6 @@ mod asset_hub_rococo_tests {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn report_bridge_status_from_xcm_bridge_router_for_wococo_works() {
|
|
||||||
asset_test_utils::test_cases_over_bridge::report_bridge_status_from_xcm_bridge_router_works::<
|
|
||||||
Runtime,
|
|
||||||
AllPalletsWithoutSystem,
|
|
||||||
XcmConfig,
|
|
||||||
LocationToAccountId,
|
|
||||||
ToWococoXcmRouterInstance,
|
|
||||||
>(
|
|
||||||
collator_session_keys(),
|
|
||||||
bridging_to_asset_hub_wococo,
|
|
||||||
|| {
|
|
||||||
sp_std::vec![
|
|
||||||
UnpaidExecution { weight_limit: Unlimited, check_origin: None },
|
|
||||||
Transact {
|
|
||||||
origin_kind: OriginKind::Xcm,
|
|
||||||
require_weight_at_most:
|
|
||||||
bp_asset_hub_rococo::XcmBridgeHubRouterTransactCallMaxWeight::get(),
|
|
||||||
call: bp_asset_hub_rococo::Call::ToWococoXcmRouter(
|
|
||||||
bp_asset_hub_rococo::XcmBridgeHubRouterCall::report_bridge_status {
|
|
||||||
bridge_id: Default::default(),
|
|
||||||
is_congested: true,
|
|
||||||
}
|
|
||||||
)
|
|
||||||
.encode()
|
|
||||||
.into(),
|
|
||||||
}
|
|
||||||
]
|
|
||||||
.into()
|
|
||||||
},
|
|
||||||
|| {
|
|
||||||
sp_std::vec![
|
|
||||||
UnpaidExecution { weight_limit: Unlimited, check_origin: None },
|
|
||||||
Transact {
|
|
||||||
origin_kind: OriginKind::Xcm,
|
|
||||||
require_weight_at_most:
|
|
||||||
bp_asset_hub_rococo::XcmBridgeHubRouterTransactCallMaxWeight::get(),
|
|
||||||
call: bp_asset_hub_rococo::Call::ToWococoXcmRouter(
|
|
||||||
bp_asset_hub_rococo::XcmBridgeHubRouterCall::report_bridge_status {
|
|
||||||
bridge_id: Default::default(),
|
|
||||||
is_congested: false,
|
|
||||||
}
|
|
||||||
)
|
|
||||||
.encode()
|
|
||||||
.into(),
|
|
||||||
}
|
|
||||||
]
|
|
||||||
.into()
|
|
||||||
},
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn report_bridge_status_from_xcm_bridge_router_for_westend_works() {
|
fn report_bridge_status_from_xcm_bridge_router_for_westend_works() {
|
||||||
asset_test_utils::test_cases_over_bridge::report_bridge_status_from_xcm_bridge_router_works::<
|
asset_test_utils::test_cases_over_bridge::report_bridge_status_from_xcm_bridge_router_works::<
|
||||||
@@ -863,22 +770,6 @@ mod asset_hub_rococo_tests {
|
|||||||
#[test]
|
#[test]
|
||||||
fn test_report_bridge_status_call_compatibility() {
|
fn test_report_bridge_status_call_compatibility() {
|
||||||
// if this test fails, make sure `bp_asset_hub_rococo` has valid encoding
|
// if this test fails, make sure `bp_asset_hub_rococo` has valid encoding
|
||||||
assert_eq!(
|
|
||||||
RuntimeCall::ToWococoXcmRouter(
|
|
||||||
pallet_xcm_bridge_hub_router::Call::report_bridge_status {
|
|
||||||
bridge_id: Default::default(),
|
|
||||||
is_congested: true,
|
|
||||||
}
|
|
||||||
)
|
|
||||||
.encode(),
|
|
||||||
bp_asset_hub_rococo::Call::ToWococoXcmRouter(
|
|
||||||
bp_asset_hub_rococo::XcmBridgeHubRouterCall::report_bridge_status {
|
|
||||||
bridge_id: Default::default(),
|
|
||||||
is_congested: true,
|
|
||||||
}
|
|
||||||
)
|
|
||||||
.encode()
|
|
||||||
);
|
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
RuntimeCall::ToWestendXcmRouter(
|
RuntimeCall::ToWestendXcmRouter(
|
||||||
pallet_xcm_bridge_hub_router::Call::report_bridge_status {
|
pallet_xcm_bridge_hub_router::Call::report_bridge_status {
|
||||||
@@ -897,19 +788,6 @@ mod asset_hub_rococo_tests {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn check_sane_weight_report_bridge_status_for_wococo() {
|
|
||||||
use pallet_xcm_bridge_hub_router::WeightInfo;
|
|
||||||
let actual = <Runtime as pallet_xcm_bridge_hub_router::Config<ToWococoXcmRouterInstance>>::WeightInfo::report_bridge_status();
|
|
||||||
let max_weight = bp_asset_hub_rococo::XcmBridgeHubRouterTransactCallMaxWeight::get();
|
|
||||||
assert!(
|
|
||||||
actual.all_lte(max_weight),
|
|
||||||
"max_weight: {:?} should be adjusted to actual {:?}",
|
|
||||||
max_weight,
|
|
||||||
actual
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn check_sane_weight_report_bridge_status_for_westend() {
|
fn check_sane_weight_report_bridge_status_for_westend() {
|
||||||
use pallet_xcm_bridge_hub_router::WeightInfo;
|
use pallet_xcm_bridge_hub_router::WeightInfo;
|
||||||
@@ -955,167 +833,6 @@ mod asset_hub_rococo_tests {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
mod asset_hub_wococo_tests {
|
|
||||||
use super::*;
|
|
||||||
|
|
||||||
fn bridging_to_asset_hub_rococo() -> TestBridgingConfig {
|
|
||||||
TestBridgingConfig {
|
|
||||||
bridged_network: bridging::to_rococo::RococoNetwork::get(),
|
|
||||||
local_bridge_hub_para_id: bridging::SiblingBridgeHubParaId::get(),
|
|
||||||
local_bridge_hub_location: bridging::SiblingBridgeHub::get(),
|
|
||||||
bridged_target_location: bridging::to_rococo::AssetHubRococo::get(),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub(crate) fn set_wococo_flavor() {
|
|
||||||
let flavor_key = xcm_config::Flavor::key().to_vec();
|
|
||||||
let flavor = RuntimeFlavor::Wococo;
|
|
||||||
|
|
||||||
// encode `set_storage` call
|
|
||||||
let set_storage_call = RuntimeCall::System(frame_system::Call::<Runtime>::set_storage {
|
|
||||||
items: vec![(flavor_key, flavor.encode())],
|
|
||||||
})
|
|
||||||
.encode();
|
|
||||||
|
|
||||||
// estimate - storing just 1 value
|
|
||||||
use frame_system::WeightInfo;
|
|
||||||
let require_weight_at_most =
|
|
||||||
<Runtime as frame_system::Config>::SystemWeightInfo::set_storage(1);
|
|
||||||
|
|
||||||
// execute XCM with Transact to `set_storage` as governance does
|
|
||||||
assert_ok!(RuntimeHelper::execute_as_governance(set_storage_call, require_weight_at_most)
|
|
||||||
.ensure_complete());
|
|
||||||
|
|
||||||
// check if stored
|
|
||||||
assert_eq!(flavor, xcm_config::Flavor::get());
|
|
||||||
}
|
|
||||||
|
|
||||||
fn with_wococo_flavor_bridging_to_asset_hub_rococo() -> TestBridgingConfig {
|
|
||||||
set_wococo_flavor();
|
|
||||||
bridging_to_asset_hub_rococo()
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn limited_reserve_transfer_assets_for_native_asset_to_asset_hub_rococo_works() {
|
|
||||||
limited_reserve_transfer_assets_for_native_asset_over_bridge_works(
|
|
||||||
with_wococo_flavor_bridging_to_asset_hub_rococo,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn receive_reserve_asset_deposited_roc_from_asset_hub_rococo_works() {
|
|
||||||
const BLOCK_AUTHOR_ACCOUNT: [u8; 32] = [13; 32];
|
|
||||||
asset_test_utils::test_cases_over_bridge::receive_reserve_asset_deposited_from_different_consensus_works::<
|
|
||||||
Runtime,
|
|
||||||
AllPalletsWithoutSystem,
|
|
||||||
XcmConfig,
|
|
||||||
LocationToAccountId,
|
|
||||||
ForeignAssetsInstance,
|
|
||||||
>(
|
|
||||||
collator_session_keys().add(collator_session_key(BLOCK_AUTHOR_ACCOUNT)),
|
|
||||||
ExistentialDeposit::get(),
|
|
||||||
AccountId::from([73; 32]),
|
|
||||||
AccountId::from(BLOCK_AUTHOR_ACCOUNT),
|
|
||||||
// receiving ROCs
|
|
||||||
(MultiLocation { parents: 2, interior: X1(GlobalConsensus(Rococo)) }, 1000000000000, 1_000_000_000),
|
|
||||||
with_wococo_flavor_bridging_to_asset_hub_rococo,
|
|
||||||
(
|
|
||||||
X1(PalletInstance(bp_bridge_hub_wococo::WITH_BRIDGE_WOCOCO_TO_ROCOCO_MESSAGES_PALLET_INDEX)),
|
|
||||||
GlobalConsensus(Rococo),
|
|
||||||
X1(Parachain(1000))
|
|
||||||
)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn report_bridge_status_from_xcm_bridge_router_works() {
|
|
||||||
asset_test_utils::test_cases_over_bridge::report_bridge_status_from_xcm_bridge_router_works::<
|
|
||||||
Runtime,
|
|
||||||
AllPalletsWithoutSystem,
|
|
||||||
XcmConfig,
|
|
||||||
LocationToAccountId,
|
|
||||||
ToRococoXcmRouterInstance,
|
|
||||||
>(
|
|
||||||
collator_session_keys(),
|
|
||||||
with_wococo_flavor_bridging_to_asset_hub_rococo,
|
|
||||||
|| {
|
|
||||||
sp_std::vec![
|
|
||||||
UnpaidExecution { weight_limit: Unlimited, check_origin: None },
|
|
||||||
Transact {
|
|
||||||
origin_kind: OriginKind::Xcm,
|
|
||||||
require_weight_at_most:
|
|
||||||
bp_asset_hub_wococo::XcmBridgeHubRouterTransactCallMaxWeight::get(),
|
|
||||||
call: bp_asset_hub_wococo::Call::ToRococoXcmRouter(
|
|
||||||
bp_asset_hub_wococo::XcmBridgeHubRouterCall::report_bridge_status {
|
|
||||||
bridge_id: Default::default(),
|
|
||||||
is_congested: true,
|
|
||||||
}
|
|
||||||
)
|
|
||||||
.encode()
|
|
||||||
.into(),
|
|
||||||
}
|
|
||||||
]
|
|
||||||
.into()
|
|
||||||
},
|
|
||||||
|| {
|
|
||||||
sp_std::vec![
|
|
||||||
UnpaidExecution { weight_limit: Unlimited, check_origin: None },
|
|
||||||
Transact {
|
|
||||||
origin_kind: OriginKind::Xcm,
|
|
||||||
require_weight_at_most:
|
|
||||||
bp_asset_hub_wococo::XcmBridgeHubRouterTransactCallMaxWeight::get(),
|
|
||||||
call: bp_asset_hub_wococo::Call::ToRococoXcmRouter(
|
|
||||||
bp_asset_hub_wococo::XcmBridgeHubRouterCall::report_bridge_status {
|
|
||||||
bridge_id: Default::default(),
|
|
||||||
is_congested: false,
|
|
||||||
}
|
|
||||||
)
|
|
||||||
.encode()
|
|
||||||
.into(),
|
|
||||||
}
|
|
||||||
]
|
|
||||||
.into()
|
|
||||||
},
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn test_report_bridge_status_call_compatibility() {
|
|
||||||
// if this test fails, make sure `bp_asset_hub_rococo` has valid encoding
|
|
||||||
assert_eq!(
|
|
||||||
RuntimeCall::ToRococoXcmRouter(
|
|
||||||
pallet_xcm_bridge_hub_router::Call::report_bridge_status {
|
|
||||||
bridge_id: Default::default(),
|
|
||||||
is_congested: true,
|
|
||||||
}
|
|
||||||
)
|
|
||||||
.encode(),
|
|
||||||
bp_asset_hub_wococo::Call::ToRococoXcmRouter(
|
|
||||||
bp_asset_hub_wococo::XcmBridgeHubRouterCall::report_bridge_status {
|
|
||||||
bridge_id: Default::default(),
|
|
||||||
is_congested: true,
|
|
||||||
}
|
|
||||||
)
|
|
||||||
.encode()
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn check_sane_weight_report_bridge_status() {
|
|
||||||
use pallet_xcm_bridge_hub_router::WeightInfo;
|
|
||||||
let actual = <Runtime as pallet_xcm_bridge_hub_router::Config<
|
|
||||||
ToRococoXcmRouterInstance,
|
|
||||||
>>::WeightInfo::report_bridge_status();
|
|
||||||
let max_weight = bp_asset_hub_wococo::XcmBridgeHubRouterTransactCallMaxWeight::get();
|
|
||||||
assert!(
|
|
||||||
actual.all_lte(max_weight),
|
|
||||||
"max_weight: {:?} should be adjusted to actual {:?}",
|
|
||||||
max_weight,
|
|
||||||
actual
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn change_xcm_bridge_hub_router_byte_fee_by_governance_works() {
|
fn change_xcm_bridge_hub_router_byte_fee_by_governance_works() {
|
||||||
asset_test_utils::test_cases::change_storage_constant_by_governance_works::<
|
asset_test_utils::test_cases::change_storage_constant_by_governance_works::<
|
||||||
|
|||||||
@@ -1,14 +1,5 @@
|
|||||||
- [Bridge-hub Parachains](#bridge-hub-parachains)
|
- [Bridge-hub Parachains](#bridge-hub-parachains)
|
||||||
- [Requirements for local run/testing](#requirements-for-local-runtesting)
|
- [Requirements for local run/testing](#requirements-for-local-runtesting)
|
||||||
- [How to test local Rococo <-> Wococo bridge](#how-to-test-local-rococo---wococo-bridge)
|
|
||||||
- [Run Rococo/Wococo chains with zombienet](#run-rococowococo-chains-with-zombienet)
|
|
||||||
- [Init bridge and run relayer between BridgeHubRococo and
|
|
||||||
BridgeHubWococo](#init-bridge-and-run-relayer-between-bridgehubrococo-and-bridgehubwococo)
|
|
||||||
- [Initialize configuration for transfer asset over bridge
|
|
||||||
(ROCs/WOCs)](#initialize-configuration-for-transfer-asset-over-bridge-rocswocs)
|
|
||||||
- [Send messages - transfer asset over bridge (ROCs/WOCs)](#send-messages---transfer-asset-over-bridge-rocswocs)
|
|
||||||
- [Claim relayer's rewards on BridgeHubRococo and
|
|
||||||
BridgeHubWococo](#claim-relayers-rewards-on-bridgehubrococo-and-bridgehubwococo)
|
|
||||||
- [How to test local Rococo <-> Westend bridge](#how-to-test-local-rococo---westend-bridge)
|
- [How to test local Rococo <-> Westend bridge](#how-to-test-local-rococo---westend-bridge)
|
||||||
- [Run Rococo/Westend chains with zombienet](#run-rococowestend-chains-with-zombienet)
|
- [Run Rococo/Westend chains with zombienet](#run-rococowestend-chains-with-zombienet)
|
||||||
- [Init bridge and run relayer between BridgeHubRococo and
|
- [Init bridge and run relayer between BridgeHubRococo and
|
||||||
@@ -53,17 +44,7 @@ Copy the apropriate binary (zombienet-linux) from the latest release to ~/local_
|
|||||||
---
|
---
|
||||||
# 2. Build polkadot binary
|
# 2. Build polkadot binary
|
||||||
|
|
||||||
# If you want to test Kusama/Polkadot bridge, we need "sudo pallet + fast-runtime",
|
We need polkadot binary with "fast-runtime" feature:
|
||||||
# so we need to use sudofi in polkadot directory.
|
|
||||||
#
|
|
||||||
# Install sudofi: (skip if already installed)
|
|
||||||
# cd <somewhere-outside-polkadot-sdk-git-repo-dir>
|
|
||||||
# git clone https://github.com/paritytech/parachain-utils.git
|
|
||||||
# cd parachain-utils # -> this is <parachain-utils-git-repo-dir>
|
|
||||||
# cargo build --release --bin sudofi
|
|
||||||
#
|
|
||||||
# cd <polkadot-sdk-git-repo-dir>/polkadot
|
|
||||||
# <parachain-utils-git-repo-dir>/target/release/sudofi
|
|
||||||
|
|
||||||
cd <polkadot-sdk-git-repo-dir>
|
cd <polkadot-sdk-git-repo-dir>
|
||||||
cargo build --release --features fast-runtime --bin polkadot
|
cargo build --release --features fast-runtime --bin polkadot
|
||||||
@@ -100,112 +81,6 @@ cp target/release/polkadot-parachain ~/local_bridge_testing/bin/polkadot-paracha
|
|||||||
cp target/release/polkadot-parachain ~/local_bridge_testing/bin/polkadot-parachain-asset-hub
|
cp target/release/polkadot-parachain ~/local_bridge_testing/bin/polkadot-parachain-asset-hub
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
## How to test local Rococo <-> Wococo bridge
|
|
||||||
|
|
||||||
### Run Rococo/Wococo chains with zombienet
|
|
||||||
|
|
||||||
```
|
|
||||||
cd <polkadot-sdk-git-repo-dir>
|
|
||||||
|
|
||||||
# Rococo + BridgeHubRococo + AssetHub for Rococo (mirroring Kusama)
|
|
||||||
POLKADOT_BINARY_PATH=~/local_bridge_testing/bin/polkadot \
|
|
||||||
POLKADOT_PARACHAIN_BINARY_PATH=~/local_bridge_testing/bin/polkadot-parachain \
|
|
||||||
POLKADOT_PARACHAIN_BINARY_PATH_FOR_ASSET_HUB_ROCOCO=~/local_bridge_testing/bin/polkadot-parachain-asset-hub \
|
|
||||||
~/local_bridge_testing/bin/zombienet-linux --provider native spawn ./cumulus/zombienet/bridge-hubs/bridge_hub_rococo_local_network.toml
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
cd <polkadot-sdk-git-repo-dir>
|
|
||||||
|
|
||||||
# Wococo + BridgeHubWococo + AssetHub for Wococo (mirroring Polkadot)
|
|
||||||
POLKADOT_BINARY_PATH=~/local_bridge_testing/bin/polkadot \
|
|
||||||
POLKADOT_PARACHAIN_BINARY_PATH=~/local_bridge_testing/bin/polkadot-parachain \
|
|
||||||
POLKADOT_PARACHAIN_BINARY_PATH_FOR_ASSET_HUB_WOCOCO=~/local_bridge_testing/bin/polkadot-parachain-asset-hub \
|
|
||||||
~/local_bridge_testing/bin/zombienet-linux --provider native spawn ./cumulus/zombienet/bridge-hubs/bridge_hub_wococo_local_network.toml
|
|
||||||
```
|
|
||||||
|
|
||||||
### Init bridge and run relayer between BridgeHubRococo and BridgeHubWococo
|
|
||||||
|
|
||||||
**Accounts of BridgeHub parachains:**
|
|
||||||
- `Bob` is pallet owner of all bridge pallets
|
|
||||||
|
|
||||||
#### Run with script
|
|
||||||
```
|
|
||||||
cd <polkadot-sdk-git-repo-dir>
|
|
||||||
|
|
||||||
./cumulus/scripts/bridges_rococo_wococo.sh run-relay
|
|
||||||
```
|
|
||||||
|
|
||||||
**Check relay-chain headers relaying:**
|
|
||||||
- Rococo parachain: - https://polkadot.js.org/apps/?rpc=ws%3A%2F%2F127.0.0.1%3A8943#/chainstate - Pallet:
|
|
||||||
**bridgeWococoGrandpa** - Keys: **bestFinalized()**
|
|
||||||
- Wococo parachain: - https://polkadot.js.org/apps/?rpc=ws%3A%2F%2F127.0.0.1%3A8945#/chainstate - Pallet:
|
|
||||||
**bridgeRococoGrandpa** - Keys: **bestFinalized()**
|
|
||||||
|
|
||||||
**Check parachain headers relaying:**
|
|
||||||
- Rococo parachain: - https://polkadot.js.org/apps/?rpc=ws%3A%2F%2F127.0.0.1%3A8943#/chainstate - Pallet:
|
|
||||||
**bridgeWococoParachains** - Keys: **parasInfo(None)**
|
|
||||||
- Wococo parachain: - https://polkadot.js.org/apps/?rpc=ws%3A%2F%2F127.0.0.1%3A8945#/chainstate - Pallet:
|
|
||||||
**bridgeRococoParachains** - Keys: **parasInfo(None)**
|
|
||||||
|
|
||||||
### Initialize configuration for transfer asset over bridge (ROCs/WOCs)
|
|
||||||
|
|
||||||
This initialization does several things:
|
|
||||||
- creates `ForeignAssets` for wrappedROCs/wrappedWOCs
|
|
||||||
- drips SA for AssetHubRococo on AssetHubWococo (and vice versa) which holds reserved assets on source chains
|
|
||||||
```
|
|
||||||
cd <polkadot-sdk-git-repo-dir>
|
|
||||||
|
|
||||||
./cumulus/scripts/bridges_rococo_wococo.sh init-asset-hub-rococo-local
|
|
||||||
./cumulus/scripts/bridges_rococo_wococo.sh init-bridge-hub-rococo-local
|
|
||||||
./cumulus/scripts/bridges_rococo_wococo.sh init-asset-hub-wococo-local
|
|
||||||
./cumulus/scripts/bridges_rococo_wococo.sh init-bridge-hub-wococo-local
|
|
||||||
```
|
|
||||||
|
|
||||||
### Send messages - transfer asset over bridge (ROCs/WOCs)
|
|
||||||
|
|
||||||
Do (asset) transfers:
|
|
||||||
```
|
|
||||||
cd <polkadot-sdk-git-repo-dir>
|
|
||||||
|
|
||||||
# ROCs from Rococo's Asset Hub to Wococo's.
|
|
||||||
./cumulus/scripts/bridges_rococo_wococo.sh reserve-transfer-assets-from-asset-hub-rococo-local
|
|
||||||
```
|
|
||||||
```
|
|
||||||
cd <polkadot-sdk-git-repo-dir>
|
|
||||||
|
|
||||||
# WOCs from Wococo's Asset Hub to Rococo's.
|
|
||||||
./cumulus/scripts/bridges_rococo_wococo.sh reserve-transfer-assets-from-asset-hub-wococo-local
|
|
||||||
```
|
|
||||||
|
|
||||||
- open explorers: (see zombienets)
|
|
||||||
- AssetHubRococo (see events `xcmpQueue.XcmpMessageSent`, `polkadotXcm.Attempted`) https://polkadot.js.org/apps/?rpc=ws://127.0.0.1:9910#/explorer
|
|
||||||
- BridgeHubRococo (see `bridgeWococoMessages.MessageAccepted`) https://polkadot.js.org/apps/?rpc=ws://127.0.0.1:8943#/explorer
|
|
||||||
- BridgeHubWococo (see `bridgeRococoMessages.MessagesReceived`, `xcmpQueue.XcmpMessageSent`) https://polkadot.js.org/apps/?rpc=ws://127.0.0.1:8945#/explorer
|
|
||||||
- AssetHubWococo (see `foreignAssets.Issued`, `xcmpQueue.Success`) https://polkadot.js.org/apps/?rpc=ws://127.0.0.1:9010#/explorer
|
|
||||||
- BridgeHubRocococ (see `bridgeWococoMessages.MessagesDelivered`) https://polkadot.js.org/apps/?rpc=ws://127.0.0.1:8943#/explorer
|
|
||||||
|
|
||||||
### Claim relayer's rewards on BridgeHubRococo and BridgeHubWococo
|
|
||||||
|
|
||||||
**Accounts of BridgeHub parachains:**
|
|
||||||
- `//Charlie` is relayer account on BridgeHubRococo
|
|
||||||
- `//Charlie` is relayer account on BridgeHubWococo
|
|
||||||
|
|
||||||
```
|
|
||||||
cd <polkadot-sdk-git-repo-dir>
|
|
||||||
|
|
||||||
# Claim rewards on BridgeHubWococo:
|
|
||||||
./cumulus/scripts/bridges_rococo_wococo.sh claim-rewards-bridge-hub-rococo-local
|
|
||||||
|
|
||||||
# Claim rewards on BridgeHubWococo:
|
|
||||||
./cumulus/scripts/bridges_rococo_wococo.sh claim-rewards-bridge-hub-wococo-local
|
|
||||||
```
|
|
||||||
|
|
||||||
- open explorers: (see zombienets)
|
|
||||||
- BridgeHubRococo (see 2x `bridgeRelayers.RewardPaid`) https://polkadot.js.org/apps/?rpc=ws://127.0.0.1:8943#/explorer
|
|
||||||
- BridgeHubWococo (see 2x `bridgeRelayers.RewardPaid`) https://polkadot.js.org/apps/?rpc=ws://127.0.0.1:8945#/explorer
|
|
||||||
|
|
||||||
## How to test local Rococo <-> Westend bridge
|
## How to test local Rococo <-> Westend bridge
|
||||||
|
|
||||||
### Run Rococo/Westend chains with zombienet
|
### Run Rococo/Westend chains with zombienet
|
||||||
|
|||||||
@@ -77,10 +77,8 @@ parachains-common = { path = "../../../common", default-features = false }
|
|||||||
# Bridges
|
# Bridges
|
||||||
bp-asset-hub-rococo = { path = "../../../../../bridges/primitives/chain-asset-hub-rococo", default-features = false }
|
bp-asset-hub-rococo = { path = "../../../../../bridges/primitives/chain-asset-hub-rococo", default-features = false }
|
||||||
bp-asset-hub-westend = { path = "../../../../../bridges/primitives/chain-asset-hub-westend", default-features = false }
|
bp-asset-hub-westend = { path = "../../../../../bridges/primitives/chain-asset-hub-westend", default-features = false }
|
||||||
bp-asset-hub-wococo = { path = "../../../../../bridges/primitives/chain-asset-hub-wococo", default-features = false }
|
|
||||||
bp-bridge-hub-rococo = { path = "../../../../../bridges/primitives/chain-bridge-hub-rococo", default-features = false }
|
bp-bridge-hub-rococo = { path = "../../../../../bridges/primitives/chain-bridge-hub-rococo", default-features = false }
|
||||||
bp-bridge-hub-westend = { path = "../../../../../bridges/primitives/chain-bridge-hub-westend", default-features = false }
|
bp-bridge-hub-westend = { path = "../../../../../bridges/primitives/chain-bridge-hub-westend", default-features = false }
|
||||||
bp-bridge-hub-wococo = { path = "../../../../../bridges/primitives/chain-bridge-hub-wococo", default-features = false }
|
|
||||||
bp-header-chain = { path = "../../../../../bridges/primitives/header-chain", default-features = false }
|
bp-header-chain = { path = "../../../../../bridges/primitives/header-chain", default-features = false }
|
||||||
bp-messages = { path = "../../../../../bridges/primitives/messages", default-features = false }
|
bp-messages = { path = "../../../../../bridges/primitives/messages", default-features = false }
|
||||||
bp-parachains = { path = "../../../../../bridges/primitives/parachains", default-features = false }
|
bp-parachains = { path = "../../../../../bridges/primitives/parachains", default-features = false }
|
||||||
@@ -89,7 +87,6 @@ bp-relayers = { path = "../../../../../bridges/primitives/relayers", default-fea
|
|||||||
bp-runtime = { path = "../../../../../bridges/primitives/runtime", default-features = false }
|
bp-runtime = { path = "../../../../../bridges/primitives/runtime", default-features = false }
|
||||||
bp-rococo = { path = "../../../../../bridges/primitives/chain-rococo", default-features = false }
|
bp-rococo = { path = "../../../../../bridges/primitives/chain-rococo", default-features = false }
|
||||||
bp-westend = { path = "../../../../../bridges/primitives/chain-westend", default-features = false }
|
bp-westend = { path = "../../../../../bridges/primitives/chain-westend", default-features = false }
|
||||||
bp-wococo = { path = "../../../../../bridges/primitives/chain-wococo", default-features = false }
|
|
||||||
pallet-bridge-grandpa = { path = "../../../../../bridges/modules/grandpa", default-features = false }
|
pallet-bridge-grandpa = { path = "../../../../../bridges/modules/grandpa", default-features = false }
|
||||||
pallet-bridge-messages = { path = "../../../../../bridges/modules/messages", default-features = false }
|
pallet-bridge-messages = { path = "../../../../../bridges/modules/messages", default-features = false }
|
||||||
pallet-bridge-parachains = { path = "../../../../../bridges/modules/parachains", default-features = false }
|
pallet-bridge-parachains = { path = "../../../../../bridges/modules/parachains", default-features = false }
|
||||||
@@ -107,10 +104,8 @@ default = [ "std" ]
|
|||||||
std = [
|
std = [
|
||||||
"bp-asset-hub-rococo/std",
|
"bp-asset-hub-rococo/std",
|
||||||
"bp-asset-hub-westend/std",
|
"bp-asset-hub-westend/std",
|
||||||
"bp-asset-hub-wococo/std",
|
|
||||||
"bp-bridge-hub-rococo/std",
|
"bp-bridge-hub-rococo/std",
|
||||||
"bp-bridge-hub-westend/std",
|
"bp-bridge-hub-westend/std",
|
||||||
"bp-bridge-hub-wococo/std",
|
|
||||||
"bp-header-chain/std",
|
"bp-header-chain/std",
|
||||||
"bp-messages/std",
|
"bp-messages/std",
|
||||||
"bp-parachains/std",
|
"bp-parachains/std",
|
||||||
@@ -119,7 +114,6 @@ std = [
|
|||||||
"bp-rococo/std",
|
"bp-rococo/std",
|
||||||
"bp-runtime/std",
|
"bp-runtime/std",
|
||||||
"bp-westend/std",
|
"bp-westend/std",
|
||||||
"bp-wococo/std",
|
|
||||||
"bridge-runtime-common/std",
|
"bridge-runtime-common/std",
|
||||||
"codec/std",
|
"codec/std",
|
||||||
"cumulus-pallet-aura-ext/std",
|
"cumulus-pallet-aura-ext/std",
|
||||||
|
|||||||
+2
-52
@@ -29,10 +29,6 @@ parameter_types! {
|
|||||||
pub const RelayChainHeadersToKeep: u32 = 1024;
|
pub const RelayChainHeadersToKeep: u32 = 1024;
|
||||||
pub const ParachainHeadsToKeep: u32 = 64;
|
pub const ParachainHeadsToKeep: u32 = 64;
|
||||||
|
|
||||||
pub const RococoBridgeParachainPalletName: &'static str = "Paras";
|
|
||||||
pub const MaxRococoParaHeadDataSize: u32 = bp_rococo::MAX_NESTED_PARACHAIN_HEAD_DATA_SIZE;
|
|
||||||
pub const WococoBridgeParachainPalletName: &'static str = "Paras";
|
|
||||||
pub const MaxWococoParaHeadDataSize: u32 = bp_wococo::MAX_NESTED_PARACHAIN_HEAD_DATA_SIZE;
|
|
||||||
pub const WestendBridgeParachainPalletName: &'static str = "Paras";
|
pub const WestendBridgeParachainPalletName: &'static str = "Paras";
|
||||||
pub const MaxWestendParaHeadDataSize: u32 = bp_westend::MAX_NESTED_PARACHAIN_HEAD_DATA_SIZE;
|
pub const MaxWestendParaHeadDataSize: u32 = bp_westend::MAX_NESTED_PARACHAIN_HEAD_DATA_SIZE;
|
||||||
|
|
||||||
@@ -43,52 +39,6 @@ parameter_types! {
|
|||||||
pub storage DeliveryRewardInBalance: u64 = 1_000_000;
|
pub storage DeliveryRewardInBalance: u64 = 1_000_000;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Add GRANDPA bridge pallet to track Wococo relay chain.
|
|
||||||
pub type BridgeGrandpaWococoInstance = pallet_bridge_grandpa::Instance1;
|
|
||||||
impl pallet_bridge_grandpa::Config<BridgeGrandpaWococoInstance> for Runtime {
|
|
||||||
type RuntimeEvent = RuntimeEvent;
|
|
||||||
type BridgedChain = bp_wococo::Wococo;
|
|
||||||
type MaxFreeMandatoryHeadersPerBlock = ConstU32<4>;
|
|
||||||
type HeadersToKeep = RelayChainHeadersToKeep;
|
|
||||||
type WeightInfo = weights::pallet_bridge_grandpa_wococo_finality::WeightInfo<Runtime>;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Add parachain bridge pallet to track Wococo BridgeHub parachain
|
|
||||||
pub type BridgeParachainWococoInstance = pallet_bridge_parachains::Instance1;
|
|
||||||
impl pallet_bridge_parachains::Config<BridgeParachainWococoInstance> for Runtime {
|
|
||||||
type RuntimeEvent = RuntimeEvent;
|
|
||||||
type WeightInfo = weights::pallet_bridge_parachains_within_wococo::WeightInfo<Runtime>;
|
|
||||||
type BridgesGrandpaPalletInstance = BridgeGrandpaWococoInstance;
|
|
||||||
type ParasPalletName = WococoBridgeParachainPalletName;
|
|
||||||
type ParaStoredHeaderDataBuilder =
|
|
||||||
SingleParaStoredHeaderDataBuilder<bp_bridge_hub_wococo::BridgeHubWococo>;
|
|
||||||
type HeadsToKeep = ParachainHeadsToKeep;
|
|
||||||
type MaxParaHeadDataSize = MaxWococoParaHeadDataSize;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Add GRANDPA bridge pallet to track Rococo relay chain.
|
|
||||||
pub type BridgeGrandpaRococoInstance = pallet_bridge_grandpa::Instance2;
|
|
||||||
impl pallet_bridge_grandpa::Config<BridgeGrandpaRococoInstance> for Runtime {
|
|
||||||
type RuntimeEvent = RuntimeEvent;
|
|
||||||
type BridgedChain = bp_rococo::Rococo;
|
|
||||||
type MaxFreeMandatoryHeadersPerBlock = ConstU32<4>;
|
|
||||||
type HeadersToKeep = RelayChainHeadersToKeep;
|
|
||||||
type WeightInfo = weights::pallet_bridge_grandpa_rococo_finality::WeightInfo<Runtime>;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Add parachain bridge pallet to track Rococo BridgeHub parachain
|
|
||||||
pub type BridgeParachainRococoInstance = pallet_bridge_parachains::Instance2;
|
|
||||||
impl pallet_bridge_parachains::Config<BridgeParachainRococoInstance> for Runtime {
|
|
||||||
type RuntimeEvent = RuntimeEvent;
|
|
||||||
type WeightInfo = weights::pallet_bridge_parachains_within_rococo::WeightInfo<Runtime>;
|
|
||||||
type BridgesGrandpaPalletInstance = BridgeGrandpaRococoInstance;
|
|
||||||
type ParasPalletName = RococoBridgeParachainPalletName;
|
|
||||||
type ParaStoredHeaderDataBuilder =
|
|
||||||
SingleParaStoredHeaderDataBuilder<bp_bridge_hub_rococo::BridgeHubRococo>;
|
|
||||||
type HeadsToKeep = ParachainHeadsToKeep;
|
|
||||||
type MaxParaHeadDataSize = MaxRococoParaHeadDataSize;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Add GRANDPA bridge pallet to track Westend relay chain.
|
/// Add GRANDPA bridge pallet to track Westend relay chain.
|
||||||
pub type BridgeGrandpaWestendInstance = pallet_bridge_grandpa::Instance3;
|
pub type BridgeGrandpaWestendInstance = pallet_bridge_grandpa::Instance3;
|
||||||
impl pallet_bridge_grandpa::Config<BridgeGrandpaWestendInstance> for Runtime {
|
impl pallet_bridge_grandpa::Config<BridgeGrandpaWestendInstance> for Runtime {
|
||||||
@@ -96,14 +46,14 @@ impl pallet_bridge_grandpa::Config<BridgeGrandpaWestendInstance> for Runtime {
|
|||||||
type BridgedChain = bp_westend::Westend;
|
type BridgedChain = bp_westend::Westend;
|
||||||
type MaxFreeMandatoryHeadersPerBlock = ConstU32<4>;
|
type MaxFreeMandatoryHeadersPerBlock = ConstU32<4>;
|
||||||
type HeadersToKeep = RelayChainHeadersToKeep;
|
type HeadersToKeep = RelayChainHeadersToKeep;
|
||||||
type WeightInfo = weights::pallet_bridge_grandpa_westend_finality::WeightInfo<Runtime>;
|
type WeightInfo = weights::pallet_bridge_grandpa::WeightInfo<Runtime>;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Add parachain bridge pallet to track Westend BridgeHub parachain
|
/// Add parachain bridge pallet to track Westend BridgeHub parachain
|
||||||
pub type BridgeParachainWestendInstance = pallet_bridge_parachains::Instance3;
|
pub type BridgeParachainWestendInstance = pallet_bridge_parachains::Instance3;
|
||||||
impl pallet_bridge_parachains::Config<BridgeParachainWestendInstance> for Runtime {
|
impl pallet_bridge_parachains::Config<BridgeParachainWestendInstance> for Runtime {
|
||||||
type RuntimeEvent = RuntimeEvent;
|
type RuntimeEvent = RuntimeEvent;
|
||||||
type WeightInfo = weights::pallet_bridge_parachains_within_westend::WeightInfo<Runtime>;
|
type WeightInfo = weights::pallet_bridge_parachains::WeightInfo<Runtime>;
|
||||||
type BridgesGrandpaPalletInstance = BridgeGrandpaWestendInstance;
|
type BridgesGrandpaPalletInstance = BridgeGrandpaWestendInstance;
|
||||||
type ParasPalletName = WestendBridgeParachainPalletName;
|
type ParasPalletName = WestendBridgeParachainPalletName;
|
||||||
type ParaStoredHeaderDataBuilder =
|
type ParaStoredHeaderDataBuilder =
|
||||||
|
|||||||
-317
@@ -1,317 +0,0 @@
|
|||||||
// Copyright (C) Parity Technologies (UK) Ltd.
|
|
||||||
// This file is part of Cumulus.
|
|
||||||
|
|
||||||
// Cumulus is free software: you can redistribute it and/or modify
|
|
||||||
// it under the terms of the GNU General Public License as published by
|
|
||||||
// the Free Software Foundation, either version 3 of the License, or
|
|
||||||
// (at your option) any later version.
|
|
||||||
|
|
||||||
// Cumulus is distributed in the hope that it will be useful,
|
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
// GNU General Public License for more details.
|
|
||||||
|
|
||||||
// You should have received a copy of the GNU General Public License
|
|
||||||
// along with Cumulus. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
//! Bridge definitions used on BridgeHub with the Wococo flavor for bridging to BridgeHubRococo.
|
|
||||||
|
|
||||||
use crate::{
|
|
||||||
bridge_common_config::{BridgeParachainRococoInstance, DeliveryRewardInBalance},
|
|
||||||
weights, AccountId, BridgeRococoMessages, ParachainInfo, Runtime, RuntimeEvent, RuntimeOrigin,
|
|
||||||
XcmRouter,
|
|
||||||
};
|
|
||||||
use bp_messages::LaneId;
|
|
||||||
use bridge_runtime_common::{
|
|
||||||
messages,
|
|
||||||
messages::{
|
|
||||||
source::{FromBridgedChainMessagesDeliveryProof, TargetHeaderChainAdapter},
|
|
||||||
target::{FromBridgedChainMessagesProof, SourceHeaderChainAdapter},
|
|
||||||
MessageBridge, ThisChainWithMessages, UnderlyingChainProvider,
|
|
||||||
},
|
|
||||||
messages_xcm_extension::{
|
|
||||||
SenderAndLane, XcmAsPlainPayload, XcmBlobHauler, XcmBlobHaulerAdapter,
|
|
||||||
XcmBlobMessageDispatch,
|
|
||||||
},
|
|
||||||
refund_relayer_extension::{
|
|
||||||
ActualFeeRefund, RefundBridgedParachainMessages, RefundSignedExtensionAdapter,
|
|
||||||
RefundableMessagesLane, RefundableParachain,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
use codec::Encode;
|
|
||||||
use frame_support::{parameter_types, traits::PalletInfoAccess};
|
|
||||||
use sp_runtime::RuntimeDebug;
|
|
||||||
use xcm::{
|
|
||||||
latest::prelude::*,
|
|
||||||
prelude::{InteriorMultiLocation, NetworkId},
|
|
||||||
};
|
|
||||||
use xcm_builder::{BridgeBlobDispatcher, HaulBlobExporter};
|
|
||||||
|
|
||||||
parameter_types! {
|
|
||||||
pub const MaxUnrewardedRelayerEntriesAtInboundLane: bp_messages::MessageNonce =
|
|
||||||
bp_bridge_hub_wococo::MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX;
|
|
||||||
pub const MaxUnconfirmedMessagesAtInboundLane: bp_messages::MessageNonce =
|
|
||||||
bp_bridge_hub_wococo::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX;
|
|
||||||
pub const BridgeHubRococoChainId: bp_runtime::ChainId = bp_runtime::BRIDGE_HUB_ROCOCO_CHAIN_ID;
|
|
||||||
pub BridgeHubWococoUniversalLocation: InteriorMultiLocation = X2(GlobalConsensus(Wococo), Parachain(ParachainInfo::parachain_id().into()));
|
|
||||||
pub BridgeWococoToRococoMessagesPalletInstance: InteriorMultiLocation = X1(PalletInstance(<BridgeRococoMessages as PalletInfoAccess>::index() as u8));
|
|
||||||
pub RococoGlobalConsensusNetwork: NetworkId = NetworkId::Rococo;
|
|
||||||
pub ActiveOutboundLanesToBridgeHubRococo: &'static [bp_messages::LaneId] = &[XCM_LANE_FOR_ASSET_HUB_WOCOCO_TO_ASSET_HUB_ROCOCO];
|
|
||||||
pub const AssetHubWococoToAssetHubRococoMessagesLane: bp_messages::LaneId = XCM_LANE_FOR_ASSET_HUB_WOCOCO_TO_ASSET_HUB_ROCOCO;
|
|
||||||
// see the `FEE_BOOST_PER_MESSAGE` constant to get the meaning of this value
|
|
||||||
pub PriorityBoostPerMessage: u64 = 182_044_444_444_444;
|
|
||||||
|
|
||||||
pub AssetHubWococoParaId: cumulus_primitives_core::ParaId = bp_asset_hub_wococo::ASSET_HUB_WOCOCO_PARACHAIN_ID.into();
|
|
||||||
pub AssetHubRococoParaId: cumulus_primitives_core::ParaId = bp_asset_hub_rococo::ASSET_HUB_ROCOCO_PARACHAIN_ID.into();
|
|
||||||
|
|
||||||
pub FromAssetHubWococoToAssetHubRococoRoute: SenderAndLane = SenderAndLane::new(
|
|
||||||
ParentThen(X1(Parachain(AssetHubWococoParaId::get().into()))).into(),
|
|
||||||
XCM_LANE_FOR_ASSET_HUB_WOCOCO_TO_ASSET_HUB_ROCOCO,
|
|
||||||
);
|
|
||||||
|
|
||||||
pub CongestedMessage: Xcm<()> = build_congestion_message(true).into();
|
|
||||||
|
|
||||||
pub UncongestedMessage: Xcm<()> = build_congestion_message(false).into();
|
|
||||||
}
|
|
||||||
pub const XCM_LANE_FOR_ASSET_HUB_WOCOCO_TO_ASSET_HUB_ROCOCO: LaneId = LaneId([0, 0, 0, 1]);
|
|
||||||
|
|
||||||
fn build_congestion_message<Call>(is_congested: bool) -> sp_std::vec::Vec<Instruction<Call>> {
|
|
||||||
sp_std::vec![
|
|
||||||
UnpaidExecution { weight_limit: Unlimited, check_origin: None },
|
|
||||||
Transact {
|
|
||||||
origin_kind: OriginKind::Xcm,
|
|
||||||
require_weight_at_most:
|
|
||||||
bp_asset_hub_wococo::XcmBridgeHubRouterTransactCallMaxWeight::get(),
|
|
||||||
call: bp_asset_hub_wococo::Call::ToRococoXcmRouter(
|
|
||||||
bp_asset_hub_wococo::XcmBridgeHubRouterCall::report_bridge_status {
|
|
||||||
bridge_id: Default::default(),
|
|
||||||
is_congested,
|
|
||||||
}
|
|
||||||
)
|
|
||||||
.encode()
|
|
||||||
.into(),
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Proof of messages, coming from Rococo.
|
|
||||||
pub type FromRococoBridgeHubMessagesProof =
|
|
||||||
FromBridgedChainMessagesProof<bp_bridge_hub_rococo::Hash>;
|
|
||||||
/// Messages delivery proof for RococoBridge Hub -> Wococo BridgeHub messages.
|
|
||||||
pub type ToRococoBridgeHubMessagesDeliveryProof =
|
|
||||||
FromBridgedChainMessagesDeliveryProof<bp_bridge_hub_rococo::Hash>;
|
|
||||||
|
|
||||||
/// Dispatches received XCM messages from other bridge
|
|
||||||
type FromRococoMessageBlobDispatcher = BridgeBlobDispatcher<
|
|
||||||
XcmRouter,
|
|
||||||
BridgeHubWococoUniversalLocation,
|
|
||||||
BridgeWococoToRococoMessagesPalletInstance,
|
|
||||||
>;
|
|
||||||
|
|
||||||
/// Export XCM messages to be relayed to the other side
|
|
||||||
pub type ToBridgeHubRococoHaulBlobExporter = HaulBlobExporter<
|
|
||||||
XcmBlobHaulerAdapter<ToBridgeHubRococoXcmBlobHauler>,
|
|
||||||
RococoGlobalConsensusNetwork,
|
|
||||||
(),
|
|
||||||
>;
|
|
||||||
pub struct ToBridgeHubRococoXcmBlobHauler;
|
|
||||||
impl XcmBlobHauler for ToBridgeHubRococoXcmBlobHauler {
|
|
||||||
type Runtime = Runtime;
|
|
||||||
type MessagesInstance = WithBridgeHubRococoMessagesInstance;
|
|
||||||
type SenderAndLane = FromAssetHubWococoToAssetHubRococoRoute;
|
|
||||||
|
|
||||||
type ToSourceChainSender = XcmRouter;
|
|
||||||
type CongestedMessage = CongestedMessage;
|
|
||||||
type UncongestedMessage = UncongestedMessage;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// On messages delivered callback.
|
|
||||||
type OnMessagesDelivered = XcmBlobHaulerAdapter<ToBridgeHubRococoXcmBlobHauler>;
|
|
||||||
|
|
||||||
/// Messaging Bridge configuration for BridgeHubWococo -> BridgeHubRococo
|
|
||||||
pub struct WithBridgeHubRococoMessageBridge;
|
|
||||||
impl MessageBridge for WithBridgeHubRococoMessageBridge {
|
|
||||||
const BRIDGED_MESSAGES_PALLET_NAME: &'static str =
|
|
||||||
bp_bridge_hub_wococo::WITH_BRIDGE_HUB_WOCOCO_MESSAGES_PALLET_NAME;
|
|
||||||
type ThisChain = BridgeHubWococo;
|
|
||||||
type BridgedChain = BridgeHubRococo;
|
|
||||||
type BridgedHeaderChain = pallet_bridge_parachains::ParachainHeaders<
|
|
||||||
Runtime,
|
|
||||||
BridgeParachainRococoInstance,
|
|
||||||
bp_bridge_hub_rococo::BridgeHubRococo,
|
|
||||||
>;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Message verifier for BridgeHubRococo messages sent from BridgeHubWococo
|
|
||||||
pub type ToBridgeHubRococoMessageVerifier =
|
|
||||||
messages::source::FromThisChainMessageVerifier<WithBridgeHubRococoMessageBridge>;
|
|
||||||
|
|
||||||
/// Maximal outbound payload size of BridgeHubWococo -> BridgeHubRococo messages.
|
|
||||||
pub type ToBridgeHubRococoMaximalOutboundPayloadSize =
|
|
||||||
messages::source::FromThisChainMaximalOutboundPayloadSize<WithBridgeHubRococoMessageBridge>;
|
|
||||||
|
|
||||||
/// BridgeHubRococo chain from message lane point of view.
|
|
||||||
#[derive(RuntimeDebug, Clone, Copy)]
|
|
||||||
pub struct BridgeHubRococo;
|
|
||||||
|
|
||||||
impl UnderlyingChainProvider for BridgeHubRococo {
|
|
||||||
type Chain = bp_bridge_hub_rococo::BridgeHubRococo;
|
|
||||||
}
|
|
||||||
|
|
||||||
impl messages::BridgedChainWithMessages for BridgeHubRococo {}
|
|
||||||
|
|
||||||
/// BridgeHubWococo chain from message lane point of view.
|
|
||||||
#[derive(RuntimeDebug, Clone, Copy)]
|
|
||||||
pub struct BridgeHubWococo;
|
|
||||||
|
|
||||||
impl UnderlyingChainProvider for BridgeHubWococo {
|
|
||||||
type Chain = bp_bridge_hub_wococo::BridgeHubWococo;
|
|
||||||
}
|
|
||||||
|
|
||||||
impl ThisChainWithMessages for BridgeHubWococo {
|
|
||||||
type RuntimeOrigin = RuntimeOrigin;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Signed extension that refunds relayers that are delivering messages from the Rococo parachain.
|
|
||||||
pub type OnBridgeHubWococoRefundBridgeHubRococoMessages = RefundSignedExtensionAdapter<
|
|
||||||
RefundBridgedParachainMessages<
|
|
||||||
Runtime,
|
|
||||||
RefundableParachain<BridgeParachainRococoInstance, bp_bridge_hub_rococo::BridgeHubRococo>,
|
|
||||||
RefundableMessagesLane<
|
|
||||||
WithBridgeHubRococoMessagesInstance,
|
|
||||||
AssetHubWococoToAssetHubRococoMessagesLane,
|
|
||||||
>,
|
|
||||||
ActualFeeRefund<Runtime>,
|
|
||||||
PriorityBoostPerMessage,
|
|
||||||
StrOnBridgeHubWococoRefundBridgeHubRococoMessages,
|
|
||||||
>,
|
|
||||||
>;
|
|
||||||
bp_runtime::generate_static_str_provider!(OnBridgeHubWococoRefundBridgeHubRococoMessages);
|
|
||||||
|
|
||||||
/// Add XCM messages support for BridgeHubWococo to support Wococo->Rococo XCM messages
|
|
||||||
pub type WithBridgeHubRococoMessagesInstance = pallet_bridge_messages::Instance2;
|
|
||||||
impl pallet_bridge_messages::Config<WithBridgeHubRococoMessagesInstance> for Runtime {
|
|
||||||
type RuntimeEvent = RuntimeEvent;
|
|
||||||
type WeightInfo = weights::pallet_bridge_messages_wococo_to_rococo::WeightInfo<Runtime>;
|
|
||||||
type BridgedChainId = BridgeHubRococoChainId;
|
|
||||||
type ActiveOutboundLanes = ActiveOutboundLanesToBridgeHubRococo;
|
|
||||||
type MaxUnrewardedRelayerEntriesAtInboundLane = MaxUnrewardedRelayerEntriesAtInboundLane;
|
|
||||||
type MaxUnconfirmedMessagesAtInboundLane = MaxUnconfirmedMessagesAtInboundLane;
|
|
||||||
|
|
||||||
type MaximalOutboundPayloadSize = ToBridgeHubRococoMaximalOutboundPayloadSize;
|
|
||||||
type OutboundPayload = XcmAsPlainPayload;
|
|
||||||
|
|
||||||
type InboundPayload = XcmAsPlainPayload;
|
|
||||||
type InboundRelayer = AccountId;
|
|
||||||
type DeliveryPayments = ();
|
|
||||||
|
|
||||||
type TargetHeaderChain = TargetHeaderChainAdapter<WithBridgeHubRococoMessageBridge>;
|
|
||||||
type LaneMessageVerifier = ToBridgeHubRococoMessageVerifier;
|
|
||||||
type DeliveryConfirmationPayments = pallet_bridge_relayers::DeliveryConfirmationPaymentsAdapter<
|
|
||||||
Runtime,
|
|
||||||
WithBridgeHubRococoMessagesInstance,
|
|
||||||
DeliveryRewardInBalance,
|
|
||||||
>;
|
|
||||||
|
|
||||||
type SourceHeaderChain = SourceHeaderChainAdapter<WithBridgeHubRococoMessageBridge>;
|
|
||||||
type MessageDispatch = XcmBlobMessageDispatch<
|
|
||||||
FromRococoMessageBlobDispatcher,
|
|
||||||
Self::WeightInfo,
|
|
||||||
cumulus_pallet_xcmp_queue::bridging::OutXcmpChannelStatusProvider<
|
|
||||||
AssetHubWococoParaId,
|
|
||||||
Runtime,
|
|
||||||
>,
|
|
||||||
>;
|
|
||||||
type OnMessagesDelivered = OnMessagesDelivered;
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(test)]
|
|
||||||
mod tests {
|
|
||||||
use super::*;
|
|
||||||
use crate::bridge_common_config::BridgeGrandpaRococoInstance;
|
|
||||||
use bridge_runtime_common::{
|
|
||||||
assert_complete_bridge_types,
|
|
||||||
integrity::{
|
|
||||||
assert_complete_bridge_constants, check_message_lane_weights,
|
|
||||||
AssertBridgeMessagesPalletConstants, AssertBridgePalletNames, AssertChainConstants,
|
|
||||||
AssertCompleteBridgeConstants,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
use parachains_common::{wococo, Balance};
|
|
||||||
|
|
||||||
/// Every additional message in the message delivery transaction boosts its priority.
|
|
||||||
/// So the priority of transaction with `N+1` messages is larger than priority of
|
|
||||||
/// transaction with `N` messages by the `PriorityBoostPerMessage`.
|
|
||||||
///
|
|
||||||
/// Economically, it is an equivalent of adding tip to the transaction with `N` messages.
|
|
||||||
/// The `FEE_BOOST_PER_MESSAGE` constant is the value of this tip.
|
|
||||||
///
|
|
||||||
/// We want this tip to be large enough (delivery transactions with more messages = less
|
|
||||||
/// operational costs and a faster bridge), so this value should be significant.
|
|
||||||
const FEE_BOOST_PER_MESSAGE: Balance = 2 * wococo::currency::UNITS;
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn ensure_bridge_hub_wococo_message_lane_weights_are_correct() {
|
|
||||||
check_message_lane_weights::<
|
|
||||||
bp_bridge_hub_wococo::BridgeHubWococo,
|
|
||||||
Runtime,
|
|
||||||
WithBridgeHubRococoMessagesInstance,
|
|
||||||
>(
|
|
||||||
bp_bridge_hub_rococo::EXTRA_STORAGE_PROOF_SIZE,
|
|
||||||
bp_bridge_hub_wococo::MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX,
|
|
||||||
bp_bridge_hub_wococo::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX,
|
|
||||||
true,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn ensure_bridge_integrity() {
|
|
||||||
assert_complete_bridge_types!(
|
|
||||||
runtime: Runtime,
|
|
||||||
with_bridged_chain_grandpa_instance: BridgeGrandpaRococoInstance,
|
|
||||||
with_bridged_chain_messages_instance: WithBridgeHubRococoMessagesInstance,
|
|
||||||
bridge: WithBridgeHubRococoMessageBridge,
|
|
||||||
this_chain: bp_wococo::Wococo,
|
|
||||||
bridged_chain: bp_rococo::Rococo,
|
|
||||||
);
|
|
||||||
|
|
||||||
assert_complete_bridge_constants::<
|
|
||||||
Runtime,
|
|
||||||
BridgeGrandpaRococoInstance,
|
|
||||||
WithBridgeHubRococoMessagesInstance,
|
|
||||||
WithBridgeHubRococoMessageBridge,
|
|
||||||
>(AssertCompleteBridgeConstants {
|
|
||||||
this_chain_constants: AssertChainConstants {
|
|
||||||
block_length: bp_bridge_hub_wococo::BlockLength::get(),
|
|
||||||
block_weights: bp_bridge_hub_wococo::BlockWeights::get(),
|
|
||||||
},
|
|
||||||
messages_pallet_constants: AssertBridgeMessagesPalletConstants {
|
|
||||||
max_unrewarded_relayers_in_bridged_confirmation_tx:
|
|
||||||
bp_bridge_hub_rococo::MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX,
|
|
||||||
max_unconfirmed_messages_in_bridged_confirmation_tx:
|
|
||||||
bp_bridge_hub_rococo::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX,
|
|
||||||
bridged_chain_id: bp_runtime::BRIDGE_HUB_ROCOCO_CHAIN_ID,
|
|
||||||
},
|
|
||||||
pallet_names: AssertBridgePalletNames {
|
|
||||||
with_this_chain_messages_pallet_name:
|
|
||||||
bp_bridge_hub_wococo::WITH_BRIDGE_HUB_WOCOCO_MESSAGES_PALLET_NAME,
|
|
||||||
with_bridged_chain_grandpa_pallet_name: bp_rococo::WITH_ROCOCO_GRANDPA_PALLET_NAME,
|
|
||||||
with_bridged_chain_messages_pallet_name:
|
|
||||||
bp_bridge_hub_rococo::WITH_BRIDGE_HUB_ROCOCO_MESSAGES_PALLET_NAME,
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
bridge_runtime_common::priority_calculator::ensure_priority_boost_is_sane::<
|
|
||||||
Runtime,
|
|
||||||
WithBridgeHubRococoMessagesInstance,
|
|
||||||
PriorityBoostPerMessage,
|
|
||||||
>(FEE_BOOST_PER_MESSAGE);
|
|
||||||
|
|
||||||
assert_eq!(
|
|
||||||
BridgeWococoToRococoMessagesPalletInstance::get(),
|
|
||||||
X1(PalletInstance(
|
|
||||||
bp_bridge_hub_wococo::WITH_BRIDGE_WOCOCO_TO_ROCOCO_MESSAGES_PALLET_INDEX
|
|
||||||
))
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+1
-1
@@ -196,7 +196,7 @@ bp_runtime::generate_static_str_provider!(OnBridgeHubRococoRefundBridgeHubWesten
|
|||||||
pub type WithBridgeHubWestendMessagesInstance = pallet_bridge_messages::Instance3;
|
pub type WithBridgeHubWestendMessagesInstance = pallet_bridge_messages::Instance3;
|
||||||
impl pallet_bridge_messages::Config<WithBridgeHubWestendMessagesInstance> for Runtime {
|
impl pallet_bridge_messages::Config<WithBridgeHubWestendMessagesInstance> for Runtime {
|
||||||
type RuntimeEvent = RuntimeEvent;
|
type RuntimeEvent = RuntimeEvent;
|
||||||
type WeightInfo = weights::pallet_bridge_messages_rococo_to_westend::WeightInfo<Runtime>;
|
type WeightInfo = weights::pallet_bridge_messages::WeightInfo<Runtime>;
|
||||||
type BridgedChainId = BridgeHubWestendChainId;
|
type BridgedChainId = BridgeHubWestendChainId;
|
||||||
type ActiveOutboundLanes = ActiveOutboundLanesToBridgeHubWestend;
|
type ActiveOutboundLanes = ActiveOutboundLanesToBridgeHubWestend;
|
||||||
type MaxUnrewardedRelayerEntriesAtInboundLane = MaxUnrewardedRelayerEntriesAtInboundLane;
|
type MaxUnrewardedRelayerEntriesAtInboundLane = MaxUnrewardedRelayerEntriesAtInboundLane;
|
||||||
|
|||||||
-318
@@ -1,318 +0,0 @@
|
|||||||
// Copyright (C) Parity Technologies (UK) Ltd.
|
|
||||||
// This file is part of Cumulus.
|
|
||||||
|
|
||||||
// Cumulus is free software: you can redistribute it and/or modify
|
|
||||||
// it under the terms of the GNU General Public License as published by
|
|
||||||
// the Free Software Foundation, either version 3 of the License, or
|
|
||||||
// (at your option) any later version.
|
|
||||||
|
|
||||||
// Cumulus is distributed in the hope that it will be useful,
|
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
// GNU General Public License for more details.
|
|
||||||
|
|
||||||
// You should have received a copy of the GNU General Public License
|
|
||||||
// along with Cumulus. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
//! Bridge definitions used on BridgeHub with the Rococo flavor for bridging to BridgeHubWococo.
|
|
||||||
|
|
||||||
use crate::{
|
|
||||||
bridge_common_config::{BridgeParachainWococoInstance, DeliveryRewardInBalance},
|
|
||||||
weights, AccountId, BridgeWococoMessages, ParachainInfo, Runtime, RuntimeEvent, RuntimeOrigin,
|
|
||||||
XcmRouter,
|
|
||||||
};
|
|
||||||
use bp_messages::LaneId;
|
|
||||||
use bridge_runtime_common::{
|
|
||||||
messages,
|
|
||||||
messages::{
|
|
||||||
source::{FromBridgedChainMessagesDeliveryProof, TargetHeaderChainAdapter},
|
|
||||||
target::{FromBridgedChainMessagesProof, SourceHeaderChainAdapter},
|
|
||||||
MessageBridge, ThisChainWithMessages, UnderlyingChainProvider,
|
|
||||||
},
|
|
||||||
messages_xcm_extension::{
|
|
||||||
SenderAndLane, XcmAsPlainPayload, XcmBlobHauler, XcmBlobHaulerAdapter,
|
|
||||||
XcmBlobMessageDispatch,
|
|
||||||
},
|
|
||||||
refund_relayer_extension::{
|
|
||||||
ActualFeeRefund, RefundBridgedParachainMessages, RefundSignedExtensionAdapter,
|
|
||||||
RefundableMessagesLane, RefundableParachain,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
use codec::Encode;
|
|
||||||
use frame_support::{parameter_types, traits::PalletInfoAccess};
|
|
||||||
use sp_runtime::RuntimeDebug;
|
|
||||||
use xcm::{
|
|
||||||
latest::prelude::*,
|
|
||||||
prelude::{InteriorMultiLocation, NetworkId},
|
|
||||||
};
|
|
||||||
use xcm_builder::{BridgeBlobDispatcher, HaulBlobExporter};
|
|
||||||
|
|
||||||
parameter_types! {
|
|
||||||
pub const MaxUnrewardedRelayerEntriesAtInboundLane: bp_messages::MessageNonce =
|
|
||||||
bp_bridge_hub_rococo::MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX;
|
|
||||||
pub const MaxUnconfirmedMessagesAtInboundLane: bp_messages::MessageNonce =
|
|
||||||
bp_bridge_hub_rococo::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX;
|
|
||||||
pub const BridgeHubWococoChainId: bp_runtime::ChainId = bp_runtime::BRIDGE_HUB_WOCOCO_CHAIN_ID;
|
|
||||||
pub BridgeRococoToWococoMessagesPalletInstance: InteriorMultiLocation = X1(PalletInstance(<BridgeWococoMessages as PalletInfoAccess>::index() as u8));
|
|
||||||
pub BridgeHubRococoUniversalLocation: InteriorMultiLocation = X2(GlobalConsensus(Rococo), Parachain(ParachainInfo::parachain_id().into()));
|
|
||||||
pub WococoGlobalConsensusNetwork: NetworkId = NetworkId::Wococo;
|
|
||||||
pub ActiveOutboundLanesToBridgeHubWococo: &'static [bp_messages::LaneId] = &[XCM_LANE_FOR_ASSET_HUB_ROCOCO_TO_ASSET_HUB_WOCOCO];
|
|
||||||
pub const AssetHubRococoToAssetHubWococoMessagesLane: bp_messages::LaneId = XCM_LANE_FOR_ASSET_HUB_ROCOCO_TO_ASSET_HUB_WOCOCO;
|
|
||||||
// see the `FEE_BOOST_PER_MESSAGE` constant to get the meaning of this value
|
|
||||||
pub PriorityBoostPerMessage: u64 = 182_044_444_444_444;
|
|
||||||
|
|
||||||
pub AssetHubRococoParaId: cumulus_primitives_core::ParaId = bp_asset_hub_rococo::ASSET_HUB_ROCOCO_PARACHAIN_ID.into();
|
|
||||||
pub AssetHubWococoParaId: cumulus_primitives_core::ParaId = bp_asset_hub_wococo::ASSET_HUB_WOCOCO_PARACHAIN_ID.into();
|
|
||||||
|
|
||||||
pub FromAssetHubRococoToAssetHubWococoRoute: SenderAndLane = SenderAndLane::new(
|
|
||||||
ParentThen(X1(Parachain(AssetHubRococoParaId::get().into()))).into(),
|
|
||||||
XCM_LANE_FOR_ASSET_HUB_ROCOCO_TO_ASSET_HUB_WOCOCO,
|
|
||||||
);
|
|
||||||
|
|
||||||
pub CongestedMessage: Xcm<()> = build_congestion_message(true).into();
|
|
||||||
|
|
||||||
pub UncongestedMessage: Xcm<()> = build_congestion_message(false).into();
|
|
||||||
}
|
|
||||||
pub const XCM_LANE_FOR_ASSET_HUB_ROCOCO_TO_ASSET_HUB_WOCOCO: LaneId = LaneId([0, 0, 0, 1]);
|
|
||||||
|
|
||||||
fn build_congestion_message<Call>(is_congested: bool) -> sp_std::vec::Vec<Instruction<Call>> {
|
|
||||||
sp_std::vec![
|
|
||||||
UnpaidExecution { weight_limit: Unlimited, check_origin: None },
|
|
||||||
Transact {
|
|
||||||
origin_kind: OriginKind::Xcm,
|
|
||||||
require_weight_at_most:
|
|
||||||
bp_asset_hub_rococo::XcmBridgeHubRouterTransactCallMaxWeight::get(),
|
|
||||||
call: bp_asset_hub_rococo::Call::ToWococoXcmRouter(
|
|
||||||
bp_asset_hub_rococo::XcmBridgeHubRouterCall::report_bridge_status {
|
|
||||||
bridge_id: Default::default(),
|
|
||||||
is_congested,
|
|
||||||
}
|
|
||||||
)
|
|
||||||
.encode()
|
|
||||||
.into(),
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Proof of messages, coming from Wococo.
|
|
||||||
pub type FromWococoBridgeHubMessagesProof =
|
|
||||||
FromBridgedChainMessagesProof<bp_bridge_hub_wococo::Hash>;
|
|
||||||
/// Messages delivery proof for Rococo Bridge Hub -> Wococo Bridge Hub messages.
|
|
||||||
pub type ToWococoBridgeHubMessagesDeliveryProof =
|
|
||||||
FromBridgedChainMessagesDeliveryProof<bp_bridge_hub_wococo::Hash>;
|
|
||||||
|
|
||||||
/// Dispatches received XCM messages from other bridge
|
|
||||||
type FromWococoMessageBlobDispatcher = BridgeBlobDispatcher<
|
|
||||||
XcmRouter,
|
|
||||||
BridgeHubRococoUniversalLocation,
|
|
||||||
BridgeRococoToWococoMessagesPalletInstance,
|
|
||||||
>;
|
|
||||||
|
|
||||||
/// Export XCM messages to be relayed to the other side
|
|
||||||
pub type ToBridgeHubWococoHaulBlobExporter = HaulBlobExporter<
|
|
||||||
XcmBlobHaulerAdapter<ToBridgeHubWococoXcmBlobHauler>,
|
|
||||||
WococoGlobalConsensusNetwork,
|
|
||||||
(),
|
|
||||||
>;
|
|
||||||
pub struct ToBridgeHubWococoXcmBlobHauler;
|
|
||||||
impl XcmBlobHauler for ToBridgeHubWococoXcmBlobHauler {
|
|
||||||
type Runtime = Runtime;
|
|
||||||
type MessagesInstance = WithBridgeHubWococoMessagesInstance;
|
|
||||||
type SenderAndLane = FromAssetHubRococoToAssetHubWococoRoute;
|
|
||||||
|
|
||||||
type ToSourceChainSender = XcmRouter;
|
|
||||||
type CongestedMessage = CongestedMessage;
|
|
||||||
type UncongestedMessage = UncongestedMessage;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// On messages delivered callback.
|
|
||||||
type OnMessagesDeliveredFromWococo = XcmBlobHaulerAdapter<ToBridgeHubWococoXcmBlobHauler>;
|
|
||||||
|
|
||||||
/// Messaging Bridge configuration for BridgeHubRococo -> BridgeHubWococo
|
|
||||||
pub struct WithBridgeHubWococoMessageBridge;
|
|
||||||
impl MessageBridge for WithBridgeHubWococoMessageBridge {
|
|
||||||
const BRIDGED_MESSAGES_PALLET_NAME: &'static str =
|
|
||||||
bp_bridge_hub_rococo::WITH_BRIDGE_HUB_ROCOCO_MESSAGES_PALLET_NAME;
|
|
||||||
type ThisChain = BridgeHubRococo;
|
|
||||||
type BridgedChain = BridgeHubWococo;
|
|
||||||
type BridgedHeaderChain = pallet_bridge_parachains::ParachainHeaders<
|
|
||||||
Runtime,
|
|
||||||
BridgeParachainWococoInstance,
|
|
||||||
bp_bridge_hub_wococo::BridgeHubWococo,
|
|
||||||
>;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Message verifier for BridgeHubWococo messages sent from BridgeHubRococo
|
|
||||||
pub type ToBridgeHubWococoMessageVerifier =
|
|
||||||
messages::source::FromThisChainMessageVerifier<WithBridgeHubWococoMessageBridge>;
|
|
||||||
|
|
||||||
/// Maximal outbound payload size of BridgeHubRococo -> BridgeHubWococo messages.
|
|
||||||
pub type ToBridgeHubWococoMaximalOutboundPayloadSize =
|
|
||||||
messages::source::FromThisChainMaximalOutboundPayloadSize<WithBridgeHubWococoMessageBridge>;
|
|
||||||
|
|
||||||
/// BridgeHubWococo chain from message lane point of view.
|
|
||||||
#[derive(RuntimeDebug, Clone, Copy)]
|
|
||||||
pub struct BridgeHubWococo;
|
|
||||||
|
|
||||||
impl UnderlyingChainProvider for BridgeHubWococo {
|
|
||||||
type Chain = bp_bridge_hub_wococo::BridgeHubWococo;
|
|
||||||
}
|
|
||||||
|
|
||||||
impl messages::BridgedChainWithMessages for BridgeHubWococo {}
|
|
||||||
|
|
||||||
/// BridgeHubRococo chain from message lane point of view.
|
|
||||||
#[derive(RuntimeDebug, Clone, Copy)]
|
|
||||||
pub struct BridgeHubRococo;
|
|
||||||
|
|
||||||
impl UnderlyingChainProvider for BridgeHubRococo {
|
|
||||||
type Chain = bp_bridge_hub_rococo::BridgeHubRococo;
|
|
||||||
}
|
|
||||||
|
|
||||||
impl ThisChainWithMessages for BridgeHubRococo {
|
|
||||||
type RuntimeOrigin = RuntimeOrigin;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Signed extension that refunds relayers that are delivering messages from the Wococo parachain.
|
|
||||||
pub type OnBridgeHubRococoRefundBridgeHubWococoMessages = RefundSignedExtensionAdapter<
|
|
||||||
RefundBridgedParachainMessages<
|
|
||||||
Runtime,
|
|
||||||
RefundableParachain<BridgeParachainWococoInstance, bp_bridge_hub_wococo::BridgeHubWococo>,
|
|
||||||
RefundableMessagesLane<
|
|
||||||
WithBridgeHubWococoMessagesInstance,
|
|
||||||
AssetHubRococoToAssetHubWococoMessagesLane,
|
|
||||||
>,
|
|
||||||
ActualFeeRefund<Runtime>,
|
|
||||||
PriorityBoostPerMessage,
|
|
||||||
StrOnBridgeHubRococoRefundBridgeHubWococoMessages,
|
|
||||||
>,
|
|
||||||
>;
|
|
||||||
bp_runtime::generate_static_str_provider!(OnBridgeHubRococoRefundBridgeHubWococoMessages);
|
|
||||||
|
|
||||||
/// Add XCM messages support for BridgeHubRococo to support Rococo->Wococo XCM messages
|
|
||||||
pub type WithBridgeHubWococoMessagesInstance = pallet_bridge_messages::Instance1;
|
|
||||||
impl pallet_bridge_messages::Config<WithBridgeHubWococoMessagesInstance> for Runtime {
|
|
||||||
type RuntimeEvent = RuntimeEvent;
|
|
||||||
type WeightInfo = weights::pallet_bridge_messages_rococo_to_wococo::WeightInfo<Runtime>;
|
|
||||||
type BridgedChainId = BridgeHubWococoChainId;
|
|
||||||
type ActiveOutboundLanes = ActiveOutboundLanesToBridgeHubWococo;
|
|
||||||
type MaxUnrewardedRelayerEntriesAtInboundLane = MaxUnrewardedRelayerEntriesAtInboundLane;
|
|
||||||
type MaxUnconfirmedMessagesAtInboundLane = MaxUnconfirmedMessagesAtInboundLane;
|
|
||||||
|
|
||||||
type MaximalOutboundPayloadSize = ToBridgeHubWococoMaximalOutboundPayloadSize;
|
|
||||||
type OutboundPayload = XcmAsPlainPayload;
|
|
||||||
|
|
||||||
type InboundPayload = XcmAsPlainPayload;
|
|
||||||
type InboundRelayer = AccountId;
|
|
||||||
type DeliveryPayments = ();
|
|
||||||
|
|
||||||
type TargetHeaderChain = TargetHeaderChainAdapter<WithBridgeHubWococoMessageBridge>;
|
|
||||||
type LaneMessageVerifier = ToBridgeHubWococoMessageVerifier;
|
|
||||||
type DeliveryConfirmationPayments = pallet_bridge_relayers::DeliveryConfirmationPaymentsAdapter<
|
|
||||||
Runtime,
|
|
||||||
WithBridgeHubWococoMessagesInstance,
|
|
||||||
DeliveryRewardInBalance,
|
|
||||||
>;
|
|
||||||
|
|
||||||
type SourceHeaderChain = SourceHeaderChainAdapter<WithBridgeHubWococoMessageBridge>;
|
|
||||||
type MessageDispatch = XcmBlobMessageDispatch<
|
|
||||||
FromWococoMessageBlobDispatcher,
|
|
||||||
Self::WeightInfo,
|
|
||||||
cumulus_pallet_xcmp_queue::bridging::OutXcmpChannelStatusProvider<
|
|
||||||
AssetHubRococoParaId,
|
|
||||||
Runtime,
|
|
||||||
>,
|
|
||||||
>;
|
|
||||||
type OnMessagesDelivered = OnMessagesDeliveredFromWococo;
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(test)]
|
|
||||||
mod tests {
|
|
||||||
use super::*;
|
|
||||||
use crate::bridge_common_config::BridgeGrandpaWococoInstance;
|
|
||||||
use bridge_runtime_common::{
|
|
||||||
assert_complete_bridge_types,
|
|
||||||
integrity::{
|
|
||||||
assert_complete_bridge_constants, check_message_lane_weights,
|
|
||||||
AssertBridgeMessagesPalletConstants, AssertBridgePalletNames, AssertChainConstants,
|
|
||||||
AssertCompleteBridgeConstants,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
use parachains_common::{rococo, Balance};
|
|
||||||
|
|
||||||
/// Every additional message in the message delivery transaction boosts its priority.
|
|
||||||
/// So the priority of transaction with `N+1` messages is larger than priority of
|
|
||||||
/// transaction with `N` messages by the `PriorityBoostPerMessage`.
|
|
||||||
///
|
|
||||||
/// Economically, it is an equivalent of adding tip to the transaction with `N` messages.
|
|
||||||
/// The `FEE_BOOST_PER_MESSAGE` constant is the value of this tip.
|
|
||||||
///
|
|
||||||
/// We want this tip to be large enough (delivery transactions with more messages = less
|
|
||||||
/// operational costs and a faster bridge), so this value should be significant.
|
|
||||||
const FEE_BOOST_PER_MESSAGE: Balance = 2 * rococo::currency::UNITS;
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn ensure_bridge_hub_rococo_message_lane_weights_are_correct() {
|
|
||||||
check_message_lane_weights::<
|
|
||||||
bp_bridge_hub_rococo::BridgeHubRococo,
|
|
||||||
Runtime,
|
|
||||||
WithBridgeHubWococoMessagesInstance,
|
|
||||||
>(
|
|
||||||
bp_bridge_hub_wococo::EXTRA_STORAGE_PROOF_SIZE,
|
|
||||||
bp_bridge_hub_rococo::MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX,
|
|
||||||
bp_bridge_hub_rococo::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX,
|
|
||||||
true,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn ensure_bridge_integrity() {
|
|
||||||
assert_complete_bridge_types!(
|
|
||||||
runtime: Runtime,
|
|
||||||
with_bridged_chain_grandpa_instance: BridgeGrandpaWococoInstance,
|
|
||||||
with_bridged_chain_messages_instance: WithBridgeHubWococoMessagesInstance,
|
|
||||||
bridge: WithBridgeHubWococoMessageBridge,
|
|
||||||
this_chain: bp_rococo::Rococo,
|
|
||||||
bridged_chain: bp_wococo::Wococo,
|
|
||||||
);
|
|
||||||
|
|
||||||
assert_complete_bridge_constants::<
|
|
||||||
Runtime,
|
|
||||||
BridgeGrandpaWococoInstance,
|
|
||||||
WithBridgeHubWococoMessagesInstance,
|
|
||||||
WithBridgeHubWococoMessageBridge,
|
|
||||||
>(AssertCompleteBridgeConstants {
|
|
||||||
this_chain_constants: AssertChainConstants {
|
|
||||||
block_length: bp_bridge_hub_rococo::BlockLength::get(),
|
|
||||||
block_weights: bp_bridge_hub_rococo::BlockWeights::get(),
|
|
||||||
},
|
|
||||||
messages_pallet_constants: AssertBridgeMessagesPalletConstants {
|
|
||||||
max_unrewarded_relayers_in_bridged_confirmation_tx:
|
|
||||||
bp_bridge_hub_wococo::MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX,
|
|
||||||
max_unconfirmed_messages_in_bridged_confirmation_tx:
|
|
||||||
bp_bridge_hub_wococo::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX,
|
|
||||||
bridged_chain_id: bp_runtime::BRIDGE_HUB_WOCOCO_CHAIN_ID,
|
|
||||||
},
|
|
||||||
pallet_names: AssertBridgePalletNames {
|
|
||||||
with_this_chain_messages_pallet_name:
|
|
||||||
bp_bridge_hub_rococo::WITH_BRIDGE_HUB_ROCOCO_MESSAGES_PALLET_NAME,
|
|
||||||
with_bridged_chain_grandpa_pallet_name: bp_wococo::WITH_WOCOCO_GRANDPA_PALLET_NAME,
|
|
||||||
with_bridged_chain_messages_pallet_name:
|
|
||||||
bp_bridge_hub_wococo::WITH_BRIDGE_HUB_WOCOCO_MESSAGES_PALLET_NAME,
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
bridge_runtime_common::priority_calculator::ensure_priority_boost_is_sane::<
|
|
||||||
Runtime,
|
|
||||||
WithBridgeHubWococoMessagesInstance,
|
|
||||||
PriorityBoostPerMessage,
|
|
||||||
>(FEE_BOOST_PER_MESSAGE);
|
|
||||||
|
|
||||||
assert_eq!(
|
|
||||||
BridgeRococoToWococoMessagesPalletInstance::get(),
|
|
||||||
X1(PalletInstance(
|
|
||||||
bp_bridge_hub_rococo::WITH_BRIDGE_ROCOCO_TO_WOCOCO_MESSAGES_PALLET_INDEX
|
|
||||||
))
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -16,14 +16,7 @@
|
|||||||
|
|
||||||
//! # Bridge Hub Rococo Runtime
|
//! # Bridge Hub Rococo Runtime
|
||||||
//!
|
//!
|
||||||
//! This runtime is also used for Bridge Hub Wococo. We dont want to create
|
|
||||||
//! another exact copy of Bridge Hub Rococo, so we injected some tweaks backed by `RuntimeFlavor`
|
|
||||||
//! and `pub storage Flavor: RuntimeFlavor`. (For example this is needed for successful asset
|
|
||||||
//! transfer between Asset Hub Rococo and Asset Hub Wococo, where we need to have correct
|
|
||||||
//! `xcm_config::UniversalLocation` with correct `GlobalConsensus`.
|
|
||||||
//!
|
|
||||||
//! This runtime currently supports bridging between:
|
//! This runtime currently supports bridging between:
|
||||||
//! - Rococo <> Wococo
|
|
||||||
//! - Rococo <> Westend
|
//! - Rococo <> Westend
|
||||||
|
|
||||||
#![cfg_attr(not(feature = "std"), no_std)]
|
#![cfg_attr(not(feature = "std"), no_std)]
|
||||||
@@ -35,13 +28,10 @@
|
|||||||
include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs"));
|
include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs"));
|
||||||
|
|
||||||
pub mod bridge_common_config;
|
pub mod bridge_common_config;
|
||||||
pub mod bridge_to_rococo_config;
|
|
||||||
pub mod bridge_to_westend_config;
|
pub mod bridge_to_westend_config;
|
||||||
pub mod bridge_to_wococo_config;
|
|
||||||
mod weights;
|
mod weights;
|
||||||
pub mod xcm_config;
|
pub mod xcm_config;
|
||||||
|
|
||||||
use codec::{Decode, Encode};
|
|
||||||
use cumulus_pallet_parachain_system::RelayNumberStrictlyIncreases;
|
use cumulus_pallet_parachain_system::RelayNumberStrictlyIncreases;
|
||||||
use sp_api::impl_runtime_apis;
|
use sp_api::impl_runtime_apis;
|
||||||
use sp_core::{crypto::KeyTypeId, OpaqueMetadata};
|
use sp_core::{crypto::KeyTypeId, OpaqueMetadata};
|
||||||
@@ -93,15 +83,6 @@ use parachains_common::{
|
|||||||
HOURS, MAXIMUM_BLOCK_WEIGHT, NORMAL_DISPATCH_RATIO, SLOT_DURATION,
|
HOURS, MAXIMUM_BLOCK_WEIGHT, NORMAL_DISPATCH_RATIO, SLOT_DURATION,
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Enum for handling differences in the runtime configuration for BridgeHubRococo vs
|
|
||||||
/// BridgeHubWococo.
|
|
||||||
#[derive(Default, Eq, PartialEq, Debug, Clone, Copy, Decode, Encode)]
|
|
||||||
pub enum RuntimeFlavor {
|
|
||||||
#[default]
|
|
||||||
Rococo,
|
|
||||||
Wococo,
|
|
||||||
}
|
|
||||||
|
|
||||||
/// The address format for describing accounts.
|
/// The address format for describing accounts.
|
||||||
pub type Address = MultiAddress<AccountId, ()>;
|
pub type Address = MultiAddress<AccountId, ()>;
|
||||||
|
|
||||||
@@ -125,11 +106,7 @@ pub type SignedExtra = (
|
|||||||
frame_system::CheckWeight<Runtime>,
|
frame_system::CheckWeight<Runtime>,
|
||||||
pallet_transaction_payment::ChargeTransactionPayment<Runtime>,
|
pallet_transaction_payment::ChargeTransactionPayment<Runtime>,
|
||||||
BridgeRejectObsoleteHeadersAndMessages,
|
BridgeRejectObsoleteHeadersAndMessages,
|
||||||
(
|
(bridge_to_westend_config::OnBridgeHubRococoRefundBridgeHubWestendMessages,),
|
||||||
bridge_to_wococo_config::OnBridgeHubRococoRefundBridgeHubWococoMessages,
|
|
||||||
bridge_to_westend_config::OnBridgeHubRococoRefundBridgeHubWestendMessages,
|
|
||||||
bridge_to_rococo_config::OnBridgeHubWococoRefundBridgeHubRococoMessages,
|
|
||||||
),
|
|
||||||
);
|
);
|
||||||
|
|
||||||
/// Unchecked extrinsic type as expected by this runtime.
|
/// Unchecked extrinsic type as expected by this runtime.
|
||||||
@@ -529,37 +506,19 @@ construct_runtime!(
|
|||||||
Utility: pallet_utility::{Pallet, Call, Event} = 40,
|
Utility: pallet_utility::{Pallet, Call, Event} = 40,
|
||||||
Multisig: pallet_multisig::{Pallet, Call, Storage, Event<T>} = 36,
|
Multisig: pallet_multisig::{Pallet, Call, Storage, Event<T>} = 36,
|
||||||
|
|
||||||
// Rococo, Wococo and Westend BridgeHubs are sharing the runtime, so this runtime has several sets of
|
|
||||||
// bridge pallets.
|
|
||||||
//
|
|
||||||
// BridgeHubRococo uses:
|
// BridgeHubRococo uses:
|
||||||
// - BridgeWococoGrandpa
|
|
||||||
// - BridgeWestendGrandpa
|
// - BridgeWestendGrandpa
|
||||||
// - BridgeWococoParachains
|
|
||||||
// - BridgeWestendParachains
|
// - BridgeWestendParachains
|
||||||
// - BridgeWococoMessages
|
|
||||||
// - BridgeWestendMessages
|
// - BridgeWestendMessages
|
||||||
// - BridgeRelayers
|
// - BridgeRelayers
|
||||||
//
|
|
||||||
// BridgeHubWococo uses:
|
|
||||||
// - BridgeRococoGrandpa
|
|
||||||
// - BridgeRococoParachains
|
|
||||||
// - BridgeRococoMessages
|
|
||||||
// - BridgeRelayers
|
|
||||||
|
|
||||||
// GRANDPA bridge modules.
|
// GRANDPA bridge modules.
|
||||||
BridgeWococoGrandpa: pallet_bridge_grandpa::<Instance1>::{Pallet, Call, Storage, Event<T>, Config<T>} = 41,
|
|
||||||
BridgeRococoGrandpa: pallet_bridge_grandpa::<Instance2>::{Pallet, Call, Storage, Event<T>, Config<T>} = 43,
|
|
||||||
BridgeWestendGrandpa: pallet_bridge_grandpa::<Instance3>::{Pallet, Call, Storage, Event<T>, Config<T>} = 48,
|
BridgeWestendGrandpa: pallet_bridge_grandpa::<Instance3>::{Pallet, Call, Storage, Event<T>, Config<T>} = 48,
|
||||||
|
|
||||||
// Parachain bridge modules.
|
// Parachain bridge modules.
|
||||||
BridgeWococoParachains: pallet_bridge_parachains::<Instance1>::{Pallet, Call, Storage, Event<T>} = 42,
|
|
||||||
BridgeRococoParachains: pallet_bridge_parachains::<Instance2>::{Pallet, Call, Storage, Event<T>} = 44,
|
|
||||||
BridgeWestendParachains: pallet_bridge_parachains::<Instance3>::{Pallet, Call, Storage, Event<T>} = 49,
|
BridgeWestendParachains: pallet_bridge_parachains::<Instance3>::{Pallet, Call, Storage, Event<T>} = 49,
|
||||||
|
|
||||||
// Messaging bridge modules.
|
// Messaging bridge modules.
|
||||||
BridgeWococoMessages: pallet_bridge_messages::<Instance1>::{Pallet, Call, Storage, Event<T>, Config<T>} = 46,
|
|
||||||
BridgeRococoMessages: pallet_bridge_messages::<Instance2>::{Pallet, Call, Storage, Event<T>, Config<T>} = 45,
|
|
||||||
BridgeWestendMessages: pallet_bridge_messages::<Instance3>::{Pallet, Call, Storage, Event<T>, Config<T>} = 51,
|
BridgeWestendMessages: pallet_bridge_messages::<Instance3>::{Pallet, Call, Storage, Event<T>, Config<T>} = 51,
|
||||||
|
|
||||||
BridgeRelayers: pallet_bridge_relayers::{Pallet, Call, Storage, Event<T>} = 47,
|
BridgeRelayers: pallet_bridge_relayers::{Pallet, Call, Storage, Event<T>} = 47,
|
||||||
@@ -573,11 +532,11 @@ construct_runtime!(
|
|||||||
bridge_runtime_common::generate_bridge_reject_obsolete_headers_and_messages! {
|
bridge_runtime_common::generate_bridge_reject_obsolete_headers_and_messages! {
|
||||||
RuntimeCall, AccountId,
|
RuntimeCall, AccountId,
|
||||||
// Grandpa
|
// Grandpa
|
||||||
BridgeRococoGrandpa, BridgeWococoGrandpa, BridgeWestendGrandpa,
|
BridgeWestendGrandpa,
|
||||||
// Parachains
|
// Parachains
|
||||||
BridgeRococoParachains, BridgeWococoParachains, BridgeWestendParachains,
|
BridgeWestendParachains,
|
||||||
// Messages
|
// Messages
|
||||||
BridgeRococoMessages, BridgeWococoMessages, BridgeWestendMessages
|
BridgeWestendMessages
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "runtime-benchmarks")]
|
#[cfg(feature = "runtime-benchmarks")]
|
||||||
@@ -600,15 +559,9 @@ mod benches {
|
|||||||
[pallet_xcm_benchmarks::fungible, XcmBalances]
|
[pallet_xcm_benchmarks::fungible, XcmBalances]
|
||||||
[pallet_xcm_benchmarks::generic, XcmGeneric]
|
[pallet_xcm_benchmarks::generic, XcmGeneric]
|
||||||
// Bridge pallets
|
// Bridge pallets
|
||||||
[pallet_bridge_grandpa, WococoFinality]
|
|
||||||
[pallet_bridge_grandpa, WestendFinality]
|
[pallet_bridge_grandpa, WestendFinality]
|
||||||
[pallet_bridge_grandpa, RococoFinality]
|
|
||||||
[pallet_bridge_parachains, WithinWococo]
|
|
||||||
[pallet_bridge_parachains, WithinWestend]
|
[pallet_bridge_parachains, WithinWestend]
|
||||||
[pallet_bridge_parachains, WithinRococo]
|
|
||||||
[pallet_bridge_messages, RococoToWococo]
|
|
||||||
[pallet_bridge_messages, RococoToWestend]
|
[pallet_bridge_messages, RococoToWestend]
|
||||||
[pallet_bridge_messages, WococoToRococo]
|
|
||||||
[pallet_bridge_relayers, BridgeRelayersBench::<Runtime>]
|
[pallet_bridge_relayers, BridgeRelayersBench::<Runtime>]
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -757,26 +710,6 @@ impl_runtime_apis! {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl bp_rococo::RococoFinalityApi<Block> for Runtime {
|
|
||||||
fn best_finalized() -> Option<HeaderId<bp_rococo::Hash, bp_rococo::BlockNumber>> {
|
|
||||||
BridgeRococoGrandpa::best_finalized()
|
|
||||||
}
|
|
||||||
fn synced_headers_grandpa_info(
|
|
||||||
) -> Vec<bp_header_chain::StoredHeaderGrandpaInfo<bp_rococo::Header>> {
|
|
||||||
BridgeRococoGrandpa::synced_headers_grandpa_info()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl bp_wococo::WococoFinalityApi<Block> for Runtime {
|
|
||||||
fn best_finalized() -> Option<HeaderId<bp_wococo::Hash, bp_wococo::BlockNumber>> {
|
|
||||||
BridgeWococoGrandpa::best_finalized()
|
|
||||||
}
|
|
||||||
fn synced_headers_grandpa_info(
|
|
||||||
) -> Vec<bp_header_chain::StoredHeaderGrandpaInfo<bp_wococo::Header>> {
|
|
||||||
BridgeWococoGrandpa::synced_headers_grandpa_info()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl bp_westend::WestendFinalityApi<Block> for Runtime {
|
impl bp_westend::WestendFinalityApi<Block> for Runtime {
|
||||||
fn best_finalized() -> Option<HeaderId<bp_westend::Hash, bp_westend::BlockNumber>> {
|
fn best_finalized() -> Option<HeaderId<bp_westend::Hash, bp_westend::BlockNumber>> {
|
||||||
BridgeWestendGrandpa::best_finalized()
|
BridgeWestendGrandpa::best_finalized()
|
||||||
@@ -787,22 +720,6 @@ impl_runtime_apis! {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl bp_bridge_hub_rococo::BridgeHubRococoFinalityApi<Block> for Runtime {
|
|
||||||
fn best_finalized() -> Option<HeaderId<Hash, BlockNumber>> {
|
|
||||||
BridgeRococoParachains::best_parachain_head_id::<
|
|
||||||
bp_bridge_hub_rococo::BridgeHubRococo
|
|
||||||
>().unwrap_or(None)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl bp_bridge_hub_wococo::BridgeHubWococoFinalityApi<Block> for Runtime {
|
|
||||||
fn best_finalized() -> Option<HeaderId<Hash, BlockNumber>> {
|
|
||||||
BridgeWococoParachains::best_parachain_head_id::<
|
|
||||||
bp_bridge_hub_wococo::BridgeHubWococo
|
|
||||||
>().unwrap_or(None)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl bp_bridge_hub_westend::BridgeHubWestendFinalityApi<Block> for Runtime {
|
impl bp_bridge_hub_westend::BridgeHubWestendFinalityApi<Block> for Runtime {
|
||||||
fn best_finalized() -> Option<HeaderId<Hash, BlockNumber>> {
|
fn best_finalized() -> Option<HeaderId<Hash, BlockNumber>> {
|
||||||
BridgeWestendParachains::best_parachain_head_id::<
|
BridgeWestendParachains::best_parachain_head_id::<
|
||||||
@@ -811,33 +728,6 @@ impl_runtime_apis! {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// This is exposed by BridgeHubRococo
|
|
||||||
impl bp_bridge_hub_wococo::FromBridgeHubWococoInboundLaneApi<Block> for Runtime {
|
|
||||||
fn message_details(
|
|
||||||
lane: bp_messages::LaneId,
|
|
||||||
messages: Vec<(bp_messages::MessagePayload, bp_messages::OutboundMessageDetails)>,
|
|
||||||
) -> Vec<bp_messages::InboundMessageDetails> {
|
|
||||||
bridge_runtime_common::messages_api::inbound_message_details::<
|
|
||||||
Runtime,
|
|
||||||
bridge_to_wococo_config::WithBridgeHubWococoMessagesInstance,
|
|
||||||
>(lane, messages)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// This is exposed by BridgeHubRococo
|
|
||||||
impl bp_bridge_hub_wococo::ToBridgeHubWococoOutboundLaneApi<Block> for Runtime {
|
|
||||||
fn message_details(
|
|
||||||
lane: bp_messages::LaneId,
|
|
||||||
begin: bp_messages::MessageNonce,
|
|
||||||
end: bp_messages::MessageNonce,
|
|
||||||
) -> Vec<bp_messages::OutboundMessageDetails> {
|
|
||||||
bridge_runtime_common::messages_api::outbound_message_details::<
|
|
||||||
Runtime,
|
|
||||||
bridge_to_wococo_config::WithBridgeHubWococoMessagesInstance,
|
|
||||||
>(lane, begin, end)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// This is exposed by BridgeHubRococo
|
// This is exposed by BridgeHubRococo
|
||||||
impl bp_bridge_hub_westend::FromBridgeHubWestendInboundLaneApi<Block> for Runtime {
|
impl bp_bridge_hub_westend::FromBridgeHubWestendInboundLaneApi<Block> for Runtime {
|
||||||
fn message_details(
|
fn message_details(
|
||||||
@@ -865,45 +755,6 @@ impl_runtime_apis! {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// This is exposed by BridgeHubWococo
|
|
||||||
impl bp_bridge_hub_rococo::FromBridgeHubRococoInboundLaneApi<Block> for Runtime {
|
|
||||||
fn message_details(
|
|
||||||
lane: bp_messages::LaneId,
|
|
||||||
messages: Vec<(bp_messages::MessagePayload, bp_messages::OutboundMessageDetails)>,
|
|
||||||
) -> Vec<bp_messages::InboundMessageDetails> {
|
|
||||||
// use different instance according to flavor
|
|
||||||
match xcm_config::Flavor::get() {
|
|
||||||
RuntimeFlavor::Wococo => {
|
|
||||||
bridge_runtime_common::messages_api::inbound_message_details::<
|
|
||||||
Runtime,
|
|
||||||
bridge_to_rococo_config::WithBridgeHubRococoMessagesInstance,
|
|
||||||
>(lane, messages)
|
|
||||||
},
|
|
||||||
flavor @ _ => unimplemented!("Unsupported `FromBridgeHubRococoInboundLaneApi` for flavor: {:?}", flavor)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// This is exposed by BridgeHubWococo and BridgeHubWestend
|
|
||||||
impl bp_bridge_hub_rococo::ToBridgeHubRococoOutboundLaneApi<Block> for Runtime {
|
|
||||||
fn message_details(
|
|
||||||
lane: bp_messages::LaneId,
|
|
||||||
begin: bp_messages::MessageNonce,
|
|
||||||
end: bp_messages::MessageNonce,
|
|
||||||
) -> Vec<bp_messages::OutboundMessageDetails> {
|
|
||||||
// use different instance according to flavor
|
|
||||||
match xcm_config::Flavor::get() {
|
|
||||||
RuntimeFlavor::Wococo => {
|
|
||||||
bridge_runtime_common::messages_api::outbound_message_details::<
|
|
||||||
Runtime,
|
|
||||||
bridge_to_rococo_config::WithBridgeHubRococoMessagesInstance,
|
|
||||||
>(lane, begin, end)
|
|
||||||
},
|
|
||||||
flavor @ _ => unimplemented!("Unsupported `ToBridgeHubRococoOutboundLaneApi` for flavor: {:?}", flavor)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(feature = "try-runtime")]
|
#[cfg(feature = "try-runtime")]
|
||||||
impl frame_try_runtime::TryRuntime<Block> for Runtime {
|
impl frame_try_runtime::TryRuntime<Block> for Runtime {
|
||||||
fn on_runtime_upgrade(checks: frame_try_runtime::UpgradeCheckSelect) -> (Weight, Weight) {
|
fn on_runtime_upgrade(checks: frame_try_runtime::UpgradeCheckSelect) -> (Weight, Weight) {
|
||||||
@@ -943,15 +794,9 @@ impl_runtime_apis! {
|
|||||||
|
|
||||||
use pallet_bridge_relayers::benchmarking::Pallet as BridgeRelayersBench;
|
use pallet_bridge_relayers::benchmarking::Pallet as BridgeRelayersBench;
|
||||||
// Change weight file names.
|
// Change weight file names.
|
||||||
type WococoFinality = BridgeWococoGrandpa;
|
|
||||||
type WestendFinality = BridgeWestendGrandpa;
|
type WestendFinality = BridgeWestendGrandpa;
|
||||||
type RococoFinality = BridgeRococoGrandpa;
|
|
||||||
type WithinWococo = pallet_bridge_parachains::benchmarking::Pallet::<Runtime, bridge_common_config::BridgeParachainWococoInstance>;
|
|
||||||
type WithinWestend = pallet_bridge_parachains::benchmarking::Pallet::<Runtime, bridge_common_config::BridgeParachainWestendInstance>;
|
type WithinWestend = pallet_bridge_parachains::benchmarking::Pallet::<Runtime, bridge_common_config::BridgeParachainWestendInstance>;
|
||||||
type WithinRococo = pallet_bridge_parachains::benchmarking::Pallet::<Runtime, bridge_common_config::BridgeParachainRococoInstance>;
|
|
||||||
type RococoToWococo = pallet_bridge_messages::benchmarking::Pallet ::<Runtime, bridge_to_wococo_config::WithBridgeHubWococoMessagesInstance>;
|
|
||||||
type RococoToWestend = pallet_bridge_messages::benchmarking::Pallet ::<Runtime, bridge_to_westend_config::WithBridgeHubWestendMessagesInstance>;
|
type RococoToWestend = pallet_bridge_messages::benchmarking::Pallet ::<Runtime, bridge_to_westend_config::WithBridgeHubWestendMessagesInstance>;
|
||||||
type WococoToRococo = pallet_bridge_messages::benchmarking::Pallet ::<Runtime, bridge_to_rococo_config::WithBridgeHubRococoMessagesInstance>;
|
|
||||||
|
|
||||||
let mut list = Vec::<BenchmarkList>::new();
|
let mut list = Vec::<BenchmarkList>::new();
|
||||||
list_benchmarks!(list, extra);
|
list_benchmarks!(list, extra);
|
||||||
@@ -1098,7 +943,7 @@ impl_runtime_apis! {
|
|||||||
|
|
||||||
fn export_message_origin_and_destination(
|
fn export_message_origin_and_destination(
|
||||||
) -> Result<(MultiLocation, NetworkId, InteriorMultiLocation), BenchmarkError> {
|
) -> Result<(MultiLocation, NetworkId, InteriorMultiLocation), BenchmarkError> {
|
||||||
Ok((TokenLocation::get(), NetworkId::Wococo, X1(Parachain(100))))
|
Ok((TokenLocation::get(), NetworkId::Westend, X1(Parachain(100))))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn alias_origin() -> Result<(MultiLocation, MultiLocation), BenchmarkError> {
|
fn alias_origin() -> Result<(MultiLocation, MultiLocation), BenchmarkError> {
|
||||||
@@ -1109,15 +954,9 @@ impl_runtime_apis! {
|
|||||||
type XcmBalances = pallet_xcm_benchmarks::fungible::Pallet::<Runtime>;
|
type XcmBalances = pallet_xcm_benchmarks::fungible::Pallet::<Runtime>;
|
||||||
type XcmGeneric = pallet_xcm_benchmarks::generic::Pallet::<Runtime>;
|
type XcmGeneric = pallet_xcm_benchmarks::generic::Pallet::<Runtime>;
|
||||||
|
|
||||||
type WococoFinality = BridgeWococoGrandpa;
|
|
||||||
type WestendFinality = BridgeWestendGrandpa;
|
type WestendFinality = BridgeWestendGrandpa;
|
||||||
type RococoFinality = BridgeRococoGrandpa;
|
|
||||||
type WithinWococo = pallet_bridge_parachains::benchmarking::Pallet::<Runtime, bridge_common_config::BridgeParachainWococoInstance>;
|
|
||||||
type WithinWestend = pallet_bridge_parachains::benchmarking::Pallet::<Runtime, bridge_common_config::BridgeParachainWestendInstance>;
|
type WithinWestend = pallet_bridge_parachains::benchmarking::Pallet::<Runtime, bridge_common_config::BridgeParachainWestendInstance>;
|
||||||
type WithinRococo = pallet_bridge_parachains::benchmarking::Pallet::<Runtime, bridge_common_config::BridgeParachainRococoInstance>;
|
|
||||||
type RococoToWococo = pallet_bridge_messages::benchmarking::Pallet ::<Runtime, bridge_to_wococo_config::WithBridgeHubWococoMessagesInstance>;
|
|
||||||
type RococoToWestend = pallet_bridge_messages::benchmarking::Pallet ::<Runtime, bridge_to_westend_config::WithBridgeHubWestendMessagesInstance>;
|
type RococoToWestend = pallet_bridge_messages::benchmarking::Pallet ::<Runtime, bridge_to_westend_config::WithBridgeHubWestendMessagesInstance>;
|
||||||
type WococoToRococo = pallet_bridge_messages::benchmarking::Pallet ::<Runtime, bridge_to_rococo_config::WithBridgeHubRococoMessagesInstance>;
|
|
||||||
|
|
||||||
use bridge_runtime_common::messages_benchmarking::{
|
use bridge_runtime_common::messages_benchmarking::{
|
||||||
prepare_message_delivery_proof_from_parachain,
|
prepare_message_delivery_proof_from_parachain,
|
||||||
@@ -1130,49 +969,6 @@ impl_runtime_apis! {
|
|||||||
MessageProofParams,
|
MessageProofParams,
|
||||||
};
|
};
|
||||||
|
|
||||||
impl BridgeMessagesConfig<bridge_to_wococo_config::WithBridgeHubWococoMessagesInstance> for Runtime {
|
|
||||||
fn is_relayer_rewarded(relayer: &Self::AccountId) -> bool {
|
|
||||||
let bench_lane_id = <Self as BridgeMessagesConfig<bridge_to_wococo_config::WithBridgeHubWococoMessagesInstance>>::bench_lane_id();
|
|
||||||
let bridged_chain_id = bp_runtime::BRIDGE_HUB_WOCOCO_CHAIN_ID;
|
|
||||||
pallet_bridge_relayers::Pallet::<Runtime>::relayer_reward(
|
|
||||||
relayer,
|
|
||||||
bp_relayers::RewardsAccountParams::new(
|
|
||||||
bench_lane_id,
|
|
||||||
bridged_chain_id,
|
|
||||||
bp_relayers::RewardsAccountOwner::BridgedChain
|
|
||||||
)
|
|
||||||
).is_some()
|
|
||||||
}
|
|
||||||
|
|
||||||
fn prepare_message_proof(
|
|
||||||
params: MessageProofParams,
|
|
||||||
) -> (bridge_to_wococo_config::FromWococoBridgeHubMessagesProof, Weight) {
|
|
||||||
use cumulus_primitives_core::XcmpMessageSource;
|
|
||||||
assert!(XcmpQueue::take_outbound_messages(usize::MAX).is_empty());
|
|
||||||
ParachainSystem::open_outbound_hrmp_channel_for_benchmarks_or_tests(42.into());
|
|
||||||
prepare_message_proof_from_parachain::<
|
|
||||||
Runtime,
|
|
||||||
bridge_common_config::BridgeGrandpaWococoInstance,
|
|
||||||
bridge_to_wococo_config::WithBridgeHubWococoMessageBridge,
|
|
||||||
>(params, generate_xcm_builder_bridge_message_sample(X2(GlobalConsensus(Rococo), Parachain(42))))
|
|
||||||
}
|
|
||||||
|
|
||||||
fn prepare_message_delivery_proof(
|
|
||||||
params: MessageDeliveryProofParams<AccountId>,
|
|
||||||
) -> bridge_to_wococo_config::ToWococoBridgeHubMessagesDeliveryProof {
|
|
||||||
prepare_message_delivery_proof_from_parachain::<
|
|
||||||
Runtime,
|
|
||||||
bridge_common_config::BridgeGrandpaWococoInstance,
|
|
||||||
bridge_to_wococo_config::WithBridgeHubWococoMessageBridge,
|
|
||||||
>(params)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn is_message_successfully_dispatched(_nonce: bp_messages::MessageNonce) -> bool {
|
|
||||||
use cumulus_primitives_core::XcmpMessageSource;
|
|
||||||
!XcmpQueue::take_outbound_messages(usize::MAX).is_empty()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl BridgeMessagesConfig<bridge_to_westend_config::WithBridgeHubWestendMessagesInstance> for Runtime {
|
impl BridgeMessagesConfig<bridge_to_westend_config::WithBridgeHubWestendMessagesInstance> for Runtime {
|
||||||
fn is_relayer_rewarded(relayer: &Self::AccountId) -> bool {
|
fn is_relayer_rewarded(relayer: &Self::AccountId) -> bool {
|
||||||
let bench_lane_id = <Self as BridgeMessagesConfig<bridge_to_westend_config::WithBridgeHubWestendMessagesInstance>>::bench_lane_id();
|
let bench_lane_id = <Self as BridgeMessagesConfig<bridge_to_westend_config::WithBridgeHubWestendMessagesInstance>>::bench_lane_id();
|
||||||
@@ -1216,49 +1012,6 @@ impl_runtime_apis! {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl BridgeMessagesConfig<bridge_to_rococo_config::WithBridgeHubRococoMessagesInstance> for Runtime {
|
|
||||||
fn is_relayer_rewarded(relayer: &Self::AccountId) -> bool {
|
|
||||||
let bench_lane_id = <Self as BridgeMessagesConfig<bridge_to_rococo_config::WithBridgeHubRococoMessagesInstance>>::bench_lane_id();
|
|
||||||
let bridged_chain_id = bp_runtime::BRIDGE_HUB_ROCOCO_CHAIN_ID;
|
|
||||||
pallet_bridge_relayers::Pallet::<Runtime>::relayer_reward(
|
|
||||||
relayer,
|
|
||||||
bp_relayers::RewardsAccountParams::new(
|
|
||||||
bench_lane_id,
|
|
||||||
bridged_chain_id,
|
|
||||||
bp_relayers::RewardsAccountOwner::BridgedChain
|
|
||||||
)
|
|
||||||
).is_some()
|
|
||||||
}
|
|
||||||
|
|
||||||
fn prepare_message_proof(
|
|
||||||
params: MessageProofParams,
|
|
||||||
) -> (bridge_to_rococo_config::FromRococoBridgeHubMessagesProof, Weight) {
|
|
||||||
use cumulus_primitives_core::XcmpMessageSource;
|
|
||||||
assert!(XcmpQueue::take_outbound_messages(usize::MAX).is_empty());
|
|
||||||
ParachainSystem::open_outbound_hrmp_channel_for_benchmarks_or_tests(42.into());
|
|
||||||
prepare_message_proof_from_parachain::<
|
|
||||||
Runtime,
|
|
||||||
bridge_common_config::BridgeGrandpaRococoInstance,
|
|
||||||
bridge_to_rococo_config::WithBridgeHubRococoMessageBridge,
|
|
||||||
>(params, generate_xcm_builder_bridge_message_sample(X2(GlobalConsensus(Wococo), Parachain(42))))
|
|
||||||
}
|
|
||||||
|
|
||||||
fn prepare_message_delivery_proof(
|
|
||||||
params: MessageDeliveryProofParams<AccountId>,
|
|
||||||
) -> bridge_to_rococo_config::ToRococoBridgeHubMessagesDeliveryProof {
|
|
||||||
prepare_message_delivery_proof_from_parachain::<
|
|
||||||
Runtime,
|
|
||||||
bridge_common_config::BridgeGrandpaRococoInstance,
|
|
||||||
bridge_to_rococo_config::WithBridgeHubRococoMessageBridge,
|
|
||||||
>(params)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn is_message_successfully_dispatched(_nonce: bp_messages::MessageNonce) -> bool {
|
|
||||||
use cumulus_primitives_core::XcmpMessageSource;
|
|
||||||
!XcmpQueue::take_outbound_messages(usize::MAX).is_empty()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
use bridge_runtime_common::parachains_benchmarking::prepare_parachain_heads_proof;
|
use bridge_runtime_common::parachains_benchmarking::prepare_parachain_heads_proof;
|
||||||
use pallet_bridge_parachains::benchmarking::Config as BridgeParachainsConfig;
|
use pallet_bridge_parachains::benchmarking::Config as BridgeParachainsConfig;
|
||||||
use pallet_bridge_relayers::benchmarking::{
|
use pallet_bridge_relayers::benchmarking::{
|
||||||
@@ -1266,30 +1019,6 @@ impl_runtime_apis! {
|
|||||||
Config as BridgeRelayersConfig,
|
Config as BridgeRelayersConfig,
|
||||||
};
|
};
|
||||||
|
|
||||||
impl BridgeParachainsConfig<bridge_common_config::BridgeParachainWococoInstance> for Runtime {
|
|
||||||
fn parachains() -> Vec<bp_polkadot_core::parachains::ParaId> {
|
|
||||||
use bp_runtime::Parachain;
|
|
||||||
vec![bp_polkadot_core::parachains::ParaId(bp_bridge_hub_wococo::BridgeHubWococo::PARACHAIN_ID)]
|
|
||||||
}
|
|
||||||
|
|
||||||
fn prepare_parachain_heads_proof(
|
|
||||||
parachains: &[bp_polkadot_core::parachains::ParaId],
|
|
||||||
parachain_head_size: u32,
|
|
||||||
proof_size: bp_runtime::StorageProofSize,
|
|
||||||
) -> (
|
|
||||||
pallet_bridge_parachains::RelayBlockNumber,
|
|
||||||
pallet_bridge_parachains::RelayBlockHash,
|
|
||||||
bp_polkadot_core::parachains::ParaHeadsProof,
|
|
||||||
Vec<(bp_polkadot_core::parachains::ParaId, bp_polkadot_core::parachains::ParaHash)>,
|
|
||||||
) {
|
|
||||||
prepare_parachain_heads_proof::<Runtime, bridge_common_config::BridgeParachainWococoInstance>(
|
|
||||||
parachains,
|
|
||||||
parachain_head_size,
|
|
||||||
proof_size,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl BridgeParachainsConfig<bridge_common_config::BridgeParachainWestendInstance> for Runtime {
|
impl BridgeParachainsConfig<bridge_common_config::BridgeParachainWestendInstance> for Runtime {
|
||||||
fn parachains() -> Vec<bp_polkadot_core::parachains::ParaId> {
|
fn parachains() -> Vec<bp_polkadot_core::parachains::ParaId> {
|
||||||
use bp_runtime::Parachain;
|
use bp_runtime::Parachain;
|
||||||
@@ -1314,30 +1043,6 @@ impl_runtime_apis! {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl BridgeParachainsConfig<bridge_common_config::BridgeParachainRococoInstance> for Runtime {
|
|
||||||
fn parachains() -> Vec<bp_polkadot_core::parachains::ParaId> {
|
|
||||||
use bp_runtime::Parachain;
|
|
||||||
vec![bp_polkadot_core::parachains::ParaId(bp_bridge_hub_rococo::BridgeHubRococo::PARACHAIN_ID)]
|
|
||||||
}
|
|
||||||
|
|
||||||
fn prepare_parachain_heads_proof(
|
|
||||||
parachains: &[bp_polkadot_core::parachains::ParaId],
|
|
||||||
parachain_head_size: u32,
|
|
||||||
proof_size: bp_runtime::StorageProofSize,
|
|
||||||
) -> (
|
|
||||||
pallet_bridge_parachains::RelayBlockNumber,
|
|
||||||
pallet_bridge_parachains::RelayBlockHash,
|
|
||||||
bp_polkadot_core::parachains::ParaHeadsProof,
|
|
||||||
Vec<(bp_polkadot_core::parachains::ParaId, bp_polkadot_core::parachains::ParaHash)>,
|
|
||||||
) {
|
|
||||||
prepare_parachain_heads_proof::<Runtime, bridge_common_config::BridgeParachainRococoInstance>(
|
|
||||||
parachains,
|
|
||||||
parachain_head_size,
|
|
||||||
proof_size,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl BridgeRelayersConfig for Runtime {
|
impl BridgeRelayersConfig for Runtime {
|
||||||
fn prepare_rewards_account(
|
fn prepare_rewards_account(
|
||||||
account_params: bp_relayers::RewardsAccountParams,
|
account_params: bp_relayers::RewardsAccountParams,
|
||||||
@@ -1418,11 +1123,7 @@ mod tests {
|
|||||||
frame_system::CheckWeight::new(),
|
frame_system::CheckWeight::new(),
|
||||||
pallet_transaction_payment::ChargeTransactionPayment::from(10),
|
pallet_transaction_payment::ChargeTransactionPayment::from(10),
|
||||||
BridgeRejectObsoleteHeadersAndMessages,
|
BridgeRejectObsoleteHeadersAndMessages,
|
||||||
(
|
(bridge_to_westend_config::OnBridgeHubRococoRefundBridgeHubWestendMessages::default(),)
|
||||||
bridge_to_wococo_config::OnBridgeHubRococoRefundBridgeHubWococoMessages::default(),
|
|
||||||
bridge_to_westend_config::OnBridgeHubRococoRefundBridgeHubWestendMessages::default(),
|
|
||||||
bridge_to_rococo_config::OnBridgeHubWococoRefundBridgeHubRococoMessages::default(),
|
|
||||||
),
|
|
||||||
);
|
);
|
||||||
|
|
||||||
// for BridgeHubRococo
|
// for BridgeHubRococo
|
||||||
@@ -1442,24 +1143,6 @@ mod tests {
|
|||||||
bhr_indirect_payload.additional_signed().unwrap().encode()
|
bhr_indirect_payload.additional_signed().unwrap().encode()
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// for BridgeHubWococo
|
|
||||||
{
|
|
||||||
let bhw_indirect_payload = bp_bridge_hub_wococo::SignedExtension::from_params(
|
|
||||||
VERSION.spec_version,
|
|
||||||
VERSION.transaction_version,
|
|
||||||
bp_runtime::TransactionEra::Immortal,
|
|
||||||
System::block_hash(BlockNumber::zero()),
|
|
||||||
10,
|
|
||||||
10,
|
|
||||||
(((), ()), ((), ())),
|
|
||||||
);
|
|
||||||
assert_eq!(payload.encode(), bhw_indirect_payload.encode());
|
|
||||||
assert_eq!(
|
|
||||||
payload.additional_signed().unwrap().encode(),
|
|
||||||
bhw_indirect_payload.additional_signed().unwrap().encode()
|
|
||||||
)
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,6 +17,9 @@
|
|||||||
|
|
||||||
//! Expose the auto generated weight files.
|
//! Expose the auto generated weight files.
|
||||||
|
|
||||||
|
use ::pallet_bridge_messages::WeightInfoExt as MessagesWeightInfoExt;
|
||||||
|
use ::pallet_bridge_parachains::WeightInfoExt as ParachainsWeightInfoExt;
|
||||||
|
|
||||||
pub mod block_weights;
|
pub mod block_weights;
|
||||||
pub mod cumulus_pallet_dmp_queue;
|
pub mod cumulus_pallet_dmp_queue;
|
||||||
pub mod cumulus_pallet_parachain_system;
|
pub mod cumulus_pallet_parachain_system;
|
||||||
@@ -24,15 +27,9 @@ pub mod cumulus_pallet_xcmp_queue;
|
|||||||
pub mod extrinsic_weights;
|
pub mod extrinsic_weights;
|
||||||
pub mod frame_system;
|
pub mod frame_system;
|
||||||
pub mod pallet_balances;
|
pub mod pallet_balances;
|
||||||
pub mod pallet_bridge_grandpa_rococo_finality;
|
pub mod pallet_bridge_grandpa;
|
||||||
pub mod pallet_bridge_grandpa_westend_finality;
|
pub mod pallet_bridge_messages;
|
||||||
pub mod pallet_bridge_grandpa_wococo_finality;
|
pub mod pallet_bridge_parachains;
|
||||||
pub mod pallet_bridge_messages_rococo_to_westend;
|
|
||||||
pub mod pallet_bridge_messages_rococo_to_wococo;
|
|
||||||
pub mod pallet_bridge_messages_wococo_to_rococo;
|
|
||||||
pub mod pallet_bridge_parachains_within_rococo;
|
|
||||||
pub mod pallet_bridge_parachains_within_westend;
|
|
||||||
pub mod pallet_bridge_parachains_within_wococo;
|
|
||||||
pub mod pallet_bridge_relayers;
|
pub mod pallet_bridge_relayers;
|
||||||
pub mod pallet_collator_selection;
|
pub mod pallet_collator_selection;
|
||||||
pub mod pallet_message_queue;
|
pub mod pallet_message_queue;
|
||||||
@@ -56,43 +53,7 @@ use frame_support::weights::Weight;
|
|||||||
// import trait from dependency module
|
// import trait from dependency module
|
||||||
use ::pallet_bridge_relayers::WeightInfoExt as _;
|
use ::pallet_bridge_relayers::WeightInfoExt as _;
|
||||||
|
|
||||||
impl pallet_bridge_messages::WeightInfoExt
|
impl MessagesWeightInfoExt for pallet_bridge_messages::WeightInfo<crate::Runtime> {
|
||||||
for pallet_bridge_messages_wococo_to_rococo::WeightInfo<crate::Runtime>
|
|
||||||
{
|
|
||||||
fn expected_extra_storage_proof_size() -> u32 {
|
|
||||||
bp_bridge_hub_rococo::EXTRA_STORAGE_PROOF_SIZE
|
|
||||||
}
|
|
||||||
|
|
||||||
fn receive_messages_proof_overhead_from_runtime() -> Weight {
|
|
||||||
pallet_bridge_relayers::WeightInfo::<Runtime>::receive_messages_proof_overhead_from_runtime(
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn receive_messages_delivery_proof_overhead_from_runtime() -> Weight {
|
|
||||||
pallet_bridge_relayers::WeightInfo::<Runtime>::receive_messages_delivery_proof_overhead_from_runtime()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl pallet_bridge_messages::WeightInfoExt
|
|
||||||
for pallet_bridge_messages_rococo_to_wococo::WeightInfo<crate::Runtime>
|
|
||||||
{
|
|
||||||
fn expected_extra_storage_proof_size() -> u32 {
|
|
||||||
bp_bridge_hub_wococo::EXTRA_STORAGE_PROOF_SIZE
|
|
||||||
}
|
|
||||||
|
|
||||||
fn receive_messages_proof_overhead_from_runtime() -> Weight {
|
|
||||||
pallet_bridge_relayers::WeightInfo::<Runtime>::receive_messages_proof_overhead_from_runtime(
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn receive_messages_delivery_proof_overhead_from_runtime() -> Weight {
|
|
||||||
pallet_bridge_relayers::WeightInfo::<Runtime>::receive_messages_delivery_proof_overhead_from_runtime()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl pallet_bridge_messages::WeightInfoExt
|
|
||||||
for pallet_bridge_messages_rococo_to_westend::WeightInfo<crate::Runtime>
|
|
||||||
{
|
|
||||||
fn expected_extra_storage_proof_size() -> u32 {
|
fn expected_extra_storage_proof_size() -> u32 {
|
||||||
bp_bridge_hub_westend::EXTRA_STORAGE_PROOF_SIZE
|
bp_bridge_hub_westend::EXTRA_STORAGE_PROOF_SIZE
|
||||||
}
|
}
|
||||||
@@ -107,26 +68,8 @@ impl pallet_bridge_messages::WeightInfoExt
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl pallet_bridge_parachains::WeightInfoExt
|
impl ParachainsWeightInfoExt for pallet_bridge_parachains::WeightInfo<crate::Runtime> {
|
||||||
for pallet_bridge_parachains_within_rococo::WeightInfo<crate::Runtime>
|
|
||||||
{
|
|
||||||
fn expected_extra_storage_proof_size() -> u32 {
|
|
||||||
bp_bridge_hub_rococo::EXTRA_STORAGE_PROOF_SIZE
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl pallet_bridge_parachains::WeightInfoExt
|
|
||||||
for pallet_bridge_parachains_within_westend::WeightInfo<crate::Runtime>
|
|
||||||
{
|
|
||||||
fn expected_extra_storage_proof_size() -> u32 {
|
fn expected_extra_storage_proof_size() -> u32 {
|
||||||
bp_bridge_hub_westend::EXTRA_STORAGE_PROOF_SIZE
|
bp_bridge_hub_westend::EXTRA_STORAGE_PROOF_SIZE
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl pallet_bridge_parachains::WeightInfoExt
|
|
||||||
for pallet_bridge_parachains_within_wococo::WeightInfo<crate::Runtime>
|
|
||||||
{
|
|
||||||
fn expected_extra_storage_proof_size() -> u32 {
|
|
||||||
bp_bridge_hub_wococo::EXTRA_STORAGE_PROOF_SIZE
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
+44
-45
@@ -1,40 +1,41 @@
|
|||||||
// Copyright (C) Parity Technologies (UK) Ltd.
|
// Copyright (C) Parity Technologies (UK) Ltd.
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// This file is part of Cumulus.
|
||||||
|
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
// Cumulus is free software: you can redistribute it and/or modify
|
||||||
// you may not use this file except in compliance with the License.
|
// it under the terms of the GNU General Public License as published by
|
||||||
// You may obtain a copy of the License at
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
//
|
// (at your option) any later version.
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
// Cumulus is distributed in the hope that it will be useful,
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
// GNU General Public License for more details.
|
||||||
// See the License for the specific language governing permissions and
|
|
||||||
// limitations under the License.
|
// You should have received a copy of the GNU General Public License
|
||||||
|
// along with Cumulus. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
//! Autogenerated weights for `pallet_bridge_grandpa`
|
//! Autogenerated weights for `pallet_bridge_grandpa`
|
||||||
//!
|
//!
|
||||||
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
|
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
|
||||||
//! DATE: 2023-05-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
|
//! DATE: 2023-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
|
||||||
//! WORST CASE MAP SIZE: `1000000`
|
//! WORST CASE MAP SIZE: `1000000`
|
||||||
//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
|
//! HOSTNAME: `runner-yprdrvc7-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
|
||||||
//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-rococo-dev"), DB CACHE: 1024
|
//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-rococo-dev")`, DB CACHE: 1024
|
||||||
|
|
||||||
// Executed Command:
|
// Executed Command:
|
||||||
// ./artifacts/polkadot-parachain
|
// target/production/polkadot-parachain
|
||||||
// benchmark
|
// benchmark
|
||||||
// pallet
|
// pallet
|
||||||
// --chain=bridge-hub-rococo-dev
|
|
||||||
// --execution=wasm
|
|
||||||
// --wasm-execution=compiled
|
|
||||||
// --pallet=pallet_bridge_grandpa
|
|
||||||
// --extrinsic=*
|
|
||||||
// --steps=50
|
// --steps=50
|
||||||
// --repeat=20
|
// --repeat=20
|
||||||
// --json
|
// --extrinsic=*
|
||||||
// --header=./file_header.txt
|
// --wasm-execution=compiled
|
||||||
// --output=./parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_bridge_grandpa.rs
|
// --heap-pages=4096
|
||||||
|
// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json
|
||||||
|
// --pallet=pallet_bridge_grandpa
|
||||||
|
// --chain=bridge-hub-rococo-dev
|
||||||
|
// --header=./cumulus/file_header.txt
|
||||||
|
// --output=./cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/
|
||||||
|
|
||||||
#![cfg_attr(rustfmt, rustfmt_skip)]
|
#![cfg_attr(rustfmt, rustfmt_skip)]
|
||||||
#![allow(unused_parens)]
|
#![allow(unused_parens)]
|
||||||
@@ -47,33 +48,31 @@ use core::marker::PhantomData;
|
|||||||
/// Weight functions for `pallet_bridge_grandpa`.
|
/// Weight functions for `pallet_bridge_grandpa`.
|
||||||
pub struct WeightInfo<T>(PhantomData<T>);
|
pub struct WeightInfo<T>(PhantomData<T>);
|
||||||
impl<T: frame_system::Config> pallet_bridge_grandpa::WeightInfo for WeightInfo<T> {
|
impl<T: frame_system::Config> pallet_bridge_grandpa::WeightInfo for WeightInfo<T> {
|
||||||
/// Storage: BridgeRococoGrandpa PalletOperatingMode (r:1 w:0)
|
/// Storage: `BridgeWestendGrandpa::PalletOperatingMode` (r:1 w:0)
|
||||||
/// Proof: BridgeRococoGrandpa PalletOperatingMode (max_values: Some(1), max_size: Some(1), added: 496, mode: MaxEncodedLen)
|
/// Proof: `BridgeWestendGrandpa::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(1), added: 496, mode: `MaxEncodedLen`)
|
||||||
/// Storage: BridgeRococoGrandpa BestFinalized (r:1 w:1)
|
/// Storage: `BridgeWestendGrandpa::BestFinalized` (r:1 w:1)
|
||||||
/// Proof: BridgeRococoGrandpa BestFinalized (max_values: Some(1), max_size: Some(36), added: 531, mode: MaxEncodedLen)
|
/// Proof: `BridgeWestendGrandpa::BestFinalized` (`max_values`: Some(1), `max_size`: Some(36), added: 531, mode: `MaxEncodedLen`)
|
||||||
/// Storage: BridgeRococoGrandpa CurrentAuthoritySet (r:1 w:0)
|
/// Storage: `BridgeWestendGrandpa::CurrentAuthoritySet` (r:1 w:0)
|
||||||
/// Proof: BridgeRococoGrandpa CurrentAuthoritySet (max_values: Some(1), max_size: Some(50250), added: 50745, mode: MaxEncodedLen)
|
/// Proof: `BridgeWestendGrandpa::CurrentAuthoritySet` (`max_values`: Some(1), `max_size`: Some(50250), added: 50745, mode: `MaxEncodedLen`)
|
||||||
/// Storage: BridgeRococoGrandpa ImportedHashesPointer (r:1 w:1)
|
/// Storage: `BridgeWestendGrandpa::ImportedHashesPointer` (r:1 w:1)
|
||||||
/// Proof: BridgeRococoGrandpa ImportedHashesPointer (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
|
/// Proof: `BridgeWestendGrandpa::ImportedHashesPointer` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
||||||
/// Storage: BridgeRococoGrandpa ImportedHashes (r:1 w:1)
|
/// Storage: `BridgeWestendGrandpa::ImportedHashes` (r:1 w:1)
|
||||||
/// Proof: BridgeRococoGrandpa ImportedHashes (max_values: Some(1024), max_size: Some(36), added: 1521, mode: MaxEncodedLen)
|
/// Proof: `BridgeWestendGrandpa::ImportedHashes` (`max_values`: Some(1024), `max_size`: Some(36), added: 1521, mode: `MaxEncodedLen`)
|
||||||
/// Storage: BridgeRococoGrandpa ImportedHeaders (r:0 w:2)
|
/// Storage: `BridgeWestendGrandpa::ImportedHeaders` (r:0 w:2)
|
||||||
/// Proof: BridgeRococoGrandpa ImportedHeaders (max_values: Some(1024), max_size: Some(68), added: 1553, mode: MaxEncodedLen)
|
/// Proof: `BridgeWestendGrandpa::ImportedHeaders` (`max_values`: Some(1024), `max_size`: Some(68), added: 1553, mode: `MaxEncodedLen`)
|
||||||
/// The range of component `p` is `[1, 838]`.
|
|
||||||
/// The range of component `v` is `[50, 100]`.
|
|
||||||
/// The range of component `p` is `[1, 838]`.
|
/// The range of component `p` is `[1, 838]`.
|
||||||
/// The range of component `v` is `[50, 100]`.
|
/// The range of component `v` is `[50, 100]`.
|
||||||
fn submit_finality_proof(p: u32, v: u32, ) -> Weight {
|
fn submit_finality_proof(p: u32, v: u32, ) -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `231 + p * (60 ±0)`
|
// Measured: `335 + p * (60 ±0)`
|
||||||
// Estimated: `51735`
|
// Estimated: `51735`
|
||||||
// Minimum execution time: 241_332_000 picoseconds.
|
// Minimum execution time: 311_267_000 picoseconds.
|
||||||
Weight::from_parts(69_790_821, 0)
|
Weight::from_parts(313_903_000, 0)
|
||||||
.saturating_add(Weight::from_parts(0, 51735))
|
.saturating_add(Weight::from_parts(0, 51735))
|
||||||
// Standard Error: 6_013
|
// Standard Error: 4_779
|
||||||
.saturating_add(Weight::from_parts(47_580_554, 0).saturating_mul(p.into()))
|
.saturating_add(Weight::from_parts(55_265_953, 0).saturating_mul(p.into()))
|
||||||
// Standard Error: 100_298
|
// Standard Error: 36_883
|
||||||
.saturating_add(Weight::from_parts(1_213_475, 0).saturating_mul(v.into()))
|
.saturating_add(Weight::from_parts(153_660, 0).saturating_mul(v.into()))
|
||||||
.saturating_add(T::DbWeight::get().reads(5))
|
.saturating_add(T::DbWeight::get().reads(5))
|
||||||
.saturating_add(T::DbWeight::get().writes(5))
|
.saturating_add(T::DbWeight::get().writes(5))
|
||||||
}
|
}
|
||||||
|
|||||||
-82
@@ -1,82 +0,0 @@
|
|||||||
// Copyright (C) Parity Technologies (UK) Ltd.
|
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
|
||||||
|
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
// you may not use this file except in compliance with the License.
|
|
||||||
// You may obtain a copy of the License at
|
|
||||||
//
|
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
// See the License for the specific language governing permissions and
|
|
||||||
// limitations under the License.
|
|
||||||
|
|
||||||
//! Autogenerated weights for `pallet_bridge_grandpa`
|
|
||||||
//!
|
|
||||||
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
|
|
||||||
//! DATE: 2023-10-27, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
|
|
||||||
//! WORST CASE MAP SIZE: `1000000`
|
|
||||||
//! HOSTNAME: `runner-vmdtonbz-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
|
|
||||||
//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-rococo-dev")`, DB CACHE: 1024
|
|
||||||
|
|
||||||
// Executed Command:
|
|
||||||
// target/production/polkadot-parachain
|
|
||||||
// benchmark
|
|
||||||
// pallet
|
|
||||||
// --steps=50
|
|
||||||
// --repeat=20
|
|
||||||
// --extrinsic=*
|
|
||||||
// --wasm-execution=compiled
|
|
||||||
// --heap-pages=4096
|
|
||||||
// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json
|
|
||||||
// --pallet=pallet_bridge_grandpa
|
|
||||||
// --chain=bridge-hub-rococo-dev
|
|
||||||
// --header=./cumulus/file_header.txt
|
|
||||||
// --output=./cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/
|
|
||||||
|
|
||||||
#![cfg_attr(rustfmt, rustfmt_skip)]
|
|
||||||
#![allow(unused_parens)]
|
|
||||||
#![allow(unused_imports)]
|
|
||||||
#![allow(missing_docs)]
|
|
||||||
|
|
||||||
use frame_support::{traits::Get, weights::Weight};
|
|
||||||
use core::marker::PhantomData;
|
|
||||||
|
|
||||||
/// Weight functions for `pallet_bridge_grandpa`.
|
|
||||||
pub struct WeightInfo<T>(PhantomData<T>);
|
|
||||||
impl<T: frame_system::Config> pallet_bridge_grandpa::WeightInfo for WeightInfo<T> {
|
|
||||||
/// Storage: `BridgeRococoGrandpa::PalletOperatingMode` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeRococoGrandpa::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(1), added: 496, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeRococoGrandpa::BestFinalized` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeRococoGrandpa::BestFinalized` (`max_values`: Some(1), `max_size`: Some(36), added: 531, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeRococoGrandpa::CurrentAuthoritySet` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeRococoGrandpa::CurrentAuthoritySet` (`max_values`: Some(1), `max_size`: Some(50250), added: 50745, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeRococoGrandpa::ImportedHashesPointer` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeRococoGrandpa::ImportedHashesPointer` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeRococoGrandpa::ImportedHashes` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeRococoGrandpa::ImportedHashes` (`max_values`: Some(1024), `max_size`: Some(36), added: 1521, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeRococoGrandpa::ImportedHeaders` (r:0 w:2)
|
|
||||||
/// Proof: `BridgeRococoGrandpa::ImportedHeaders` (`max_values`: Some(1024), `max_size`: Some(68), added: 1553, mode: `MaxEncodedLen`)
|
|
||||||
/// The range of component `p` is `[1, 838]`.
|
|
||||||
/// The range of component `v` is `[50, 100]`.
|
|
||||||
/// The range of component `p` is `[1, 838]`.
|
|
||||||
/// The range of component `v` is `[50, 100]`.
|
|
||||||
/// The range of component `p` is `[1, 838]`.
|
|
||||||
/// The range of component `v` is `[50, 100]`.
|
|
||||||
fn submit_finality_proof(p: u32, v: u32, ) -> Weight {
|
|
||||||
// Proof Size summary in bytes:
|
|
||||||
// Measured: `268 + p * (60 ±0)`
|
|
||||||
// Estimated: `51735`
|
|
||||||
// Minimum execution time: 304_726_000 picoseconds.
|
|
||||||
Weight::from_parts(16_868_060, 0)
|
|
||||||
.saturating_add(Weight::from_parts(0, 51735))
|
|
||||||
// Standard Error: 2_802
|
|
||||||
.saturating_add(Weight::from_parts(55_200_017, 0).saturating_mul(p.into()))
|
|
||||||
// Standard Error: 46_745
|
|
||||||
.saturating_add(Weight::from_parts(2_689_151, 0).saturating_mul(v.into()))
|
|
||||||
.saturating_add(T::DbWeight::get().reads(5))
|
|
||||||
.saturating_add(T::DbWeight::get().writes(5))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-83
@@ -1,83 +0,0 @@
|
|||||||
// Copyright (C) Parity Technologies (UK) Ltd.
|
|
||||||
// This file is part of Cumulus.
|
|
||||||
|
|
||||||
// Cumulus is free software: you can redistribute it and/or modify
|
|
||||||
// it under the terms of the GNU General Public License as published by
|
|
||||||
// the Free Software Foundation, either version 3 of the License, or
|
|
||||||
// (at your option) any later version.
|
|
||||||
|
|
||||||
// Cumulus is distributed in the hope that it will be useful,
|
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
// GNU General Public License for more details.
|
|
||||||
|
|
||||||
// You should have received a copy of the GNU General Public License
|
|
||||||
// along with Cumulus. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
//! Autogenerated weights for `pallet_bridge_grandpa`
|
|
||||||
//!
|
|
||||||
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
|
|
||||||
//! DATE: 2023-10-27, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
|
|
||||||
//! WORST CASE MAP SIZE: `1000000`
|
|
||||||
//! HOSTNAME: `runner-vmdtonbz-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
|
|
||||||
//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-rococo-dev")`, DB CACHE: 1024
|
|
||||||
|
|
||||||
// Executed Command:
|
|
||||||
// target/production/polkadot-parachain
|
|
||||||
// benchmark
|
|
||||||
// pallet
|
|
||||||
// --steps=50
|
|
||||||
// --repeat=20
|
|
||||||
// --extrinsic=*
|
|
||||||
// --wasm-execution=compiled
|
|
||||||
// --heap-pages=4096
|
|
||||||
// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json
|
|
||||||
// --pallet=pallet_bridge_grandpa
|
|
||||||
// --chain=bridge-hub-rococo-dev
|
|
||||||
// --header=./cumulus/file_header.txt
|
|
||||||
// --output=./cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/
|
|
||||||
|
|
||||||
#![cfg_attr(rustfmt, rustfmt_skip)]
|
|
||||||
#![allow(unused_parens)]
|
|
||||||
#![allow(unused_imports)]
|
|
||||||
#![allow(missing_docs)]
|
|
||||||
|
|
||||||
use frame_support::{traits::Get, weights::Weight};
|
|
||||||
use core::marker::PhantomData;
|
|
||||||
|
|
||||||
/// Weight functions for `pallet_bridge_grandpa`.
|
|
||||||
pub struct WeightInfo<T>(PhantomData<T>);
|
|
||||||
impl<T: frame_system::Config> pallet_bridge_grandpa::WeightInfo for WeightInfo<T> {
|
|
||||||
/// Storage: `BridgeWestendGrandpa::PalletOperatingMode` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeWestendGrandpa::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(1), added: 496, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeWestendGrandpa::BestFinalized` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeWestendGrandpa::BestFinalized` (`max_values`: Some(1), `max_size`: Some(36), added: 531, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeWestendGrandpa::CurrentAuthoritySet` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeWestendGrandpa::CurrentAuthoritySet` (`max_values`: Some(1), `max_size`: Some(50250), added: 50745, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeWestendGrandpa::ImportedHashesPointer` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeWestendGrandpa::ImportedHashesPointer` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeWestendGrandpa::ImportedHashes` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeWestendGrandpa::ImportedHashes` (`max_values`: Some(1024), `max_size`: Some(36), added: 1521, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeWestendGrandpa::ImportedHeaders` (r:0 w:2)
|
|
||||||
/// Proof: `BridgeWestendGrandpa::ImportedHeaders` (`max_values`: Some(1024), `max_size`: Some(68), added: 1553, mode: `MaxEncodedLen`)
|
|
||||||
/// The range of component `p` is `[1, 838]`.
|
|
||||||
/// The range of component `v` is `[50, 100]`.
|
|
||||||
/// The range of component `p` is `[1, 838]`.
|
|
||||||
/// The range of component `v` is `[50, 100]`.
|
|
||||||
/// The range of component `p` is `[1, 838]`.
|
|
||||||
/// The range of component `v` is `[50, 100]`.
|
|
||||||
fn submit_finality_proof(p: u32, v: u32, ) -> Weight {
|
|
||||||
// Proof Size summary in bytes:
|
|
||||||
// Measured: `335 + p * (60 ±0)`
|
|
||||||
// Estimated: `51735`
|
|
||||||
// Minimum execution time: 305_905_000 picoseconds.
|
|
||||||
Weight::from_parts(2_636_863, 0)
|
|
||||||
.saturating_add(Weight::from_parts(0, 51735))
|
|
||||||
// Standard Error: 2_724
|
|
||||||
.saturating_add(Weight::from_parts(55_199_477, 0).saturating_mul(p.into()))
|
|
||||||
// Standard Error: 45_444
|
|
||||||
.saturating_add(Weight::from_parts(2_835_596, 0).saturating_mul(v.into()))
|
|
||||||
.saturating_add(T::DbWeight::get().reads(5))
|
|
||||||
.saturating_add(T::DbWeight::get().writes(5))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-82
@@ -1,82 +0,0 @@
|
|||||||
// Copyright (C) Parity Technologies (UK) Ltd.
|
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
|
||||||
|
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
// you may not use this file except in compliance with the License.
|
|
||||||
// You may obtain a copy of the License at
|
|
||||||
//
|
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
// See the License for the specific language governing permissions and
|
|
||||||
// limitations under the License.
|
|
||||||
|
|
||||||
//! Autogenerated weights for `pallet_bridge_grandpa`
|
|
||||||
//!
|
|
||||||
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
|
|
||||||
//! DATE: 2023-10-27, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
|
|
||||||
//! WORST CASE MAP SIZE: `1000000`
|
|
||||||
//! HOSTNAME: `runner-vmdtonbz-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
|
|
||||||
//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-rococo-dev")`, DB CACHE: 1024
|
|
||||||
|
|
||||||
// Executed Command:
|
|
||||||
// target/production/polkadot-parachain
|
|
||||||
// benchmark
|
|
||||||
// pallet
|
|
||||||
// --steps=50
|
|
||||||
// --repeat=20
|
|
||||||
// --extrinsic=*
|
|
||||||
// --wasm-execution=compiled
|
|
||||||
// --heap-pages=4096
|
|
||||||
// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json
|
|
||||||
// --pallet=pallet_bridge_grandpa
|
|
||||||
// --chain=bridge-hub-rococo-dev
|
|
||||||
// --header=./cumulus/file_header.txt
|
|
||||||
// --output=./cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/
|
|
||||||
|
|
||||||
#![cfg_attr(rustfmt, rustfmt_skip)]
|
|
||||||
#![allow(unused_parens)]
|
|
||||||
#![allow(unused_imports)]
|
|
||||||
#![allow(missing_docs)]
|
|
||||||
|
|
||||||
use frame_support::{traits::Get, weights::Weight};
|
|
||||||
use core::marker::PhantomData;
|
|
||||||
|
|
||||||
/// Weight functions for `pallet_bridge_grandpa`.
|
|
||||||
pub struct WeightInfo<T>(PhantomData<T>);
|
|
||||||
impl<T: frame_system::Config> pallet_bridge_grandpa::WeightInfo for WeightInfo<T> {
|
|
||||||
/// Storage: `BridgeWococoGrandpa::PalletOperatingMode` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeWococoGrandpa::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(1), added: 496, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeWococoGrandpa::BestFinalized` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeWococoGrandpa::BestFinalized` (`max_values`: Some(1), `max_size`: Some(36), added: 531, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeWococoGrandpa::CurrentAuthoritySet` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeWococoGrandpa::CurrentAuthoritySet` (`max_values`: Some(1), `max_size`: Some(50250), added: 50745, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeWococoGrandpa::ImportedHashesPointer` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeWococoGrandpa::ImportedHashesPointer` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeWococoGrandpa::ImportedHashes` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeWococoGrandpa::ImportedHashes` (`max_values`: Some(1024), `max_size`: Some(36), added: 1521, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeWococoGrandpa::ImportedHeaders` (r:0 w:2)
|
|
||||||
/// Proof: `BridgeWococoGrandpa::ImportedHeaders` (`max_values`: Some(1024), `max_size`: Some(68), added: 1553, mode: `MaxEncodedLen`)
|
|
||||||
/// The range of component `p` is `[1, 838]`.
|
|
||||||
/// The range of component `v` is `[50, 100]`.
|
|
||||||
/// The range of component `p` is `[1, 838]`.
|
|
||||||
/// The range of component `v` is `[50, 100]`.
|
|
||||||
/// The range of component `p` is `[1, 838]`.
|
|
||||||
/// The range of component `v` is `[50, 100]`.
|
|
||||||
fn submit_finality_proof(p: u32, v: u32, ) -> Weight {
|
|
||||||
// Proof Size summary in bytes:
|
|
||||||
// Measured: `302 + p * (60 ±0)`
|
|
||||||
// Estimated: `51735`
|
|
||||||
// Minimum execution time: 305_146_000 picoseconds.
|
|
||||||
Weight::from_parts(308_711_000, 0)
|
|
||||||
.saturating_add(Weight::from_parts(0, 51735))
|
|
||||||
// Standard Error: 2_651
|
|
||||||
.saturating_add(Weight::from_parts(55_082_480, 0).saturating_mul(p.into()))
|
|
||||||
// Standard Error: 20_462
|
|
||||||
.saturating_add(Weight::from_parts(298_367, 0).saturating_mul(v.into()))
|
|
||||||
.saturating_add(T::DbWeight::get().reads(5))
|
|
||||||
.saturating_add(T::DbWeight::get().writes(5))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+167
-155
@@ -1,40 +1,41 @@
|
|||||||
// Copyright (C) Parity Technologies (UK) Ltd.
|
// Copyright (C) Parity Technologies (UK) Ltd.
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// This file is part of Cumulus.
|
||||||
|
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
// Cumulus is free software: you can redistribute it and/or modify
|
||||||
// you may not use this file except in compliance with the License.
|
// it under the terms of the GNU General Public License as published by
|
||||||
// You may obtain a copy of the License at
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
//
|
// (at your option) any later version.
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
// Cumulus is distributed in the hope that it will be useful,
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
// GNU General Public License for more details.
|
||||||
// See the License for the specific language governing permissions and
|
|
||||||
// limitations under the License.
|
// You should have received a copy of the GNU General Public License
|
||||||
|
// along with Cumulus. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
//! Autogenerated weights for `pallet_bridge_messages`
|
//! Autogenerated weights for `pallet_bridge_messages`
|
||||||
//!
|
//!
|
||||||
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
|
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
|
||||||
//! DATE: 2023-05-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
|
//! DATE: 2023-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
|
||||||
//! WORST CASE MAP SIZE: `1000000`
|
//! WORST CASE MAP SIZE: `1000000`
|
||||||
//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
|
//! HOSTNAME: `runner-yprdrvc7-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
|
||||||
//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-rococo-dev"), DB CACHE: 1024
|
//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-rococo-dev")`, DB CACHE: 1024
|
||||||
|
|
||||||
// Executed Command:
|
// Executed Command:
|
||||||
// ./artifacts/polkadot-parachain
|
// target/production/polkadot-parachain
|
||||||
// benchmark
|
// benchmark
|
||||||
// pallet
|
// pallet
|
||||||
// --chain=bridge-hub-rococo-dev
|
|
||||||
// --execution=wasm
|
|
||||||
// --wasm-execution=compiled
|
|
||||||
// --pallet=pallet_bridge_messages
|
|
||||||
// --extrinsic=*
|
|
||||||
// --steps=50
|
// --steps=50
|
||||||
// --repeat=20
|
// --repeat=20
|
||||||
// --json
|
// --extrinsic=*
|
||||||
// --header=./file_header.txt
|
// --wasm-execution=compiled
|
||||||
// --output=./parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_bridge_messages.rs
|
// --heap-pages=4096
|
||||||
|
// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json
|
||||||
|
// --pallet=pallet_bridge_messages
|
||||||
|
// --chain=bridge-hub-rococo-dev
|
||||||
|
// --header=./cumulus/file_header.txt
|
||||||
|
// --output=./cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/
|
||||||
|
|
||||||
#![cfg_attr(rustfmt, rustfmt_skip)]
|
#![cfg_attr(rustfmt, rustfmt_skip)]
|
||||||
#![allow(unused_parens)]
|
#![allow(unused_parens)]
|
||||||
@@ -47,184 +48,195 @@ use core::marker::PhantomData;
|
|||||||
/// Weight functions for `pallet_bridge_messages`.
|
/// Weight functions for `pallet_bridge_messages`.
|
||||||
pub struct WeightInfo<T>(PhantomData<T>);
|
pub struct WeightInfo<T>(PhantomData<T>);
|
||||||
impl<T: frame_system::Config> pallet_bridge_messages::WeightInfo for WeightInfo<T> {
|
impl<T: frame_system::Config> pallet_bridge_messages::WeightInfo for WeightInfo<T> {
|
||||||
/// Storage: BridgeRococoMessages PalletOperatingMode (r:1 w:0)
|
/// Storage: `BridgeWestendMessages::PalletOperatingMode` (r:1 w:0)
|
||||||
/// Proof: BridgeRococoMessages PalletOperatingMode (max_values: Some(1), max_size: Some(2), added: 497, mode: MaxEncodedLen)
|
/// Proof: `BridgeWestendMessages::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`)
|
||||||
/// Storage: BridgeRococoParachain ImportedParaHeads (r:1 w:0)
|
/// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:0)
|
||||||
/// Proof: BridgeRococoParachain ImportedParaHeads (max_values: Some(64), max_size: Some(196), added: 1186, mode: MaxEncodedLen)
|
/// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
||||||
/// Storage: BridgeRococoMessages InboundLanes (r:1 w:1)
|
/// Storage: `BridgeWestendParachains::ImportedParaHeads` (r:1 w:0)
|
||||||
/// Proof: BridgeRococoMessages InboundLanes (max_values: None, max_size: Some(49180), added: 51655, mode: MaxEncodedLen)
|
/// Proof: `BridgeWestendParachains::ImportedParaHeads` (`max_values`: Some(64), `max_size`: Some(196), added: 1186, mode: `MaxEncodedLen`)
|
||||||
/// Storage: ParachainInfo ParachainId (r:1 w:0)
|
/// Storage: `BridgeWestendMessages::InboundLanes` (r:1 w:1)
|
||||||
/// Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
|
/// Proof: `BridgeWestendMessages::InboundLanes` (`max_values`: None, `max_size`: Some(49180), added: 51655, mode: `MaxEncodedLen`)
|
||||||
|
/// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
||||||
|
/// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
||||||
fn receive_single_message_proof() -> Weight {
|
fn receive_single_message_proof() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `367`
|
// Measured: `538`
|
||||||
// Estimated: `52645`
|
// Estimated: `52645`
|
||||||
// Minimum execution time: 43_187_000 picoseconds.
|
// Minimum execution time: 41_577_000 picoseconds.
|
||||||
Weight::from_parts(43_681_000, 0)
|
Weight::from_parts(42_621_000, 0)
|
||||||
.saturating_add(Weight::from_parts(0, 52645))
|
.saturating_add(Weight::from_parts(0, 52645))
|
||||||
.saturating_add(T::DbWeight::get().reads(4))
|
.saturating_add(T::DbWeight::get().reads(5))
|
||||||
.saturating_add(T::DbWeight::get().writes(1))
|
.saturating_add(T::DbWeight::get().writes(1))
|
||||||
}
|
}
|
||||||
/// Storage: BridgeRococoMessages PalletOperatingMode (r:1 w:0)
|
/// Storage: `BridgeWestendMessages::PalletOperatingMode` (r:1 w:0)
|
||||||
/// Proof: BridgeRococoMessages PalletOperatingMode (max_values: Some(1), max_size: Some(2), added: 497, mode: MaxEncodedLen)
|
/// Proof: `BridgeWestendMessages::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`)
|
||||||
/// Storage: BridgeRococoParachain ImportedParaHeads (r:1 w:0)
|
/// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:0)
|
||||||
/// Proof: BridgeRococoParachain ImportedParaHeads (max_values: Some(64), max_size: Some(196), added: 1186, mode: MaxEncodedLen)
|
/// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
||||||
/// Storage: BridgeRococoMessages InboundLanes (r:1 w:1)
|
/// Storage: `BridgeWestendParachains::ImportedParaHeads` (r:1 w:0)
|
||||||
/// Proof: BridgeRococoMessages InboundLanes (max_values: None, max_size: Some(49180), added: 51655, mode: MaxEncodedLen)
|
/// Proof: `BridgeWestendParachains::ImportedParaHeads` (`max_values`: Some(64), `max_size`: Some(196), added: 1186, mode: `MaxEncodedLen`)
|
||||||
/// Storage: ParachainInfo ParachainId (r:1 w:0)
|
/// Storage: `BridgeWestendMessages::InboundLanes` (r:1 w:1)
|
||||||
/// Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
|
/// Proof: `BridgeWestendMessages::InboundLanes` (`max_values`: None, `max_size`: Some(49180), added: 51655, mode: `MaxEncodedLen`)
|
||||||
|
/// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
||||||
|
/// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
||||||
fn receive_two_messages_proof() -> Weight {
|
fn receive_two_messages_proof() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `367`
|
// Measured: `538`
|
||||||
// Estimated: `52645`
|
// Estimated: `52645`
|
||||||
// Minimum execution time: 54_131_000 picoseconds.
|
// Minimum execution time: 52_880_000 picoseconds.
|
||||||
Weight::from_parts(54_813_000, 0)
|
Weight::from_parts(53_697_000, 0)
|
||||||
.saturating_add(Weight::from_parts(0, 52645))
|
.saturating_add(Weight::from_parts(0, 52645))
|
||||||
.saturating_add(T::DbWeight::get().reads(4))
|
.saturating_add(T::DbWeight::get().reads(5))
|
||||||
.saturating_add(T::DbWeight::get().writes(1))
|
.saturating_add(T::DbWeight::get().writes(1))
|
||||||
}
|
}
|
||||||
/// Storage: BridgeRococoMessages PalletOperatingMode (r:1 w:0)
|
/// Storage: `BridgeWestendMessages::PalletOperatingMode` (r:1 w:0)
|
||||||
/// Proof: BridgeRococoMessages PalletOperatingMode (max_values: Some(1), max_size: Some(2), added: 497, mode: MaxEncodedLen)
|
/// Proof: `BridgeWestendMessages::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`)
|
||||||
/// Storage: BridgeRococoParachain ImportedParaHeads (r:1 w:0)
|
/// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:0)
|
||||||
/// Proof: BridgeRococoParachain ImportedParaHeads (max_values: Some(64), max_size: Some(196), added: 1186, mode: MaxEncodedLen)
|
/// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
||||||
/// Storage: BridgeRococoMessages InboundLanes (r:1 w:1)
|
/// Storage: `BridgeWestendParachains::ImportedParaHeads` (r:1 w:0)
|
||||||
/// Proof: BridgeRococoMessages InboundLanes (max_values: None, max_size: Some(49180), added: 51655, mode: MaxEncodedLen)
|
/// Proof: `BridgeWestendParachains::ImportedParaHeads` (`max_values`: Some(64), `max_size`: Some(196), added: 1186, mode: `MaxEncodedLen`)
|
||||||
/// Storage: ParachainInfo ParachainId (r:1 w:0)
|
/// Storage: `BridgeWestendMessages::InboundLanes` (r:1 w:1)
|
||||||
/// Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
|
/// Proof: `BridgeWestendMessages::InboundLanes` (`max_values`: None, `max_size`: Some(49180), added: 51655, mode: `MaxEncodedLen`)
|
||||||
|
/// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
||||||
|
/// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
||||||
fn receive_single_message_proof_with_outbound_lane_state() -> Weight {
|
fn receive_single_message_proof_with_outbound_lane_state() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `367`
|
// Measured: `538`
|
||||||
// Estimated: `52645`
|
// Estimated: `52645`
|
||||||
// Minimum execution time: 48_120_000 picoseconds.
|
// Minimum execution time: 47_424_000 picoseconds.
|
||||||
Weight::from_parts(48_733_000, 0)
|
Weight::from_parts(48_445_000, 0)
|
||||||
|
.saturating_add(Weight::from_parts(0, 52645))
|
||||||
|
.saturating_add(T::DbWeight::get().reads(5))
|
||||||
|
.saturating_add(T::DbWeight::get().writes(1))
|
||||||
|
}
|
||||||
|
/// Storage: `BridgeWestendMessages::PalletOperatingMode` (r:1 w:0)
|
||||||
|
/// Proof: `BridgeWestendMessages::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`)
|
||||||
|
/// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:0)
|
||||||
|
/// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
||||||
|
/// Storage: `BridgeWestendParachains::ImportedParaHeads` (r:1 w:0)
|
||||||
|
/// Proof: `BridgeWestendParachains::ImportedParaHeads` (`max_values`: Some(64), `max_size`: Some(196), added: 1186, mode: `MaxEncodedLen`)
|
||||||
|
/// Storage: `BridgeWestendMessages::InboundLanes` (r:1 w:1)
|
||||||
|
/// Proof: `BridgeWestendMessages::InboundLanes` (`max_values`: None, `max_size`: Some(49180), added: 51655, mode: `MaxEncodedLen`)
|
||||||
|
fn receive_single_message_proof_1_kb() -> Weight {
|
||||||
|
// Proof Size summary in bytes:
|
||||||
|
// Measured: `506`
|
||||||
|
// Estimated: `52645`
|
||||||
|
// Minimum execution time: 40_619_000 picoseconds.
|
||||||
|
Weight::from_parts(42_262_000, 0)
|
||||||
.saturating_add(Weight::from_parts(0, 52645))
|
.saturating_add(Weight::from_parts(0, 52645))
|
||||||
.saturating_add(T::DbWeight::get().reads(4))
|
.saturating_add(T::DbWeight::get().reads(4))
|
||||||
.saturating_add(T::DbWeight::get().writes(1))
|
.saturating_add(T::DbWeight::get().writes(1))
|
||||||
}
|
}
|
||||||
/// Storage: BridgeRococoMessages PalletOperatingMode (r:1 w:0)
|
/// Storage: `BridgeWestendMessages::PalletOperatingMode` (r:1 w:0)
|
||||||
/// Proof: BridgeRococoMessages PalletOperatingMode (max_values: Some(1), max_size: Some(2), added: 497, mode: MaxEncodedLen)
|
/// Proof: `BridgeWestendMessages::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`)
|
||||||
/// Storage: BridgeRococoParachain ImportedParaHeads (r:1 w:0)
|
/// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:0)
|
||||||
/// Proof: BridgeRococoParachain ImportedParaHeads (max_values: Some(64), max_size: Some(196), added: 1186, mode: MaxEncodedLen)
|
/// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
||||||
/// Storage: BridgeRococoMessages InboundLanes (r:1 w:1)
|
/// Storage: `BridgeWestendParachains::ImportedParaHeads` (r:1 w:0)
|
||||||
/// Proof: BridgeRococoMessages InboundLanes (max_values: None, max_size: Some(49180), added: 51655, mode: MaxEncodedLen)
|
/// Proof: `BridgeWestendParachains::ImportedParaHeads` (`max_values`: Some(64), `max_size`: Some(196), added: 1186, mode: `MaxEncodedLen`)
|
||||||
fn receive_single_message_proof_1_kb() -> Weight {
|
/// Storage: `BridgeWestendMessages::InboundLanes` (r:1 w:1)
|
||||||
// Proof Size summary in bytes:
|
/// Proof: `BridgeWestendMessages::InboundLanes` (`max_values`: None, `max_size`: Some(49180), added: 51655, mode: `MaxEncodedLen`)
|
||||||
// Measured: `335`
|
|
||||||
// Estimated: `52645`
|
|
||||||
// Minimum execution time: 41_028_000 picoseconds.
|
|
||||||
Weight::from_parts(41_635_000, 0)
|
|
||||||
.saturating_add(Weight::from_parts(0, 52645))
|
|
||||||
.saturating_add(T::DbWeight::get().reads(3))
|
|
||||||
.saturating_add(T::DbWeight::get().writes(1))
|
|
||||||
}
|
|
||||||
/// Storage: BridgeRococoMessages PalletOperatingMode (r:1 w:0)
|
|
||||||
/// Proof: BridgeRococoMessages PalletOperatingMode (max_values: Some(1), max_size: Some(2), added: 497, mode: MaxEncodedLen)
|
|
||||||
/// Storage: BridgeRococoParachain ImportedParaHeads (r:1 w:0)
|
|
||||||
/// Proof: BridgeRococoParachain ImportedParaHeads (max_values: Some(64), max_size: Some(196), added: 1186, mode: MaxEncodedLen)
|
|
||||||
/// Storage: BridgeRococoMessages InboundLanes (r:1 w:1)
|
|
||||||
/// Proof: BridgeRococoMessages InboundLanes (max_values: None, max_size: Some(49180), added: 51655, mode: MaxEncodedLen)
|
|
||||||
fn receive_single_message_proof_16_kb() -> Weight {
|
fn receive_single_message_proof_16_kb() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `335`
|
// Measured: `506`
|
||||||
// Estimated: `52645`
|
// Estimated: `52645`
|
||||||
// Minimum execution time: 68_499_000 picoseconds.
|
// Minimum execution time: 74_603_000 picoseconds.
|
||||||
Weight::from_parts(69_263_000, 0)
|
Weight::from_parts(78_209_000, 0)
|
||||||
.saturating_add(Weight::from_parts(0, 52645))
|
.saturating_add(Weight::from_parts(0, 52645))
|
||||||
.saturating_add(T::DbWeight::get().reads(3))
|
.saturating_add(T::DbWeight::get().reads(4))
|
||||||
.saturating_add(T::DbWeight::get().writes(1))
|
.saturating_add(T::DbWeight::get().writes(1))
|
||||||
}
|
}
|
||||||
/// Storage: BridgeRococoMessages PalletOperatingMode (r:1 w:0)
|
/// Storage: `BridgeWestendMessages::PalletOperatingMode` (r:1 w:0)
|
||||||
/// Proof: BridgeRococoMessages PalletOperatingMode (max_values: Some(1), max_size: Some(2), added: 497, mode: MaxEncodedLen)
|
/// Proof: `BridgeWestendMessages::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`)
|
||||||
/// Storage: BridgeRococoParachain ImportedParaHeads (r:1 w:0)
|
/// Storage: `BridgeWestendParachains::ImportedParaHeads` (r:1 w:0)
|
||||||
/// Proof: BridgeRococoParachain ImportedParaHeads (max_values: Some(64), max_size: Some(196), added: 1186, mode: MaxEncodedLen)
|
/// Proof: `BridgeWestendParachains::ImportedParaHeads` (`max_values`: Some(64), `max_size`: Some(196), added: 1186, mode: `MaxEncodedLen`)
|
||||||
/// Storage: BridgeRococoMessages OutboundLanes (r:1 w:1)
|
/// Storage: `BridgeWestendMessages::OutboundLanes` (r:1 w:1)
|
||||||
/// Proof: BridgeRococoMessages OutboundLanes (max_values: Some(1), max_size: Some(44), added: 539, mode: MaxEncodedLen)
|
/// Proof: `BridgeWestendMessages::OutboundLanes` (`max_values`: Some(1), `max_size`: Some(44), added: 539, mode: `MaxEncodedLen`)
|
||||||
/// Storage: unknown `0x6e0a18b62a1de81c5f519181cc611e18` (r:1 w:0)
|
/// Storage: UNKNOWN KEY `0x6e0a18b62a1de81c5f519181cc611e18` (r:1 w:0)
|
||||||
/// Proof Skipped: unknown `0x6e0a18b62a1de81c5f519181cc611e18` (r:1 w:0)
|
/// Proof: UNKNOWN KEY `0x6e0a18b62a1de81c5f519181cc611e18` (r:1 w:0)
|
||||||
/// Storage: BridgeRelayers RelayerRewards (r:1 w:1)
|
/// Storage: `BridgeRelayers::RelayerRewards` (r:1 w:1)
|
||||||
/// Proof: BridgeRelayers RelayerRewards (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
|
/// Proof: `BridgeRelayers::RelayerRewards` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
|
||||||
fn receive_delivery_proof_for_single_message() -> Weight {
|
fn receive_delivery_proof_for_single_message() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `339`
|
// Measured: `377`
|
||||||
// Estimated: `3804`
|
// Estimated: `3842`
|
||||||
// Minimum execution time: 32_277_000 picoseconds.
|
// Minimum execution time: 33_762_000 picoseconds.
|
||||||
Weight::from_parts(32_880_000, 0)
|
Weight::from_parts(34_405_000, 0)
|
||||||
.saturating_add(Weight::from_parts(0, 3804))
|
.saturating_add(Weight::from_parts(0, 3842))
|
||||||
.saturating_add(T::DbWeight::get().reads(5))
|
.saturating_add(T::DbWeight::get().reads(5))
|
||||||
.saturating_add(T::DbWeight::get().writes(2))
|
.saturating_add(T::DbWeight::get().writes(2))
|
||||||
}
|
}
|
||||||
/// Storage: BridgeRococoMessages PalletOperatingMode (r:1 w:0)
|
/// Storage: `BridgeWestendMessages::PalletOperatingMode` (r:1 w:0)
|
||||||
/// Proof: BridgeRococoMessages PalletOperatingMode (max_values: Some(1), max_size: Some(2), added: 497, mode: MaxEncodedLen)
|
/// Proof: `BridgeWestendMessages::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`)
|
||||||
/// Storage: BridgeRococoParachain ImportedParaHeads (r:1 w:0)
|
/// Storage: `BridgeWestendParachains::ImportedParaHeads` (r:1 w:0)
|
||||||
/// Proof: BridgeRococoParachain ImportedParaHeads (max_values: Some(64), max_size: Some(196), added: 1186, mode: MaxEncodedLen)
|
/// Proof: `BridgeWestendParachains::ImportedParaHeads` (`max_values`: Some(64), `max_size`: Some(196), added: 1186, mode: `MaxEncodedLen`)
|
||||||
/// Storage: BridgeRococoMessages OutboundLanes (r:1 w:1)
|
/// Storage: `BridgeWestendMessages::OutboundLanes` (r:1 w:1)
|
||||||
/// Proof: BridgeRococoMessages OutboundLanes (max_values: Some(1), max_size: Some(44), added: 539, mode: MaxEncodedLen)
|
/// Proof: `BridgeWestendMessages::OutboundLanes` (`max_values`: Some(1), `max_size`: Some(44), added: 539, mode: `MaxEncodedLen`)
|
||||||
/// Storage: unknown `0x6e0a18b62a1de81c5f519181cc611e18` (r:1 w:0)
|
/// Storage: UNKNOWN KEY `0x6e0a18b62a1de81c5f519181cc611e18` (r:1 w:0)
|
||||||
/// Proof Skipped: unknown `0x6e0a18b62a1de81c5f519181cc611e18` (r:1 w:0)
|
/// Proof: UNKNOWN KEY `0x6e0a18b62a1de81c5f519181cc611e18` (r:1 w:0)
|
||||||
/// Storage: BridgeRelayers RelayerRewards (r:1 w:1)
|
/// Storage: `BridgeRelayers::RelayerRewards` (r:1 w:1)
|
||||||
/// Proof: BridgeRelayers RelayerRewards (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
|
/// Proof: `BridgeRelayers::RelayerRewards` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
|
||||||
fn receive_delivery_proof_for_two_messages_by_single_relayer() -> Weight {
|
fn receive_delivery_proof_for_two_messages_by_single_relayer() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `339`
|
// Measured: `377`
|
||||||
// Estimated: `3804`
|
// Estimated: `3842`
|
||||||
// Minimum execution time: 32_504_000 picoseconds.
|
// Minimum execution time: 33_805_000 picoseconds.
|
||||||
Weight::from_parts(33_085_000, 0)
|
Weight::from_parts(35_051_000, 0)
|
||||||
.saturating_add(Weight::from_parts(0, 3804))
|
.saturating_add(Weight::from_parts(0, 3842))
|
||||||
.saturating_add(T::DbWeight::get().reads(5))
|
.saturating_add(T::DbWeight::get().reads(5))
|
||||||
.saturating_add(T::DbWeight::get().writes(2))
|
.saturating_add(T::DbWeight::get().writes(2))
|
||||||
}
|
}
|
||||||
/// Storage: BridgeRococoMessages PalletOperatingMode (r:1 w:0)
|
/// Storage: `BridgeWestendMessages::PalletOperatingMode` (r:1 w:0)
|
||||||
/// Proof: BridgeRococoMessages PalletOperatingMode (max_values: Some(1), max_size: Some(2), added: 497, mode: MaxEncodedLen)
|
/// Proof: `BridgeWestendMessages::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`)
|
||||||
/// Storage: BridgeRococoParachain ImportedParaHeads (r:1 w:0)
|
/// Storage: `BridgeWestendParachains::ImportedParaHeads` (r:1 w:0)
|
||||||
/// Proof: BridgeRococoParachain ImportedParaHeads (max_values: Some(64), max_size: Some(196), added: 1186, mode: MaxEncodedLen)
|
/// Proof: `BridgeWestendParachains::ImportedParaHeads` (`max_values`: Some(64), `max_size`: Some(196), added: 1186, mode: `MaxEncodedLen`)
|
||||||
/// Storage: BridgeRococoMessages OutboundLanes (r:1 w:1)
|
/// Storage: `BridgeWestendMessages::OutboundLanes` (r:1 w:1)
|
||||||
/// Proof: BridgeRococoMessages OutboundLanes (max_values: Some(1), max_size: Some(44), added: 539, mode: MaxEncodedLen)
|
/// Proof: `BridgeWestendMessages::OutboundLanes` (`max_values`: Some(1), `max_size`: Some(44), added: 539, mode: `MaxEncodedLen`)
|
||||||
/// Storage: unknown `0x6e0a18b62a1de81c5f519181cc611e18` (r:1 w:0)
|
/// Storage: UNKNOWN KEY `0x6e0a18b62a1de81c5f519181cc611e18` (r:1 w:0)
|
||||||
/// Proof Skipped: unknown `0x6e0a18b62a1de81c5f519181cc611e18` (r:1 w:0)
|
/// Proof: UNKNOWN KEY `0x6e0a18b62a1de81c5f519181cc611e18` (r:1 w:0)
|
||||||
/// Storage: BridgeRelayers RelayerRewards (r:2 w:2)
|
/// Storage: `BridgeRelayers::RelayerRewards` (r:2 w:2)
|
||||||
/// Proof: BridgeRelayers RelayerRewards (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen)
|
/// Proof: `BridgeRelayers::RelayerRewards` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
|
||||||
fn receive_delivery_proof_for_two_messages_by_two_relayers() -> Weight {
|
fn receive_delivery_proof_for_two_messages_by_two_relayers() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `339`
|
// Measured: `377`
|
||||||
// Estimated: `6086`
|
// Estimated: `6086`
|
||||||
// Minimum execution time: 34_963_000 picoseconds.
|
// Minimum execution time: 38_612_000 picoseconds.
|
||||||
Weight::from_parts(35_473_000, 0)
|
Weight::from_parts(39_412_000, 0)
|
||||||
.saturating_add(Weight::from_parts(0, 6086))
|
.saturating_add(Weight::from_parts(0, 6086))
|
||||||
.saturating_add(T::DbWeight::get().reads(6))
|
.saturating_add(T::DbWeight::get().reads(6))
|
||||||
.saturating_add(T::DbWeight::get().writes(3))
|
.saturating_add(T::DbWeight::get().writes(3))
|
||||||
}
|
}
|
||||||
/// Storage: BridgeRococoMessages PalletOperatingMode (r:1 w:0)
|
/// Storage: `BridgeWestendMessages::PalletOperatingMode` (r:1 w:0)
|
||||||
/// Proof: BridgeRococoMessages PalletOperatingMode (max_values: Some(1), max_size: Some(2), added: 497, mode: MaxEncodedLen)
|
/// Proof: `BridgeWestendMessages::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`)
|
||||||
/// Storage: BridgeRococoParachain ImportedParaHeads (r:1 w:0)
|
/// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:1)
|
||||||
/// Proof: BridgeRococoParachain ImportedParaHeads (max_values: Some(64), max_size: Some(196), added: 1186, mode: MaxEncodedLen)
|
/// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
||||||
/// Storage: BridgeRococoMessages InboundLanes (r:1 w:1)
|
/// Storage: `BridgeWestendParachains::ImportedParaHeads` (r:1 w:0)
|
||||||
/// Proof: BridgeRococoMessages InboundLanes (max_values: None, max_size: Some(49180), added: 51655, mode: MaxEncodedLen)
|
/// Proof: `BridgeWestendParachains::ImportedParaHeads` (`max_values`: Some(64), `max_size`: Some(196), added: 1186, mode: `MaxEncodedLen`)
|
||||||
/// Storage: ParachainInfo ParachainId (r:1 w:0)
|
/// Storage: `BridgeWestendMessages::InboundLanes` (r:1 w:1)
|
||||||
/// Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
|
/// Proof: `BridgeWestendMessages::InboundLanes` (`max_values`: None, `max_size`: Some(49180), added: 51655, mode: `MaxEncodedLen`)
|
||||||
/// Storage: PolkadotXcm SupportedVersion (r:1 w:0)
|
/// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
||||||
/// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured)
|
/// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
||||||
/// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1)
|
/// Storage: `XcmpQueue::DeliveryFeeFactor` (r:1 w:0)
|
||||||
/// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured)
|
/// Proof: `XcmpQueue::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
||||||
/// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0)
|
/// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0)
|
||||||
/// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured)
|
/// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
||||||
/// Storage: ParachainSystem RelevantMessagingState (r:1 w:0)
|
/// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1)
|
||||||
/// Proof Skipped: ParachainSystem RelevantMessagingState (max_values: Some(1), max_size: None, mode: Measured)
|
/// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
||||||
/// Storage: XcmpQueue OutboundXcmpStatus (r:1 w:1)
|
/// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0)
|
||||||
/// Proof Skipped: XcmpQueue OutboundXcmpStatus (max_values: Some(1), max_size: None, mode: Measured)
|
/// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
||||||
/// Storage: XcmpQueue OutboundXcmpMessages (r:0 w:1)
|
/// Storage: `ParachainSystem::RelevantMessagingState` (r:1 w:0)
|
||||||
/// Proof Skipped: XcmpQueue OutboundXcmpMessages (max_values: None, max_size: None, mode: Measured)
|
/// Proof: `ParachainSystem::RelevantMessagingState` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
||||||
/// The range of component `i` is `[128, 2048]`.
|
/// Storage: `XcmpQueue::OutboundXcmpMessages` (r:0 w:1)
|
||||||
|
/// Proof: `XcmpQueue::OutboundXcmpMessages` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
||||||
/// The range of component `i` is `[128, 2048]`.
|
/// The range of component `i` is `[128, 2048]`.
|
||||||
fn receive_single_message_proof_with_dispatch(i: u32, ) -> Weight {
|
fn receive_single_message_proof_with_dispatch(i: u32, ) -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `635`
|
// Measured: `669`
|
||||||
// Estimated: `52645`
|
// Estimated: `52645`
|
||||||
// Minimum execution time: 129_978_000 picoseconds.
|
// Minimum execution time: 69_285_000 picoseconds.
|
||||||
Weight::from_parts(98_246_356, 0)
|
Weight::from_parts(70_867_498, 0)
|
||||||
.saturating_add(Weight::from_parts(0, 52645))
|
.saturating_add(Weight::from_parts(0, 52645))
|
||||||
// Standard Error: 2_554
|
// Standard Error: 111
|
||||||
.saturating_add(Weight::from_parts(544_728, 0).saturating_mul(i.into()))
|
.saturating_add(Weight::from_parts(7_489, 0).saturating_mul(i.into()))
|
||||||
.saturating_add(T::DbWeight::get().reads(9))
|
.saturating_add(T::DbWeight::get().reads(10))
|
||||||
.saturating_add(T::DbWeight::get().writes(4))
|
.saturating_add(T::DbWeight::get().writes(4))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
-245
@@ -1,245 +0,0 @@
|
|||||||
// Copyright (C) Parity Technologies (UK) Ltd.
|
|
||||||
// This file is part of Cumulus.
|
|
||||||
|
|
||||||
// Cumulus is free software: you can redistribute it and/or modify
|
|
||||||
// it under the terms of the GNU General Public License as published by
|
|
||||||
// the Free Software Foundation, either version 3 of the License, or
|
|
||||||
// (at your option) any later version.
|
|
||||||
|
|
||||||
// Cumulus is distributed in the hope that it will be useful,
|
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
// GNU General Public License for more details.
|
|
||||||
|
|
||||||
// You should have received a copy of the GNU General Public License
|
|
||||||
// along with Cumulus. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
//! Autogenerated weights for `pallet_bridge_messages`
|
|
||||||
//!
|
|
||||||
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
|
|
||||||
//! DATE: 2023-10-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
|
|
||||||
//! WORST CASE MAP SIZE: `1000000`
|
|
||||||
//! HOSTNAME: `runner-vmdtonbz-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
|
|
||||||
//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-rococo-dev")`, DB CACHE: 1024
|
|
||||||
|
|
||||||
// Executed Command:
|
|
||||||
// target/production/polkadot-parachain
|
|
||||||
// benchmark
|
|
||||||
// pallet
|
|
||||||
// --steps=50
|
|
||||||
// --repeat=20
|
|
||||||
// --extrinsic=*
|
|
||||||
// --wasm-execution=compiled
|
|
||||||
// --heap-pages=4096
|
|
||||||
// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json
|
|
||||||
// --pallet=pallet_bridge_messages
|
|
||||||
// --chain=bridge-hub-rococo-dev
|
|
||||||
// --header=./cumulus/file_header.txt
|
|
||||||
// --output=./cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/
|
|
||||||
|
|
||||||
#![cfg_attr(rustfmt, rustfmt_skip)]
|
|
||||||
#![allow(unused_parens)]
|
|
||||||
#![allow(unused_imports)]
|
|
||||||
#![allow(missing_docs)]
|
|
||||||
|
|
||||||
use frame_support::{traits::Get, weights::Weight};
|
|
||||||
use core::marker::PhantomData;
|
|
||||||
|
|
||||||
/// Weight functions for `pallet_bridge_messages`.
|
|
||||||
pub struct WeightInfo<T>(PhantomData<T>);
|
|
||||||
impl<T: frame_system::Config> pallet_bridge_messages::WeightInfo for WeightInfo<T> {
|
|
||||||
/// Storage: `BridgeRococoToWestendMessages::PalletOperatingMode` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeRococoToWestendMessages::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:0)
|
|
||||||
/// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `BridgeWestendParachain::ImportedParaHeads` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeWestendParachain::ImportedParaHeads` (`max_values`: Some(64), `max_size`: Some(196), added: 1186, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeRococoToWestendMessages::InboundLanes` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeRococoToWestendMessages::InboundLanes` (`max_values`: None, `max_size`: Some(49180), added: 51655, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
|
||||||
/// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
|
||||||
fn receive_single_message_proof() -> Weight {
|
|
||||||
// Proof Size summary in bytes:
|
|
||||||
// Measured: `643`
|
|
||||||
// Estimated: `52645`
|
|
||||||
// Minimum execution time: 41_873_000 picoseconds.
|
|
||||||
Weight::from_parts(43_434_000, 0)
|
|
||||||
.saturating_add(Weight::from_parts(0, 52645))
|
|
||||||
.saturating_add(T::DbWeight::get().reads(5))
|
|
||||||
.saturating_add(T::DbWeight::get().writes(1))
|
|
||||||
}
|
|
||||||
/// Storage: `BridgeRococoToWestendMessages::PalletOperatingMode` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeRococoToWestendMessages::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:0)
|
|
||||||
/// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `BridgeWestendParachain::ImportedParaHeads` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeWestendParachain::ImportedParaHeads` (`max_values`: Some(64), `max_size`: Some(196), added: 1186, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeRococoToWestendMessages::InboundLanes` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeRococoToWestendMessages::InboundLanes` (`max_values`: None, `max_size`: Some(49180), added: 51655, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
|
||||||
/// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
|
||||||
fn receive_two_messages_proof() -> Weight {
|
|
||||||
// Proof Size summary in bytes:
|
|
||||||
// Measured: `643`
|
|
||||||
// Estimated: `52645`
|
|
||||||
// Minimum execution time: 53_328_000 picoseconds.
|
|
||||||
Weight::from_parts(54_592_000, 0)
|
|
||||||
.saturating_add(Weight::from_parts(0, 52645))
|
|
||||||
.saturating_add(T::DbWeight::get().reads(5))
|
|
||||||
.saturating_add(T::DbWeight::get().writes(1))
|
|
||||||
}
|
|
||||||
/// Storage: `BridgeRococoToWestendMessages::PalletOperatingMode` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeRococoToWestendMessages::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:0)
|
|
||||||
/// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `BridgeWestendParachain::ImportedParaHeads` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeWestendParachain::ImportedParaHeads` (`max_values`: Some(64), `max_size`: Some(196), added: 1186, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeRococoToWestendMessages::InboundLanes` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeRococoToWestendMessages::InboundLanes` (`max_values`: None, `max_size`: Some(49180), added: 51655, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
|
||||||
/// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
|
||||||
fn receive_single_message_proof_with_outbound_lane_state() -> Weight {
|
|
||||||
// Proof Size summary in bytes:
|
|
||||||
// Measured: `643`
|
|
||||||
// Estimated: `52645`
|
|
||||||
// Minimum execution time: 47_486_000 picoseconds.
|
|
||||||
Weight::from_parts(48_721_000, 0)
|
|
||||||
.saturating_add(Weight::from_parts(0, 52645))
|
|
||||||
.saturating_add(T::DbWeight::get().reads(5))
|
|
||||||
.saturating_add(T::DbWeight::get().writes(1))
|
|
||||||
}
|
|
||||||
/// Storage: `BridgeRococoToWestendMessages::PalletOperatingMode` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeRococoToWestendMessages::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:0)
|
|
||||||
/// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `BridgeWestendParachain::ImportedParaHeads` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeWestendParachain::ImportedParaHeads` (`max_values`: Some(64), `max_size`: Some(196), added: 1186, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeRococoToWestendMessages::InboundLanes` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeRococoToWestendMessages::InboundLanes` (`max_values`: None, `max_size`: Some(49180), added: 51655, mode: `MaxEncodedLen`)
|
|
||||||
fn receive_single_message_proof_1_kb() -> Weight {
|
|
||||||
// Proof Size summary in bytes:
|
|
||||||
// Measured: `611`
|
|
||||||
// Estimated: `52645`
|
|
||||||
// Minimum execution time: 41_093_000 picoseconds.
|
|
||||||
Weight::from_parts(42_050_000, 0)
|
|
||||||
.saturating_add(Weight::from_parts(0, 52645))
|
|
||||||
.saturating_add(T::DbWeight::get().reads(4))
|
|
||||||
.saturating_add(T::DbWeight::get().writes(1))
|
|
||||||
}
|
|
||||||
/// Storage: `BridgeRococoToWestendMessages::PalletOperatingMode` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeRococoToWestendMessages::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:0)
|
|
||||||
/// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `BridgeWestendParachain::ImportedParaHeads` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeWestendParachain::ImportedParaHeads` (`max_values`: Some(64), `max_size`: Some(196), added: 1186, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeRococoToWestendMessages::InboundLanes` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeRococoToWestendMessages::InboundLanes` (`max_values`: None, `max_size`: Some(49180), added: 51655, mode: `MaxEncodedLen`)
|
|
||||||
fn receive_single_message_proof_16_kb() -> Weight {
|
|
||||||
// Proof Size summary in bytes:
|
|
||||||
// Measured: `611`
|
|
||||||
// Estimated: `52645`
|
|
||||||
// Minimum execution time: 71_947_000 picoseconds.
|
|
||||||
Weight::from_parts(74_564_000, 0)
|
|
||||||
.saturating_add(Weight::from_parts(0, 52645))
|
|
||||||
.saturating_add(T::DbWeight::get().reads(4))
|
|
||||||
.saturating_add(T::DbWeight::get().writes(1))
|
|
||||||
}
|
|
||||||
/// Storage: `BridgeRococoToWestendMessages::PalletOperatingMode` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeRococoToWestendMessages::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeWestendParachain::ImportedParaHeads` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeWestendParachain::ImportedParaHeads` (`max_values`: Some(64), `max_size`: Some(196), added: 1186, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeRococoToWestendMessages::OutboundLanes` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeRococoToWestendMessages::OutboundLanes` (`max_values`: Some(1), `max_size`: Some(44), added: 539, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: UNKNOWN KEY `0x6e0a18b62a1de81c5f519181cc611e18` (r:1 w:0)
|
|
||||||
/// Proof: UNKNOWN KEY `0x6e0a18b62a1de81c5f519181cc611e18` (r:1 w:0)
|
|
||||||
/// Storage: `BridgeRelayers::RelayerRewards` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeRelayers::RelayerRewards` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
|
|
||||||
fn receive_delivery_proof_for_single_message() -> Weight {
|
|
||||||
// Proof Size summary in bytes:
|
|
||||||
// Measured: `482`
|
|
||||||
// Estimated: `3947`
|
|
||||||
// Minimum execution time: 31_235_000 picoseconds.
|
|
||||||
Weight::from_parts(32_051_000, 0)
|
|
||||||
.saturating_add(Weight::from_parts(0, 3947))
|
|
||||||
.saturating_add(T::DbWeight::get().reads(5))
|
|
||||||
.saturating_add(T::DbWeight::get().writes(2))
|
|
||||||
}
|
|
||||||
/// Storage: `BridgeRococoToWestendMessages::PalletOperatingMode` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeRococoToWestendMessages::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeWestendParachain::ImportedParaHeads` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeWestendParachain::ImportedParaHeads` (`max_values`: Some(64), `max_size`: Some(196), added: 1186, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeRococoToWestendMessages::OutboundLanes` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeRococoToWestendMessages::OutboundLanes` (`max_values`: Some(1), `max_size`: Some(44), added: 539, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: UNKNOWN KEY `0x6e0a18b62a1de81c5f519181cc611e18` (r:1 w:0)
|
|
||||||
/// Proof: UNKNOWN KEY `0x6e0a18b62a1de81c5f519181cc611e18` (r:1 w:0)
|
|
||||||
/// Storage: `BridgeRelayers::RelayerRewards` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeRelayers::RelayerRewards` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
|
|
||||||
fn receive_delivery_proof_for_two_messages_by_single_relayer() -> Weight {
|
|
||||||
// Proof Size summary in bytes:
|
|
||||||
// Measured: `482`
|
|
||||||
// Estimated: `3947`
|
|
||||||
// Minimum execution time: 31_320_000 picoseconds.
|
|
||||||
Weight::from_parts(31_973_000, 0)
|
|
||||||
.saturating_add(Weight::from_parts(0, 3947))
|
|
||||||
.saturating_add(T::DbWeight::get().reads(5))
|
|
||||||
.saturating_add(T::DbWeight::get().writes(2))
|
|
||||||
}
|
|
||||||
/// Storage: `BridgeRococoToWestendMessages::PalletOperatingMode` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeRococoToWestendMessages::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeWestendParachain::ImportedParaHeads` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeWestendParachain::ImportedParaHeads` (`max_values`: Some(64), `max_size`: Some(196), added: 1186, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeRococoToWestendMessages::OutboundLanes` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeRococoToWestendMessages::OutboundLanes` (`max_values`: Some(1), `max_size`: Some(44), added: 539, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: UNKNOWN KEY `0x6e0a18b62a1de81c5f519181cc611e18` (r:1 w:0)
|
|
||||||
/// Proof: UNKNOWN KEY `0x6e0a18b62a1de81c5f519181cc611e18` (r:1 w:0)
|
|
||||||
/// Storage: `BridgeRelayers::RelayerRewards` (r:2 w:2)
|
|
||||||
/// Proof: `BridgeRelayers::RelayerRewards` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
|
|
||||||
fn receive_delivery_proof_for_two_messages_by_two_relayers() -> Weight {
|
|
||||||
// Proof Size summary in bytes:
|
|
||||||
// Measured: `482`
|
|
||||||
// Estimated: `6086`
|
|
||||||
// Minimum execution time: 33_656_000 picoseconds.
|
|
||||||
Weight::from_parts(34_779_000, 0)
|
|
||||||
.saturating_add(Weight::from_parts(0, 6086))
|
|
||||||
.saturating_add(T::DbWeight::get().reads(6))
|
|
||||||
.saturating_add(T::DbWeight::get().writes(3))
|
|
||||||
}
|
|
||||||
/// Storage: `BridgeRococoToWestendMessages::PalletOperatingMode` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeRococoToWestendMessages::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:1)
|
|
||||||
/// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `BridgeWestendParachain::ImportedParaHeads` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeWestendParachain::ImportedParaHeads` (`max_values`: Some(64), `max_size`: Some(196), added: 1186, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeRococoToWestendMessages::InboundLanes` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeRococoToWestendMessages::InboundLanes` (`max_values`: None, `max_size`: Some(49180), added: 51655, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
|
||||||
/// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `XcmpQueue::DeliveryFeeFactor` (r:1 w:0)
|
|
||||||
/// Proof: `XcmpQueue::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0)
|
|
||||||
/// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1)
|
|
||||||
/// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0)
|
|
||||||
/// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `ParachainSystem::RelevantMessagingState` (r:1 w:0)
|
|
||||||
/// Proof: `ParachainSystem::RelevantMessagingState` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `XcmpQueue::OutboundXcmpMessages` (r:0 w:1)
|
|
||||||
/// Proof: `XcmpQueue::OutboundXcmpMessages` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
|
||||||
/// The range of component `i` is `[128, 2048]`.
|
|
||||||
/// The range of component `i` is `[128, 2048]`.
|
|
||||||
/// The range of component `i` is `[128, 2048]`.
|
|
||||||
/// The range of component `i` is `[128, 2048]`.
|
|
||||||
fn receive_single_message_proof_with_dispatch(i: u32, ) -> Weight {
|
|
||||||
// Proof Size summary in bytes:
|
|
||||||
// Measured: `772`
|
|
||||||
// Estimated: `52645`
|
|
||||||
// Minimum execution time: 61_671_000 picoseconds.
|
|
||||||
Weight::from_parts(62_656_321, 0)
|
|
||||||
.saturating_add(Weight::from_parts(0, 52645))
|
|
||||||
// Standard Error: 25
|
|
||||||
.saturating_add(Weight::from_parts(6_641, 0).saturating_mul(i.into()))
|
|
||||||
.saturating_add(T::DbWeight::get().reads(10))
|
|
||||||
.saturating_add(T::DbWeight::get().writes(4))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-244
@@ -1,244 +0,0 @@
|
|||||||
// Copyright (C) Parity Technologies (UK) Ltd.
|
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
|
||||||
|
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
// you may not use this file except in compliance with the License.
|
|
||||||
// You may obtain a copy of the License at
|
|
||||||
//
|
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
// See the License for the specific language governing permissions and
|
|
||||||
// limitations under the License.
|
|
||||||
|
|
||||||
//! Autogenerated weights for `pallet_bridge_messages`
|
|
||||||
//!
|
|
||||||
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
|
|
||||||
//! DATE: 2023-10-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
|
|
||||||
//! WORST CASE MAP SIZE: `1000000`
|
|
||||||
//! HOSTNAME: `runner-vmdtonbz-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
|
|
||||||
//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-rococo-dev")`, DB CACHE: 1024
|
|
||||||
|
|
||||||
// Executed Command:
|
|
||||||
// target/production/polkadot-parachain
|
|
||||||
// benchmark
|
|
||||||
// pallet
|
|
||||||
// --steps=50
|
|
||||||
// --repeat=20
|
|
||||||
// --extrinsic=*
|
|
||||||
// --wasm-execution=compiled
|
|
||||||
// --heap-pages=4096
|
|
||||||
// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json
|
|
||||||
// --pallet=pallet_bridge_messages
|
|
||||||
// --chain=bridge-hub-rococo-dev
|
|
||||||
// --header=./cumulus/file_header.txt
|
|
||||||
// --output=./cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/
|
|
||||||
|
|
||||||
#![cfg_attr(rustfmt, rustfmt_skip)]
|
|
||||||
#![allow(unused_parens)]
|
|
||||||
#![allow(unused_imports)]
|
|
||||||
#![allow(missing_docs)]
|
|
||||||
|
|
||||||
use frame_support::{traits::Get, weights::Weight};
|
|
||||||
use core::marker::PhantomData;
|
|
||||||
|
|
||||||
/// Weight functions for `pallet_bridge_messages`.
|
|
||||||
pub struct WeightInfo<T>(PhantomData<T>);
|
|
||||||
impl<T: frame_system::Config> pallet_bridge_messages::WeightInfo for WeightInfo<T> {
|
|
||||||
/// Storage: `BridgeRococoToWococoMessages::PalletOperatingMode` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeRococoToWococoMessages::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:0)
|
|
||||||
/// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `BridgeWococoParachain::ImportedParaHeads` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeWococoParachain::ImportedParaHeads` (`max_values`: Some(64), `max_size`: Some(196), added: 1186, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeRococoToWococoMessages::InboundLanes` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeRococoToWococoMessages::InboundLanes` (`max_values`: None, `max_size`: Some(49180), added: 51655, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
|
||||||
/// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
|
||||||
fn receive_single_message_proof() -> Weight {
|
|
||||||
// Proof Size summary in bytes:
|
|
||||||
// Measured: `609`
|
|
||||||
// Estimated: `52645`
|
|
||||||
// Minimum execution time: 42_407_000 picoseconds.
|
|
||||||
Weight::from_parts(43_917_000, 0)
|
|
||||||
.saturating_add(Weight::from_parts(0, 52645))
|
|
||||||
.saturating_add(T::DbWeight::get().reads(5))
|
|
||||||
.saturating_add(T::DbWeight::get().writes(1))
|
|
||||||
}
|
|
||||||
/// Storage: `BridgeRococoToWococoMessages::PalletOperatingMode` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeRococoToWococoMessages::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:0)
|
|
||||||
/// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `BridgeWococoParachain::ImportedParaHeads` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeWococoParachain::ImportedParaHeads` (`max_values`: Some(64), `max_size`: Some(196), added: 1186, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeRococoToWococoMessages::InboundLanes` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeRococoToWococoMessages::InboundLanes` (`max_values`: None, `max_size`: Some(49180), added: 51655, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
|
||||||
/// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
|
||||||
fn receive_two_messages_proof() -> Weight {
|
|
||||||
// Proof Size summary in bytes:
|
|
||||||
// Measured: `609`
|
|
||||||
// Estimated: `52645`
|
|
||||||
// Minimum execution time: 53_258_000 picoseconds.
|
|
||||||
Weight::from_parts(55_144_000, 0)
|
|
||||||
.saturating_add(Weight::from_parts(0, 52645))
|
|
||||||
.saturating_add(T::DbWeight::get().reads(5))
|
|
||||||
.saturating_add(T::DbWeight::get().writes(1))
|
|
||||||
}
|
|
||||||
/// Storage: `BridgeRococoToWococoMessages::PalletOperatingMode` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeRococoToWococoMessages::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:0)
|
|
||||||
/// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `BridgeWococoParachain::ImportedParaHeads` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeWococoParachain::ImportedParaHeads` (`max_values`: Some(64), `max_size`: Some(196), added: 1186, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeRococoToWococoMessages::InboundLanes` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeRococoToWococoMessages::InboundLanes` (`max_values`: None, `max_size`: Some(49180), added: 51655, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
|
||||||
/// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
|
||||||
fn receive_single_message_proof_with_outbound_lane_state() -> Weight {
|
|
||||||
// Proof Size summary in bytes:
|
|
||||||
// Measured: `609`
|
|
||||||
// Estimated: `52645`
|
|
||||||
// Minimum execution time: 47_950_000 picoseconds.
|
|
||||||
Weight::from_parts(49_315_000, 0)
|
|
||||||
.saturating_add(Weight::from_parts(0, 52645))
|
|
||||||
.saturating_add(T::DbWeight::get().reads(5))
|
|
||||||
.saturating_add(T::DbWeight::get().writes(1))
|
|
||||||
}
|
|
||||||
/// Storage: `BridgeRococoToWococoMessages::PalletOperatingMode` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeRococoToWococoMessages::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:0)
|
|
||||||
/// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `BridgeWococoParachain::ImportedParaHeads` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeWococoParachain::ImportedParaHeads` (`max_values`: Some(64), `max_size`: Some(196), added: 1186, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeRococoToWococoMessages::InboundLanes` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeRococoToWococoMessages::InboundLanes` (`max_values`: None, `max_size`: Some(49180), added: 51655, mode: `MaxEncodedLen`)
|
|
||||||
fn receive_single_message_proof_1_kb() -> Weight {
|
|
||||||
// Proof Size summary in bytes:
|
|
||||||
// Measured: `577`
|
|
||||||
// Estimated: `52645`
|
|
||||||
// Minimum execution time: 41_383_000 picoseconds.
|
|
||||||
Weight::from_parts(42_898_000, 0)
|
|
||||||
.saturating_add(Weight::from_parts(0, 52645))
|
|
||||||
.saturating_add(T::DbWeight::get().reads(4))
|
|
||||||
.saturating_add(T::DbWeight::get().writes(1))
|
|
||||||
}
|
|
||||||
/// Storage: `BridgeRococoToWococoMessages::PalletOperatingMode` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeRococoToWococoMessages::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:0)
|
|
||||||
/// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `BridgeWococoParachain::ImportedParaHeads` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeWococoParachain::ImportedParaHeads` (`max_values`: Some(64), `max_size`: Some(196), added: 1186, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeRococoToWococoMessages::InboundLanes` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeRococoToWococoMessages::InboundLanes` (`max_values`: None, `max_size`: Some(49180), added: 51655, mode: `MaxEncodedLen`)
|
|
||||||
fn receive_single_message_proof_16_kb() -> Weight {
|
|
||||||
// Proof Size summary in bytes:
|
|
||||||
// Measured: `577`
|
|
||||||
// Estimated: `52645`
|
|
||||||
// Minimum execution time: 72_118_000 picoseconds.
|
|
||||||
Weight::from_parts(74_643_000, 0)
|
|
||||||
.saturating_add(Weight::from_parts(0, 52645))
|
|
||||||
.saturating_add(T::DbWeight::get().reads(4))
|
|
||||||
.saturating_add(T::DbWeight::get().writes(1))
|
|
||||||
}
|
|
||||||
/// Storage: `BridgeRococoToWococoMessages::PalletOperatingMode` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeRococoToWococoMessages::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeWococoParachain::ImportedParaHeads` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeWococoParachain::ImportedParaHeads` (`max_values`: Some(64), `max_size`: Some(196), added: 1186, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeRococoToWococoMessages::OutboundLanes` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeRococoToWococoMessages::OutboundLanes` (`max_values`: Some(1), `max_size`: Some(44), added: 539, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: UNKNOWN KEY `0x6e0a18b62a1de81c5f519181cc611e18` (r:1 w:0)
|
|
||||||
/// Proof: UNKNOWN KEY `0x6e0a18b62a1de81c5f519181cc611e18` (r:1 w:0)
|
|
||||||
/// Storage: `BridgeRelayers::RelayerRewards` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeRelayers::RelayerRewards` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
|
|
||||||
fn receive_delivery_proof_for_single_message() -> Weight {
|
|
||||||
// Proof Size summary in bytes:
|
|
||||||
// Measured: `448`
|
|
||||||
// Estimated: `3913`
|
|
||||||
// Minimum execution time: 30_993_000 picoseconds.
|
|
||||||
Weight::from_parts(31_793_000, 0)
|
|
||||||
.saturating_add(Weight::from_parts(0, 3913))
|
|
||||||
.saturating_add(T::DbWeight::get().reads(5))
|
|
||||||
.saturating_add(T::DbWeight::get().writes(2))
|
|
||||||
}
|
|
||||||
/// Storage: `BridgeRococoToWococoMessages::PalletOperatingMode` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeRococoToWococoMessages::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeWococoParachain::ImportedParaHeads` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeWococoParachain::ImportedParaHeads` (`max_values`: Some(64), `max_size`: Some(196), added: 1186, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeRococoToWococoMessages::OutboundLanes` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeRococoToWococoMessages::OutboundLanes` (`max_values`: Some(1), `max_size`: Some(44), added: 539, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: UNKNOWN KEY `0x6e0a18b62a1de81c5f519181cc611e18` (r:1 w:0)
|
|
||||||
/// Proof: UNKNOWN KEY `0x6e0a18b62a1de81c5f519181cc611e18` (r:1 w:0)
|
|
||||||
/// Storage: `BridgeRelayers::RelayerRewards` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeRelayers::RelayerRewards` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
|
|
||||||
fn receive_delivery_proof_for_two_messages_by_single_relayer() -> Weight {
|
|
||||||
// Proof Size summary in bytes:
|
|
||||||
// Measured: `448`
|
|
||||||
// Estimated: `3913`
|
|
||||||
// Minimum execution time: 30_894_000 picoseconds.
|
|
||||||
Weight::from_parts(31_925_000, 0)
|
|
||||||
.saturating_add(Weight::from_parts(0, 3913))
|
|
||||||
.saturating_add(T::DbWeight::get().reads(5))
|
|
||||||
.saturating_add(T::DbWeight::get().writes(2))
|
|
||||||
}
|
|
||||||
/// Storage: `BridgeRococoToWococoMessages::PalletOperatingMode` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeRococoToWococoMessages::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeWococoParachain::ImportedParaHeads` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeWococoParachain::ImportedParaHeads` (`max_values`: Some(64), `max_size`: Some(196), added: 1186, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeRococoToWococoMessages::OutboundLanes` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeRococoToWococoMessages::OutboundLanes` (`max_values`: Some(1), `max_size`: Some(44), added: 539, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: UNKNOWN KEY `0x6e0a18b62a1de81c5f519181cc611e18` (r:1 w:0)
|
|
||||||
/// Proof: UNKNOWN KEY `0x6e0a18b62a1de81c5f519181cc611e18` (r:1 w:0)
|
|
||||||
/// Storage: `BridgeRelayers::RelayerRewards` (r:2 w:2)
|
|
||||||
/// Proof: `BridgeRelayers::RelayerRewards` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
|
|
||||||
fn receive_delivery_proof_for_two_messages_by_two_relayers() -> Weight {
|
|
||||||
// Proof Size summary in bytes:
|
|
||||||
// Measured: `448`
|
|
||||||
// Estimated: `6086`
|
|
||||||
// Minimum execution time: 33_804_000 picoseconds.
|
|
||||||
Weight::from_parts(34_560_000, 0)
|
|
||||||
.saturating_add(Weight::from_parts(0, 6086))
|
|
||||||
.saturating_add(T::DbWeight::get().reads(6))
|
|
||||||
.saturating_add(T::DbWeight::get().writes(3))
|
|
||||||
}
|
|
||||||
/// Storage: `BridgeRococoToWococoMessages::PalletOperatingMode` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeRococoToWococoMessages::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:1)
|
|
||||||
/// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `BridgeWococoParachain::ImportedParaHeads` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeWococoParachain::ImportedParaHeads` (`max_values`: Some(64), `max_size`: Some(196), added: 1186, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeRococoToWococoMessages::InboundLanes` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeRococoToWococoMessages::InboundLanes` (`max_values`: None, `max_size`: Some(49180), added: 51655, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
|
||||||
/// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `XcmpQueue::DeliveryFeeFactor` (r:1 w:0)
|
|
||||||
/// Proof: `XcmpQueue::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0)
|
|
||||||
/// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1)
|
|
||||||
/// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0)
|
|
||||||
/// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `ParachainSystem::RelevantMessagingState` (r:1 w:0)
|
|
||||||
/// Proof: `ParachainSystem::RelevantMessagingState` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `XcmpQueue::OutboundXcmpMessages` (r:0 w:1)
|
|
||||||
/// Proof: `XcmpQueue::OutboundXcmpMessages` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
|
||||||
/// The range of component `i` is `[128, 2048]`.
|
|
||||||
/// The range of component `i` is `[128, 2048]`.
|
|
||||||
/// The range of component `i` is `[128, 2048]`.
|
|
||||||
/// The range of component `i` is `[128, 2048]`.
|
|
||||||
fn receive_single_message_proof_with_dispatch(i: u32, ) -> Weight {
|
|
||||||
// Proof Size summary in bytes:
|
|
||||||
// Measured: `811`
|
|
||||||
// Estimated: `52645`
|
|
||||||
// Minimum execution time: 62_616_000 picoseconds.
|
|
||||||
Weight::from_parts(64_073_891, 0)
|
|
||||||
.saturating_add(Weight::from_parts(0, 52645))
|
|
||||||
// Standard Error: 43
|
|
||||||
.saturating_add(Weight::from_parts(6_525, 0).saturating_mul(i.into()))
|
|
||||||
.saturating_add(T::DbWeight::get().reads(10))
|
|
||||||
.saturating_add(T::DbWeight::get().writes(4))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-244
@@ -1,244 +0,0 @@
|
|||||||
// Copyright (C) Parity Technologies (UK) Ltd.
|
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
|
||||||
|
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
// you may not use this file except in compliance with the License.
|
|
||||||
// You may obtain a copy of the License at
|
|
||||||
//
|
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
// See the License for the specific language governing permissions and
|
|
||||||
// limitations under the License.
|
|
||||||
|
|
||||||
//! Autogenerated weights for `pallet_bridge_messages`
|
|
||||||
//!
|
|
||||||
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
|
|
||||||
//! DATE: 2023-10-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
|
|
||||||
//! WORST CASE MAP SIZE: `1000000`
|
|
||||||
//! HOSTNAME: `runner-vmdtonbz-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
|
|
||||||
//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-rococo-dev")`, DB CACHE: 1024
|
|
||||||
|
|
||||||
// Executed Command:
|
|
||||||
// target/production/polkadot-parachain
|
|
||||||
// benchmark
|
|
||||||
// pallet
|
|
||||||
// --steps=50
|
|
||||||
// --repeat=20
|
|
||||||
// --extrinsic=*
|
|
||||||
// --wasm-execution=compiled
|
|
||||||
// --heap-pages=4096
|
|
||||||
// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json
|
|
||||||
// --pallet=pallet_bridge_messages
|
|
||||||
// --chain=bridge-hub-rococo-dev
|
|
||||||
// --header=./cumulus/file_header.txt
|
|
||||||
// --output=./cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/
|
|
||||||
|
|
||||||
#![cfg_attr(rustfmt, rustfmt_skip)]
|
|
||||||
#![allow(unused_parens)]
|
|
||||||
#![allow(unused_imports)]
|
|
||||||
#![allow(missing_docs)]
|
|
||||||
|
|
||||||
use frame_support::{traits::Get, weights::Weight};
|
|
||||||
use core::marker::PhantomData;
|
|
||||||
|
|
||||||
/// Weight functions for `pallet_bridge_messages`.
|
|
||||||
pub struct WeightInfo<T>(PhantomData<T>);
|
|
||||||
impl<T: frame_system::Config> pallet_bridge_messages::WeightInfo for WeightInfo<T> {
|
|
||||||
/// Storage: `BridgeWococoToRococoMessages::PalletOperatingMode` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeWococoToRococoMessages::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:0)
|
|
||||||
/// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `BridgeRococoParachain::ImportedParaHeads` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeRococoParachain::ImportedParaHeads` (`max_values`: Some(64), `max_size`: Some(196), added: 1186, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeWococoToRococoMessages::InboundLanes` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeWococoToRococoMessages::InboundLanes` (`max_values`: None, `max_size`: Some(49180), added: 51655, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
|
||||||
/// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
|
||||||
fn receive_single_message_proof() -> Weight {
|
|
||||||
// Proof Size summary in bytes:
|
|
||||||
// Measured: `537`
|
|
||||||
// Estimated: `52645`
|
|
||||||
// Minimum execution time: 42_086_000 picoseconds.
|
|
||||||
Weight::from_parts(42_833_000, 0)
|
|
||||||
.saturating_add(Weight::from_parts(0, 52645))
|
|
||||||
.saturating_add(T::DbWeight::get().reads(5))
|
|
||||||
.saturating_add(T::DbWeight::get().writes(1))
|
|
||||||
}
|
|
||||||
/// Storage: `BridgeWococoToRococoMessages::PalletOperatingMode` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeWococoToRococoMessages::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:0)
|
|
||||||
/// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `BridgeRococoParachain::ImportedParaHeads` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeRococoParachain::ImportedParaHeads` (`max_values`: Some(64), `max_size`: Some(196), added: 1186, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeWococoToRococoMessages::InboundLanes` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeWococoToRococoMessages::InboundLanes` (`max_values`: None, `max_size`: Some(49180), added: 51655, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
|
||||||
/// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
|
||||||
fn receive_two_messages_proof() -> Weight {
|
|
||||||
// Proof Size summary in bytes:
|
|
||||||
// Measured: `537`
|
|
||||||
// Estimated: `52645`
|
|
||||||
// Minimum execution time: 51_927_000 picoseconds.
|
|
||||||
Weight::from_parts(53_847_000, 0)
|
|
||||||
.saturating_add(Weight::from_parts(0, 52645))
|
|
||||||
.saturating_add(T::DbWeight::get().reads(5))
|
|
||||||
.saturating_add(T::DbWeight::get().writes(1))
|
|
||||||
}
|
|
||||||
/// Storage: `BridgeWococoToRococoMessages::PalletOperatingMode` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeWococoToRococoMessages::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:0)
|
|
||||||
/// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `BridgeRococoParachain::ImportedParaHeads` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeRococoParachain::ImportedParaHeads` (`max_values`: Some(64), `max_size`: Some(196), added: 1186, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeWococoToRococoMessages::InboundLanes` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeWococoToRococoMessages::InboundLanes` (`max_values`: None, `max_size`: Some(49180), added: 51655, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
|
||||||
/// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
|
||||||
fn receive_single_message_proof_with_outbound_lane_state() -> Weight {
|
|
||||||
// Proof Size summary in bytes:
|
|
||||||
// Measured: `537`
|
|
||||||
// Estimated: `52645`
|
|
||||||
// Minimum execution time: 47_218_000 picoseconds.
|
|
||||||
Weight::from_parts(48_380_000, 0)
|
|
||||||
.saturating_add(Weight::from_parts(0, 52645))
|
|
||||||
.saturating_add(T::DbWeight::get().reads(5))
|
|
||||||
.saturating_add(T::DbWeight::get().writes(1))
|
|
||||||
}
|
|
||||||
/// Storage: `BridgeWococoToRococoMessages::PalletOperatingMode` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeWococoToRococoMessages::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:0)
|
|
||||||
/// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `BridgeRococoParachain::ImportedParaHeads` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeRococoParachain::ImportedParaHeads` (`max_values`: Some(64), `max_size`: Some(196), added: 1186, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeWococoToRococoMessages::InboundLanes` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeWococoToRococoMessages::InboundLanes` (`max_values`: None, `max_size`: Some(49180), added: 51655, mode: `MaxEncodedLen`)
|
|
||||||
fn receive_single_message_proof_1_kb() -> Weight {
|
|
||||||
// Proof Size summary in bytes:
|
|
||||||
// Measured: `505`
|
|
||||||
// Estimated: `52645`
|
|
||||||
// Minimum execution time: 40_585_000 picoseconds.
|
|
||||||
Weight::from_parts(41_714_000, 0)
|
|
||||||
.saturating_add(Weight::from_parts(0, 52645))
|
|
||||||
.saturating_add(T::DbWeight::get().reads(4))
|
|
||||||
.saturating_add(T::DbWeight::get().writes(1))
|
|
||||||
}
|
|
||||||
/// Storage: `BridgeWococoToRococoMessages::PalletOperatingMode` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeWococoToRococoMessages::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:0)
|
|
||||||
/// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `BridgeRococoParachain::ImportedParaHeads` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeRococoParachain::ImportedParaHeads` (`max_values`: Some(64), `max_size`: Some(196), added: 1186, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeWococoToRococoMessages::InboundLanes` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeWococoToRococoMessages::InboundLanes` (`max_values`: None, `max_size`: Some(49180), added: 51655, mode: `MaxEncodedLen`)
|
|
||||||
fn receive_single_message_proof_16_kb() -> Weight {
|
|
||||||
// Proof Size summary in bytes:
|
|
||||||
// Measured: `505`
|
|
||||||
// Estimated: `52645`
|
|
||||||
// Minimum execution time: 71_197_000 picoseconds.
|
|
||||||
Weight::from_parts(73_983_000, 0)
|
|
||||||
.saturating_add(Weight::from_parts(0, 52645))
|
|
||||||
.saturating_add(T::DbWeight::get().reads(4))
|
|
||||||
.saturating_add(T::DbWeight::get().writes(1))
|
|
||||||
}
|
|
||||||
/// Storage: `BridgeWococoToRococoMessages::PalletOperatingMode` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeWococoToRococoMessages::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeRococoParachain::ImportedParaHeads` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeRococoParachain::ImportedParaHeads` (`max_values`: Some(64), `max_size`: Some(196), added: 1186, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeWococoToRococoMessages::OutboundLanes` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeWococoToRococoMessages::OutboundLanes` (`max_values`: Some(1), `max_size`: Some(44), added: 539, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: UNKNOWN KEY `0x6e0a18b62a1de81c5f519181cc611e18` (r:1 w:0)
|
|
||||||
/// Proof: UNKNOWN KEY `0x6e0a18b62a1de81c5f519181cc611e18` (r:1 w:0)
|
|
||||||
/// Storage: `BridgeRelayers::RelayerRewards` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeRelayers::RelayerRewards` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
|
|
||||||
fn receive_delivery_proof_for_single_message() -> Weight {
|
|
||||||
// Proof Size summary in bytes:
|
|
||||||
// Measured: `376`
|
|
||||||
// Estimated: `3841`
|
|
||||||
// Minimum execution time: 30_823_000 picoseconds.
|
|
||||||
Weight::from_parts(31_501_000, 0)
|
|
||||||
.saturating_add(Weight::from_parts(0, 3841))
|
|
||||||
.saturating_add(T::DbWeight::get().reads(5))
|
|
||||||
.saturating_add(T::DbWeight::get().writes(2))
|
|
||||||
}
|
|
||||||
/// Storage: `BridgeWococoToRococoMessages::PalletOperatingMode` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeWococoToRococoMessages::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeRococoParachain::ImportedParaHeads` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeRococoParachain::ImportedParaHeads` (`max_values`: Some(64), `max_size`: Some(196), added: 1186, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeWococoToRococoMessages::OutboundLanes` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeWococoToRococoMessages::OutboundLanes` (`max_values`: Some(1), `max_size`: Some(44), added: 539, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: UNKNOWN KEY `0x6e0a18b62a1de81c5f519181cc611e18` (r:1 w:0)
|
|
||||||
/// Proof: UNKNOWN KEY `0x6e0a18b62a1de81c5f519181cc611e18` (r:1 w:0)
|
|
||||||
/// Storage: `BridgeRelayers::RelayerRewards` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeRelayers::RelayerRewards` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
|
|
||||||
fn receive_delivery_proof_for_two_messages_by_single_relayer() -> Weight {
|
|
||||||
// Proof Size summary in bytes:
|
|
||||||
// Measured: `376`
|
|
||||||
// Estimated: `3841`
|
|
||||||
// Minimum execution time: 30_854_000 picoseconds.
|
|
||||||
Weight::from_parts(31_663_000, 0)
|
|
||||||
.saturating_add(Weight::from_parts(0, 3841))
|
|
||||||
.saturating_add(T::DbWeight::get().reads(5))
|
|
||||||
.saturating_add(T::DbWeight::get().writes(2))
|
|
||||||
}
|
|
||||||
/// Storage: `BridgeWococoToRococoMessages::PalletOperatingMode` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeWococoToRococoMessages::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeRococoParachain::ImportedParaHeads` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeRococoParachain::ImportedParaHeads` (`max_values`: Some(64), `max_size`: Some(196), added: 1186, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeWococoToRococoMessages::OutboundLanes` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeWococoToRococoMessages::OutboundLanes` (`max_values`: Some(1), `max_size`: Some(44), added: 539, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: UNKNOWN KEY `0x6e0a18b62a1de81c5f519181cc611e18` (r:1 w:0)
|
|
||||||
/// Proof: UNKNOWN KEY `0x6e0a18b62a1de81c5f519181cc611e18` (r:1 w:0)
|
|
||||||
/// Storage: `BridgeRelayers::RelayerRewards` (r:2 w:2)
|
|
||||||
/// Proof: `BridgeRelayers::RelayerRewards` (`max_values`: None, `max_size`: Some(73), added: 2548, mode: `MaxEncodedLen`)
|
|
||||||
fn receive_delivery_proof_for_two_messages_by_two_relayers() -> Weight {
|
|
||||||
// Proof Size summary in bytes:
|
|
||||||
// Measured: `376`
|
|
||||||
// Estimated: `6086`
|
|
||||||
// Minimum execution time: 33_463_000 picoseconds.
|
|
||||||
Weight::from_parts(34_290_000, 0)
|
|
||||||
.saturating_add(Weight::from_parts(0, 6086))
|
|
||||||
.saturating_add(T::DbWeight::get().reads(6))
|
|
||||||
.saturating_add(T::DbWeight::get().writes(3))
|
|
||||||
}
|
|
||||||
/// Storage: `BridgeWococoToRococoMessages::PalletOperatingMode` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeWococoToRococoMessages::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:1)
|
|
||||||
/// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `BridgeRococoParachain::ImportedParaHeads` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeRococoParachain::ImportedParaHeads` (`max_values`: Some(64), `max_size`: Some(196), added: 1186, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeWococoToRococoMessages::InboundLanes` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeWococoToRococoMessages::InboundLanes` (`max_values`: None, `max_size`: Some(49180), added: 51655, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
|
||||||
/// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `XcmpQueue::DeliveryFeeFactor` (r:1 w:0)
|
|
||||||
/// Proof: `XcmpQueue::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0)
|
|
||||||
/// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1)
|
|
||||||
/// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0)
|
|
||||||
/// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `ParachainSystem::RelevantMessagingState` (r:1 w:0)
|
|
||||||
/// Proof: `ParachainSystem::RelevantMessagingState` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
|
||||||
/// Storage: `XcmpQueue::OutboundXcmpMessages` (r:0 w:1)
|
|
||||||
/// Proof: `XcmpQueue::OutboundXcmpMessages` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
|
||||||
/// The range of component `i` is `[128, 2048]`.
|
|
||||||
/// The range of component `i` is `[128, 2048]`.
|
|
||||||
/// The range of component `i` is `[128, 2048]`.
|
|
||||||
/// The range of component `i` is `[128, 2048]`.
|
|
||||||
fn receive_single_message_proof_with_dispatch(i: u32, ) -> Weight {
|
|
||||||
// Proof Size summary in bytes:
|
|
||||||
// Measured: `739`
|
|
||||||
// Estimated: `52645`
|
|
||||||
// Minimum execution time: 61_523_000 picoseconds.
|
|
||||||
Weight::from_parts(62_686_055, 0)
|
|
||||||
.saturating_add(Weight::from_parts(0, 52645))
|
|
||||||
// Standard Error: 26
|
|
||||||
.saturating_add(Weight::from_parts(6_563, 0).saturating_mul(i.into()))
|
|
||||||
.saturating_add(T::DbWeight::get().reads(10))
|
|
||||||
.saturating_add(T::DbWeight::get().writes(4))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+64
-64
@@ -1,40 +1,41 @@
|
|||||||
// Copyright (C) Parity Technologies (UK) Ltd.
|
// Copyright (C) Parity Technologies (UK) Ltd.
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// This file is part of Cumulus.
|
||||||
|
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
// Cumulus is free software: you can redistribute it and/or modify
|
||||||
// you may not use this file except in compliance with the License.
|
// it under the terms of the GNU General Public License as published by
|
||||||
// You may obtain a copy of the License at
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
//
|
// (at your option) any later version.
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
// Cumulus is distributed in the hope that it will be useful,
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
// GNU General Public License for more details.
|
||||||
// See the License for the specific language governing permissions and
|
|
||||||
// limitations under the License.
|
// You should have received a copy of the GNU General Public License
|
||||||
|
// along with Cumulus. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
//! Autogenerated weights for `pallet_bridge_parachains`
|
//! Autogenerated weights for `pallet_bridge_parachains`
|
||||||
//!
|
//!
|
||||||
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
|
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
|
||||||
//! DATE: 2023-05-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
|
//! DATE: 2023-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
|
||||||
//! WORST CASE MAP SIZE: `1000000`
|
//! WORST CASE MAP SIZE: `1000000`
|
||||||
//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
|
//! HOSTNAME: `runner-yprdrvc7-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
|
||||||
//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-rococo-dev"), DB CACHE: 1024
|
//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-rococo-dev")`, DB CACHE: 1024
|
||||||
|
|
||||||
// Executed Command:
|
// Executed Command:
|
||||||
// ./artifacts/polkadot-parachain
|
// target/production/polkadot-parachain
|
||||||
// benchmark
|
// benchmark
|
||||||
// pallet
|
// pallet
|
||||||
// --chain=bridge-hub-rococo-dev
|
|
||||||
// --execution=wasm
|
|
||||||
// --wasm-execution=compiled
|
|
||||||
// --pallet=pallet_bridge_parachains
|
|
||||||
// --extrinsic=*
|
|
||||||
// --steps=50
|
// --steps=50
|
||||||
// --repeat=20
|
// --repeat=20
|
||||||
// --json
|
// --extrinsic=*
|
||||||
// --header=./file_header.txt
|
// --wasm-execution=compiled
|
||||||
// --output=./parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_bridge_parachains.rs
|
// --heap-pages=4096
|
||||||
|
// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json
|
||||||
|
// --pallet=pallet_bridge_parachains
|
||||||
|
// --chain=bridge-hub-rococo-dev
|
||||||
|
// --header=./cumulus/file_header.txt
|
||||||
|
// --output=./cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/
|
||||||
|
|
||||||
#![cfg_attr(rustfmt, rustfmt_skip)]
|
#![cfg_attr(rustfmt, rustfmt_skip)]
|
||||||
#![allow(unused_parens)]
|
#![allow(unused_parens)]
|
||||||
@@ -47,64 +48,63 @@ use core::marker::PhantomData;
|
|||||||
/// Weight functions for `pallet_bridge_parachains`.
|
/// Weight functions for `pallet_bridge_parachains`.
|
||||||
pub struct WeightInfo<T>(PhantomData<T>);
|
pub struct WeightInfo<T>(PhantomData<T>);
|
||||||
impl<T: frame_system::Config> pallet_bridge_parachains::WeightInfo for WeightInfo<T> {
|
impl<T: frame_system::Config> pallet_bridge_parachains::WeightInfo for WeightInfo<T> {
|
||||||
/// Storage: BridgeWococoParachain PalletOperatingMode (r:1 w:0)
|
/// Storage: `BridgeWestendParachains::PalletOperatingMode` (r:1 w:0)
|
||||||
/// Proof: BridgeWococoParachain PalletOperatingMode (max_values: Some(1), max_size: Some(1), added: 496, mode: MaxEncodedLen)
|
/// Proof: `BridgeWestendParachains::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(1), added: 496, mode: `MaxEncodedLen`)
|
||||||
/// Storage: BridgeWococoGrandpa ImportedHeaders (r:1 w:0)
|
/// Storage: `BridgeWestendGrandpa::ImportedHeaders` (r:1 w:0)
|
||||||
/// Proof: BridgeWococoGrandpa ImportedHeaders (max_values: Some(1024), max_size: Some(68), added: 1553, mode: MaxEncodedLen)
|
/// Proof: `BridgeWestendGrandpa::ImportedHeaders` (`max_values`: Some(1024), `max_size`: Some(68), added: 1553, mode: `MaxEncodedLen`)
|
||||||
/// Storage: BridgeWococoParachain ParasInfo (r:1 w:1)
|
/// Storage: `BridgeWestendParachains::ParasInfo` (r:1 w:1)
|
||||||
/// Proof: BridgeWococoParachain ParasInfo (max_values: Some(1), max_size: Some(60), added: 555, mode: MaxEncodedLen)
|
/// Proof: `BridgeWestendParachains::ParasInfo` (`max_values`: Some(1), `max_size`: Some(60), added: 555, mode: `MaxEncodedLen`)
|
||||||
/// Storage: BridgeWococoParachain ImportedParaHashes (r:1 w:1)
|
/// Storage: `BridgeWestendParachains::ImportedParaHashes` (r:1 w:1)
|
||||||
/// Proof: BridgeWococoParachain ImportedParaHashes (max_values: Some(64), max_size: Some(64), added: 1054, mode: MaxEncodedLen)
|
/// Proof: `BridgeWestendParachains::ImportedParaHashes` (`max_values`: Some(64), `max_size`: Some(64), added: 1054, mode: `MaxEncodedLen`)
|
||||||
/// Storage: BridgeWococoParachain ImportedParaHeads (r:0 w:1)
|
/// Storage: `BridgeWestendParachains::ImportedParaHeads` (r:0 w:1)
|
||||||
/// Proof: BridgeWococoParachain ImportedParaHeads (max_values: Some(64), max_size: Some(196), added: 1186, mode: MaxEncodedLen)
|
/// Proof: `BridgeWestendParachains::ImportedParaHeads` (`max_values`: Some(64), `max_size`: Some(196), added: 1186, mode: `MaxEncodedLen`)
|
||||||
/// The range of component `p` is `[1, 2]`.
|
|
||||||
/// The range of component `p` is `[1, 2]`.
|
/// The range of component `p` is `[1, 2]`.
|
||||||
fn submit_parachain_heads_with_n_parachains(_p: u32, ) -> Weight {
|
fn submit_parachain_heads_with_n_parachains(_p: u32, ) -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `367`
|
// Measured: `434`
|
||||||
// Estimated: `2543`
|
// Estimated: `2543`
|
||||||
// Minimum execution time: 34_759_000 picoseconds.
|
// Minimum execution time: 31_987_000 picoseconds.
|
||||||
Weight::from_parts(35_709_034, 0)
|
Weight::from_parts(33_060_534, 0)
|
||||||
.saturating_add(Weight::from_parts(0, 2543))
|
.saturating_add(Weight::from_parts(0, 2543))
|
||||||
.saturating_add(T::DbWeight::get().reads(4))
|
.saturating_add(T::DbWeight::get().reads(4))
|
||||||
.saturating_add(T::DbWeight::get().writes(3))
|
.saturating_add(T::DbWeight::get().writes(3))
|
||||||
}
|
}
|
||||||
/// Storage: BridgeWococoParachain PalletOperatingMode (r:1 w:0)
|
/// Storage: `BridgeWestendParachains::PalletOperatingMode` (r:1 w:0)
|
||||||
/// Proof: BridgeWococoParachain PalletOperatingMode (max_values: Some(1), max_size: Some(1), added: 496, mode: MaxEncodedLen)
|
/// Proof: `BridgeWestendParachains::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(1), added: 496, mode: `MaxEncodedLen`)
|
||||||
/// Storage: BridgeWococoGrandpa ImportedHeaders (r:1 w:0)
|
/// Storage: `BridgeWestendGrandpa::ImportedHeaders` (r:1 w:0)
|
||||||
/// Proof: BridgeWococoGrandpa ImportedHeaders (max_values: Some(1024), max_size: Some(68), added: 1553, mode: MaxEncodedLen)
|
/// Proof: `BridgeWestendGrandpa::ImportedHeaders` (`max_values`: Some(1024), `max_size`: Some(68), added: 1553, mode: `MaxEncodedLen`)
|
||||||
/// Storage: BridgeWococoParachain ParasInfo (r:1 w:1)
|
/// Storage: `BridgeWestendParachains::ParasInfo` (r:1 w:1)
|
||||||
/// Proof: BridgeWococoParachain ParasInfo (max_values: Some(1), max_size: Some(60), added: 555, mode: MaxEncodedLen)
|
/// Proof: `BridgeWestendParachains::ParasInfo` (`max_values`: Some(1), `max_size`: Some(60), added: 555, mode: `MaxEncodedLen`)
|
||||||
/// Storage: BridgeWococoParachain ImportedParaHashes (r:1 w:1)
|
/// Storage: `BridgeWestendParachains::ImportedParaHashes` (r:1 w:1)
|
||||||
/// Proof: BridgeWococoParachain ImportedParaHashes (max_values: Some(64), max_size: Some(64), added: 1054, mode: MaxEncodedLen)
|
/// Proof: `BridgeWestendParachains::ImportedParaHashes` (`max_values`: Some(64), `max_size`: Some(64), added: 1054, mode: `MaxEncodedLen`)
|
||||||
/// Storage: BridgeWococoParachain ImportedParaHeads (r:0 w:1)
|
/// Storage: `BridgeWestendParachains::ImportedParaHeads` (r:0 w:1)
|
||||||
/// Proof: BridgeWococoParachain ImportedParaHeads (max_values: Some(64), max_size: Some(196), added: 1186, mode: MaxEncodedLen)
|
/// Proof: `BridgeWestendParachains::ImportedParaHeads` (`max_values`: Some(64), `max_size`: Some(196), added: 1186, mode: `MaxEncodedLen`)
|
||||||
fn submit_parachain_heads_with_1kb_proof() -> Weight {
|
fn submit_parachain_heads_with_1kb_proof() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `367`
|
// Measured: `434`
|
||||||
// Estimated: `2543`
|
// Estimated: `2543`
|
||||||
// Minimum execution time: 36_005_000 picoseconds.
|
// Minimum execution time: 33_360_000 picoseconds.
|
||||||
Weight::from_parts(36_492_000, 0)
|
Weight::from_parts(34_182_000, 0)
|
||||||
.saturating_add(Weight::from_parts(0, 2543))
|
.saturating_add(Weight::from_parts(0, 2543))
|
||||||
.saturating_add(T::DbWeight::get().reads(4))
|
.saturating_add(T::DbWeight::get().reads(4))
|
||||||
.saturating_add(T::DbWeight::get().writes(3))
|
.saturating_add(T::DbWeight::get().writes(3))
|
||||||
}
|
}
|
||||||
/// Storage: BridgeWococoParachain PalletOperatingMode (r:1 w:0)
|
/// Storage: `BridgeWestendParachains::PalletOperatingMode` (r:1 w:0)
|
||||||
/// Proof: BridgeWococoParachain PalletOperatingMode (max_values: Some(1), max_size: Some(1), added: 496, mode: MaxEncodedLen)
|
/// Proof: `BridgeWestendParachains::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(1), added: 496, mode: `MaxEncodedLen`)
|
||||||
/// Storage: BridgeWococoGrandpa ImportedHeaders (r:1 w:0)
|
/// Storage: `BridgeWestendGrandpa::ImportedHeaders` (r:1 w:0)
|
||||||
/// Proof: BridgeWococoGrandpa ImportedHeaders (max_values: Some(1024), max_size: Some(68), added: 1553, mode: MaxEncodedLen)
|
/// Proof: `BridgeWestendGrandpa::ImportedHeaders` (`max_values`: Some(1024), `max_size`: Some(68), added: 1553, mode: `MaxEncodedLen`)
|
||||||
/// Storage: BridgeWococoParachain ParasInfo (r:1 w:1)
|
/// Storage: `BridgeWestendParachains::ParasInfo` (r:1 w:1)
|
||||||
/// Proof: BridgeWococoParachain ParasInfo (max_values: Some(1), max_size: Some(60), added: 555, mode: MaxEncodedLen)
|
/// Proof: `BridgeWestendParachains::ParasInfo` (`max_values`: Some(1), `max_size`: Some(60), added: 555, mode: `MaxEncodedLen`)
|
||||||
/// Storage: BridgeWococoParachain ImportedParaHashes (r:1 w:1)
|
/// Storage: `BridgeWestendParachains::ImportedParaHashes` (r:1 w:1)
|
||||||
/// Proof: BridgeWococoParachain ImportedParaHashes (max_values: Some(64), max_size: Some(64), added: 1054, mode: MaxEncodedLen)
|
/// Proof: `BridgeWestendParachains::ImportedParaHashes` (`max_values`: Some(64), `max_size`: Some(64), added: 1054, mode: `MaxEncodedLen`)
|
||||||
/// Storage: BridgeWococoParachain ImportedParaHeads (r:0 w:1)
|
/// Storage: `BridgeWestendParachains::ImportedParaHeads` (r:0 w:1)
|
||||||
/// Proof: BridgeWococoParachain ImportedParaHeads (max_values: Some(64), max_size: Some(196), added: 1186, mode: MaxEncodedLen)
|
/// Proof: `BridgeWestendParachains::ImportedParaHeads` (`max_values`: Some(64), `max_size`: Some(196), added: 1186, mode: `MaxEncodedLen`)
|
||||||
fn submit_parachain_heads_with_16kb_proof() -> Weight {
|
fn submit_parachain_heads_with_16kb_proof() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `367`
|
// Measured: `434`
|
||||||
// Estimated: `2543`
|
// Estimated: `2543`
|
||||||
// Minimum execution time: 62_374_000 picoseconds.
|
// Minimum execution time: 65_246_000 picoseconds.
|
||||||
Weight::from_parts(62_977_000, 0)
|
Weight::from_parts(65_985_000, 0)
|
||||||
.saturating_add(Weight::from_parts(0, 2543))
|
.saturating_add(Weight::from_parts(0, 2543))
|
||||||
.saturating_add(T::DbWeight::get().reads(4))
|
.saturating_add(T::DbWeight::get().reads(4))
|
||||||
.saturating_add(T::DbWeight::get().writes(3))
|
.saturating_add(T::DbWeight::get().writes(3))
|
||||||
|
|||||||
-113
@@ -1,113 +0,0 @@
|
|||||||
// Copyright (C) Parity Technologies (UK) Ltd.
|
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
|
||||||
|
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
// you may not use this file except in compliance with the License.
|
|
||||||
// You may obtain a copy of the License at
|
|
||||||
//
|
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
// See the License for the specific language governing permissions and
|
|
||||||
// limitations under the License.
|
|
||||||
|
|
||||||
//! Autogenerated weights for `pallet_bridge_parachains`
|
|
||||||
//!
|
|
||||||
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
|
|
||||||
//! DATE: 2023-10-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
|
|
||||||
//! WORST CASE MAP SIZE: `1000000`
|
|
||||||
//! HOSTNAME: `runner-vmdtonbz-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
|
|
||||||
//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-rococo-dev")`, DB CACHE: 1024
|
|
||||||
|
|
||||||
// Executed Command:
|
|
||||||
// target/production/polkadot-parachain
|
|
||||||
// benchmark
|
|
||||||
// pallet
|
|
||||||
// --steps=50
|
|
||||||
// --repeat=20
|
|
||||||
// --extrinsic=*
|
|
||||||
// --wasm-execution=compiled
|
|
||||||
// --heap-pages=4096
|
|
||||||
// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json
|
|
||||||
// --pallet=pallet_bridge_parachains
|
|
||||||
// --chain=bridge-hub-rococo-dev
|
|
||||||
// --header=./cumulus/file_header.txt
|
|
||||||
// --output=./cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/
|
|
||||||
|
|
||||||
#![cfg_attr(rustfmt, rustfmt_skip)]
|
|
||||||
#![allow(unused_parens)]
|
|
||||||
#![allow(unused_imports)]
|
|
||||||
#![allow(missing_docs)]
|
|
||||||
|
|
||||||
use frame_support::{traits::Get, weights::Weight};
|
|
||||||
use core::marker::PhantomData;
|
|
||||||
|
|
||||||
/// Weight functions for `pallet_bridge_parachains`.
|
|
||||||
pub struct WeightInfo<T>(PhantomData<T>);
|
|
||||||
impl<T: frame_system::Config> pallet_bridge_parachains::WeightInfo for WeightInfo<T> {
|
|
||||||
/// Storage: `BridgeRococoParachain::PalletOperatingMode` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeRococoParachain::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(1), added: 496, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeRococoGrandpa::ImportedHeaders` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeRococoGrandpa::ImportedHeaders` (`max_values`: Some(1024), `max_size`: Some(68), added: 1553, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeRococoParachain::ParasInfo` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeRococoParachain::ParasInfo` (`max_values`: Some(1), `max_size`: Some(60), added: 555, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeRococoParachain::ImportedParaHashes` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeRococoParachain::ImportedParaHashes` (`max_values`: Some(64), `max_size`: Some(64), added: 1054, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeRococoParachain::ImportedParaHeads` (r:0 w:1)
|
|
||||||
/// Proof: `BridgeRococoParachain::ImportedParaHeads` (`max_values`: Some(64), `max_size`: Some(196), added: 1186, mode: `MaxEncodedLen`)
|
|
||||||
/// The range of component `p` is `[1, 2]`.
|
|
||||||
/// The range of component `p` is `[1, 2]`.
|
|
||||||
/// The range of component `p` is `[1, 2]`.
|
|
||||||
fn submit_parachain_heads_with_n_parachains(_p: u32, ) -> Weight {
|
|
||||||
// Proof Size summary in bytes:
|
|
||||||
// Measured: `367`
|
|
||||||
// Estimated: `2543`
|
|
||||||
// Minimum execution time: 31_241_000 picoseconds.
|
|
||||||
Weight::from_parts(32_488_584, 0)
|
|
||||||
.saturating_add(Weight::from_parts(0, 2543))
|
|
||||||
.saturating_add(T::DbWeight::get().reads(4))
|
|
||||||
.saturating_add(T::DbWeight::get().writes(3))
|
|
||||||
}
|
|
||||||
/// Storage: `BridgeRococoParachain::PalletOperatingMode` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeRococoParachain::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(1), added: 496, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeRococoGrandpa::ImportedHeaders` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeRococoGrandpa::ImportedHeaders` (`max_values`: Some(1024), `max_size`: Some(68), added: 1553, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeRococoParachain::ParasInfo` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeRococoParachain::ParasInfo` (`max_values`: Some(1), `max_size`: Some(60), added: 555, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeRococoParachain::ImportedParaHashes` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeRococoParachain::ImportedParaHashes` (`max_values`: Some(64), `max_size`: Some(64), added: 1054, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeRococoParachain::ImportedParaHeads` (r:0 w:1)
|
|
||||||
/// Proof: `BridgeRococoParachain::ImportedParaHeads` (`max_values`: Some(64), `max_size`: Some(196), added: 1186, mode: `MaxEncodedLen`)
|
|
||||||
fn submit_parachain_heads_with_1kb_proof() -> Weight {
|
|
||||||
// Proof Size summary in bytes:
|
|
||||||
// Measured: `367`
|
|
||||||
// Estimated: `2543`
|
|
||||||
// Minimum execution time: 32_962_000 picoseconds.
|
|
||||||
Weight::from_parts(33_658_000, 0)
|
|
||||||
.saturating_add(Weight::from_parts(0, 2543))
|
|
||||||
.saturating_add(T::DbWeight::get().reads(4))
|
|
||||||
.saturating_add(T::DbWeight::get().writes(3))
|
|
||||||
}
|
|
||||||
/// Storage: `BridgeRococoParachain::PalletOperatingMode` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeRococoParachain::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(1), added: 496, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeRococoGrandpa::ImportedHeaders` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeRococoGrandpa::ImportedHeaders` (`max_values`: Some(1024), `max_size`: Some(68), added: 1553, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeRococoParachain::ParasInfo` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeRococoParachain::ParasInfo` (`max_values`: Some(1), `max_size`: Some(60), added: 555, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeRococoParachain::ImportedParaHashes` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeRococoParachain::ImportedParaHashes` (`max_values`: Some(64), `max_size`: Some(64), added: 1054, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeRococoParachain::ImportedParaHeads` (r:0 w:1)
|
|
||||||
/// Proof: `BridgeRococoParachain::ImportedParaHeads` (`max_values`: Some(64), `max_size`: Some(196), added: 1186, mode: `MaxEncodedLen`)
|
|
||||||
fn submit_parachain_heads_with_16kb_proof() -> Weight {
|
|
||||||
// Proof Size summary in bytes:
|
|
||||||
// Measured: `367`
|
|
||||||
// Estimated: `2543`
|
|
||||||
// Minimum execution time: 62_685_000 picoseconds.
|
|
||||||
Weight::from_parts(64_589_000, 0)
|
|
||||||
.saturating_add(Weight::from_parts(0, 2543))
|
|
||||||
.saturating_add(T::DbWeight::get().reads(4))
|
|
||||||
.saturating_add(T::DbWeight::get().writes(3))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-116
@@ -1,116 +0,0 @@
|
|||||||
// Copyright (C) Parity Technologies (UK) Ltd.
|
|
||||||
// This file is part of Cumulus.
|
|
||||||
|
|
||||||
// Cumulus is free software: you can redistribute it and/or modify
|
|
||||||
// it under the terms of the GNU General Public License as published by
|
|
||||||
// the Free Software Foundation, either version 3 of the License, or
|
|
||||||
// (at your option) any later version.
|
|
||||||
|
|
||||||
// Cumulus is distributed in the hope that it will be useful,
|
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
// GNU General Public License for more details.
|
|
||||||
|
|
||||||
// You should have received a copy of the GNU General Public License
|
|
||||||
// along with Cumulus. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
//! Autogenerated weights for `pallet_bridge_parachains`
|
|
||||||
//!
|
|
||||||
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
|
|
||||||
//! DATE: 2023-10-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
|
|
||||||
//! WORST CASE MAP SIZE: `1000000`
|
|
||||||
//! HOSTNAME: `runner-vmdtonbz-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
|
|
||||||
//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-rococo-dev")`, DB CACHE: 1024
|
|
||||||
|
|
||||||
// Executed Command:
|
|
||||||
// target/production/polkadot-parachain
|
|
||||||
// benchmark
|
|
||||||
// pallet
|
|
||||||
// --steps=50
|
|
||||||
// --repeat=20
|
|
||||||
// --extrinsic=*
|
|
||||||
// --wasm-execution=compiled
|
|
||||||
// --heap-pages=4096
|
|
||||||
// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json
|
|
||||||
// --pallet=pallet_bridge_parachains
|
|
||||||
// --chain=bridge-hub-rococo-dev
|
|
||||||
// --header=./cumulus/file_header.txt
|
|
||||||
// --output=./cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/
|
|
||||||
|
|
||||||
#![cfg_attr(rustfmt, rustfmt_skip)]
|
|
||||||
#![allow(unused_parens)]
|
|
||||||
#![allow(unused_imports)]
|
|
||||||
#![allow(missing_docs)]
|
|
||||||
|
|
||||||
use frame_support::{traits::Get, weights::Weight};
|
|
||||||
use core::marker::PhantomData;
|
|
||||||
|
|
||||||
/// Weight functions for `pallet_bridge_parachains`.
|
|
||||||
pub struct WeightInfo<T>(PhantomData<T>);
|
|
||||||
impl<T: frame_system::Config> pallet_bridge_parachains::WeightInfo for WeightInfo<T> {
|
|
||||||
/// Storage: `BridgeWestendParachain::PalletOperatingMode` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeWestendParachain::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(1), added: 496, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeWestendGrandpa::ImportedHeaders` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeWestendGrandpa::ImportedHeaders` (`max_values`: Some(1024), `max_size`: Some(68), added: 1553, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeWestendParachain::ParasInfo` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeWestendParachain::ParasInfo` (`max_values`: Some(1), `max_size`: Some(60), added: 555, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeWestendParachain::ImportedParaHashes` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeWestendParachain::ImportedParaHashes` (`max_values`: Some(64), `max_size`: Some(64), added: 1054, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeWestendParachain::ImportedParaHeads` (r:0 w:1)
|
|
||||||
/// Proof: `BridgeWestendParachain::ImportedParaHeads` (`max_values`: Some(64), `max_size`: Some(196), added: 1186, mode: `MaxEncodedLen`)
|
|
||||||
/// The range of component `p` is `[1, 2]`.
|
|
||||||
/// The range of component `p` is `[1, 2]`.
|
|
||||||
/// The range of component `p` is `[1, 2]`.
|
|
||||||
fn submit_parachain_heads_with_n_parachains(p: u32, ) -> Weight {
|
|
||||||
// Proof Size summary in bytes:
|
|
||||||
// Measured: `468`
|
|
||||||
// Estimated: `2543`
|
|
||||||
// Minimum execution time: 31_493_000 picoseconds.
|
|
||||||
Weight::from_parts(32_511_270, 0)
|
|
||||||
.saturating_add(Weight::from_parts(0, 2543))
|
|
||||||
// Standard Error: 33_650
|
|
||||||
.saturating_add(Weight::from_parts(20_764, 0).saturating_mul(p.into()))
|
|
||||||
.saturating_add(T::DbWeight::get().reads(4))
|
|
||||||
.saturating_add(T::DbWeight::get().writes(3))
|
|
||||||
}
|
|
||||||
/// Storage: `BridgeWestendParachain::PalletOperatingMode` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeWestendParachain::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(1), added: 496, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeWestendGrandpa::ImportedHeaders` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeWestendGrandpa::ImportedHeaders` (`max_values`: Some(1024), `max_size`: Some(68), added: 1553, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeWestendParachain::ParasInfo` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeWestendParachain::ParasInfo` (`max_values`: Some(1), `max_size`: Some(60), added: 555, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeWestendParachain::ImportedParaHashes` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeWestendParachain::ImportedParaHashes` (`max_values`: Some(64), `max_size`: Some(64), added: 1054, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeWestendParachain::ImportedParaHeads` (r:0 w:1)
|
|
||||||
/// Proof: `BridgeWestendParachain::ImportedParaHeads` (`max_values`: Some(64), `max_size`: Some(196), added: 1186, mode: `MaxEncodedLen`)
|
|
||||||
fn submit_parachain_heads_with_1kb_proof() -> Weight {
|
|
||||||
// Proof Size summary in bytes:
|
|
||||||
// Measured: `468`
|
|
||||||
// Estimated: `2543`
|
|
||||||
// Minimum execution time: 32_976_000 picoseconds.
|
|
||||||
Weight::from_parts(33_647_000, 0)
|
|
||||||
.saturating_add(Weight::from_parts(0, 2543))
|
|
||||||
.saturating_add(T::DbWeight::get().reads(4))
|
|
||||||
.saturating_add(T::DbWeight::get().writes(3))
|
|
||||||
}
|
|
||||||
/// Storage: `BridgeWestendParachain::PalletOperatingMode` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeWestendParachain::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(1), added: 496, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeWestendGrandpa::ImportedHeaders` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeWestendGrandpa::ImportedHeaders` (`max_values`: Some(1024), `max_size`: Some(68), added: 1553, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeWestendParachain::ParasInfo` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeWestendParachain::ParasInfo` (`max_values`: Some(1), `max_size`: Some(60), added: 555, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeWestendParachain::ImportedParaHashes` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeWestendParachain::ImportedParaHashes` (`max_values`: Some(64), `max_size`: Some(64), added: 1054, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeWestendParachain::ImportedParaHeads` (r:0 w:1)
|
|
||||||
/// Proof: `BridgeWestendParachain::ImportedParaHeads` (`max_values`: Some(64), `max_size`: Some(196), added: 1186, mode: `MaxEncodedLen`)
|
|
||||||
fn submit_parachain_heads_with_16kb_proof() -> Weight {
|
|
||||||
// Proof Size summary in bytes:
|
|
||||||
// Measured: `468`
|
|
||||||
// Estimated: `2543`
|
|
||||||
// Minimum execution time: 62_898_000 picoseconds.
|
|
||||||
Weight::from_parts(64_463_000, 0)
|
|
||||||
.saturating_add(Weight::from_parts(0, 2543))
|
|
||||||
.saturating_add(T::DbWeight::get().reads(4))
|
|
||||||
.saturating_add(T::DbWeight::get().writes(3))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-115
@@ -1,115 +0,0 @@
|
|||||||
// Copyright (C) Parity Technologies (UK) Ltd.
|
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
|
||||||
|
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
// you may not use this file except in compliance with the License.
|
|
||||||
// You may obtain a copy of the License at
|
|
||||||
//
|
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
// See the License for the specific language governing permissions and
|
|
||||||
// limitations under the License.
|
|
||||||
|
|
||||||
//! Autogenerated weights for `pallet_bridge_parachains`
|
|
||||||
//!
|
|
||||||
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
|
|
||||||
//! DATE: 2023-10-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
|
|
||||||
//! WORST CASE MAP SIZE: `1000000`
|
|
||||||
//! HOSTNAME: `runner-vmdtonbz-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
|
|
||||||
//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-rococo-dev")`, DB CACHE: 1024
|
|
||||||
|
|
||||||
// Executed Command:
|
|
||||||
// target/production/polkadot-parachain
|
|
||||||
// benchmark
|
|
||||||
// pallet
|
|
||||||
// --steps=50
|
|
||||||
// --repeat=20
|
|
||||||
// --extrinsic=*
|
|
||||||
// --wasm-execution=compiled
|
|
||||||
// --heap-pages=4096
|
|
||||||
// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json
|
|
||||||
// --pallet=pallet_bridge_parachains
|
|
||||||
// --chain=bridge-hub-rococo-dev
|
|
||||||
// --header=./cumulus/file_header.txt
|
|
||||||
// --output=./cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/
|
|
||||||
|
|
||||||
#![cfg_attr(rustfmt, rustfmt_skip)]
|
|
||||||
#![allow(unused_parens)]
|
|
||||||
#![allow(unused_imports)]
|
|
||||||
#![allow(missing_docs)]
|
|
||||||
|
|
||||||
use frame_support::{traits::Get, weights::Weight};
|
|
||||||
use core::marker::PhantomData;
|
|
||||||
|
|
||||||
/// Weight functions for `pallet_bridge_parachains`.
|
|
||||||
pub struct WeightInfo<T>(PhantomData<T>);
|
|
||||||
impl<T: frame_system::Config> pallet_bridge_parachains::WeightInfo for WeightInfo<T> {
|
|
||||||
/// Storage: `BridgeWococoParachain::PalletOperatingMode` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeWococoParachain::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(1), added: 496, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeWococoGrandpa::ImportedHeaders` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeWococoGrandpa::ImportedHeaders` (`max_values`: Some(1024), `max_size`: Some(68), added: 1553, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeWococoParachain::ParasInfo` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeWococoParachain::ParasInfo` (`max_values`: Some(1), `max_size`: Some(60), added: 555, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeWococoParachain::ImportedParaHashes` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeWococoParachain::ImportedParaHashes` (`max_values`: Some(64), `max_size`: Some(64), added: 1054, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeWococoParachain::ImportedParaHeads` (r:0 w:1)
|
|
||||||
/// Proof: `BridgeWococoParachain::ImportedParaHeads` (`max_values`: Some(64), `max_size`: Some(196), added: 1186, mode: `MaxEncodedLen`)
|
|
||||||
/// The range of component `p` is `[1, 2]`.
|
|
||||||
/// The range of component `p` is `[1, 2]`.
|
|
||||||
/// The range of component `p` is `[1, 2]`.
|
|
||||||
fn submit_parachain_heads_with_n_parachains(p: u32, ) -> Weight {
|
|
||||||
// Proof Size summary in bytes:
|
|
||||||
// Measured: `435`
|
|
||||||
// Estimated: `2543`
|
|
||||||
// Minimum execution time: 31_573_000 picoseconds.
|
|
||||||
Weight::from_parts(32_739_400, 0)
|
|
||||||
.saturating_add(Weight::from_parts(0, 2543))
|
|
||||||
// Standard Error: 49_518
|
|
||||||
.saturating_add(Weight::from_parts(5_166, 0).saturating_mul(p.into()))
|
|
||||||
.saturating_add(T::DbWeight::get().reads(4))
|
|
||||||
.saturating_add(T::DbWeight::get().writes(3))
|
|
||||||
}
|
|
||||||
/// Storage: `BridgeWococoParachain::PalletOperatingMode` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeWococoParachain::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(1), added: 496, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeWococoGrandpa::ImportedHeaders` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeWococoGrandpa::ImportedHeaders` (`max_values`: Some(1024), `max_size`: Some(68), added: 1553, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeWococoParachain::ParasInfo` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeWococoParachain::ParasInfo` (`max_values`: Some(1), `max_size`: Some(60), added: 555, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeWococoParachain::ImportedParaHashes` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeWococoParachain::ImportedParaHashes` (`max_values`: Some(64), `max_size`: Some(64), added: 1054, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeWococoParachain::ImportedParaHeads` (r:0 w:1)
|
|
||||||
/// Proof: `BridgeWococoParachain::ImportedParaHeads` (`max_values`: Some(64), `max_size`: Some(196), added: 1186, mode: `MaxEncodedLen`)
|
|
||||||
fn submit_parachain_heads_with_1kb_proof() -> Weight {
|
|
||||||
// Proof Size summary in bytes:
|
|
||||||
// Measured: `435`
|
|
||||||
// Estimated: `2543`
|
|
||||||
// Minimum execution time: 32_780_000 picoseconds.
|
|
||||||
Weight::from_parts(33_797_000, 0)
|
|
||||||
.saturating_add(Weight::from_parts(0, 2543))
|
|
||||||
.saturating_add(T::DbWeight::get().reads(4))
|
|
||||||
.saturating_add(T::DbWeight::get().writes(3))
|
|
||||||
}
|
|
||||||
/// Storage: `BridgeWococoParachain::PalletOperatingMode` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeWococoParachain::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(1), added: 496, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeWococoGrandpa::ImportedHeaders` (r:1 w:0)
|
|
||||||
/// Proof: `BridgeWococoGrandpa::ImportedHeaders` (`max_values`: Some(1024), `max_size`: Some(68), added: 1553, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeWococoParachain::ParasInfo` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeWococoParachain::ParasInfo` (`max_values`: Some(1), `max_size`: Some(60), added: 555, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeWococoParachain::ImportedParaHashes` (r:1 w:1)
|
|
||||||
/// Proof: `BridgeWococoParachain::ImportedParaHashes` (`max_values`: Some(64), `max_size`: Some(64), added: 1054, mode: `MaxEncodedLen`)
|
|
||||||
/// Storage: `BridgeWococoParachain::ImportedParaHeads` (r:0 w:1)
|
|
||||||
/// Proof: `BridgeWococoParachain::ImportedParaHeads` (`max_values`: Some(64), `max_size`: Some(196), added: 1186, mode: `MaxEncodedLen`)
|
|
||||||
fn submit_parachain_heads_with_16kb_proof() -> Weight {
|
|
||||||
// Proof Size summary in bytes:
|
|
||||||
// Measured: `435`
|
|
||||||
// Estimated: `2543`
|
|
||||||
// Minimum execution time: 62_847_000 picoseconds.
|
|
||||||
Weight::from_parts(63_991_000, 0)
|
|
||||||
.saturating_add(Weight::from_parts(0, 2543))
|
|
||||||
.saturating_add(T::DbWeight::get().reads(4))
|
|
||||||
.saturating_add(T::DbWeight::get().writes(3))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+25
-24
@@ -1,24 +1,25 @@
|
|||||||
// Copyright (C) Parity Technologies (UK) Ltd.
|
// Copyright (C) Parity Technologies (UK) Ltd.
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// This file is part of Cumulus.
|
||||||
|
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
// Cumulus is free software: you can redistribute it and/or modify
|
||||||
// you may not use this file except in compliance with the License.
|
// it under the terms of the GNU General Public License as published by
|
||||||
// You may obtain a copy of the License at
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
//
|
// (at your option) any later version.
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
// Cumulus is distributed in the hope that it will be useful,
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
// GNU General Public License for more details.
|
||||||
// See the License for the specific language governing permissions and
|
|
||||||
// limitations under the License.
|
// You should have received a copy of the GNU General Public License
|
||||||
|
// along with Cumulus. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
//! Autogenerated weights for `pallet_bridge_relayers`
|
//! Autogenerated weights for `pallet_bridge_relayers`
|
||||||
//!
|
//!
|
||||||
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
|
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
|
||||||
//! DATE: 2023-10-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
|
//! DATE: 2023-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
|
||||||
//! WORST CASE MAP SIZE: `1000000`
|
//! WORST CASE MAP SIZE: `1000000`
|
||||||
//! HOSTNAME: `runner-vmdtonbz-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
|
//! HOSTNAME: `runner-yprdrvc7-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
|
||||||
//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-rococo-dev")`, DB CACHE: 1024
|
//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-rococo-dev")`, DB CACHE: 1024
|
||||||
|
|
||||||
// Executed Command:
|
// Executed Command:
|
||||||
@@ -55,8 +56,8 @@ impl<T: frame_system::Config> pallet_bridge_relayers::WeightInfo for WeightInfo<
|
|||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `207`
|
// Measured: `207`
|
||||||
// Estimated: `3593`
|
// Estimated: `3593`
|
||||||
// Minimum execution time: 45_338_000 picoseconds.
|
// Minimum execution time: 46_579_000 picoseconds.
|
||||||
Weight::from_parts(45_836_000, 0)
|
Weight::from_parts(48_298_000, 0)
|
||||||
.saturating_add(Weight::from_parts(0, 3593))
|
.saturating_add(Weight::from_parts(0, 3593))
|
||||||
.saturating_add(T::DbWeight::get().reads(2))
|
.saturating_add(T::DbWeight::get().reads(2))
|
||||||
.saturating_add(T::DbWeight::get().writes(2))
|
.saturating_add(T::DbWeight::get().writes(2))
|
||||||
@@ -71,8 +72,8 @@ impl<T: frame_system::Config> pallet_bridge_relayers::WeightInfo for WeightInfo<
|
|||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `61`
|
// Measured: `61`
|
||||||
// Estimated: `4714`
|
// Estimated: `4714`
|
||||||
// Minimum execution time: 23_561_000 picoseconds.
|
// Minimum execution time: 24_219_000 picoseconds.
|
||||||
Weight::from_parts(24_012_000, 0)
|
Weight::from_parts(24_993_000, 0)
|
||||||
.saturating_add(Weight::from_parts(0, 4714))
|
.saturating_add(Weight::from_parts(0, 4714))
|
||||||
.saturating_add(T::DbWeight::get().reads(3))
|
.saturating_add(T::DbWeight::get().reads(3))
|
||||||
.saturating_add(T::DbWeight::get().writes(2))
|
.saturating_add(T::DbWeight::get().writes(2))
|
||||||
@@ -85,8 +86,8 @@ impl<T: frame_system::Config> pallet_bridge_relayers::WeightInfo for WeightInfo<
|
|||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `160`
|
// Measured: `160`
|
||||||
// Estimated: `4714`
|
// Estimated: `4714`
|
||||||
// Minimum execution time: 25_133_000 picoseconds.
|
// Minimum execution time: 26_279_000 picoseconds.
|
||||||
Weight::from_parts(25_728_000, 0)
|
Weight::from_parts(26_810_000, 0)
|
||||||
.saturating_add(Weight::from_parts(0, 4714))
|
.saturating_add(Weight::from_parts(0, 4714))
|
||||||
.saturating_add(T::DbWeight::get().reads(2))
|
.saturating_add(T::DbWeight::get().reads(2))
|
||||||
.saturating_add(T::DbWeight::get().writes(2))
|
.saturating_add(T::DbWeight::get().writes(2))
|
||||||
@@ -101,8 +102,8 @@ impl<T: frame_system::Config> pallet_bridge_relayers::WeightInfo for WeightInfo<
|
|||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `263`
|
// Measured: `263`
|
||||||
// Estimated: `4714`
|
// Estimated: `4714`
|
||||||
// Minimum execution time: 27_356_000 picoseconds.
|
// Minimum execution time: 27_672_000 picoseconds.
|
||||||
Weight::from_parts(27_828_000, 0)
|
Weight::from_parts(28_946_000, 0)
|
||||||
.saturating_add(Weight::from_parts(0, 4714))
|
.saturating_add(Weight::from_parts(0, 4714))
|
||||||
.saturating_add(T::DbWeight::get().reads(3))
|
.saturating_add(T::DbWeight::get().reads(3))
|
||||||
.saturating_add(T::DbWeight::get().writes(3))
|
.saturating_add(T::DbWeight::get().writes(3))
|
||||||
@@ -113,8 +114,8 @@ impl<T: frame_system::Config> pallet_bridge_relayers::WeightInfo for WeightInfo<
|
|||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `6`
|
// Measured: `6`
|
||||||
// Estimated: `3538`
|
// Estimated: `3538`
|
||||||
// Minimum execution time: 2_955_000 picoseconds.
|
// Minimum execution time: 5_487_000 picoseconds.
|
||||||
Weight::from_parts(3_084_000, 0)
|
Weight::from_parts(5_725_000, 0)
|
||||||
.saturating_add(Weight::from_parts(0, 3538))
|
.saturating_add(Weight::from_parts(0, 3538))
|
||||||
.saturating_add(T::DbWeight::get().reads(1))
|
.saturating_add(T::DbWeight::get().reads(1))
|
||||||
.saturating_add(T::DbWeight::get().writes(1))
|
.saturating_add(T::DbWeight::get().writes(1))
|
||||||
|
|||||||
+40
-47
@@ -1,24 +1,25 @@
|
|||||||
// Copyright (C) Parity Technologies (UK) Ltd.
|
// Copyright (C) Parity Technologies (UK) Ltd.
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// This file is part of Cumulus.
|
||||||
|
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
// Cumulus is free software: you can redistribute it and/or modify
|
||||||
// you may not use this file except in compliance with the License.
|
// it under the terms of the GNU General Public License as published by
|
||||||
// You may obtain a copy of the License at
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
//
|
// (at your option) any later version.
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
// Cumulus is distributed in the hope that it will be useful,
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
// GNU General Public License for more details.
|
||||||
// See the License for the specific language governing permissions and
|
|
||||||
// limitations under the License.
|
// You should have received a copy of the GNU General Public License
|
||||||
|
// along with Cumulus. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
//! Autogenerated weights for `pallet_xcm_benchmarks::fungible`
|
//! Autogenerated weights for `pallet_xcm_benchmarks::fungible`
|
||||||
//!
|
//!
|
||||||
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
|
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
|
||||||
//! DATE: 2023-10-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
|
//! DATE: 2023-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
|
||||||
//! WORST CASE MAP SIZE: `1000000`
|
//! WORST CASE MAP SIZE: `1000000`
|
||||||
//! HOSTNAME: `runner-vmdtonbz-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
|
//! HOSTNAME: `runner-yprdrvc7-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
|
||||||
//! WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-rococo-dev"), DB CACHE: 1024
|
//! WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-rococo-dev"), DB CACHE: 1024
|
||||||
|
|
||||||
// Executed Command:
|
// Executed Command:
|
||||||
@@ -53,8 +54,8 @@ impl<T: frame_system::Config> WeightInfo<T> {
|
|||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `101`
|
// Measured: `101`
|
||||||
// Estimated: `3593`
|
// Estimated: `3593`
|
||||||
// Minimum execution time: 19_037_000 picoseconds.
|
// Minimum execution time: 19_610_000 picoseconds.
|
||||||
Weight::from_parts(19_602_000, 3593)
|
Weight::from_parts(19_980_000, 3593)
|
||||||
.saturating_add(T::DbWeight::get().reads(1))
|
.saturating_add(T::DbWeight::get().reads(1))
|
||||||
.saturating_add(T::DbWeight::get().writes(1))
|
.saturating_add(T::DbWeight::get().writes(1))
|
||||||
}
|
}
|
||||||
@@ -64,15 +65,13 @@ impl<T: frame_system::Config> WeightInfo<T> {
|
|||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `153`
|
// Measured: `153`
|
||||||
// Estimated: `6196`
|
// Estimated: `6196`
|
||||||
// Minimum execution time: 43_115_000 picoseconds.
|
// Minimum execution time: 44_411_000 picoseconds.
|
||||||
Weight::from_parts(43_897_000, 6196)
|
Weight::from_parts(45_110_000, 6196)
|
||||||
.saturating_add(T::DbWeight::get().reads(2))
|
.saturating_add(T::DbWeight::get().reads(2))
|
||||||
.saturating_add(T::DbWeight::get().writes(2))
|
.saturating_add(T::DbWeight::get().writes(2))
|
||||||
}
|
}
|
||||||
// Storage: `System::Account` (r:3 w:3)
|
// Storage: `System::Account` (r:3 w:3)
|
||||||
// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
|
// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
|
||||||
// Storage: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
|
||||||
// Proof: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
|
||||||
// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
||||||
// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
||||||
// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0)
|
// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0)
|
||||||
@@ -89,11 +88,11 @@ impl<T: frame_system::Config> WeightInfo<T> {
|
|||||||
// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
||||||
pub fn transfer_reserve_asset() -> Weight {
|
pub fn transfer_reserve_asset() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `294`
|
// Measured: `223`
|
||||||
// Estimated: `8799`
|
// Estimated: `8799`
|
||||||
// Minimum execution time: 90_267_000 picoseconds.
|
// Minimum execution time: 89_739_000 picoseconds.
|
||||||
Weight::from_parts(91_460_000, 8799)
|
Weight::from_parts(91_256_000, 8799)
|
||||||
.saturating_add(T::DbWeight::get().reads(11))
|
.saturating_add(T::DbWeight::get().reads(10))
|
||||||
.saturating_add(T::DbWeight::get().writes(5))
|
.saturating_add(T::DbWeight::get().writes(5))
|
||||||
}
|
}
|
||||||
// Storage: `Benchmark::Override` (r:0 w:0)
|
// Storage: `Benchmark::Override` (r:0 w:0)
|
||||||
@@ -105,8 +104,6 @@ impl<T: frame_system::Config> WeightInfo<T> {
|
|||||||
// Minimum execution time: 18_446_744_073_709_551_000 picoseconds.
|
// Minimum execution time: 18_446_744_073_709_551_000 picoseconds.
|
||||||
Weight::from_parts(18_446_744_073_709_551_000, 0)
|
Weight::from_parts(18_446_744_073_709_551_000, 0)
|
||||||
}
|
}
|
||||||
// Storage: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
|
||||||
// Proof: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
|
||||||
// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
||||||
// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
||||||
// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0)
|
// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0)
|
||||||
@@ -125,19 +122,19 @@ impl<T: frame_system::Config> WeightInfo<T> {
|
|||||||
// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
||||||
pub fn initiate_reserve_withdraw() -> Weight {
|
pub fn initiate_reserve_withdraw() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `242`
|
// Measured: `171`
|
||||||
// Estimated: `6196`
|
// Estimated: `6196`
|
||||||
// Minimum execution time: 60_477_000 picoseconds.
|
// Minimum execution time: 60_045_000 picoseconds.
|
||||||
Weight::from_parts(61_314_000, 6196)
|
Weight::from_parts(60_710_000, 6196)
|
||||||
.saturating_add(T::DbWeight::get().reads(10))
|
.saturating_add(T::DbWeight::get().reads(9))
|
||||||
.saturating_add(T::DbWeight::get().writes(4))
|
.saturating_add(T::DbWeight::get().writes(4))
|
||||||
}
|
}
|
||||||
pub fn receive_teleported_asset() -> Weight {
|
pub fn receive_teleported_asset() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `0`
|
// Measured: `0`
|
||||||
// Estimated: `0`
|
// Estimated: `0`
|
||||||
// Minimum execution time: 2_996_000 picoseconds.
|
// Minimum execution time: 3_257_000 picoseconds.
|
||||||
Weight::from_parts(3_107_000, 0)
|
Weight::from_parts(3_392_000, 0)
|
||||||
}
|
}
|
||||||
// Storage: `System::Account` (r:1 w:1)
|
// Storage: `System::Account` (r:1 w:1)
|
||||||
// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
|
// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
|
||||||
@@ -145,15 +142,13 @@ impl<T: frame_system::Config> WeightInfo<T> {
|
|||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `52`
|
// Measured: `52`
|
||||||
// Estimated: `3593`
|
// Estimated: `3593`
|
||||||
// Minimum execution time: 18_907_000 picoseconds.
|
// Minimum execution time: 19_423_000 picoseconds.
|
||||||
Weight::from_parts(19_475_000, 3593)
|
Weight::from_parts(19_823_000, 3593)
|
||||||
.saturating_add(T::DbWeight::get().reads(1))
|
.saturating_add(T::DbWeight::get().reads(1))
|
||||||
.saturating_add(T::DbWeight::get().writes(1))
|
.saturating_add(T::DbWeight::get().writes(1))
|
||||||
}
|
}
|
||||||
// Storage: `System::Account` (r:2 w:2)
|
// Storage: `System::Account` (r:2 w:2)
|
||||||
// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
|
// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
|
||||||
// Storage: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
|
||||||
// Proof: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
|
||||||
// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
||||||
// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
||||||
// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0)
|
// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0)
|
||||||
@@ -170,15 +165,13 @@ impl<T: frame_system::Config> WeightInfo<T> {
|
|||||||
// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
||||||
pub fn deposit_reserve_asset() -> Weight {
|
pub fn deposit_reserve_asset() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `193`
|
// Measured: `122`
|
||||||
// Estimated: `6196`
|
// Estimated: `6196`
|
||||||
// Minimum execution time: 59_143_000 picoseconds.
|
// Minimum execution time: 60_484_000 picoseconds.
|
||||||
Weight::from_parts(60_316_000, 6196)
|
Weight::from_parts(61_634_000, 6196)
|
||||||
.saturating_add(T::DbWeight::get().reads(10))
|
.saturating_add(T::DbWeight::get().reads(9))
|
||||||
.saturating_add(T::DbWeight::get().writes(4))
|
.saturating_add(T::DbWeight::get().writes(4))
|
||||||
}
|
}
|
||||||
// Storage: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
|
||||||
// Proof: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
|
||||||
// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
||||||
// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
||||||
// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0)
|
// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0)
|
||||||
@@ -197,11 +190,11 @@ impl<T: frame_system::Config> WeightInfo<T> {
|
|||||||
// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
||||||
pub fn initiate_teleport() -> Weight {
|
pub fn initiate_teleport() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `141`
|
// Measured: `70`
|
||||||
// Estimated: `3606`
|
// Estimated: `3593`
|
||||||
// Minimum execution time: 44_459_000 picoseconds.
|
// Minimum execution time: 44_863_000 picoseconds.
|
||||||
Weight::from_parts(45_365_000, 3606)
|
Weight::from_parts(45_549_000, 3593)
|
||||||
.saturating_add(T::DbWeight::get().reads(9))
|
.saturating_add(T::DbWeight::get().reads(8))
|
||||||
.saturating_add(T::DbWeight::get().writes(3))
|
.saturating_add(T::DbWeight::get().writes(3))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+100
-109
@@ -1,24 +1,25 @@
|
|||||||
// Copyright (C) Parity Technologies (UK) Ltd.
|
// Copyright (C) Parity Technologies (UK) Ltd.
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// This file is part of Cumulus.
|
||||||
|
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
// Cumulus is free software: you can redistribute it and/or modify
|
||||||
// you may not use this file except in compliance with the License.
|
// it under the terms of the GNU General Public License as published by
|
||||||
// You may obtain a copy of the License at
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
//
|
// (at your option) any later version.
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
// Cumulus is distributed in the hope that it will be useful,
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
// GNU General Public License for more details.
|
||||||
// See the License for the specific language governing permissions and
|
|
||||||
// limitations under the License.
|
// You should have received a copy of the GNU General Public License
|
||||||
|
// along with Cumulus. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
//! Autogenerated weights for `pallet_xcm_benchmarks::generic`
|
//! Autogenerated weights for `pallet_xcm_benchmarks::generic`
|
||||||
//!
|
//!
|
||||||
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
|
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
|
||||||
//! DATE: 2023-10-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
|
//! DATE: 2023-11-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
|
||||||
//! WORST CASE MAP SIZE: `1000000`
|
//! WORST CASE MAP SIZE: `1000000`
|
||||||
//! HOSTNAME: `runner-vmdtonbz-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
|
//! HOSTNAME: `runner-yprdrvc7-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
|
||||||
//! WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-rococo-dev"), DB CACHE: 1024
|
//! WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-rococo-dev"), DB CACHE: 1024
|
||||||
|
|
||||||
// Executed Command:
|
// Executed Command:
|
||||||
@@ -47,8 +48,6 @@ use sp_std::marker::PhantomData;
|
|||||||
/// Weights for `pallet_xcm_benchmarks::generic`.
|
/// Weights for `pallet_xcm_benchmarks::generic`.
|
||||||
pub struct WeightInfo<T>(PhantomData<T>);
|
pub struct WeightInfo<T>(PhantomData<T>);
|
||||||
impl<T: frame_system::Config> WeightInfo<T> {
|
impl<T: frame_system::Config> WeightInfo<T> {
|
||||||
// Storage: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
|
||||||
// Proof: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
|
||||||
// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
||||||
// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
||||||
// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0)
|
// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0)
|
||||||
@@ -67,81 +66,79 @@ impl<T: frame_system::Config> WeightInfo<T> {
|
|||||||
// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
||||||
pub fn report_holding() -> Weight {
|
pub fn report_holding() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `242`
|
// Measured: `171`
|
||||||
// Estimated: `6196`
|
// Estimated: `6196`
|
||||||
// Minimum execution time: 62_732_000 picoseconds.
|
// Minimum execution time: 63_453_000 picoseconds.
|
||||||
Weight::from_parts(64_581_000, 6196)
|
Weight::from_parts(64_220_000, 6196)
|
||||||
.saturating_add(T::DbWeight::get().reads(10))
|
.saturating_add(T::DbWeight::get().reads(9))
|
||||||
.saturating_add(T::DbWeight::get().writes(4))
|
.saturating_add(T::DbWeight::get().writes(4))
|
||||||
}
|
}
|
||||||
pub fn buy_execution() -> Weight {
|
pub fn buy_execution() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `0`
|
// Measured: `0`
|
||||||
// Estimated: `0`
|
// Estimated: `0`
|
||||||
// Minimum execution time: 1_987_000 picoseconds.
|
// Minimum execution time: 2_238_000 picoseconds.
|
||||||
Weight::from_parts(2_107_000, 0)
|
Weight::from_parts(2_351_000, 0)
|
||||||
}
|
}
|
||||||
// Storage: `PolkadotXcm::Queries` (r:1 w:0)
|
// Storage: `PolkadotXcm::Queries` (r:1 w:0)
|
||||||
// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
||||||
pub fn query_response() -> Weight {
|
pub fn query_response() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `103`
|
// Measured: `32`
|
||||||
// Estimated: `3568`
|
// Estimated: `3497`
|
||||||
// Minimum execution time: 8_098_000 picoseconds.
|
// Minimum execution time: 7_953_000 picoseconds.
|
||||||
Weight::from_parts(8_564_000, 3568)
|
Weight::from_parts(8_162_000, 3497)
|
||||||
.saturating_add(T::DbWeight::get().reads(1))
|
.saturating_add(T::DbWeight::get().reads(1))
|
||||||
}
|
}
|
||||||
pub fn transact() -> Weight {
|
pub fn transact() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `0`
|
// Measured: `0`
|
||||||
// Estimated: `0`
|
// Estimated: `0`
|
||||||
// Minimum execution time: 8_539_000 picoseconds.
|
// Minimum execution time: 9_080_000 picoseconds.
|
||||||
Weight::from_parts(9_085_000, 0)
|
Weight::from_parts(9_333_000, 0)
|
||||||
}
|
}
|
||||||
pub fn refund_surplus() -> Weight {
|
pub fn refund_surplus() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `0`
|
// Measured: `0`
|
||||||
// Estimated: `0`
|
// Estimated: `0`
|
||||||
// Minimum execution time: 2_205_000 picoseconds.
|
// Minimum execution time: 2_415_000 picoseconds.
|
||||||
Weight::from_parts(2_369_000, 0)
|
Weight::from_parts(2_519_000, 0)
|
||||||
}
|
}
|
||||||
pub fn set_error_handler() -> Weight {
|
pub fn set_error_handler() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `0`
|
// Measured: `0`
|
||||||
// Estimated: `0`
|
// Estimated: `0`
|
||||||
// Minimum execution time: 1_828_000 picoseconds.
|
// Minimum execution time: 2_045_000 picoseconds.
|
||||||
Weight::from_parts(1_994_000, 0)
|
Weight::from_parts(2_184_000, 0)
|
||||||
}
|
}
|
||||||
pub fn set_appendix() -> Weight {
|
pub fn set_appendix() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `0`
|
// Measured: `0`
|
||||||
// Estimated: `0`
|
// Estimated: `0`
|
||||||
// Minimum execution time: 1_869_000 picoseconds.
|
// Minimum execution time: 2_065_000 picoseconds.
|
||||||
Weight::from_parts(1_946_000, 0)
|
Weight::from_parts(2_125_000, 0)
|
||||||
}
|
}
|
||||||
pub fn clear_error() -> Weight {
|
pub fn clear_error() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `0`
|
// Measured: `0`
|
||||||
// Estimated: `0`
|
// Estimated: `0`
|
||||||
// Minimum execution time: 1_842_000 picoseconds.
|
// Minimum execution time: 2_077_000 picoseconds.
|
||||||
Weight::from_parts(1_949_000, 0)
|
Weight::from_parts(2_164_000, 0)
|
||||||
}
|
}
|
||||||
pub fn descend_origin() -> Weight {
|
pub fn descend_origin() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `0`
|
// Measured: `0`
|
||||||
// Estimated: `0`
|
// Estimated: `0`
|
||||||
// Minimum execution time: 2_460_000 picoseconds.
|
// Minimum execution time: 2_868_000 picoseconds.
|
||||||
Weight::from_parts(2_593_000, 0)
|
Weight::from_parts(2_933_000, 0)
|
||||||
}
|
}
|
||||||
pub fn clear_origin() -> Weight {
|
pub fn clear_origin() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `0`
|
// Measured: `0`
|
||||||
// Estimated: `0`
|
// Estimated: `0`
|
||||||
// Minimum execution time: 1_868_000 picoseconds.
|
// Minimum execution time: 2_058_000 picoseconds.
|
||||||
Weight::from_parts(2_003_000, 0)
|
Weight::from_parts(2_164_000, 0)
|
||||||
}
|
}
|
||||||
// Storage: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
|
||||||
// Proof: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
|
||||||
// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
||||||
// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
||||||
// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0)
|
// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0)
|
||||||
@@ -160,21 +157,21 @@ impl<T: frame_system::Config> WeightInfo<T> {
|
|||||||
// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
||||||
pub fn report_error() -> Weight {
|
pub fn report_error() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `242`
|
// Measured: `171`
|
||||||
// Estimated: `6196`
|
// Estimated: `6196`
|
||||||
// Minimum execution time: 56_813_000 picoseconds.
|
// Minimum execution time: 55_971_000 picoseconds.
|
||||||
Weight::from_parts(57_728_000, 6196)
|
Weight::from_parts(56_869_000, 6196)
|
||||||
.saturating_add(T::DbWeight::get().reads(10))
|
.saturating_add(T::DbWeight::get().reads(9))
|
||||||
.saturating_add(T::DbWeight::get().writes(4))
|
.saturating_add(T::DbWeight::get().writes(4))
|
||||||
}
|
}
|
||||||
// Storage: `PolkadotXcm::AssetTraps` (r:1 w:1)
|
// Storage: `PolkadotXcm::AssetTraps` (r:1 w:1)
|
||||||
// Proof: `PolkadotXcm::AssetTraps` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
// Proof: `PolkadotXcm::AssetTraps` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
||||||
pub fn claim_asset() -> Weight {
|
pub fn claim_asset() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `160`
|
// Measured: `90`
|
||||||
// Estimated: `3625`
|
// Estimated: `3555`
|
||||||
// Minimum execution time: 11_364_000 picoseconds.
|
// Minimum execution time: 11_382_000 picoseconds.
|
||||||
Weight::from_parts(11_872_000, 3625)
|
Weight::from_parts(11_672_000, 3555)
|
||||||
.saturating_add(T::DbWeight::get().reads(1))
|
.saturating_add(T::DbWeight::get().reads(1))
|
||||||
.saturating_add(T::DbWeight::get().writes(1))
|
.saturating_add(T::DbWeight::get().writes(1))
|
||||||
}
|
}
|
||||||
@@ -182,8 +179,8 @@ impl<T: frame_system::Config> WeightInfo<T> {
|
|||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `0`
|
// Measured: `0`
|
||||||
// Estimated: `0`
|
// Estimated: `0`
|
||||||
// Minimum execution time: 1_821_000 picoseconds.
|
// Minimum execution time: 2_071_000 picoseconds.
|
||||||
Weight::from_parts(1_936_000, 0)
|
Weight::from_parts(2_193_000, 0)
|
||||||
}
|
}
|
||||||
// Storage: `PolkadotXcm::VersionNotifyTargets` (r:1 w:1)
|
// Storage: `PolkadotXcm::VersionNotifyTargets` (r:1 w:1)
|
||||||
// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
||||||
@@ -201,10 +198,10 @@ impl<T: frame_system::Config> WeightInfo<T> {
|
|||||||
// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
||||||
pub fn subscribe_version() -> Weight {
|
pub fn subscribe_version() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `109`
|
// Measured: `38`
|
||||||
// Estimated: `3574`
|
// Estimated: `3503`
|
||||||
// Minimum execution time: 23_081_000 picoseconds.
|
// Minimum execution time: 22_573_000 picoseconds.
|
||||||
Weight::from_parts(23_512_000, 3574)
|
Weight::from_parts(23_423_000, 3503)
|
||||||
.saturating_add(T::DbWeight::get().reads(7))
|
.saturating_add(T::DbWeight::get().reads(7))
|
||||||
.saturating_add(T::DbWeight::get().writes(3))
|
.saturating_add(T::DbWeight::get().writes(3))
|
||||||
}
|
}
|
||||||
@@ -214,47 +211,45 @@ impl<T: frame_system::Config> WeightInfo<T> {
|
|||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `0`
|
// Measured: `0`
|
||||||
// Estimated: `0`
|
// Estimated: `0`
|
||||||
// Minimum execution time: 3_747_000 picoseconds.
|
// Minimum execution time: 3_870_000 picoseconds.
|
||||||
Weight::from_parts(4_068_000, 0)
|
Weight::from_parts(3_993_000, 0)
|
||||||
.saturating_add(T::DbWeight::get().writes(1))
|
.saturating_add(T::DbWeight::get().writes(1))
|
||||||
}
|
}
|
||||||
pub fn burn_asset() -> Weight {
|
pub fn burn_asset() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `0`
|
// Measured: `0`
|
||||||
// Estimated: `0`
|
// Estimated: `0`
|
||||||
// Minimum execution time: 3_045_000 picoseconds.
|
// Minimum execution time: 3_483_000 picoseconds.
|
||||||
Weight::from_parts(3_208_000, 0)
|
Weight::from_parts(3_598_000, 0)
|
||||||
}
|
}
|
||||||
pub fn expect_asset() -> Weight {
|
pub fn expect_asset() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `0`
|
// Measured: `0`
|
||||||
// Estimated: `0`
|
// Estimated: `0`
|
||||||
// Minimum execution time: 1_962_000 picoseconds.
|
// Minimum execution time: 2_241_000 picoseconds.
|
||||||
Weight::from_parts(2_284_000, 0)
|
Weight::from_parts(2_297_000, 0)
|
||||||
}
|
}
|
||||||
pub fn expect_origin() -> Weight {
|
pub fn expect_origin() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `0`
|
// Measured: `0`
|
||||||
// Estimated: `0`
|
// Estimated: `0`
|
||||||
// Minimum execution time: 1_951_000 picoseconds.
|
// Minimum execution time: 2_230_000 picoseconds.
|
||||||
Weight::from_parts(2_026_000, 0)
|
Weight::from_parts(2_318_000, 0)
|
||||||
}
|
}
|
||||||
pub fn expect_error() -> Weight {
|
pub fn expect_error() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `0`
|
// Measured: `0`
|
||||||
// Estimated: `0`
|
// Estimated: `0`
|
||||||
// Minimum execution time: 1_837_000 picoseconds.
|
// Minimum execution time: 2_051_000 picoseconds.
|
||||||
Weight::from_parts(2_084_000, 0)
|
Weight::from_parts(2_153_000, 0)
|
||||||
}
|
}
|
||||||
pub fn expect_transact_status() -> Weight {
|
pub fn expect_transact_status() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `0`
|
// Measured: `0`
|
||||||
// Estimated: `0`
|
// Estimated: `0`
|
||||||
// Minimum execution time: 2_042_000 picoseconds.
|
// Minimum execution time: 2_306_000 picoseconds.
|
||||||
Weight::from_parts(2_145_000, 0)
|
Weight::from_parts(2_380_000, 0)
|
||||||
}
|
}
|
||||||
// Storage: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
|
||||||
// Proof: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
|
||||||
// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
||||||
// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
||||||
// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0)
|
// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0)
|
||||||
@@ -273,22 +268,20 @@ impl<T: frame_system::Config> WeightInfo<T> {
|
|||||||
// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
||||||
pub fn query_pallet() -> Weight {
|
pub fn query_pallet() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `242`
|
// Measured: `171`
|
||||||
// Estimated: `6196`
|
// Estimated: `6196`
|
||||||
// Minimum execution time: 61_350_000 picoseconds.
|
// Minimum execution time: 60_201_000 picoseconds.
|
||||||
Weight::from_parts(62_440_000, 6196)
|
Weight::from_parts(61_132_000, 6196)
|
||||||
.saturating_add(T::DbWeight::get().reads(10))
|
.saturating_add(T::DbWeight::get().reads(9))
|
||||||
.saturating_add(T::DbWeight::get().writes(4))
|
.saturating_add(T::DbWeight::get().writes(4))
|
||||||
}
|
}
|
||||||
pub fn expect_pallet() -> Weight {
|
pub fn expect_pallet() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `0`
|
// Measured: `0`
|
||||||
// Estimated: `0`
|
// Estimated: `0`
|
||||||
// Minimum execution time: 4_993_000 picoseconds.
|
// Minimum execution time: 4_554_000 picoseconds.
|
||||||
Weight::from_parts(5_309_000, 0)
|
Weight::from_parts(4_704_000, 0)
|
||||||
}
|
}
|
||||||
// Storage: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
|
||||||
// Proof: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
|
||||||
// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
||||||
// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
||||||
// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0)
|
// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0)
|
||||||
@@ -307,70 +300,68 @@ impl<T: frame_system::Config> WeightInfo<T> {
|
|||||||
// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
||||||
pub fn report_transact_status() -> Weight {
|
pub fn report_transact_status() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `242`
|
// Measured: `171`
|
||||||
// Estimated: `6196`
|
// Estimated: `6196`
|
||||||
// Minimum execution time: 57_133_000 picoseconds.
|
// Minimum execution time: 56_071_000 picoseconds.
|
||||||
Weight::from_parts(58_100_000, 6196)
|
Weight::from_parts(56_889_000, 6196)
|
||||||
.saturating_add(T::DbWeight::get().reads(10))
|
.saturating_add(T::DbWeight::get().reads(9))
|
||||||
.saturating_add(T::DbWeight::get().writes(4))
|
.saturating_add(T::DbWeight::get().writes(4))
|
||||||
}
|
}
|
||||||
pub fn clear_transact_status() -> Weight {
|
pub fn clear_transact_status() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `0`
|
// Measured: `0`
|
||||||
// Estimated: `0`
|
// Estimated: `0`
|
||||||
// Minimum execution time: 1_899_000 picoseconds.
|
// Minimum execution time: 2_093_000 picoseconds.
|
||||||
Weight::from_parts(2_153_000, 0)
|
Weight::from_parts(2_169_000, 0)
|
||||||
}
|
}
|
||||||
pub fn set_topic() -> Weight {
|
pub fn set_topic() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `0`
|
// Measured: `0`
|
||||||
// Estimated: `0`
|
// Estimated: `0`
|
||||||
// Minimum execution time: 1_880_000 picoseconds.
|
// Minimum execution time: 2_027_000 picoseconds.
|
||||||
Weight::from_parts(1_960_000, 0)
|
Weight::from_parts(2_172_000, 0)
|
||||||
}
|
}
|
||||||
pub fn clear_topic() -> Weight {
|
pub fn clear_topic() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `0`
|
// Measured: `0`
|
||||||
// Estimated: `0`
|
// Estimated: `0`
|
||||||
// Minimum execution time: 1_825_000 picoseconds.
|
// Minimum execution time: 2_035_000 picoseconds.
|
||||||
Weight::from_parts(1_960_000, 0)
|
Weight::from_parts(2_164_000, 0)
|
||||||
}
|
}
|
||||||
// Storage: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
|
||||||
// Proof: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
|
|
||||||
// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
|
||||||
// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
|
||||||
// Storage: `BridgeRococoToWococoMessages::PalletOperatingMode` (r:1 w:0)
|
// Storage: `BridgeWestendMessages::PalletOperatingMode` (r:1 w:0)
|
||||||
// Proof: `BridgeRococoToWococoMessages::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`)
|
// Proof: `BridgeWestendMessages::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`)
|
||||||
// Storage: `BridgeRococoToWococoMessages::OutboundLanes` (r:1 w:1)
|
// Storage: `BridgeWestendMessages::OutboundLanes` (r:1 w:1)
|
||||||
// Proof: `BridgeRococoToWococoMessages::OutboundLanes` (`max_values`: Some(1), `max_size`: Some(44), added: 539, mode: `MaxEncodedLen`)
|
// Proof: `BridgeWestendMessages::OutboundLanes` (`max_values`: Some(1), `max_size`: Some(44), added: 539, mode: `MaxEncodedLen`)
|
||||||
// Storage: `BridgeRococoToWococoMessages::OutboundLanesCongestedSignals` (r:1 w:0)
|
// Storage: `BridgeWestendMessages::OutboundLanesCongestedSignals` (r:1 w:0)
|
||||||
// Proof: `BridgeRococoToWococoMessages::OutboundLanesCongestedSignals` (`max_values`: Some(1), `max_size`: Some(21), added: 516, mode: `MaxEncodedLen`)
|
// Proof: `BridgeWestendMessages::OutboundLanesCongestedSignals` (`max_values`: Some(1), `max_size`: Some(21), added: 516, mode: `MaxEncodedLen`)
|
||||||
// Storage: `BridgeRococoToWococoMessages::OutboundMessages` (r:0 w:1)
|
// Storage: `BridgeWestendMessages::OutboundMessages` (r:0 w:1)
|
||||||
// Proof: `BridgeRococoToWococoMessages::OutboundMessages` (`max_values`: None, `max_size`: Some(2621472), added: 2623947, mode: `MaxEncodedLen`)
|
// Proof: `BridgeWestendMessages::OutboundMessages` (`max_values`: None, `max_size`: Some(2621472), added: 2623947, mode: `MaxEncodedLen`)
|
||||||
/// The range of component `x` is `[1, 1000]`.
|
/// The range of component `x` is `[1, 1000]`.
|
||||||
pub fn export_message(x: u32, ) -> Weight {
|
pub fn export_message(x: u32, ) -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `139`
|
// Measured: `96`
|
||||||
// Estimated: `3604`
|
// Estimated: `1529`
|
||||||
// Minimum execution time: 28_419_000 picoseconds.
|
// Minimum execution time: 25_636_000 picoseconds.
|
||||||
Weight::from_parts(29_387_791, 3604)
|
Weight::from_parts(25_405_640, 1529)
|
||||||
// Standard Error: 552
|
// Standard Error: 321
|
||||||
.saturating_add(Weight::from_parts(316_277, 0).saturating_mul(x.into()))
|
.saturating_add(Weight::from_parts(365_002, 0).saturating_mul(x.into()))
|
||||||
.saturating_add(T::DbWeight::get().reads(5))
|
.saturating_add(T::DbWeight::get().reads(4))
|
||||||
.saturating_add(T::DbWeight::get().writes(2))
|
.saturating_add(T::DbWeight::get().writes(2))
|
||||||
}
|
}
|
||||||
pub fn set_fees_mode() -> Weight {
|
pub fn set_fees_mode() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `0`
|
// Measured: `0`
|
||||||
// Estimated: `0`
|
// Estimated: `0`
|
||||||
// Minimum execution time: 1_903_000 picoseconds.
|
// Minimum execution time: 2_036_000 picoseconds.
|
||||||
Weight::from_parts(2_023_000, 0)
|
Weight::from_parts(2_136_000, 0)
|
||||||
}
|
}
|
||||||
pub fn unpaid_execution() -> Weight {
|
pub fn unpaid_execution() -> Weight {
|
||||||
// Proof Size summary in bytes:
|
// Proof Size summary in bytes:
|
||||||
// Measured: `0`
|
// Measured: `0`
|
||||||
// Estimated: `0`
|
// Estimated: `0`
|
||||||
// Minimum execution time: 1_963_000 picoseconds.
|
// Minimum execution time: 2_147_000 picoseconds.
|
||||||
Weight::from_parts(2_143_000, 0)
|
Weight::from_parts(2_276_000, 0)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,12 +16,11 @@
|
|||||||
|
|
||||||
use super::{
|
use super::{
|
||||||
AccountId, AllPalletsWithSystem, Balances, BaseDeliveryFee, FeeAssetId, ParachainInfo,
|
AccountId, AllPalletsWithSystem, Balances, BaseDeliveryFee, FeeAssetId, ParachainInfo,
|
||||||
ParachainSystem, PolkadotXcm, Runtime, RuntimeCall, RuntimeEvent, RuntimeFlavor, RuntimeOrigin,
|
ParachainSystem, PolkadotXcm, Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin,
|
||||||
TransactionByteFee, WeightToFee, XcmpQueue,
|
TransactionByteFee, WeightToFee, XcmpQueue,
|
||||||
};
|
};
|
||||||
use crate::bridge_common_config::{
|
use crate::bridge_common_config::{
|
||||||
BridgeGrandpaRococoInstance, BridgeGrandpaWestendInstance, BridgeGrandpaWococoInstance,
|
BridgeGrandpaWestendInstance, DeliveryRewardInBalance, RequiredStakeForStakeAndSlash,
|
||||||
DeliveryRewardInBalance, RequiredStakeForStakeAndSlash,
|
|
||||||
};
|
};
|
||||||
use bp_messages::LaneId;
|
use bp_messages::LaneId;
|
||||||
use bp_relayers::{PayRewardFromAccount, RewardsAccountOwner, RewardsAccountParams};
|
use bp_relayers::{PayRewardFromAccount, RewardsAccountOwner, RewardsAccountParams};
|
||||||
@@ -60,9 +59,9 @@ use xcm_executor::{
|
|||||||
};
|
};
|
||||||
|
|
||||||
parameter_types! {
|
parameter_types! {
|
||||||
pub storage Flavor: RuntimeFlavor = RuntimeFlavor::default();
|
|
||||||
pub const TokenLocation: MultiLocation = MultiLocation::parent();
|
pub const TokenLocation: MultiLocation = MultiLocation::parent();
|
||||||
pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into();
|
pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into();
|
||||||
|
pub RelayNetwork: NetworkId = NetworkId::Rococo;
|
||||||
pub UniversalLocation: InteriorMultiLocation =
|
pub UniversalLocation: InteriorMultiLocation =
|
||||||
X2(GlobalConsensus(RelayNetwork::get()), Parachain(ParachainInfo::parachain_id().into()));
|
X2(GlobalConsensus(RelayNetwork::get()), Parachain(ParachainInfo::parachain_id().into()));
|
||||||
pub const MaxInstructions: u32 = 100;
|
pub const MaxInstructions: u32 = 100;
|
||||||
@@ -71,22 +70,6 @@ parameter_types! {
|
|||||||
pub RelayTreasuryLocation: MultiLocation = (Parent, PalletInstance(rococo_runtime_constants::TREASURY_PALLET_ID)).into();
|
pub RelayTreasuryLocation: MultiLocation = (Parent, PalletInstance(rococo_runtime_constants::TREASURY_PALLET_ID)).into();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Adapter for resolving `NetworkId` based on `pub storage Flavor: RuntimeFlavor`.
|
|
||||||
pub struct RelayNetwork;
|
|
||||||
impl Get<Option<NetworkId>> for RelayNetwork {
|
|
||||||
fn get() -> Option<NetworkId> {
|
|
||||||
Some(Self::get())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
impl Get<NetworkId> for RelayNetwork {
|
|
||||||
fn get() -> NetworkId {
|
|
||||||
match Flavor::get() {
|
|
||||||
RuntimeFlavor::Rococo => NetworkId::Rococo,
|
|
||||||
RuntimeFlavor::Wococo => NetworkId::Wococo,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Type for specifying how a `MultiLocation` can be converted into an `AccountId`. This is used
|
/// Type for specifying how a `MultiLocation` can be converted into an `AccountId`. This is used
|
||||||
/// when determining ownership of accounts for asset transacting and when attempting to use XCM
|
/// when determining ownership of accounts for asset transacting and when attempting to use XCM
|
||||||
/// `Transact` in order to determine the dispatch Origin.
|
/// `Transact` in order to determine the dispatch Origin.
|
||||||
@@ -170,8 +153,7 @@ impl Contains<RuntimeCall> for SafeCallFilter {
|
|||||||
RuntimeCall::System(frame_system::Call::set_storage { items })
|
RuntimeCall::System(frame_system::Call::set_storage { items })
|
||||||
if items.iter().all(|(k, _)| {
|
if items.iter().all(|(k, _)| {
|
||||||
k.eq(&DeliveryRewardInBalance::key()) |
|
k.eq(&DeliveryRewardInBalance::key()) |
|
||||||
k.eq(&RequiredStakeForStakeAndSlash::key()) |
|
k.eq(&RequiredStakeForStakeAndSlash::key())
|
||||||
k.eq(&Flavor::key())
|
|
||||||
}) =>
|
}) =>
|
||||||
return true,
|
return true,
|
||||||
_ => (),
|
_ => (),
|
||||||
@@ -199,17 +181,9 @@ impl Contains<RuntimeCall> for SafeCallFilter {
|
|||||||
) | RuntimeCall::Session(pallet_session::Call::purge_keys { .. }) |
|
) | RuntimeCall::Session(pallet_session::Call::purge_keys { .. }) |
|
||||||
RuntimeCall::XcmpQueue(..) |
|
RuntimeCall::XcmpQueue(..) |
|
||||||
RuntimeCall::MessageQueue(..) |
|
RuntimeCall::MessageQueue(..) |
|
||||||
RuntimeCall::BridgeRococoGrandpa(pallet_bridge_grandpa::Call::<
|
|
||||||
Runtime,
|
|
||||||
BridgeGrandpaRococoInstance,
|
|
||||||
>::initialize { .. }) |
|
|
||||||
RuntimeCall::BridgeWestendGrandpa(pallet_bridge_grandpa::Call::<
|
RuntimeCall::BridgeWestendGrandpa(pallet_bridge_grandpa::Call::<
|
||||||
Runtime,
|
Runtime,
|
||||||
BridgeGrandpaWestendInstance,
|
BridgeGrandpaWestendInstance,
|
||||||
>::initialize { .. }) |
|
|
||||||
RuntimeCall::BridgeWococoGrandpa(pallet_bridge_grandpa::Call::<
|
|
||||||
Runtime,
|
|
||||||
BridgeGrandpaWococoInstance,
|
|
||||||
>::initialize { .. })
|
>::initialize { .. })
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -298,13 +272,6 @@ impl xcm_executor::Config for XcmConfig {
|
|||||||
type FeeManager = XcmFeeManagerFromComponents<
|
type FeeManager = XcmFeeManagerFromComponents<
|
||||||
WaivedLocations,
|
WaivedLocations,
|
||||||
(
|
(
|
||||||
XcmExportFeeToRelayerRewardAccounts<
|
|
||||||
Self::AssetTransactor,
|
|
||||||
crate::bridge_to_wococo_config::WococoGlobalConsensusNetwork,
|
|
||||||
crate::bridge_to_wococo_config::AssetHubWococoParaId,
|
|
||||||
crate::bridge_to_wococo_config::BridgeHubWococoChainId,
|
|
||||||
crate::bridge_to_wococo_config::AssetHubRococoToAssetHubWococoMessagesLane,
|
|
||||||
>,
|
|
||||||
XcmExportFeeToRelayerRewardAccounts<
|
XcmExportFeeToRelayerRewardAccounts<
|
||||||
Self::AssetTransactor,
|
Self::AssetTransactor,
|
||||||
crate::bridge_to_westend_config::WestendGlobalConsensusNetwork,
|
crate::bridge_to_westend_config::WestendGlobalConsensusNetwork,
|
||||||
@@ -312,21 +279,10 @@ impl xcm_executor::Config for XcmConfig {
|
|||||||
crate::bridge_to_westend_config::BridgeHubWestendChainId,
|
crate::bridge_to_westend_config::BridgeHubWestendChainId,
|
||||||
crate::bridge_to_westend_config::AssetHubRococoToAssetHubWestendMessagesLane,
|
crate::bridge_to_westend_config::AssetHubRococoToAssetHubWestendMessagesLane,
|
||||||
>,
|
>,
|
||||||
XcmExportFeeToRelayerRewardAccounts<
|
|
||||||
Self::AssetTransactor,
|
|
||||||
crate::bridge_to_rococo_config::RococoGlobalConsensusNetwork,
|
|
||||||
crate::bridge_to_rococo_config::AssetHubRococoParaId,
|
|
||||||
crate::bridge_to_rococo_config::BridgeHubRococoChainId,
|
|
||||||
crate::bridge_to_rococo_config::AssetHubWococoToAssetHubRococoMessagesLane,
|
|
||||||
>,
|
|
||||||
XcmFeeToAccount<Self::AssetTransactor, AccountId, TreasuryAccount>,
|
XcmFeeToAccount<Self::AssetTransactor, AccountId, TreasuryAccount>,
|
||||||
),
|
),
|
||||||
>;
|
>;
|
||||||
type MessageExporter = (
|
type MessageExporter = (crate::bridge_to_westend_config::ToBridgeHubWestendHaulBlobExporter,);
|
||||||
crate::bridge_to_westend_config::ToBridgeHubWestendHaulBlobExporter,
|
|
||||||
crate::bridge_to_wococo_config::ToBridgeHubWococoHaulBlobExporter,
|
|
||||||
crate::bridge_to_rococo_config::ToBridgeHubRococoHaulBlobExporter,
|
|
||||||
);
|
|
||||||
type UniversalAliases = Nothing;
|
type UniversalAliases = Nothing;
|
||||||
type CallDispatcher = WithOriginFilter<SafeCallFilter>;
|
type CallDispatcher = WithOriginFilter<SafeCallFilter>;
|
||||||
type SafeCallFilter = SafeCallFilter;
|
type SafeCallFilter = SafeCallFilter;
|
||||||
|
|||||||
@@ -18,8 +18,7 @@
|
|||||||
|
|
||||||
use bp_polkadot_core::Signature;
|
use bp_polkadot_core::Signature;
|
||||||
use bridge_hub_rococo_runtime::{
|
use bridge_hub_rococo_runtime::{
|
||||||
bridge_common_config, bridge_to_rococo_config, bridge_to_westend_config,
|
bridge_common_config, bridge_to_westend_config,
|
||||||
bridge_to_wococo_config,
|
|
||||||
xcm_config::{RelayNetwork, TokenLocation, XcmConfig},
|
xcm_config::{RelayNetwork, TokenLocation, XcmConfig},
|
||||||
AllPalletsWithoutSystem, BridgeRejectObsoleteHeadersAndMessages, Executive, ExistentialDeposit,
|
AllPalletsWithoutSystem, BridgeRejectObsoleteHeadersAndMessages, Executive, ExistentialDeposit,
|
||||||
ParachainSystem, PolkadotXcm, Runtime, RuntimeCall, RuntimeEvent, SessionKeys, SignedExtra,
|
ParachainSystem, PolkadotXcm, Runtime, RuntimeCall, RuntimeEvent, SessionKeys, SignedExtra,
|
||||||
@@ -57,11 +56,7 @@ fn construct_extrinsic(
|
|||||||
frame_system::CheckWeight::<Runtime>::new(),
|
frame_system::CheckWeight::<Runtime>::new(),
|
||||||
pallet_transaction_payment::ChargeTransactionPayment::<Runtime>::from(0),
|
pallet_transaction_payment::ChargeTransactionPayment::<Runtime>::from(0),
|
||||||
BridgeRejectObsoleteHeadersAndMessages::default(),
|
BridgeRejectObsoleteHeadersAndMessages::default(),
|
||||||
(
|
(bridge_to_westend_config::OnBridgeHubRococoRefundBridgeHubWestendMessages::default(),),
|
||||||
bridge_to_wococo_config::OnBridgeHubRococoRefundBridgeHubWococoMessages::default(),
|
|
||||||
bridge_to_westend_config::OnBridgeHubRococoRefundBridgeHubWestendMessages::default(),
|
|
||||||
bridge_to_rococo_config::OnBridgeHubWococoRefundBridgeHubRococoMessages::default(),
|
|
||||||
),
|
|
||||||
);
|
);
|
||||||
let payload = SignedPayload::new(call.clone(), extra.clone()).unwrap();
|
let payload = SignedPayload::new(call.clone(), extra.clone()).unwrap();
|
||||||
let signature = payload.using_encoded(|e| sender.sign(e));
|
let signature = payload.using_encoded(|e| sender.sign(e));
|
||||||
@@ -105,18 +100,13 @@ fn collator_session_keys() -> bridge_hub_test_utils::CollatorSessionKeys<Runtime
|
|||||||
mod bridge_hub_rococo_tests {
|
mod bridge_hub_rococo_tests {
|
||||||
use super::*;
|
use super::*;
|
||||||
use bridge_common_config::{
|
use bridge_common_config::{
|
||||||
BridgeGrandpaWestendInstance, BridgeGrandpaWococoInstance, BridgeParachainWestendInstance,
|
BridgeGrandpaWestendInstance, BridgeParachainWestendInstance, DeliveryRewardInBalance,
|
||||||
BridgeParachainWococoInstance, DeliveryRewardInBalance, RequiredStakeForStakeAndSlash,
|
RequiredStakeForStakeAndSlash,
|
||||||
};
|
};
|
||||||
use bridge_to_westend_config::{
|
use bridge_to_westend_config::{
|
||||||
BridgeHubWestendChainId, WestendGlobalConsensusNetwork, WithBridgeHubWestendMessageBridge,
|
BridgeHubWestendChainId, WestendGlobalConsensusNetwork, WithBridgeHubWestendMessageBridge,
|
||||||
WithBridgeHubWestendMessagesInstance, XCM_LANE_FOR_ASSET_HUB_ROCOCO_TO_ASSET_HUB_WESTEND,
|
WithBridgeHubWestendMessagesInstance, XCM_LANE_FOR_ASSET_HUB_ROCOCO_TO_ASSET_HUB_WESTEND,
|
||||||
};
|
};
|
||||||
use bridge_to_wococo_config::{
|
|
||||||
BridgeHubWococoChainId, WithBridgeHubWococoMessageBridge,
|
|
||||||
WithBridgeHubWococoMessagesInstance, WococoGlobalConsensusNetwork,
|
|
||||||
XCM_LANE_FOR_ASSET_HUB_ROCOCO_TO_ASSET_HUB_WOCOCO,
|
|
||||||
};
|
|
||||||
|
|
||||||
bridge_hub_test_utils::test_cases::include_teleports_for_native_asset_works!(
|
bridge_hub_test_utils::test_cases::include_teleports_for_native_asset_works!(
|
||||||
Runtime,
|
Runtime,
|
||||||
@@ -138,15 +128,6 @@ mod bridge_hub_rococo_tests {
|
|||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn initialize_bridge_by_governance_works() {
|
fn initialize_bridge_by_governance_works() {
|
||||||
// for Wococo finality
|
|
||||||
bridge_hub_test_utils::test_cases::initialize_bridge_by_governance_works::<
|
|
||||||
Runtime,
|
|
||||||
BridgeGrandpaWococoInstance,
|
|
||||||
>(
|
|
||||||
collator_session_keys(),
|
|
||||||
bp_bridge_hub_rococo::BRIDGE_HUB_ROCOCO_PARACHAIN_ID,
|
|
||||||
Box::new(|call| RuntimeCall::BridgeWococoGrandpa(call).encode()),
|
|
||||||
);
|
|
||||||
// for Westend finality
|
// for Westend finality
|
||||||
bridge_hub_test_utils::test_cases::initialize_bridge_by_governance_works::<
|
bridge_hub_test_utils::test_cases::initialize_bridge_by_governance_works::<
|
||||||
Runtime,
|
Runtime,
|
||||||
@@ -195,28 +176,6 @@ mod bridge_hub_rococo_tests {
|
|||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn handle_export_message_from_system_parachain_add_to_outbound_queue_works() {
|
fn handle_export_message_from_system_parachain_add_to_outbound_queue_works() {
|
||||||
// for Wococo
|
|
||||||
bridge_hub_test_utils::test_cases::handle_export_message_from_system_parachain_to_outbound_queue_works::<
|
|
||||||
Runtime,
|
|
||||||
XcmConfig,
|
|
||||||
WithBridgeHubWococoMessagesInstance,
|
|
||||||
>(
|
|
||||||
collator_session_keys(),
|
|
||||||
bp_bridge_hub_rococo::BRIDGE_HUB_ROCOCO_PARACHAIN_ID,
|
|
||||||
SIBLING_PARACHAIN_ID,
|
|
||||||
Box::new(|runtime_event_encoded: Vec<u8>| {
|
|
||||||
match RuntimeEvent::decode(&mut &runtime_event_encoded[..]) {
|
|
||||||
Ok(RuntimeEvent::BridgeWococoMessages(event)) => Some(event),
|
|
||||||
_ => None,
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
|| ExportMessage { network: Wococo, destination: X1(Parachain(1234)), xcm: Xcm(vec![]) },
|
|
||||||
XCM_LANE_FOR_ASSET_HUB_ROCOCO_TO_ASSET_HUB_WOCOCO,
|
|
||||||
Some((TokenLocation::get(), ExistentialDeposit::get()).into()),
|
|
||||||
// value should be >= than value generated by `can_calculate_weight_for_paid_export_message_with_reserve_transfer`
|
|
||||||
Some((TokenLocation::get(), bp_bridge_hub_rococo::BridgeHubRococoBaseXcmFeeInRocs::get()).into()),
|
|
||||||
|| (),
|
|
||||||
);
|
|
||||||
// for Westend
|
// for Westend
|
||||||
bridge_hub_test_utils::test_cases::handle_export_message_from_system_parachain_to_outbound_queue_works::<
|
bridge_hub_test_utils::test_cases::handle_export_message_from_system_parachain_to_outbound_queue_works::<
|
||||||
Runtime,
|
Runtime,
|
||||||
@@ -243,41 +202,13 @@ mod bridge_hub_rococo_tests {
|
|||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn message_dispatch_routing_works() {
|
fn message_dispatch_routing_works() {
|
||||||
// from Wococo
|
|
||||||
bridge_hub_test_utils::test_cases::message_dispatch_routing_works::<
|
|
||||||
Runtime,
|
|
||||||
AllPalletsWithoutSystem,
|
|
||||||
XcmConfig,
|
|
||||||
ParachainSystem,
|
|
||||||
WithBridgeHubWococoMessagesInstance,
|
|
||||||
RelayNetwork,
|
|
||||||
WococoGlobalConsensusNetwork,
|
|
||||||
>(
|
|
||||||
collator_session_keys(),
|
|
||||||
bp_bridge_hub_rococo::BRIDGE_HUB_ROCOCO_PARACHAIN_ID,
|
|
||||||
SIBLING_PARACHAIN_ID,
|
|
||||||
Box::new(|runtime_event_encoded: Vec<u8>| {
|
|
||||||
match RuntimeEvent::decode(&mut &runtime_event_encoded[..]) {
|
|
||||||
Ok(RuntimeEvent::ParachainSystem(event)) => Some(event),
|
|
||||||
_ => None,
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
Box::new(|runtime_event_encoded: Vec<u8>| {
|
|
||||||
match RuntimeEvent::decode(&mut &runtime_event_encoded[..]) {
|
|
||||||
Ok(RuntimeEvent::XcmpQueue(event)) => Some(event),
|
|
||||||
_ => None,
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
XCM_LANE_FOR_ASSET_HUB_ROCOCO_TO_ASSET_HUB_WOCOCO,
|
|
||||||
|| (),
|
|
||||||
);
|
|
||||||
// from Westend
|
// from Westend
|
||||||
bridge_hub_test_utils::test_cases::message_dispatch_routing_works::<
|
bridge_hub_test_utils::test_cases::message_dispatch_routing_works::<
|
||||||
Runtime,
|
Runtime,
|
||||||
AllPalletsWithoutSystem,
|
AllPalletsWithoutSystem,
|
||||||
XcmConfig,
|
XcmConfig,
|
||||||
ParachainSystem,
|
ParachainSystem,
|
||||||
WithBridgeHubWococoMessagesInstance,
|
WithBridgeHubWestendMessagesInstance,
|
||||||
RelayNetwork,
|
RelayNetwork,
|
||||||
WestendGlobalConsensusNetwork,
|
WestendGlobalConsensusNetwork,
|
||||||
>(
|
>(
|
||||||
@@ -303,25 +234,6 @@ mod bridge_hub_rococo_tests {
|
|||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn relayed_incoming_message_works() {
|
fn relayed_incoming_message_works() {
|
||||||
// from Wococo
|
|
||||||
bridge_hub_test_utils::test_cases::relayed_incoming_message_works::<
|
|
||||||
Runtime,
|
|
||||||
AllPalletsWithoutSystem,
|
|
||||||
XcmConfig,
|
|
||||||
ParachainSystem,
|
|
||||||
BridgeGrandpaWococoInstance,
|
|
||||||
BridgeParachainWococoInstance,
|
|
||||||
WithBridgeHubWococoMessagesInstance,
|
|
||||||
WithBridgeHubWococoMessageBridge,
|
|
||||||
>(
|
|
||||||
collator_session_keys(),
|
|
||||||
bp_bridge_hub_rococo::BRIDGE_HUB_ROCOCO_PARACHAIN_ID,
|
|
||||||
bp_bridge_hub_wococo::BRIDGE_HUB_WOCOCO_PARACHAIN_ID,
|
|
||||||
SIBLING_PARACHAIN_ID,
|
|
||||||
Rococo,
|
|
||||||
XCM_LANE_FOR_ASSET_HUB_ROCOCO_TO_ASSET_HUB_WOCOCO,
|
|
||||||
|| (),
|
|
||||||
);
|
|
||||||
// from Westend
|
// from Westend
|
||||||
bridge_hub_test_utils::test_cases::relayed_incoming_message_works::<
|
bridge_hub_test_utils::test_cases::relayed_incoming_message_works::<
|
||||||
Runtime,
|
Runtime,
|
||||||
@@ -345,29 +257,6 @@ mod bridge_hub_rococo_tests {
|
|||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
pub fn complex_relay_extrinsic_works() {
|
pub fn complex_relay_extrinsic_works() {
|
||||||
// for Wococo
|
|
||||||
bridge_hub_test_utils::test_cases::complex_relay_extrinsic_works::<
|
|
||||||
Runtime,
|
|
||||||
AllPalletsWithoutSystem,
|
|
||||||
XcmConfig,
|
|
||||||
ParachainSystem,
|
|
||||||
BridgeGrandpaWococoInstance,
|
|
||||||
BridgeParachainWococoInstance,
|
|
||||||
WithBridgeHubWococoMessagesInstance,
|
|
||||||
WithBridgeHubWococoMessageBridge,
|
|
||||||
>(
|
|
||||||
collator_session_keys(),
|
|
||||||
bp_bridge_hub_rococo::BRIDGE_HUB_ROCOCO_PARACHAIN_ID,
|
|
||||||
bp_bridge_hub_wococo::BRIDGE_HUB_WOCOCO_PARACHAIN_ID,
|
|
||||||
SIBLING_PARACHAIN_ID,
|
|
||||||
BridgeHubWococoChainId::get(),
|
|
||||||
Rococo,
|
|
||||||
XCM_LANE_FOR_ASSET_HUB_ROCOCO_TO_ASSET_HUB_WOCOCO,
|
|
||||||
ExistentialDeposit::get(),
|
|
||||||
executive_init_block,
|
|
||||||
construct_and_apply_extrinsic,
|
|
||||||
|| (),
|
|
||||||
);
|
|
||||||
// for Westend
|
// for Westend
|
||||||
bridge_hub_test_utils::test_cases::complex_relay_extrinsic_works::<
|
bridge_hub_test_utils::test_cases::complex_relay_extrinsic_works::<
|
||||||
Runtime,
|
Runtime,
|
||||||
@@ -457,275 +346,3 @@ mod bridge_hub_rococo_tests {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
mod bridge_hub_wococo_tests {
|
|
||||||
use super::*;
|
|
||||||
use bridge_common_config::{
|
|
||||||
BridgeGrandpaRococoInstance, BridgeParachainRococoInstance, DeliveryRewardInBalance,
|
|
||||||
RequiredStakeForStakeAndSlash,
|
|
||||||
};
|
|
||||||
use bridge_hub_rococo_runtime::{xcm_config, AllPalletsWithoutSystem, RuntimeFlavor};
|
|
||||||
use bridge_to_rococo_config::{
|
|
||||||
BridgeHubRococoChainId, RococoGlobalConsensusNetwork, WithBridgeHubRococoMessageBridge,
|
|
||||||
WithBridgeHubRococoMessagesInstance, XCM_LANE_FOR_ASSET_HUB_WOCOCO_TO_ASSET_HUB_ROCOCO,
|
|
||||||
};
|
|
||||||
use frame_support::assert_ok;
|
|
||||||
|
|
||||||
type RuntimeHelper = bridge_hub_test_utils::RuntimeHelper<Runtime, AllPalletsWithoutSystem>;
|
|
||||||
|
|
||||||
pub(crate) fn set_wococo_flavor() {
|
|
||||||
let flavor_key = xcm_config::Flavor::key().to_vec();
|
|
||||||
let flavor = RuntimeFlavor::Wococo;
|
|
||||||
|
|
||||||
// encode `set_storage` call
|
|
||||||
let set_storage_call = RuntimeCall::System(frame_system::Call::<Runtime>::set_storage {
|
|
||||||
items: vec![(flavor_key, flavor.encode())],
|
|
||||||
})
|
|
||||||
.encode();
|
|
||||||
|
|
||||||
// estimate - storing just 1 value
|
|
||||||
use frame_system::WeightInfo;
|
|
||||||
let require_weight_at_most =
|
|
||||||
<Runtime as frame_system::Config>::SystemWeightInfo::set_storage(1);
|
|
||||||
|
|
||||||
// execute XCM with Transact to `set_storage` as governance does
|
|
||||||
assert_ok!(RuntimeHelper::execute_as_governance(set_storage_call, require_weight_at_most)
|
|
||||||
.ensure_complete());
|
|
||||||
|
|
||||||
// check if stored
|
|
||||||
assert_eq!(flavor, xcm_config::Flavor::get());
|
|
||||||
}
|
|
||||||
|
|
||||||
bridge_hub_test_utils::test_cases::include_teleports_for_native_asset_works!(
|
|
||||||
Runtime,
|
|
||||||
AllPalletsWithoutSystem,
|
|
||||||
XcmConfig,
|
|
||||||
CheckingAccount,
|
|
||||||
WeightToFee,
|
|
||||||
ParachainSystem,
|
|
||||||
collator_session_keys(),
|
|
||||||
ExistentialDeposit::get(),
|
|
||||||
Box::new(|runtime_event_encoded: Vec<u8>| {
|
|
||||||
match RuntimeEvent::decode(&mut &runtime_event_encoded[..]) {
|
|
||||||
Ok(RuntimeEvent::PolkadotXcm(event)) => Some(event),
|
|
||||||
_ => None,
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
bp_bridge_hub_wococo::BRIDGE_HUB_WOCOCO_PARACHAIN_ID
|
|
||||||
);
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn initialize_bridge_by_governance_works() {
|
|
||||||
bridge_hub_test_utils::test_cases::initialize_bridge_by_governance_works::<
|
|
||||||
Runtime,
|
|
||||||
BridgeGrandpaRococoInstance,
|
|
||||||
>(
|
|
||||||
collator_session_keys(),
|
|
||||||
bp_bridge_hub_wococo::BRIDGE_HUB_WOCOCO_PARACHAIN_ID,
|
|
||||||
Box::new(|call| RuntimeCall::BridgeRococoGrandpa(call).encode()),
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn change_delivery_reward_by_governance_works() {
|
|
||||||
bridge_hub_test_utils::test_cases::change_storage_constant_by_governance_works::<
|
|
||||||
Runtime,
|
|
||||||
DeliveryRewardInBalance,
|
|
||||||
u64,
|
|
||||||
>(
|
|
||||||
collator_session_keys(),
|
|
||||||
bp_bridge_hub_wococo::BRIDGE_HUB_WOCOCO_PARACHAIN_ID,
|
|
||||||
Box::new(|call| RuntimeCall::System(call).encode()),
|
|
||||||
|| (DeliveryRewardInBalance::key().to_vec(), DeliveryRewardInBalance::get()),
|
|
||||||
|old_value| old_value.checked_mul(2).unwrap(),
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn change_required_stake_by_governance_works() {
|
|
||||||
bridge_hub_test_utils::test_cases::change_storage_constant_by_governance_works::<
|
|
||||||
Runtime,
|
|
||||||
RequiredStakeForStakeAndSlash,
|
|
||||||
Balance,
|
|
||||||
>(
|
|
||||||
collator_session_keys(),
|
|
||||||
bp_bridge_hub_wococo::BRIDGE_HUB_WOCOCO_PARACHAIN_ID,
|
|
||||||
Box::new(|call| RuntimeCall::System(call).encode()),
|
|
||||||
|| {
|
|
||||||
(
|
|
||||||
RequiredStakeForStakeAndSlash::key().to_vec(),
|
|
||||||
RequiredStakeForStakeAndSlash::get(),
|
|
||||||
)
|
|
||||||
},
|
|
||||||
|old_value| old_value.checked_mul(2).unwrap(),
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn handle_export_message_from_system_parachain_add_to_outbound_queue_works() {
|
|
||||||
bridge_hub_test_utils::test_cases::handle_export_message_from_system_parachain_to_outbound_queue_works::<
|
|
||||||
Runtime,
|
|
||||||
XcmConfig,
|
|
||||||
WithBridgeHubRococoMessagesInstance,
|
|
||||||
>(
|
|
||||||
collator_session_keys(),
|
|
||||||
bp_bridge_hub_wococo::BRIDGE_HUB_WOCOCO_PARACHAIN_ID,
|
|
||||||
SIBLING_PARACHAIN_ID,
|
|
||||||
Box::new(|runtime_event_encoded: Vec<u8>| {
|
|
||||||
match RuntimeEvent::decode(&mut &runtime_event_encoded[..]) {
|
|
||||||
Ok(RuntimeEvent::BridgeRococoMessages(event)) => Some(event),
|
|
||||||
_ => None,
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
|| ExportMessage { network: Rococo, destination: X1(Parachain(4321)), xcm: Xcm(vec![]) },
|
|
||||||
XCM_LANE_FOR_ASSET_HUB_WOCOCO_TO_ASSET_HUB_ROCOCO,
|
|
||||||
Some((TokenLocation::get(), ExistentialDeposit::get()).into()),
|
|
||||||
// value should be >= than value generated by `can_calculate_weight_for_paid_export_message_with_reserve_transfer`
|
|
||||||
Some((TokenLocation::get(), bp_bridge_hub_wococo::BridgeHubWococoBaseXcmFeeInWocs::get()).into()),
|
|
||||||
set_wococo_flavor,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn message_dispatch_routing_works() {
|
|
||||||
bridge_hub_test_utils::test_cases::message_dispatch_routing_works::<
|
|
||||||
Runtime,
|
|
||||||
AllPalletsWithoutSystem,
|
|
||||||
XcmConfig,
|
|
||||||
ParachainSystem,
|
|
||||||
WithBridgeHubRococoMessagesInstance,
|
|
||||||
RelayNetwork,
|
|
||||||
RococoGlobalConsensusNetwork,
|
|
||||||
>(
|
|
||||||
collator_session_keys(),
|
|
||||||
bp_bridge_hub_wococo::BRIDGE_HUB_WOCOCO_PARACHAIN_ID,
|
|
||||||
SIBLING_PARACHAIN_ID,
|
|
||||||
Box::new(|runtime_event_encoded: Vec<u8>| {
|
|
||||||
match RuntimeEvent::decode(&mut &runtime_event_encoded[..]) {
|
|
||||||
Ok(RuntimeEvent::ParachainSystem(event)) => Some(event),
|
|
||||||
_ => None,
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
Box::new(|runtime_event_encoded: Vec<u8>| {
|
|
||||||
match RuntimeEvent::decode(&mut &runtime_event_encoded[..]) {
|
|
||||||
Ok(RuntimeEvent::XcmpQueue(event)) => Some(event),
|
|
||||||
_ => None,
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
XCM_LANE_FOR_ASSET_HUB_WOCOCO_TO_ASSET_HUB_ROCOCO,
|
|
||||||
set_wococo_flavor,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn relayed_incoming_message_works() {
|
|
||||||
bridge_hub_test_utils::test_cases::relayed_incoming_message_works::<
|
|
||||||
Runtime,
|
|
||||||
AllPalletsWithoutSystem,
|
|
||||||
XcmConfig,
|
|
||||||
ParachainSystem,
|
|
||||||
BridgeGrandpaRococoInstance,
|
|
||||||
BridgeParachainRococoInstance,
|
|
||||||
WithBridgeHubRococoMessagesInstance,
|
|
||||||
WithBridgeHubRococoMessageBridge,
|
|
||||||
>(
|
|
||||||
collator_session_keys(),
|
|
||||||
bp_bridge_hub_wococo::BRIDGE_HUB_WOCOCO_PARACHAIN_ID,
|
|
||||||
bp_bridge_hub_rococo::BRIDGE_HUB_ROCOCO_PARACHAIN_ID,
|
|
||||||
SIBLING_PARACHAIN_ID,
|
|
||||||
Wococo,
|
|
||||||
XCM_LANE_FOR_ASSET_HUB_WOCOCO_TO_ASSET_HUB_ROCOCO,
|
|
||||||
set_wococo_flavor,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
pub fn complex_relay_extrinsic_works() {
|
|
||||||
bridge_hub_test_utils::test_cases::complex_relay_extrinsic_works::<
|
|
||||||
Runtime,
|
|
||||||
AllPalletsWithoutSystem,
|
|
||||||
XcmConfig,
|
|
||||||
ParachainSystem,
|
|
||||||
BridgeGrandpaRococoInstance,
|
|
||||||
BridgeParachainRococoInstance,
|
|
||||||
WithBridgeHubRococoMessagesInstance,
|
|
||||||
WithBridgeHubRococoMessageBridge,
|
|
||||||
>(
|
|
||||||
collator_session_keys(),
|
|
||||||
bp_bridge_hub_wococo::BRIDGE_HUB_WOCOCO_PARACHAIN_ID,
|
|
||||||
bp_bridge_hub_rococo::BRIDGE_HUB_ROCOCO_PARACHAIN_ID,
|
|
||||||
SIBLING_PARACHAIN_ID,
|
|
||||||
BridgeHubRococoChainId::get(),
|
|
||||||
Wococo,
|
|
||||||
XCM_LANE_FOR_ASSET_HUB_WOCOCO_TO_ASSET_HUB_ROCOCO,
|
|
||||||
ExistentialDeposit::get(),
|
|
||||||
executive_init_block,
|
|
||||||
construct_and_apply_extrinsic,
|
|
||||||
set_wococo_flavor,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
pub fn can_calculate_weight_for_paid_export_message_with_reserve_transfer() {
|
|
||||||
let estimated = bridge_hub_test_utils::test_cases::can_calculate_weight_for_paid_export_message_with_reserve_transfer::<
|
|
||||||
Runtime,
|
|
||||||
XcmConfig,
|
|
||||||
WeightToFee,
|
|
||||||
>();
|
|
||||||
|
|
||||||
// check if estimated value is sane
|
|
||||||
let max_expected = bp_bridge_hub_wococo::BridgeHubWococoBaseXcmFeeInWocs::get();
|
|
||||||
assert!(
|
|
||||||
estimated <= max_expected,
|
|
||||||
"calculated: {:?}, max_expected: {:?}, please adjust `bp_bridge_hub_wococo::BridgeHubWococoBaseXcmFeeInWocs` value",
|
|
||||||
estimated,
|
|
||||||
max_expected
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
pub fn can_calculate_fee_for_complex_message_delivery_transaction() {
|
|
||||||
let estimated = bridge_hub_test_utils::test_cases::can_calculate_fee_for_complex_message_delivery_transaction::<
|
|
||||||
Runtime,
|
|
||||||
BridgeGrandpaRococoInstance,
|
|
||||||
BridgeParachainRococoInstance,
|
|
||||||
WithBridgeHubRococoMessagesInstance,
|
|
||||||
WithBridgeHubRococoMessageBridge,
|
|
||||||
>(
|
|
||||||
collator_session_keys(),
|
|
||||||
construct_and_estimate_extrinsic_fee
|
|
||||||
);
|
|
||||||
|
|
||||||
// check if estimated value is sane
|
|
||||||
let max_expected = bp_bridge_hub_wococo::BridgeHubWococoBaseDeliveryFeeInWocs::get();
|
|
||||||
assert!(
|
|
||||||
estimated <= max_expected,
|
|
||||||
"calculated: {:?}, max_expected: {:?}, please adjust `bp_bridge_hub_wococo::BridgeHubWococoBaseDeliveryFeeInWocs` value",
|
|
||||||
estimated,
|
|
||||||
max_expected
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
pub fn can_calculate_fee_for_complex_message_confirmation_transaction() {
|
|
||||||
let estimated = bridge_hub_test_utils::test_cases::can_calculate_fee_for_complex_message_confirmation_transaction::<
|
|
||||||
Runtime,
|
|
||||||
BridgeGrandpaRococoInstance,
|
|
||||||
BridgeParachainRococoInstance,
|
|
||||||
WithBridgeHubRococoMessagesInstance,
|
|
||||||
WithBridgeHubRococoMessageBridge,
|
|
||||||
>(
|
|
||||||
collator_session_keys(),
|
|
||||||
construct_and_estimate_extrinsic_fee
|
|
||||||
);
|
|
||||||
|
|
||||||
// check if estimated value is sane
|
|
||||||
let max_expected = bp_bridge_hub_wococo::BridgeHubWococoBaseConfirmationFeeInWocs::get();
|
|
||||||
assert!(
|
|
||||||
estimated <= max_expected,
|
|
||||||
"calculated: {:?}, max_expected: {:?}, please adjust `bp_bridge_hub_wococo::BridgeHubWococoBaseConfirmationFeeInWocs` value",
|
|
||||||
estimated,
|
|
||||||
max_expected
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -41,8 +41,6 @@ xcm-builder = { package = "staging-xcm-builder", path = "../../../../../polkadot
|
|||||||
xcm-executor = { package = "staging-xcm-executor", path = "../../../../../polkadot/xcm/xcm-executor", default-features = false}
|
xcm-executor = { package = "staging-xcm-executor", path = "../../../../../polkadot/xcm/xcm-executor", default-features = false}
|
||||||
|
|
||||||
# Bridges
|
# Bridges
|
||||||
bp-bridge-hub-rococo = { path = "../../../../../bridges/primitives/chain-bridge-hub-rococo", default-features = false }
|
|
||||||
bp-bridge-hub-wococo = { path = "../../../../../bridges/primitives/chain-bridge-hub-wococo", default-features = false }
|
|
||||||
bp-header-chain = { path = "../../../../../bridges/primitives/header-chain", default-features = false }
|
bp-header-chain = { path = "../../../../../bridges/primitives/header-chain", default-features = false }
|
||||||
bp-messages = { path = "../../../../../bridges/primitives/messages", default-features = false }
|
bp-messages = { path = "../../../../../bridges/primitives/messages", default-features = false }
|
||||||
bp-parachains = { path = "../../../../../bridges/primitives/parachains", default-features = false }
|
bp-parachains = { path = "../../../../../bridges/primitives/parachains", default-features = false }
|
||||||
@@ -60,8 +58,6 @@ bridge-runtime-common = { path = "../../../../../bridges/bin/runtime-common", de
|
|||||||
default = [ "std" ]
|
default = [ "std" ]
|
||||||
std = [
|
std = [
|
||||||
"asset-test-utils/std",
|
"asset-test-utils/std",
|
||||||
"bp-bridge-hub-rococo/std",
|
|
||||||
"bp-bridge-hub-wococo/std",
|
|
||||||
"bp-header-chain/std",
|
"bp-header-chain/std",
|
||||||
"bp-messages/std",
|
"bp-messages/std",
|
||||||
"bp-parachains/std",
|
"bp-parachains/std",
|
||||||
|
|||||||
@@ -32,7 +32,6 @@ pub type AssetHubWestendChainSpec =
|
|||||||
sc_service::GenericChainSpec<asset_hub_westend_runtime::RuntimeGenesisConfig, Extensions>;
|
sc_service::GenericChainSpec<asset_hub_westend_runtime::RuntimeGenesisConfig, Extensions>;
|
||||||
pub type AssetHubRococoChainSpec =
|
pub type AssetHubRococoChainSpec =
|
||||||
sc_service::GenericChainSpec<asset_hub_rococo_runtime::RuntimeGenesisConfig, Extensions>;
|
sc_service::GenericChainSpec<asset_hub_rococo_runtime::RuntimeGenesisConfig, Extensions>;
|
||||||
pub type AssetHubWococoChainSpec = AssetHubRococoChainSpec;
|
|
||||||
|
|
||||||
const ASSET_HUB_POLKADOT_ED: AssetHubBalance =
|
const ASSET_HUB_POLKADOT_ED: AssetHubBalance =
|
||||||
parachains_common::polkadot::currency::EXISTENTIAL_DEPOSIT;
|
parachains_common::polkadot::currency::EXISTENTIAL_DEPOSIT;
|
||||||
@@ -433,6 +432,7 @@ pub fn asset_hub_westend_development_config() -> AssetHubWestendChainSpec {
|
|||||||
get_account_id_from_seed::<sr25519::Public>("Alice//stash"),
|
get_account_id_from_seed::<sr25519::Public>("Alice//stash"),
|
||||||
get_account_id_from_seed::<sr25519::Public>("Bob//stash"),
|
get_account_id_from_seed::<sr25519::Public>("Bob//stash"),
|
||||||
],
|
],
|
||||||
|
parachains_common::westend::currency::UNITS * 1_000_000,
|
||||||
1000.into(),
|
1000.into(),
|
||||||
))
|
))
|
||||||
.with_properties(properties)
|
.with_properties(properties)
|
||||||
@@ -478,6 +478,7 @@ pub fn asset_hub_westend_local_config() -> AssetHubWestendChainSpec {
|
|||||||
get_account_id_from_seed::<sr25519::Public>("Eve//stash"),
|
get_account_id_from_seed::<sr25519::Public>("Eve//stash"),
|
||||||
get_account_id_from_seed::<sr25519::Public>("Ferdie//stash"),
|
get_account_id_from_seed::<sr25519::Public>("Ferdie//stash"),
|
||||||
],
|
],
|
||||||
|
parachains_common::westend::currency::UNITS * 1_000_000,
|
||||||
1000.into(),
|
1000.into(),
|
||||||
))
|
))
|
||||||
.with_properties(properties)
|
.with_properties(properties)
|
||||||
@@ -522,6 +523,7 @@ pub fn asset_hub_westend_config() -> AssetHubWestendChainSpec {
|
|||||||
),
|
),
|
||||||
],
|
],
|
||||||
Vec::new(),
|
Vec::new(),
|
||||||
|
ASSET_HUB_WESTEND_ED * 4096,
|
||||||
1000.into(),
|
1000.into(),
|
||||||
))
|
))
|
||||||
.with_properties(properties)
|
.with_properties(properties)
|
||||||
@@ -531,6 +533,7 @@ pub fn asset_hub_westend_config() -> AssetHubWestendChainSpec {
|
|||||||
fn asset_hub_westend_genesis(
|
fn asset_hub_westend_genesis(
|
||||||
invulnerables: Vec<(AccountId, AuraId)>,
|
invulnerables: Vec<(AccountId, AuraId)>,
|
||||||
endowed_accounts: Vec<AccountId>,
|
endowed_accounts: Vec<AccountId>,
|
||||||
|
endowment: AssetHubBalance,
|
||||||
id: ParaId,
|
id: ParaId,
|
||||||
) -> serde_json::Value {
|
) -> serde_json::Value {
|
||||||
serde_json::json!({
|
serde_json::json!({
|
||||||
@@ -538,7 +541,7 @@ fn asset_hub_westend_genesis(
|
|||||||
"balances": endowed_accounts
|
"balances": endowed_accounts
|
||||||
.iter()
|
.iter()
|
||||||
.cloned()
|
.cloned()
|
||||||
.map(|k| (k, ASSET_HUB_WESTEND_ED * 4096))
|
.map(|k| (k, endowment))
|
||||||
.collect::<Vec<_>>(),
|
.collect::<Vec<_>>(),
|
||||||
},
|
},
|
||||||
"parachainInfo": {
|
"parachainInfo": {
|
||||||
@@ -579,19 +582,6 @@ pub fn asset_hub_rococo_development_config() -> AssetHubRococoChainSpec {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn asset_hub_wococo_development_config() -> AssetHubWococoChainSpec {
|
|
||||||
let mut properties = sc_chain_spec::Properties::new();
|
|
||||||
properties.insert("ss58Format".into(), 42.into());
|
|
||||||
properties.insert("tokenSymbol".into(), "WOC".into());
|
|
||||||
properties.insert("tokenDecimals".into(), 12.into());
|
|
||||||
asset_hub_rococo_like_development_config(
|
|
||||||
properties,
|
|
||||||
"Wococo Asset Hub Development",
|
|
||||||
"asset-hub-wococo-dev",
|
|
||||||
1000,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn asset_hub_rococo_like_development_config(
|
fn asset_hub_rococo_like_development_config(
|
||||||
properties: sc_chain_spec::Properties,
|
properties: sc_chain_spec::Properties,
|
||||||
name: &str,
|
name: &str,
|
||||||
@@ -617,6 +607,7 @@ fn asset_hub_rococo_like_development_config(
|
|||||||
get_account_id_from_seed::<sr25519::Public>("Alice//stash"),
|
get_account_id_from_seed::<sr25519::Public>("Alice//stash"),
|
||||||
get_account_id_from_seed::<sr25519::Public>("Bob//stash"),
|
get_account_id_from_seed::<sr25519::Public>("Bob//stash"),
|
||||||
],
|
],
|
||||||
|
parachains_common::rococo::currency::UNITS * 1_000_000,
|
||||||
para_id.into(),
|
para_id.into(),
|
||||||
))
|
))
|
||||||
.with_properties(properties)
|
.with_properties(properties)
|
||||||
@@ -636,19 +627,6 @@ pub fn asset_hub_rococo_local_config() -> AssetHubRococoChainSpec {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn asset_hub_wococo_local_config() -> AssetHubWococoChainSpec {
|
|
||||||
let mut properties = sc_chain_spec::Properties::new();
|
|
||||||
properties.insert("ss58Format".into(), 42.into());
|
|
||||||
properties.insert("tokenSymbol".into(), "WOC".into());
|
|
||||||
properties.insert("tokenDecimals".into(), 12.into());
|
|
||||||
asset_hub_rococo_like_local_config(
|
|
||||||
properties,
|
|
||||||
"Wococo Asset Hub Local",
|
|
||||||
"asset-hub-wococo-local",
|
|
||||||
1000,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn asset_hub_rococo_like_local_config(
|
fn asset_hub_rococo_like_local_config(
|
||||||
properties: sc_chain_spec::Properties,
|
properties: sc_chain_spec::Properties,
|
||||||
name: &str,
|
name: &str,
|
||||||
@@ -688,6 +666,7 @@ fn asset_hub_rococo_like_local_config(
|
|||||||
get_account_id_from_seed::<sr25519::Public>("Eve//stash"),
|
get_account_id_from_seed::<sr25519::Public>("Eve//stash"),
|
||||||
get_account_id_from_seed::<sr25519::Public>("Ferdie//stash"),
|
get_account_id_from_seed::<sr25519::Public>("Ferdie//stash"),
|
||||||
],
|
],
|
||||||
|
parachains_common::rococo::currency::UNITS * 1_000_000,
|
||||||
para_id.into(),
|
para_id.into(),
|
||||||
))
|
))
|
||||||
.with_properties(properties)
|
.with_properties(properties)
|
||||||
@@ -735,54 +714,7 @@ pub fn asset_hub_rococo_genesis_config() -> AssetHubRococoChainSpec {
|
|||||||
),
|
),
|
||||||
],
|
],
|
||||||
Vec::new(),
|
Vec::new(),
|
||||||
para_id.into(),
|
ASSET_HUB_ROCOCO_ED * 524_288,
|
||||||
))
|
|
||||||
.with_properties(properties)
|
|
||||||
.build()
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn asset_hub_wococo_genesis_config() -> AssetHubWococoChainSpec {
|
|
||||||
let mut properties = sc_chain_spec::Properties::new();
|
|
||||||
properties.insert("ss58Format".into(), 42.into());
|
|
||||||
properties.insert("tokenSymbol".into(), "WOC".into());
|
|
||||||
properties.insert("tokenDecimals".into(), 12.into());
|
|
||||||
let para_id = 1000;
|
|
||||||
AssetHubRococoChainSpec::builder(
|
|
||||||
asset_hub_rococo_runtime::WASM_BINARY.expect("WASM binary was not built, please build it!"),
|
|
||||||
Extensions { relay_chain: "wococo".into(), para_id },
|
|
||||||
)
|
|
||||||
.with_name("Wococo Asset Hub")
|
|
||||||
.with_id("asset-hub-wococo")
|
|
||||||
.with_chain_type(ChainType::Live)
|
|
||||||
.with_genesis_config_patch(asset_hub_rococo_genesis(
|
|
||||||
// initial collators.
|
|
||||||
vec![
|
|
||||||
// 5C8RGkS8t5K93fB2hkgKbvSYs5iG6AknJMuQmbBDeazon9Lj
|
|
||||||
(
|
|
||||||
hex!("02d526f43cf27e94f478f9db785dc86052a77c695e7c855211839d3fde3ce534").into(),
|
|
||||||
hex!("02d526f43cf27e94f478f9db785dc86052a77c695e7c855211839d3fde3ce534")
|
|
||||||
.unchecked_into(),
|
|
||||||
),
|
|
||||||
// 5GePeDZQeBagXH7kH5QPKnQKi39Z5hoYFB5FmUtEvc4yxKej
|
|
||||||
(
|
|
||||||
hex!("caa1f623ca183296c4521b56cc29c484ca017830f8cb538f30f2d4664d631814").into(),
|
|
||||||
hex!("caa1f623ca183296c4521b56cc29c484ca017830f8cb538f30f2d4664d631814")
|
|
||||||
.unchecked_into(),
|
|
||||||
),
|
|
||||||
// 5CfnTTb9NMJDNKDntA83mHKoedZ7wjDC8ypLCTDd4NwUx3zv
|
|
||||||
(
|
|
||||||
hex!("1ac112d635db2bd34e79ae2b99486cf7c0b71a928668e4feb3dc4633d368f965").into(),
|
|
||||||
hex!("1ac112d635db2bd34e79ae2b99486cf7c0b71a928668e4feb3dc4633d368f965")
|
|
||||||
.unchecked_into(),
|
|
||||||
),
|
|
||||||
// 5EqheiwiG22gvGpN7cvrbeaQzhg7rzsYYVkYK4yj5vRrTQRQ
|
|
||||||
(
|
|
||||||
hex!("7ac9d11be07334cd27e9eb849f5fc7677a10ad36b6ab38b377d3c8b2c0b08b66").into(),
|
|
||||||
hex!("7ac9d11be07334cd27e9eb849f5fc7677a10ad36b6ab38b377d3c8b2c0b08b66")
|
|
||||||
.unchecked_into(),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
Vec::new(),
|
|
||||||
para_id.into(),
|
para_id.into(),
|
||||||
))
|
))
|
||||||
.with_properties(properties)
|
.with_properties(properties)
|
||||||
@@ -792,6 +724,7 @@ pub fn asset_hub_wococo_genesis_config() -> AssetHubWococoChainSpec {
|
|||||||
fn asset_hub_rococo_genesis(
|
fn asset_hub_rococo_genesis(
|
||||||
invulnerables: Vec<(AccountId, AuraId)>,
|
invulnerables: Vec<(AccountId, AuraId)>,
|
||||||
endowed_accounts: Vec<AccountId>,
|
endowed_accounts: Vec<AccountId>,
|
||||||
|
endowment: AssetHubBalance,
|
||||||
id: ParaId,
|
id: ParaId,
|
||||||
) -> serde_json::Value {
|
) -> serde_json::Value {
|
||||||
serde_json::json!({
|
serde_json::json!({
|
||||||
@@ -799,7 +732,7 @@ fn asset_hub_rococo_genesis(
|
|||||||
balances: endowed_accounts
|
balances: endowed_accounts
|
||||||
.iter()
|
.iter()
|
||||||
.cloned()
|
.cloned()
|
||||||
.map(|k| (k, ASSET_HUB_ROCOCO_ED * 524_288))
|
.map(|k| (k, endowment))
|
||||||
.collect(),
|
.collect(),
|
||||||
},
|
},
|
||||||
"parachainInfo": asset_hub_rococo_runtime::ParachainInfoConfig {
|
"parachainInfo": asset_hub_rococo_runtime::ParachainInfoConfig {
|
||||||
|
|||||||
@@ -29,9 +29,6 @@ pub enum BridgeHubRuntimeType {
|
|||||||
// used by benchmarks
|
// used by benchmarks
|
||||||
RococoDevelopment,
|
RococoDevelopment,
|
||||||
|
|
||||||
Wococo,
|
|
||||||
WococoLocal,
|
|
||||||
|
|
||||||
Kusama,
|
Kusama,
|
||||||
KusamaLocal,
|
KusamaLocal,
|
||||||
// used by benchmarks
|
// used by benchmarks
|
||||||
@@ -66,8 +63,6 @@ impl FromStr for BridgeHubRuntimeType {
|
|||||||
rococo::BRIDGE_HUB_ROCOCO => Ok(BridgeHubRuntimeType::Rococo),
|
rococo::BRIDGE_HUB_ROCOCO => Ok(BridgeHubRuntimeType::Rococo),
|
||||||
rococo::BRIDGE_HUB_ROCOCO_LOCAL => Ok(BridgeHubRuntimeType::RococoLocal),
|
rococo::BRIDGE_HUB_ROCOCO_LOCAL => Ok(BridgeHubRuntimeType::RococoLocal),
|
||||||
rococo::BRIDGE_HUB_ROCOCO_DEVELOPMENT => Ok(BridgeHubRuntimeType::RococoDevelopment),
|
rococo::BRIDGE_HUB_ROCOCO_DEVELOPMENT => Ok(BridgeHubRuntimeType::RococoDevelopment),
|
||||||
wococo::BRIDGE_HUB_WOCOCO => Ok(BridgeHubRuntimeType::Wococo),
|
|
||||||
wococo::BRIDGE_HUB_WOCOCO_LOCAL => Ok(BridgeHubRuntimeType::WococoLocal),
|
|
||||||
_ => Err(format!("Value '{}' is not configured yet", value)),
|
_ => Err(format!("Value '{}' is not configured yet", value)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -94,8 +89,6 @@ impl BridgeHubRuntimeType {
|
|||||||
BridgeHubRuntimeType::RococoLocal |
|
BridgeHubRuntimeType::RococoLocal |
|
||||||
BridgeHubRuntimeType::RococoDevelopment =>
|
BridgeHubRuntimeType::RococoDevelopment =>
|
||||||
Ok(Box::new(rococo::BridgeHubChainSpec::from_json_file(path)?)),
|
Ok(Box::new(rococo::BridgeHubChainSpec::from_json_file(path)?)),
|
||||||
BridgeHubRuntimeType::Wococo | BridgeHubRuntimeType::WococoLocal =>
|
|
||||||
Ok(Box::new(wococo::BridgeHubChainSpec::from_json_file(path)?)),
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -171,17 +164,6 @@ impl BridgeHubRuntimeType {
|
|||||||
Some("Bob".to_string()),
|
Some("Bob".to_string()),
|
||||||
|_| (),
|
|_| (),
|
||||||
))),
|
))),
|
||||||
BridgeHubRuntimeType::Wococo =>
|
|
||||||
Ok(Box::new(wococo::BridgeHubChainSpec::from_json_bytes(
|
|
||||||
&include_bytes!("../../chain-specs/bridge-hub-wococo.json")[..],
|
|
||||||
)?)),
|
|
||||||
BridgeHubRuntimeType::WococoLocal => Ok(Box::new(wococo::local_config(
|
|
||||||
wococo::BRIDGE_HUB_WOCOCO_LOCAL,
|
|
||||||
"Wococo BridgeHub Local",
|
|
||||||
"wococo-local",
|
|
||||||
ParaId::new(1014),
|
|
||||||
Some("Bob".to_string()),
|
|
||||||
))),
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -309,22 +291,9 @@ pub mod rococo {
|
|||||||
"polkadotXcm": {
|
"polkadotXcm": {
|
||||||
"safeXcmVersion": Some(SAFE_XCM_VERSION),
|
"safeXcmVersion": Some(SAFE_XCM_VERSION),
|
||||||
},
|
},
|
||||||
|
|
||||||
"bridgeWococoGrandpa": {
|
|
||||||
"owner": bridges_pallet_owner.clone(),
|
|
||||||
},
|
|
||||||
"bridgeWestendGrandpa": {
|
"bridgeWestendGrandpa": {
|
||||||
"owner": bridges_pallet_owner.clone(),
|
"owner": bridges_pallet_owner.clone(),
|
||||||
},
|
},
|
||||||
"bridgeRococoGrandpa": {
|
|
||||||
"owner": bridges_pallet_owner.clone(),
|
|
||||||
},
|
|
||||||
"bridgeRococoMessages": {
|
|
||||||
"owner": bridges_pallet_owner.clone(),
|
|
||||||
},
|
|
||||||
"bridgeWococoMessages": {
|
|
||||||
"owner": bridges_pallet_owner.clone(),
|
|
||||||
},
|
|
||||||
"bridgeWestendMessages": {
|
"bridgeWestendMessages": {
|
||||||
"owner": bridges_pallet_owner.clone(),
|
"owner": bridges_pallet_owner.clone(),
|
||||||
},
|
},
|
||||||
@@ -332,37 +301,6 @@ pub mod rococo {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Sub-module for Wococo setup (reuses stuff from Rococo)
|
|
||||||
pub mod wococo {
|
|
||||||
use super::ParaId;
|
|
||||||
use crate::chain_spec::bridge_hubs::rococo;
|
|
||||||
|
|
||||||
pub(crate) const BRIDGE_HUB_WOCOCO: &str = "bridge-hub-wococo";
|
|
||||||
pub(crate) const BRIDGE_HUB_WOCOCO_LOCAL: &str = "bridge-hub-wococo-local";
|
|
||||||
|
|
||||||
pub type BridgeHubChainSpec = rococo::BridgeHubChainSpec;
|
|
||||||
pub type RuntimeApi = rococo::RuntimeApi;
|
|
||||||
|
|
||||||
pub fn local_config(
|
|
||||||
id: &str,
|
|
||||||
chain_name: &str,
|
|
||||||
relay_chain: &str,
|
|
||||||
para_id: ParaId,
|
|
||||||
bridges_pallet_owner_seed: Option<String>,
|
|
||||||
) -> BridgeHubChainSpec {
|
|
||||||
rococo::local_config(
|
|
||||||
id,
|
|
||||||
chain_name,
|
|
||||||
relay_chain,
|
|
||||||
para_id,
|
|
||||||
bridges_pallet_owner_seed,
|
|
||||||
|properties| {
|
|
||||||
properties.insert("tokenSymbol".into(), "WOOK".into());
|
|
||||||
},
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Sub-module for Kusama setup
|
/// Sub-module for Kusama setup
|
||||||
pub mod kusama {
|
pub mod kusama {
|
||||||
use super::{BridgeHubBalance, ParaId};
|
use super::{BridgeHubBalance, ParaId};
|
||||||
|
|||||||
@@ -43,7 +43,6 @@ enum Runtime {
|
|||||||
AssetHubPolkadot,
|
AssetHubPolkadot,
|
||||||
AssetHubKusama,
|
AssetHubKusama,
|
||||||
AssetHubRococo,
|
AssetHubRococo,
|
||||||
AssetHubWococo,
|
|
||||||
AssetHubWestend,
|
AssetHubWestend,
|
||||||
Penpal(ParaId),
|
Penpal(ParaId),
|
||||||
ContractsRococo,
|
ContractsRococo,
|
||||||
@@ -95,8 +94,6 @@ fn runtime(id: &str) -> Runtime {
|
|||||||
Runtime::AssetHubKusama
|
Runtime::AssetHubKusama
|
||||||
} else if id.starts_with("asset-hub-rococo") {
|
} else if id.starts_with("asset-hub-rococo") {
|
||||||
Runtime::AssetHubRococo
|
Runtime::AssetHubRococo
|
||||||
} else if id.starts_with("asset-hub-wococo") {
|
|
||||||
Runtime::AssetHubWococo
|
|
||||||
} else if id.starts_with("asset-hub-westend") | id.starts_with("westmint") {
|
} else if id.starts_with("asset-hub-westend") | id.starts_with("westmint") {
|
||||||
Runtime::AssetHubWestend
|
Runtime::AssetHubWestend
|
||||||
} else if id.starts_with("penpal") {
|
} else if id.starts_with("penpal") {
|
||||||
@@ -186,19 +183,6 @@ fn load_spec(id: &str) -> std::result::Result<Box<dyn ChainSpec>, String> {
|
|||||||
&include_bytes!("../chain-specs/asset-hub-rococo.json")[..],
|
&include_bytes!("../chain-specs/asset-hub-rococo.json")[..],
|
||||||
)?),
|
)?),
|
||||||
|
|
||||||
// -- Asset Hub Wococo
|
|
||||||
"asset-hub-wococo-dev" =>
|
|
||||||
Box::new(chain_spec::asset_hubs::asset_hub_wococo_development_config()),
|
|
||||||
"asset-hub-wococo-local" =>
|
|
||||||
Box::new(chain_spec::asset_hubs::asset_hub_wococo_local_config()),
|
|
||||||
// the chain spec as used for generating the upgrade genesis values
|
|
||||||
"asset-hub-wococo-genesis" =>
|
|
||||||
Box::new(chain_spec::asset_hubs::asset_hub_wococo_genesis_config()),
|
|
||||||
"asset-hub-wococo" =>
|
|
||||||
Box::new(chain_spec::asset_hubs::AssetHubWococoChainSpec::from_json_bytes(
|
|
||||||
&include_bytes!("../chain-specs/asset-hub-wococo.json")[..],
|
|
||||||
)?),
|
|
||||||
|
|
||||||
// -- Asset Hub Westend
|
// -- Asset Hub Westend
|
||||||
"asset-hub-westend-dev" | "westmint-dev" =>
|
"asset-hub-westend-dev" | "westmint-dev" =>
|
||||||
Box::new(chain_spec::asset_hubs::asset_hub_westend_development_config()),
|
Box::new(chain_spec::asset_hubs::asset_hub_westend_development_config()),
|
||||||
@@ -302,8 +286,6 @@ fn load_spec(id: &str) -> std::result::Result<Box<dyn ChainSpec>, String> {
|
|||||||
Box::new(chain_spec::asset_hubs::AssetHubKusamaChainSpec::from_json_file(path)?),
|
Box::new(chain_spec::asset_hubs::AssetHubKusamaChainSpec::from_json_file(path)?),
|
||||||
Runtime::AssetHubRococo =>
|
Runtime::AssetHubRococo =>
|
||||||
Box::new(chain_spec::asset_hubs::AssetHubRococoChainSpec::from_json_file(path)?),
|
Box::new(chain_spec::asset_hubs::AssetHubRococoChainSpec::from_json_file(path)?),
|
||||||
Runtime::AssetHubWococo =>
|
|
||||||
Box::new(chain_spec::asset_hubs::AssetHubWococoChainSpec::from_json_file(path)?),
|
|
||||||
Runtime::AssetHubWestend => Box::new(
|
Runtime::AssetHubWestend => Box::new(
|
||||||
chain_spec::asset_hubs::AssetHubWestendChainSpec::from_json_file(path)?,
|
chain_spec::asset_hubs::AssetHubWestendChainSpec::from_json_file(path)?,
|
||||||
),
|
),
|
||||||
@@ -464,7 +446,7 @@ macro_rules! construct_partials {
|
|||||||
)?;
|
)?;
|
||||||
$code
|
$code
|
||||||
},
|
},
|
||||||
Runtime::AssetHubRococo | Runtime::AssetHubWococo => {
|
Runtime::AssetHubRococo => {
|
||||||
let $partials = new_partial::<asset_hub_rococo_runtime::RuntimeApi, _>(
|
let $partials = new_partial::<asset_hub_rococo_runtime::RuntimeApi, _>(
|
||||||
&$config,
|
&$config,
|
||||||
crate::service::aura_build_import_queue::<_, AuraId>,
|
crate::service::aura_build_import_queue::<_, AuraId>,
|
||||||
@@ -522,14 +504,6 @@ macro_rules! construct_partials {
|
|||||||
)?;
|
)?;
|
||||||
$code
|
$code
|
||||||
},
|
},
|
||||||
chain_spec::bridge_hubs::BridgeHubRuntimeType::Wococo |
|
|
||||||
chain_spec::bridge_hubs::BridgeHubRuntimeType::WococoLocal => {
|
|
||||||
let $partials = new_partial::<chain_spec::bridge_hubs::wococo::RuntimeApi, _>(
|
|
||||||
&$config,
|
|
||||||
crate::service::aura_build_import_queue::<_, AuraId>,
|
|
||||||
)?;
|
|
||||||
$code
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
Runtime::CollectivesPolkadot => {
|
Runtime::CollectivesPolkadot => {
|
||||||
let $partials = new_partial::<collectives_polkadot_runtime::RuntimeApi, _>(
|
let $partials = new_partial::<collectives_polkadot_runtime::RuntimeApi, _>(
|
||||||
@@ -605,7 +579,7 @@ macro_rules! construct_async_run {
|
|||||||
{ $( $code )* }.map(|v| (v, task_manager))
|
{ $( $code )* }.map(|v| (v, task_manager))
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
Runtime::AssetHubRococo | Runtime::AssetHubWococo => {
|
Runtime::AssetHubRococo => {
|
||||||
runner.async_run(|$config| {
|
runner.async_run(|$config| {
|
||||||
let $components = new_partial::<asset_hub_rococo_runtime::RuntimeApi, _>(
|
let $components = new_partial::<asset_hub_rococo_runtime::RuntimeApi, _>(
|
||||||
&$config,
|
&$config,
|
||||||
@@ -739,18 +713,6 @@ macro_rules! construct_async_run {
|
|||||||
{ $( $code )* }.map(|v| (v, task_manager))
|
{ $( $code )* }.map(|v| (v, task_manager))
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
chain_spec::bridge_hubs::BridgeHubRuntimeType::Wococo |
|
|
||||||
chain_spec::bridge_hubs::BridgeHubRuntimeType::WococoLocal => {
|
|
||||||
runner.async_run(|$config| {
|
|
||||||
let $components = new_partial::<chain_spec::bridge_hubs::wococo::RuntimeApi, _>(
|
|
||||||
&$config,
|
|
||||||
crate::service::aura_build_import_queue::<_, AuraId>,
|
|
||||||
)?;
|
|
||||||
|
|
||||||
let task_manager = $components.task_manager;
|
|
||||||
{ $( $code )* }.map(|v| (v, task_manager))
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
Runtime::Penpal(_) | Runtime::Default => {
|
Runtime::Penpal(_) | Runtime::Default => {
|
||||||
@@ -978,7 +940,7 @@ pub fn run() -> Result<()> {
|
|||||||
.await
|
.await
|
||||||
.map(|r| r.0)
|
.map(|r| r.0)
|
||||||
.map_err(Into::into),
|
.map_err(Into::into),
|
||||||
Runtime::AssetHubRococo | Runtime::AssetHubWococo => crate::service::start_asset_hub_node::<
|
Runtime::AssetHubRococo => crate::service::start_asset_hub_node::<
|
||||||
asset_hub_rococo_runtime::RuntimeApi,
|
asset_hub_rococo_runtime::RuntimeApi,
|
||||||
AuraId,
|
AuraId,
|
||||||
>(config, polkadot_config, collator_options, id, hwbench)
|
>(config, polkadot_config, collator_options, id, hwbench)
|
||||||
@@ -1077,14 +1039,6 @@ chain_spec::bridge_hubs::BridgeHubRuntimeType::Polkadot |
|
|||||||
>(config, polkadot_config, collator_options, id, hwbench)
|
>(config, polkadot_config, collator_options, id, hwbench)
|
||||||
.await
|
.await
|
||||||
.map(|r| r.0),
|
.map(|r| r.0),
|
||||||
chain_spec::bridge_hubs::BridgeHubRuntimeType::Wococo |
|
|
||||||
chain_spec::bridge_hubs::BridgeHubRuntimeType::WococoLocal =>
|
|
||||||
crate::service::start_generic_aura_node::<
|
|
||||||
chain_spec::bridge_hubs::wococo::RuntimeApi,
|
|
||||||
AuraId,
|
|
||||||
>(config, polkadot_config, collator_options, id, hwbench)
|
|
||||||
.await
|
|
||||||
.map(|r| r.0),
|
|
||||||
}
|
}
|
||||||
.map_err(Into::into),
|
.map_err(Into::into),
|
||||||
Runtime::Penpal(_) | Runtime::Default =>
|
Runtime::Penpal(_) | Runtime::Default =>
|
||||||
|
|||||||
@@ -170,8 +170,6 @@ function run_relay() {
|
|||||||
--bridge-hub-rococo-port 8943 \
|
--bridge-hub-rococo-port 8943 \
|
||||||
--bridge-hub-rococo-version-mode Auto \
|
--bridge-hub-rococo-version-mode Auto \
|
||||||
--bridge-hub-rococo-signer //Charlie \
|
--bridge-hub-rococo-signer //Charlie \
|
||||||
--westend-headers-to-bridge-hub-rococo-signer //Bob \
|
|
||||||
--westend-parachains-to-bridge-hub-rococo-signer //Bob \
|
|
||||||
--bridge-hub-rococo-transactions-mortality 4 \
|
--bridge-hub-rococo-transactions-mortality 4 \
|
||||||
--westend-host localhost \
|
--westend-host localhost \
|
||||||
--westend-port 9945 \
|
--westend-port 9945 \
|
||||||
@@ -180,8 +178,6 @@ function run_relay() {
|
|||||||
--bridge-hub-westend-port 8945 \
|
--bridge-hub-westend-port 8945 \
|
||||||
--bridge-hub-westend-version-mode Auto \
|
--bridge-hub-westend-version-mode Auto \
|
||||||
--bridge-hub-westend-signer //Charlie \
|
--bridge-hub-westend-signer //Charlie \
|
||||||
--rococo-headers-to-bridge-hub-westend-signer //Bob \
|
|
||||||
--rococo-parachains-to-bridge-hub-westend-signer //Bob \
|
|
||||||
--bridge-hub-westend-transactions-mortality 4 \
|
--bridge-hub-westend-transactions-mortality 4 \
|
||||||
--lane "${LANE_ID}"
|
--lane "${LANE_ID}"
|
||||||
}
|
}
|
||||||
@@ -209,7 +205,7 @@ case "$1" in
|
|||||||
"ws://127.0.0.1:9910" \
|
"ws://127.0.0.1:9910" \
|
||||||
"//Alice" \
|
"//Alice" \
|
||||||
"$GLOBAL_CONSENSUS_WESTEND_ASSET_HUB_WESTEND_1000_SOVEREIGN_ACCOUNT" \
|
"$GLOBAL_CONSENSUS_WESTEND_ASSET_HUB_WESTEND_1000_SOVEREIGN_ACCOUNT" \
|
||||||
$((1000000000 + 50000000000 * 20))
|
$((1000000000000 + 50000000000 * 20))
|
||||||
# HRMP
|
# HRMP
|
||||||
open_hrmp_channels \
|
open_hrmp_channels \
|
||||||
"ws://127.0.0.1:9942" \
|
"ws://127.0.0.1:9942" \
|
||||||
@@ -227,19 +223,19 @@ case "$1" in
|
|||||||
"ws://127.0.0.1:8943" \
|
"ws://127.0.0.1:8943" \
|
||||||
"//Alice" \
|
"//Alice" \
|
||||||
"$ASSET_HUB_ROCOCO_SOVEREIGN_ACCOUNT_AT_BRIDGE_HUB_ROCOCO" \
|
"$ASSET_HUB_ROCOCO_SOVEREIGN_ACCOUNT_AT_BRIDGE_HUB_ROCOCO" \
|
||||||
$((1000000000 + 50000000000 * 20))
|
$((1000000000000 + 50000000000 * 20))
|
||||||
# drip SA of lane dedicated to asset hub for paying rewards for delivery
|
# drip SA of lane dedicated to asset hub for paying rewards for delivery
|
||||||
transfer_balance \
|
transfer_balance \
|
||||||
"ws://127.0.0.1:8943" \
|
"ws://127.0.0.1:8943" \
|
||||||
"//Alice" \
|
"//Alice" \
|
||||||
"$ON_BRIDGE_HUB_ROCOCO_SOVEREIGN_ACCOUNT_FOR_LANE_00000002_bhwd_ThisChain" \
|
"$ON_BRIDGE_HUB_ROCOCO_SOVEREIGN_ACCOUNT_FOR_LANE_00000002_bhwd_ThisChain" \
|
||||||
$((1000000000 + 2000000000000))
|
$((1000000000000 + 2000000000000))
|
||||||
# drip SA of lane dedicated to asset hub for paying rewards for delivery confirmation
|
# drip SA of lane dedicated to asset hub for paying rewards for delivery confirmation
|
||||||
transfer_balance \
|
transfer_balance \
|
||||||
"ws://127.0.0.1:8943" \
|
"ws://127.0.0.1:8943" \
|
||||||
"//Alice" \
|
"//Alice" \
|
||||||
"$ON_BRIDGE_HUB_ROCOCO_SOVEREIGN_ACCOUNT_FOR_LANE_00000002_bhwd_BridgedChain" \
|
"$ON_BRIDGE_HUB_ROCOCO_SOVEREIGN_ACCOUNT_FOR_LANE_00000002_bhwd_BridgedChain" \
|
||||||
$((1000000000 + 2000000000000))
|
$((1000000000000 + 2000000000000))
|
||||||
;;
|
;;
|
||||||
init-asset-hub-westend-local)
|
init-asset-hub-westend-local)
|
||||||
ensure_polkadot_js_api
|
ensure_polkadot_js_api
|
||||||
@@ -258,7 +254,7 @@ case "$1" in
|
|||||||
"ws://127.0.0.1:9010" \
|
"ws://127.0.0.1:9010" \
|
||||||
"//Alice" \
|
"//Alice" \
|
||||||
"$GLOBAL_CONSENSUS_ROCOCO_ASSET_HUB_ROCOCO_1000_SOVEREIGN_ACCOUNT" \
|
"$GLOBAL_CONSENSUS_ROCOCO_ASSET_HUB_ROCOCO_1000_SOVEREIGN_ACCOUNT" \
|
||||||
$((1000000000 + 50000000000 * 20))
|
$((1000000000000000 + 50000000000 * 20))
|
||||||
# HRMP
|
# HRMP
|
||||||
open_hrmp_channels \
|
open_hrmp_channels \
|
||||||
"ws://127.0.0.1:9945" \
|
"ws://127.0.0.1:9945" \
|
||||||
@@ -275,19 +271,19 @@ case "$1" in
|
|||||||
"ws://127.0.0.1:8945" \
|
"ws://127.0.0.1:8945" \
|
||||||
"//Alice" \
|
"//Alice" \
|
||||||
"$ASSET_HUB_WESTEND_SOVEREIGN_ACCOUNT_AT_BRIDGE_HUB_WESTEND" \
|
"$ASSET_HUB_WESTEND_SOVEREIGN_ACCOUNT_AT_BRIDGE_HUB_WESTEND" \
|
||||||
$((1000000000 + 50000000000 * 20))
|
$((1000000000000000 + 50000000000 * 20))
|
||||||
# drip SA of lane dedicated to asset hub for paying rewards for delivery
|
# drip SA of lane dedicated to asset hub for paying rewards for delivery
|
||||||
transfer_balance \
|
transfer_balance \
|
||||||
"ws://127.0.0.1:8945" \
|
"ws://127.0.0.1:8945" \
|
||||||
"//Alice" \
|
"//Alice" \
|
||||||
"$ON_BRIDGE_HUB_WESTEND_SOVEREIGN_ACCOUNT_FOR_LANE_00000002_bhro_ThisChain" \
|
"$ON_BRIDGE_HUB_WESTEND_SOVEREIGN_ACCOUNT_FOR_LANE_00000002_bhro_ThisChain" \
|
||||||
$((1000000000 + 2000000000000))
|
$((1000000000000000 + 2000000000000))
|
||||||
# drip SA of lane dedicated to asset hub for paying rewards for delivery confirmation
|
# drip SA of lane dedicated to asset hub for paying rewards for delivery confirmation
|
||||||
transfer_balance \
|
transfer_balance \
|
||||||
"ws://127.0.0.1:8945" \
|
"ws://127.0.0.1:8945" \
|
||||||
"//Alice" \
|
"//Alice" \
|
||||||
"$ON_BRIDGE_HUB_WESTEND_SOVEREIGN_ACCOUNT_FOR_LANE_00000002_bhro_BridgedChain" \
|
"$ON_BRIDGE_HUB_WESTEND_SOVEREIGN_ACCOUNT_FOR_LANE_00000002_bhro_BridgedChain" \
|
||||||
$((1000000000 + 2000000000000))
|
$((1000000000000000 + 2000000000000))
|
||||||
;;
|
;;
|
||||||
reserve-transfer-assets-from-asset-hub-rococo-local)
|
reserve-transfer-assets-from-asset-hub-rococo-local)
|
||||||
ensure_polkadot_js_api
|
ensure_polkadot_js_api
|
||||||
@@ -309,7 +305,7 @@ case "$1" in
|
|||||||
"//Alice" \
|
"//Alice" \
|
||||||
"$(jq --null-input '{ "V3": { "parents": 2, "interior": { "X2": [ { "GlobalConsensus": "Westend" }, { "Parachain": 1000 } ] } } }')" \
|
"$(jq --null-input '{ "V3": { "parents": 2, "interior": { "X2": [ { "GlobalConsensus": "Westend" }, { "Parachain": 1000 } ] } } }')" \
|
||||||
"$(jq --null-input '{ "V3": { "parents": 0, "interior": { "X1": { "AccountId32": { "id": [212, 53, 147, 199, 21, 253, 211, 28, 97, 20, 26, 189, 4, 169, 159, 214, 130, 44, 133, 88, 133, 76, 205, 227, 154, 86, 132, 231, 165, 109, 162, 125] } } } } }')" \
|
"$(jq --null-input '{ "V3": { "parents": 0, "interior": { "X1": { "AccountId32": { "id": [212, 53, 147, 199, 21, 253, 211, 28, 97, 20, 26, 189, 4, 169, 159, 214, 130, 44, 133, 88, 133, 76, 205, 227, 154, 86, 132, 231, 165, 109, 162, 125] } } } } }')" \
|
||||||
"$(jq --null-input '{ "V3": [ { "id": { "Concrete": { "parents": 2, "interior": { "X1": { "GlobalConsensus": "Westend" } } } }, "fun": { "Fungible": 140000000000 } } ] }')" \
|
"$(jq --null-input '{ "V3": [ { "id": { "Concrete": { "parents": 2, "interior": { "X1": { "GlobalConsensus": "Westend" } } } }, "fun": { "Fungible": 40000000000 } } ] }')" \
|
||||||
0 \
|
0 \
|
||||||
"Unlimited"
|
"Unlimited"
|
||||||
;;
|
;;
|
||||||
|
|||||||
@@ -1,386 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# import common functions
|
|
||||||
source "$(dirname "$0")"/bridges_common.sh
|
|
||||||
|
|
||||||
# Expected sovereign accounts.
|
|
||||||
#
|
|
||||||
# Generated by:
|
|
||||||
#
|
|
||||||
# #[test]
|
|
||||||
# fn generate_sovereign_accounts() {
|
|
||||||
# use sp_core::crypto::Ss58Codec;
|
|
||||||
# use polkadot_parachain_primitives::primitives::Sibling;
|
|
||||||
#
|
|
||||||
# parameter_types! {
|
|
||||||
# pub UniversalLocationAHR: InteriorMultiLocation = X2(GlobalConsensus(Rococo), Parachain(1000));
|
|
||||||
# pub UniversalLocationAHW: InteriorMultiLocation = X2(GlobalConsensus(Wococo), Parachain(1000));
|
|
||||||
# }
|
|
||||||
#
|
|
||||||
# // SS58=42
|
|
||||||
# println!("GLOBAL_CONSENSUS_ROCOCO_SOVEREIGN_ACCOUNT=\"{}\"",
|
|
||||||
# frame_support::sp_runtime::AccountId32::new(
|
|
||||||
# GlobalConsensusConvertsFor::<UniversalLocationAHW, [u8; 32]>::convert_location(
|
|
||||||
# &MultiLocation { parents: 2, interior: X1(GlobalConsensus(Rococo)) }).unwrap()
|
|
||||||
# ).to_ss58check_with_version(42_u16.into())
|
|
||||||
# );
|
|
||||||
# println!("GLOBAL_CONSENSUS_ROCOCO_ASSET_HUB_ROCOCO_1000_SOVEREIGN_ACCOUNT=\"{}\"",
|
|
||||||
# frame_support::sp_runtime::AccountId32::new(
|
|
||||||
# GlobalConsensusParachainConvertsFor::<UniversalLocationAHW, [u8; 32]>::convert_location(
|
|
||||||
# &MultiLocation { parents: 2, interior: X2(GlobalConsensus(Rococo), Parachain(1000)) }).unwrap()
|
|
||||||
# ).to_ss58check_with_version(42_u16.into())
|
|
||||||
# );
|
|
||||||
# println!("ASSET_HUB_WOCOCO_SOVEREIGN_ACCOUNT_AT_BRIDGE_HUB_WOCOCO=\"{}\"",
|
|
||||||
# frame_support::sp_runtime::AccountId32::new(
|
|
||||||
# SiblingParachainConvertsVia::<Sibling, [u8; 32]>::convert_location(
|
|
||||||
# &MultiLocation { parents: 1, interior: X1(Parachain(1000)) }).unwrap()
|
|
||||||
# ).to_ss58check_with_version(42_u16.into())
|
|
||||||
# );
|
|
||||||
#
|
|
||||||
# // SS58=42
|
|
||||||
# println!("GLOBAL_CONSENSUS_WOCOCO_SOVEREIGN_ACCOUNT=\"{}\"",
|
|
||||||
# frame_support::sp_runtime::AccountId32::new(
|
|
||||||
# GlobalConsensusConvertsFor::<UniversalLocationAHR, [u8; 32]>::convert_location(
|
|
||||||
# &MultiLocation { parents: 2, interior: X1(GlobalConsensus(Wococo)) }).unwrap()
|
|
||||||
# ).to_ss58check_with_version(42_u16.into())
|
|
||||||
# );
|
|
||||||
# println!("GLOBAL_CONSENSUS_WOCOCO_ASSET_HUB_WOCOCO_1000_SOVEREIGN_ACCOUNT=\"{}\"",
|
|
||||||
# frame_support::sp_runtime::AccountId32::new(
|
|
||||||
# GlobalConsensusParachainConvertsFor::<UniversalLocationAHR, [u8; 32]>::convert_location(
|
|
||||||
# &MultiLocation { parents: 2, interior: X2(GlobalConsensus(Wococo), Parachain(1000)) }).unwrap()
|
|
||||||
# ).to_ss58check_with_version(42_u16.into())
|
|
||||||
# );
|
|
||||||
# println!("ASSET_HUB_ROCOCO_SOVEREIGN_ACCOUNT_AT_BRIDGE_HUB_ROCOCO=\"{}\"",
|
|
||||||
# frame_support::sp_runtime::AccountId32::new(
|
|
||||||
# SiblingParachainConvertsVia::<Sibling, [u8; 32]>::convert_location(
|
|
||||||
# &MultiLocation { parents: 1, interior: X1(Parachain(1000)) }).unwrap()
|
|
||||||
# ).to_ss58check_with_version(42_u16.into())
|
|
||||||
# );
|
|
||||||
# }
|
|
||||||
GLOBAL_CONSENSUS_ROCOCO_SOVEREIGN_ACCOUNT="5GxRGwT8bU1JeBPTUXc7LEjZMxNrK8MyL2NJnkWFQJTQ4sii"
|
|
||||||
GLOBAL_CONSENSUS_ROCOCO_ASSET_HUB_ROCOCO_1000_SOVEREIGN_ACCOUNT="5CfNu7eH3SJvqqPt3aJh38T8dcFvhGzEohp9tsd41ANhXDnQ"
|
|
||||||
ASSET_HUB_WOCOCO_SOVEREIGN_ACCOUNT_AT_BRIDGE_HUB_WOCOCO="5Eg2fntNprdN3FgH4sfEaaZhYtddZQSQUqvYJ1f2mLtinVhV"
|
|
||||||
GLOBAL_CONSENSUS_WOCOCO_SOVEREIGN_ACCOUNT="5EWw2NzfPr2DCahourp33cya6bGWEJViTnJN6Z2ruFevpJML"
|
|
||||||
GLOBAL_CONSENSUS_WOCOCO_ASSET_HUB_WOCOCO_1000_SOVEREIGN_ACCOUNT="5EJX8L4dwGyYnCsjZ91LfWAsm3rCN8vY2AYvT4mauMEjsrQz"
|
|
||||||
ASSET_HUB_ROCOCO_SOVEREIGN_ACCOUNT_AT_BRIDGE_HUB_ROCOCO="5Eg2fntNprdN3FgH4sfEaaZhYtddZQSQUqvYJ1f2mLtinVhV"
|
|
||||||
|
|
||||||
# Expected sovereign accounts for rewards on BridgeHubs.
|
|
||||||
#
|
|
||||||
# Generated by:
|
|
||||||
#[test]
|
|
||||||
#fn generate_sovereign_accounts_for_rewards() {
|
|
||||||
# use bp_messages::LaneId;
|
|
||||||
# use bp_relayers::{PayRewardFromAccount, RewardsAccountOwner, RewardsAccountParams};
|
|
||||||
# use sp_core::crypto::Ss58Codec;
|
|
||||||
#
|
|
||||||
# // SS58=42
|
|
||||||
# println!(
|
|
||||||
# "ON_BRIDGE_HUB_ROCOCO_SOVEREIGN_ACCOUNT_FOR_LANE_00000001_bhwo_ThisChain=\"{}\"",
|
|
||||||
# frame_support::sp_runtime::AccountId32::new(
|
|
||||||
# PayRewardFromAccount::<[u8; 32], [u8; 32]>::rewards_account(RewardsAccountParams::new(
|
|
||||||
# LaneId([0, 0, 0, 1]),
|
|
||||||
# *b"bhwo",
|
|
||||||
# RewardsAccountOwner::ThisChain
|
|
||||||
# ))
|
|
||||||
# )
|
|
||||||
# .to_ss58check_with_version(42_u16.into())
|
|
||||||
# );
|
|
||||||
# // SS58=42
|
|
||||||
# println!(
|
|
||||||
# "ON_BRIDGE_HUB_ROCOCO_SOVEREIGN_ACCOUNT_FOR_LANE_00000001_bhwo_BridgedChain=\"{}\"",
|
|
||||||
# frame_support::sp_runtime::AccountId32::new(
|
|
||||||
# PayRewardFromAccount::<[u8; 32], [u8; 32]>::rewards_account(RewardsAccountParams::new(
|
|
||||||
# LaneId([0, 0, 0, 1]),
|
|
||||||
# *b"bhwo",
|
|
||||||
# RewardsAccountOwner::BridgedChain
|
|
||||||
# ))
|
|
||||||
# )
|
|
||||||
# .to_ss58check_with_version(42_u16.into())
|
|
||||||
# );
|
|
||||||
#
|
|
||||||
# // SS58=42
|
|
||||||
# println!(
|
|
||||||
# "ON_BRIDGE_HUB_WOCOCO_SOVEREIGN_ACCOUNT_FOR_LANE_00000001_bhro_ThisChain=\"{}\"",
|
|
||||||
# frame_support::sp_runtime::AccountId32::new(
|
|
||||||
# PayRewardFromAccount::<[u8; 32], [u8; 32]>::rewards_account(RewardsAccountParams::new(
|
|
||||||
# LaneId([0, 0, 0, 1]),
|
|
||||||
# *b"bhro",
|
|
||||||
# RewardsAccountOwner::ThisChain
|
|
||||||
# ))
|
|
||||||
# )
|
|
||||||
# .to_ss58check_with_version(42_u16.into())
|
|
||||||
# );
|
|
||||||
# // SS58=42
|
|
||||||
# println!(
|
|
||||||
# "ON_BRIDGE_HUB_WOCOCO_SOVEREIGN_ACCOUNT_FOR_LANE_00000001_bhro_BridgedChain=\"{}\"",
|
|
||||||
# frame_support::sp_runtime::AccountId32::new(
|
|
||||||
# PayRewardFromAccount::<[u8; 32], [u8; 32]>::rewards_account(RewardsAccountParams::new(
|
|
||||||
# LaneId([0, 0, 0, 1]),
|
|
||||||
# *b"bhro",
|
|
||||||
# RewardsAccountOwner::BridgedChain
|
|
||||||
# ))
|
|
||||||
# )
|
|
||||||
# .to_ss58check_with_version(42_u16.into())
|
|
||||||
# );
|
|
||||||
#}
|
|
||||||
ON_BRIDGE_HUB_ROCOCO_SOVEREIGN_ACCOUNT_FOR_LANE_00000001_bhwo_ThisChain="5EHnXaT5BhiS8YRPMeHi97YHofTtNx4pLNb8wR8TwjVq1gzU"
|
|
||||||
ON_BRIDGE_HUB_ROCOCO_SOVEREIGN_ACCOUNT_FOR_LANE_00000001_bhwo_BridgedChain="5EHnXaT5BhiS8YRPMeHyt95svA95qWAh53XeVMpJQZNZHAzj"
|
|
||||||
ON_BRIDGE_HUB_WOCOCO_SOVEREIGN_ACCOUNT_FOR_LANE_00000001_bhro_ThisChain="5EHnXaT5BhiS8YRNuCukWXTQdAqARjjXmpjehjx1YZNE5keZ"
|
|
||||||
ON_BRIDGE_HUB_WOCOCO_SOVEREIGN_ACCOUNT_FOR_LANE_00000001_bhro_BridgedChain="5EHnXaT5BhiS8YRNuCv2FYzzjfWMtHqQWVgAFgdr1PExMN94"
|
|
||||||
|
|
||||||
LANE_ID="00000001"
|
|
||||||
|
|
||||||
function init_ro_wo() {
|
|
||||||
ensure_relayer
|
|
||||||
|
|
||||||
RUST_LOG=runtime=trace,rpc=trace,bridge=trace \
|
|
||||||
~/local_bridge_testing/bin/substrate-relay init-bridge rococo-to-bridge-hub-wococo \
|
|
||||||
--source-host localhost \
|
|
||||||
--source-port 9942 \
|
|
||||||
--source-version-mode Auto \
|
|
||||||
--target-host localhost \
|
|
||||||
--target-port 8945 \
|
|
||||||
--target-version-mode Auto \
|
|
||||||
--target-signer //Bob
|
|
||||||
}
|
|
||||||
|
|
||||||
function init_wo_ro() {
|
|
||||||
ensure_relayer
|
|
||||||
|
|
||||||
RUST_LOG=runtime=trace,rpc=trace,bridge=trace \
|
|
||||||
~/local_bridge_testing/bin/substrate-relay init-bridge wococo-to-bridge-hub-rococo \
|
|
||||||
--source-host localhost \
|
|
||||||
--source-port 9945 \
|
|
||||||
--source-version-mode Auto \
|
|
||||||
--target-host localhost \
|
|
||||||
--target-port 8943 \
|
|
||||||
--target-version-mode Auto \
|
|
||||||
--target-signer //Bob
|
|
||||||
}
|
|
||||||
|
|
||||||
function run_relay() {
|
|
||||||
ensure_relayer
|
|
||||||
|
|
||||||
RUST_LOG=runtime=trace,rpc=trace,bridge=trace \
|
|
||||||
~/local_bridge_testing/bin/substrate-relay relay-headers-and-messages bridge-hub-rococo-bridge-hub-wococo \
|
|
||||||
--rococo-host localhost \
|
|
||||||
--rococo-port 9942 \
|
|
||||||
--rococo-version-mode Auto \
|
|
||||||
--bridge-hub-rococo-host localhost \
|
|
||||||
--bridge-hub-rococo-port 8943 \
|
|
||||||
--bridge-hub-rococo-version-mode Auto \
|
|
||||||
--bridge-hub-rococo-signer //Charlie \
|
|
||||||
--wococo-headers-to-bridge-hub-rococo-signer //Bob \
|
|
||||||
--wococo-parachains-to-bridge-hub-rococo-signer //Bob \
|
|
||||||
--bridge-hub-rococo-transactions-mortality 4 \
|
|
||||||
--wococo-host localhost \
|
|
||||||
--wococo-port 9945 \
|
|
||||||
--wococo-version-mode Auto \
|
|
||||||
--bridge-hub-wococo-host localhost \
|
|
||||||
--bridge-hub-wococo-port 8945 \
|
|
||||||
--bridge-hub-wococo-version-mode Auto \
|
|
||||||
--bridge-hub-wococo-signer //Charlie \
|
|
||||||
--rococo-headers-to-bridge-hub-wococo-signer //Bob \
|
|
||||||
--rococo-parachains-to-bridge-hub-wococo-signer //Bob \
|
|
||||||
--bridge-hub-wococo-transactions-mortality 4 \
|
|
||||||
--lane "${LANE_ID}"
|
|
||||||
}
|
|
||||||
|
|
||||||
case "$1" in
|
|
||||||
run-relay)
|
|
||||||
init_ro_wo
|
|
||||||
init_wo_ro
|
|
||||||
run_relay
|
|
||||||
;;
|
|
||||||
init-asset-hub-rococo-local)
|
|
||||||
ensure_polkadot_js_api
|
|
||||||
# create foreign assets for native Wococo token (governance call on Rococo)
|
|
||||||
force_create_foreign_asset \
|
|
||||||
"ws://127.0.0.1:9942" \
|
|
||||||
"//Alice" \
|
|
||||||
1000 \
|
|
||||||
"ws://127.0.0.1:9910" \
|
|
||||||
"$(jq --null-input '{ "parents": 2, "interior": { "X1": { "GlobalConsensus": "Wococo" } } }')" \
|
|
||||||
"$GLOBAL_CONSENSUS_WOCOCO_SOVEREIGN_ACCOUNT" \
|
|
||||||
10000000000 \
|
|
||||||
true
|
|
||||||
# drip SA which holds reserves
|
|
||||||
transfer_balance \
|
|
||||||
"ws://127.0.0.1:9910" \
|
|
||||||
"//Alice" \
|
|
||||||
"$GLOBAL_CONSENSUS_WOCOCO_ASSET_HUB_WOCOCO_1000_SOVEREIGN_ACCOUNT" \
|
|
||||||
$((1000000000 + 50000000000 * 20))
|
|
||||||
# HRMP
|
|
||||||
open_hrmp_channels \
|
|
||||||
"ws://127.0.0.1:9942" \
|
|
||||||
"//Alice" \
|
|
||||||
1000 1013 4 524288
|
|
||||||
open_hrmp_channels \
|
|
||||||
"ws://127.0.0.1:9942" \
|
|
||||||
"//Alice" \
|
|
||||||
1013 1000 4 524288
|
|
||||||
;;
|
|
||||||
init-bridge-hub-rococo-local)
|
|
||||||
ensure_polkadot_js_api
|
|
||||||
# SA of sibling asset hub pays for the execution
|
|
||||||
transfer_balance \
|
|
||||||
"ws://127.0.0.1:8943" \
|
|
||||||
"//Alice" \
|
|
||||||
"$ASSET_HUB_ROCOCO_SOVEREIGN_ACCOUNT_AT_BRIDGE_HUB_ROCOCO" \
|
|
||||||
$((1000000000 + 50000000000 * 20))
|
|
||||||
# drip SA of lane dedicated to asset hub for paying rewards for delivery
|
|
||||||
transfer_balance \
|
|
||||||
"ws://127.0.0.1:8943" \
|
|
||||||
"//Alice" \
|
|
||||||
"$ON_BRIDGE_HUB_ROCOCO_SOVEREIGN_ACCOUNT_FOR_LANE_00000001_bhwo_ThisChain" \
|
|
||||||
$((1000000000 + 2000000000000))
|
|
||||||
# drip SA of lane dedicated to asset hub for paying rewards for delivery confirmation
|
|
||||||
transfer_balance \
|
|
||||||
"ws://127.0.0.1:8943" \
|
|
||||||
"//Alice" \
|
|
||||||
"$ON_BRIDGE_HUB_ROCOCO_SOVEREIGN_ACCOUNT_FOR_LANE_00000001_bhwo_BridgedChain" \
|
|
||||||
$((1000000000 + 2000000000000))
|
|
||||||
;;
|
|
||||||
init-asset-hub-wococo-local)
|
|
||||||
ensure_polkadot_js_api
|
|
||||||
# set Wococo flavor - set_storage with:
|
|
||||||
# - `key` is `HexDisplay::from(&asset_hub_rococo_runtime::xcm_config::Flavor::key())`
|
|
||||||
# - `value` is `HexDisplay::from(&asset_hub_rococo_runtime::RuntimeFlavor::Wococo.encode())`
|
|
||||||
set_storage \
|
|
||||||
"ws://127.0.0.1:9945" \
|
|
||||||
"//Alice" \
|
|
||||||
1000 \
|
|
||||||
"ws://127.0.0.1:9010" \
|
|
||||||
"$(jq --null-input '[["0x48297505634037ef48c848c99c0b1f1b", "0x01"]]')"
|
|
||||||
# create foreign assets for native Rococo token (governance call on Wococo)
|
|
||||||
force_create_foreign_asset \
|
|
||||||
"ws://127.0.0.1:9945" \
|
|
||||||
"//Alice" \
|
|
||||||
1000 \
|
|
||||||
"ws://127.0.0.1:9010" \
|
|
||||||
"$(jq --null-input '{ "parents": 2, "interior": { "X1": { "GlobalConsensus": "Rococo" } } }')" \
|
|
||||||
"$GLOBAL_CONSENSUS_ROCOCO_SOVEREIGN_ACCOUNT" \
|
|
||||||
10000000000 \
|
|
||||||
true
|
|
||||||
# drip SA which holds reserves
|
|
||||||
transfer_balance \
|
|
||||||
"ws://127.0.0.1:9010" \
|
|
||||||
"//Alice" \
|
|
||||||
"$GLOBAL_CONSENSUS_ROCOCO_ASSET_HUB_ROCOCO_1000_SOVEREIGN_ACCOUNT" \
|
|
||||||
$((1000000000 + 50000000000 * 20))
|
|
||||||
# HRMP
|
|
||||||
open_hrmp_channels \
|
|
||||||
"ws://127.0.0.1:9945" \
|
|
||||||
"//Alice" \
|
|
||||||
1000 1014 4 524288
|
|
||||||
open_hrmp_channels \
|
|
||||||
"ws://127.0.0.1:9945" \
|
|
||||||
"//Alice" \
|
|
||||||
1014 1000 4 524288
|
|
||||||
;;
|
|
||||||
init-bridge-hub-wococo-local)
|
|
||||||
# set Wococo flavor - set_storage with:
|
|
||||||
# - `key` is `HexDisplay::from(&bridge_hub_rococo_runtime::xcm_config::Flavor::key())`
|
|
||||||
# - `value` is `HexDisplay::from(&bridge_hub_rococo_runtime::RuntimeFlavor::Wococo.encode())`
|
|
||||||
set_storage \
|
|
||||||
"ws://127.0.0.1:9945" \
|
|
||||||
"//Alice" \
|
|
||||||
1014 \
|
|
||||||
"ws://127.0.0.1:8945" \
|
|
||||||
"$(jq --null-input '[["0x48297505634037ef48c848c99c0b1f1b", "0x01"]]')"
|
|
||||||
# SA of sibling asset hub pays for the execution
|
|
||||||
transfer_balance \
|
|
||||||
"ws://127.0.0.1:8945" \
|
|
||||||
"//Alice" \
|
|
||||||
"$ASSET_HUB_WOCOCO_SOVEREIGN_ACCOUNT_AT_BRIDGE_HUB_WOCOCO" \
|
|
||||||
$((1000000000 + 50000000000 * 20))
|
|
||||||
# drip SA of lane dedicated to asset hub for paying rewards for delivery
|
|
||||||
transfer_balance \
|
|
||||||
"ws://127.0.0.1:8945" \
|
|
||||||
"//Alice" \
|
|
||||||
"$ON_BRIDGE_HUB_WOCOCO_SOVEREIGN_ACCOUNT_FOR_LANE_00000001_bhro_ThisChain" \
|
|
||||||
$((1000000000 + 2000000000000))
|
|
||||||
# drip SA of lane dedicated to asset hub for paying rewards for delivery confirmation
|
|
||||||
transfer_balance \
|
|
||||||
"ws://127.0.0.1:8945" \
|
|
||||||
"//Alice" \
|
|
||||||
"$ON_BRIDGE_HUB_WOCOCO_SOVEREIGN_ACCOUNT_FOR_LANE_00000001_bhro_BridgedChain" \
|
|
||||||
$((1000000000 + 2000000000000))
|
|
||||||
;;
|
|
||||||
reserve-transfer-assets-from-asset-hub-rococo-local)
|
|
||||||
ensure_polkadot_js_api
|
|
||||||
# send ROCs to Alice account on AHW
|
|
||||||
limited_reserve_transfer_assets \
|
|
||||||
"ws://127.0.0.1:9910" \
|
|
||||||
"//Alice" \
|
|
||||||
"$(jq --null-input '{ "V3": { "parents": 2, "interior": { "X2": [ { "GlobalConsensus": "Wococo" }, { "Parachain": 1000 } ] } } }')" \
|
|
||||||
"$(jq --null-input '{ "V3": { "parents": 0, "interior": { "X1": { "AccountId32": { "id": [212, 53, 147, 199, 21, 253, 211, 28, 97, 20, 26, 189, 4, 169, 159, 214, 130, 44, 133, 88, 133, 76, 205, 227, 154, 86, 132, 231, 165, 109, 162, 125] } } } } }')" \
|
|
||||||
"$(jq --null-input '{ "V3": [ { "id": { "Concrete": { "parents": 1, "interior": "Here" } }, "fun": { "Fungible": 200000000000 } } ] }')" \
|
|
||||||
0 \
|
|
||||||
"Unlimited"
|
|
||||||
;;
|
|
||||||
reserve-transfer-assets-from-asset-hub-wococo-local)
|
|
||||||
ensure_polkadot_js_api
|
|
||||||
# send WOCs to Alice account on AHR
|
|
||||||
limited_reserve_transfer_assets \
|
|
||||||
"ws://127.0.0.1:9010" \
|
|
||||||
"//Alice" \
|
|
||||||
"$(jq --null-input '{ "V3": { "parents": 2, "interior": { "X2": [ { "GlobalConsensus": "Rococo" }, { "Parachain": 1000 } ] } } }')" \
|
|
||||||
"$(jq --null-input '{ "V3": { "parents": 0, "interior": { "X1": { "AccountId32": { "id": [212, 53, 147, 199, 21, 253, 211, 28, 97, 20, 26, 189, 4, 169, 159, 214, 130, 44, 133, 88, 133, 76, 205, 227, 154, 86, 132, 231, 165, 109, 162, 125] } } } } }')" \
|
|
||||||
"$(jq --null-input '{ "V3": [ { "id": { "Concrete": { "parents": 1, "interior": "Here" } }, "fun": { "Fungible": 150000000000 } } ] }')" \
|
|
||||||
0 \
|
|
||||||
"Unlimited"
|
|
||||||
;;
|
|
||||||
claim-rewards-bridge-hub-rococo-local)
|
|
||||||
ensure_polkadot_js_api
|
|
||||||
# bhwo -> [62, 68, 77, 6f] -> 0x6268776f
|
|
||||||
claim_rewards \
|
|
||||||
"ws://127.0.0.1:8943" \
|
|
||||||
"//Charlie" \
|
|
||||||
"0x${LANE_ID}" \
|
|
||||||
"0x6268776f" \
|
|
||||||
"ThisChain"
|
|
||||||
claim_rewards \
|
|
||||||
"ws://127.0.0.1:8943" \
|
|
||||||
"//Charlie" \
|
|
||||||
"0x${LANE_ID}" \
|
|
||||||
"0x6268776f" \
|
|
||||||
"BridgedChain"
|
|
||||||
;;
|
|
||||||
claim-rewards-bridge-hub-wococo-local)
|
|
||||||
# bhro -> [62, 68, 72, 6f] -> 0x6268726f
|
|
||||||
claim_rewards \
|
|
||||||
"ws://127.0.0.1:8945" \
|
|
||||||
"//Charlie" \
|
|
||||||
"0x${LANE_ID}" \
|
|
||||||
"0x6268726f" \
|
|
||||||
"ThisChain"
|
|
||||||
claim_rewards \
|
|
||||||
"ws://127.0.0.1:8945" \
|
|
||||||
"//Charlie" \
|
|
||||||
"0x${LANE_ID}" \
|
|
||||||
"0x6268726f" \
|
|
||||||
"BridgedChain"
|
|
||||||
;;
|
|
||||||
stop)
|
|
||||||
pkill -f polkadot
|
|
||||||
pkill -f parachain
|
|
||||||
;;
|
|
||||||
import)
|
|
||||||
# to avoid trigger anything here
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "A command is require. Supported commands for:
|
|
||||||
Local (zombienet) run:
|
|
||||||
- run-relay
|
|
||||||
- init-asset-hub-rococo-local
|
|
||||||
- init-bridge-hub-rococo-local
|
|
||||||
- init-asset-hub-wococo-local
|
|
||||||
- init-bridge-hub-wococo-local
|
|
||||||
- reserve-transfer-assets-from-asset-hub-rococo-local
|
|
||||||
- reserve-transfer-assets-from-asset-hub-wococo-local
|
|
||||||
- claim-rewards-bridge-hub-rococo-local
|
|
||||||
- claim-rewards-bridge-hub-wococo-local";
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
@@ -41,8 +41,7 @@ cumulus_based = true
|
|||||||
ws_port = 8943
|
ws_port = 8943
|
||||||
args = [
|
args = [
|
||||||
"-lparachain=debug,runtime::bridge-hub=trace,runtime::bridge=trace,runtime::bridge-dispatch=trace,bridge=trace,runtime::bridge-messages=trace,xcm=trace",
|
"-lparachain=debug,runtime::bridge-hub=trace,runtime::bridge=trace,runtime::bridge-dispatch=trace,bridge=trace,runtime::bridge-messages=trace,xcm=trace",
|
||||||
"--force-authoring",
|
"--force-authoring"
|
||||||
"--", "--rpc-port 48933"
|
|
||||||
]
|
]
|
||||||
|
|
||||||
# run bob as parachain collator
|
# run bob as parachain collator
|
||||||
@@ -54,8 +53,7 @@ cumulus_based = true
|
|||||||
ws_port = 8944
|
ws_port = 8944
|
||||||
args = [
|
args = [
|
||||||
"-lparachain=trace,runtime::bridge-hub=trace,runtime::bridge=trace,runtime::bridge-dispatch=trace,bridge=trace,runtime::bridge-messages=trace,xcm=trace",
|
"-lparachain=trace,runtime::bridge-hub=trace,runtime::bridge=trace,runtime::bridge-dispatch=trace,bridge=trace,runtime::bridge-messages=trace,xcm=trace",
|
||||||
"--force-authoring",
|
"--force-authoring"
|
||||||
"--", "--rpc-port 48934"
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[[parachains]]
|
[[parachains]]
|
||||||
@@ -69,16 +67,14 @@ cumulus_based = true
|
|||||||
ws_port = 9910
|
ws_port = 9910
|
||||||
command = "{{POLKADOT_PARACHAIN_BINARY_PATH_FOR_ASSET_HUB_ROCOCO}}"
|
command = "{{POLKADOT_PARACHAIN_BINARY_PATH_FOR_ASSET_HUB_ROCOCO}}"
|
||||||
args = [
|
args = [
|
||||||
"-lparachain=debug,xcm=trace,runtime::bridge-transfer=trace",
|
"-lparachain=debug,xcm=trace,runtime::bridge-transfer=trace"
|
||||||
"--", "--rpc-port 58933"
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[[parachains.collators]]
|
[[parachains.collators]]
|
||||||
name = "asset-hub-rococo-collator2"
|
name = "asset-hub-rococo-collator2"
|
||||||
command = "{{POLKADOT_PARACHAIN_BINARY_PATH_FOR_ASSET_HUB_ROCOCO}}"
|
command = "{{POLKADOT_PARACHAIN_BINARY_PATH_FOR_ASSET_HUB_ROCOCO}}"
|
||||||
args = [
|
args = [
|
||||||
"-lparachain=debug,xcm=trace,runtime::bridge-transfer=trace",
|
"-lparachain=debug,xcm=trace,runtime::bridge-transfer=trace"
|
||||||
"--", "--rpc-port 58833"
|
|
||||||
]
|
]
|
||||||
|
|
||||||
#[[hrmp_channels]]
|
#[[hrmp_channels]]
|
||||||
|
|||||||
@@ -41,8 +41,7 @@ cumulus_based = true
|
|||||||
ws_port = 8945
|
ws_port = 8945
|
||||||
args = [
|
args = [
|
||||||
"-lparachain=debug,runtime::mmr=info,substrate=info,runtime=info,runtime::bridge-hub=trace,runtime::bridge=trace,runtime::bridge-dispatch=trace,bridge=trace,runtime::bridge-messages=trace,xcm=trace",
|
"-lparachain=debug,runtime::mmr=info,substrate=info,runtime=info,runtime::bridge-hub=trace,runtime::bridge=trace,runtime::bridge-dispatch=trace,bridge=trace,runtime::bridge-messages=trace,xcm=trace",
|
||||||
"--force-authoring",
|
"--force-authoring"
|
||||||
"--", "--rpc-port 48935"
|
|
||||||
]
|
]
|
||||||
|
|
||||||
# run bob as parachain collator
|
# run bob as parachain collator
|
||||||
@@ -54,8 +53,7 @@ cumulus_based = true
|
|||||||
ws_port = 8946
|
ws_port = 8946
|
||||||
args = [
|
args = [
|
||||||
"-lparachain=trace,runtime::mmr=info,substrate=info,runtime=info,runtime::bridge-hub=trace,runtime::bridge=trace,runtime::bridge-dispatch=trace,bridge=trace,runtime::bridge-messages=trace,xcm=trace",
|
"-lparachain=trace,runtime::mmr=info,substrate=info,runtime=info,runtime::bridge-hub=trace,runtime::bridge=trace,runtime::bridge-dispatch=trace,bridge=trace,runtime::bridge-messages=trace,xcm=trace",
|
||||||
"--force-authoring",
|
"--force-authoring"
|
||||||
"--", "--rpc-port 48936"
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[[parachains]]
|
[[parachains]]
|
||||||
@@ -69,16 +67,14 @@ cumulus_based = true
|
|||||||
ws_port = 9010
|
ws_port = 9010
|
||||||
command = "{{POLKADOT_PARACHAIN_BINARY_PATH_FOR_ASSET_HUB_WESTEND}}"
|
command = "{{POLKADOT_PARACHAIN_BINARY_PATH_FOR_ASSET_HUB_WESTEND}}"
|
||||||
args = [
|
args = [
|
||||||
"-lparachain=debug,xcm=trace,runtime::bridge-transfer=trace",
|
"-lparachain=debug,xcm=trace,runtime::bridge-transfer=trace"
|
||||||
"--", "--rpc-port 38933"
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[[parachains.collators]]
|
[[parachains.collators]]
|
||||||
name = "asset-hub-westend-collator2"
|
name = "asset-hub-westend-collator2"
|
||||||
command = "{{POLKADOT_PARACHAIN_BINARY_PATH_FOR_ASSET_HUB_WESTEND}}"
|
command = "{{POLKADOT_PARACHAIN_BINARY_PATH_FOR_ASSET_HUB_WESTEND}}"
|
||||||
args = [
|
args = [
|
||||||
"-lparachain=debug,xcm=trace,runtime::bridge-transfer=trace",
|
"-lparachain=debug,xcm=trace,runtime::bridge-transfer=trace"
|
||||||
"--", "--rpc-port 38833"
|
|
||||||
]
|
]
|
||||||
|
|
||||||
#[[hrmp_channels]]
|
#[[hrmp_channels]]
|
||||||
|
|||||||
@@ -1,94 +0,0 @@
|
|||||||
[settings]
|
|
||||||
node_spawn_timeout = 240
|
|
||||||
|
|
||||||
[relaychain]
|
|
||||||
default_command = "{{POLKADOT_BINARY_PATH}}"
|
|
||||||
default_args = [ "-lparachain=debug,xcm=trace" ]
|
|
||||||
chain = "wococo-local"
|
|
||||||
|
|
||||||
[[relaychain.nodes]]
|
|
||||||
name = "alice-wococo-validator"
|
|
||||||
validator = true
|
|
||||||
rpc_port = 9935
|
|
||||||
ws_port = 9945
|
|
||||||
balance = 2000000000000
|
|
||||||
|
|
||||||
[[relaychain.nodes]]
|
|
||||||
name = "bob-wococo-validator"
|
|
||||||
validator = true
|
|
||||||
rpc_port = 9936
|
|
||||||
ws_port = 9946
|
|
||||||
balance = 2000000000000
|
|
||||||
|
|
||||||
[[relaychain.nodes]]
|
|
||||||
name = "charlie-wococo-validator"
|
|
||||||
validator = true
|
|
||||||
rpc_port = 9937
|
|
||||||
ws_port = 9947
|
|
||||||
balance = 2000000000000
|
|
||||||
|
|
||||||
[[parachains]]
|
|
||||||
id = 1014
|
|
||||||
chain = "bridge-hub-wococo-local"
|
|
||||||
cumulus_based = true
|
|
||||||
|
|
||||||
# run alice as parachain collator
|
|
||||||
[[parachains.collators]]
|
|
||||||
name = "bridge-hub-wococo-collator1"
|
|
||||||
validator = true
|
|
||||||
command = "{{POLKADOT_PARACHAIN_BINARY_PATH}}"
|
|
||||||
rpc_port = 8935
|
|
||||||
ws_port = 8945
|
|
||||||
args = [
|
|
||||||
"-lparachain=debug,runtime::mmr=info,substrate=info,runtime=info,runtime::bridge-hub=trace,runtime::bridge=trace,runtime::bridge-dispatch=trace,bridge=trace,runtime::bridge-messages=trace,xcm=trace",
|
|
||||||
"--force-authoring",
|
|
||||||
"--", "--port 41335", "--rpc-port 48935"
|
|
||||||
]
|
|
||||||
|
|
||||||
# run bob as parachain collator
|
|
||||||
[[parachains.collators]]
|
|
||||||
name = "bridge-hub-wococo-collator2"
|
|
||||||
validator = true
|
|
||||||
command = "{{POLKADOT_PARACHAIN_BINARY_PATH}}"
|
|
||||||
rpc_port = 8936
|
|
||||||
ws_port = 8946
|
|
||||||
args = [
|
|
||||||
"-lparachain=trace,runtime::mmr=info,substrate=info,runtime=info,runtime::bridge-hub=trace,runtime::bridge=trace,runtime::bridge-dispatch=trace,bridge=trace,runtime::bridge-messages=trace,xcm=trace",
|
|
||||||
"--force-authoring",
|
|
||||||
"--", "--port 41336", "--rpc-port 48936"
|
|
||||||
]
|
|
||||||
|
|
||||||
[[parachains]]
|
|
||||||
id = 1000
|
|
||||||
chain = "asset-hub-wococo-local"
|
|
||||||
cumulus_based = true
|
|
||||||
|
|
||||||
[[parachains.collators]]
|
|
||||||
name = "asset-hub-wococo-collator1"
|
|
||||||
rpc_port = 9011
|
|
||||||
ws_port = 9010
|
|
||||||
command = "{{POLKADOT_PARACHAIN_BINARY_PATH_FOR_ASSET_HUB_WOCOCO}}"
|
|
||||||
args = [
|
|
||||||
"-lparachain=debug,xcm=trace,runtime::bridge-transfer=trace",
|
|
||||||
"--", "--port 31333", "--rpc-port 38933"
|
|
||||||
]
|
|
||||||
|
|
||||||
[[parachains.collators]]
|
|
||||||
name = "asset-hub-wococo-collator2"
|
|
||||||
command = "{{POLKADOT_PARACHAIN_BINARY_PATH_FOR_ASSET_HUB_WOCOCO}}"
|
|
||||||
args = [
|
|
||||||
"-lparachain=debug,xcm=trace,runtime::bridge-transfer=trace",
|
|
||||||
"--", "--port 31433", "--rpc-port 38833"
|
|
||||||
]
|
|
||||||
|
|
||||||
#[[hrmp_channels]]
|
|
||||||
#sender = 1000
|
|
||||||
#recipient = 1014
|
|
||||||
#max_capacity = 4
|
|
||||||
#max_message_size = 524288
|
|
||||||
#
|
|
||||||
#[[hrmp_channels]]
|
|
||||||
#sender = 1014
|
|
||||||
#recipient = 1000
|
|
||||||
#max_capacity = 4
|
|
||||||
#max_message_size = 524288
|
|
||||||
Reference in New Issue
Block a user