mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-10-22 19:56:20 +00:00
Add parachains for rococo (#144)
* Add parachains for rococo * Fix chain specs * Update to revert log rotation * Support selecting the chain in `export-genesis-state` * Add subcommand for exporting the genesis wasm of a Parachain * Update stuff * Fix `export-genesis-wasm` * Update the polkadot ref * Add bootNodes address * Add bootNodes address - track * Add bootNodes address - trick * Fix incorrect peer id (trick) * Fixes https://github.com/paritytech/cumulus/issues/157 * Update chainspecs * Update specs again * Set correct sudo account * Update properties * Update readme * Update `Cargo.lock` * Switch to rococo-branch Co-authored-by: Evaldo <contato@evaldofelipe.com> Co-authored-by: Cecile Tonglet <cecile.tonglet@cecton.com>
This commit is contained in:
1 parent
f5fbe3c195
commit
23c1954c74
39 files changed
+763
-597
No files matched your search
@@ -1 +1,2 @@
|
||||
hard_tabs=true
|
||||
merge_imports=true
|
||||
Generated
+158
-155
File diff suppressed because it is too large.
Load diff
+27
-57
@@ -18,76 +18,46 @@ A planned wrapper around substrate runtimes to turn them into parachain validati
|
||||
|
||||
A planned Polkadot collator for the parachain.
|
||||
|
||||
## Running a collator
|
||||
## Rococo
|
||||
|
||||
1. Checkout polkadot at `96f5dc510ef770fd5c5ab57a90565bb5819bbbea`.
|
||||
Rococo is the testnet for parachains. It currently runs the parachains `Tick`, `Trick` and `Track`.
|
||||
|
||||
2. Run `Alice` and `Bob`:
|
||||
### Running a collator
|
||||
|
||||
`cargo run --release -- --chain=${CUMULUS_REPO}/test/parachain/res/polkadot_chainspec.json --base-path=cumulus_relay_chain_node_0 --alice`
|
||||
Collators are similar to validators in the relay chain. These nodes build the blocks that will eventually be included by the relay chain for a parachain.
|
||||
|
||||
`cargo run --release -- --chain=${CUMULUS_REPO}/test/parachain/res/polkadot_chainspec.json --base-path=cumulus_relay_chain_node_1 --bob --port 50666`
|
||||
To run a collator on this test network you will need to compile the following binary:
|
||||
|
||||
Where `CUMULUS_REPO` is the path to the checkout of Cumulus.
|
||||
|
||||
3. Switch back to this repository and generate the parachain genesis state:
|
||||
|
||||
`cargo run --release -p cumulus-test-parachain-collator -- export-genesis-state genesis-state`
|
||||
|
||||
4. Run the collator:
|
||||
|
||||
`cargo run --release -p cumulus-test-parachain-collator -- --base-path cumulus_collator_path -- --bootnodes=/ip4/127.0.0.1/tcp/30333/p2p/PEER_ID_${NAME} --bootnodes=/ip4/127.0.0.1/tcp/50666/p2p/PEER_ID_${NAME}`
|
||||
|
||||
`PEER_ID_${NAME}` needs to be replaced with the peer id of the polkadot validator that uses `${NAME}`
|
||||
as authority. The `--` after `--base-path cumulus_collator_path` is important, it tells the CLI to pass these arguments
|
||||
to the relay chain node that is running inside of the collator.
|
||||
|
||||
5. Open `https://polkadot.js.org/apps/#/sudo` and register the parachain by calling `Registrar > RegisterPara`
|
||||
|
||||
`id`: `100`
|
||||
|
||||
`ParaInfo`: `Always`
|
||||
|
||||
`code`: `CUMULUS_REPO/target/release/wbuild/cumulus-test-parachain-runtime/cumulus_test_parachain_runtime.compact.wasm`
|
||||
|
||||
`initial_head_data`: Use the file you generated in step 3. (name: genesis-state)
|
||||
|
||||
Now your parachain should be registered and the collator should start building blocks and sending
|
||||
them to the relay chain.
|
||||
|
||||
6. Now the `collator` should build blocks and the relay-chain should include them. You can check that the `parachain-header` for parachain `100` is changing.
|
||||
|
||||
### Running the collator automatically
|
||||
|
||||
To simplify the above process, you can run steps 1-5 above automatically:
|
||||
|
||||
```sh
|
||||
scripts/build_polkadot.sh
|
||||
scripts/run_collator.sh
|
||||
```
|
||||
cargo build --release -p cumulus-test-parachain-collator
|
||||
```
|
||||
|
||||
This will churn for several minutes, but should end with docker reporting that several containers have successfully been brought up.
|
||||
After the build is finished you can use the binary to run a collator for all three parachains:
|
||||
|
||||
To run step 6, first set up an alias which gives you quick access to the polkadot-js CLI:
|
||||
|
||||
```sh
|
||||
docker build -f docker/parachain-registrar.dockerfile --target pjs -t parachain-registrar:pjs .
|
||||
alias pjs='docker run --rm --net cumulus_testing_net parachain-registrar:pjs --ws ws://172.28.1.1:9944'
|
||||
```
|
||||
./target/release/cumulus-test-parachain-collator --chain tick --validator
|
||||
```
|
||||
|
||||
Those steps should complete very quickly. At that point, you can do things like:
|
||||
This will run the collator for the `Tick` parachain. To run a collator for one of the other nodes, the chain argument needs to be changed.
|
||||
|
||||
```sh
|
||||
$ pjs query.parachains.heads 100
|
||||
{
|
||||
"heads": "0xe1efbf8cc2e1304da927986f4cd6964ce0888ce3995948bf71fe427b1a9d39b02101d2dac9c5342d7e8c4f4de2f5277ef860b3a518c1cd823b9a8cee175dce11bf7f57c5016e8a60a6cec16244b2cbf81a67a1dc7a825c288fc694997bc70e2d456400"
|
||||
}
|
||||
### Running a full node
|
||||
|
||||
To run a full node that should sync one of the parachains, you need to compile the following binary:
|
||||
|
||||
```
|
||||
cargo build --release -p cumulus-test-parachain-collator
|
||||
```
|
||||
|
||||
The collator includes its own health check, which you can inspect with
|
||||
After the build is finished you can use the binary to run a collator for all three parachains:
|
||||
|
||||
```sh
|
||||
docker inspect --format='{{json .State.Health}}' cumulus_collator_1
|
||||
```
|
||||
./target/release/cumulus-test-parachain-collator --chain tick
|
||||
```
|
||||
|
||||
The check runs every 5 minutes, and takes about a minute to complete each time. Most of that time is spent sleeping; it remains a very lightweight process.
|
||||
### Tick, Trick and Track
|
||||
|
||||
These are the parachains of Rococo, essentially all run the exact same runtime code. The only difference is the parachain ID they are registered
|
||||
with on the relay chain. `Tick` is using `100`, `Trick` `110` and `Track` `120`. The parachains demonstrate message
|
||||
passing between themselves and the relay chain. The message passing is currently implemented as a
|
||||
HRMP (Horizontal Message Passing). This means that every message is send to the relay chain and from the relay
|
||||
chain to its destination parachain.
|
||||
+19
-19
@@ -6,22 +6,22 @@ edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
# Substrate dependencies
|
||||
sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sp-core = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sp-api = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sc-service = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sc-cli = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
sp-core = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
sp-api = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
sc-service = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
sc-cli = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
|
||||
# Polkadot dependencies
|
||||
polkadot-collator = { git = "https://github.com/paritytech/polkadot", branch = "cumulus-branch" }
|
||||
polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "cumulus-branch" }
|
||||
polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "cumulus-branch" }
|
||||
polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "cumulus-branch" }
|
||||
polkadot-validation = { git = "https://github.com/paritytech/polkadot", branch = "cumulus-branch" }
|
||||
polkadot-collator = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" }
|
||||
polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" }
|
||||
polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" }
|
||||
polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" }
|
||||
polkadot-validation = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" }
|
||||
|
||||
# Cumulus dependencies
|
||||
cumulus-consensus = { path = "../consensus" }
|
||||
@@ -41,13 +41,13 @@ test-runtime = { package = "cumulus-test-runtime", path = "../test/runtime" }
|
||||
test-client = { package = "cumulus-test-client", path = "../test/client" }
|
||||
|
||||
# Substrate dependencies
|
||||
substrate-test-client = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sp-state-machine = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
substrate-test-client = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
sp-state-machine = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
|
||||
# Polkadot dependencies
|
||||
polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "cumulus-branch" }
|
||||
polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" }
|
||||
|
||||
# Other dependencies
|
||||
env_logger = "0.7.1"
|
||||
@@ -7,19 +7,19 @@ edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
# substrate deps
|
||||
sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sp-core = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sp-api = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
sp-core = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
sp-api = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
|
||||
# polkadot deps
|
||||
polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "cumulus-branch" }
|
||||
polkadot-runtime = { git = "https://github.com/paritytech/polkadot", branch = "cumulus-branch" }
|
||||
polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" }
|
||||
polkadot-runtime = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" }
|
||||
|
||||
# other deps
|
||||
futures = { version = "0.3.1", features = ["compat"] }
|
||||
|
||||
@@ -6,12 +6,12 @@ edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
# substrate deps
|
||||
frame-support = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch", default-features = false }
|
||||
frame-system = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch", default-features = false }
|
||||
sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch", default-features = false }
|
||||
sp-io = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch", default-features = false }
|
||||
sp-std = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch", default-features = false }
|
||||
sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch", default-features = false }
|
||||
frame-support = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch", default-features = false }
|
||||
frame-system = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch", default-features = false }
|
||||
sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch", default-features = false }
|
||||
sp-io = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch", default-features = false }
|
||||
sp-std = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch", default-features = false }
|
||||
sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch", default-features = false }
|
||||
|
||||
# Other dependencies
|
||||
codec = { package = "parity-scale-codec", version = "1.3.0", features = [ "derive" ], default-features = false }
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
#![cfg_attr(not(feature = "std"), no_std)]
|
||||
|
||||
use codec::{Encode, Decode};
|
||||
use codec::{Decode, Encode};
|
||||
use cumulus_primitives::{
|
||||
inherents::{DownwardMessagesType, DOWNWARD_MESSAGES_IDENTIFIER},
|
||||
well_known_keys,
|
||||
|
||||
+14
-14
@@ -7,18 +7,18 @@ edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
# substrate deps
|
||||
sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sp-api = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sp-core = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
sp-api = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
sp-core = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
|
||||
# polkadot deps
|
||||
polkadot-collator = { git = "https://github.com/paritytech/polkadot", branch = "cumulus-branch" }
|
||||
polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "cumulus-branch" }
|
||||
polkadot-statement-table = { git = "https://github.com/paritytech/polkadot", branch = "cumulus-branch" }
|
||||
polkadot-validation = { git = "https://github.com/paritytech/polkadot", branch = "cumulus-branch" }
|
||||
polkadot-network = { git = "https://github.com/paritytech/polkadot", branch = "cumulus-branch" }
|
||||
polkadot-collator = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" }
|
||||
polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" }
|
||||
polkadot-statement-table = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" }
|
||||
polkadot-validation = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" }
|
||||
polkadot-network = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" }
|
||||
|
||||
# cumulus deps
|
||||
cumulus-primitives = { path = "../primitives" }
|
||||
@@ -33,9 +33,9 @@ parking_lot = "0.10.2"
|
||||
cumulus-test-runtime = { path = "../test/runtime" }
|
||||
|
||||
# substrate deps
|
||||
sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sp-core = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
sp-core = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
|
||||
# polkadot deps
|
||||
polkadot-test-runtime-client = { git = "https://github.com/paritytech/polkadot", branch = "cumulus-branch" }
|
||||
polkadot-test-runtime-client = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" }
|
||||
@@ -11,27 +11,27 @@ cumulus-primitives = { path = "../primitives", default-features = false }
|
||||
cumulus-runtime = { path = "../runtime", default-features = false }
|
||||
|
||||
# Polkadot dependencies
|
||||
parachain = { package = "polkadot-parachain", git = "https://github.com/paritytech/polkadot", branch = "cumulus-branch", default-features = false }
|
||||
parachain = { package = "polkadot-parachain", git = "https://github.com/paritytech/polkadot", branch = "rococo-branch", default-features = false }
|
||||
|
||||
# Substrate dependencies
|
||||
frame-support = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch", default-features = false }
|
||||
pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch", default-features = false }
|
||||
sp-core = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch", version = "2.0.0-rc5", default-features = false }
|
||||
sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch", default-features = false }
|
||||
sp-io = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch", default-features = false }
|
||||
sp-std = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch", default-features = false }
|
||||
sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch", default-features = false }
|
||||
sp-version = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch", default-features = false }
|
||||
frame-system = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch", default-features = false }
|
||||
frame-support = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch", default-features = false }
|
||||
pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch", default-features = false }
|
||||
sp-core = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch", version = "2.0.0-rc5", default-features = false }
|
||||
sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch", default-features = false }
|
||||
sp-io = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch", default-features = false }
|
||||
sp-std = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch", default-features = false }
|
||||
sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch", default-features = false }
|
||||
sp-version = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch", default-features = false }
|
||||
frame-system = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch", default-features = false }
|
||||
|
||||
# Other Dependencies
|
||||
codec = { package = "parity-scale-codec", version = "1.0.0", default-features = false, features = ["derive"]}
|
||||
serde = { version = "1.0.101", optional = true, features = ["derive"] }
|
||||
|
||||
[dev-dependencies]
|
||||
sp-externalities = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch", default-features = false }
|
||||
substrate-test-runtime-client = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch", default-features = false }
|
||||
sp-version = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch", default-features = false }
|
||||
sp-externalities = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch", default-features = false }
|
||||
substrate-test-runtime-client = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch", default-features = false }
|
||||
sp-version = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch", default-features = false }
|
||||
|
||||
[features]
|
||||
default = ['std']
|
||||
|
||||
@@ -37,11 +37,11 @@ use cumulus_primitives::{
|
||||
use frame_support::{
|
||||
decl_error, decl_event, decl_module, decl_storage, ensure, storage, weights::DispatchClass,
|
||||
};
|
||||
use frame_system::ensure_none;
|
||||
use parachain::primitives::RelayChainBlockNumber;
|
||||
use sp_core::storage::well_known_keys;
|
||||
use sp_inherents::{InherentData, InherentIdentifier, ProvideInherent};
|
||||
use sp_std::vec::Vec;
|
||||
use frame_system::ensure_none;
|
||||
|
||||
/// A ValidationFunction is a compiled WASM blob which, on execution, validates parachain blocks.
|
||||
pub type ValidationFunction = Vec<u8>;
|
||||
@@ -239,6 +239,7 @@ mod tests {
|
||||
traits::{OnFinalize, OnInitialize},
|
||||
weights::Weight,
|
||||
};
|
||||
use frame_system::{InitKind, RawOrigin};
|
||||
use sp_core::H256;
|
||||
use sp_runtime::{
|
||||
testing::Header,
|
||||
@@ -246,7 +247,6 @@ mod tests {
|
||||
Perbill,
|
||||
};
|
||||
use sp_version::RuntimeVersion;
|
||||
use frame_system::{InitKind, RawOrigin};
|
||||
|
||||
impl_outer_origin! {
|
||||
pub enum Origin for Test where system = frame_system {}
|
||||
@@ -547,7 +547,7 @@ mod tests {
|
||||
));
|
||||
},
|
||||
|| {
|
||||
let events = dbg!(System::<Test>::events());
|
||||
let events = System::<Test>::events();
|
||||
assert_eq!(
|
||||
events[0].event,
|
||||
TestEvent::parachain_upgrade(Event::ValidationFunctionStored(1123))
|
||||
@@ -558,7 +558,7 @@ mod tests {
|
||||
1234,
|
||||
|| {},
|
||||
|| {
|
||||
let events = dbg!(System::<Test>::events());
|
||||
let events = System::<Test>::events();
|
||||
assert_eq!(
|
||||
events[0].event,
|
||||
TestEvent::parachain_upgrade(Event::ValidationFunctionApplied(1234))
|
||||
|
||||
@@ -6,20 +6,20 @@ edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
# Substrate dependencies
|
||||
sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch", default-features = false }
|
||||
sp-std = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch", default-features = false }
|
||||
sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch", default-features = false }
|
||||
sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch", default-features = false }
|
||||
sp-std = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch", default-features = false }
|
||||
sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch", default-features = false }
|
||||
|
||||
# Polkadot dependencies
|
||||
polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "cumulus-branch", default-features = false }
|
||||
polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "cumulus-branch", default-features = false }
|
||||
polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch", default-features = false }
|
||||
polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch", default-features = false }
|
||||
|
||||
# Other dependencies
|
||||
codec = { package = "parity-scale-codec", version = "1.0.5", default-features = false, features = [ "derive" ] }
|
||||
impl-trait-for-tuples = "0.1.3"
|
||||
|
||||
# Polkadot dependencies
|
||||
polkadot-core-primitives = { git = "https://github.com/paritytech/polkadot", branch = "cumulus-branch", default-features = false }
|
||||
polkadot-core-primitives = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch", default-features = false }
|
||||
|
||||
[features]
|
||||
default = [ "std" ]
|
||||
|
||||
@@ -25,8 +25,9 @@ pub use polkadot_core_primitives::DownwardMessage;
|
||||
/// It is "generic" in such a way, that the actual message is encoded in the `data` field.
|
||||
/// Besides the `data` it also holds the `origin` of the message.
|
||||
pub use polkadot_parachain::primitives::UpwardMessage as GenericUpwardMessage;
|
||||
pub use polkadot_parachain::primitives::ParachainDispatchOrigin as UpwardMessageOrigin;
|
||||
pub use polkadot_parachain::primitives::Id as ParaId;
|
||||
pub use polkadot_parachain::primitives::{
|
||||
Id as ParaId, ParachainDispatchOrigin as UpwardMessageOrigin,
|
||||
};
|
||||
|
||||
pub mod validation_function_params;
|
||||
pub mod xcmp;
|
||||
@@ -47,7 +48,8 @@ pub mod inherents {
|
||||
/// The identifier for the `validation_function_params` inherent.
|
||||
pub const VALIDATION_FUNCTION_PARAMS_IDENTIFIER: InherentIdentifier = *b"valfunp0";
|
||||
/// The type of the inherent.
|
||||
pub type ValidationFunctionParamsType = crate::validation_function_params::ValidationFunctionParams;
|
||||
pub type ValidationFunctionParamsType =
|
||||
crate::validation_function_params::ValidationFunctionParams;
|
||||
}
|
||||
|
||||
/// Well known keys for values in the storage.
|
||||
|
||||
+12
-12
@@ -16,22 +16,22 @@ hashbrown = "0.8.0"
|
||||
cumulus-primitives = { path = "../primitives", default-features = false }
|
||||
|
||||
# Substrate dependencies
|
||||
sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "cumulus-branch" }
|
||||
sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "cumulus-branch" }
|
||||
sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "cumulus-branch" }
|
||||
sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "cumulus-branch" }
|
||||
frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "cumulus-branch" }
|
||||
sp-trie = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "cumulus-branch" }
|
||||
sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
|
||||
sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
|
||||
sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
|
||||
sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
|
||||
frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
|
||||
sp-trie = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
|
||||
|
||||
# Polkadot dependencies
|
||||
parachain = { package = "polkadot-parachain", git = "https://github.com/paritytech/polkadot", branch = "cumulus-branch", default-features = false, features = [ "wasm-api" ] }
|
||||
parachain = { package = "polkadot-parachain", git = "https://github.com/paritytech/polkadot", branch = "rococo-branch", default-features = false, features = [ "wasm-api" ] }
|
||||
|
||||
[dev-dependencies]
|
||||
sc-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "cumulus-branch" }
|
||||
sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sc-executor = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sc-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
|
||||
sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
sc-executor = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
test-client = { package = "cumulus-test-client", path = "../test/client" }
|
||||
|
||||
[features]
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
#![cfg_attr(not(feature = "std"), no_std)]
|
||||
|
||||
///! The Cumulus runtime to make a runtime a parachain.
|
||||
|
||||
use codec::{Decode, Encode};
|
||||
use sp_runtime::traits::Block as BlockT;
|
||||
use sp_std::vec::Vec;
|
||||
|
||||
@@ -5,12 +5,12 @@ authors = ["Parity Technologies <admin@parity.io>"]
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
sc-service = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
test-client = { package = "substrate-test-client", git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sc-service = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
test-client = { package = "substrate-test-client", git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
runtime = { package = "cumulus-test-runtime", path = "../runtime" }
|
||||
sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sp-core = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
sp-core = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
codec = { package = "parity-scale-codec", version = "1.0.5", default-features = false, features = [ "derive" ] }
|
||||
sp-test-primitives = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sp-test-primitives = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
@@ -19,31 +19,33 @@ trie-root = '0.15.2'
|
||||
codec = { package = 'parity-scale-codec', version = '1.0.0' }
|
||||
structopt = "0.3.3"
|
||||
ansi_term = "0.12.1"
|
||||
serde = { version = "1.0.101", features = ["derive"] }
|
||||
hex-literal = "0.2.1"
|
||||
|
||||
# Parachain dependencies
|
||||
parachain-runtime = { package = "cumulus-test-parachain-runtime", path = "runtime" }
|
||||
|
||||
# Substrate dependencies
|
||||
sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "cumulus-branch" }
|
||||
sp-io = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sp-core = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sc-cli = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sc-executor = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sc-service = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sc-network = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch", version = "0.8.0-rc5" }
|
||||
sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sp-trie = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sp-api = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sc-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sc-informant = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
|
||||
sp-io = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
sp-core = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
sc-cli = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
sc-executor = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
sc-service = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
sc-network = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch", version = "0.8.0-rc5" }
|
||||
sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
sp-trie = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
sp-api = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
sc-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
sc-informant = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
|
||||
# Cumulus dependencies
|
||||
cumulus-consensus = { path = "../../consensus" }
|
||||
@@ -52,15 +54,15 @@ cumulus-network = { path = "../../network" }
|
||||
cumulus-primitives = { path = "../../primitives" }
|
||||
|
||||
# Polkadot dependencies
|
||||
polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "cumulus-branch" }
|
||||
polkadot-collator = { git = "https://github.com/paritytech/polkadot", branch = "cumulus-branch" }
|
||||
polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "cumulus-branch" }
|
||||
polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "cumulus-branch" }
|
||||
polkadot-test-service = { git = "https://github.com/paritytech/polkadot", branch = "cumulus-branch" }
|
||||
polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "cumulus-branch" }
|
||||
polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" }
|
||||
polkadot-collator = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" }
|
||||
polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" }
|
||||
polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" }
|
||||
polkadot-test-service = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" }
|
||||
polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" }
|
||||
|
||||
[build-dependencies]
|
||||
substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
|
||||
[dev-dependencies]
|
||||
assert_cmd = "0.12"
|
||||
@@ -69,12 +71,12 @@ rand = "0.7.3"
|
||||
tokio = { version = "0.2.13", features = ["macros"] }
|
||||
|
||||
# Polkadot dependencies
|
||||
polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", branch = "cumulus-branch" }
|
||||
polkadot-test-runtime = { git = "https://github.com/paritytech/polkadot", branch = "cumulus-branch" }
|
||||
polkadot-test-runtime-client = { git = "https://github.com/paritytech/polkadot", branch = "cumulus-branch" }
|
||||
polkadot-test-service = { git = "https://github.com/paritytech/polkadot", branch = "cumulus-branch" }
|
||||
polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" }
|
||||
polkadot-test-runtime = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" }
|
||||
polkadot-test-runtime-client = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" }
|
||||
polkadot-test-service = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" }
|
||||
|
||||
# Substrate dependencies
|
||||
pallet-sudo = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
substrate-test-client = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
substrate-test-runtime-client = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch" }
|
||||
pallet-sudo = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
substrate-test-client = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
substrate-test-runtime-client = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" }
|
||||
@@ -1,138 +0,0 @@
|
||||
{
|
||||
"name": "Westend Local Testnet",
|
||||
"id": "westend_local_testnet",
|
||||
"chainType": "Local",
|
||||
"bootNodes": [],
|
||||
"telemetryEndpoints": null,
|
||||
"protocolId": "dot",
|
||||
"properties": null,
|
||||
"forkBlocks": null,
|
||||
"badBlocks": null,
|
||||
"consensusEngine": null,
|
||||
"genesis": {
|
||||
"raw": {
|
||||
"top": {
|
||||
"0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb3e535263148daaf49be5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f": "0x88dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0eed43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27dd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27dd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27dd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d",
|
||||
"0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950246b6699fb8b8db670617261808eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48": "0xfe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e",
|
||||
"0x5f3e4907f716ac89b6347d15ececedca8bde0a0ea8864605e3b68ed9cb2da01bb4def25cfda6ef3a000000003d336178353c677be860f1b1c7227f7c22602f53f15af80747814dffd839719731ee3bba6edc126c": "0x0b00407a10f35a0b00407a10f35a00",
|
||||
"0x5f3e4907f716ac89b6347d15ececedca42982b9d6c7acc99faa9094c912372c2b4def25cfda6ef3a00000000ce4f6702f7c0a2951e07379407fecc4b89eb7dbd287c2c781cfb1907a96947a3eb18e4f8e7198625": "0x0b00407a10f35a0b00407a10f35a00",
|
||||
"0xcec5070d609dd3497f72bde07fc96ba0ff3ae12770bea2e48d9bde7385e7a25f": "0x0000000002000000",
|
||||
"0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9de1e86a9a8c739864cf3cc5ec2bea59fd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d": "0x0000000000000064a7b3b6e00d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"0x5f3e4907f716ac89b6347d15ececedca8bde0a0ea8864605e3b68ed9cb2da01bb4def25cfda6ef3a000000006dd53641586aad2e8ac59e11963af19174d0b94d5d78041c233f55d2e19324665bafdfb62925af2d": "0x0b00407a10f35a0b00407a10f35a00",
|
||||
"0xc2261276cc9d1f8598ea4b6a74b15c2f308ce9615de0775a82f8a94dc3d285a1": "0x01",
|
||||
"0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9007cbc1270b5b091758f9c42f5915b3e8ac59e11963af19174d0b94d5d78041c233f55d2e19324665bafdfb62925af2d": "0x0000000003000064a7b3b6e00d00000000000000000000000000000000000000000000000000407a10f35a0000000000000000000000407a10f35a00000000000000000000",
|
||||
"0x5f3e4907f716ac89b6347d15ececedca28dccb559b95c40168a1b2696581b5a7": "0x00000000000000000000000000000000",
|
||||
"0x5f3e4907f716ac89b6347d15ececedca88dcde934c658227ee1dfafcd6e169033d336178353c677be860f1b1c7227f7c22602f53f15af80747814dffd839719731ee3bba6edc126c": "0x00",
|
||||
"0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa19509d4a4cfe1c2ef0b961756469808eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48": "0xfe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e",
|
||||
"0x5f3e4907f716ac89b6347d15ececedcaea07de2b8f010516dca3f7ef52f7ac5a": "0x040000000000000000",
|
||||
"0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da932a5935f6edc617ae178fef9eb1e211fbe5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f": "0x0000000003000064a7b3b6e00d00000000000000000000000000000000000000000000000000407a10f35a0000000000000000000000407a10f35a00000000000000000000",
|
||||
"0x5f3e4907f716ac89b6347d15ececedca422adb579f1dbf4f3886c5cfa3bb8cc4b0edae20838083f2cde1c4080db8cf8090b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22": "0x1e07379407fecc4b89eb7dbd287c2c781cfb1907a96947a3eb18e4f8e71986250b00407a10f35a0b00407a10f35a0000",
|
||||
"0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da923a05cabf6d3bde7ca3ef0d11596b5611cbd2d43530a44705ad088af313e18f80b53ef16b36177cd4b77b846f2a5f07c": "0x0000000000000064a7b3b6e00d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa195035da67140351009d696d6f6e80306721211d5404bd9da88e0204360a1a9ab8b87c66c1bc2fcdd37f3c2222cc20": "0xe860f1b1c7227f7c22602f53f15af80747814dffd839719731ee3bba6edc126c",
|
||||
"0xc2261276cc9d1f8598ea4b6a74b15c2f218f26c73add634897550b4003b26bc6007cbc1270b5b091758f9c42f5915b3e8ac59e11963af19174d0b94d5d78041c233f55d2e19324665bafdfb62925af2d": "0x047374616b696e672000407a10f35a0000000000000000000002",
|
||||
"0x26aa394eea5630e07c48ae0c9558cef7f9cce9c888469bb1a0dceaa129672ef8": "0x841c77657374656e64",
|
||||
"0x5f3e4907f716ac89b6347d15ececedca0b6a45321efae92aea15e0740ec7afe7": "0x00000000",
|
||||
"0x5f3e4907f716ac89b6347d15ececedca8bde0a0ea8864605e3b68ed9cb2da01bb4def25cfda6ef3a000000000e5be00fbc2e15b5fe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e": "0x0b00407a10f35a0b00407a10f35a00",
|
||||
"0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa19508b6d3621e5bd57f16772616e80439660b36c6c03afafca027b910b4fecf99801834c62a5e6006f27d978de234f": "0x1e07379407fecc4b89eb7dbd287c2c781cfb1907a96947a3eb18e4f8e7198625",
|
||||
"0x5f3e4907f716ac89b6347d15ececedca9220e172bed316605f73f1ff7b4ade983d336178353c677be860f1b1c7227f7c22602f53f15af80747814dffd839719731ee3bba6edc126c": "0x00",
|
||||
"0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9edeaa42c2163f68084a988529a0e2ec5e659a7a1628cdd93febc04a4e0646ea20e9f5f0ce097d9a05290d4a9e054df4e": "0x0000000000000064a7b3b6e00d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb3ce4f6702f7c0a2951e07379407fecc4b89eb7dbd287c2c781cfb1907a96947a3eb18e4f8e7198625": "0x439660b36c6c03afafca027b910b4fecf99801834c62a5e6006f27d978de234f90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe2290b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe2290b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe2290b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22",
|
||||
"0x5f3e4907f716ac89b6347d15ececedca3ed14b45ed20d054f05e37e2542cfe700e5be00fbc2e15b5fe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e": "0x8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48",
|
||||
"0xcec5070d609dd3497f72bde07fc96ba088dcde934c658227ee1dfafcd6e16903": "0x14fe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860ee860f1b1c7227f7c22602f53f15af80747814dffd839719731ee3bba6edc126c8ac59e11963af19174d0b94d5d78041c233f55d2e19324665bafdfb62925af2d1e07379407fecc4b89eb7dbd287c2c781cfb1907a96947a3eb18e4f8e7198625be5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f",
|
||||
"0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950ed43a85541921049696d6f6e80d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d": "0xbe5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f",
|
||||
"0x5f3e4907f716ac89b6347d15ececedca487df464e44a534ba6b0cbb32407b587": "0x0000000000",
|
||||
"0x5f3e4907f716ac89b6347d15ececedca9220e172bed316605f73f1ff7b4ade986dd53641586aad2e8ac59e11963af19174d0b94d5d78041c233f55d2e19324665bafdfb62925af2d": "0x00",
|
||||
"0x5f3e4907f716ac89b6347d15ececedca682db92dde20a10d96d00ff0e9e221c0b4def25cfda6ef3a000000006dd53641586aad2e8ac59e11963af19174d0b94d5d78041c233f55d2e19324665bafdfb62925af2d": "0x00",
|
||||
"0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950bcb9c3677bfe9155706172618090b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22": "0x1e07379407fecc4b89eb7dbd287c2c781cfb1907a96947a3eb18e4f8e7198625",
|
||||
"0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa195021cd04f63ad37128626162658090b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22": "0x1e07379407fecc4b89eb7dbd287c2c781cfb1907a96947a3eb18e4f8e7198625",
|
||||
"0x26aa394eea5630e07c48ae0c9558cef78a42f33323cb5ced3b44dd825fda9fcc": "0x4545454545454545454545454545454545454545454545454545454545454545",
|
||||
"0x5f3e4907f716ac89b6347d15ececedca422adb579f1dbf4f3886c5cfa3bb8cc4e5e802737cce3a54b0bc9e3d3e6be26e306721211d5404bd9da88e0204360a1a9ab8b87c66c1bc2fcdd37f3c2222cc20": "0xe860f1b1c7227f7c22602f53f15af80747814dffd839719731ee3bba6edc126c0b00407a10f35a0b00407a10f35a0000",
|
||||
"0x0b76934f4cc08dee01012d059e1b83ee5e0621c4869aa60c02be9adcc98a0d1d": "0x148eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48306721211d5404bd9da88e0204360a1a9ab8b87c66c1bc2fcdd37f3c2222cc20e659a7a1628cdd93febc04a4e0646ea20e9f5f0ce097d9a05290d4a9e054df4e90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d",
|
||||
"0x5f3e4907f716ac89b6347d15ececedcaa3f6dd299ad3afa68580a25a73f6eabf": "0x00",
|
||||
"0x5f3e4907f716ac89b6347d15ececedca88dcde934c658227ee1dfafcd6e16903e535263148daaf49be5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f": "0x00",
|
||||
"0x5f3e4907f716ac89b6347d15ececedca682db92dde20a10d96d00ff0e9e221c0b4def25cfda6ef3a000000000e5be00fbc2e15b5fe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e": "0x00",
|
||||
"0x5f3e4907f716ac89b6347d15ececedca3ed14b45ed20d054f05e37e2542cfe703d336178353c677be860f1b1c7227f7c22602f53f15af80747814dffd839719731ee3bba6edc126c": "0x306721211d5404bd9da88e0204360a1a9ab8b87c66c1bc2fcdd37f3c2222cc20",
|
||||
"0x5f3e4907f716ac89b6347d15ececedcaf7dad0317324aecae8744b87fc95f2f3": "0x00",
|
||||
"0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9e5e802737cce3a54b0bc9e3d3e6be26e306721211d5404bd9da88e0204360a1a9ab8b87c66c1bc2fcdd37f3c2222cc20": "0x0000000000000064a7b3b6e00d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"0xcec5070d609dd3497f72bde07fc96ba098ef7dc060436e4ed803af07632b89b65153cb1f00942ff401000000": "0x778506934f60434942ec22f626589ff6e927fbd7c68d80ba6fc27cde07bdb4e205000000",
|
||||
"0x5f3e4907f716ac89b6347d15ececedca8bde0a0ea8864605e3b68ed9cb2da01bb4def25cfda6ef3a00000000ce4f6702f7c0a2951e07379407fecc4b89eb7dbd287c2c781cfb1907a96947a3eb18e4f8e7198625": "0x0b00407a10f35a0b00407a10f35a00",
|
||||
"0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950d62c40514b41f31962616265808eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48": "0xfe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e",
|
||||
"0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9f3f619a1c2956443880db9cc9a13d058e860f1b1c7227f7c22602f53f15af80747814dffd839719731ee3bba6edc126c": "0x0000000003000064a7b3b6e00d00000000000000000000000000000000000000000000000000407a10f35a0000000000000000000000407a10f35a00000000000000000000",
|
||||
"0x5f3e4907f716ac89b6347d15ececedca8bde0a0ea8864605e3b68ed9cb2da01bb4def25cfda6ef3a00000000e535263148daaf49be5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f": "0x0b00407a10f35a0b00407a10f35a00",
|
||||
"0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb36dd53641586aad2e8ac59e11963af19174d0b94d5d78041c233f55d2e19324665bafdfb62925af2d": "0x1dfe3e22cc0d45c70779c1095f7489a8ef3cf52d62fbd8c2fa38c9f1723502b5e659a7a1628cdd93febc04a4e0646ea20e9f5f0ce097d9a05290d4a9e054df4ee659a7a1628cdd93febc04a4e0646ea20e9f5f0ce097d9a05290d4a9e054df4ee659a7a1628cdd93febc04a4e0646ea20e9f5f0ce097d9a05290d4a9e054df4ee659a7a1628cdd93febc04a4e0646ea20e9f5f0ce097d9a05290d4a9e054df4e",
|
||||
"0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950c9b0c13125732d276175646980d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d": "0xbe5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f",
|
||||
"0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa195090c1e80b3f852beb696d6f6e80e659a7a1628cdd93febc04a4e0646ea20e9f5f0ce097d9a05290d4a9e054df4e": "0x8ac59e11963af19174d0b94d5d78041c233f55d2e19324665bafdfb62925af2d",
|
||||
"0x5f3e4907f716ac89b6347d15ececedca3ed14b45ed20d054f05e37e2542cfe706dd53641586aad2e8ac59e11963af19174d0b94d5d78041c233f55d2e19324665bafdfb62925af2d": "0xe659a7a1628cdd93febc04a4e0646ea20e9f5f0ce097d9a05290d4a9e054df4e",
|
||||
"0x5f3e4907f716ac89b6347d15ececedca9220e172bed316605f73f1ff7b4ade98ce4f6702f7c0a2951e07379407fecc4b89eb7dbd287c2c781cfb1907a96947a3eb18e4f8e7198625": "0x00",
|
||||
"0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9b321d16960ce1d9190b61e2421cc60131e07379407fecc4b89eb7dbd287c2c781cfb1907a96947a3eb18e4f8e7198625": "0x0000000003000064a7b3b6e00d00000000000000000000000000000000000000000000000000407a10f35a0000000000000000000000407a10f35a00000000000000000000",
|
||||
"0x2099d7f109d6e535fb000bba623fd4409f99a2ce711f3a31b2fc05604c93f179": "0x148eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48306721211d5404bd9da88e0204360a1a9ab8b87c66c1bc2fcdd37f3c2222cc20e659a7a1628cdd93febc04a4e0646ea20e9f5f0ce097d9a05290d4a9e054df4e90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d",
|
||||
"0x5f3e4907f716ac89b6347d15ececedca88dcde934c658227ee1dfafcd6e169030e5be00fbc2e15b5fe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e": "0x00",
|
||||
"0x5f3e4907f716ac89b6347d15ececedca9220e172bed316605f73f1ff7b4ade980e5be00fbc2e15b5fe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e": "0x00",
|
||||
"0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa19500333334cd5efbe006261626580e659a7a1628cdd93febc04a4e0646ea20e9f5f0ce097d9a05290d4a9e054df4e": "0x8ac59e11963af19174d0b94d5d78041c233f55d2e19324665bafdfb62925af2d",
|
||||
"0x5f3e4907f716ac89b6347d15ececedca422adb579f1dbf4f3886c5cfa3bb8cc44f9aea1afa791265fae359272badc1cf8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48": "0xfe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e0b00407a10f35a0b00407a10f35a0000",
|
||||
"0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950f5537bdb2a1f626b6772616e8088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee": "0xbe5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f",
|
||||
"0x5f3e4907f716ac89b6347d15ececedca422adb579f1dbf4f3886c5cfa3bb8cc4de1e86a9a8c739864cf3cc5ec2bea59fd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d": "0xbe5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f0b00407a10f35a0b00407a10f35a0000",
|
||||
"0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa195010ed5351a49a6f257061726180306721211d5404bd9da88e0204360a1a9ab8b87c66c1bc2fcdd37f3c2222cc20": "0xe860f1b1c7227f7c22602f53f15af80747814dffd839719731ee3bba6edc126c",
|
||||
"0x5f3e4907f716ac89b6347d15ececedca88dcde934c658227ee1dfafcd6e169036dd53641586aad2e8ac59e11963af19174d0b94d5d78041c233f55d2e19324665bafdfb62925af2d": "0x00",
|
||||
"0x5f3e4907f716ac89b6347d15ececedcab49a2738eeb30896aacb8b3fb46471bd": "0x01000000",
|
||||
"0x2b06af9719ac64d755623cda8ddd9b949f99a2ce711f3a31b2fc05604c93f179": "0x148eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48306721211d5404bd9da88e0204360a1a9ab8b87c66c1bc2fcdd37f3c2222cc20e659a7a1628cdd93febc04a4e0646ea20e9f5f0ce097d9a05290d4a9e054df4e90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d",
|
||||
"0x5f3e4907f716ac89b6347d15ececedca3ed14b45ed20d054f05e37e2542cfe70ce4f6702f7c0a2951e07379407fecc4b89eb7dbd287c2c781cfb1907a96947a3eb18e4f8e7198625": "0x90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22",
|
||||
"0x5f3e4907f716ac89b6347d15ececedcaad811cd65a470ddc5f1d628ff0550982b4def25cfda6ef3a00000000": "0x00000000",
|
||||
"0xc2261276cc9d1f8598ea4b6a74b15c2f218f26c73add634897550b4003b26bc632a5935f6edc617ae178fef9eb1e211fbe5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f": "0x047374616b696e672000407a10f35a0000000000000000000002",
|
||||
"0xcec5070d609dd3497f72bde07fc96ba0e0cdd062e6eaf24295ad4ccfc41d4609": "0x14fe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860ed17c2d7823ebf260fd138f2d7e27d114c0145d968b5ff5006125f2414fadae698eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a488eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a488eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a488eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48e860f1b1c7227f7c22602f53f15af80747814dffd839719731ee3bba6edc126c5e639b43e0052c47447dac87d6fd2b6ec50bdd4d0f614e4299c665249bbd09d9306721211d5404bd9da88e0204360a1a9ab8b87c66c1bc2fcdd37f3c2222cc20306721211d5404bd9da88e0204360a1a9ab8b87c66c1bc2fcdd37f3c2222cc20306721211d5404bd9da88e0204360a1a9ab8b87c66c1bc2fcdd37f3c2222cc20306721211d5404bd9da88e0204360a1a9ab8b87c66c1bc2fcdd37f3c2222cc208ac59e11963af19174d0b94d5d78041c233f55d2e19324665bafdfb62925af2d1dfe3e22cc0d45c70779c1095f7489a8ef3cf52d62fbd8c2fa38c9f1723502b5e659a7a1628cdd93febc04a4e0646ea20e9f5f0ce097d9a05290d4a9e054df4ee659a7a1628cdd93febc04a4e0646ea20e9f5f0ce097d9a05290d4a9e054df4ee659a7a1628cdd93febc04a4e0646ea20e9f5f0ce097d9a05290d4a9e054df4ee659a7a1628cdd93febc04a4e0646ea20e9f5f0ce097d9a05290d4a9e054df4e1e07379407fecc4b89eb7dbd287c2c781cfb1907a96947a3eb18e4f8e7198625439660b36c6c03afafca027b910b4fecf99801834c62a5e6006f27d978de234f90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe2290b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe2290b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe2290b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22be5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f88dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0eed43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27dd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27dd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27dd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d",
|
||||
"0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa195062190f64559b55c9696d6f6e8090b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22": "0x1e07379407fecc4b89eb7dbd287c2c781cfb1907a96947a3eb18e4f8e7198625",
|
||||
"0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950ce1dd85a539ac289617564698090b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22": "0x1e07379407fecc4b89eb7dbd287c2c781cfb1907a96947a3eb18e4f8e7198625",
|
||||
"0x1cb6f36e027abb2091cfb5110ab5087f66e8f035c8adbe7f1547b43c51e6f8a4": "0x00000000",
|
||||
"0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa19500e3a507571a62417696d6f6e808eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48": "0xfe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e",
|
||||
"0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da96f2e33376834a63c86a195bcf685aebbfe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e": "0x0000000003000064a7b3b6e00d00000000000000000000000000000000000000000000000000407a10f35a0000000000000000000000407a10f35a00000000000000000000",
|
||||
"0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9b0edae20838083f2cde1c4080db8cf8090b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22": "0x0000000000000064a7b3b6e00d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"0x5c0d1176a568c1f92944340dbfed9e9c530ebca703c85910e7164cb7d1c9e47b": "0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d",
|
||||
"0xc2261276cc9d1f8598ea4b6a74b15c2f218f26c73add634897550b4003b26bc6b321d16960ce1d9190b61e2421cc60131e07379407fecc4b89eb7dbd287c2c781cfb1907a96947a3eb18e4f8e7198625": "0x047374616b696e672000407a10f35a0000000000000000000002",
|
||||
"0x5f3e4907f716ac89b6347d15ececedca42982b9d6c7acc99faa9094c912372c2b4def25cfda6ef3a000000006dd53641586aad2e8ac59e11963af19174d0b94d5d78041c233f55d2e19324665bafdfb62925af2d": "0x0b00407a10f35a0b00407a10f35a00",
|
||||
"0x3a6772616e6470615f617574686f726974696573": "0x0114d17c2d7823ebf260fd138f2d7e27d114c0145d968b5ff5006125f2414fadae6901000000000000005e639b43e0052c47447dac87d6fd2b6ec50bdd4d0f614e4299c665249bbd09d901000000000000001dfe3e22cc0d45c70779c1095f7489a8ef3cf52d62fbd8c2fa38c9f1723502b50100000000000000439660b36c6c03afafca027b910b4fecf99801834c62a5e6006f27d978de234f010000000000000088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee0100000000000000",
|
||||
"0x5f3e4907f716ac89b6347d15ececedca9220e172bed316605f73f1ff7b4ade98e535263148daaf49be5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f": "0x00",
|
||||
"0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa19505905fe216cc5924c6772616e80d17c2d7823ebf260fd138f2d7e27d114c0145d968b5ff5006125f2414fadae69": "0xfe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e",
|
||||
"0x5f3e4907f716ac89b6347d15ececedcaa141c4fe67c2d11f4a10c6aca7a79a04b4def25cfda6ef3a00000000": "0x00406352bfc601000000000000000000",
|
||||
"0x5f3e4907f716ac89b6347d15ececedca5579297f4dfb9609e7e4c2ebab9ce40a": "0x14be5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25ffe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e1e07379407fecc4b89eb7dbd287c2c781cfb1907a96947a3eb18e4f8e7198625e860f1b1c7227f7c22602f53f15af80747814dffd839719731ee3bba6edc126c8ac59e11963af19174d0b94d5d78041c233f55d2e19324665bafdfb62925af2d",
|
||||
"0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950df374af9c718064e6772616e805e639b43e0052c47447dac87d6fd2b6ec50bdd4d0f614e4299c665249bbd09d9": "0xe860f1b1c7227f7c22602f53f15af80747814dffd839719731ee3bba6edc126c",
|
||||
"0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa195066a59561dbcc7b8f6261626580306721211d5404bd9da88e0204360a1a9ab8b87c66c1bc2fcdd37f3c2222cc20": "0xe860f1b1c7227f7c22602f53f15af80747814dffd839719731ee3bba6edc126c",
|
||||
"0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950d63cf703771f1bbe7061726180e659a7a1628cdd93febc04a4e0646ea20e9f5f0ce097d9a05290d4a9e054df4e": "0x8ac59e11963af19174d0b94d5d78041c233f55d2e19324665bafdfb62925af2d",
|
||||
"0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da98578796c363c105114787203e4d93ca6101191192fc877c24d725b337120fa3edc63d227bbc92705db1e2cb65f56981a": "0x0000000000000064a7b3b6e00d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"0x3fba98689ebed1138735e0e7a5a790ab0b76934f4cc08dee01012d059e1b83ee": "0x00",
|
||||
"0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa195066b8d48da86b869b6261626580d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d": "0xbe5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f",
|
||||
"0x5f3e4907f716ac89b6347d15ececedca138e71612491192d68deab7e6f563fe1": "0x05000000",
|
||||
"0x5f3e4907f716ac89b6347d15ececedca42982b9d6c7acc99faa9094c912372c2b4def25cfda6ef3a000000000e5be00fbc2e15b5fe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e": "0x0b00407a10f35a0b00407a10f35a00",
|
||||
"0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da94f9aea1afa791265fae359272badc1cf8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48": "0x0000000000000064a7b3b6e00d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"0x5f3e4907f716ac89b6347d15ececedca682db92dde20a10d96d00ff0e9e221c0b4def25cfda6ef3a000000003d336178353c677be860f1b1c7227f7c22602f53f15af80747814dffd839719731ee3bba6edc126c": "0x00",
|
||||
"0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb30e5be00fbc2e15b5fe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e": "0xd17c2d7823ebf260fd138f2d7e27d114c0145d968b5ff5006125f2414fadae698eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a488eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a488eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a488eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48",
|
||||
"0x5f3e4907f716ac89b6347d15ececedca42982b9d6c7acc99faa9094c912372c2b4def25cfda6ef3a000000003d336178353c677be860f1b1c7227f7c22602f53f15af80747814dffd839719731ee3bba6edc126c": "0x0b00407a10f35a0b00407a10f35a00",
|
||||
"0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb33d336178353c677be860f1b1c7227f7c22602f53f15af80747814dffd839719731ee3bba6edc126c": "0x5e639b43e0052c47447dac87d6fd2b6ec50bdd4d0f614e4299c665249bbd09d9306721211d5404bd9da88e0204360a1a9ab8b87c66c1bc2fcdd37f3c2222cc20306721211d5404bd9da88e0204360a1a9ab8b87c66c1bc2fcdd37f3c2222cc20306721211d5404bd9da88e0204360a1a9ab8b87c66c1bc2fcdd37f3c2222cc20306721211d5404bd9da88e0204360a1a9ab8b87c66c1bc2fcdd37f3c2222cc20",
|
||||
"0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950fff7b55003fb08f16772616e801dfe3e22cc0d45c70779c1095f7489a8ef3cf52d62fbd8c2fa38c9f1723502b5": "0x8ac59e11963af19174d0b94d5d78041c233f55d2e19324665bafdfb62925af2d",
|
||||
"0x5f3e4907f716ac89b6347d15ececedcac29a0310e1bb45d20cace77ccb62c97d": "0x00e1f505",
|
||||
"0xc2261276cc9d1f8598ea4b6a74b15c2f218f26c73add634897550b4003b26bc6f3f619a1c2956443880db9cc9a13d058e860f1b1c7227f7c22602f53f15af80747814dffd839719731ee3bba6edc126c": "0x047374616b696e672000407a10f35a0000000000000000000002",
|
||||
"0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa19505365c6be910a378f6175646980e659a7a1628cdd93febc04a4e0646ea20e9f5f0ce097d9a05290d4a9e054df4e": "0x8ac59e11963af19174d0b94d5d78041c233f55d2e19324665bafdfb62925af2d",
|
||||
"0x5f3e4907f716ac89b6347d15ececedcaac0a2cbf8e355f5ea6cb2de8727bfb0c": "0x54000000",
|
||||
"0x1cb6f36e027abb2091cfb5110ab5087f5e0621c4869aa60c02be9adcc98a0d1d": "0x148eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a480100000000000000306721211d5404bd9da88e0204360a1a9ab8b87c66c1bc2fcdd37f3c2222cc200100000000000000e659a7a1628cdd93febc04a4e0646ea20e9f5f0ce097d9a05290d4a9e054df4e010000000000000090b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe220100000000000000d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d0100000000000000",
|
||||
"0x5f3e4907f716ac89b6347d15ececedca682db92dde20a10d96d00ff0e9e221c0b4def25cfda6ef3a00000000ce4f6702f7c0a2951e07379407fecc4b89eb7dbd287c2c781cfb1907a96947a3eb18e4f8e7198625": "0x00",
|
||||
"0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa195079b38849014a07307061726180d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d": "0xbe5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f",
|
||||
"0x3a636f6465": "0x0061736d010000000182033560037f7f7f017f60027f7f017f60017f0060027f7f0060017f017e60047f7f7f7f0060057f7f7f7f7f0060037f7f7f0060017f017f60017e017f60017e0060017e017e60027f7e017f60037f7e7f017f6000017f60027f7f017e60037f7f7e017e60000060047f7e7e7e017f60027f7e017e60037f7e7e006000017e60027e7e0060037e7e7f017e60027e7f017f60057f7f7f7f7f017f60047f7f7f7f017f60077f7f7f7f7f7f7f017f60047f7f7f7e0060077f7e7e7e7e7e7e0060027f7e0060067f7f7f7f7f7f017f60067f7f7f7f7f7f0060057f7f7f7e7e0060057f7f7e7e7f0060087f7f7f7f7f7f7f7f0060047e7e7e7e017f60047f7f7e7e0060047f7f7f7f017e60047f7e7f7f0060057f7f7f7e7e017f60077f7f7f7f7f7f7f0060067f7f7e7f7f7f0060057f7e7e7f7f0060097f7f7f7f7f7f7f7f7e0060067f7f7f7e7e7f0060077f7f7e7e7e7e7f0060037e7f7f017f60077f7f7f7e7f7f7f0060067f7f7f7f7e7e0060057f7e7e7e7e0060047f7e7e7f0060067f7e7e7e7e7f00029c0c2703656e76066d656d6f727902001303656e761c6578745f616c6c6f6361746f725f667265655f76657273696f6e5f31000203656e761e6578745f616c6c6f6361746f725f6d616c6c6f635f76657273696f6e5f31000803656e762a6578745f747269655f626c616b65325f3235365f6f7264657265645f726f6f745f76657273696f6e5f31000903656e761c6578745f6d6973635f7072696e745f6865785f76657273696f6e5f31000a03656e761c6578745f6d6973635f7072696e745f6e756d5f76657273696f6e5f31000a03656e761d6578745f6d6973635f7072696e745f757466385f76657273696f6e5f31000a03656e76226578745f6d6973635f72756e74696d655f76657273696f6e5f76657273696f6e5f31000b03656e76206578745f68617368696e675f626c616b65325f3132385f76657273696f6e5f31000903656e76206578745f68617368696e675f626c616b65325f3235365f76657273696f6e5f31000903656e761e6578745f68617368696e675f74776f785f3132385f76657273696f6e5f31000903656e761d6578745f68617368696e675f74776f785f36345f76657273696f6e5f31000903656e76256578745f63727970746f5f656432353531395f67656e65726174655f76657273696f6e5f31000c03656e76236578745f63727970746f5f656432353531395f7665726966795f76657273696f6e5f31000d03656e76286578745f63727970746f5f66696e6973685f62617463685f7665726966795f76657273696f6e5f31000e03656e76376578745f63727970746f5f736563703235366b315f65636473615f7265636f7665725f636f6d707265737365645f76657273696f6e5f31000f03656e76256578745f63727970746f5f737232353531395f67656e65726174655f76657273696f6e5f31000c03656e76286578745f63727970746f5f737232353531395f7075626c69635f6b6579735f76657273696f6e5f31000403656e76216578745f63727970746f5f737232353531395f7369676e5f76657273696f6e5f31001003656e76236578745f63727970746f5f737232353531395f7665726966795f76657273696f6e5f32000d03656e76276578745f63727970746f5f73746172745f62617463685f7665726966795f76657273696f6e5f31001103656e76236578745f6f6666636861696e5f69735f76616c696461746f725f76657273696f6e5f31000e03656e76346578745f6f6666636861696e5f6c6f63616c5f73746f726167655f636f6d706172655f616e645f7365745f76657273696f6e5f31001203656e76286578745f6f6666636861696e5f6c6f63616c5f73746f726167655f6765745f76657273696f6e5f31001303656e76286578745f6f6666636861696e5f6c6f63616c5f73746f726167655f7365745f76657273696f6e5f31001403656e76246578745f6f6666636861696e5f6e6574776f726b5f73746174655f76657273696f6e5f31001503656e76226578745f6f6666636861696e5f72616e646f6d5f736565645f76657273696f6e5f31000e03656e76296578745f6f6666636861696e5f7375626d69745f7472616e73616374696f6e5f76657273696f6e5f31000b03656e761c6578745f73746f726167655f617070656e645f76657273696f6e5f31001603656e76226578745f73746f726167655f6368616e6765735f726f6f745f76657273696f6e5f31000b03656e761b6578745f73746f726167655f636c6561725f76657273696f6e5f31000a03656e76226578745f73746f726167655f636c6561725f7072656669785f76657273696f6e5f31000a03656e76196578745f73746f726167655f6765745f76657273696f6e5f31000b03656e761e6578745f73746f726167655f6e6578745f6b65795f76657273696f6e5f31000b03656e761a6578745f73746f726167655f726561645f76657273696f6e5f31001703656e761a6578745f73746f726167655f726f6f745f76657273696f6e5f31001503656e76196578745f73746f726167655f7365745f76657273696f6e5f31001603656e76206578745f6f6666636861696e5f696e6465785f7365745f76657273696f6e5f31001603656e76196578745f6c6f6767696e675f6c6f675f76657273696f6e5f31001403f307f10708080202000008080f11111107030307111100060200010103010303030301180204191a07070006010101081b010101070101000501010001010000010002010101030108070703030703070703030303030001010103010602010302070701061c06030303010107030707030703030714021d07030807030111010101030301020803030a03071e0307070707071a0e070703061a110e1f0506020208070703030707200205050101010301070101070307031a0707070303070102030707010702070703030703030303030403070707070302110803020303030303030703030303030303030303030302030303030303030307030303070707070707070707070707070707070203050320030103070303082103070303030302030703030703030707010201030603031105070707020702030307030703020307070303030207030307030703070203072207030703030803082308242502250526050703030201030703030303070307030303030303032703030503030303030303030303030107030303030303030302020202030703030303030303070307030303030703030302020203030303030703070303030303030303030103030303031103030303030303020302030302030303030607030302020302030303030311020303030303030a0303070203030703030328010211030703020507030303030303010202Line truncated
|
||||
"0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950e48fe1bd45bfef606175646980306721211d5404bd9da88e0204360a1a9ab8b87c66c1bc2fcdd37f3c2222cc20": "0xe860f1b1c7227f7c22602f53f15af80747814dffd839719731ee3bba6edc126c",
|
||||
"0xc2261276cc9d1f8598ea4b6a74b15c2f218f26c73add634897550b4003b26bc66f2e33376834a63c86a195bcf685aebbfe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e": "0x047374616b696e672000407a10f35a0000000000000000000002",
|
||||
"0x5f3e4907f716ac89b6347d15ececedca42982b9d6c7acc99faa9094c912372c2b4def25cfda6ef3a00000000e535263148daaf49be5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f": "0x0b00407a10f35a0b00407a10f35a00",
|
||||
"0x26aa394eea5630e07c48ae0c9558cef7a44704b568d21667356a5a050c118746b4def25cfda6ef3a00000000": "0x4545454545454545454545454545454545454545454545454545454545454545",
|
||||
"0x5f3e4907f716ac89b6347d15ececedca3ed14b45ed20d054f05e37e2542cfe70e535263148daaf49be5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f": "0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d",
|
||||
"0x2371e21684d2fae99bcb4d579242f74a8a2d09463effcc78a22d75b9cb87dffc": "0x0000000000000000",
|
||||
"0x5f3e4907f716ac89b6347d15ececedca88dcde934c658227ee1dfafcd6e16903ce4f6702f7c0a2951e07379407fecc4b89eb7dbd287c2c781cfb1907a96947a3eb18e4f8e7198625": "0x00",
|
||||
"0x5f3e4907f716ac89b6347d15ececedcae1791577e4efcb083fdc3cb21e85b2e4": "0x00",
|
||||
"0x2371e21684d2fae99bcb4d579242f74ad47cb8f5328af743ddfb361e7180e7fcbb1bdbcacd6ac9340000000000000000": "0x00000000",
|
||||
"0x5f3e4907f716ac89b6347d15ececedca422adb579f1dbf4f3886c5cfa3bb8cc4edeaa42c2163f68084a988529a0e2ec5e659a7a1628cdd93febc04a4e0646ea20e9f5f0ce097d9a05290d4a9e054df4e": "0x8ac59e11963af19174d0b94d5d78041c233f55d2e19324665bafdfb62925af2d0b00407a10f35a0b00407a10f35a0000",
|
||||
"0xcec5070d609dd3497f72bde07fc96ba098ef7dc060436e4ed803af07632b89b6b4def25cfda6ef3a00000000": "0x778506934f60434942ec22f626589ff6e927fbd7c68d80ba6fc27cde07bdb4e205000000",
|
||||
"0x3a65787472696e7369635f696e646578": "0x00000000",
|
||||
"0x5f3e4907f716ac89b6347d15ececedca308ce9615de0775a82f8a94dc3d285a1": "0x03",
|
||||
"0x5f3e4907f716ac89b6347d15ececedca682db92dde20a10d96d00ff0e9e221c0b4def25cfda6ef3a00000000e535263148daaf49be5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f": "0x00",
|
||||
"0xc2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80": "0x0000b0d86b9088a60000000000000000"
|
||||
},
|
||||
"childrenDefault": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"name": "Tick",
|
||||
"id": "tick_v1",
|
||||
"chainType": "Live",
|
||||
"bootNodes": [
|
||||
"/ip4/34.91.61.167/tcp/30333/p2p/12D3KooWSurfjy3Aa6SDpCXK87zdXN6RN7WyNvPmfC4NaByFmXpx",
|
||||
"/ip4/34.91.61.167/tcp/30334/ws/p2p/12D3KooWSurfjy3Aa6SDpCXK87zdXN6RN7WyNvPmfC4NaByFmXpx",
|
||||
"/ip4/34.91.144.206/tcp/30333/p2p/12D3KooWLr4j6nYZJhn94wSPykStewnrgpuiNM6cFeyKBqZFN39w",
|
||||
"/ip4/34.91.144.206/tcp/30334/ws/p2p/12D3KooWLr4j6nYZJhn94wSPykStewnrgpuiNM6cFeyKBqZFN39w",
|
||||
"/ip4/34.90.55.186/tcp/30333/p2p/12D3KooWQVVSvZT8kg2YzTZricmQuPk9474UN3aTHDu7uuMQ5b7v",
|
||||
"/ip4/34.90.55.186/tcp/30334/ws/p2p/12D3KooWQVVSvZT8kg2YzTZricmQuPk9474UN3aTHDu7uuMQ5b7v"
|
||||
],
|
||||
"telemetryEndpoints": null,
|
||||
"protocolId": null,
|
||||
"properties": {
|
||||
"ss58Format": 42,
|
||||
"tokenDecimals": 12,
|
||||
"tokenSymbol": "ROC"
|
||||
},
|
||||
"relay_chain": "rococo",
|
||||
"para_id": 100,
|
||||
"consensusEngine": null,
|
||||
"genesis": {
|
||||
"raw": {
|
||||
"top": {
|
||||
"0xc2261276cc9d1f8598ea4b6a74b15c2f308ce9615de0775a82f8a94dc3d285a1": "0x01",
|
||||
"0x26aa394eea5630e07c48ae0c9558cef7f9cce9c888469bb1a0dceaa129672ef8": "0x045863756d756c75732d746573742d70617261636861696e",
|
||||
"0x2089cf3645f21ef4a51744f13e6e4e45": "0x64000000",
|
||||
"0x26aa394eea5630e07c48ae0c9558cef7a44704b568d21667356a5a050c118746b4def25cfda6ef3a00000000": "0x4545454545454545454545454545454545454545454545454545454545454545",
|
||||
"0x3a636f6465": "0x0061736d0100000001e9012360037f7f7f017f60027f7f017f60047f7f7f7f0060017f0060057f7f7f7f7f0060037f7f7f0060027f7f0060067f7f7f7f7f7f0060017f017e60017f017f60037f7e7f017f6000017f60027f7f017e60000060017e017f60017e0060017e017e60027e7e0060037e7e7f017e6000017e60037f7e7e0060027e7f017f60057f7f7f7f7f017f60047f7f7f7f017f60077f7f7f7f7f7f7f017f60067f7f7e7e7f7f0060067f7f7f7e7e7f0060047f7e7f7f0060067f7f7e7e7e7f0060077f7f7e7e7f7e7e0060037e7f7f017f60027f7e0060057f7e7e7e7e0060047f7e7e7f0060067f7e7e7e7e7f0002fd071b03656e76066d656d6f727902001103656e761c6578745f616c6c6f6361746f725f667265655f76657273696f6e5f31000303656e761e6578745f616c6c6f6361746f725f6d616c6c6f635f76657273696f6e5f31000903656e76236578745f63727970746f5f656432353531395f7665726966795f76657273696f6e5f31000a03656e76286578745f63727970746f5f66696e6973685f62617463685f7665726966795f76657273696f6e5f31000b03656e76376578745f63727970746f5f736563703235366b315f65636473615f7265636f7665725f636f6d707265737365645f76657273696f6e5f31000c03656e76236578745f63727970746f5f737232353531395f7665726966795f76657273696f6e5f32000a03656e76276578745f63727970746f5f73746172745f62617463685f7665726966795f76657273696f6e5f31000d03656e762a6578745f747269655f626c616b65325f3235365f6f7264657265645f726f6f745f76657273696f6e5f31000e03656e761c6578745f6d6973635f7072696e745f6865785f76657273696f6e5f31000f03656e761c6578745f6d6973635f7072696e745f6e756d5f76657273696f6e5f31000f03656e761d6578745f6d6973635f7072696e745f757466385f76657273696f6e5f31000f03656e76226578745f6d6973635f72756e74696d655f76657273696f6e5f76657273696f6e5f31001003656e76206578745f68617368696e675f626c616b65325f3132385f76657273696f6e5f31000e03656e76206578745f68617368696e675f626c616b65325f3235365f76657273696f6e5f31000e03656e761e6578745f68617368696e675f74776f785f3132385f76657273696f6e5f31000e03656e761d6578745f68617368696e675f74776f785f36345f76657273696f6e5f31000e03656e761c6578745f73746f726167655f617070656e645f76657273696f6e5f31001103656e76226578745f73746f726167655f6368616e6765735f726f6f745f76657273696f6e5f31001003656e761b6578745f73746f726167655f636c6561725f76657273696f6e5f31000f03656e76226578745f73746f726167655f636c6561725f7072656669785f76657273696f6e5f31000f03656e761c6578745f73746f726167655f6578697374735f76657273696f6e5f31000e03656e76196578745f73746f726167655f6765745f76657273696f6e5f31001003656e761a6578745f73746f726167655f726561645f76657273696f6e5f31001203656e761a6578745f73746f726167655f726f6f745f76657273696f6e5f31001303656e76196578745f73746f726167655f7365745f76657273696f6e5f31001103656e76196578745f6c6f6767696e675f6c6f675f76657273696f6e5f31001403a203a00309090303000009090d0d0d0d050606050d0004000101060106011503081617050500040101010918010101050101000201010001010000010003010702050106030605050605050605040505060502050606030501060506060603060306060606060606060d030606060606060f0606030506060605060306060506050605060606060305030303030303010101060d051903060305061a03030f090505030303030303060606060606060606030c060c0606030c030c0605060c06060206020c0d06060c060306010c05060c06050c06051b1c0c060c0c0606030606040603051406060301010605010603060605030605060d020501030c0606060401030302040604020506060407030500010602050501030303030603030306030317010617020302021d0606060d0b061e0303060606030602050605020500060306030502070506040b05050204020601050305060905060306030606060606060106060606061b020106050100011717050303060506060606010101060104010603060101010103091f05050606010507030201060105062020212200000000202104070170018b018b010619037f01418080c0000b7f0041a0adc2000b7f0041a0adc2000b07d90311195f5f696e6469726563745f66756e6374696f6e5f7461626c6501000c436f72655f76657273696f6e00c80112436f72655f657865637574655f626c6f636b00ca0115436f72655f696e697469616c697a655f626c6f636b00ce01114d657461646174615f6d6574616461746100d0011c426c6f636b4275696c6465725f6170706c795f65787472696e73696300d4011b426c6f636b4275696c6465725f66696e616c697a655f626c6f636b00da0120426c6f636b4275696c6465725f696e686572656e745f65787472696e7369637300de011c426c6f636b4275696c6465725f636865636b5f696e686572656e747300e30118426c6f636b4275696c6465725f72616e646f6d5f7365656400e6012b5461676765645472616e73616374696f6e51756575655f76616c69646174655f7472616e73616374696f6e00e901214f6666636861696e576f726b65724170695f6f6666636861696e5f776f726b657200ee011f53657373696f6e4b6579735f6465636f64655f73657373696f6e5f6b65797300f0012153657373696f6e4b6579735f67656e65726174655f73657373696f6e5f6b65797300f1010e76616c69646174655f626c6f636b0092020a5f5f646174615f656e6403010b5f5f686561705f62617365030209f501010041010b8a013133463d9e033e3f6e51f802e702ac0280029b0355565758595a5b5c5d950347b0022d2e2f5436484a4b4c4d4e7d778401787b7a8a0286018501830182018101a701a501a60176749f0180019101b302b202b4028502c902c802a001cd02d902af02ae02a101b60289028a038903a201fe01a301c701a401ef02f1029d039c0399029a029d029f02a002a502a9029802be02a602ad028302b102b502b702ab03ff01800383039002d302d5029602cf02d402d602d802cc02cb02ca02ce02d702f002f302f2028403910385039203930394039903970398034344a203a303a403a503a603a703a803a903aa03ad030adec017a00306002000101b0b0700200010a0030b06002000101d0b07002000109f030b0aLine truncated
|
||||
"0xc2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80": "0x00000000000000100000000000000000",
|
||||
"0x26aa394eea5630e07c48ae0c9558cef78a42f33323cb5ced3b44dd825fda9fcc": "0x4545454545454545454545454545454545454545454545454545454545454545",
|
||||
"0x5c0d1176a568c1f92944340dbfed9e9c530ebca703c85910e7164cb7d1c9e47b": "0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d",
|
||||
"0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9de1e86a9a8c739864cf3cc5ec2bea59fd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d": "0x000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"0x3a65787472696e7369635f696e646578": "0x00000000"
|
||||
},
|
||||
"childrenDefault": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"name": "Track",
|
||||
"id": "track_v1",
|
||||
"chainType": "Live",
|
||||
"bootNodes": [
|
||||
"/ip4/34.90.110.60/tcp/30333/p2p/12D3KooWJDtayrREFQcrNMp7YxxY4MqogrWJP1c5nAhKqZd2bLDt",
|
||||
"/ip4/34.90.110.60/tcp/30334/ws/p2p/12D3KooWJDtayrREFQcrNMp7YxxY4MqogrWJP1c5nAhKqZd2bLDt",
|
||||
"/ip4/35.204.157.238/tcp/30333/p2p/12D3KooWRyvujTPTVSkWfXfThtKoB3dH53m7APVxAhi9ChzoPghX",
|
||||
"/ip4/35.204.157.238/tcp/30334/ws/p2p/12D3KooWRyvujTPTVSkWfXfThtKoB3dH53m7APVxAhi9ChzoPghX",
|
||||
"/ip4/35.204.161.46/tcp/30333/p2p/12D3KooWRsFHzUNgVMPmggMJcPqkFX8zacz8p4k5QFWKtAw3mUKu",
|
||||
"/ip4/35.204.161.46/tcp/30334/ws/p2p/12D3KooWRsFHzUNgVMPmggMJcPqkFX8zacz8p4k5QFWKtAw3mUKu"
|
||||
],
|
||||
"telemetryEndpoints": null,
|
||||
"protocolId": null,
|
||||
"properties": {
|
||||
"ss58Format": 42,
|
||||
"tokenDecimals": 12,
|
||||
"tokenSymbol": "ROC"
|
||||
},
|
||||
"relay_chain": "rococo",
|
||||
"para_id": 120,
|
||||
"consensusEngine": null,
|
||||
"genesis": {
|
||||
"raw": {
|
||||
"top": {
|
||||
"0x5c0d1176a568c1f92944340dbfed9e9c530ebca703c85910e7164cb7d1c9e47b": "0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d",
|
||||
"0x26aa394eea5630e07c48ae0c9558cef78a42f33323cb5ced3b44dd825fda9fcc": "0x4545454545454545454545454545454545454545454545454545454545454545",
|
||||
"0xc2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80": "0x00000000000000100000000000000000",
|
||||
"0x3a636f6465": "0x0061736d0100000001e9012360037f7f7f017f60027f7f017f60047f7f7f7f0060017f0060057f7f7f7f7f0060037f7f7f0060027f7f0060067f7f7f7f7f7f0060017f017e60017f017f60037f7e7f017f6000017f60027f7f017e60000060017e017f60017e0060017e017e60027e7e0060037e7e7f017e6000017e60037f7e7e0060027e7f017f60057f7f7f7f7f017f60047f7f7f7f017f60077f7f7f7f7f7f7f017f60067f7f7e7e7f7f0060067f7f7f7e7e7f0060047f7e7f7f0060067f7f7e7e7e7f0060077f7f7e7e7f7e7e0060037e7f7f017f60027f7e0060057f7e7e7e7e0060047f7e7e7f0060067f7e7e7e7e7f0002fd071b03656e76066d656d6f727902001103656e761c6578745f616c6c6f6361746f725f667265655f76657273696f6e5f31000303656e761e6578745f616c6c6f6361746f725f6d616c6c6f635f76657273696f6e5f31000903656e76236578745f63727970746f5f656432353531395f7665726966795f76657273696f6e5f31000a03656e76286578745f63727970746f5f66696e6973685f62617463685f7665726966795f76657273696f6e5f31000b03656e76376578745f63727970746f5f736563703235366b315f65636473615f7265636f7665725f636f6d707265737365645f76657273696f6e5f31000c03656e76236578745f63727970746f5f737232353531395f7665726966795f76657273696f6e5f32000a03656e76276578745f63727970746f5f73746172745f62617463685f7665726966795f76657273696f6e5f31000d03656e762a6578745f747269655f626c616b65325f3235365f6f7264657265645f726f6f745f76657273696f6e5f31000e03656e761c6578745f6d6973635f7072696e745f6865785f76657273696f6e5f31000f03656e761c6578745f6d6973635f7072696e745f6e756d5f76657273696f6e5f31000f03656e761d6578745f6d6973635f7072696e745f757466385f76657273696f6e5f31000f03656e76226578745f6d6973635f72756e74696d655f76657273696f6e5f76657273696f6e5f31001003656e76206578745f68617368696e675f626c616b65325f3132385f76657273696f6e5f31000e03656e76206578745f68617368696e675f626c616b65325f3235365f76657273696f6e5f31000e03656e761e6578745f68617368696e675f74776f785f3132385f76657273696f6e5f31000e03656e761d6578745f68617368696e675f74776f785f36345f76657273696f6e5f31000e03656e761c6578745f73746f726167655f617070656e645f76657273696f6e5f31001103656e76226578745f73746f726167655f6368616e6765735f726f6f745f76657273696f6e5f31001003656e761b6578745f73746f726167655f636c6561725f76657273696f6e5f31000f03656e76226578745f73746f726167655f636c6561725f7072656669785f76657273696f6e5f31000f03656e761c6578745f73746f726167655f6578697374735f76657273696f6e5f31000e03656e76196578745f73746f726167655f6765745f76657273696f6e5f31001003656e761a6578745f73746f726167655f726561645f76657273696f6e5f31001203656e761a6578745f73746f726167655f726f6f745f76657273696f6e5f31001303656e76196578745f73746f726167655f7365745f76657273696f6e5f31001103656e76196578745f6c6f6767696e675f6c6f675f76657273696f6e5f31001403a203a00309090303000009090d0d0d0d050606050d0004000101060106011503081617050500040101010918010101050101000201010001010000010003010702050106030605050605050605040505060502050606030501060506060603060306060606060606060d030606060606060f0606030506060605060306060506050605060606060305030303030303010101060d051903060305061a03030f090505030303030303060606060606060606030c060c0606030c030c0605060c06060206020c0d06060c060306010c05060c06050c06051b1c0c060c0c0606030606040603051406060301010605010603060605030605060d020501030c0606060401030302040604020506060407030500010602050501030303030603030306030317010617020302021d0606060d0b061e0303060606030602050605020500060306030502070506040b05050204020601050305060905060306030606060606060106060606061b020106050100011717050303060506060606010101060104010603060101010103091f05050606010507030201060105062020212200000000202104070170018b018b010619037f01418080c0000b7f0041a0adc2000b7f0041a0adc2000b07d90311195f5f696e6469726563745f66756e6374696f6e5f7461626c6501000c436f72655f76657273696f6e00c80112436f72655f657865637574655f626c6f636b00ca0115436f72655f696e697469616c697a655f626c6f636b00ce01114d657461646174615f6d6574616461746100d0011c426c6f636b4275696c6465725f6170706c795f65787472696e73696300d4011b426c6f636b4275696c6465725f66696e616c697a655f626c6f636b00da0120426c6f636b4275696c6465725f696e686572656e745f65787472696e7369637300de011c426c6f636b4275696c6465725f636865636b5f696e686572656e747300e30118426c6f636b4275696c6465725f72616e646f6d5f7365656400e6012b5461676765645472616e73616374696f6e51756575655f76616c69646174655f7472616e73616374696f6e00e901214f6666636861696e576f726b65724170695f6f6666636861696e5f776f726b657200ee011f53657373696f6e4b6579735f6465636f64655f73657373696f6e5f6b65797300f0012153657373696f6e4b6579735f67656e65726174655f73657373696f6e5f6b65797300f1010e76616c69646174655f626c6f636b0092020a5f5f646174615f656e6403010b5f5f686561705f62617365030209f501010041010b8a013133463d9e033e3f6e51f802e702ac0280029b0355565758595a5b5c5d950347b0022d2e2f5436484a4b4c4d4e7d778401787b7a8a0286018501830182018101a701a501a60176749f0180019101b302b202b4028502c902c802a001cd02d902af02ae02a101b60289028a038903a201fe01a301c701a401ef02f1029d039c0399029a029d029f02a002a502a9029802be02a602ad028302b102b502b702ab03ff01800383039002d302d5029602cf02d402d602d802cc02cb02ca02ce02d702f002f302f2028403910385039203930394039903970398034344a203a303a403a503a603a703a803a903aa03ad030adec017a00306002000101b0b0700200010a0030b06002000101d0b07002000109f030b0aLine truncated
|
||||
"0x3a65787472696e7369635f696e646578": "0x00000000",
|
||||
"0x26aa394eea5630e07c48ae0c9558cef7f9cce9c888469bb1a0dceaa129672ef8": "0x045863756d756c75732d746573742d70617261636861696e",
|
||||
"0x2089cf3645f21ef4a51744f13e6e4e45": "0x78000000",
|
||||
"0xc2261276cc9d1f8598ea4b6a74b15c2f308ce9615de0775a82f8a94dc3d285a1": "0x01",
|
||||
"0x26aa394eea5630e07c48ae0c9558cef7a44704b568d21667356a5a050c118746b4def25cfda6ef3a00000000": "0x4545454545454545454545454545454545454545454545454545454545454545",
|
||||
"0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9de1e86a9a8c739864cf3cc5ec2bea59fd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d": "0x000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
},
|
||||
"childrenDefault": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"name": "Trick",
|
||||
"id": "trick_v1",
|
||||
"chainType": "Live",
|
||||
"bootNodes": [
|
||||
"/ip4/34.90.155.1/tcp/30333/p2p/12D3KooWRtJZtrzLoMY92JigS1RwxdK9kLpVfLUCSMJjEjvDFtcQ",
|
||||
"/ip4/34.90.155.1/tcp/30334/ws/p2p/12D3KooWRtJZtrzLoMY92JigS1RwxdK9kLpVfLUCSMJjEjvDFtcQ",
|
||||
"/ip4/34.90.244.197/tcp/30333/p2p/12D3KooWCMazsg8UXdwYJiqe32UbMgpkQq99tjsCED8VwwqfQHQG",
|
||||
"/ip4/34.90.244.197/tcp/30334/ws/p2p/12D3KooWCMazsg8UXdwYJiqe32UbMgpkQq99tjsCED8VwwqfQHQG",
|
||||
"/ip4/34.90.248.40/tcp/30333/p2p/12D3KooWQitn1ZsY8Y37gomattzbRo74zt9fZR7nSLF5KJyGKr21",
|
||||
"/ip4/34.90.248.40/tcp/30334/ws/p2p/12D3KooWQitn1ZsY8Y37gomattzbRo74zt9fZR7nSLF5KJyGKr21"
|
||||
],
|
||||
"telemetryEndpoints": null,
|
||||
"protocolId": null,
|
||||
"properties": {
|
||||
"ss58Format": 42,
|
||||
"tokenDecimals": 12,
|
||||
"tokenSymbol": "ROC"
|
||||
},
|
||||
"relay_chain": "rococo",
|
||||
"para_id": 110,
|
||||
"consensusEngine": null,
|
||||
"genesis": {
|
||||
"raw": {
|
||||
"top": {
|
||||
"0x26aa394eea5630e07c48ae0c9558cef7a44704b568d21667356a5a050c118746b4def25cfda6ef3a00000000": "0x4545454545454545454545454545454545454545454545454545454545454545",
|
||||
"0x26aa394eea5630e07c48ae0c9558cef7f9cce9c888469bb1a0dceaa129672ef8": "0x045863756d756c75732d746573742d70617261636861696e",
|
||||
"0x3a636f6465": "0x0061736d0100000001e9012360037f7f7f017f60027f7f017f60047f7f7f7f0060017f0060057f7f7f7f7f0060037f7f7f0060027f7f0060067f7f7f7f7f7f0060017f017e60017f017f60037f7e7f017f6000017f60027f7f017e60000060017e017f60017e0060017e017e60027e7e0060037e7e7f017e6000017e60037f7e7e0060027e7f017f60057f7f7f7f7f017f60047f7f7f7f017f60077f7f7f7f7f7f7f017f60067f7f7e7e7f7f0060067f7f7f7e7e7f0060047f7e7f7f0060067f7f7e7e7e7f0060077f7f7e7e7f7e7e0060037e7f7f017f60027f7e0060057f7e7e7e7e0060047f7e7e7f0060067f7e7e7e7e7f0002fd071b03656e76066d656d6f727902001103656e761c6578745f616c6c6f6361746f725f667265655f76657273696f6e5f31000303656e761e6578745f616c6c6f6361746f725f6d616c6c6f635f76657273696f6e5f31000903656e76236578745f63727970746f5f656432353531395f7665726966795f76657273696f6e5f31000a03656e76286578745f63727970746f5f66696e6973685f62617463685f7665726966795f76657273696f6e5f31000b03656e76376578745f63727970746f5f736563703235366b315f65636473615f7265636f7665725f636f6d707265737365645f76657273696f6e5f31000c03656e76236578745f63727970746f5f737232353531395f7665726966795f76657273696f6e5f32000a03656e76276578745f63727970746f5f73746172745f62617463685f7665726966795f76657273696f6e5f31000d03656e762a6578745f747269655f626c616b65325f3235365f6f7264657265645f726f6f745f76657273696f6e5f31000e03656e761c6578745f6d6973635f7072696e745f6865785f76657273696f6e5f31000f03656e761c6578745f6d6973635f7072696e745f6e756d5f76657273696f6e5f31000f03656e761d6578745f6d6973635f7072696e745f757466385f76657273696f6e5f31000f03656e76226578745f6d6973635f72756e74696d655f76657273696f6e5f76657273696f6e5f31001003656e76206578745f68617368696e675f626c616b65325f3132385f76657273696f6e5f31000e03656e76206578745f68617368696e675f626c616b65325f3235365f76657273696f6e5f31000e03656e761e6578745f68617368696e675f74776f785f3132385f76657273696f6e5f31000e03656e761d6578745f68617368696e675f74776f785f36345f76657273696f6e5f31000e03656e761c6578745f73746f726167655f617070656e645f76657273696f6e5f31001103656e76226578745f73746f726167655f6368616e6765735f726f6f745f76657273696f6e5f31001003656e761b6578745f73746f726167655f636c6561725f76657273696f6e5f31000f03656e76226578745f73746f726167655f636c6561725f7072656669785f76657273696f6e5f31000f03656e761c6578745f73746f726167655f6578697374735f76657273696f6e5f31000e03656e76196578745f73746f726167655f6765745f76657273696f6e5f31001003656e761a6578745f73746f726167655f726561645f76657273696f6e5f31001203656e761a6578745f73746f726167655f726f6f745f76657273696f6e5f31001303656e76196578745f73746f726167655f7365745f76657273696f6e5f31001103656e76196578745f6c6f6767696e675f6c6f675f76657273696f6e5f31001403a203a00309090303000009090d0d0d0d050606050d0004000101060106011503081617050500040101010918010101050101000201010001010000010003010702050106030605050605050605040505060502050606030501060506060603060306060606060606060d030606060606060f0606030506060605060306060506050605060606060305030303030303010101060d051903060305061a03030f090505030303030303060606060606060606030c060c0606030c030c0605060c06060206020c0d06060c060306010c05060c06050c06051b1c0c060c0c0606030606040603051406060301010605010603060605030605060d020501030c0606060401030302040604020506060407030500010602050501030303030603030306030317010617020302021d0606060d0b061e0303060606030602050605020500060306030502070506040b05050204020601050305060905060306030606060606060106060606061b020106050100011717050303060506060606010101060104010603060101010103091f05050606010507030201060105062020212200000000202104070170018b018b010619037f01418080c0000b7f0041a0adc2000b7f0041a0adc2000b07d90311195f5f696e6469726563745f66756e6374696f6e5f7461626c6501000c436f72655f76657273696f6e00c80112436f72655f657865637574655f626c6f636b00ca0115436f72655f696e697469616c697a655f626c6f636b00ce01114d657461646174615f6d6574616461746100d0011c426c6f636b4275696c6465725f6170706c795f65787472696e73696300d4011b426c6f636b4275696c6465725f66696e616c697a655f626c6f636b00da0120426c6f636b4275696c6465725f696e686572656e745f65787472696e7369637300de011c426c6f636b4275696c6465725f636865636b5f696e686572656e747300e30118426c6f636b4275696c6465725f72616e646f6d5f7365656400e6012b5461676765645472616e73616374696f6e51756575655f76616c69646174655f7472616e73616374696f6e00e901214f6666636861696e576f726b65724170695f6f6666636861696e5f776f726b657200ee011f53657373696f6e4b6579735f6465636f64655f73657373696f6e5f6b65797300f0012153657373696f6e4b6579735f67656e65726174655f73657373696f6e5f6b65797300f1010e76616c69646174655f626c6f636b0092020a5f5f646174615f656e6403010b5f5f686561705f62617365030209f501010041010b8a013133463d9e033e3f6e51f802e702ac0280029b0355565758595a5b5c5d950347b0022d2e2f5436484a4b4c4d4e7d778401787b7a8a0286018501830182018101a701a501a60176749f0180019101b302b202b4028502c902c802a001cd02d902af02ae02a101b60289028a038903a201fe01a301c701a401ef02f1029d039c0399029a029d029f02a002a502a9029802be02a602ad028302b102b502b702ab03ff01800383039002d302d5029602cf02d402d602d802cc02cb02ca02ce02d702f002f302f2028403910385039203930394039903970398034344a203a303a403a503a603a703a803a903aa03ad030adec017a00306002000101b0b0700200010a0030b06002000101d0b07002000109f030b0aLine truncated
|
||||
"0xc2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80": "0x00000000000000100000000000000000",
|
||||
"0x3a65787472696e7369635f696e646578": "0x00000000",
|
||||
"0x5c0d1176a568c1f92944340dbfed9e9c530ebca703c85910e7164cb7d1c9e47b": "0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d",
|
||||
"0x26aa394eea5630e07c48ae0c9558cef78a42f33323cb5ced3b44dd825fda9fcc": "0x4545454545454545454545454545454545454545454545454545454545454545",
|
||||
"0x2089cf3645f21ef4a51744f13e6e4e45": "0x6e000000",
|
||||
"0xc2261276cc9d1f8598ea4b6a74b15c2f308ce9615de0775a82f8a94dc3d285a1": "0x01",
|
||||
"0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9de1e86a9a8c739864cf3cc5ec2bea59fd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d": "0x000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
|
||||
},
|
||||
"childrenDefault": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -9,26 +9,26 @@ serde = { version = "1.0.101", optional = true, features = ["derive"] }
|
||||
codec = { package = "parity-scale-codec", version = "1.3.0", default-features = false, features = ["derive"] }
|
||||
|
||||
# Substrate dependencies
|
||||
sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "cumulus-branch" }
|
||||
sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "cumulus-branch" }
|
||||
sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "cumulus-branch" }
|
||||
sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "cumulus-branch" }
|
||||
sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "cumulus-branch" }
|
||||
sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "cumulus-branch" }
|
||||
sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "cumulus-branch" }
|
||||
sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "cumulus-branch" }
|
||||
sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "cumulus-branch" }
|
||||
sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "cumulus-branch" }
|
||||
sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "cumulus-branch" }
|
||||
sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
|
||||
sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
|
||||
sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
|
||||
sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
|
||||
sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
|
||||
sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
|
||||
sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
|
||||
sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
|
||||
sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
|
||||
sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
|
||||
sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
|
||||
|
||||
frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "cumulus-branch" }
|
||||
frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "cumulus-branch" }
|
||||
frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "cumulus-branch" }
|
||||
pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "cumulus-branch" }
|
||||
pallet-randomness-collective-flip = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "cumulus-branch" }
|
||||
pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "cumulus-branch" }
|
||||
pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "cumulus-branch" }
|
||||
pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "cumulus-branch" }
|
||||
frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
|
||||
frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
|
||||
frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
|
||||
pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
|
||||
pallet-randomness-collective-flip = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
|
||||
pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
|
||||
pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
|
||||
pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" }
|
||||
|
||||
# Cumulus dependencies
|
||||
cumulus-runtime = { path = "../../../runtime", default-features = false }
|
||||
@@ -38,7 +38,7 @@ cumulus-upward-message = { path = "../../../upward-message", default-features =
|
||||
cumulus-primitives = { path = "../../../primitives", default-features = false }
|
||||
|
||||
# Polkadot dependencies
|
||||
polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "cumulus-branch", default-features = false }
|
||||
polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch", default-features = false }
|
||||
|
||||
[build-dependencies]
|
||||
wasm-builder-runner = { package = "substrate-wasm-builder-runner", version = "1.0.6" }
|
||||
|
||||
@@ -101,11 +101,11 @@ pub mod opaque {
|
||||
|
||||
/// This runtime version.
|
||||
pub const VERSION: RuntimeVersion = RuntimeVersion {
|
||||
spec_name: create_runtime_str!("wasm-test-parachain"),
|
||||
impl_name: create_runtime_str!("wasm-test-parachain"),
|
||||
authoring_version: 3,
|
||||
spec_version: 4,
|
||||
impl_version: 4,
|
||||
spec_name: create_runtime_str!("cumulus-test-parachain"),
|
||||
impl_name: create_runtime_str!("cumulus-test-parachain"),
|
||||
authoring_version: 1,
|
||||
spec_version: 1,
|
||||
impl_version: 1,
|
||||
apis: RUNTIME_API_VERSIONS,
|
||||
transaction_version: 1,
|
||||
};
|
||||
@@ -250,7 +250,7 @@ parameter_types! {
|
||||
impl cumulus_message_broker::Trait for Runtime {
|
||||
type Event = Event;
|
||||
type DownwardMessageHandlers = TokenDealer;
|
||||
type UpwardMessage = cumulus_upward_message::WestendUpwardMessage;
|
||||
type UpwardMessage = cumulus_upward_message::RococoUpwardMessage;
|
||||
type ParachainId = ParachainId;
|
||||
type XCMPMessage = XCMPMessage<AccountId, Balance>;
|
||||
type XCMPMessageHandlers = TokenDealer;
|
||||
@@ -259,7 +259,7 @@ impl cumulus_message_broker::Trait for Runtime {
|
||||
impl message_example::Trait for Runtime {
|
||||
type Event = Event;
|
||||
type UpwardMessageSender = MessageBroker;
|
||||
type UpwardMessage = cumulus_upward_message::WestendUpwardMessage;
|
||||
type UpwardMessage = cumulus_upward_message::RococoUpwardMessage;
|
||||
type Currency = Balances;
|
||||
type XCMPMessageSender = MessageBroker;
|
||||
}
|
||||
|
||||
@@ -19,12 +19,15 @@ use parachain_runtime::{
|
||||
AccountId, BalancesConfig, GenesisConfig, Signature, SudoConfig, SystemConfig,
|
||||
TokenDealerConfig, WASM_BINARY,
|
||||
};
|
||||
use sc_chain_spec::{ChainSpecExtension, ChainSpecGroup};
|
||||
use sc_service::ChainType;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use sp_core::{sr25519, Pair, Public};
|
||||
use sp_runtime::traits::{IdentifyAccount, Verify};
|
||||
use hex_literal::hex;
|
||||
|
||||
/// Specialized `ChainSpec`. This is a specialization of the general Substrate ChainSpec type.
|
||||
pub type ChainSpec = sc_service::GenericChainSpec<GenesisConfig>;
|
||||
pub type ChainSpec = sc_service::GenericChainSpec<GenesisConfig, Extensions>;
|
||||
|
||||
/// Helper function to generate a crypto pair from seed
|
||||
pub fn get_from_seed<TPublic: Public>(seed: &str) -> <TPublic::Pair as Pair>::Public {
|
||||
@@ -33,6 +36,23 @@ pub fn get_from_seed<TPublic: Public>(seed: &str) -> <TPublic::Pair as Pair>::Pu
|
||||
.public()
|
||||
}
|
||||
|
||||
/// The extensions for the [`ChainSpec`].
|
||||
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, ChainSpecGroup, ChainSpecExtension)]
|
||||
#[serde(deny_unknown_fields)]
|
||||
pub struct Extensions {
|
||||
/// The relay chain of the Parachain.
|
||||
pub relay_chain: String,
|
||||
/// The id of the Parachain.
|
||||
pub para_id: u32,
|
||||
}
|
||||
|
||||
impl Extensions {
|
||||
/// Try to get the extension from the given `ChainSpec`.
|
||||
pub fn try_get(chain_spec: &Box<dyn sc_service::ChainSpec>) -> Option<&Self> {
|
||||
sc_chain_spec::get_extension(chain_spec.extensions())
|
||||
}
|
||||
}
|
||||
|
||||
type AccountPublic = <Signature as Verify>::Signer;
|
||||
|
||||
/// Helper function to generate an account ID from seed
|
||||
@@ -72,7 +92,33 @@ pub fn get_chain_spec(id: ParaId) -> ChainSpec {
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
Extensions {
|
||||
relay_chain: "westend-dev".into(),
|
||||
para_id: id.into(),
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
pub fn staging_test_net(id: ParaId) -> ChainSpec {
|
||||
ChainSpec::from_genesis(
|
||||
"Staging Testnet",
|
||||
"staging_testnet",
|
||||
ChainType::Live,
|
||||
move || {
|
||||
testnet_genesis(
|
||||
hex!["9ed7705e3c7da027ba0583a22a3212042f7e715d3c168ba14f1424e2bc111d00"].into(),
|
||||
vec![hex!["9ed7705e3c7da027ba0583a22a3212042f7e715d3c168ba14f1424e2bc111d00"].into()],
|
||||
id,
|
||||
)
|
||||
},
|
||||
Vec::new(),
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
Extensions {
|
||||
relay_chain: "westend-dev".into(),
|
||||
para_id: id.into(),
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -28,6 +28,10 @@ pub enum Subcommand {
|
||||
/// Export the genesis state of the parachain.
|
||||
#[structopt(name = "export-genesis-state")]
|
||||
ExportGenesisState(ExportGenesisStateCommand),
|
||||
|
||||
/// Export the genesis wasm of the parachain.
|
||||
#[structopt(name = "export-genesis-wasm")]
|
||||
ExportGenesisWasm(ExportGenesisWasmCommand),
|
||||
}
|
||||
|
||||
/// Command for exporting the genesis state of the parachain
|
||||
@@ -40,6 +44,22 @@ pub struct ExportGenesisStateCommand {
|
||||
/// Id of the parachain this state is for.
|
||||
#[structopt(long, default_value = "100")]
|
||||
pub parachain_id: u32,
|
||||
|
||||
/// The name of the chain for that the genesis state should be exported.
|
||||
#[structopt(long)]
|
||||
pub chain: Option<String>,
|
||||
}
|
||||
|
||||
/// Command for exporting the genesis wasm file.
|
||||
#[derive(Debug, StructOpt)]
|
||||
pub struct ExportGenesisWasmCommand {
|
||||
/// Output file name or stdout if unspecified.
|
||||
#[structopt(parse(from_os_str))]
|
||||
pub output: Option<PathBuf>,
|
||||
|
||||
/// The name of the chain for that the genesis wasm file should be exported.
|
||||
#[structopt(long)]
|
||||
pub chain: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(Debug, StructOpt)]
|
||||
@@ -48,8 +68,8 @@ pub struct RunCmd {
|
||||
pub base: sc_cli::RunCmd,
|
||||
|
||||
/// Id of the parachain this collator collates for.
|
||||
#[structopt(long, default_value = "100")]
|
||||
pub parachain_id: u32,
|
||||
#[structopt(long)]
|
||||
pub parachain_id: Option<u32>,
|
||||
}
|
||||
|
||||
impl std::ops::Deref for RunCmd {
|
||||
@@ -78,11 +98,29 @@ pub struct Cli {
|
||||
pub relaychain_args: Vec<String>,
|
||||
}
|
||||
|
||||
#[derive(Debug, StructOpt)]
|
||||
pub struct PolkadotCli {
|
||||
#[structopt(flatten)]
|
||||
#[derive(Debug)]
|
||||
pub struct RelayChainCli {
|
||||
/// The actual relay chain cli object.
|
||||
pub base: polkadot_cli::RunCmd,
|
||||
|
||||
#[structopt(skip)]
|
||||
/// Optional chain id that should be passed to the relay chain.
|
||||
pub chain_id: Option<String>,
|
||||
|
||||
/// The base path that should be used by the relay chain.
|
||||
pub base_path: Option<PathBuf>,
|
||||
}
|
||||
|
||||
impl RelayChainCli {
|
||||
/// Create a new instance of `Self`.
|
||||
pub fn new<'a>(
|
||||
base_path: Option<PathBuf>,
|
||||
chain_id: Option<String>,
|
||||
relay_chain_args: impl Iterator<Item = &'a String>,
|
||||
) -> Self {
|
||||
Self {
|
||||
base_path,
|
||||
chain_id,
|
||||
base: polkadot_cli::RunCmd::from_iter(relay_chain_args),
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -14,8 +14,10 @@
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Cumulus. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
use crate::chain_spec;
|
||||
use crate::cli::{Cli, PolkadotCli, Subcommand};
|
||||
use crate::{
|
||||
chain_spec,
|
||||
cli::{Cli, RelayChainCli, Subcommand},
|
||||
};
|
||||
use codec::Encode;
|
||||
use cumulus_primitives::ParaId;
|
||||
use log::info;
|
||||
@@ -27,11 +29,8 @@ use sc_cli::{
|
||||
};
|
||||
use sc_service::config::{BasePath, PrometheusConfig};
|
||||
use sp_core::hexdisplay::HexDisplay;
|
||||
use sp_runtime::{
|
||||
traits::{Block as BlockT, Hash as HashT, Header as HeaderT, Zero},
|
||||
BuildStorage,
|
||||
};
|
||||
use std::{net::SocketAddr, sync::Arc};
|
||||
use sp_runtime::traits::{Block as BlockT, Hash as HashT, Header as HeaderT, Zero};
|
||||
use std::{io::Write, net::SocketAddr, sync::Arc};
|
||||
|
||||
impl SubstrateCli for Cli {
|
||||
fn impl_name() -> String {
|
||||
@@ -64,11 +63,27 @@ impl SubstrateCli for Cli {
|
||||
2017
|
||||
}
|
||||
|
||||
fn load_spec(&self, _id: &str) -> std::result::Result<Box<dyn sc_service::ChainSpec>, String> {
|
||||
// Such a hack :(
|
||||
Ok(Box::new(chain_spec::get_chain_spec(
|
||||
self.run.parachain_id.into(),
|
||||
)))
|
||||
fn load_spec(&self, id: &str) -> std::result::Result<Box<dyn sc_service::ChainSpec>, String> {
|
||||
match id {
|
||||
"staging" => Ok(Box::new(chain_spec::staging_test_net(
|
||||
self.run.parachain_id.unwrap_or(100).into(),
|
||||
))),
|
||||
"tick" => Ok(Box::new(chain_spec::ChainSpec::from_json_bytes(
|
||||
&include_bytes!("../res/tick.json")[..],
|
||||
)?)),
|
||||
"trick" => Ok(Box::new(chain_spec::ChainSpec::from_json_bytes(
|
||||
&include_bytes!("../res/trick.json")[..],
|
||||
)?)),
|
||||
"track" => Ok(Box::new(chain_spec::ChainSpec::from_json_bytes(
|
||||
&include_bytes!("../res/track.json")[..],
|
||||
)?)),
|
||||
"" => Ok(Box::new(chain_spec::get_chain_spec(
|
||||
self.run.parachain_id.unwrap_or(100).into(),
|
||||
))),
|
||||
path => Ok(Box::new(chain_spec::ChainSpec::from_json_file(
|
||||
path.into(),
|
||||
)?)),
|
||||
}
|
||||
}
|
||||
|
||||
fn native_runtime_version(_: &Box<dyn ChainSpec>) -> &'static RuntimeVersion {
|
||||
@@ -76,7 +91,7 @@ impl SubstrateCli for Cli {
|
||||
}
|
||||
}
|
||||
|
||||
impl SubstrateCli for PolkadotCli {
|
||||
impl SubstrateCli for RelayChainCli {
|
||||
fn impl_name() -> String {
|
||||
"Cumulus Test Parachain Collator".into()
|
||||
}
|
||||
@@ -106,7 +121,7 @@ impl SubstrateCli for PolkadotCli {
|
||||
}
|
||||
|
||||
fn load_spec(&self, id: &str) -> std::result::Result<Box<dyn sc_service::ChainSpec>, String> {
|
||||
polkadot_cli::Cli::from_iter([PolkadotCli::executable_name().to_string()].iter())
|
||||
polkadot_cli::Cli::from_iter([RelayChainCli::executable_name().to_string()].iter())
|
||||
.load_spec(id)
|
||||
}
|
||||
|
||||
@@ -115,9 +130,8 @@ impl SubstrateCli for PolkadotCli {
|
||||
}
|
||||
}
|
||||
|
||||
/// Generate the genesis block
|
||||
pub fn generate_genesis_state(para_id: ParaId) -> Result<Block> {
|
||||
let storage = (&chain_spec::get_chain_spec(para_id)).build_storage()?;
|
||||
pub fn generate_genesis_state(chain_spec: &Box<dyn sc_service::ChainSpec>) -> Result<Block> {
|
||||
let storage = chain_spec.build_storage()?;
|
||||
|
||||
let child_roots = storage.children_default.iter().map(|(sk, child_content)| {
|
||||
let state_root = <<<Block as BlockT>::Header as HeaderT>::Hashing as HashT>::trie_root(
|
||||
@@ -144,6 +158,15 @@ pub fn generate_genesis_state(para_id: ParaId) -> Result<Block> {
|
||||
))
|
||||
}
|
||||
|
||||
fn extract_genesis_wasm(chain_spec: &Box<dyn sc_service::ChainSpec>) -> Result<Vec<u8>> {
|
||||
let mut storage = chain_spec.build_storage()?;
|
||||
|
||||
storage
|
||||
.top
|
||||
.remove(sp_core::storage::well_known_keys::CODE)
|
||||
.ok_or_else(|| "Could not find wasm file in genesis state!".into())
|
||||
}
|
||||
|
||||
/// Parse command line arguments into service configuration.
|
||||
pub fn run() -> Result<()> {
|
||||
let cli = Cli::from_args();
|
||||
@@ -166,7 +189,8 @@ pub fn run() -> Result<()> {
|
||||
Some(Subcommand::ExportGenesisState(params)) => {
|
||||
sc_cli::init_logger("");
|
||||
|
||||
let block = generate_genesis_state(params.parachain_id.into())?;
|
||||
let block =
|
||||
generate_genesis_state(&cli.load_spec(¶ms.chain.clone().unwrap_or_default())?)?;
|
||||
let header_hex = format!("0x{:?}", HexDisplay::from(&block.header().encode()));
|
||||
|
||||
if let Some(output) = ¶ms.output {
|
||||
@@ -177,29 +201,47 @@ pub fn run() -> Result<()> {
|
||||
|
||||
Ok(())
|
||||
}
|
||||
Some(Subcommand::ExportGenesisWasm(params)) => {
|
||||
sc_cli::init_logger("");
|
||||
|
||||
let wasm_file =
|
||||
extract_genesis_wasm(&cli.load_spec(¶ms.chain.clone().unwrap_or_default())?)?;
|
||||
|
||||
if let Some(output) = ¶ms.output {
|
||||
std::fs::write(output, wasm_file)?;
|
||||
} else {
|
||||
std::io::stdout().write_all(&wasm_file)?;
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
||||
None => {
|
||||
let runner = cli.create_runner(&*cli.run)?;
|
||||
|
||||
// TODO
|
||||
let key = Arc::new(sp_core::Pair::generate().0);
|
||||
|
||||
let mut polkadot_cli = PolkadotCli::from_iter(
|
||||
[PolkadotCli::executable_name().to_string()]
|
||||
.iter()
|
||||
.chain(cli.relaychain_args.iter()),
|
||||
);
|
||||
|
||||
let id = ParaId::from(cli.run.parachain_id);
|
||||
|
||||
let parachain_account =
|
||||
AccountIdConversion::<polkadot_primitives::v0::AccountId>::into_account(&id);
|
||||
|
||||
let block = generate_genesis_state(id)?;
|
||||
let genesis_state = format!("0x{:?}", HexDisplay::from(&block.header().encode()));
|
||||
|
||||
runner.run_node_until_exit(|config| {
|
||||
polkadot_cli.base_path =
|
||||
config.base_path.as_ref().map(|x| x.path().join("polkadot"));
|
||||
// TODO
|
||||
let key = Arc::new(sp_core::Pair::generate().0);
|
||||
|
||||
let extension = chain_spec::Extensions::try_get(&config.chain_spec);
|
||||
let relay_chain_id = extension.map(|e| e.relay_chain.clone());
|
||||
let para_id = extension.map(|e| e.para_id);
|
||||
|
||||
let polkadot_cli = RelayChainCli::new(
|
||||
config.base_path.as_ref().map(|x| x.path().join("polkadot")),
|
||||
relay_chain_id,
|
||||
[RelayChainCli::executable_name().to_string()]
|
||||
.iter()
|
||||
.chain(cli.relaychain_args.iter()),
|
||||
);
|
||||
|
||||
let id = ParaId::from(cli.run.parachain_id.or(para_id).unwrap_or(100));
|
||||
|
||||
let parachain_account =
|
||||
AccountIdConversion::<polkadot_primitives::v0::AccountId>::into_account(&id);
|
||||
|
||||
let block =
|
||||
generate_genesis_state(&config.chain_spec).map_err(|e| format!("{:?}", e))?;
|
||||
let genesis_state = format!("0x{:?}", HexDisplay::from(&block.header().encode()));
|
||||
|
||||
let task_executor = config.task_executor.clone();
|
||||
let polkadot_config =
|
||||
@@ -227,7 +269,7 @@ pub fn run() -> Result<()> {
|
||||
}
|
||||
}
|
||||
|
||||
impl CliConfiguration for PolkadotCli {
|
||||
impl CliConfiguration for RelayChainCli {
|
||||
fn shared_params(&self) -> &SharedParams {
|
||||
self.base.base.shared_params()
|
||||
}
|
||||
@@ -310,6 +352,16 @@ impl CliConfiguration for PolkadotCli {
|
||||
unreachable!("PolkadotCli is never initialized; qed");
|
||||
}
|
||||
|
||||
fn chain_id(&self, is_dev: bool) -> Result<String> {
|
||||
let chain_id = self.base.base.chain_id(is_dev)?;
|
||||
|
||||
Ok(if chain_id.is_empty() {
|
||||
self.chain_id.clone().unwrap_or_default()
|
||||
} else {
|
||||
chain_id
|
||||
})
|
||||
}
|
||||
|
||||
fn role(&self, is_dev: bool) -> Result<sc_service::Role> {
|
||||
self.base.base.role(is_dev)
|
||||
}
|
||||
|
||||
@@ -60,8 +60,7 @@ async fn integration_test() {
|
||||
INTEGRATION_TEST_ALLOWED_TIME
|
||||
.and_then(|x| x.parse().ok())
|
||||
.unwrap_or(600),
|
||||
))
|
||||
.fuse();
|
||||
)).fuse();
|
||||
|
||||
let t2 = async {
|
||||
let para_id = ParaId::from(100);
|
||||
@@ -69,7 +68,8 @@ async fn integration_test() {
|
||||
future::join(alice.wait_for_blocks(2), bob.wait_for_blocks(2)).await;
|
||||
|
||||
// export genesis state
|
||||
let genesis_state = crate::command::generate_genesis_state(para_id)
|
||||
let spec = crate::chain_spec::get_chain_spec(para_id);
|
||||
let genesis_state = crate::command::generate_genesis_state(&(Box::new(spec) as Box<_>))
|
||||
.unwrap()
|
||||
.encode();
|
||||
|
||||
|
||||
@@ -112,9 +112,6 @@ pub fn run_collator(
|
||||
if matches!(parachain_config.role, Role::Light) {
|
||||
return Err("Light client not supported!".into());
|
||||
}
|
||||
if matches!(polkadot_config.role, Role::Light) {
|
||||
return Err("Light client not supported!".into());
|
||||
}
|
||||
|
||||
let mut parachain_config = prepare_collator_config(parachain_config);
|
||||
|
||||
|
||||
@@ -14,7 +14,11 @@
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Substrate. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
use std::{process::{Child, ExitStatus}, thread, time::Duration};
|
||||
use std::{
|
||||
process::{Child, ExitStatus},
|
||||
thread,
|
||||
time::Duration,
|
||||
};
|
||||
|
||||
/// Wait for the given `child` the given ammount of `secs`.
|
||||
///
|
||||
|
||||
@@ -22,17 +22,18 @@ mod common;
|
||||
#[test]
|
||||
#[cfg(unix)]
|
||||
fn polkadot_argument_parsing() {
|
||||
use nix::sys::signal::{
|
||||
kill,
|
||||
Signal::{self, SIGINT, SIGTERM},
|
||||
use nix::{
|
||||
sys::signal::{
|
||||
kill,
|
||||
Signal::{self, SIGINT, SIGTERM},
|
||||
},
|
||||
unistd::Pid,
|
||||
};
|
||||
use nix::unistd::Pid;
|
||||
|
||||
fn run_command_and_kill(signal: Signal) {
|
||||
let _ = fs::remove_dir_all("polkadot_argument_parsing");
|
||||
let mut cmd = Command::new(cargo_bin("cumulus-test-parachain-collator"))
|
||||
.args(&[
|
||||
"--dev",
|
||||
"-d",
|
||||
"polkadot_argument_parsing",
|
||||
"--",
|
||||
|
||||
@@ -15,25 +15,33 @@
|
||||
// along with Substrate. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
use assert_cmd::cargo::cargo_bin;
|
||||
use std::{convert::TryInto, process::Command, thread, time::Duration, fs};
|
||||
use std::{convert::TryInto, fs, process::Command, thread, time::Duration};
|
||||
|
||||
mod common;
|
||||
|
||||
#[test]
|
||||
#[cfg(unix)]
|
||||
fn interrupt_polkadot_mdns_issue_test() {
|
||||
use nix::sys::signal::{kill, Signal::{self, SIGINT, SIGTERM}};
|
||||
use nix::unistd::Pid;
|
||||
use nix::{
|
||||
sys::signal::{
|
||||
kill,
|
||||
Signal::{self, SIGINT, SIGTERM},
|
||||
},
|
||||
unistd::Pid,
|
||||
};
|
||||
|
||||
fn run_command_and_kill(signal: Signal) {
|
||||
let _ = fs::remove_dir_all("interrupt_polkadot_mdns_issue_test");
|
||||
let mut cmd = Command::new(cargo_bin("cumulus-test-parachain-collator"))
|
||||
.args(&["-d", "interrupt_polkadot_mdns_issue_test", "--dev", "--", "--dev"])
|
||||
.args(&["-d", "interrupt_polkadot_mdns_issue_test", "--", "--dev"])
|
||||
.spawn()
|
||||
.unwrap();
|
||||
|
||||
thread::sleep(Duration::from_secs(20));
|
||||
assert!(cmd.try_wait().unwrap().is_none(), "the process should still be running");
|
||||
assert!(
|
||||
cmd.try_wait().unwrap().is_none(),
|
||||
"the process should still be running"
|
||||
);
|
||||
kill(Pid::from_raw(cmd.id().try_into().unwrap()), signal).unwrap();
|
||||
assert_eq!(
|
||||
common::wait_for(&mut cmd, 30).map(|x| x.success()),
|
||||
|
||||
@@ -15,31 +15,38 @@
|
||||
// along with Substrate. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
use assert_cmd::cargo::cargo_bin;
|
||||
use std::{convert::TryInto, process::Command, thread, time::Duration, fs, path::PathBuf};
|
||||
use std::{convert::TryInto, fs, path::PathBuf, process::Command, thread, time::Duration};
|
||||
|
||||
mod common;
|
||||
|
||||
#[test]
|
||||
#[cfg(unix)]
|
||||
fn purge_chain_works() {
|
||||
use nix::sys::signal::{kill, Signal::SIGINT};
|
||||
use nix::unistd::Pid;
|
||||
use nix::{
|
||||
sys::signal::{kill, Signal::SIGINT},
|
||||
unistd::Pid,
|
||||
};
|
||||
|
||||
let base_path = "purge_chain_test";
|
||||
|
||||
let _ = fs::remove_dir_all(base_path);
|
||||
let mut cmd = Command::new(cargo_bin("cumulus-test-parachain-collator"))
|
||||
.args(&["-d", base_path, "--dev", "--", "--dev"])
|
||||
.args(&["-d", base_path, "--", "--dev"])
|
||||
.spawn()
|
||||
.unwrap();
|
||||
|
||||
// Let it produce some blocks.
|
||||
thread::sleep(Duration::from_secs(30));
|
||||
assert!(cmd.try_wait().unwrap().is_none(), "the process should still be running");
|
||||
assert!(
|
||||
cmd.try_wait().unwrap().is_none(),
|
||||
"the process should still be running"
|
||||
);
|
||||
|
||||
// Stop the process
|
||||
kill(Pid::from_raw(cmd.id().try_into().unwrap()), SIGINT).unwrap();
|
||||
assert!(common::wait_for(&mut cmd, 30).map(|x| x.success()).unwrap_or_default());
|
||||
assert!(common::wait_for(&mut cmd, 30)
|
||||
.map(|x| x.success())
|
||||
.unwrap_or_default());
|
||||
|
||||
let status = Command::new(cargo_bin("cumulus-test-parachain-collator"))
|
||||
.args(&["purge-chain", "-d", base_path, "-y"])
|
||||
@@ -48,6 +55,10 @@ fn purge_chain_works() {
|
||||
assert!(status.success());
|
||||
|
||||
// Make sure that the `parachain_local_testnet` chain folder exists, but the `db` is deleted.
|
||||
assert!(PathBuf::from(base_path).join("chains/local_testnet/").exists());
|
||||
assert!(!PathBuf::from(base_path).join("chains/local_testnet/db").exists());
|
||||
assert!(PathBuf::from(base_path)
|
||||
.join("chains/local_testnet/")
|
||||
.exists());
|
||||
assert!(!PathBuf::from(base_path)
|
||||
.join("chains/local_testnet/db")
|
||||
.exists());
|
||||
}
|
||||
@@ -15,25 +15,33 @@
|
||||
// along with Substrate. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
use assert_cmd::cargo::cargo_bin;
|
||||
use std::{convert::TryInto, process::Command, thread, time::Duration, fs};
|
||||
use std::{convert::TryInto, fs, process::Command, thread, time::Duration};
|
||||
|
||||
mod common;
|
||||
|
||||
#[test]
|
||||
#[cfg(unix)]
|
||||
fn running_the_node_works_and_can_be_interrupted() {
|
||||
use nix::sys::signal::{kill, Signal::{self, SIGINT, SIGTERM}};
|
||||
use nix::unistd::Pid;
|
||||
use nix::{
|
||||
sys::signal::{
|
||||
kill,
|
||||
Signal::{self, SIGINT, SIGTERM},
|
||||
},
|
||||
unistd::Pid,
|
||||
};
|
||||
|
||||
fn run_command_and_kill(signal: Signal) {
|
||||
let _ = fs::remove_dir_all("interrupt_test");
|
||||
let mut cmd = Command::new(cargo_bin("cumulus-test-parachain-collator"))
|
||||
.args(&["--dev", "-d", "interrupt_test", "--", "--dev"])
|
||||
.args(&["-d", "interrupt_test", "--", "--dev"])
|
||||
.spawn()
|
||||
.unwrap();
|
||||
|
||||
thread::sleep(Duration::from_secs(30));
|
||||
assert!(cmd.try_wait().unwrap().is_none(), "the process should still be running");
|
||||
assert!(
|
||||
cmd.try_wait().unwrap().is_none(),
|
||||
"the process should still be running"
|
||||
);
|
||||
kill(Pid::from_raw(cmd.id().try_into().unwrap()), signal).unwrap();
|
||||
assert_eq!(
|
||||
common::wait_for(&mut cmd, 30).map(|x| x.success()),
|
||||
|
||||
@@ -7,7 +7,7 @@ build = "build.rs"
|
||||
|
||||
[dependencies]
|
||||
runtime = { package = "cumulus-runtime", path = "../../runtime", default-features = false }
|
||||
substrate-test-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "cumulus-branch", version = "2.0.0-rc5" }
|
||||
substrate-test-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch", version = "2.0.0-rc5" }
|
||||
|
||||
[build-dependencies]
|
||||
wasm-builder-runner = { package = "substrate-wasm-builder-runner", version = " 1.0.6" }
|
||||
|
||||
@@ -6,16 +6,17 @@ edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
# Substrate dependencies
|
||||
sp-std = { git = "https://github.com/paritytech/substrate", branch = "cumulus-branch", default-features = false }
|
||||
sp-std = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch", default-features = false }
|
||||
|
||||
# Polkadot deps
|
||||
polkadot-core-primitives = { git = "https://github.com/paritytech/polkadot", branch = "cumulus-branch", default-features = false }
|
||||
polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "cumulus-branch", default-features = false }
|
||||
polkadot-core-primitives = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch", default-features = false }
|
||||
polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch", default-features = false }
|
||||
|
||||
# All these should be optional dependenices, but given the perfect Cargo, it is not possible.
|
||||
polkadot-runtime = { git = "https://github.com/paritytech/polkadot", branch = "cumulus-branch", default-features = false }
|
||||
kusama-runtime = { git = "https://github.com/paritytech/polkadot", branch = "cumulus-branch", default-features = false }
|
||||
westend-runtime = { git = "https://github.com/paritytech/polkadot", branch = "cumulus-branch", default-features = false }
|
||||
polkadot-runtime = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch", default-features = false }
|
||||
kusama-runtime = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch", default-features = false }
|
||||
westend-runtime = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch", default-features = false }
|
||||
rococo-runtime = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch", default-features = false }
|
||||
|
||||
[features]
|
||||
default = [ "std" ]
|
||||
@@ -24,6 +25,7 @@ std = [
|
||||
"polkadot-runtime/std",
|
||||
"kusama-runtime/std",
|
||||
"westend-runtime/std",
|
||||
"rococo-runtime/std",
|
||||
"polkadot-core-primitives/std",
|
||||
"polkadot-parachain/std",
|
||||
]
|
||||
@@ -35,5 +37,6 @@ std = [
|
||||
runtime-wasm = [
|
||||
"polkadot-runtime/disable-runtime-api",
|
||||
"westend-runtime/disable-runtime-api",
|
||||
"rococo-runtime/disable-runtime-api",
|
||||
"kusama-runtime/disable-runtime-api",
|
||||
]
|
||||
@@ -17,8 +17,8 @@
|
||||
//! Kusama upward message
|
||||
|
||||
use crate::*;
|
||||
use polkadot_core_primitives::{Balance, AccountId};
|
||||
use kusama_runtime::{BalancesCall, ParachainsCall};
|
||||
use polkadot_core_primitives::{AccountId, Balance};
|
||||
use sp_std::vec::Vec;
|
||||
|
||||
/// The Kusama upward message.
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Cumulus. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
//! Upward messages types and traits for Polkadot, Kusama and Westend.
|
||||
//! Upward messages types and traits for Polkadot, Kusama, Rococo and Westend.
|
||||
//!
|
||||
//! As Cumulus needs to suits multiple Polkadot-like runtimes the upward message
|
||||
//! type is different for each of them. To support all of them, Cumulus provides
|
||||
@@ -25,12 +25,14 @@
|
||||
use polkadot_parachain::primitives::Id as ParaId;
|
||||
use sp_std::vec::Vec;
|
||||
|
||||
mod polkadot;
|
||||
mod kusama;
|
||||
mod polkadot;
|
||||
mod rococo;
|
||||
mod westend;
|
||||
|
||||
pub use polkadot::UpwardMessage as PolkadotUpwardMessage;
|
||||
pub use kusama::UpwardMessage as KusamaUpwardMessage;
|
||||
pub use polkadot::UpwardMessage as PolkadotUpwardMessage;
|
||||
pub use rococo::UpwardMessage as RococoUpwardMessage;
|
||||
pub use westend::UpwardMessage as WestendUpwardMessage;
|
||||
|
||||
/// A `Balances` related upward message.
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
//! Polkadot upward message
|
||||
|
||||
use crate::*;
|
||||
use polkadot_core_primitives::{Balance, AccountId};
|
||||
use polkadot_core_primitives::{AccountId, Balance};
|
||||
use polkadot_runtime::{BalancesCall, ParachainsCall};
|
||||
use sp_std::vec::Vec;
|
||||
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
// Copyright 2020 Parity Technologies (UK) Ltd.
|
||||
// This file is part of Cumulus.
|
||||
|
||||
// Substrate 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.
|
||||
|
||||
// Substrate 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/>.
|
||||
|
||||
//! Rococo upward message
|
||||
|
||||
use crate::*;
|
||||
use polkadot_core_primitives::{AccountId, Balance};
|
||||
use rococo_runtime::{BalancesCall, ParachainsCall};
|
||||
use sp_std::vec::Vec;
|
||||
|
||||
/// The Rococo upward message.
|
||||
pub type UpwardMessage = rococo_runtime::Call;
|
||||
|
||||
impl BalancesMessage<AccountId, Balance> for UpwardMessage {
|
||||
fn transfer(dest: AccountId, amount: Balance) -> Self {
|
||||
BalancesCall::transfer(dest, amount).into()
|
||||
}
|
||||
}
|
||||
|
||||
impl XCMPMessage for UpwardMessage {
|
||||
fn send_message(dest: ParaId, msg: Vec<u8>) -> Self {
|
||||
ParachainsCall::send_xcmp_message(dest, msg).into()
|
||||
}
|
||||
}
|
||||
@@ -17,9 +17,9 @@
|
||||
//! Westend upward message
|
||||
|
||||
use crate::*;
|
||||
use polkadot_core_primitives::{Balance, AccountId};
|
||||
use westend_runtime::{BalancesCall, ParachainsCall};
|
||||
use polkadot_core_primitives::{AccountId, Balance};
|
||||
use sp_std::vec::Vec;
|
||||
use westend_runtime::{BalancesCall, ParachainsCall};
|
||||
|
||||
/// The Westend upward message.
|
||||
pub type UpwardMessage = westend_runtime::Call;
|
||||
|
||||
Reference in new issue
Block a user