diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index db4888be3a3..e9b2503f8d0 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -22,30 +22,17 @@ jobs: - run: git describe --tags --abbrev=0 --always - name: Setup cmake uses: jwlawson/actions-setup-cmake@v1.12 - - name: Install misc dependencies - run: sudo rm /var/lib/dpkg/lock-frontend && sudo rm /var/lib/dpkg/lock && sudo apt-get install -y protobuf-compiler m4 - name: Install Rust uses: codota/toolchain@00a8bf2bdcfe93aefd70422d3dec07337959d3a4 with: profile: minimal - - name: Install clippy - run: rustup component add clippy - - name: Run clippy - run: make clippy - continue-on-error: false - - name: Install tarpaulin - run: cargo install cargo-tarpaulin - - name: Test && Generate code coverage - run: make coverage - - name: Upload to codecov.io - uses: codecov/codecov-action@v1 - with: - fail_ci_if_error: false + - name: Test + run: make test-release - name: Build runtime run: cargo build --release --locked working-directory: runtime/basilisk - - name: Build node - run: cargo build --release --locked + - name: Release + run: make release - name: Version info run: ./target/release/basilisk --version - name: Upload release binary @@ -57,45 +44,16 @@ jobs: uses: actions/upload-artifact@v2 with: name: basilisk_runtime.compact.compressed.wasm - path: target/release/wbuild/basilisk-runtime/basilisk_runtime.compact.compressed.wasm - - test-inclusion: - needs: build - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - with: - fetch-depth: 0 - ref: ${{ github.event.pull_request.head.sha }} - - uses: actions/download-artifact@v2 - name: Download basilisk binary - with: - name: basilisk - path: target/release - - uses: robinraju/release-downloader@v1 - name: Download relay chain binary - with: - repository: paritytech/polkadot - tag: ${{ env.RELAY_CHAIN_VERSION }} - fileName: polkadot - out-file-path: ../polkadot/target/release - - run: chmod +x ./basilisk && ./basilisk --version - name: Basilisk version - working-directory: target/release - - run: chmod +x ./polkadot && ./polkadot --version - name: Polkadot version - working-directory: ../polkadot/target/release - - uses: actions/setup-node@v2 - name: Setup node.js - with: - node-version: '14' - check-latest: true - - run: npm install && npm start - name: Launch rococo local & wait for inclusion - working-directory: scripts/wait-for-inclusion + path: target/release/basilisk_runtime.compact.compressed.wasm + - name: Clippy + run: make clippy-all + - name: Test benchmarks + run: make test-benchmarks version-check: runs-on: ubuntu-latest + permissions: + pull-requests: write outputs: runtime-upgraded: ${{ steps.check-runtime.outputs.upgraded }} steps: diff --git a/.maintain/pallet-weight-template-no-back.hbs b/.maintain/pallet-weight-template-no-back.hbs index 1ff5795918b..7211afb55c9 100644 --- a/.maintain/pallet-weight-template-no-back.hbs +++ b/.maintain/pallet-weight-template-no-back.hbs @@ -15,62 +15,82 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for {{pallet}} +{{header}} +//! Autogenerated weights for `{{pallet}}` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION {{version}} -//! DATE: {{date}}, STEPS: {{cmd.steps}}, REPEAT: {{cmd.repeat}}, LOW RANGE: {{cmd.lowest_range_values}}, HIGH RANGE: {{cmd.highest_range_values}} -//! EXECUTION: {{cmd.execution}}, WASM-EXECUTION: {{cmd.wasm_execution}}, CHAIN: {{cmd.chain}}, DB CACHE: {{cmd.db_cache}} +//! DATE: {{date}}, STEPS: `{{cmd.steps}}`, REPEAT: `{{cmd.repeat}}`, LOW RANGE: `{{cmd.lowest_range_values}}`, HIGH RANGE: `{{cmd.highest_range_values}}` +//! WORST CASE MAP SIZE: `{{cmd.worst_case_map_values}}` +//! HOSTNAME: `{{hostname}}`, CPU: `{{cpuname}}` +//! WASM-EXECUTION: `{{cmd.wasm_execution}}`, CHAIN: `{{cmd.chain}}`, DB CACHE: `{{cmd.db_cache}}` // Executed Command: -{{#each args as |arg|~}} +{{#each args as |arg|}} // {{arg}} {{/each}} +#![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] #![allow(unused_imports)] -#![allow(clippy::unnecessary_cast)] +#![allow(missing_docs)] -use frame_support::{ - traits::Get, - weights::{constants::RocksDbWeight, Weight}, -}; -use sp_std::marker::PhantomData; +use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; +use core::marker::PhantomData; -use {{pallet}}::weights::WeightInfo; +/// Weight functions needed for `{{pallet}}`. +pub trait WeightInfo { + {{#each benchmarks as |benchmark|}} + fn {{benchmark.name~}} + ( + {{~#each benchmark.components as |c| ~}} + {{c.name}}: u32, {{/each~}} + ) -> Weight; + {{/each}} +} +/// Weights for `{{pallet}}` using the Basilisk node and recommended hardware. pub struct BasiliskWeight(PhantomData); - +{{#if (eq pallet "frame_system")}} +impl WeightInfo for BasiliskWeight { +{{else}} impl WeightInfo for BasiliskWeight { - {{#each benchmarks as |benchmark|}} - {{#each benchmark.comments as |comment|}} - // {{comment}} +{{/if}} + {{#each benchmarks as |benchmark|}} + {{#each benchmark.comments as |comment|}} + /// {{comment}} {{/each}} {{#each benchmark.component_ranges as |range|}} /// The range of component `{{range.name}}` is `[{{range.min}}, {{range.max}}]`. {{/each}} - fn {{benchmark.name~}} - ( - {{~#each benchmark.components as |c| ~}} - {{~#if (not c.is_used)}}_{{/if}}{{c.name}}: u32, {{/each~}} - ) -> Weight { - // Minimum execution time: {{underscore benchmark.min_execution_time}} nanoseconds. - Weight::from_ref_time({{underscore benchmark.base_weight}} as u64) - {{~#each benchmark.component_weight as |cw|}} - // Standard Error: {{underscore cw.error}} - .saturating_add(Weight::from_ref_time({{underscore cw.slope}} as u64).saturating_mul({{cw.name}} as u64)) - {{/each}} - {{#if (ne benchmark.base_reads "0")}} - .saturating_add(T::DbWeight::get().reads({{benchmark.base_reads}} as u64)) - {{/if}} - {{#each benchmark.component_reads as |cr|}} - .saturating_add(T::DbWeight::get().reads(({{cr.slope}} as u64).saturating_mul({{cr.name}} as u64))) - {{/each}} - {{#if (ne benchmark.base_writes "0")}} - .saturating_add(T::DbWeight::get().writes({{benchmark.base_writes}} as u64)) - {{/if}} - {{~#each benchmark.component_writes as |cw|}} - .saturating_add(T::DbWeight::get().writes(({{cw.slope}} as u64).saturating_mul({{cw.name}} as u64))) - {{/each}} - } - {{/each}} -} + fn {{benchmark.name~}} + ( + {{~#each benchmark.components as |c| ~}} + {{~#if (not c.is_used)}}_{{/if}}{{c.name}}: u32, {{/each~}} + ) -> Weight { + // Proof Size summary in bytes: + // Measured: `{{benchmark.base_recorded_proof_size}}{{#each benchmark.component_recorded_proof_size as |cp|}} + {{cp.name}} * ({{cp.slope}} ±{{underscore cp.error}}){{/each}}` + // Estimated: `{{benchmark.base_calculated_proof_size}}{{#each benchmark.component_calculated_proof_size as |cp|}} + {{cp.name}} * ({{cp.slope}} ±{{underscore cp.error}}){{/each}}` + // Minimum execution time: {{underscore benchmark.min_execution_time}}_000 picoseconds. + Weight::from_parts({{underscore benchmark.base_weight}}, {{benchmark.base_calculated_proof_size}}) + {{#each benchmark.component_weight as |cw|}} + // Standard Error: {{underscore cw.error}} + .saturating_add(Weight::from_parts({{underscore cw.slope}}, 0).saturating_mul({{cw.name}}.into())) + {{/each}} + {{#if (ne benchmark.base_reads "0")}} + .saturating_add(T::DbWeight::get().reads({{benchmark.base_reads}}_u64)) + {{/if}} + {{#each benchmark.component_reads as |cr|}} + .saturating_add(T::DbWeight::get().reads(({{cr.slope}}_u64).saturating_mul({{cr.name}}.into()))) + {{/each}} + {{#if (ne benchmark.base_writes "0")}} + .saturating_add(T::DbWeight::get().writes({{benchmark.base_writes}}_u64)) + {{/if}} + {{#each benchmark.component_writes as |cw|}} + .saturating_add(T::DbWeight::get().writes(({{cw.slope}}_u64).saturating_mul({{cw.name}}.into()))) + {{/each}} + {{#each benchmark.component_calculated_proof_size as |cp|}} + .saturating_add(Weight::from_parts(0, {{cp.slope}}).saturating_mul({{cp.name}}.into())) + {{/each}} + } + {{/each}} +} \ No newline at end of file diff --git a/.maintain/pallet-weight-template.hbs b/.maintain/pallet-weight-template.hbs index 2c73ba6239a..53bb8464761 100644 --- a/.maintain/pallet-weight-template.hbs +++ b/.maintain/pallet-weight-template.hbs @@ -15,108 +15,124 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for {{pallet}} +{{header}} +//! Autogenerated weights for `{{pallet}}` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION {{version}} -//! DATE: {{date}}, STEPS: {{cmd.steps}}, REPEAT: {{cmd.repeat}}, LOW RANGE: {{cmd.lowest_range_values}}, HIGH RANGE: {{cmd.highest_range_values}} -//! EXECUTION: {{cmd.execution}}, WASM-EXECUTION: {{cmd.wasm_execution}}, CHAIN: {{cmd.chain}}, DB CACHE: {{cmd.db_cache}} +//! DATE: {{date}}, STEPS: `{{cmd.steps}}`, REPEAT: `{{cmd.repeat}}`, LOW RANGE: `{{cmd.lowest_range_values}}`, HIGH RANGE: `{{cmd.highest_range_values}}` +//! WORST CASE MAP SIZE: `{{cmd.worst_case_map_values}}` +//! HOSTNAME: `{{hostname}}`, CPU: `{{cpuname}}` +//! WASM-EXECUTION: `{{cmd.wasm_execution}}`, CHAIN: `{{cmd.chain}}`, DB CACHE: `{{cmd.db_cache}}` // Executed Command: -{{#each args as |arg|~}} +{{#each args as |arg|}} // {{arg}} {{/each}} +#![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] #![allow(unused_imports)] -#![allow(clippy::unnecessary_cast)] +#![allow(missing_docs)] -use frame_support::{ - traits::Get, - weights::{constants::RocksDbWeight, Weight}, -}; -use sp_std::marker::PhantomData; +use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; +use core::marker::PhantomData; -/// Weight functions needed for {{pallet}}. +/// Weight functions needed for `{{pallet}}`. pub trait WeightInfo { -{{#each benchmarks as |benchmark|}} - fn {{benchmark.name~}} - ( - {{~#each benchmark.components as |c| ~}} - {{c.name}}: u32, {{/each~}} - ) -> Weight; - {{/each}} + {{#each benchmarks as |benchmark|}} + fn {{benchmark.name~}} + ( + {{~#each benchmark.components as |c| ~}} + {{c.name}}: u32, {{/each~}} + ) -> Weight; + {{/each}} } -/// Weights for {{pallet}} using the hydraDX node and recommended hardware. +/// Weights for `{{pallet}}` using the Basilisk node and recommended hardware. pub struct BasiliskWeight(PhantomData); - +{{#if (eq pallet "frame_system")}} +impl WeightInfo for BasiliskWeight { +{{else}} impl WeightInfo for BasiliskWeight { - {{#each benchmarks as |benchmark|}} - {{#each benchmark.comments as |comment|}} - // {{comment}} +{{/if}} + {{#each benchmarks as |benchmark|}} + {{#each benchmark.comments as |comment|}} + /// {{comment}} {{/each}} {{#each benchmark.component_ranges as |range|}} /// The range of component `{{range.name}}` is `[{{range.min}}, {{range.max}}]`. {{/each}} - fn {{benchmark.name~}} - ( - {{~#each benchmark.components as |c| ~}} - {{~#if (not c.is_used)}}_{{/if}}{{c.name}}: u32, {{/each~}} - ) -> Weight { - // Minimum execution time: {{underscore benchmark.min_execution_time}} nanoseconds. - Weight::from_ref_time({{underscore benchmark.base_weight}} as u64) - {{~#each benchmark.component_weight as |cw|}} - // Standard Error: {{underscore cw.error}} - .saturating_add(Weight::from_ref_time({{underscore cw.slope}} as u64).saturating_mul({{cw.name}} as u64)) - {{/each}} - {{#if (ne benchmark.base_reads "0")}} - .saturating_add(T::DbWeight::get().reads({{benchmark.base_reads}} as u64)) - {{/if}} - {{#each benchmark.component_reads as |cr|}} - .saturating_add(T::DbWeight::get().reads(({{cr.slope}} as u64).saturating_mul({{cr.name}} as u64))) - {{/each}} - {{#if (ne benchmark.base_writes "0")}} - .saturating_add(T::DbWeight::get().writes({{benchmark.base_writes}} as u64)) - {{/if}} - {{~#each benchmark.component_writes as |cw|}} - .saturating_add(T::DbWeight::get().writes(({{cw.slope}} as u64).saturating_mul({{cw.name}} as u64))) - {{/each}} - } - {{/each}} + fn {{benchmark.name~}} + ( + {{~#each benchmark.components as |c| ~}} + {{~#if (not c.is_used)}}_{{/if}}{{c.name}}: u32, {{/each~}} + ) -> Weight { + // Proof Size summary in bytes: + // Measured: `{{benchmark.base_recorded_proof_size}}{{#each benchmark.component_recorded_proof_size as |cp|}} + {{cp.name}} * ({{cp.slope}} ±{{underscore cp.error}}){{/each}}` + // Estimated: `{{benchmark.base_calculated_proof_size}}{{#each benchmark.component_calculated_proof_size as |cp|}} + {{cp.name}} * ({{cp.slope}} ±{{underscore cp.error}}){{/each}}` + // Minimum execution time: {{underscore benchmark.min_execution_time}}_000 picoseconds. + Weight::from_parts({{underscore benchmark.base_weight}}, {{benchmark.base_calculated_proof_size}}) + {{#each benchmark.component_weight as |cw|}} + // Standard Error: {{underscore cw.error}} + .saturating_add(Weight::from_parts({{underscore cw.slope}}, 0).saturating_mul({{cw.name}}.into())) + {{/each}} + {{#if (ne benchmark.base_reads "0")}} + .saturating_add(T::DbWeight::get().reads({{benchmark.base_reads}}_u64)) + {{/if}} + {{#each benchmark.component_reads as |cr|}} + .saturating_add(T::DbWeight::get().reads(({{cr.slope}}_u64).saturating_mul({{cr.name}}.into()))) + {{/each}} + {{#if (ne benchmark.base_writes "0")}} + .saturating_add(T::DbWeight::get().writes({{benchmark.base_writes}}_u64)) + {{/if}} + {{#each benchmark.component_writes as |cw|}} + .saturating_add(T::DbWeight::get().writes(({{cw.slope}}_u64).saturating_mul({{cw.name}}.into()))) + {{/each}} + {{#each benchmark.component_calculated_proof_size as |cp|}} + .saturating_add(Weight::from_parts(0, {{cp.slope}}).saturating_mul({{cp.name}}.into())) + {{/each}} + } + {{/each}} } -// For backwards compatibility and tests +// For backwards compatibility and tests. impl WeightInfo for () { - {{#each benchmarks as |benchmark|}} - {{#each benchmark.comments as |comment|}} - // {{comment}} + {{#each benchmarks as |benchmark|}} + {{#each benchmark.comments as |comment|}} + /// {{comment}} {{/each}} {{#each benchmark.component_ranges as |range|}} /// The range of component `{{range.name}}` is `[{{range.min}}, {{range.max}}]`. {{/each}} - fn {{benchmark.name~}} - ( - {{~#each benchmark.components as |c| ~}} - {{~#if (not c.is_used)}}_{{/if}}{{c.name}}: u32, {{/each~}} - ) -> Weight { - // Minimum execution time: {{underscore benchmark.min_execution_time}} nanoseconds. - Weight::from_ref_time({{underscore benchmark.base_weight}} as u64) - {{#each benchmark.component_weight as |cw|}} - // Standard Error: {{underscore cw.error}} - .saturating_add(Weight::from_ref_time({{underscore cw.slope}} as u64).saturating_mul({{cw.name}} as u64)) - {{/each}} - {{#if (ne benchmark.base_reads "0")}} - .saturating_add(RocksDbWeight::get().reads({{benchmark.base_reads}} as u64)) - {{/if}} - {{#each benchmark.component_reads as |cr|}} - .saturating_add(RocksDbWeight::get().reads(({{cr.slope}} as u64).saturating_mul({{cr.name}} as u64))) - {{/each}} - {{#if (ne benchmark.base_writes "0")}} - .saturating_add(RocksDbWeight::get().writes({{benchmark.base_writes}} as u64)) - {{/if}} - {{#each benchmark.component_writes as |cw|}} - .saturating_add(RocksDbWeight::get().writes(({{cw.slope}} as u64).saturating_mul({{cw.name}} as u64))) - {{/each}} - } - {{/each}} + fn {{benchmark.name~}} + ( + {{~#each benchmark.components as |c| ~}} + {{~#if (not c.is_used)}}_{{/if}}{{c.name}}: u32, {{/each~}} + ) -> Weight { + // Proof Size summary in bytes: + // Measured: `{{benchmark.base_recorded_proof_size}}{{#each benchmark.component_recorded_proof_size as |cp|}} + {{cp.name}} * ({{cp.slope}} ±{{underscore cp.error}}){{/each}}` + // Estimated: `{{benchmark.base_calculated_proof_size}}{{#each benchmark.component_calculated_proof_size as |cp|}} + {{cp.name}} * ({{cp.slope}} ±{{underscore cp.error}}){{/each}}` + // Minimum execution time: {{underscore benchmark.min_execution_time}}_000 picoseconds. + Weight::from_parts({{underscore benchmark.base_weight}}, {{benchmark.base_calculated_proof_size}}) + {{#each benchmark.component_weight as |cw|}} + // Standard Error: {{underscore cw.error}} + .saturating_add(Weight::from_parts({{underscore cw.slope}}, 0).saturating_mul({{cw.name}}.into())) + {{/each}} + {{#if (ne benchmark.base_reads "0")}} + .saturating_add(RocksDbWeight::get().reads({{benchmark.base_reads}}_u64)) + {{/if}} + {{#each benchmark.component_reads as |cr|}} + .saturating_add(RocksDbWeight::get().reads(({{cr.slope}}_u64).saturating_mul({{cr.name}}.into()))) + {{/each}} + {{#if (ne benchmark.base_writes "0")}} + .saturating_add(RocksDbWeight::get().writes({{benchmark.base_writes}}_u64)) + {{/if}} + {{#each benchmark.component_writes as |cw|}} + .saturating_add(RocksDbWeight::get().writes(({{cw.slope}}_u64).saturating_mul({{cw.name}}.into()))) + {{/each}} + {{#each benchmark.component_calculated_proof_size as |cp|}} + .saturating_add(Weight::from_parts(0, {{cp.slope}}).saturating_mul({{cp.name}}.into())) + {{/each}} + } + {{/each}} } diff --git a/Cargo.lock b/Cargo.lock index f3f93b568ef..e4a7c6b0267 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -14,20 +14,20 @@ dependencies = [ [[package]] name = "addr2line" -version = "0.17.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9ecd88a8c8378ca913a680cd98f0f13ac67383d35993f86c90a70e3f137816b" +checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97" dependencies = [ - "gimli 0.26.2", + "gimli 0.27.3", ] [[package]] name = "addr2line" -version = "0.19.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" dependencies = [ - "gimli 0.27.2", + "gimli 0.28.1", ] [[package]] @@ -36,25 +36,6 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" -[[package]] -name = "aead" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fc95d1bdb8e6666b2b217308eeeb09f2d6728d104be3e31916cc74d15420331" -dependencies = [ - "generic-array 0.14.7", -] - -[[package]] -name = "aead" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b613b8e1e3cf911a086f53f03bf286f52fd7a7258e4fa606f0ef220d39d8877" -dependencies = [ - "generic-array 0.14.7", - "rand_core 0.6.4", -] - [[package]] name = "aead" version = "0.5.2" @@ -67,126 +48,67 @@ dependencies = [ [[package]] name = "aes" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "884391ef1066acaa41e766ba8f596341b96e93ce34f9a43e7d24bf0a0eaf0561" -dependencies = [ - "aes-soft", - "aesni", - "cipher 0.2.5", -] - -[[package]] -name = "aes" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8" -dependencies = [ - "cfg-if", - "cipher 0.3.0", - "cpufeatures", - "opaque-debug 0.3.0", -] - -[[package]] -name = "aes" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "433cfd6710c9986c576a25ca913c39d66a6474107b406f34f91d4a8923395241" +checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2" dependencies = [ "cfg-if", - "cipher 0.4.4", + "cipher", "cpufeatures", ] [[package]] name = "aes-gcm" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df5f85a83a7d8b0442b6aa7b504b8212c1733da07b98aae43d4bc21b2cb3cdf6" -dependencies = [ - "aead 0.4.3", - "aes 0.7.5", - "cipher 0.3.0", - "ctr 0.8.0", - "ghash 0.4.4", - "subtle", -] - -[[package]] -name = "aes-gcm" -version = "0.10.2" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "209b47e8954a928e1d72e86eca7000ebb6655fe1436d33eefc2201cad027e237" +checksum = "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1" dependencies = [ - "aead 0.5.2", - "aes 0.8.2", - "cipher 0.4.4", - "ctr 0.9.2", - "ghash 0.5.0", + "aead", + "aes", + "cipher", + "ctr", + "ghash", "subtle", ] -[[package]] -name = "aes-soft" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be14c7498ea50828a38d0e24a765ed2effe92a705885b57d029cd67d45744072" -dependencies = [ - "cipher 0.2.5", - "opaque-debug 0.3.0", -] - -[[package]] -name = "aesni" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea2e11f5e94c2f7d386164cc2aa1f97823fed6f259e486940a71c174dd01b0ce" -dependencies = [ - "cipher 0.2.5", - "opaque-debug 0.3.0", -] - [[package]] name = "ahash" -version = "0.7.6" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" +checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd" dependencies = [ - "getrandom 0.2.10", + "getrandom 0.2.11", "once_cell", "version_check", ] [[package]] name = "ahash" -version = "0.8.3" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f" +checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a" dependencies = [ "cfg-if", - "getrandom 0.2.10", + "getrandom 0.2.11", "once_cell", "version_check", + "zerocopy", ] [[package]] name = "aho-corasick" -version = "0.7.20" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac" +checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" dependencies = [ "memchr", ] [[package]] -name = "aho-corasick" -version = "1.0.2" +name = "allocator-api2" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41" -dependencies = [ - "memchr", -] +checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" [[package]] name = "always-assert" @@ -220,58 +142,57 @@ dependencies = [ [[package]] name = "anstream" -version = "0.3.2" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163" +checksum = "2ab91ebe16eb252986481c5b62f6098f3b698a45e34b5b98200cf20dd2484a44" dependencies = [ "anstyle", "anstyle-parse", "anstyle-query", "anstyle-wincon", "colorchoice", - "is-terminal", "utf8parse", ] [[package]] name = "anstyle" -version = "1.0.0" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41ed9a86bf92ae6580e0a31281f65a1b1d867c0cc68d5346e2ae128dddfa6a7d" +checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87" [[package]] name = "anstyle-parse" -version = "0.2.0" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e765fd216e48e067936442276d1d57399e37bce53c264d6fefbe298080cb57ee" +checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" +checksum = "a3a318f1f38d2418400f8209655bfd825785afd25aa30bb7ba6cc792e4596748" dependencies = [ - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "anstyle-wincon" -version = "1.0.1" +version = "3.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "180abfa45703aebe0093f79badacc01b8fd4ea2e35118747e5811127f926e188" +checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" dependencies = [ "anstyle", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "anyhow" -version = "1.0.71" +version = "1.0.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c7d0618f0e0b7e8ff11427422b64564d5fb0be1940354bfe2e0529b18a9d9b8" +checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" [[package]] name = "approx" @@ -283,22 +204,209 @@ dependencies = [ ] [[package]] -name = "arc-swap" -version = "1.6.0" +name = "aquamarine" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6" +checksum = "df752953c49ce90719c7bf1fc587bc8227aed04732ea0c0f85e5397d7fdbd1a1" +dependencies = [ + "include_dir", + "itertools 0.10.5", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", +] [[package]] -name = "array-bytes" -version = "4.2.0" +name = "ark-bls12-381" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f52f63c5c1316a16a4b35eaac8b76a98248961a533f061684cb2a7cb0eafb6c6" +checksum = "c775f0d12169cba7aae4caeb547bb6a50781c7449a8aa53793827c9ec4abf488" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-serialize", + "ark-std", +] + +[[package]] +name = "ark-ec" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" +dependencies = [ + "ark-ff", + "ark-poly", + "ark-serialize", + "ark-std", + "derivative", + "hashbrown 0.13.2", + "itertools 0.10.5", + "num-traits", + "zeroize", +] + +[[package]] +name = "ark-ed-on-bls12-381-bandersnatch" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9cde0f2aa063a2a5c28d39b47761aa102bda7c13c84fc118a61b87c7b2f785c" +dependencies = [ + "ark-bls12-381", + "ark-ec", + "ark-ff", + "ark-std", +] + +[[package]] +name = "ark-ff" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" +dependencies = [ + "ark-ff-asm", + "ark-ff-macros", + "ark-serialize", + "ark-std", + "derivative", + "digest 0.10.7", + "itertools 0.10.5", + "num-bigint", + "num-traits", + "paste", + "rustc_version", + "zeroize", +] + +[[package]] +name = "ark-ff-asm" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-macros" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" +dependencies = [ + "num-bigint", + "num-traits", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-poly" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" +dependencies = [ + "ark-ff", + "ark-serialize", + "ark-std", + "derivative", + "hashbrown 0.13.2", +] + +[[package]] +name = "ark-scale" +version = "0.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49b08346a3e38e2be792ef53ee168623c9244d968ff00cd70fb9932f6fe36393" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-serialize", + "ark-std", + "parity-scale-codec", +] + +[[package]] +name = "ark-scale" +version = "0.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f69c00b3b529be29528a6f2fd5fa7b1790f8bed81b9cdca17e326538545a179" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-serialize", + "ark-std", + "parity-scale-codec", + "scale-info", +] + +[[package]] +name = "ark-secret-scalar" +version = "0.0.2" +source = "git+https://github.com/w3f/ring-vrf?rev=3119f51#3119f51b54b69308abfb0671f6176cb125ae1bf1" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-serialize", + "ark-std", + "ark-transcript", + "digest 0.10.7", + "rand_core 0.6.4", + "zeroize", +] + +[[package]] +name = "ark-serialize" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" +dependencies = [ + "ark-serialize-derive", + "ark-std", + "digest 0.10.7", + "num-bigint", +] + +[[package]] +name = "ark-serialize-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-std" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" +dependencies = [ + "num-traits", + "rand 0.8.5", +] + +[[package]] +name = "ark-transcript" +version = "0.0.2" +source = "git+https://github.com/w3f/ring-vrf?rev=3119f51#3119f51b54b69308abfb0671f6176cb125ae1bf1" +dependencies = [ + "ark-ff", + "ark-serialize", + "ark-std", + "digest 0.10.7", + "rand_core 0.6.4", + "sha3", +] [[package]] name = "array-bytes" -version = "6.1.0" +version = "6.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b1c5a481ec30a5abd8dfbd94ab5cf1bb4e9a66be7f1b3b322f2f1170c200fd" +checksum = "6f840fb7195bcfc5e17ea40c26e5ce6d5b9ce5d584466e17703209657e459ae0" [[package]] name = "arrayref" @@ -308,31 +416,24 @@ checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" [[package]] name = "arrayvec" -version = "0.5.2" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" +checksum = "cd9fd44efafa8690358b7408d253adf110036b88f55672a933f01d616ad9b1b9" +dependencies = [ + "nodrop", +] [[package]] name = "arrayvec" -version = "0.7.2" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" +checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" [[package]] -name = "asn1-rs" -version = "0.3.1" +name = "arrayvec" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30ff05a702273012438132f449575dbc804e27b2f3cbe3069aa237d26c98fa33" -dependencies = [ - "asn1-rs-derive 0.1.0", - "asn1-rs-impl", - "displaydoc", - "nom", - "num-traits", - "rusticata-macros", - "thiserror", - "time 0.3.21", -] +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "asn1-rs" @@ -340,26 +441,14 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0" dependencies = [ - "asn1-rs-derive 0.4.0", + "asn1-rs-derive", "asn1-rs-impl", "displaydoc", "nom", "num-traits", "rusticata-macros", "thiserror", - "time 0.3.21", -] - -[[package]] -name = "asn1-rs-derive" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db8b7511298d5b7784b40b092d9e9dcd3a627a5707e4b5e507931ab0d44eeebf" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", - "synstructure", + "time", ] [[package]] @@ -385,76 +474,219 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "asn1_der" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "155a5a185e42c6b77ac7b88a15143d930a9e9727a5b7b77eed417404ab15c247" - [[package]] name = "assert_matches" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" +[[package]] +name = "async-channel" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" +dependencies = [ + "concurrent-queue", + "event-listener 2.5.3", + "futures-core", +] + +[[package]] +name = "async-channel" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ca33f4bc4ed1babef42cad36cc1f51fa88be00420404e5b1e80ab1b18f7678c" +dependencies = [ + "concurrent-queue", + "event-listener 4.0.0", + "event-listener-strategy", + "futures-core", + "pin-project-lite 0.2.13", +] + +[[package]] +name = "async-executor" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17ae5ebefcc48e7452b4987947920dac9450be1110cadf34d1b8c116bdbaf97c" +dependencies = [ + "async-lock 3.2.0", + "async-task", + "concurrent-queue", + "fastrand 2.0.1", + "futures-lite 2.1.0", + "slab", +] + +[[package]] +name = "async-fs" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06" +dependencies = [ + "async-lock 2.8.0", + "autocfg", + "blocking", + "futures-lite 1.13.0", +] + [[package]] name = "async-io" version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" dependencies = [ - "async-lock", + "async-lock 2.8.0", "autocfg", "cfg-if", "concurrent-queue", - "futures-lite", + "futures-lite 1.13.0", "log", "parking", - "polling", - "rustix 0.37.19", + "polling 2.8.0", + "rustix 0.37.27", "slab", - "socket2 0.4.9", + "socket2 0.4.10", "waker-fn", ] +[[package]] +name = "async-io" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6d3b15875ba253d1110c740755e246537483f152fa334f91abd7fe84c88b3ff" +dependencies = [ + "async-lock 3.2.0", + "cfg-if", + "concurrent-queue", + "futures-io", + "futures-lite 2.1.0", + "parking", + "polling 3.3.1", + "rustix 0.38.27", + "slab", + "tracing", + "windows-sys 0.52.0", +] + [[package]] name = "async-lock" -version = "2.7.0" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa24f727524730b077666307f2734b4a1a1c57acb79193127dcc8914d5242dd7" +checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" dependencies = [ - "event-listener", + "event-listener 2.5.3", ] +[[package]] +name = "async-lock" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7125e42787d53db9dd54261812ef17e937c95a51e4d291373b670342fa44310c" +dependencies = [ + "event-listener 4.0.0", + "event-listener-strategy", + "pin-project-lite 0.2.13", +] + +[[package]] +name = "async-net" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0434b1ed18ce1cf5769b8ac540e33f01fa9471058b5e89da9e06f3c882a8c12f" +dependencies = [ + "async-io 1.13.0", + "blocking", + "futures-lite 1.13.0", +] + +[[package]] +name = "async-process" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88" +dependencies = [ + "async-io 1.13.0", + "async-lock 2.8.0", + "async-signal", + "blocking", + "cfg-if", + "event-listener 3.1.0", + "futures-lite 1.13.0", + "rustix 0.38.27", + "windows-sys 0.48.0", +] + +[[package]] +name = "async-recursion" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "async-signal" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5" +dependencies = [ + "async-io 2.2.1", + "async-lock 2.8.0", + "atomic-waker", + "cfg-if", + "futures-core", + "futures-io", + "rustix 0.38.27", + "signal-hook-registry", + "slab", + "windows-sys 0.48.0", +] + +[[package]] +name = "async-task" +version = "4.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4eb2cdb97421e01129ccb49169d8279ed21e829929144f4a22a6e54ac549ca1" + [[package]] name = "async-trait" -version = "0.1.68" +version = "0.1.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842" +checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.39", ] [[package]] name = "asynchronous-codec" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06a0daa378f5fd10634e44b0a29b2a87b890657658e072a30d6f26e57ddee182" +checksum = "4057f2c32adbb2fc158e22fb38433c8e9bbf76b75a4732c7c0cbaf695fb65568" dependencies = [ "bytes", "futures-sink", "futures-util", "memchr", - "pin-project-lite 0.2.9", + "pin-project-lite 0.2.13", ] +[[package]] +name = "atomic-take" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8ab6b55fe97976e46f91ddbed8d147d966475dc29b2032757ba47e02376fbc3" + [[package]] name = "atomic-waker" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1181e1e0d1fce796a03db1ae795d67167da795f9cf4a39c37589e85ef57f26d3" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "atty" @@ -467,6 +699,18 @@ dependencies = [ "winapi", ] +[[package]] +name = "auto_impl" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fee3da8ef1276b0bee5dd1c7258010d8fffd31801447323115a25560e1327b89" +dependencies = [ + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "autocfg" version = "1.1.0" @@ -481,19 +725,41 @@ checksum = "7b7e4c2464d97fe331d41de9d5db0def0a96f4d823b8b32a2efd503578988973" [[package]] name = "backtrace" -version = "0.3.67" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca" +checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" dependencies = [ - "addr2line 0.19.0", + "addr2line 0.21.0", "cc", "cfg-if", "libc", - "miniz_oxide 0.6.2", - "object 0.30.4", + "miniz_oxide", + "object 0.32.1", "rustc-demangle", ] +[[package]] +name = "bandersnatch_vrfs" +version = "0.0.1" +source = "git+https://github.com/w3f/ring-vrf?rev=3119f51#3119f51b54b69308abfb0671f6176cb125ae1bf1" +dependencies = [ + "ark-bls12-381", + "ark-ec", + "ark-ed-on-bls12-381-bandersnatch", + "ark-ff", + "ark-scale 0.0.12", + "ark-serialize", + "ark-std", + "dleq_vrf", + "fflonk", + "merlin 3.0.0", + "rand_chacha 0.3.1", + "rand_core 0.6.4", + "ring 0.1.0", + "sha2 0.10.8", + "zeroize", +] + [[package]] name = "base-x" version = "0.2.11" @@ -502,15 +768,9 @@ checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270" [[package]] name = "base16ct" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce" - -[[package]] -name = "base58" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6107fe1be6682a68940da878d9e9f5e90ca5745b3dec9fd1bb393c8777d4f581" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" [[package]] name = "base64" @@ -520,9 +780,9 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" [[package]] name = "base64" -version = "0.21.2" +version = "0.21.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d" +checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" [[package]] name = "base64ct" @@ -532,7 +792,7 @@ checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" [[package]] name = "basilisk" -version = "10.0.1" +version = "11.0.0" dependencies = [ "basilisk-runtime", "clap", @@ -540,7 +800,7 @@ dependencies = [ "cumulus-client-collator", "cumulus-client-consensus-aura", "cumulus-client-consensus-common", - "cumulus-client-consensus-relay-chain", + "cumulus-client-consensus-proposer", "cumulus-client-network", "cumulus-client-service", "cumulus-primitives-core", @@ -557,15 +817,14 @@ dependencies = [ "hydra-dx-build-script-utils", "jsonrpsee", "log", - "pallet-grandpa", "pallet-transaction-payment-rpc", "pallet-transaction-payment-rpc-runtime-api", "parity-scale-codec", "polkadot-cli", - "polkadot-parachain", + "polkadot-parachain-primitives", "polkadot-primitives", "polkadot-service", - "primitives 6.5.0", + "primitives 6.6.0", "sc-basic-authorship", "sc-block-builder", "sc-chain-spec", @@ -574,13 +833,15 @@ dependencies = [ "sc-consensus", "sc-consensus-aura", "sc-executor", - "sc-finality-grandpa", "sc-keystore", "sc-network", "sc-network-common", + "sc-network-sync", + "sc-offchain", "sc-rpc", "sc-rpc-api", "sc-service", + "sc-sysinfo", "sc-telemetry", "sc-tracing", "sc-transaction-pool", @@ -594,7 +855,6 @@ dependencies = [ "sp-consensus", "sp-consensus-aura", "sp-core", - "sp-finality-grandpa", "sp-inherents", "sp-io", "sp-keystore", @@ -607,12 +867,11 @@ dependencies = [ "sp-trie", "substrate-frame-rpc-system", "substrate-prometheus-endpoint", - "try-runtime-cli", ] [[package]] name = "basilisk-runtime" -version = "106.0.0" +version = "108.0.0" dependencies = [ "cumulus-pallet-aura-ext", "cumulus-pallet-dmp-queue", @@ -631,15 +890,17 @@ dependencies = [ "frame-system-rpc-runtime-api", "frame-try-runtime", "hex-literal 0.4.1", + "hydra-dx-math", "hydradx-adapters", "hydradx-traits", - "invarch-xcm-builder", + "log", "orml-benchmarking", "orml-tokens", "orml-traits", "orml-unknown-tokens", "orml-vesting", "orml-xcm", + "orml-xcm-builder-kusama", "orml-xcm-support", "orml-xtokens", "pallet-asset-registry", @@ -650,7 +911,7 @@ dependencies = [ "pallet-collator-selection", "pallet-collective", "pallet-currencies", - "pallet-democracy", + "pallet-democracy 4.0.0-dev", "pallet-duster", "pallet-elections-phragmen", "pallet-ema-oracle", @@ -682,8 +943,9 @@ dependencies = [ "pallet-xyk-liquidity-mining-benchmarking", "parachain-info", "parity-scale-codec", - "polkadot-parachain", - "primitives 6.5.0", + "polkadot-parachain-primitives", + "primitive-types", + "primitives 6.6.0", "scale-info", "serde", "smallvec", @@ -691,7 +953,7 @@ dependencies = [ "sp-block-builder", "sp-consensus-aura", "sp-core", - "sp-externalities", + "sp-externalities 0.19.0 (git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3)", "sp-inherents", "sp-io", "sp-offchain", @@ -702,11 +964,10 @@ dependencies = [ "sp-transaction-pool", "sp-trie", "sp-version", - "substrate-build-script-utils", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", "substrate-wasm-builder", - "xcm", - "xcm-builder", - "xcm-executor", ] [[package]] @@ -719,66 +980,12 @@ dependencies = [ ] [[package]] -name = "beefy-gadget" +name = "binary-merkle-tree" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ - "array-bytes 4.2.0", - "async-trait", - "fnv", - "futures", + "hash-db 0.16.0", "log", - "parity-scale-codec", - "parking_lot 0.12.1", - "sc-client-api", - "sc-consensus", - "sc-keystore", - "sc-network", - "sc-network-common", - "sc-network-gossip", - "sc-utils", - "sp-api", - "sp-application-crypto", - "sp-arithmetic", - "sp-beefy", - "sp-blockchain", - "sp-consensus", - "sp-core", - "sp-keystore", - "sp-mmr-primitives", - "sp-runtime", - "substrate-prometheus-endpoint", - "thiserror", - "wasm-timer", -] - -[[package]] -name = "beefy-gadget-rpc" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" -dependencies = [ - "beefy-gadget", - "futures", - "jsonrpsee", - "log", - "parity-scale-codec", - "parking_lot 0.12.1", - "sc-rpc", - "serde", - "sp-beefy", - "sp-core", - "sp-runtime", - "thiserror", -] - -[[package]] -name = "beefy-merkle-tree" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" -dependencies = [ - "sp-api", - "sp-beefy", - "sp-runtime", ] [[package]] @@ -792,44 +999,51 @@ dependencies = [ [[package]] name = "bindgen" -version = "0.64.0" +version = "0.65.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4243e6031260db77ede97ad86c27e501d646a27ab57b59a574f725d98ab1fb4" +checksum = "cfdf7b466f9a4903edc73f95d6d2bcd5baf8ae620638762244d3f60143643cc5" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cexpr", "clang-sys", "lazy_static", "lazycell", "peeking_take_while", + "prettyplease 0.2.15", "proc-macro2", "quote", "regex", "rustc-hash", "shlex", - "syn 1.0.109", + "syn 2.0.39", ] [[package]] -name = "bit-set" -version = "0.5.3" +name = "bip39" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +checksum = "93f2635620bf0b9d4576eb7bb9a38a55df78bd1205d26fa994b25911a69f212f" dependencies = [ - "bit-vec", + "bitcoin_hashes", ] [[package]] -name = "bit-vec" -version = "0.6.3" +name = "bitcoin_hashes" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" +checksum = "90064b8dee6815a6470d60bad07bbbaee885c0e12d04177138fa3291a01b7bc4" [[package]] name = "bitflags" version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" [[package]] name = "bitvec" @@ -852,40 +1066,49 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "blake2-rfc" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d6d530bdd2d52966a6d03b7a964add7ae1a288d25214066fd4b600f0f796400" +dependencies = [ + "arrayvec 0.4.12", + "constant_time_eq 0.1.5", +] + [[package]] name = "blake2b_simd" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c2f0dc9a68c6317d884f97cc36cf5a3d20ba14ce404227df55e1af708ab04bc" +checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" dependencies = [ "arrayref", - "arrayvec 0.7.2", - "constant_time_eq", + "arrayvec 0.7.4", + "constant_time_eq 0.3.0", ] [[package]] name = "blake2s_simd" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6637f448b9e61dfadbdcbae9a885fadee1f3eaffb1f8d3c1965d3ade8bdfd44f" +checksum = "94230421e395b9920d23df13ea5d77a20e1725331f90fbbf6df6040b33f756ae" dependencies = [ "arrayref", - "arrayvec 0.7.2", - "constant_time_eq", + "arrayvec 0.7.4", + "constant_time_eq 0.3.0", ] [[package]] name = "blake3" -version = "1.3.3" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ae2468a89544a466886840aa467a25b766499f4f04bf7d9fcd10ecee9fccef" +checksum = "0231f06152bf547e9c2b5194f247cd97aacf6dcd8b15d8e5ec0663f64580da87" dependencies = [ "arrayref", - "arrayvec 0.7.2", + "arrayvec 0.7.4", "cc", "cfg-if", - "constant_time_eq", - "digest 0.10.7", + "constant_time_eq 0.3.0", ] [[package]] @@ -894,7 +1117,7 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" dependencies = [ - "block-padding 0.1.5", + "block-padding", "byte-tools", "byteorder", "generic-array 0.12.4", @@ -919,35 +1142,47 @@ dependencies = [ ] [[package]] -name = "block-modes" -version = "0.7.0" +name = "block-padding" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57a0e8073e8baa88212fb5823574c02ebccb395136ba9a164ab89379ec6072f0" +checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" dependencies = [ - "block-padding 0.2.1", - "cipher 0.2.5", + "byte-tools", ] [[package]] -name = "block-padding" -version = "0.1.5" +name = "blocking" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" +checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118" dependencies = [ - "byte-tools", + "async-channel 2.1.1", + "async-lock 3.2.0", + "async-task", + "fastrand 2.0.1", + "futures-io", + "futures-lite 2.1.0", + "piper", + "tracing", ] [[package]] -name = "block-padding" -version = "0.2.1" +name = "bounded-collections" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" +checksum = "ca548b6163b872067dc5eb82fd130c56881435e30367d2073594a3d9744120dd" +dependencies = [ + "log", + "parity-scale-codec", + "scale-info", + "serde", +] [[package]] name = "bounded-vec" -version = "0.6.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3372be4090bf9d4da36bd8ba7ce6ca1669503d0cf6e667236c6df7f053153eb6" +checksum = "68534a48cbf63a4b1323c433cf21238c9ec23711e0df13b08c33e5c2082663ce" dependencies = [ "thiserror", ] @@ -958,11 +1193,20 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" +[[package]] +name = "bs58" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5353f36341f7451062466f0b755b96ac3a9547e4d7f6b70d603fc721a7d7896" +dependencies = [ + "tinyvec", +] + [[package]] name = "bstr" -version = "1.5.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a246e68bb43f6cd9db24bea052a53e40405417c5fb372e3d1a8a7f770a564ef5" +checksum = "542f33a8835a0884b006a0c3df3dadd99c0c3f296ed26c2fdc8028e01ad6230c" dependencies = [ "memchr", "serde", @@ -979,9 +1223,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.13.0" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1" +checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" [[package]] name = "byte-slice-cast" @@ -997,21 +1241,21 @@ checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" [[package]] name = "bytemuck" -version = "1.13.1" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea" +checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6" [[package]] name = "byteorder" -version = "1.4.3" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" [[package]] name = "bzip2-sys" @@ -1026,67 +1270,56 @@ dependencies = [ [[package]] name = "camino" -version = "1.1.4" +version = "1.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c530edf18f37068ac2d977409ed5cd50d53d73bc653c7647b48eb78976ac9ae2" +checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c" dependencies = [ "serde", ] [[package]] name = "cargo-lock" -version = "4.0.1" +version = "9.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8504b63dd1249fd1745b7b4ef9b6f7b107ddeb3c95370043c7dbcc38653a2679" +checksum = "e11c675378efb449ed3ce8de78d75d0d80542fc98487c26aba28eb3b82feac72" dependencies = [ - "gumdrop", - "petgraph 0.5.1", - "semver 0.9.0", + "semver 1.0.20", "serde", - "toml", + "toml 0.7.8", "url", ] [[package]] name = "cargo-platform" -version = "0.1.2" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbdb825da8a5df079a43676dbe042702f1707b1109f713a01420fbb4cc71fa27" +checksum = "e34637b3140142bdf929fb439e8aa4ebad7651ebf7b1080b3930aa16ac1459ff" dependencies = [ "serde", ] [[package]] name = "cargo_metadata" -version = "0.14.2" +version = "0.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4acbb09d9ee8e23699b9634375c72795d095bf268439da88562cf9b501f181fa" +checksum = "eee4243f1f26fc7a42710e7439c149e2b10b05472f88090acce52632f231a73a" dependencies = [ "camino", "cargo-platform", - "semver 1.0.17", + "semver 1.0.20", "serde", "serde_json", + "thiserror", ] [[package]] name = "cc" -version = "1.0.79" +version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" +checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" dependencies = [ "jobserver", -] - -[[package]] -name = "ccm" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aca1a8fbc20b50ac9673ff014abfb2b5f4085ee1a850d408f14a159c5853ac7" -dependencies = [ - "aead 0.3.2", - "cipher 0.2.5", - "subtle", + "libc", ] [[package]] @@ -1100,9 +1333,9 @@ dependencies = [ [[package]] name = "cfg-expr" -version = "0.10.3" +version = "0.15.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0aacacf4d96c24b2ad6eb8ee6df040e4f27b0d0b39a5710c30091baa830485db" +checksum = "03915af431787e6ffdcc74c645077518c6b6e01f80b761e0fbbfa288536311b3" dependencies = [ "smallvec", ] @@ -1121,75 +1354,55 @@ checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" [[package]] name = "chacha20" -version = "0.8.2" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c80e5460aa66fe3b91d40bcbdab953a597b60053e34d684ac6903f863b680a6" +checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" dependencies = [ "cfg-if", - "cipher 0.3.0", + "cipher", "cpufeatures", - "zeroize", ] [[package]] name = "chacha20poly1305" -version = "0.9.1" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a18446b09be63d457bbec447509e85f662f32952b035ce892290396bc0b0cff5" +checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35" dependencies = [ - "aead 0.4.3", + "aead", "chacha20", - "cipher 0.3.0", + "cipher", "poly1305", "zeroize", ] [[package]] name = "chrono" -version = "0.4.26" +version = "0.4.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5" +checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" dependencies = [ "android-tzdata", "iana-time-zone", "js-sys", "num-traits", - "time 0.1.45", "wasm-bindgen", - "winapi", + "windows-targets 0.48.5", ] [[package]] name = "cid" -version = "0.8.6" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6ed9c8b2d17acb8110c46f1da5bf4a696d745e1474a16db0cd2b49cd0249bf2" +checksum = "b9b68e3193982cd54187d71afdb2a271ad4cf8af157858e9cb911b91321de143" dependencies = [ "core2", "multibase", - "multihash 0.16.3", + "multihash", "serde", "unsigned-varint", ] -[[package]] -name = "cipher" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12f8e7987cbd042a63249497f41aed09f8e65add917ea6566effbc56578d6801" -dependencies = [ - "generic-array 0.14.7", -] - -[[package]] -name = "cipher" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7" -dependencies = [ - "generic-array 0.14.7", -] - [[package]] name = "cipher" version = "0.4.4" @@ -1198,6 +1411,7 @@ checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" dependencies = [ "crypto-common", "inout", + "zeroize", ] [[package]] @@ -1222,51 +1436,49 @@ dependencies = [ [[package]] name = "clap" -version = "4.3.2" +version = "4.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "401a4694d2bf92537b6867d94de48c4842089645fdcdf6c71865b175d836e9c2" +checksum = "bfaff671f6b22ca62406885ece523383b9b64022e341e53e009a62ebc47a45f2" dependencies = [ "clap_builder", "clap_derive", - "once_cell", ] [[package]] name = "clap_builder" -version = "4.3.1" +version = "4.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72394f3339a76daf211e57d4bcb374410f3965dcc606dd0e03738c7888766980" +checksum = "a216b506622bb1d316cd51328dce24e07bdff4a6128a47c7e7fad11878d5adbb" dependencies = [ "anstream", "anstyle", - "bitflags", "clap_lex", "strsim", ] [[package]] name = "clap_derive" -version = "4.3.2" +version = "4.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8cd2b2a819ad6eec39e8f1d6b53001af1e5469f8c177579cdaeb313115b825f" +checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442" dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.39", ] [[package]] name = "clap_lex" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b" +checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1" [[package]] name = "coarsetime" -version = "0.1.23" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a90d114103adbc625300f346d4d09dfb4ab1c4a8df6868435dd903392ecf4354" +checksum = "71367d3385c716342014ad17e3d19f7788ae514885a1f4c24f500260fb365e1a" dependencies = [ "libc", "once_cell", @@ -1292,35 +1504,94 @@ checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" [[package]] name = "comfy-table" -version = "6.2.0" +version = "7.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e959d788268e3bf9d35ace83e81b124190378e4c91c9067524675e33394b8ba" +checksum = "7c64043d6c7b7a4c58e39e7efccfdea7b93d885a795d0c054a69dbbf4dd52686" dependencies = [ - "strum", - "strum_macros", + "strum 0.25.0", + "strum_macros 0.25.3", "unicode-width", ] +[[package]] +name = "common" +version = "0.1.0" +source = "git+https://github.com/w3f/ring-proof?rev=0e948f3#0e948f3c28cbacecdd3020403c4841c0eb339213" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-poly", + "ark-serialize", + "ark-std", + "fflonk", + "merlin 3.0.0", +] + +[[package]] +name = "common-path" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2382f75942f4b3be3690fe4f86365e9c853c1587d6ee58212cebf6e2a9ccd101" + [[package]] name = "concurrent-queue" -version = "2.2.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62ec6771ecfa0762d24683ee5a32ad78487a3d3afdc0fb8cae19d2c5deb50b7c" +checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363" dependencies = [ "crossbeam-utils", ] +[[package]] +name = "console" +version = "0.15.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c926e00cc70edefdc64d3a5ff31cc65bb97a3460097762bd23afb4d8145fccf8" +dependencies = [ + "encode_unicode", + "lazy_static", + "libc", + "unicode-width", + "windows-sys 0.45.0", +] + [[package]] name = "const-oid" -version = "0.9.2" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f" + +[[package]] +name = "const-random" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aaf16c9c2c612020bcfd042e170f6e32de9b9d75adb5277cdbbd2e2c8c8299a" +dependencies = [ + "const-random-macro", +] + +[[package]] +name = "const-random-macro" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "520fbf3c07483f94e3e3ca9d0cfd913d7718ef2483d2cfd91c0d9e91474ab913" +checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" +dependencies = [ + "getrandom 0.2.11", + "once_cell", + "tiny-keccak", +] [[package]] name = "constant_time_eq" -version = "0.2.5" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" + +[[package]] +name = "constant_time_eq" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13418e745008f7349ec7e449155f419a61b92b58a99cc3616942b926825ec76b" +checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" [[package]] name = "convert_case" @@ -1330,9 +1601,9 @@ checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" [[package]] name = "core-foundation" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" dependencies = [ "core-foundation-sys", "libc", @@ -1340,9 +1611,9 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.4" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" [[package]] name = "core2" @@ -1374,36 +1645,36 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.7" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e4c1eaa2012c47becbbad2ab175484c2a84d1185b566fb2cc5b8707343dfe58" +checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0" dependencies = [ "libc", ] [[package]] name = "cranelift-bforest" -version = "0.88.2" +version = "0.95.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52056f6d0584484b57fa6c1a65c1fcb15f3780d8b6a758426d9e3084169b2ddd" +checksum = "1277fbfa94bc82c8ec4af2ded3e639d49ca5f7f3c7eeab2c66accd135ece4e70" dependencies = [ "cranelift-entity", ] [[package]] name = "cranelift-codegen" -version = "0.88.2" +version = "0.95.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18fed94c8770dc25d01154c3ffa64ed0b3ba9d583736f305fed7beebe5d9cf74" +checksum = "c6e8c31ad3b2270e9aeec38723888fe1b0ace3bea2b06b3f749ccf46661d3220" dependencies = [ - "arrayvec 0.7.2", "bumpalo", "cranelift-bforest", "cranelift-codegen-meta", "cranelift-codegen-shared", "cranelift-entity", "cranelift-isle", - "gimli 0.26.2", + "gimli 0.27.3", + "hashbrown 0.13.2", "log", "regalloc2", "smallvec", @@ -1412,33 +1683,33 @@ dependencies = [ [[package]] name = "cranelift-codegen-meta" -version = "0.88.2" +version = "0.95.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c451b81faf237d11c7e4f3165eeb6bac61112762c5cfe7b4c0fb7241474358f" +checksum = "c8ac5ac30d62b2d66f12651f6b606dbdfd9c2cfd0908de6b387560a277c5c9da" dependencies = [ "cranelift-codegen-shared", ] [[package]] name = "cranelift-codegen-shared" -version = "0.88.2" +version = "0.95.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7c940133198426d26128f08be2b40b0bd117b84771fd36798969c4d712d81fc" +checksum = "dd82b8b376247834b59ed9bdc0ddeb50f517452827d4a11bccf5937b213748b8" [[package]] name = "cranelift-entity" -version = "0.88.2" +version = "0.95.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87a0f1b2fdc18776956370cf8d9b009ded3f855350c480c1c52142510961f352" +checksum = "40099d38061b37e505e63f89bab52199037a72b931ad4868d9089ff7268660b0" dependencies = [ "serde", ] [[package]] name = "cranelift-frontend" -version = "0.88.2" +version = "0.95.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34897538b36b216cc8dd324e73263596d51b8cf610da6498322838b2546baf8a" +checksum = "64a25d9d0a0ae3079c463c34115ec59507b4707175454f0eee0891e83e30e82d" dependencies = [ "cranelift-codegen", "log", @@ -1448,15 +1719,15 @@ dependencies = [ [[package]] name = "cranelift-isle" -version = "0.88.2" +version = "0.95.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b2629a569fae540f16a76b70afcc87ad7decb38dc28fa6c648ac73b51e78470" +checksum = "80de6a7d0486e4acbd5f9f87ec49912bf4c8fb6aea00087b989685460d4469ba" [[package]] name = "cranelift-native" -version = "0.88.2" +version = "0.95.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20937dab4e14d3e225c5adfc9c7106bafd4ac669bdb43027b911ff794c6fb318" +checksum = "bb6b03e0e03801c4b3fd8ce0758a94750c07a44e7944cc0ffbf0d3f2e7c79b00" dependencies = [ "cranelift-codegen", "libc", @@ -1465,35 +1736,20 @@ dependencies = [ [[package]] name = "cranelift-wasm" -version = "0.88.2" +version = "0.95.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80fc2288957a94fd342a015811479de1837850924166d1f1856d8406e6f3609b" +checksum = "ff3220489a3d928ad91e59dd7aeaa8b3de18afb554a6211213673a71c90737ac" dependencies = [ "cranelift-codegen", "cranelift-entity", "cranelift-frontend", - "itertools", + "itertools 0.10.5", "log", "smallvec", "wasmparser", "wasmtime-types", ] -[[package]] -name = "crc" -version = "3.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86ec7a15cbe22e59248fc7eadb1907dab5ba09372595da4d73dd805ed4417dfe" -dependencies = [ - "crc-catalog", -] - -[[package]] -name = "crc-catalog" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cace84e55f07e7301bae1c519df89cdad8cc3cd868413d3fdbdeca9ff3db484" - [[package]] name = "crc32fast" version = "1.3.2" @@ -1503,16 +1759,6 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "crossbeam-channel" -version = "0.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" -dependencies = [ - "cfg-if", - "crossbeam-utils", -] - [[package]] name = "crossbeam-deque" version = "0.8.3" @@ -1526,14 +1772,14 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.14" +version = "0.9.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46bd5f3f85273295a9d14aedfb86f6aadbff6d8f5295c4a9edb08e819dcf5695" +checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" dependencies = [ "autocfg", "cfg-if", "crossbeam-utils", - "memoffset 0.8.0", + "memoffset 0.9.0", "scopeguard", ] @@ -1549,9 +1795,9 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.15" +version = "0.8.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b" +checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" dependencies = [ "cfg-if", ] @@ -1564,9 +1810,9 @@ checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" [[package]] name = "crypto-bigint" -version = "0.4.9" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef2b4b23cddf68b89b8f8069890e8c270d54e2d5fe1b143820234805e4cb17ef" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" dependencies = [ "generic-array 0.14.7", "rand_core 0.6.4", @@ -1605,43 +1851,25 @@ dependencies = [ "subtle", ] -[[package]] -name = "ctor" -version = "0.1.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096" -dependencies = [ - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ctr" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "049bb91fb4aaf0e3c7efa6cd5ef877dbbbd15b39dad06d9948de4ec8a75761ea" -dependencies = [ - "cipher 0.3.0", -] - [[package]] name = "ctr" version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" dependencies = [ - "cipher 0.4.4", + "cipher", ] [[package]] name = "cumulus-client-cli" version = "0.1.0" -source = "git+https://github.com/galacticcouncil/cumulus.git?branch=feat/xcmp-defer-xcm-v9-38#a03c6bd502c64900c29df35c76ba1504debc5169" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "clap", "parity-scale-codec", "sc-chain-spec", "sc-cli", + "sc-client-api", "sc-service", "sp-core", "sp-runtime", @@ -1651,7 +1879,7 @@ dependencies = [ [[package]] name = "cumulus-client-collator" version = "0.1.0" -source = "git+https://github.com/galacticcouncil/cumulus.git?branch=feat/xcmp-defer-xcm-v9-38#a03c6bd502c64900c29df35c76ba1504debc5169" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", @@ -1674,18 +1902,29 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-aura" version = "0.1.0" -source = "git+https://github.com/galacticcouncil/cumulus.git?branch=feat/xcmp-defer-xcm-v9-38#a03c6bd502c64900c29df35c76ba1504debc5169" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "async-trait", + "cumulus-client-collator", "cumulus-client-consensus-common", + "cumulus-client-consensus-proposer", + "cumulus-primitives-aura", "cumulus-primitives-core", + "cumulus-primitives-parachain-inherent", + "cumulus-relay-chain-interface", "futures", "parity-scale-codec", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-overseer", + "polkadot-primitives", "sc-client-api", "sc-consensus", "sc-consensus-aura", + "sc-consensus-babe", "sc-consensus-slots", "sc-telemetry", + "schnellru", "sp-api", "sp-application-crypto", "sp-block-builder", @@ -1696,6 +1935,8 @@ dependencies = [ "sp-inherents", "sp-keystore", "sp-runtime", + "sp-state-machine", + "sp-timestamp", "substrate-prometheus-endpoint", "tracing", ] @@ -1703,7 +1944,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" version = "0.1.0" -source = "git+https://github.com/galacticcouncil/cumulus.git?branch=feat/xcmp-defer-xcm-v9-38#a03c6bd502c64900c29df35c76ba1504debc5169" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "async-trait", "cumulus-client-pov-recovery", @@ -1716,40 +1957,38 @@ dependencies = [ "polkadot-primitives", "sc-client-api", "sc-consensus", + "sc-consensus-babe", + "schnellru", "sp-blockchain", "sp-consensus", + "sp-consensus-slots", + "sp-core", "sp-runtime", + "sp-timestamp", "sp-trie", + "substrate-prometheus-endpoint", "tracing", ] [[package]] -name = "cumulus-client-consensus-relay-chain" +name = "cumulus-client-consensus-proposer" version = "0.1.0" -source = "git+https://github.com/galacticcouncil/cumulus.git?branch=feat/xcmp-defer-xcm-v9-38#a03c6bd502c64900c29df35c76ba1504debc5169" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ + "anyhow", "async-trait", - "cumulus-client-consensus-common", - "cumulus-primitives-core", - "cumulus-relay-chain-interface", - "futures", - "parking_lot 0.12.1", - "sc-consensus", - "sp-api", - "sp-block-builder", - "sp-blockchain", + "cumulus-primitives-parachain-inherent", "sp-consensus", - "sp-core", "sp-inherents", "sp-runtime", - "substrate-prometheus-endpoint", - "tracing", + "sp-state-machine", + "thiserror", ] [[package]] name = "cumulus-client-network" version = "0.1.0" -source = "git+https://github.com/galacticcouncil/cumulus.git?branch=feat/xcmp-defer-xcm-v9-38#a03c6bd502c64900c29df35c76ba1504debc5169" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "async-trait", "cumulus-relay-chain-interface", @@ -1758,7 +1997,7 @@ dependencies = [ "parity-scale-codec", "parking_lot 0.12.1", "polkadot-node-primitives", - "polkadot-parachain", + "polkadot-parachain-primitives", "polkadot-primitives", "sc-client-api", "sp-blockchain", @@ -1772,8 +2011,9 @@ dependencies = [ [[package]] name = "cumulus-client-pov-recovery" version = "0.1.0" -source = "git+https://github.com/galacticcouncil/cumulus.git?branch=feat/xcmp-defer-xcm-v9-38#a03c6bd502c64900c29df35c76ba1504debc5169" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ + "async-trait", "cumulus-primitives-core", "cumulus-relay-chain-interface", "futures", @@ -1795,39 +2035,48 @@ dependencies = [ [[package]] name = "cumulus-client-service" version = "0.1.0" -source = "git+https://github.com/galacticcouncil/cumulus.git?branch=feat/xcmp-defer-xcm-v9-38#a03c6bd502c64900c29df35c76ba1504debc5169" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "cumulus-client-cli", "cumulus-client-collator", "cumulus-client-consensus-common", + "cumulus-client-network", "cumulus-client-pov-recovery", "cumulus-primitives-core", "cumulus-relay-chain-inprocess-interface", "cumulus-relay-chain-interface", "cumulus-relay-chain-minimal-node", "futures", - "parking_lot 0.12.1", "polkadot-primitives", "sc-client-api", "sc-consensus", + "sc-network", + "sc-network-sync", + "sc-network-transactions", + "sc-rpc", "sc-service", "sc-sysinfo", "sc-telemetry", + "sc-transaction-pool", + "sc-utils", "sp-api", "sp-blockchain", "sp-consensus", "sp-core", "sp-runtime", + "sp-transaction-pool", ] [[package]] name = "cumulus-pallet-aura-ext" version = "0.1.0" -source = "git+https://github.com/galacticcouncil/cumulus.git?branch=feat/xcmp-defer-xcm-v9-38#a03c6bd502c64900c29df35c76ba1504debc5169" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ + "cumulus-pallet-parachain-system", "frame-support", "frame-system", "pallet-aura", + "pallet-timestamp", "parity-scale-codec", "scale-info", "sp-application-crypto", @@ -1839,7 +2088,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-dmp-queue" version = "0.1.0" -source = "git+https://github.com/galacticcouncil/cumulus.git?branch=feat/xcmp-defer-xcm-v9-38#a03c6bd502c64900c29df35c76ba1504debc5169" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1850,13 +2099,13 @@ dependencies = [ "sp-io", "sp-runtime", "sp-std", - "xcm", + "staging-xcm", ] [[package]] name = "cumulus-pallet-parachain-system" version = "0.1.0" -source = "git+https://github.com/galacticcouncil/cumulus.git?branch=feat/xcmp-defer-xcm-v9-38#a03c6bd502c64900c29df35c76ba1504debc5169" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "bytes", "cumulus-pallet-parachain-system-proc-macro", @@ -1868,10 +2117,10 @@ dependencies = [ "impl-trait-for-tuples", "log", "parity-scale-codec", - "polkadot-parachain", + "polkadot-parachain-primitives", "scale-info", "sp-core", - "sp-externalities", + "sp-externalities 0.19.0 (git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3)", "sp-inherents", "sp-io", "sp-runtime", @@ -1879,24 +2128,25 @@ dependencies = [ "sp-std", "sp-trie", "sp-version", - "xcm", + "staging-xcm", + "trie-db", ] [[package]] name = "cumulus-pallet-parachain-system-proc-macro" version = "0.1.0" -source = "git+https://github.com/galacticcouncil/cumulus.git?branch=feat/xcmp-defer-xcm-v9-38#a03c6bd502c64900c29df35c76ba1504debc5169" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ - "proc-macro-crate", + "proc-macro-crate 1.3.1", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.39", ] [[package]] name = "cumulus-pallet-xcm" version = "0.1.0" -source = "git+https://github.com/galacticcouncil/cumulus.git?branch=feat/xcmp-defer-xcm-v9-38#a03c6bd502c64900c29df35c76ba1504debc5169" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1906,13 +2156,13 @@ dependencies = [ "sp-io", "sp-runtime", "sp-std", - "xcm", + "staging-xcm", ] [[package]] name = "cumulus-pallet-xcmp-queue" -version = "0.2.0" -source = "git+https://github.com/galacticcouncil/cumulus.git?branch=feat/xcmp-defer-xcm-v9-38#a03c6bd502c64900c29df35c76ba1504debc5169" +version = "0.1.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "cumulus-primitives-core", "frame-benchmarking", @@ -1927,30 +2177,45 @@ dependencies = [ "sp-io", "sp-runtime", "sp-std", - "xcm", - "xcm-executor", + "staging-xcm", + "staging-xcm-executor", +] + +[[package]] +name = "cumulus-primitives-aura" +version = "0.1.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" +dependencies = [ + "parity-scale-codec", + "polkadot-core-primitives", + "polkadot-primitives", + "sp-api", + "sp-consensus-aura", + "sp-runtime", + "sp-std", ] [[package]] name = "cumulus-primitives-core" version = "0.1.0" -source = "git+https://github.com/galacticcouncil/cumulus.git?branch=feat/xcmp-defer-xcm-v9-38#a03c6bd502c64900c29df35c76ba1504debc5169" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "parity-scale-codec", "polkadot-core-primitives", - "polkadot-parachain", + "polkadot-parachain-primitives", "polkadot-primitives", + "scale-info", "sp-api", "sp-runtime", "sp-std", "sp-trie", - "xcm", + "staging-xcm", ] [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/galacticcouncil/cumulus.git?branch=feat/xcmp-defer-xcm-v9-38#a03c6bd502c64900c29df35c76ba1504debc5169" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1973,7 +2238,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-timestamp" version = "0.1.0" -source = "git+https://github.com/galacticcouncil/cumulus.git?branch=feat/xcmp-defer-xcm-v9-38#a03c6bd502c64900c29df35c76ba1504debc5169" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "cumulus-primitives-core", "futures", @@ -1986,7 +2251,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-utility" version = "0.1.0" -source = "git+https://github.com/galacticcouncil/cumulus.git?branch=feat/xcmp-defer-xcm-v9-38#a03c6bd502c64900c29df35c76ba1504debc5169" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1996,15 +2261,15 @@ dependencies = [ "sp-io", "sp-runtime", "sp-std", - "xcm", - "xcm-builder", - "xcm-executor", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", ] [[package]] name = "cumulus-relay-chain-inprocess-interface" version = "0.1.0" -source = "git+https://github.com/galacticcouncil/cumulus.git?branch=feat/xcmp-defer-xcm-v9-38#a03c6bd502c64900c29df35c76ba1504debc5169" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2012,7 +2277,6 @@ dependencies = [ "futures", "futures-timer", "polkadot-cli", - "polkadot-client", "polkadot-service", "sc-cli", "sc-client-api", @@ -2029,7 +2293,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-interface" version = "0.1.0" -source = "git+https://github.com/galacticcouncil/cumulus.git?branch=feat/xcmp-defer-xcm-v9-38#a03c6bd502c64900c29df35c76ba1504debc5169" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2042,74 +2306,77 @@ dependencies = [ "sp-blockchain", "sp-state-machine", "thiserror", - "tokio", ] [[package]] name = "cumulus-relay-chain-minimal-node" version = "0.1.0" -source = "git+https://github.com/galacticcouncil/cumulus.git?branch=feat/xcmp-defer-xcm-v9-38#a03c6bd502c64900c29df35c76ba1504debc5169" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ - "array-bytes 6.1.0", + "array-bytes", "async-trait", "cumulus-primitives-core", "cumulus-relay-chain-interface", "cumulus-relay-chain-rpc-interface", "futures", - "lru 0.9.0", + "polkadot-availability-recovery", + "polkadot-collator-protocol", "polkadot-core-primitives", - "polkadot-network-bridge 0.9.38 (git+https://github.com/paritytech/polkadot?branch=release-v0.9.38)", + "polkadot-network-bridge", + "polkadot-node-collation-generation", + "polkadot-node-core-runtime-api", "polkadot-node-network-protocol", "polkadot-node-subsystem-util", "polkadot-overseer", "polkadot-primitives", - "polkadot-service", "sc-authority-discovery", - "sc-client-api", - "sc-consensus", - "sc-keystore", "sc-network", "sc-network-common", "sc-service", - "sc-telemetry", "sc-tracing", - "sc-transaction-pool", - "sc-transaction-pool-api", + "sc-utils", + "schnellru", "sp-api", - "sp-blockchain", "sp-consensus", "sp-consensus-babe", "sp-runtime", - "tokio", "tracing", - "url", ] [[package]] name = "cumulus-relay-chain-rpc-interface" version = "0.1.0" -source = "git+https://github.com/galacticcouncil/cumulus.git?branch=feat/xcmp-defer-xcm-v9-38#a03c6bd502c64900c29df35c76ba1504debc5169" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "async-trait", "cumulus-primitives-core", "cumulus-relay-chain-interface", + "either", "futures", "futures-timer", "jsonrpsee", - "lru 0.9.0", "parity-scale-codec", - "polkadot-service", + "pin-project", + "polkadot-overseer", + "rand 0.8.5", "sc-client-api", "sc-rpc-api", + "sc-service", + "schnellru", "serde", "serde_json", + "smoldot", + "smoldot-light", "sp-api", "sp-authority-discovery", "sp-consensus-babe", "sp-core", + "sp-runtime", "sp-state-machine", "sp-storage", + "thiserror", "tokio", + "tokio-util", "tracing", "url", ] @@ -2117,7 +2384,7 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" version = "0.1.0" -source = "git+https://github.com/galacticcouncil/cumulus.git?branch=feat/xcmp-defer-xcm-v9-38#a03c6bd502c64900c29df35c76ba1504debc5169" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", @@ -2125,6 +2392,7 @@ dependencies = [ "sp-runtime", "sp-state-machine", "sp-std", + "sp-trie", ] [[package]] @@ -2155,23 +2423,50 @@ dependencies = [ [[package]] name = "curve25519-dalek" -version = "4.0.0-rc.1" +version = "4.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d4ba9852b42210c7538b75484f9daa0655e9a3ac04f693747bb0f02cf3cfe16" +checksum = "e89b8c6a2e4b1f45971ad09761aafb85514a84744b67a95e32c3cc1352d1f65c" dependencies = [ "cfg-if", + "cpufeatures", + "curve25519-dalek-derive", + "digest 0.10.7", "fiat-crypto", - "packed_simd_2", - "platforms 3.0.2", + "platforms 3.2.0", + "rustc_version", "subtle", "zeroize", ] +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "curve25519-dalek-ng" +version = "4.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c359b7249347e46fb28804470d071c921156ad62b3eef5d34e2ba867533dec8" +dependencies = [ + "byteorder", + "digest 0.9.0", + "rand_core 0.6.4", + "subtle-ng", + "zeroize", +] + [[package]] name = "cxx" -version = "1.0.95" +version = "1.0.110" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "109308c20e8445959c2792e81871054c6a17e6976489a93d2769641a2ba5839c" +checksum = "7129e341034ecb940c9072817cd9007974ea696844fc4dd582dc1653a7fbe2e8" dependencies = [ "cc", "cxxbridge-flags", @@ -2181,9 +2476,9 @@ dependencies = [ [[package]] name = "cxx-build" -version = "1.0.95" +version = "1.0.110" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daf4c6755cdf10798b97510e0e2b3edb9573032bd9379de8fffa59d68165494f" +checksum = "a2a24f3f5f8eed71936f21e570436f024f5c2e25628f7496aa7ccd03b90109d5" dependencies = [ "cc", "codespan-reporting", @@ -2191,72 +2486,37 @@ dependencies = [ "proc-macro2", "quote", "scratch", - "syn 2.0.18", + "syn 2.0.39", ] [[package]] name = "cxxbridge-flags" -version = "1.0.95" +version = "1.0.110" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "882074421238e84fe3b4c65d0081de34e5b323bf64555d3e61991f76eb64a7bb" +checksum = "06fdd177fc61050d63f67f5bd6351fac6ab5526694ea8e359cd9cd3b75857f44" [[package]] name = "cxxbridge-macro" -version = "1.0.95" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a076022ece33e7686fb76513518e219cca4fce5750a8ae6d1ce6c0f48fd1af9" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.18", -] - -[[package]] -name = "darling" -version = "0.14.4" +version = "1.0.110" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" +checksum = "587663dd5fb3d10932c8aecfe7c844db1bcf0aee93eeab08fac13dc1212c2e7f" dependencies = [ - "darling_core", - "darling_macro", -] - -[[package]] -name = "darling_core" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" -dependencies = [ - "fnv", - "ident_case", "proc-macro2", "quote", - "strsim", - "syn 1.0.109", -] - -[[package]] -name = "darling_macro" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" -dependencies = [ - "darling_core", - "quote", - "syn 1.0.109", + "syn 2.0.39", ] [[package]] name = "data-encoding" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308" +checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5" [[package]] name = "data-encoding-macro" -version = "0.1.13" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c904b33cc60130e1aeea4956ab803d08a3f4a0ca82d64ed757afac3891f2bb99" +checksum = "20c01c06f5f429efdf2bae21eb67c28b3df3cf85b7dd2d8ef09c0838dac5d33e" dependencies = [ "data-encoding", "data-encoding-macro-internal", @@ -2264,9 +2524,9 @@ dependencies = [ [[package]] name = "data-encoding-macro-internal" -version = "0.1.11" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fdf3fce3ce863539ec1d7fd1b6dcc3c645663376b43ed376bbf887733e4f772" +checksum = "0047d07f2c89b17dd631c80450d69841a6b5d7fb17278cbc43d7e4cfcf2576f3" dependencies = [ "data-encoding", "syn 1.0.109", @@ -2274,22 +2534,21 @@ dependencies = [ [[package]] name = "der" -version = "0.6.1" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de" +checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" dependencies = [ "const-oid", - "pem-rfc7468", "zeroize", ] [[package]] name = "der-parser" -version = "7.0.0" +version = "8.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe398ac75057914d7d07307bf67dc7f3f574a26783b4fc7805a20ffa9f506e82" +checksum = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e" dependencies = [ - "asn1-rs 0.3.1", + "asn1-rs", "displaydoc", "nom", "num-bigint", @@ -2298,17 +2557,12 @@ dependencies = [ ] [[package]] -name = "der-parser" -version = "8.2.0" +name = "deranged" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e" +checksum = "8eb30d70a07a3b04884d2677f06bec33509dc67ca60d92949e5535352d3191dc" dependencies = [ - "asn1-rs 0.5.2", - "displaydoc", - "nom", - "num-bigint", - "num-traits", - "rusticata-macros", + "powerfmt", ] [[package]] @@ -2333,37 +2587,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "derive_builder" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d07adf7be193b71cc36b193d0f5fe60b918a3a9db4dad0449f57bcfd519704a3" -dependencies = [ - "derive_builder_macro", -] - -[[package]] -name = "derive_builder_core" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f91d4cfa921f1c05904dc3c57b4a32c38aed3340cce209f3a6fd1478babafc4" -dependencies = [ - "darling", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "derive_builder_macro" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f0314b72bed045f3a68671b3c86328386762c93f82d98c65c3cb5e5f573dd68" -dependencies = [ - "derive_builder_core", - "syn 1.0.109", -] - [[package]] name = "derive_more" version = "0.99.17" @@ -2414,6 +2637,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer 0.10.4", + "const-oid", "crypto-common", "subtle", ] @@ -2467,7 +2691,51 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.39", +] + +[[package]] +name = "dleq_vrf" +version = "0.0.2" +source = "git+https://github.com/w3f/ring-vrf?rev=3119f51#3119f51b54b69308abfb0671f6176cb125ae1bf1" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-scale 0.0.10", + "ark-secret-scalar", + "ark-serialize", + "ark-std", + "ark-transcript", + "arrayvec 0.7.4", + "rand_core 0.6.4", + "zeroize", +] + +[[package]] +name = "docify" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cc4fd38aaa9fb98ac70794c82a00360d1e165a87fbf96a8a91f9dfc602aaee2" +dependencies = [ + "docify_macros", +] + +[[package]] +name = "docify_macros" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63fa215f3a0d40fb2a221b3aa90d8e1fbb8379785a990cb60d62ac71ebdc6460" +dependencies = [ + "common-path", + "derive-syn-parse", + "once_cell", + "proc-macro2", + "quote", + "regex", + "syn 2.0.39", + "termcolor", + "toml 0.8.2", + "walkdir", ] [[package]] @@ -2484,9 +2752,9 @@ checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" [[package]] name = "dtoa" -version = "1.0.6" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65d09067bfacaa79114679b279d7f5885b53295b1e2cfb4e79c8e4bd3d633169" +checksum = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653" [[package]] name = "dyn-clonable" @@ -2511,42 +2779,46 @@ dependencies = [ [[package]] name = "dyn-clone" -version = "1.0.11" +version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68b0cf012f1230e43cd00ebb729c6bb58707ecfa8ad08b52ef3a4ccd2697fc30" +checksum = "545b22097d44f8a9581187cdf93de7a71e4722bf51200cfaba810865b49a495d" [[package]] name = "ecdsa" -version = "0.14.8" +version = "0.16.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "413301934810f597c1d19ca71c8710e99a3f1ba28a0d2ebc01551a2daeea3c5c" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" dependencies = [ "der", + "digest 0.10.7", "elliptic-curve", "rfc6979", "signature", + "spki", ] [[package]] name = "ed25519" -version = "1.5.3" +version = "2.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91cff35c70bba8a626e3185d8cd48cc11b5437e1a5bcd15b9b5fa3c64b6dfee7" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" dependencies = [ + "pkcs8", "signature", ] [[package]] name = "ed25519-dalek" -version = "1.0.1" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d" +checksum = "1f628eaec48bfd21b865dc2950cfa014450c01d2fa2b69a86c2fd5844ec523c0" dependencies = [ - "curve25519-dalek 3.2.0", + "curve25519-dalek 4.1.1", "ed25519", - "rand 0.7.3", + "rand_core 0.6.4", "serde", - "sha2 0.9.9", + "sha2 0.10.8", + "subtle", "zeroize", ] @@ -2564,27 +2836,39 @@ dependencies = [ "zeroize", ] +[[package]] +name = "ed25519-zebra" +version = "4.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d9ce6874da5d4415896cd45ffbc4d1cfc0c4f9c079427bd870742c30f2f65a9" +dependencies = [ + "curve25519-dalek 4.1.1", + "ed25519", + "hashbrown 0.14.3", + "hex", + "rand_core 0.6.4", + "sha2 0.10.8", + "zeroize", +] + [[package]] name = "either" -version = "1.8.1" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" +checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" [[package]] name = "elliptic-curve" -version = "0.12.3" +version = "0.13.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7bb888ab5300a19b8e5bceef25ac745ad065f3c9f7efc6de1b91958110891d3" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" dependencies = [ "base16ct", "crypto-bigint", - "der", "digest 0.10.7", "ff", "generic-array 0.14.7", "group", - "hkdf", - "pem-rfc7468", "pkcs8", "rand_core 0.6.4", "sec1", @@ -2592,6 +2876,12 @@ dependencies = [ "zeroize", ] +[[package]] +name = "encode_unicode" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" + [[package]] name = "enum-as-inner" version = "0.5.1" @@ -2606,33 +2896,33 @@ dependencies = [ [[package]] name = "enumflags2" -version = "0.7.7" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c041f5090df68b32bcd905365fd51769c8b9d553fe87fde0b683534f10c01bd2" +checksum = "5998b4f30320c9d93aed72f63af821bfdac50465b75428fce77b48ec482c3939" dependencies = [ "enumflags2_derive", ] [[package]] name = "enumflags2_derive" -version = "0.7.7" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e9a1f9f7d83e59740248a6e14ecf93929ade55027844dfcea78beafccc15745" +checksum = "f95e2801cd355d4a1a3e3953ce6ee5ae9603a5c833455343a8bfe3f44d418246" dependencies = [ "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.39", ] [[package]] name = "enumn" -version = "0.1.8" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48016319042fb7c87b78d2993084a831793a897a5cd1a2a67cab9d1eeb4b7d76" +checksum = "c2ad8cef1d801a4686bfd8919f0b30eac4c8e48968c437a6405ded4fb5272d2b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.39", ] [[package]] @@ -2650,9 +2940,9 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0" +checksum = "95b3f3e67048839cb0d0781f445682a35113da7121f7c949db0e2be96a4fbece" dependencies = [ "humantime", "is-terminal", @@ -2667,36 +2957,69 @@ version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e48c92028aaa870e83d51c64e5d4e0b6981b360c522198c23959f219a4e1b15b" +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + [[package]] name = "errno" -version = "0.2.8" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1" +checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" dependencies = [ - "errno-dragonfly", "libc", - "winapi", + "windows-sys 0.52.0", ] [[package]] -name = "errno" -version = "0.3.1" +name = "ethbloom" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a" +checksum = "c22d4b5885b6aa2fe5e8b9329fb8d232bf739e434e6b87347c63bdd00c120f60" dependencies = [ - "errno-dragonfly", - "libc", - "windows-sys 0.48.0", + "crunchy", + "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde", + "scale-info", + "tiny-keccak", ] [[package]] -name = "errno-dragonfly" -version = "0.1.2" +name = "ethereum" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" +checksum = "6a89fb87a9e103f71b903b80b670200b54cc67a07578f070681f1fffb7396fb7" dependencies = [ - "cc", - "libc", + "bytes", + "ethereum-types", + "hash-db 0.15.2", + "hash256-std-hasher", + "parity-scale-codec", + "rlp", + "scale-info", + "serde", + "sha3", + "triehash", +] + +[[package]] +name = "ethereum-types" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02d215cbf040552efcbe99a38372fe80ab9d00268e20012b79fcd0f073edd8ee" +dependencies = [ + "ethbloom", + "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde", + "primitive-types", + "scale-info", + "uint", ] [[package]] @@ -2705,6 +3028,92 @@ version = "2.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" +[[package]] +name = "event-listener" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite 0.2.13", +] + +[[package]] +name = "event-listener" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "770d968249b5d99410d61f5bf89057f3199a077a04d087092f58e7d10692baae" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite 0.2.13", +] + +[[package]] +name = "event-listener-strategy" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3" +dependencies = [ + "event-listener 4.0.0", + "pin-project-lite 0.2.13", +] + +[[package]] +name = "evm" +version = "0.39.1" +source = "git+https://github.com/moonbeam-foundation/evm?rev=a33ac87ad7462b7e7029d12c385492b2a8311d1c#a33ac87ad7462b7e7029d12c385492b2a8311d1c" +dependencies = [ + "auto_impl", + "environmental", + "ethereum", + "evm-core", + "evm-gasometer", + "evm-runtime", + "log", + "parity-scale-codec", + "primitive-types", + "rlp", + "scale-info", + "serde", + "sha3", +] + +[[package]] +name = "evm-core" +version = "0.39.0" +source = "git+https://github.com/moonbeam-foundation/evm?rev=a33ac87ad7462b7e7029d12c385492b2a8311d1c#a33ac87ad7462b7e7029d12c385492b2a8311d1c" +dependencies = [ + "parity-scale-codec", + "primitive-types", + "scale-info", + "serde", +] + +[[package]] +name = "evm-gasometer" +version = "0.39.0" +source = "git+https://github.com/moonbeam-foundation/evm?rev=a33ac87ad7462b7e7029d12c385492b2a8311d1c#a33ac87ad7462b7e7029d12c385492b2a8311d1c" +dependencies = [ + "environmental", + "evm-core", + "evm-runtime", + "primitive-types", +] + +[[package]] +name = "evm-runtime" +version = "0.39.0" +source = "git+https://github.com/moonbeam-foundation/evm?rev=a33ac87ad7462b7e7029d12c385492b2a8311d1c#a33ac87ad7462b7e7029d12c385492b2a8311d1c" +dependencies = [ + "auto_impl", + "environmental", + "evm-core", + "primitive-types", + "sha3", +] + [[package]] name = "exit-future" version = "0.2.0" @@ -2736,7 +3145,19 @@ dependencies = [ "fs-err", "proc-macro2", "quote", - "syn 1.0.109", +] + +[[package]] +name = "expander" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f86a749cf851891866c10515ef6c299b5c69661465e9c3bbe7e07a2b77fb0f7" +dependencies = [ + "blake2", + "fs-err", + "proc-macro2", + "quote", + "syn 2.0.39", ] [[package]] @@ -2760,6 +3181,12 @@ dependencies = [ "instant", ] +[[package]] +name = "fastrand" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" + [[package]] name = "fatality" version = "0.0.6" @@ -2777,8 +3204,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f5aa1e3ae159e592ad222dc90c5acbad632b527779ba88486abe92782ab268bd" dependencies = [ "expander 0.0.4", - "indexmap", - "proc-macro-crate", + "indexmap 1.9.3", + "proc-macro-crate 1.3.1", "proc-macro2", "quote", "syn 1.0.109", @@ -2796,19 +3223,32 @@ dependencies = [ [[package]] name = "ff" -version = "0.12.1" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160" +checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" dependencies = [ "rand_core 0.6.4", "subtle", ] +[[package]] +name = "fflonk" +version = "0.1.0" +source = "git+https://github.com/w3f/fflonk#1e854f35e9a65d08b11a86291405cdc95baa0a35" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-poly", + "ark-serialize", + "ark-std", + "merlin 3.0.0", +] + [[package]] name = "fiat-crypto" -version = "0.1.20" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e825f6987101665dea6ec934c09ec6d721de7bc1bf92248e1d5810c8cd636b77" +checksum = "27573eac26f4dd11e2b1916c3fe1baa56407c83c71a773a8ba17ec0bca03b6b7" [[package]] name = "file-per-thread-logger" @@ -2816,20 +3256,20 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "84f2e425d9790201ba4af4630191feac6dcc98765b118d4d18e91d23c2353866" dependencies = [ - "env_logger 0.10.0", + "env_logger 0.10.1", "log", ] [[package]] name = "filetime" -version = "0.2.21" +version = "0.2.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cbc844cecaee9d4443931972e1289c8ff485cb4cc2767cb03ca139ed6885153" +checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.2.16", - "windows-sys 0.48.0", + "redox_syscall 0.4.1", + "windows-sys 0.52.0", ] [[package]] @@ -2861,18 +3301,6 @@ dependencies = [ "typenum", ] -[[package]] -name = "fixed-hash" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfcf0ed7fe52a17a03854ec54a9f76d6d84508d1c0e66bc1793301c73fc8493c" -dependencies = [ - "byteorder", - "rand 0.8.5", - "rustc-hex", - "static_assertions", -] - [[package]] name = "fixed-hash" version = "0.8.0" @@ -2885,12 +3313,6 @@ dependencies = [ "static_assertions", ] -[[package]] -name = "fixedbitset" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37ab347416e802de484e4d03c7316c48f1ecb56574dfd4a46a80f173ce1de04d" - [[package]] name = "fixedbitset" version = "0.4.2" @@ -2899,13 +3321,13 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] name = "flate2" -version = "1.0.26" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743" +checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" dependencies = [ "crc32fast", "libz-sys", - "miniz_oxide 0.7.1", + "miniz_oxide", ] [[package]] @@ -2926,20 +3348,54 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "parity-scale-codec", ] [[package]] name = "form_urlencoded" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" dependencies = [ "percent-encoding", ] +[[package]] +name = "fp-account" +version = "1.0.0-dev" +source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-v1.1.0#bf5885a982041cc744ecbb62a2afc13d56d464dc" +dependencies = [ + "hex", + "impl-serde", + "libsecp256k1", + "log", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-io", + "sp-runtime", + "sp-runtime-interface 17.0.0 (git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.1.0)", + "sp-std", +] + +[[package]] +name = "fp-evm" +version = "3.0.0-dev" +source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-v1.1.0#bf5885a982041cc744ecbb62a2afc13d56d464dc" +dependencies = [ + "evm", + "frame-support", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-runtime", + "sp-std", +] + [[package]] name = "fragile" version = "2.0.0" @@ -2949,7 +3405,7 @@ checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "frame-support", "frame-support-procedural", @@ -2965,7 +3421,7 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-runtime-interface", + "sp-runtime-interface 17.0.0 (git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3)", "sp-std", "sp-storage", "static_assertions", @@ -2974,10 +3430,10 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "Inflector", - "array-bytes 4.2.0", + "array-bytes", "chrono", "clap", "comfy-table", @@ -2986,7 +3442,7 @@ dependencies = [ "frame-system", "gethostname", "handlebars", - "itertools", + "itertools 0.10.5", "lazy_static", "linked-hash-map", "log", @@ -3006,14 +3462,15 @@ dependencies = [ "sp-blockchain", "sp-core", "sp-database", - "sp-externalities", + "sp-externalities 0.19.0 (git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3)", "sp-inherents", + "sp-io", "sp-keystore", "sp-runtime", "sp-state-machine", - "sp-std", "sp-storage", "sp-trie", + "sp-wasm-interface 14.0.0 (git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3)", "thiserror", "thousands", ] @@ -3021,18 +3478,18 @@ dependencies = [ [[package]] name = "frame-election-provider-solution-type" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ - "proc-macro-crate", + "proc-macro-crate 1.3.1", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.39", ] [[package]] name = "frame-election-provider-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "frame-election-provider-solution-type", "frame-support", @@ -3049,25 +3506,26 @@ dependencies = [ [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "frame-support", "frame-system", "frame-try-runtime", + "log", "parity-scale-codec", "scale-info", "sp-core", "sp-io", "sp-runtime", "sp-std", - "sp-tracing", + "sp-tracing 10.0.0 (git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3)", ] [[package]] name = "frame-metadata" -version = "15.1.0" +version = "16.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "878babb0b136e731cc77ec2fd883ff02745ff21e6fb662729953d44923df009c" +checksum = "87cf1549fba25a6fcac22785b61698317d958e96cac72a59102ea45b9ae64692" dependencies = [ "cfg-if", "parity-scale-codec", @@ -3078,93 +3536,111 @@ dependencies = [ [[package]] name = "frame-remote-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ + "async-recursion", "futures", + "indicatif", + "jsonrpsee", "log", "parity-scale-codec", "serde", "sp-core", "sp-io", "sp-runtime", + "sp-state-machine", + "spinners", "substrate-rpc-client", "tokio", + "tokio-retry", ] [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ - "bitflags", + "aquamarine", + "bitflags 1.3.2", + "docify", + "environmental", "frame-metadata", "frame-support-procedural", "impl-trait-for-tuples", "k256", "log", - "once_cell", + "macro_magic", "parity-scale-codec", "paste", "scale-info", "serde", + "serde_json", "smallvec", "sp-api", "sp-arithmetic", "sp-core", "sp-core-hashing-proc-macro", + "sp-debug-derive", + "sp-genesis-builder", "sp-inherents", "sp-io", + "sp-metadata-ir", "sp-runtime", "sp-staking", "sp-state-machine", "sp-std", - "sp-tracing", + "sp-tracing 10.0.0 (git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3)", "sp-weights", + "static_assertions", "tt-call", ] [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "Inflector", "cfg-expr", "derive-syn-parse", + "expander 2.0.0", "frame-support-procedural-tools", - "itertools", + "itertools 0.10.5", + "macro_magic", + "proc-macro-warning", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.39", ] [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "frame-support-procedural-tools-derive", - "proc-macro-crate", + "proc-macro-crate 1.3.1", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.39", ] [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.39", ] [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ + "cfg-if", "frame-support", "log", "parity-scale-codec", @@ -3181,7 +3657,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "frame-benchmarking", "frame-support", @@ -3196,7 +3672,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "parity-scale-codec", "sp-api", @@ -3205,7 +3681,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "frame-support", "parity-scale-codec", @@ -3216,9 +3692,12 @@ dependencies = [ [[package]] name = "fs-err" -version = "2.9.0" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0845fa252299212f0389d64ba26f34fa32cfe41588355f21ed507c59a0f64541" +checksum = "88a41f105fe1d5b6b34b2055e3dc59bb79b46b48b2040b9e6c7b4b5de097aa41" +dependencies = [ + "autocfg", +] [[package]] name = "fs2" @@ -3230,6 +3709,16 @@ dependencies = [ "winapi", ] +[[package]] +name = "fs4" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2eeb4ed9e12f43b7fa0baae3f9cdda28352770132ef2e09a23760c29cae8bd47" +dependencies = [ + "rustix 0.38.27", + "windows-sys 0.48.0", +] + [[package]] name = "funty" version = "2.0.0" @@ -3238,9 +3727,9 @@ checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" [[package]] name = "futures" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40" +checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335" dependencies = [ "futures-channel", "futures-core", @@ -3253,9 +3742,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" +checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb" dependencies = [ "futures-core", "futures-sink", @@ -3263,15 +3752,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" +checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c" [[package]] name = "futures-executor" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0" +checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc" dependencies = [ "futures-core", "futures-task", @@ -3281,9 +3770,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" +checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa" [[package]] name = "futures-lite" @@ -3291,24 +3780,37 @@ version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" dependencies = [ - "fastrand", + "fastrand 1.9.0", "futures-core", "futures-io", "memchr", "parking", - "pin-project-lite 0.2.9", + "pin-project-lite 0.2.13", "waker-fn", ] +[[package]] +name = "futures-lite" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aeee267a1883f7ebef3700f262d2d54de95dfaf38189015a74fdc4e0c7ad8143" +dependencies = [ + "fastrand 2.0.1", + "futures-core", + "futures-io", + "parking", + "pin-project-lite 0.2.13", +] + [[package]] name = "futures-macro" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" +checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.39", ] [[package]] @@ -3318,21 +3820,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2411eed028cdf8c8034eaf21f9915f956b6c3abec4d4c7949ee67f0721127bd" dependencies = [ "futures-io", - "rustls 0.20.8", - "webpki 0.22.0", + "rustls 0.20.9", + "webpki", ] [[package]] name = "futures-sink" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" +checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817" [[package]] name = "futures-task" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" +checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2" [[package]] name = "futures-timer" @@ -3342,9 +3844,9 @@ checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" [[package]] name = "futures-util" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" +checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104" dependencies = [ "futures-channel", "futures-core", @@ -3353,7 +3855,7 @@ dependencies = [ "futures-sink", "futures-task", "memchr", - "pin-project-lite 0.2.9", + "pin-project-lite 0.2.13", "pin-utils", "slab", ] @@ -3384,6 +3886,7 @@ checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check", + "zeroize", ] [[package]] @@ -3409,25 +3912,15 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.10" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" +checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" dependencies = [ "cfg-if", "libc", "wasi 0.11.0+wasi-snapshot-preview1", ] -[[package]] -name = "ghash" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1583cc1656d7839fd3732b80cf4f38850336cdb9b8ded1cd399ca62958de3c99" -dependencies = [ - "opaque-debug 0.3.0", - "polyval 0.5.3", -] - [[package]] name = "ghash" version = "0.5.0" @@ -3435,25 +3928,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d930750de5717d2dd0b8c0d42c076c0e884c81a73e6cab859bbd2339c71e3e40" dependencies = [ "opaque-debug 0.3.0", - "polyval 0.6.0", + "polyval", ] [[package]] name = "gimli" -version = "0.26.2" +version = "0.27.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22030e2c5a68ec659fde1e949a745124b48e6fa8b045b7ed5bd1fe4ccc5c4e5d" +checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e" dependencies = [ "fallible-iterator", - "indexmap", + "indexmap 1.9.3", "stable_deref_trait", ] [[package]] name = "gimli" -version = "0.27.2" +version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad0a93d233ebf96623465aad4046a8d3aa4da22d4f4beba5388838c8a434bbb4" +checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" [[package]] name = "glob" @@ -3463,53 +3956,33 @@ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" [[package]] name = "globset" -version = "0.4.10" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "029d74589adefde59de1a0c4f4732695c32805624aec7b68d91503d4dba79afc" +checksum = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1" dependencies = [ - "aho-corasick 0.7.20", + "aho-corasick", "bstr", - "fnv", "log", - "regex", + "regex-automata 0.4.3", + "regex-syntax 0.8.2", ] [[package]] name = "group" -version = "0.12.1" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" dependencies = [ "ff", "rand_core 0.6.4", "subtle", ] -[[package]] -name = "gumdrop" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee50908bc1beeac1f2902e0b4e0cd0d844e716f5ebdc6f0cfc1163fe5e10bcde" -dependencies = [ - "gumdrop_derive", -] - -[[package]] -name = "gumdrop_derive" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90454ce4de40b7ca6a8968b5ef367bdab48413962588d0d2b1638d60090c35d7" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "h2" -version = "0.3.19" +version = "0.3.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d357c7ae988e7d2182f7d7871d0b963962420b0678b0997ce7de72001aeab782" +checksum = "4d6250322ef6e60f93f9a2162799302cd6f68f79f6e5d85c8c16f14d1d958178" dependencies = [ "bytes", "fnv", @@ -3517,7 +3990,7 @@ dependencies = [ "futures-sink", "futures-util", "http", - "indexmap", + "indexmap 2.1.0", "slab", "tokio", "tokio-util", @@ -3532,9 +4005,9 @@ checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7" [[package]] name = "handlebars" -version = "4.3.7" +version = "4.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83c3372087601b532857d332f5957cbae686da52bb7810bf038c3e3c3cc2fa0d" +checksum = "faa67bab9ff362228eb3d00bd024a4965d8231bbb7921167f0cfa66c6626b225" dependencies = [ "log", "pest", @@ -3550,6 +4023,12 @@ version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d23bd4e7b5eda0d0f3a307e8b381fdc8ba9000f26fbe912250c0a4cc3956364a" +[[package]] +name = "hash-db" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e7d7786361d7425ae2fe4f9e407eb0efaa0840f5212d109cc018c40c35c6ab4" + [[package]] name = "hash256-std-hasher" version = "0.15.2" @@ -3565,7 +4044,7 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" dependencies = [ - "ahash 0.7.6", + "ahash 0.7.7", ] [[package]] @@ -3574,7 +4053,18 @@ version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" dependencies = [ - "ahash 0.8.3", + "ahash 0.8.6", +] + +[[package]] +name = "hashbrown" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" +dependencies = [ + "ahash 0.8.6", + "allocator-api2", + "serde", ] [[package]] @@ -3594,18 +4084,9 @@ dependencies = [ [[package]] name = "hermit-abi" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" -dependencies = [ - "libc", -] - -[[package]] -name = "hermit-abi" -version = "0.3.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286" +checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" [[package]] name = "hex" @@ -3674,6 +4155,15 @@ dependencies = [ "hmac 0.8.1", ] +[[package]] +name = "home" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" +dependencies = [ + "windows-sys 0.48.0", +] + [[package]] name = "hostname" version = "0.3.1" @@ -3687,9 +4177,9 @@ dependencies = [ [[package]] name = "http" -version = "0.2.9" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" +checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" dependencies = [ "bytes", "fnv", @@ -3704,14 +4194,14 @@ checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" dependencies = [ "bytes", "http", - "pin-project-lite 0.2.9", + "pin-project-lite 0.2.13", ] [[package]] name = "http-range-header" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bfe8eed0a9285ef776bb792479ea3834e8b94e13d615c2f66d03dd50a435a29" +checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f" [[package]] name = "httparse" @@ -3721,9 +4211,9 @@ checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" [[package]] name = "httpdate" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "humantime" @@ -3733,8 +4223,8 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hydra-dx-build-script-utils" -version = "1.0.2" -source = "git+https://github.com/galacticcouncil/HydraDX-node?branch=master#d08e5a86c6d9d0b502a1ad7cb241c9817c0ef74f" +version = "1.0.3" +source = "git+https://github.com/galacticcouncil/HydraDX-node?rev=7e997371d7f2110f7719d2f279a153feb973b994#7e997371d7f2110f7719d2f279a153feb973b994" dependencies = [ "cargo-lock", "platforms 1.1.0", @@ -3742,13 +4232,13 @@ dependencies = [ [[package]] name = "hydra-dx-math" -version = "7.4.3" -source = "git+https://github.com/galacticcouncil/HydraDX-node?rev=b59c0379b312e9b3df365f407aa48b43bc4ca833#b59c0379b312e9b3df365f407aa48b43bc4ca833" +version = "7.6.4" +source = "git+https://github.com/galacticcouncil/HydraDX-node?rev=7e997371d7f2110f7719d2f279a153feb973b994#7e997371d7f2110f7719d2f279a153feb973b994" dependencies = [ "fixed", "num-traits", "parity-scale-codec", - "primitive-types 0.12.1", + "primitive-types", "scale-info", "serde", "sp-arithmetic", @@ -3757,8 +4247,8 @@ dependencies = [ [[package]] name = "hydradx-adapters" -version = "0.4.2" -source = "git+https://github.com/galacticcouncil/HydraDX-node?rev=b59c0379b312e9b3df365f407aa48b43bc4ca833#b59c0379b312e9b3df365f407aa48b43bc4ca833" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/HydraDX-node?rev=7e997371d7f2110f7719d2f279a153feb973b994#7e997371d7f2110f7719d2f279a153feb973b994" dependencies = [ "cumulus-pallet-parachain-system", "cumulus-primitives-core", @@ -3770,6 +4260,7 @@ dependencies = [ "orml-tokens", "orml-traits", "orml-utilities", + "orml-vesting", "orml-xcm-support", "pallet-balances", "pallet-circuit-breaker", @@ -3780,25 +4271,28 @@ dependencies = [ "pallet-omnipool", "pallet-omnipool-liquidity-mining", "pallet-route-executor", + "pallet-stableswap", + "pallet-staking 2.1.1", "pallet-transaction-multi-payment", + "pallet-uniques", "parity-scale-codec", - "polkadot-parachain", - "primitive-types 0.12.1", - "primitives 5.8.2", + "polkadot-parachain-primitives", + "primitive-types", + "primitives 6.0.2", "scale-info", "sp-core", "sp-io", "sp-runtime", "sp-std", - "xcm", - "xcm-builder", - "xcm-executor", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", ] [[package]] name = "hydradx-traits" -version = "2.4.0" -source = "git+https://github.com/galacticcouncil/HydraDX-node?rev=b59c0379b312e9b3df365f407aa48b43bc4ca833#b59c0379b312e9b3df365f407aa48b43bc4ca833" +version = "2.8.2" +source = "git+https://github.com/galacticcouncil/HydraDX-node?rev=7e997371d7f2110f7719d2f279a153feb973b994#7e997371d7f2110f7719d2f279a153feb973b994" dependencies = [ "frame-support", "impl-trait-for-tuples", @@ -3811,9 +4305,9 @@ dependencies = [ [[package]] name = "hyper" -version = "0.14.26" +version = "0.14.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab302d72a6f11a3b910431ff93aae7e773078c769f0a3ef15fb9ec692ed147d4" +checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" dependencies = [ "bytes", "futures-channel", @@ -3825,8 +4319,8 @@ dependencies = [ "httparse", "httpdate", "itoa", - "pin-project-lite 0.2.9", - "socket2 0.4.9", + "pin-project-lite 0.2.13", + "socket2 0.4.10", "tokio", "tower-service", "tracing", @@ -3835,31 +4329,33 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.23.2" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1788965e61b367cd03a62950836d5cd41560c3577d90e40e0819373194d1661c" +checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" dependencies = [ + "futures-util", "http", "hyper", "log", - "rustls 0.20.8", + "rustls 0.21.10", "rustls-native-certs", "tokio", "tokio-rustls", + "webpki-roots 0.25.3", ] [[package]] name = "iana-time-zone" -version = "0.1.57" +version = "0.1.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613" +checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20" dependencies = [ "android_system_properties", "core-foundation-sys", "iana-time-zone-haiku", "js-sys", "wasm-bindgen", - "windows 0.48.0", + "windows-core", ] [[package]] @@ -3871,12 +4367,6 @@ dependencies = [ "cc", ] -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - [[package]] name = "idna" version = "0.2.3" @@ -3890,9 +4380,9 @@ dependencies = [ [[package]] name = "idna" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" dependencies = [ "unicode-bidi", "unicode-normalization", @@ -3900,21 +4390,21 @@ dependencies = [ [[package]] name = "if-addrs" -version = "0.7.0" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbc0fa01ffc752e9dbc72818cdb072cd028b86be5e09dd04c5a643704fe101a9" +checksum = "cabb0019d51a643781ff15c9c8a3e5dedc365c47211270f4e8f82812fedd8f0a" dependencies = [ "libc", - "winapi", + "windows-sys 0.48.0", ] [[package]] name = "if-watch" -version = "3.0.1" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9465340214b296cd17a0009acdb890d6160010b8adf8f78a00d0d7ab270f79f" +checksum = "d6b0422c86d7ce0e97169cc42e04ae643caf278874a7a3c87b8150a220dc7e1e" dependencies = [ - "async-io", + "async-io 2.2.1", "core-foundation", "fnv", "futures", @@ -3924,7 +4414,7 @@ dependencies = [ "rtnetlink", "system-configuration", "tokio", - "windows 0.34.0", + "windows", ] [[package]] @@ -3936,6 +4426,15 @@ dependencies = [ "parity-scale-codec", ] +[[package]] +name = "impl-rlp" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" +dependencies = [ + "rlp", +] + [[package]] name = "impl-serde" version = "0.4.0" @@ -3956,6 +4455,25 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "include_dir" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18762faeff7122e89e0857b02f7ce6fcc0d101d5e9ad2ad7846cc01d61b7f19e" +dependencies = [ + "include_dir_macros", +] + +[[package]] +name = "include_dir_macros" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b139284b5cf57ecfa712bcc66950bb635b31aff41c188e8a4cfc758eca374a3f" +dependencies = [ + "proc-macro2", + "quote", +] + [[package]] name = "indexmap" version = "1.9.3" @@ -3967,6 +4485,35 @@ dependencies = [ "serde", ] +[[package]] +name = "indexmap" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" +dependencies = [ + "equivalent", + "hashbrown 0.14.3", +] + +[[package]] +name = "indexmap-nostd" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e04e2fd2b8188ea827b32ef11de88377086d690286ab35747ef7f9bf3ccb590" + +[[package]] +name = "indicatif" +version = "0.17.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb28741c9db9a713d93deb3bb9515c20788cef5815265bee4980e87bde7e0f25" +dependencies = [ + "console", + "instant", + "number_prefix", + "portable-atomic", + "unicode-width", +] + [[package]] name = "inout" version = "0.1.3" @@ -4000,52 +4547,13 @@ dependencies = [ "num-traits", ] -[[package]] -name = "interceptor" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e8a11ae2da61704edada656798b61c94b35ecac2c58eb955156987d5e6be90b" -dependencies = [ - "async-trait", - "bytes", - "log", - "rand 0.8.5", - "rtcp", - "rtp", - "thiserror", - "tokio", - "waitgroup", - "webrtc-srtp", - "webrtc-util", -] - -[[package]] -name = "invarch-xcm-builder" -version = "0.1.0" -source = "git+https://github.com/InvArch/InvArch-XCM-Builder?branch=polkadot-v0.9.38#ec19f7333d7c12e3ebbcd51b0ff1d55efb1869fe" -dependencies = [ - "frame-support", - "log", - "parity-scale-codec", - "sp-core", - "sp-io", - "xcm", - "xcm-executor", -] - -[[package]] -name = "io-lifetimes" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59ce5ef949d49ee85593fc4d3f3f95ad61657076395cbbce23e2121fc5542074" - [[package]] name = "io-lifetimes" version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" dependencies = [ - "hermit-abi 0.3.1", + "hermit-abi 0.3.3", "libc", "windows-sys 0.48.0", ] @@ -4062,7 +4570,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" dependencies = [ - "socket2 0.5.3", + "socket2 0.5.5", "widestring", "windows-sys 0.48.0", "winreg", @@ -4070,62 +4578,80 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.7.2" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12b6ee2129af8d4fb011108c73d99a1b83a85977f23b82460c0ae2e25bb4b57f" +checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" [[package]] name = "is-terminal" -version = "0.4.7" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f" +checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" dependencies = [ - "hermit-abi 0.3.1", - "io-lifetimes 1.0.11", - "rustix 0.37.19", + "hermit-abi 0.3.3", + "rustix 0.38.27", "windows-sys 0.48.0", ] +[[package]] +name = "is_executable" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa9acdc6d67b75e626ad644734e8bc6df893d9cd2a834129065d3dd6158ea9c8" +dependencies = [ + "winapi", +] + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + [[package]] name = "itertools" -version = "0.10.5" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" dependencies = [ "either", ] [[package]] name = "itoa" -version = "1.0.6" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" +checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" [[package]] name = "jobserver" -version = "0.1.26" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2" +checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d" dependencies = [ "libc", ] [[package]] name = "js-sys" -version = "0.3.63" +version = "0.3.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f37a4a5928311ac501dee68b3c7613a1037d0edb30c8e5427bd832d55d1b790" +checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca" dependencies = [ "wasm-bindgen", ] [[package]] name = "jsonrpsee" -version = "0.16.2" +version = "0.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d291e3a5818a2384645fd9756362e6d89cf0541b0b916fa7702ea4a9833608e" +checksum = "367a292944c07385839818bb71c8d76611138e2dedb0677d035b8da21d29c78b" dependencies = [ "jsonrpsee-core", + "jsonrpsee-http-client", "jsonrpsee-proc-macros", "jsonrpsee-server", "jsonrpsee-types", @@ -4135,9 +4661,9 @@ dependencies = [ [[package]] name = "jsonrpsee-client-transport" -version = "0.16.2" +version = "0.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "965de52763f2004bc91ac5bcec504192440f0b568a5d621c59d9dbd6f886c3fb" +checksum = "c8b3815d9f5d5de348e5f162b316dc9cdf4548305ebb15b4eb9328e66cf27d7a" dependencies = [ "futures-util", "http", @@ -4151,18 +4677,18 @@ dependencies = [ "tokio-rustls", "tokio-util", "tracing", - "webpki-roots", + "webpki-roots 0.25.3", ] [[package]] name = "jsonrpsee-core" -version = "0.16.2" +version = "0.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4e70b4439a751a5de7dd5ed55eacff78ebf4ffe0fc009cb1ebb11417f5b536b" +checksum = "2b5dde66c53d6dcdc8caea1874a45632ec0fcf5b437789f1e45766a1512ce803" dependencies = [ "anyhow", - "arrayvec 0.7.2", - "async-lock", + "arrayvec 0.7.4", + "async-lock 2.8.0", "async-trait", "beef", "futures-channel", @@ -4182,14 +4708,33 @@ dependencies = [ "tracing", ] +[[package]] +name = "jsonrpsee-http-client" +version = "0.16.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e5f9fabdd5d79344728521bb65e3106b49ec405a78b66fbff073b72b389fa43" +dependencies = [ + "async-trait", + "hyper", + "hyper-rustls", + "jsonrpsee-core", + "jsonrpsee-types", + "rustc-hash", + "serde", + "serde_json", + "thiserror", + "tokio", + "tracing", +] + [[package]] name = "jsonrpsee-proc-macros" -version = "0.16.2" +version = "0.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baa6da1e4199c10d7b1d0a6e5e8bd8e55f351163b6f4b3cbb044672a69bd4c1c" +checksum = "44e8ab85614a08792b9bff6c8feee23be78c98d0182d4c622c05256ab553892a" dependencies = [ "heck", - "proc-macro-crate", + "proc-macro-crate 1.3.1", "proc-macro2", "quote", "syn 1.0.109", @@ -4197,9 +4742,9 @@ dependencies = [ [[package]] name = "jsonrpsee-server" -version = "0.16.2" +version = "0.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fb69dad85df79527c019659a992498d03f8495390496da2f07e6c24c2b356fc" +checksum = "cf4d945a6008c9b03db3354fb3c83ee02d2faa9f2e755ec1dfb69c3551b8f4ba" dependencies = [ "futures-channel", "futures-util", @@ -4219,9 +4764,9 @@ dependencies = [ [[package]] name = "jsonrpsee-types" -version = "0.16.2" +version = "0.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bd522fe1ce3702fd94812965d7bb7a3364b1c9aba743944c5a00529aae80f8c" +checksum = "245ba8e5aa633dd1c1e4fae72bce06e71f42d34c14a2767c6b4d173b57bee5e5" dependencies = [ "anyhow", "beef", @@ -4233,9 +4778,9 @@ dependencies = [ [[package]] name = "jsonrpsee-ws-client" -version = "0.16.2" +version = "0.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b83daeecfc6517cfe210df24e570fb06213533dfb990318fae781f4c7119dd9" +checksum = "4e1b3975ed5d73f456478681a417128597acd6a2487855fdb7b4a3d4d195bf5e" dependencies = [ "http", "jsonrpsee-client-transport", @@ -4245,14 +4790,15 @@ dependencies = [ [[package]] name = "k256" -version = "0.11.6" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72c1e0b51e7ec0a97369623508396067a486bd0cbed95a2659a4b863d28cfc8b" +checksum = "3f01b677d82ef7a676aa37e099defd83a28e15687112cafdd112d60236b6115b" dependencies = [ "cfg-if", "ecdsa", "elliptic-curve", - "sha2 0.10.6", + "once_cell", + "sha2 0.10.8", ] [[package]] @@ -4264,107 +4810,10 @@ dependencies = [ "cpufeatures", ] -[[package]] -name = "kusama-runtime" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" -dependencies = [ - "bitvec", - "frame-benchmarking", - "frame-election-provider-support", - "frame-executive", - "frame-support", - "frame-system", - "frame-system-benchmarking", - "frame-system-rpc-runtime-api", - "frame-try-runtime", - "hex-literal 0.3.4", - "kusama-runtime-constants", - "log", - "pallet-authority-discovery", - "pallet-authorship", - "pallet-babe", - "pallet-bags-list", - "pallet-balances", - "pallet-bounties", - "pallet-child-bounties", - "pallet-collective", - "pallet-conviction-voting", - "pallet-democracy", - "pallet-election-provider-multi-phase", - "pallet-election-provider-support-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.38)", - "pallet-elections-phragmen", - "pallet-fast-unstake", - "pallet-grandpa", - "pallet-identity", - "pallet-im-online", - "pallet-indices", - "pallet-membership", - "pallet-multisig", - "pallet-nis", - "pallet-nomination-pools", - "pallet-nomination-pools-benchmarking", - "pallet-nomination-pools-runtime-api", - "pallet-offences", - "pallet-offences-benchmarking", - "pallet-preimage", - "pallet-proxy", - "pallet-ranked-collective", - "pallet-recovery", - "pallet-referenda", - "pallet-scheduler", - "pallet-session", - "pallet-session-benchmarking", - "pallet-society", - "pallet-staking", - "pallet-timestamp", - "pallet-tips", - "pallet-transaction-payment", - "pallet-transaction-payment-rpc-runtime-api", - "pallet-treasury", - "pallet-utility", - "pallet-vesting", - "pallet-whitelist", - "pallet-xcm", - "pallet-xcm-benchmarks", - "parity-scale-codec", - "polkadot-primitives", - "polkadot-runtime-common", - "polkadot-runtime-parachains", - "rustc-hex", - "scale-info", - "serde", - "serde_derive", - "smallvec", - "sp-api", - "sp-arithmetic", - "sp-authority-discovery", - "sp-beefy", - "sp-block-builder", - "sp-consensus-babe", - "sp-core", - "sp-inherents", - "sp-io", - "sp-mmr-primitives", - "sp-npos-elections", - "sp-offchain", - "sp-runtime", - "sp-session", - "sp-staking", - "sp-std", - "sp-transaction-pool", - "sp-version", - "static_assertions", - "substrate-wasm-builder", - "xcm", - "xcm-builder", - "xcm-executor", -] - [[package]] name = "kusama-runtime-constants" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "frame-support", "polkadot-primitives", @@ -4396,9 +4845,9 @@ dependencies = [ [[package]] name = "kvdb-rocksdb" -version = "0.17.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2182b8219fee6bd83aacaab7344e840179ae079d5216aa4e249b4d704646a844" +checksum = "b644c70b92285f66bfc2032922a79000ea30af7bc2ab31902992a5dcb9b434f6" dependencies = [ "kvdb", "num_cpus", @@ -4408,6 +4857,17 @@ dependencies = [ "smallvec", ] +[[package]] +name = "landlock" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "520baa32708c4e957d2fc3a186bc5bd8d26637c33137f399ddfc202adb240068" +dependencies = [ + "enumflags2", + "libc", + "thiserror", +] + [[package]] name = "lazy_static" version = "1.4.0" @@ -4422,9 +4882,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.146" +version = "0.2.150" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f92be4933c13fd498862a9e02a3055f8a8d9c039ce33db97306fd5a6caa7f29b" +checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" [[package]] name = "libloading" @@ -4438,34 +4898,30 @@ dependencies = [ [[package]] name = "libm" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fc7aa29613bd6a620df431842069224d8bc9011086b1db4c0e0cd47fa03ec9a" - -[[package]] -name = "libm" -version = "0.2.7" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" [[package]] name = "libp2p" -version = "0.50.1" +version = "0.51.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c7b0104790be871edcf97db9bd2356604984e623a08d825c3f27852290266b8" +checksum = "f35eae38201a993ece6bdc823292d6abd1bffed1c4d0f4a3517d2bd8e1d917fe" dependencies = [ "bytes", "futures", "futures-timer", - "getrandom 0.2.10", + "getrandom 0.2.11", "instant", - "libp2p-core 0.38.0", + "libp2p-allow-block-list", + "libp2p-connection-limits", + "libp2p-core", "libp2p-dns", "libp2p-identify", + "libp2p-identity", "libp2p-kad", "libp2p-mdns", "libp2p-metrics", - "libp2p-mplex", "libp2p-noise", "libp2p-ping", "libp2p-quic", @@ -4473,47 +4929,34 @@ dependencies = [ "libp2p-swarm", "libp2p-tcp", "libp2p-wasm-ext", - "libp2p-webrtc", "libp2p-websocket", "libp2p-yamux", - "multiaddr 0.16.0", - "parking_lot 0.12.1", + "multiaddr", "pin-project", - "smallvec", ] [[package]] -name = "libp2p-core" -version = "0.38.0" +name = "libp2p-allow-block-list" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6a8fcd392ff67af6cc3f03b1426c41f7f26b6b9aff2dc632c1c56dd649e571f" +checksum = "510daa05efbc25184458db837f6f9a5143888f1caa742426d92e1833ddd38a50" dependencies = [ - "asn1_der", - "bs58", - "ed25519-dalek", - "either", - "fnv", - "futures", - "futures-timer", - "instant", - "log", - "multiaddr 0.16.0", - "multihash 0.16.3", - "multistream-select", - "once_cell", - "parking_lot 0.12.1", - "pin-project", - "prost", - "prost-build", - "rand 0.8.5", - "rw-stream-sink", - "sec1", - "sha2 0.10.6", - "smallvec", - "thiserror", - "unsigned-varint", + "libp2p-core", + "libp2p-identity", + "libp2p-swarm", + "void", +] + +[[package]] +name = "libp2p-connection-limits" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4caa33f1d26ed664c4fe2cca81a08c8e07d4c1c04f2f4ac7655c2dd85467fda0" +dependencies = [ + "libp2p-core", + "libp2p-identity", + "libp2p-swarm", "void", - "zeroize", ] [[package]] @@ -4529,8 +4972,8 @@ dependencies = [ "instant", "libp2p-identity", "log", - "multiaddr 0.17.1", - "multihash 0.17.0", + "multiaddr", + "multihash", "multistream-select", "once_cell", "parking_lot 0.12.1", @@ -4546,12 +4989,12 @@ dependencies = [ [[package]] name = "libp2p-dns" -version = "0.38.0" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e42a271c1b49f789b92f7fc87749fa79ce5c7bdc88cbdfacb818a4bca47fec5" +checksum = "146ff7034daae62077c415c2376b8057368042df6ab95f5432ad5e88568b1554" dependencies = [ "futures", - "libp2p-core 0.38.0", + "libp2p-core", "log", "parking_lot 0.12.1", "smallvec", @@ -4560,20 +5003,21 @@ dependencies = [ [[package]] name = "libp2p-identify" -version = "0.41.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c052d0026f4817b44869bfb6810f4e1112f43aec8553f2cb38881c524b563abf" +checksum = "5455f472243e63b9c497ff320ded0314254a9eb751799a39c283c6f20b793f3c" dependencies = [ "asynchronous-codec", + "either", "futures", "futures-timer", - "libp2p-core 0.38.0", + "libp2p-core", + "libp2p-identity", "libp2p-swarm", "log", - "lru 0.8.1", - "prost", - "prost-build", - "prost-codec", + "lru 0.10.1", + "quick-protobuf", + "quick-protobuf-codec", "smallvec", "thiserror", "void", @@ -4581,29 +5025,29 @@ dependencies = [ [[package]] name = "libp2p-identity" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e2d584751cecb2aabaa56106be6be91338a60a0f4e420cf2af639204f596fc1" +checksum = "276bb57e7af15d8f100d3c11cbdd32c6752b7eef4ba7a18ecf464972c07abcce" dependencies = [ - "bs58", + "bs58 0.4.0", "ed25519-dalek", "log", - "multiaddr 0.17.1", - "multihash 0.17.0", + "multiaddr", + "multihash", "quick-protobuf", "rand 0.8.5", - "sha2 0.10.6", + "sha2 0.10.8", "thiserror", "zeroize", ] [[package]] name = "libp2p-kad" -version = "0.42.1" +version = "0.43.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2766dcd2be8c87d5e1f35487deb22d765f49c6ae1251b3633efe3b25698bd3d2" +checksum = "39d5ef876a2b2323d63c258e63c2f8e36f205fe5a11f0b3095d59635650790ff" dependencies = [ - "arrayvec 0.7.2", + "arrayvec 0.7.4", "asynchronous-codec", "bytes", "either", @@ -4611,13 +5055,13 @@ dependencies = [ "futures", "futures-timer", "instant", - "libp2p-core 0.38.0", + "libp2p-core", + "libp2p-identity", "libp2p-swarm", "log", - "prost", - "prost-build", + "quick-protobuf", "rand 0.8.5", - "sha2 0.10.6", + "sha2 0.10.8", "smallvec", "thiserror", "uint", @@ -4627,19 +5071,20 @@ dependencies = [ [[package]] name = "libp2p-mdns" -version = "0.42.0" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04f378264aade9872d6ccd315c0accc18be3a35d15fc1b9c36e5b6f983b62b5b" +checksum = "19983e1f949f979a928f2c603de1cf180cc0dc23e4ac93a62651ccb18341460b" dependencies = [ "data-encoding", "futures", "if-watch", - "libp2p-core 0.38.0", + "libp2p-core", + "libp2p-identity", "libp2p-swarm", "log", "rand 0.8.5", "smallvec", - "socket2 0.4.9", + "socket2 0.4.10", "tokio", "trust-dns-proto", "void", @@ -4647,11 +5092,11 @@ dependencies = [ [[package]] name = "libp2p-metrics" -version = "0.11.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ad8a64f29da86005c86a4d2728b8a0719e9b192f4092b609fd8790acb9dec55" +checksum = "a42ec91e227d7d0dafa4ce88b333cdf5f277253873ab087555c92798db2ddd46" dependencies = [ - "libp2p-core 0.38.0", + "libp2p-core", "libp2p-identify", "libp2p-kad", "libp2p-ping", @@ -4659,40 +5104,22 @@ dependencies = [ "prometheus-client", ] -[[package]] -name = "libp2p-mplex" -version = "0.38.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03805b44107aa013e7cbbfa5627b31c36cbedfdfb00603c0311998882bc4bace" -dependencies = [ - "asynchronous-codec", - "bytes", - "futures", - "libp2p-core 0.38.0", - "log", - "nohash-hasher", - "parking_lot 0.12.1", - "rand 0.8.5", - "smallvec", - "unsigned-varint", -] - [[package]] name = "libp2p-noise" -version = "0.41.0" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a978cb57efe82e892ec6f348a536bfbd9fee677adbe5689d7a93ad3a9bffbf2e" +checksum = "9c3673da89d29936bc6435bafc638e2f184180d554ce844db65915113f86ec5e" dependencies = [ "bytes", "curve25519-dalek 3.2.0", "futures", - "libp2p-core 0.38.0", + "libp2p-core", + "libp2p-identity", "log", "once_cell", - "prost", - "prost-build", + "quick-protobuf", "rand 0.8.5", - "sha2 0.10.6", + "sha2 0.10.8", "snow", "static_assertions", "thiserror", @@ -4702,14 +5129,15 @@ dependencies = [ [[package]] name = "libp2p-ping" -version = "0.41.0" +version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "929fcace45a112536e22b3dcfd4db538723ef9c3cb79f672b98be2cc8e25f37f" +checksum = "3e57759c19c28a73ef1eb3585ca410cefb72c1a709fcf6de1612a378e4219202" dependencies = [ + "either", "futures", "futures-timer", "instant", - "libp2p-core 0.38.0", + "libp2p-core", "libp2p-swarm", "log", "rand 0.8.5", @@ -4718,70 +5146,68 @@ dependencies = [ [[package]] name = "libp2p-quic" -version = "0.7.0-alpha" +version = "0.7.0-alpha.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01e7c867e95c8130667b24409d236d37598270e6da69b3baf54213ba31ffca59" +checksum = "c6b26abd81cd2398382a1edfe739b539775be8a90fa6914f39b2ab49571ec735" dependencies = [ "bytes", "futures", "futures-timer", "if-watch", - "libp2p-core 0.38.0", + "libp2p-core", + "libp2p-identity", "libp2p-tls", "log", "parking_lot 0.12.1", "quinn-proto", "rand 0.8.5", - "rustls 0.20.8", + "rustls 0.20.9", "thiserror", "tokio", ] [[package]] name = "libp2p-request-response" -version = "0.23.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3236168796727bfcf4927f766393415361e2c644b08bedb6a6b13d957c9a4884" +checksum = "7ffdb374267d42dc5ed5bc53f6e601d4a64ac5964779c6e40bb9e4f14c1e30d5" dependencies = [ "async-trait", - "bytes", "futures", "instant", - "libp2p-core 0.38.0", + "libp2p-core", + "libp2p-identity", "libp2p-swarm", - "log", "rand 0.8.5", "smallvec", - "unsigned-varint", ] [[package]] name = "libp2p-swarm" -version = "0.41.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2a35472fe3276b3855c00f1c032ea8413615e030256429ad5349cdf67c6e1a0" +checksum = "903b3d592d7694e56204d211f29d31bc004be99386644ba8731fc3e3ef27b296" dependencies = [ "either", "fnv", "futures", "futures-timer", "instant", - "libp2p-core 0.38.0", + "libp2p-core", + "libp2p-identity", "libp2p-swarm-derive", "log", - "pin-project", "rand 0.8.5", "smallvec", - "thiserror", "tokio", "void", ] [[package]] name = "libp2p-swarm-derive" -version = "0.31.0" +version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d527d5827582abd44a6d80c07ff8b50b4ee238a8979e05998474179e79dc400" +checksum = "0fba456131824ab6acd4c7bf61e9c0f0a3014b5fc9868ccb8e10d344594cdc4f" dependencies = [ "heck", "quote", @@ -4790,17 +5216,17 @@ dependencies = [ [[package]] name = "libp2p-tcp" -version = "0.38.0" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4b257baf6df8f2df39678b86c578961d48cc8b68642a12f0f763f56c8e5858d" +checksum = "33d33698596d7722d85d3ab0c86c2c322254fce1241e91208e3679b4eb3026cf" dependencies = [ "futures", "futures-timer", "if-watch", "libc", - "libp2p-core 0.38.0", + "libp2p-core", "log", - "socket2 0.4.9", + "socket2 0.4.10", "tokio", ] @@ -4812,100 +5238,79 @@ checksum = "ff08d13d0dc66e5e9ba6279c1de417b84fa0d0adc3b03e5732928c180ec02781" dependencies = [ "futures", "futures-rustls", - "libp2p-core 0.39.2", + "libp2p-core", "libp2p-identity", - "rcgen 0.10.0", - "ring", - "rustls 0.20.8", + "rcgen", + "ring 0.16.20", + "rustls 0.20.9", "thiserror", - "webpki 0.22.0", - "x509-parser 0.14.0", + "webpki", + "x509-parser", "yasna", ] [[package]] name = "libp2p-wasm-ext" -version = "0.38.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bb1a35299860e0d4b3c02a3e74e3b293ad35ae0cee8a056363b0c862d082069" -dependencies = [ - "futures", - "js-sys", - "libp2p-core 0.38.0", - "parity-send-wrapper", - "wasm-bindgen", - "wasm-bindgen-futures", -] - -[[package]] -name = "libp2p-webrtc" -version = "0.4.0-alpha" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdb6cd86dd68cba72308ea05de1cebf3ba0ae6e187c40548167955d4e3970f6a" -dependencies = [ - "async-trait", - "asynchronous-codec", - "bytes", - "futures", - "futures-timer", - "hex", - "if-watch", - "libp2p-core 0.38.0", - "libp2p-noise", - "log", - "multihash 0.16.3", - "prost", - "prost-build", - "prost-codec", - "rand 0.8.5", - "rcgen 0.9.3", - "serde", - "stun", - "thiserror", - "tinytemplate", - "tokio", - "tokio-util", - "webrtc", +checksum = "77dff9d32353a5887adb86c8afc1de1a94d9e8c3bc6df8b2201d7cdf5c848f43" +dependencies = [ + "futures", + "js-sys", + "libp2p-core", + "parity-send-wrapper", + "wasm-bindgen", + "wasm-bindgen-futures", ] [[package]] name = "libp2p-websocket" -version = "0.40.0" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d705506030d5c0aaf2882437c70dab437605f21c5f9811978f694e6917a3b54" +checksum = "111273f7b3d3510524c752e8b7a5314b7f7a1fee7e68161c01a7d72cbb06db9f" dependencies = [ "either", "futures", "futures-rustls", - "libp2p-core 0.38.0", + "libp2p-core", "log", "parking_lot 0.12.1", "quicksink", "rw-stream-sink", "soketto", "url", - "webpki-roots", + "webpki-roots 0.22.6", ] [[package]] name = "libp2p-yamux" -version = "0.42.0" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f63594a0aa818642d9d4915c791945053877253f08a3626f13416b5cd928a29" +checksum = "4dcd21d950662700a385d4c6d68e2f5f54d778e97068cdd718522222ef513bda" dependencies = [ "futures", - "libp2p-core 0.38.0", + "libp2p-core", "log", - "parking_lot 0.12.1", "thiserror", "yamux", ] +[[package]] +name = "libredox" +version = "0.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" +dependencies = [ + "bitflags 2.4.1", + "libc", + "redox_syscall 0.4.1", +] + [[package]] name = "librocksdb-sys" -version = "0.8.3+7.4.4" +version = "0.11.0+8.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "557b255ff04123fcc176162f56ed0c9cd42d8f357cf55b3fabeb60f7413741b3" +checksum = "d3386f101bcb4bd252d8e9d2fb41ec3b0862a15a62b478c355b2982efa469e3e" dependencies = [ "bindgen", "bzip2-sys", @@ -4966,9 +5371,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.9" +version = "1.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56ee889ecc9568871456d42f603d6a0ce59ff328d291063a45cbdf0036baf6db" +checksum = "d97137b25e321a73eef1418d1d5d2eda4d77e12813f8e6dead84bc52c5870a7b" dependencies = [ "cc", "pkg-config", @@ -4977,9 +5382,9 @@ dependencies = [ [[package]] name = "link-cplusplus" -version = "1.0.8" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecd207c9c713c34f95a097a5b029ac2ce6010530c7b49d7fea24d977dede04f5" +checksum = "9d240c6f7e1ba3a28b0249f774e6a9dd0175054b52dfbb61b16eb8505c3785c9" dependencies = [ "cc", ] @@ -5001,19 +5406,18 @@ dependencies = [ [[package]] name = "linregress" -version = "0.4.4" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6c601a85f5ecd1aba625247bca0031585fb1c446461b142878a16f8245ddeb8" +checksum = "4de04dcecc58d366391f9920245b85ffa684558a5ef6e7736e754347c3aea9c2" dependencies = [ "nalgebra", - "statrs", ] [[package]] name = "linux-raw-sys" -version = "0.0.46" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4d2456c373231a208ad294c33dc5bff30051eafd954cd4caae83a712b12854d" +checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4" [[package]] name = "linux-raw-sys" @@ -5021,11 +5425,17 @@ version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" +[[package]] +name = "linux-raw-sys" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456" + [[package]] name = "lock_api" -version = "0.4.10" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" +checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" dependencies = [ "autocfg", "scopeguard", @@ -5033,27 +5443,24 @@ dependencies = [ [[package]] name = "log" -version = "0.4.18" +version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "518ef76f2f87365916b142844c16d8fefd85039bc5699050210a7778ee1cd1de" +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" [[package]] name = "lru" -version = "0.8.1" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6e8aaa3f231bb4bd57b84b2d5dc3ae7f350265df8aa96492e0bc394a1571909" +checksum = "718e8fae447df0c7e1ba7f5189829e63fd536945c8988d61444c19039f16b670" dependencies = [ - "hashbrown 0.12.3", + "hashbrown 0.13.2", ] [[package]] name = "lru" -version = "0.9.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71e7d46de488603ffdd5f30afbc64fbba2378214a2c3a2fb83abf3d33126df17" -dependencies = [ - "hashbrown 0.13.2", -] +checksum = "a4a83fb7698b3643a0e34f9ae6f2e8f0178c0fd42f8b59d493aa271ff3a5bf21" [[package]] name = "lru-cache" @@ -5093,6 +5500,60 @@ dependencies = [ "libc", ] +[[package]] +name = "macro_magic" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aee866bfee30d2d7e83835a4574aad5b45adba4cc807f2a3bbba974e5d4383c9" +dependencies = [ + "macro_magic_core", + "macro_magic_macros", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "macro_magic_core" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e766a20fd9c72bab3e1e64ed63f36bd08410e75803813df210d1ce297d7ad00" +dependencies = [ + "const-random", + "derive-syn-parse", + "macro_magic_core_macros", + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "macro_magic_core_macros" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d710e1214dffbab3b5dacb21475dde7d6ed84c69ff722b3a47a782668d44fbac" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "macro_magic_macros" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fb85ec1620619edf2984a7693497d4ec88a9665d8b87e942856884c92dbf2a" +dependencies = [ + "macro_magic_core", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "maplit" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" + [[package]] name = "match_cfg" version = "0.1.0" @@ -5105,7 +5566,7 @@ version = "0.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f099785f7595cc4b4553a174ce30dd7589ef93391ff414dbb67f62392b9e0ce1" dependencies = [ - "regex-automata", + "regex-automata 0.1.10", ] [[package]] @@ -5116,36 +5577,27 @@ checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" [[package]] name = "matrixmultiply" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "090126dc04f95dc0d1c1c91f61bdd474b3930ca064c1edc8a849da2c6cbe1e77" +checksum = "7574c1cf36da4798ab73da5b215bbf444f50718207754cb522201d78d1cd0ff2" dependencies = [ "autocfg", "rawpointer", ] -[[package]] -name = "md-5" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6365506850d44bff6e2fbcb5176cf63650e48bd45ef2fe2665ae1570e0f4b9ca" -dependencies = [ - "digest 0.10.7", -] - [[package]] name = "memchr" -version = "2.5.0" +version = "2.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" [[package]] name = "memfd" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffc89ccdc6e10d6907450f753537ebc5c5d3460d2e4e62ea74bd571db62c0f9e" +checksum = "b2cffa4ad52c6f791f4f8b15f0c05f9824b2ced1160e88cc393d64fff9a8ac64" dependencies = [ - "rustix 0.37.19", + "rustix 0.38.27", ] [[package]] @@ -5159,56 +5611,52 @@ dependencies = [ [[package]] name = "memoffset" -version = "0.6.5" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" +checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1" dependencies = [ "autocfg", ] [[package]] name = "memoffset" -version = "0.7.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" +checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" dependencies = [ "autocfg", ] [[package]] -name = "memoffset" -version = "0.8.0" +name = "memory-db" +version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1" +checksum = "808b50db46293432a45e63bc15ea51e0ab4c0a1647b8eb114e31a3e698dd6fbe" dependencies = [ - "autocfg", + "hash-db 0.16.0", ] [[package]] -name = "memory-db" -version = "0.31.0" +name = "merlin" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e0c7cba9ce19ac7ffd2053ac9f49843bbd3f4318feedfd74e85c19d5fb0ba66" +checksum = "4e261cf0f8b3c42ded9f7d2bb59dea03aa52bc8a1cbc7482f9fc3fd1229d3b42" dependencies = [ - "hash-db", - "hashbrown 0.12.3", + "byteorder", + "keccak", + "rand_core 0.5.1", + "zeroize", ] -[[package]] -name = "memory_units" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8452105ba047068f40ff7093dd1d9da90898e63dd61736462e9cdda6a90ad3c3" - [[package]] name = "merlin" -version = "2.0.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e261cf0f8b3c42ded9f7d2bb59dea03aa52bc8a1cbc7482f9fc3fd1229d3b42" +checksum = "58c38e2799fc0978b65dfff8023ec7843e2330bb462f19198840b34b6582397d" dependencies = [ "byteorder", "keccak", - "rand_core 0.5.1", + "rand_core 0.6.4", "zeroize", ] @@ -5229,15 +5677,6 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" -[[package]] -name = "miniz_oxide" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa" -dependencies = [ - "adler", -] - [[package]] name = "miniz_oxide" version = "0.7.1" @@ -5249,9 +5688,9 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.8" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" +checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" dependencies = [ "libc", "wasi 0.11.0+wasi-snapshot-preview1", @@ -5261,7 +5700,7 @@ dependencies = [ [[package]] name = "mmr-gadget" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "futures", "log", @@ -5269,9 +5708,9 @@ dependencies = [ "sc-client-api", "sc-offchain", "sp-api", - "sp-beefy", "sp-blockchain", "sp-consensus", + "sp-consensus-beefy", "sp-core", "sp-mmr-primitives", "sp-runtime", @@ -5280,7 +5719,7 @@ dependencies = [ [[package]] name = "mmr-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "anyhow", "jsonrpsee", @@ -5320,24 +5759,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "multiaddr" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4aebdb21e90f81d13ed01dc84123320838e53963c2ca94b60b305d3fa64f31e" -dependencies = [ - "arrayref", - "byteorder", - "data-encoding", - "multibase", - "multihash 0.16.3", - "percent-encoding", - "serde", - "static_assertions", - "unsigned-varint", - "url", -] - [[package]] name = "multiaddr" version = "0.17.1" @@ -5349,7 +5770,7 @@ dependencies = [ "data-encoding", "log", "multibase", - "multihash 0.17.0", + "multihash", "percent-encoding", "serde", "static_assertions", @@ -5370,9 +5791,9 @@ dependencies = [ [[package]] name = "multihash" -version = "0.16.3" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c346cf9999c631f002d8f977c4eaeaa0e6386f16007202308d0b3757522c2cc" +checksum = "835d6ff01d610179fbce3de1694d007e500bf33a7f29689838941d6bf783ae40" dependencies = [ "blake2b_simd", "blake2s_simd", @@ -5380,29 +5801,18 @@ dependencies = [ "core2", "digest 0.10.7", "multihash-derive", - "sha2 0.10.6", + "sha2 0.10.8", "sha3", "unsigned-varint", ] -[[package]] -name = "multihash" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "835d6ff01d610179fbce3de1694d007e500bf33a7f29689838941d6bf783ae40" -dependencies = [ - "core2", - "multihash-derive", - "unsigned-varint", -] - [[package]] name = "multihash-derive" version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc076939022111618a5026d3be019fd8b366e76314538ff9a1b59ffbcbf98bcd" dependencies = [ - "proc-macro-crate", + "proc-macro-crate 1.3.1", "proc-macro-error", "proc-macro2", "quote", @@ -5432,9 +5842,9 @@ dependencies = [ [[package]] name = "nalgebra" -version = "0.27.1" +version = "0.32.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "462fffe4002f4f2e1f6a9dcf12cc1a6fc0e15989014efc02a941d3e0f5dc2120" +checksum = "307ed9b18cc2423f29e83f84fd23a8e73628727990181f18641a8b5dc2ab1caa" dependencies = [ "approx", "matrixmultiply", @@ -5442,17 +5852,15 @@ dependencies = [ "num-complex", "num-rational", "num-traits", - "rand 0.8.5", - "rand_distr", "simba", "typenum", ] [[package]] name = "nalgebra-macros" -version = "0.1.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01fcc0b8149b4632adc89ac3b7b31a12fb6099a0317a4eb2ebff574ef7de7218" +checksum = "91761aed67d03ad966ef783ae962ef9bbaca728d2dd7ceb7939ec110fffad998" dependencies = [ "proc-macro2", "quote", @@ -5493,7 +5901,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9ea4302b9759a7a88242299225ea3688e63c85ea136371bb6cf94fd674efaab" dependencies = [ "anyhow", - "bitflags", + "bitflags 1.3.2", "byteorder", "libc", "netlink-packet-core", @@ -5546,25 +5954,22 @@ version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cfg-if", "libc", - "memoffset 0.6.5", ] [[package]] -name = "nix" -version = "0.26.2" +name = "no-std-net" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a" -dependencies = [ - "bitflags", - "cfg-if", - "libc", - "memoffset 0.7.1", - "pin-utils", - "static_assertions", -] +checksum = "43794a0ace135be66a25d3ae77d41b91615fb68ae937f904090203e81f755b65" + +[[package]] +name = "nodrop" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" [[package]] name = "nohash-hasher" @@ -5590,9 +5995,9 @@ checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" [[package]] name = "num-bigint" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f" +checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" dependencies = [ "autocfg", "num-integer", @@ -5601,9 +6006,9 @@ dependencies = [ [[package]] name = "num-complex" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02e0d21255c828d6f128a1e41534206671e8c3ea0c62f32291e808dc82cff17d" +checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214" dependencies = [ "num-traits", ] @@ -5614,7 +6019,7 @@ version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a652d9771a63711fd3c3deb670acfbe5c30a4072e664d7a3bf5a9e1056ac72c3" dependencies = [ - "arrayvec 0.7.2", + "arrayvec 0.7.4", "itoa", ] @@ -5642,35 +6047,28 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.15" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" dependencies = [ "autocfg", - "libm 0.2.7", ] [[package]] name = "num_cpus" -version = "1.15.0" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "hermit-abi 0.2.6", + "hermit-abi 0.3.3", "libc", ] [[package]] -name = "object" -version = "0.29.0" +name = "number_prefix" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21158b2c33aa6d4561f1c0a6ea283ca92bc54802a93b263e910746d679a7eb53" -dependencies = [ - "crc32fast", - "hashbrown 0.12.3", - "indexmap", - "memchr", -] +checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" [[package]] name = "object" @@ -5678,16 +6076,19 @@ version = "0.30.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "03b4680b86d9cfafba8fc491dc9b6df26b68cf40e9e6cd73909194759a63c385" dependencies = [ + "crc32fast", + "hashbrown 0.13.2", + "indexmap 1.9.3", "memchr", ] [[package]] -name = "oid-registry" -version = "0.4.0" +name = "object" +version = "0.32.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38e20717fa0541f39bd146692035c37bedfa532b3e5071b35761082407546b2a" +checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" dependencies = [ - "asn1-rs 0.3.1", + "memchr", ] [[package]] @@ -5696,14 +6097,14 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff" dependencies = [ - "asn1-rs 0.5.2", + "asn1-rs", ] [[package]] name = "once_cell" -version = "1.18.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "opaque-debug" @@ -5725,9 +6126,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "orchestra" -version = "0.0.4" +version = "0.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17e7d5b6bb115db09390bed8842c94180893dd83df3dfce7354f2a2aa090a4ee" +checksum = "227585216d05ba65c7ab0a0450a3cf2cbd81a98862a54c4df8e14d5ac6adb015" dependencies = [ "async-trait", "dyn-clonable", @@ -5742,14 +6143,14 @@ dependencies = [ [[package]] name = "orchestra-proc-macro" -version = "0.0.4" +version = "0.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2af4dabb2286b0be0e9711d2d24e25f6217048b71210cffd3daddc3b5c84e1f" +checksum = "2871aadd82a2c216ee68a69837a526dfe788ecbe74c4c5038a6acdbff6653066" dependencies = [ "expander 0.0.6", - "itertools", - "petgraph 0.6.3", - "proc-macro-crate", + "itertools 0.10.5", + "petgraph", + "proc-macro-crate 1.3.1", "proc-macro2", "quote", "syn 1.0.109", @@ -5767,7 +6168,7 @@ dependencies = [ [[package]] name = "orml-benchmarking" version = "0.4.1-dev" -source = "git+https://github.com/open-web3-stack/open-runtime-module-library?branch=polkadot-v0.9.38#241d5cdc98cca53b8cf990853943c9ae1193a70e" +source = "git+https://github.com/open-web3-stack/open-runtime-module-library?rev=b3694e631df7f1ca16b1973122937753fcdee9d4#b3694e631df7f1ca16b1973122937753fcdee9d4" dependencies = [ "frame-benchmarking", "frame-support", @@ -5779,39 +6180,24 @@ dependencies = [ "sp-api", "sp-io", "sp-runtime", - "sp-runtime-interface", + "sp-runtime-interface 17.0.0 (git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3)", "sp-std", "sp-storage", ] -[[package]] -name = "orml-currencies" -version = "0.4.1-dev" -source = "git+https://github.com/open-web3-stack/open-runtime-module-library?branch=polkadot-v0.9.38#241d5cdc98cca53b8cf990853943c9ae1193a70e" -dependencies = [ - "frame-support", - "frame-system", - "orml-traits", - "orml-utilities", - "parity-scale-codec", - "scale-info", - "serde", - "sp-io", - "sp-runtime", - "sp-std", -] - [[package]] name = "orml-tokens" version = "0.4.1-dev" -source = "git+https://github.com/open-web3-stack/open-runtime-module-library?branch=polkadot-v0.9.38#241d5cdc98cca53b8cf990853943c9ae1193a70e" +source = "git+https://github.com/open-web3-stack/open-runtime-module-library?rev=b3694e631df7f1ca16b1973122937753fcdee9d4#b3694e631df7f1ca16b1973122937753fcdee9d4" dependencies = [ "frame-support", "frame-system", + "log", "orml-traits", "parity-scale-codec", "scale-info", "serde", + "sp-arithmetic", "sp-runtime", "sp-std", ] @@ -5819,26 +6205,27 @@ dependencies = [ [[package]] name = "orml-traits" version = "0.4.1-dev" -source = "git+https://github.com/open-web3-stack/open-runtime-module-library?branch=polkadot-v0.9.38#241d5cdc98cca53b8cf990853943c9ae1193a70e" +source = "git+https://github.com/open-web3-stack/open-runtime-module-library?rev=b3694e631df7f1ca16b1973122937753fcdee9d4#b3694e631df7f1ca16b1973122937753fcdee9d4" dependencies = [ "frame-support", "impl-trait-for-tuples", "num-traits", "orml-utilities", "parity-scale-codec", + "paste", "scale-info", "serde", "sp-core", "sp-io", "sp-runtime", "sp-std", - "xcm", + "staging-xcm", ] [[package]] name = "orml-unknown-tokens" version = "0.4.1-dev" -source = "git+https://github.com/open-web3-stack/open-runtime-module-library?branch=polkadot-v0.9.38#241d5cdc98cca53b8cf990853943c9ae1193a70e" +source = "git+https://github.com/open-web3-stack/open-runtime-module-library?rev=b3694e631df7f1ca16b1973122937753fcdee9d4#b3694e631df7f1ca16b1973122937753fcdee9d4" dependencies = [ "frame-support", "frame-system", @@ -5847,18 +6234,19 @@ dependencies = [ "scale-info", "serde", "sp-std", - "xcm", + "staging-xcm", ] [[package]] name = "orml-utilities" version = "0.4.1-dev" -source = "git+https://github.com/open-web3-stack/open-runtime-module-library?branch=polkadot-v0.9.38#241d5cdc98cca53b8cf990853943c9ae1193a70e" +source = "git+https://github.com/open-web3-stack/open-runtime-module-library?rev=b3694e631df7f1ca16b1973122937753fcdee9d4#b3694e631df7f1ca16b1973122937753fcdee9d4" dependencies = [ "frame-support", "parity-scale-codec", "scale-info", "serde", + "sp-core", "sp-io", "sp-runtime", "sp-std", @@ -5867,7 +6255,7 @@ dependencies = [ [[package]] name = "orml-vesting" version = "0.4.1-dev" -source = "git+https://github.com/open-web3-stack/open-runtime-module-library?branch=polkadot-v0.9.38#241d5cdc98cca53b8cf990853943c9ae1193a70e" +source = "git+https://github.com/open-web3-stack/open-runtime-module-library?rev=b3694e631df7f1ca16b1973122937753fcdee9d4#b3694e631df7f1ca16b1973122937753fcdee9d4" dependencies = [ "frame-support", "frame-system", @@ -5882,7 +6270,7 @@ dependencies = [ [[package]] name = "orml-xcm" version = "0.4.1-dev" -source = "git+https://github.com/open-web3-stack/open-runtime-module-library?branch=polkadot-v0.9.38#241d5cdc98cca53b8cf990853943c9ae1193a70e" +source = "git+https://github.com/open-web3-stack/open-runtime-module-library?rev=b3694e631df7f1ca16b1973122937753fcdee9d4#b3694e631df7f1ca16b1973122937753fcdee9d4" dependencies = [ "frame-support", "frame-system", @@ -5890,31 +6278,52 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-std", - "xcm", + "staging-xcm", +] + +[[package]] +name = "orml-xcm-builder-kusama" +version = "1.0.0" +source = "git+https://github.com/open-web3-stack/orml-xcm-builder?rev=32f0b3f1cbe77d4d330e07c7d4fcc3ebd669db77#32f0b3f1cbe77d4d330e07c7d4fcc3ebd669db77" +dependencies = [ + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-arithmetic", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "sp-weights", + "staging-xcm", + "staging-xcm-executor", ] [[package]] name = "orml-xcm-support" version = "0.4.1-dev" -source = "git+https://github.com/open-web3-stack/open-runtime-module-library?branch=polkadot-v0.9.38#241d5cdc98cca53b8cf990853943c9ae1193a70e" +source = "git+https://github.com/open-web3-stack/open-runtime-module-library?rev=b3694e631df7f1ca16b1973122937753fcdee9d4#b3694e631df7f1ca16b1973122937753fcdee9d4" dependencies = [ "frame-support", "orml-traits", "parity-scale-codec", "sp-runtime", "sp-std", - "xcm", - "xcm-executor", + "staging-xcm", + "staging-xcm-executor", ] [[package]] name = "orml-xtokens" version = "0.4.1-dev" -source = "git+https://github.com/open-web3-stack/open-runtime-module-library?branch=polkadot-v0.9.38#241d5cdc98cca53b8cf990853943c9ae1193a70e" +source = "git+https://github.com/open-web3-stack/open-runtime-module-library?rev=b3694e631df7f1ca16b1973122937753fcdee9d4#b3694e631df7f1ca16b1973122937753fcdee9d4" dependencies = [ "cumulus-primitives-core", "frame-support", "frame-system", + "log", "orml-traits", "orml-xcm-support", "pallet-xcm", @@ -5924,80 +6333,75 @@ dependencies = [ "sp-io", "sp-runtime", "sp-std", - "xcm", - "xcm-executor", -] - -[[package]] -name = "output_vt100" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "628223faebab4e3e40667ee0b2336d34a5b960ff60ea743ddfdbcf7770bcfb66" -dependencies = [ - "winapi", -] - -[[package]] -name = "p256" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51f44edd08f51e2ade572f141051021c5af22677e42b7dd28a88155151c33594" -dependencies = [ - "ecdsa", - "elliptic-curve", - "sha2 0.10.6", + "staging-xcm", + "staging-xcm-executor", ] [[package]] -name = "p384" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc8c5bf642dde52bb9e87c0ecd8ca5a76faac2eeed98dedb7c717997e1080aa" +name = "pallet-asset-registry" +version = "2.3.3" +source = "git+https://github.com/galacticcouncil/HydraDX-node?rev=7e997371d7f2110f7719d2f279a153feb973b994#7e997371d7f2110f7719d2f279a153feb973b994" dependencies = [ - "ecdsa", - "elliptic-curve", - "sha2 0.10.6", + "frame-benchmarking", + "frame-support", + "frame-system", + "hydradx-traits", + "log", + "orml-traits", + "parity-scale-codec", + "primitive-types", + "scale-info", + "serde", + "sp-api", + "sp-arithmetic", + "sp-core", + "sp-runtime", + "sp-std", + "substrate-wasm-builder", ] [[package]] -name = "packed_simd_2" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1914cd452d8fccd6f9db48147b29fd4ae05bea9dc5d9ad578509f72415de282" +name = "pallet-asset-tx-payment" +version = "4.0.0-dev" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ - "cfg-if", - "libm 0.1.4", + "frame-benchmarking", + "frame-support", + "frame-system", + "pallet-transaction-payment", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] -name = "pallet-asset-registry" -version = "2.2.2" -source = "git+https://github.com/galacticcouncil/HydraDX-node?rev=b59c0379b312e9b3df365f407aa48b43bc4ca833#b59c0379b312e9b3df365f407aa48b43bc4ca833" +name = "pallet-assets" +version = "4.0.0-dev" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", - "hydradx-traits", - "orml-traits", + "log", "parity-scale-codec", - "primitive-types 0.12.1", "scale-info", - "serde", - "sp-api", - "sp-arithmetic", "sp-core", "sp-runtime", "sp-std", - "substrate-wasm-builder", ] [[package]] name = "pallet-aura" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "frame-support", "frame-system", + "log", "pallet-timestamp", "parity-scale-codec", "scale-info", @@ -6010,7 +6414,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "frame-support", "frame-system", @@ -6026,7 +6430,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "frame-support", "frame-system", @@ -6040,7 +6444,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "frame-benchmarking", "frame-support", @@ -6053,7 +6457,7 @@ dependencies = [ "scale-info", "sp-application-crypto", "sp-consensus-babe", - "sp-consensus-vrf", + "sp-core", "sp-io", "sp-runtime", "sp-session", @@ -6064,8 +6468,10 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ + "aquamarine", + "docify", "frame-benchmarking", "frame-election-provider-support", "frame-support", @@ -6078,13 +6484,13 @@ dependencies = [ "sp-io", "sp-runtime", "sp-std", - "sp-tracing", + "sp-tracing 10.0.0 (git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3)", ] [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "frame-benchmarking", "frame-support", @@ -6099,26 +6505,30 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "frame-support", "frame-system", + "log", + "pallet-authorship", "pallet-session", "parity-scale-codec", "scale-info", "serde", - "sp-beefy", + "sp-consensus-beefy", "sp-runtime", + "sp-session", + "sp-staking", "sp-std", ] [[package]] name = "pallet-beefy-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ - "array-bytes 4.2.0", - "beefy-merkle-tree", + "array-bytes", + "binary-merkle-tree", "frame-support", "frame-system", "log", @@ -6128,17 +6538,19 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-beefy", + "sp-api", + "sp-consensus-beefy", "sp-core", "sp-io", "sp-runtime", + "sp-state-machine", "sp-std", ] [[package]] name = "pallet-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "frame-benchmarking", "frame-support", @@ -6156,7 +6568,7 @@ dependencies = [ [[package]] name = "pallet-child-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "frame-benchmarking", "frame-support", @@ -6174,8 +6586,8 @@ dependencies = [ [[package]] name = "pallet-circuit-breaker" -version = "1.1.14" -source = "git+https://github.com/galacticcouncil/HydraDX-node?rev=b59c0379b312e9b3df365f407aa48b43bc4ca833#b59c0379b312e9b3df365f407aa48b43bc4ca833" +version = "1.1.18" +source = "git+https://github.com/galacticcouncil/HydraDX-node?rev=7e997371d7f2110f7719d2f279a153feb973b994#7e997371d7f2110f7719d2f279a153feb973b994" dependencies = [ "frame-support", "frame-system", @@ -6190,8 +6602,8 @@ dependencies = [ [[package]] name = "pallet-collator-rewards" -version = "1.0.4" -source = "git+https://github.com/galacticcouncil/HydraDX-node?rev=b59c0379b312e9b3df365f407aa48b43bc4ca833#b59c0379b312e9b3df365f407aa48b43bc4ca833" +version = "1.0.6" +source = "git+https://github.com/galacticcouncil/HydraDX-node?rev=7e997371d7f2110f7719d2f279a153feb973b994#7e997371d7f2110f7719d2f279a153feb973b994" dependencies = [ "frame-support", "frame-system", @@ -6210,7 +6622,7 @@ dependencies = [ [[package]] name = "pallet-collator-selection" version = "3.0.0" -source = "git+https://github.com/galacticcouncil/cumulus.git?branch=feat/xcmp-defer-xcm-v9-38#a03c6bd502c64900c29df35c76ba1504debc5169" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "frame-benchmarking", "frame-support", @@ -6229,7 +6641,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "frame-benchmarking", "frame-support", @@ -6246,7 +6658,7 @@ dependencies = [ [[package]] name = "pallet-conviction-voting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "assert_matches", "frame-benchmarking", @@ -6262,8 +6674,8 @@ dependencies = [ [[package]] name = "pallet-currencies" -version = "1.2.1" -source = "git+https://github.com/galacticcouncil/HydraDX-node?rev=b59c0379b312e9b3df365f407aa48b43bc4ca833#b59c0379b312e9b3df365f407aa48b43bc4ca833" +version = "2.0.0" +source = "git+https://github.com/galacticcouncil/HydraDX-node?rev=7e997371d7f2110f7719d2f279a153feb973b994#7e997371d7f2110f7719d2f279a153feb973b994" dependencies = [ "frame-support", "frame-system", @@ -6280,7 +6692,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "frame-benchmarking", "frame-support", @@ -6295,32 +6707,49 @@ dependencies = [ "sp-std", ] +[[package]] +name = "pallet-democracy" +version = "4.1.0" +source = "git+https://github.com/galacticcouncil/HydraDX-node?rev=7e997371d7f2110f7719d2f279a153feb973b994#7e997371d7f2110f7719d2f279a153feb973b994" +dependencies = [ + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + [[package]] name = "pallet-duster" -version = "3.2.3" -source = "git+https://github.com/galacticcouncil/HydraDX-node?rev=b59c0379b312e9b3df365f407aa48b43bc4ca833#b59c0379b312e9b3df365f407aa48b43bc4ca833" +version = "3.2.4" +source = "git+https://github.com/galacticcouncil/HydraDX-node?rev=7e997371d7f2110f7719d2f279a153feb973b994#7e997371d7f2110f7719d2f279a153feb973b994" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "hydradx-traits", + "log", "orml-traits", "parity-scale-codec", "scale-info", "serde", + "sp-runtime", "sp-std", "substrate-wasm-builder", ] [[package]] name = "pallet-dynamic-fees" -version = "1.0.1" -source = "git+https://github.com/galacticcouncil/HydraDX-node?rev=b59c0379b312e9b3df365f407aa48b43bc4ca833#b59c0379b312e9b3df365f407aa48b43bc4ca833" +version = "1.0.2" +source = "git+https://github.com/galacticcouncil/HydraDX-node?rev=7e997371d7f2110f7719d2f279a153feb973b994#7e997371d7f2110f7719d2f279a153feb973b994" dependencies = [ "frame-support", "frame-system", "hydra-dx-math", - "hydradx-traits", "orml-traits", "parity-scale-codec", "scale-info", @@ -6332,14 +6761,14 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "frame-benchmarking", "frame-election-provider-support", "frame-support", "frame-system", "log", - "pallet-election-provider-support-benchmarking 4.0.0-dev (git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38)", + "pallet-election-provider-support-benchmarking", "parity-scale-codec", "rand 0.8.5", "scale-info", @@ -6349,26 +6778,13 @@ dependencies = [ "sp-npos-elections", "sp-runtime", "sp-std", - "strum", -] - -[[package]] -name = "pallet-election-provider-support-benchmarking" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" -dependencies = [ - "frame-benchmarking", - "frame-election-provider-support", - "frame-system", - "parity-scale-codec", - "sp-npos-elections", - "sp-runtime", + "strum 0.24.1", ] [[package]] name = "pallet-election-provider-support-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6376,12 +6792,13 @@ dependencies = [ "parity-scale-codec", "sp-npos-elections", "sp-runtime", + "sp-std", ] [[package]] name = "pallet-elections-phragmen" version = "5.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "frame-benchmarking", "frame-support", @@ -6393,13 +6810,14 @@ dependencies = [ "sp-io", "sp-npos-elections", "sp-runtime", + "sp-staking", "sp-std", ] [[package]] name = "pallet-ema-oracle" -version = "1.1.0" -source = "git+https://github.com/galacticcouncil/HydraDX-node?rev=b59c0379b312e9b3df365f407aa48b43bc4ca833#b59c0379b312e9b3df365f407aa48b43bc4ca833" +version = "1.1.3" +source = "git+https://github.com/galacticcouncil/HydraDX-node?rev=7e997371d7f2110f7719d2f279a153feb973b994#7e997371d7f2110f7719d2f279a153feb973b994" dependencies = [ "frame-benchmarking", "frame-support", @@ -6412,14 +6830,40 @@ dependencies = [ "serde", "sp-arithmetic", "sp-core", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-evm" +version = "6.0.0-dev" +source = "git+https://github.com/moonbeam-foundation/frontier?branch=moonbeam-polkadot-v1.1.0#bf5885a982041cc744ecbb62a2afc13d56d464dc" +dependencies = [ + "environmental", + "evm", + "fp-account", + "fp-evm", + "frame-benchmarking", + "frame-support", + "frame-system", + "hex-literal 0.4.1", + "impl-trait-for-tuples", + "log", + "parity-scale-codec", + "rlp", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", "sp-std", ] [[package]] name = "pallet-fast-unstake" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ + "docify", "frame-benchmarking", "frame-election-provider-support", "frame-support", @@ -6436,7 +6880,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "frame-benchmarking", "frame-support", @@ -6447,8 +6891,8 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-application-crypto", + "sp-consensus-grandpa", "sp-core", - "sp-finality-grandpa", "sp-io", "sp-runtime", "sp-session", @@ -6459,7 +6903,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "enumflags2", "frame-benchmarking", @@ -6475,7 +6919,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "frame-benchmarking", "frame-support", @@ -6495,7 +6939,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "frame-benchmarking", "frame-support", @@ -6511,33 +6955,30 @@ dependencies = [ [[package]] name = "pallet-lbp" -version = "4.6.13" +version = "4.7.3" +source = "git+https://github.com/galacticcouncil/HydraDX-node?rev=7e997371d7f2110f7719d2f279a153feb973b994#7e997371d7f2110f7719d2f279a153feb973b994" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", - "frame-system-benchmarking", "hydra-dx-math", "hydradx-traits", "orml-tokens", "orml-traits", "parity-scale-codec", - "primitive-types 0.12.1", - "primitives 6.5.0", + "primitive-types", "scale-info", "serde", "sp-core", - "sp-io", "sp-runtime", "sp-std", "substrate-wasm-builder", - "test-utils", ] [[package]] name = "pallet-liquidity-mining" -version = "4.2.3" -source = "git+https://github.com/galacticcouncil/HydraDX-node?rev=b59c0379b312e9b3df365f407aa48b43bc4ca833#b59c0379b312e9b3df365f407aa48b43bc4ca833" +version = "4.2.5" +source = "git+https://github.com/galacticcouncil/HydraDX-node?rev=7e997371d7f2110f7719d2f279a153feb973b994#7e997371d7f2110f7719d2f279a153feb973b994" dependencies = [ "frame-support", "frame-system", @@ -6553,18 +6994,17 @@ dependencies = [ [[package]] name = "pallet-marketplace" -version = "5.0.15" +version = "5.0.17" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", - "orml-utilities", "pallet-balances", "pallet-nft", "pallet-uniques", "parity-scale-codec", "pretty_assertions", - "primitives 6.5.0", + "primitives 6.6.0", "scale-info", "serde", "sp-arithmetic", @@ -6577,7 +7017,24 @@ dependencies = [ [[package]] name = "pallet-membership" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-message-queue" +version = "7.0.0-dev" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "frame-benchmarking", "frame-support", @@ -6585,20 +7042,23 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", + "sp-arithmetic", "sp-core", "sp-io", "sp-runtime", "sp-std", + "sp-weights", ] [[package]] name = "pallet-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", + "log", "parity-scale-codec", "scale-info", "sp-core", @@ -6611,7 +7071,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "frame-benchmarking", "frame-support", @@ -6626,14 +7086,14 @@ dependencies = [ [[package]] name = "pallet-nft" -version = "7.1.1" -source = "git+https://github.com/galacticcouncil/HydraDX-node?rev=b59c0379b312e9b3df365f407aa48b43bc4ca833#b59c0379b312e9b3df365f407aa48b43bc4ca833" +version = "7.1.2" +source = "git+https://github.com/galacticcouncil/HydraDX-node?rev=7e997371d7f2110f7719d2f279a153feb973b994#7e997371d7f2110f7719d2f279a153feb973b994" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "hydradx-traits", - "orml-utilities", + "log", "pallet-uniques", "parity-scale-codec", "scale-info", @@ -6646,7 +7106,7 @@ dependencies = [ [[package]] name = "pallet-nis" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "frame-benchmarking", "frame-support", @@ -6662,11 +7122,12 @@ dependencies = [ [[package]] name = "pallet-nomination-pools" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "frame-support", "frame-system", "log", + "pallet-balances", "parity-scale-codec", "scale-info", "sp-core", @@ -6674,12 +7135,13 @@ dependencies = [ "sp-runtime", "sp-staking", "sp-std", + "sp-tracing 10.0.0 (git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3)", ] [[package]] name = "pallet-nomination-pools-benchmarking" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6687,11 +7149,11 @@ dependencies = [ "frame-system", "pallet-bags-list", "pallet-nomination-pools", - "pallet-staking", + "pallet-staking 4.0.0-dev", "parity-scale-codec", "scale-info", "sp-runtime", - "sp-runtime-interface", + "sp-runtime-interface 17.0.0 (git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3)", "sp-staking", "sp-std", ] @@ -6699,8 +7161,9 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-runtime-api" version = "1.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ + "pallet-nomination-pools", "parity-scale-codec", "sp-api", "sp-std", @@ -6709,7 +7172,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "frame-support", "frame-system", @@ -6726,7 +7189,7 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6739,7 +7202,7 @@ dependencies = [ "pallet-im-online", "pallet-offences", "pallet-session", - "pallet-staking", + "pallet-staking 4.0.0-dev", "parity-scale-codec", "scale-info", "sp-runtime", @@ -6749,10 +7212,10 @@ dependencies = [ [[package]] name = "pallet-omnipool" -version = "3.1.0" -source = "git+https://github.com/galacticcouncil/HydraDX-node?rev=b59c0379b312e9b3df365f407aa48b43bc4ca833#b59c0379b312e9b3df365f407aa48b43bc4ca833" +version = "4.0.2" +source = "git+https://github.com/galacticcouncil/HydraDX-node?rev=7e997371d7f2110f7719d2f279a153feb973b994#7e997371d7f2110f7719d2f279a153feb973b994" dependencies = [ - "bitflags", + "bitflags 1.3.2", "frame-support", "frame-system", "hydra-dx-math", @@ -6761,7 +7224,7 @@ dependencies = [ "log", "orml-traits", "parity-scale-codec", - "primitive-types 0.12.1", + "primitive-types", "scale-info", "sp-runtime", "sp-std", @@ -6769,21 +7232,22 @@ dependencies = [ [[package]] name = "pallet-omnipool-liquidity-mining" -version = "2.0.10" -source = "git+https://github.com/galacticcouncil/HydraDX-node?rev=b59c0379b312e9b3df365f407aa48b43bc4ca833#b59c0379b312e9b3df365f407aa48b43bc4ca833" +version = "2.0.13" +source = "git+https://github.com/galacticcouncil/HydraDX-node?rev=7e997371d7f2110f7719d2f279a153feb973b994#7e997371d7f2110f7719d2f279a153feb973b994" dependencies = [ - "bitflags", + "bitflags 1.3.2", "frame-support", "frame-system", "hydra-dx-math", "hydradx-traits", + "log", "orml-traits", "pallet-ema-oracle", "pallet-liquidity-mining", "pallet-omnipool", "parity-scale-codec", - "primitive-types 0.12.1", - "primitives 5.8.2", + "primitive-types", + "primitives 6.0.2", "scale-info", "sp-runtime", "sp-std", @@ -6792,7 +7256,7 @@ dependencies = [ [[package]] name = "pallet-preimage" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "frame-benchmarking", "frame-support", @@ -6809,7 +7273,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "frame-benchmarking", "frame-support", @@ -6824,7 +7288,7 @@ dependencies = [ [[package]] name = "pallet-ranked-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "frame-benchmarking", "frame-support", @@ -6842,7 +7306,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "frame-benchmarking", "frame-support", @@ -6857,7 +7321,7 @@ dependencies = [ [[package]] name = "pallet-referenda" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "assert_matches", "frame-benchmarking", @@ -6875,8 +7339,8 @@ dependencies = [ [[package]] name = "pallet-relaychain-info" -version = "0.3.3" -source = "git+https://github.com/galacticcouncil/HydraDX-node?rev=b59c0379b312e9b3df365f407aa48b43bc4ca833#b59c0379b312e9b3df365f407aa48b43bc4ca833" +version = "0.3.4" +source = "git+https://github.com/galacticcouncil/HydraDX-node?rev=7e997371d7f2110f7719d2f279a153feb973b994#7e997371d7f2110f7719d2f279a153feb973b994" dependencies = [ "cumulus-pallet-parachain-system", "cumulus-primitives-core", @@ -6890,13 +7354,14 @@ dependencies = [ [[package]] name = "pallet-route-executor" -version = "1.0.5" -source = "git+https://github.com/galacticcouncil/HydraDX-node?rev=b59c0379b312e9b3df365f407aa48b43bc4ca833#b59c0379b312e9b3df365f407aa48b43bc4ca833" +version = "1.3.1" +source = "git+https://github.com/galacticcouncil/HydraDX-node?rev=7e997371d7f2110f7719d2f279a153feb973b994#7e997371d7f2110f7719d2f279a153feb973b994" dependencies = [ "frame-support", "frame-system", "hydradx-traits", "orml-traits", + "pallet-balances", "parity-scale-codec", "scale-info", "sp-core", @@ -6907,8 +7372,9 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ + "docify", "frame-benchmarking", "frame-support", "frame-system", @@ -6924,7 +7390,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "frame-support", "frame-system", @@ -6938,6 +7404,7 @@ dependencies = [ "sp-runtime", "sp-session", "sp-staking", + "sp-state-machine", "sp-std", "sp-trie", ] @@ -6945,13 +7412,14 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "pallet-session", - "pallet-staking", + "pallet-staking 4.0.0-dev", + "parity-scale-codec", "rand 0.8.5", "sp-runtime", "sp-session", @@ -6961,13 +7429,55 @@ dependencies = [ [[package]] name = "pallet-society" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ + "frame-benchmarking", "frame-support", "frame-system", + "log", "parity-scale-codec", "rand_chacha 0.2.2", "scale-info", + "sp-arithmetic", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-stableswap" +version = "3.4.2" +source = "git+https://github.com/galacticcouncil/HydraDX-node?rev=7e997371d7f2110f7719d2f279a153feb973b994#7e997371d7f2110f7719d2f279a153feb973b994" +dependencies = [ + "bitflags 1.3.2", + "frame-support", + "frame-system", + "hydra-dx-math", + "hydradx-traits", + "orml-traits", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-staking" +version = "2.1.1" +source = "git+https://github.com/galacticcouncil/HydraDX-node?rev=7e997371d7f2110f7719d2f279a153feb973b994#7e997371d7f2110f7719d2f279a153feb973b994" +dependencies = [ + "frame-support", + "frame-system", + "hydra-dx-math", + "log", + "orml-traits", + "pallet-democracy 4.1.0", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", "sp-runtime", "sp-std", ] @@ -6975,7 +7485,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6998,27 +7508,36 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ - "proc-macro-crate", + "proc-macro-crate 1.3.1", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.39", ] [[package]] name = "pallet-staking-reward-fn" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "log", "sp-arithmetic", ] +[[package]] +name = "pallet-staking-runtime-api" +version = "4.0.0-dev" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" +dependencies = [ + "parity-scale-codec", + "sp-api", +] + [[package]] name = "pallet-state-trie-migration" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "frame-benchmarking", "frame-support", @@ -7035,8 +7554,9 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ + "frame-benchmarking", "frame-support", "frame-system", "parity-scale-codec", @@ -7049,7 +7569,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "frame-benchmarking", "frame-support", @@ -7061,13 +7581,14 @@ dependencies = [ "sp-io", "sp-runtime", "sp-std", + "sp-storage", "sp-timestamp", ] [[package]] name = "pallet-tips" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "frame-benchmarking", "frame-support", @@ -7085,15 +7606,18 @@ dependencies = [ [[package]] name = "pallet-transaction-multi-payment" -version = "9.0.1" -source = "git+https://github.com/galacticcouncil/HydraDX-node?rev=b59c0379b312e9b3df365f407aa48b43bc4ca833#b59c0379b312e9b3df365f407aa48b43bc4ca833" +version = "9.1.1" +source = "git+https://github.com/galacticcouncil/HydraDX-node?rev=7e997371d7f2110f7719d2f279a153feb973b994#7e997371d7f2110f7719d2f279a153feb973b994" dependencies = [ "frame-support", "frame-system", + "hydra-dx-math", "hydradx-traits", "orml-traits", + "pallet-evm", "pallet-transaction-payment", "parity-scale-codec", + "primitives 6.0.2", "scale-info", "sp-api", "sp-core", @@ -7103,12 +7627,13 @@ dependencies = [ [[package]] name = "pallet-transaction-pause" -version = "0.1.3" -source = "git+https://github.com/galacticcouncil/HydraDX-node?rev=b59c0379b312e9b3df365f407aa48b43bc4ca833#b59c0379b312e9b3df365f407aa48b43bc4ca833" +version = "1.0.1" +source = "git+https://github.com/galacticcouncil/HydraDX-node?rev=7e997371d7f2110f7719d2f279a153feb973b994#7e997371d7f2110f7719d2f279a153feb973b994" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", + "log", "parity-scale-codec", "scale-info", "sp-runtime", @@ -7118,7 +7643,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "frame-support", "frame-system", @@ -7134,7 +7659,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", @@ -7150,7 +7675,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -7162,7 +7687,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "frame-benchmarking", "frame-support", @@ -7179,7 +7704,7 @@ dependencies = [ [[package]] name = "pallet-uniques" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "frame-benchmarking", "frame-support", @@ -7194,7 +7719,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "frame-benchmarking", "frame-support", @@ -7210,7 +7735,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "frame-benchmarking", "frame-support", @@ -7225,7 +7750,7 @@ dependencies = [ [[package]] name = "pallet-whitelist" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "frame-benchmarking", "frame-support", @@ -7239,9 +7764,10 @@ dependencies = [ [[package]] name = "pallet-xcm" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ + "bounded-collections", "frame-benchmarking", "frame-support", "frame-system", @@ -7253,14 +7779,14 @@ dependencies = [ "sp-io", "sp-runtime", "sp-std", - "xcm", - "xcm-executor", + "staging-xcm", + "staging-xcm-executor", ] [[package]] name = "pallet-xcm-benchmarks" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "frame-benchmarking", "frame-support", @@ -7271,15 +7797,15 @@ dependencies = [ "sp-io", "sp-runtime", "sp-std", - "xcm", - "xcm-builder", - "xcm-executor", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", ] [[package]] name = "pallet-xcm-rate-limiter" -version = "0.1.0" -source = "git+https://github.com/galacticcouncil/HydraDX-node?rev=b59c0379b312e9b3df365f407aa48b43bc4ca833#b59c0379b312e9b3df365f407aa48b43bc4ca833" +version = "0.1.3" +source = "git+https://github.com/galacticcouncil/HydraDX-node?rev=7e997371d7f2110f7719d2f279a153feb973b994#7e997371d7f2110f7719d2f279a153feb973b994" dependencies = [ "cumulus-pallet-xcmp-queue", "frame-benchmarking", @@ -7290,40 +7816,34 @@ dependencies = [ "orml-traits", "parity-scale-codec", "polkadot-core-primitives", - "polkadot-parachain", + "polkadot-parachain-primitives", "scale-info", "serde", "sp-core", "sp-io", "sp-runtime", "sp-std", - "xcm", + "staging-xcm", ] [[package]] name = "pallet-xyk" -version = "6.2.8" +version = "6.3.4" +source = "git+https://github.com/galacticcouncil/HydraDX-node?rev=7e997371d7f2110f7719d2f279a153feb973b994#7e997371d7f2110f7719d2f279a153feb973b994" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", - "frame-system-benchmarking", "hydra-dx-math", "hydradx-traits", "log", "orml-tokens", "orml-traits", - "orml-utilities", - "pallet-asset-registry", "parity-scale-codec", - "primitive-types 0.12.1", - "primitives 6.5.0", - "proptest", + "primitive-types", "scale-info", "serde", - "sp-api", "sp-core", - "sp-io", "sp-runtime", "sp-std", "substrate-wasm-builder", @@ -7331,22 +7851,22 @@ dependencies = [ [[package]] name = "pallet-xyk-liquidity-mining" -version = "1.1.8" +version = "1.1.10" dependencies = [ "frame-support", "frame-system", "hydradx-traits", "lazy_static", "log", - "orml-currencies", "orml-tokens", "orml-traits", "pallet-balances", "pallet-liquidity-mining", "pallet-nft", + "pallet-xyk", "parity-scale-codec", "pretty_assertions", - "primitives 6.5.0", + "primitives 6.6.0", "scale-info", "sp-arithmetic", "sp-core", @@ -7357,14 +7877,12 @@ dependencies = [ [[package]] name = "pallet-xyk-liquidity-mining-benchmarking" -version = "1.0.15" +version = "1.0.16" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", - "frame-system-benchmarking", "hydradx-traits", - "orml-currencies", "orml-tokens", "orml-traits", "pallet-asset-registry", @@ -7376,7 +7894,7 @@ dependencies = [ "pallet-xyk", "pallet-xyk-liquidity-mining", "parity-scale-codec", - "primitives 6.5.0", + "primitives 6.6.0", "scale-info", "sp-arithmetic", "sp-core", @@ -7388,109 +7906,58 @@ dependencies = [ [[package]] name = "parachain-info" version = "0.1.0" -source = "git+https://github.com/galacticcouncil/cumulus.git?branch=feat/xcmp-defer-xcm-v9-38#a03c6bd502c64900c29df35c76ba1504debc5169" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "cumulus-primitives-core", "frame-support", "frame-system", "parity-scale-codec", "scale-info", + "sp-runtime", + "sp-std", ] [[package]] -name = "parachain-runtime-mock" -version = "0.2.9" +name = "parachains-common" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ - "basilisk-runtime", - "cumulus-pallet-aura-ext", - "cumulus-pallet-dmp-queue", - "cumulus-pallet-parachain-system", - "cumulus-pallet-xcm", - "cumulus-pallet-xcmp-queue", "cumulus-primitives-core", - "cumulus-primitives-parachain-inherent", - "cumulus-primitives-timestamp", "cumulus-primitives-utility", - "frame-benchmarking", - "frame-executive", "frame-support", "frame-system", - "frame-system-benchmarking", - "frame-system-rpc-runtime-api", - "hex-literal 0.4.1", - "hydradx-adapters", - "hydradx-traits", - "kusama-runtime", - "orml-tokens", - "orml-traits", - "orml-unknown-tokens", - "orml-vesting", - "orml-xcm-support", - "orml-xtokens", - "pallet-asset-registry", - "pallet-aura", + "kusama-runtime-constants", + "log", + "num-traits", + "pallet-asset-tx-payment", + "pallet-assets", "pallet-authorship", "pallet-balances", "pallet-collator-selection", - "pallet-collective", - "pallet-currencies", - "pallet-democracy", - "pallet-duster", - "pallet-elections-phragmen", - "pallet-lbp", - "pallet-marketplace", - "pallet-nft", - "pallet-relaychain-info", - "pallet-route-executor", - "pallet-scheduler", - "pallet-session", - "pallet-timestamp", - "pallet-tips", - "pallet-transaction-multi-payment", - "pallet-transaction-payment", - "pallet-transaction-payment-rpc-runtime-api", - "pallet-treasury", - "pallet-uniques", - "pallet-utility", - "pallet-xcm", - "pallet-xyk", - "parachain-info", "parity-scale-codec", - "polkadot-parachain", + "polkadot-core-primitives", "polkadot-primitives", - "polkadot-runtime-parachains", - "pretty_assertions", - "primitives 6.5.0", + "polkadot-runtime-constants", + "rococo-runtime-constants", "scale-info", - "serde", - "sp-api", - "sp-arithmetic", - "sp-block-builder", + "smallvec", "sp-consensus-aura", "sp-core", - "sp-externalities", - "sp-inherents", "sp-io", - "sp-offchain", "sp-runtime", - "sp-session", - "sp-staking", "sp-std", - "sp-transaction-pool", - "sp-trie", - "sp-version", - "test-case", - "xcm", - "xcm-builder", - "xcm-emulator 0.1.0 (git+https://github.com/shaunxw/xcm-simulator?rev=6847a58888e483f0ed2e0b72f90e00767ea0ecac)", - "xcm-executor", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", + "substrate-wasm-builder", + "westend-runtime-constants", ] [[package]] name = "parity-db" -version = "0.4.8" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4890dcb9556136a4ec2b0c51fa4a08c8b733b829506af8fff2e853f3a065985b" +checksum = "59e9ab494af9e6e813c72170f0d3c1de1500990d62c97cc05cc7576f91aa402f" dependencies = [ "blake2", "crc32fast", @@ -7508,11 +7975,11 @@ dependencies = [ [[package]] name = "parity-scale-codec" -version = "3.5.0" +version = "3.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ddb756ca205bd108aee3c62c6d3c994e1df84a59b9d6d4a5ea42ee1fd5a9a28" +checksum = "881331e34fa842a2fb61cc2db9643a8fedc615e47cfcc52597d1af0db9a7e8fe" dependencies = [ - "arrayvec 0.7.2", + "arrayvec 0.7.4", "bitvec", "byte-slice-cast", "bytes", @@ -7523,11 +7990,11 @@ dependencies = [ [[package]] name = "parity-scale-codec-derive" -version = "3.1.4" +version = "3.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b26a931f824dd4eca30b3e43bb4f31cd5f0d3a403c5f5ff27106b805bfde7b" +checksum = "be30eaf4b0a9fba5336683b38de57bb86d179a35862ba6bfcf57625d006bde5b" dependencies = [ - "proc-macro-crate", + "proc-macro-crate 2.0.1", "proc-macro2", "quote", "syn 1.0.109", @@ -7547,9 +8014,9 @@ checksum = "e1ad0aff30c1da14b1254fcb2af73e1fa9a28670e584a626f53a369d0e157304" [[package]] name = "parking" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14f2252c834a40ed9bb5422029649578e63aa341ac401f74e719dd1afda8394e" +checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" [[package]] name = "parking_lot" @@ -7569,7 +8036,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", - "parking_lot_core 0.9.8", + "parking_lot_core 0.9.9", ] [[package]] @@ -7588,22 +8055,28 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.8" +version = "0.9.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" +checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.3.5", + "redox_syscall 0.4.1", "smallvec", - "windows-targets", + "windows-targets 0.48.5", ] +[[package]] +name = "partial_sort" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7924d1d0ad836f665c9065e26d016c673ece3993f30d340068b16f282afc1156" + [[package]] name = "paste" -version = "1.0.12" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f746c4065a8fa3fe23974dd82f15431cc8d40779821001404d10d2e79ca7d79" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" [[package]] name = "pbkdf2" @@ -7623,6 +8096,15 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "pbkdf2" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" +dependencies = [ + "digest 0.10.7", +] + [[package]] name = "peeking_take_while" version = "0.1.2" @@ -7638,36 +8120,28 @@ dependencies = [ "base64 0.13.1", ] -[[package]] -name = "pem-rfc7468" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d159833a9105500e0398934e205e0773f0b27529557134ecfc51c27646adac" -dependencies = [ - "base64ct", -] - [[package]] name = "percent-encoding" -version = "2.3.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.6.0" +version = "2.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e68e84bfb01f0507134eac1e9b410a12ba379d064eab48c50ba4ce329a527b70" +checksum = "ae9cee2a55a544be8b89dc6848072af97a20f2422603c10865be2a42b580fff5" dependencies = [ + "memchr", "thiserror", "ucd-trie", ] [[package]] name = "pest_derive" -version = "2.6.0" +version = "2.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b79d4c71c865a25a4322296122e3924d30bc8ee0834c8bfc8b95f7f054afbfb" +checksum = "81d78524685f5ef2a3b3bd1cafbc9fcabb036253d9b1463e726a91cd16e2dfc2" dependencies = [ "pest", "pest_generator", @@ -7675,66 +8149,56 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.6.0" +version = "2.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c435bf1076437b851ebc8edc3a18442796b30f1728ffea6262d59bbe28b077e" +checksum = "68bd1206e71118b5356dae5ddc61c8b11e28b09ef6a31acbd15ea48a28e0c227" dependencies = [ "pest", "pest_meta", "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.39", ] [[package]] name = "pest_meta" -version = "2.6.0" +version = "2.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "745a452f8eb71e39ffd8ee32b3c5f51d03845f99786fa9b68db6ff509c505411" +checksum = "7c747191d4ad9e4a4ab9c8798f1e82a39affe7ef9648390b7e5548d18e099de6" dependencies = [ "once_cell", "pest", - "sha2 0.10.6", -] - -[[package]] -name = "petgraph" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "467d164a6de56270bd7c4d070df81d07beace25012d5103ced4e9ff08d6afdb7" -dependencies = [ - "fixedbitset 0.2.0", - "indexmap", + "sha2 0.10.8", ] [[package]] name = "petgraph" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dd7d28ee937e54fe3080c91faa1c3a46c06de6252988a7f4592ba2310ef22a4" +checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" dependencies = [ - "fixedbitset 0.4.2", - "indexmap", + "fixedbitset", + "indexmap 2.1.0", ] [[package]] name = "pin-project" -version = "1.1.0" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c95a7476719eab1e366eaf73d0260af3021184f18177925b07f54b30089ceead" +checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.0" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39407670928234ebc5e6e580247dd567ad73a3578460c5990f9503df207e8f07" +checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" dependencies = [ "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.39", ] [[package]] @@ -7745,9 +8209,9 @@ checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777" [[package]] name = "pin-project-lite" -version = "0.2.9" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" [[package]] name = "pin-utils" @@ -7755,11 +8219,22 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +[[package]] +name = "piper" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4" +dependencies = [ + "atomic-waker", + "fastrand 2.0.1", + "futures-io", +] + [[package]] name = "pkcs8" -version = "0.9.0" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4ba" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" dependencies = [ "der", "spki", @@ -7779,54 +8254,52 @@ checksum = "989d43012e2ca1c4a02507c67282691a0a3207f9dc67cec596b43fe925b3d325" [[package]] name = "platforms" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8d0eef3571242013a0d5dc84861c3ae4a652e56e12adf8bdc26ff5f8cb34c94" - -[[package]] -name = "platforms" -version = "3.0.2" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3d7ddaed09e0eb771a79ab0fd64609ba0afb0a8366421957936ad14cbd13630" +checksum = "14e6ab3f592e6fb464fc9712d8d6e6912de6473954635fd76a589d832cffcbb0" [[package]] name = "polkadot-approval-distribution" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "futures", - "polkadot-node-metrics 0.9.38 (git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38)", + "futures-timer", + "polkadot-node-jaeger", + "polkadot-node-metrics", "polkadot-node-network-protocol", "polkadot-node-primitives", "polkadot-node-subsystem", + "polkadot-node-subsystem-util", "polkadot-primitives", "rand 0.8.5", - "tracing-gum 0.9.38 (git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38)", + "tracing-gum", ] [[package]] name = "polkadot-availability-bitfield-distribution" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ + "always-assert", "futures", + "futures-timer", "polkadot-node-network-protocol", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", "rand 0.8.5", - "tracing-gum 0.9.38 (git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38)", + "tracing-gum", ] [[package]] name = "polkadot-availability-distribution" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "derive_more", "fatality", "futures", - "lru 0.9.0", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", @@ -7835,20 +8308,20 @@ dependencies = [ "polkadot-node-subsystem-util", "polkadot-primitives", "rand 0.8.5", + "schnellru", "sp-core", "sp-keystore", "thiserror", - "tracing-gum 0.9.38 (git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38)", + "tracing-gum", ] [[package]] name = "polkadot-availability-recovery" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "fatality", "futures", - "lru 0.9.0", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", @@ -7858,86 +8331,43 @@ dependencies = [ "polkadot-primitives", "rand 0.8.5", "sc-network", + "schnellru", "thiserror", - "tracing-gum 0.9.38 (git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38)", + "tracing-gum", ] [[package]] name = "polkadot-cli" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" +version = "1.1.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "clap", "frame-benchmarking-cli", "futures", "log", - "polkadot-client", - "polkadot-node-core-pvf", - "polkadot-node-metrics 0.9.38 (git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38)", + "polkadot-node-metrics", "polkadot-performance-test", "polkadot-service", "sc-cli", "sc-executor", "sc-service", - "sc-storage-monitor 0.1.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.38)", + "sc-storage-monitor", "sc-sysinfo", "sc-tracing", "sp-core", "sp-io", "sp-keyring", + "sp-maybe-compressed-blob", "substrate-build-script-utils", "thiserror", "try-runtime-cli", ] -[[package]] -name = "polkadot-client" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" -dependencies = [ - "async-trait", - "frame-benchmarking", - "frame-benchmarking-cli", - "frame-system", - "frame-system-rpc-runtime-api", - "futures", - "pallet-transaction-payment", - "pallet-transaction-payment-rpc-runtime-api", - "polkadot-core-primitives", - "polkadot-node-core-parachains-inherent", - "polkadot-primitives", - "polkadot-runtime", - "polkadot-runtime-common", - "sc-client-api", - "sc-consensus", - "sc-executor", - "sc-service", - "sp-api", - "sp-authority-discovery", - "sp-beefy", - "sp-block-builder", - "sp-blockchain", - "sp-consensus", - "sp-consensus-babe", - "sp-core", - "sp-finality-grandpa", - "sp-inherents", - "sp-keyring", - "sp-mmr-primitives", - "sp-offchain", - "sp-runtime", - "sp-session", - "sp-storage", - "sp-timestamp", - "sp-transaction-pool", -] - [[package]] name = "polkadot-collator-protocol" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ - "always-assert", "bitvec", "fatality", "futures", @@ -7951,13 +8381,14 @@ dependencies = [ "sp-keystore", "sp-runtime", "thiserror", - "tracing-gum 0.9.38 (git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38)", + "tokio-util", + "tracing-gum", ] [[package]] name = "polkadot-core-primitives" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "parity-scale-codec", "scale-info", @@ -7968,15 +8399,14 @@ dependencies = [ [[package]] name = "polkadot-dispute-distribution" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "derive_more", "fatality", "futures", "futures-timer", - "indexmap", - "lru 0.9.0", + "indexmap 1.9.3", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", @@ -7985,16 +8415,17 @@ dependencies = [ "polkadot-node-subsystem-util", "polkadot-primitives", "sc-network", + "schnellru", "sp-application-crypto", "sp-keystore", "thiserror", - "tracing-gum 0.9.38 (git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38)", + "tracing-gum", ] [[package]] name = "polkadot-erasure-coding" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", @@ -8007,8 +8438,8 @@ dependencies = [ [[package]] name = "polkadot-gossip-support" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "futures", "futures-timer", @@ -8019,40 +8450,17 @@ dependencies = [ "rand 0.8.5", "rand_chacha 0.3.1", "sc-network", + "sc-network-common", "sp-application-crypto", "sp-core", "sp-keystore", - "tracing-gum 0.9.38 (git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38)", -] - -[[package]] -name = "polkadot-network-bridge" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" -dependencies = [ - "always-assert", - "async-trait", - "bytes", - "fatality", - "futures", - "parity-scale-codec", - "parking_lot 0.12.1", - "polkadot-node-metrics 0.9.38 (git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38)", - "polkadot-node-network-protocol", - "polkadot-node-subsystem", - "polkadot-overseer", - "polkadot-primitives", - "sc-network", - "sc-network-common", - "sp-consensus", - "thiserror", - "tracing-gum 0.9.38 (git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38)", + "tracing-gum", ] [[package]] name = "polkadot-network-bridge" -version = "0.9.38" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.38#097ffd245c42aeff28cf80f8a3568e1bee2e7da7" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "always-assert", "async-trait", @@ -8061,22 +8469,21 @@ dependencies = [ "futures", "parity-scale-codec", "parking_lot 0.12.1", - "polkadot-node-metrics 0.9.38 (git+https://github.com/paritytech/polkadot?branch=release-v0.9.38)", + "polkadot-node-metrics", "polkadot-node-network-protocol", "polkadot-node-subsystem", "polkadot-overseer", "polkadot-primitives", "sc-network", - "sc-network-common", "sp-consensus", "thiserror", - "tracing-gum 0.9.38 (git+https://github.com/paritytech/polkadot?branch=release-v0.9.38)", + "tracing-gum", ] [[package]] name = "polkadot-node-collation-generation" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "futures", "parity-scale-codec", @@ -8088,42 +8495,42 @@ dependencies = [ "sp-core", "sp-maybe-compressed-blob", "thiserror", - "tracing-gum 0.9.38 (git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38)", + "tracing-gum", ] [[package]] name = "polkadot-node-core-approval-voting" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "bitvec", "derive_more", "futures", "futures-timer", "kvdb", - "lru 0.9.0", - "merlin", + "merlin 2.0.1", "parity-scale-codec", - "polkadot-node-jaeger 0.9.38 (git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38)", + "polkadot-node-jaeger", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-overseer", "polkadot-primitives", "sc-keystore", - "schnorrkel", + "schnellru", + "schnorrkel 0.9.1", "sp-application-crypto", "sp-consensus", "sp-consensus-slots", "sp-runtime", "thiserror", - "tracing-gum 0.9.38 (git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38)", + "tracing-gum", ] [[package]] name = "polkadot-node-core-av-store" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "bitvec", "futures", @@ -8131,19 +8538,21 @@ dependencies = [ "kvdb", "parity-scale-codec", "polkadot-erasure-coding", + "polkadot-node-jaeger", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-overseer", "polkadot-primitives", + "sp-consensus", "thiserror", - "tracing-gum 0.9.38 (git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38)", + "tracing-gum", ] [[package]] name = "polkadot-node-core-backing" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "bitvec", "fatality", @@ -8156,13 +8565,13 @@ dependencies = [ "polkadot-statement-table", "sp-keystore", "thiserror", - "tracing-gum 0.9.38 (git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38)", + "tracing-gum", ] [[package]] name = "polkadot-node-core-bitfield-signing" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "futures", "polkadot-node-subsystem", @@ -8170,48 +8579,50 @@ dependencies = [ "polkadot-primitives", "sp-keystore", "thiserror", - "tracing-gum 0.9.38 (git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38)", + "tracing-gum", "wasm-timer", ] [[package]] name = "polkadot-node-core-candidate-validation" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "async-trait", "futures", "futures-timer", "parity-scale-codec", "polkadot-node-core-pvf", - "polkadot-node-metrics 0.9.38 (git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38)", + "polkadot-node-metrics", "polkadot-node-primitives", "polkadot-node-subsystem", - "polkadot-parachain", + "polkadot-node-subsystem-util", + "polkadot-overseer", + "polkadot-parachain-primitives", "polkadot-primitives", "sp-maybe-compressed-blob", - "tracing-gum 0.9.38 (git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38)", + "tracing-gum", ] [[package]] name = "polkadot-node-core-chain-api" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "futures", - "polkadot-node-metrics 0.9.38 (git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38)", + "polkadot-node-metrics", "polkadot-node-subsystem", "polkadot-primitives", "sc-client-api", "sc-consensus-babe", "sp-blockchain", - "tracing-gum 0.9.38 (git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38)", + "tracing-gum", ] [[package]] name = "polkadot-node-core-chain-selection" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "futures", "futures-timer", @@ -8222,32 +8633,32 @@ dependencies = [ "polkadot-node-subsystem-util", "polkadot-primitives", "thiserror", - "tracing-gum 0.9.38 (git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38)", + "tracing-gum", ] [[package]] name = "polkadot-node-core-dispute-coordinator" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "fatality", "futures", "kvdb", - "lru 0.9.0", "parity-scale-codec", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", "sc-keystore", + "schnellru", "thiserror", - "tracing-gum 0.9.38 (git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38)", + "tracing-gum", ] [[package]] name = "polkadot-node-core-parachains-inherent" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "async-trait", "futures", @@ -8258,13 +8669,30 @@ dependencies = [ "sp-blockchain", "sp-inherents", "thiserror", - "tracing-gum 0.9.38 (git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38)", + "tracing-gum", +] + +[[package]] +name = "polkadot-node-core-prospective-parachains" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" +dependencies = [ + "bitvec", + "fatality", + "futures", + "parity-scale-codec", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "thiserror", + "tracing-gum", ] [[package]] name = "polkadot-node-core-provisioner" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "bitvec", "fatality", @@ -8274,47 +8702,42 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "rand 0.8.5", "thiserror", - "tracing-gum 0.9.38 (git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38)", + "tracing-gum", ] [[package]] name = "polkadot-node-core-pvf" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "always-assert", - "assert_matches", - "cpu-time", "futures", "futures-timer", + "libc", "parity-scale-codec", "pin-project", "polkadot-core-primitives", - "polkadot-node-metrics 0.9.38 (git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38)", - "polkadot-parachain", + "polkadot-node-core-pvf-common", + "polkadot-node-metrics", + "polkadot-node-primitives", + "polkadot-parachain-primitives", + "polkadot-primitives", "rand 0.8.5", - "rayon", - "sc-executor", - "sc-executor-common", - "sc-executor-wasmtime", "slotmap", "sp-core", - "sp-externalities", - "sp-io", "sp-maybe-compressed-blob", - "sp-tracing", - "sp-wasm-interface", + "sp-wasm-interface 14.0.0 (git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3)", + "substrate-build-script-utils", "tempfile", "tokio", - "tracing-gum 0.9.38 (git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38)", + "tracing-gum", ] [[package]] name = "polkadot-node-core-pvf-checker" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "futures", "polkadot-node-primitives", @@ -8324,46 +8747,74 @@ dependencies = [ "polkadot-primitives", "sp-keystore", "thiserror", - "tracing-gum 0.9.38 (git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38)", + "tracing-gum", ] [[package]] -name = "polkadot-node-core-runtime-api" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" +name = "polkadot-node-core-pvf-common" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ + "cpu-time", "futures", - "lru 0.9.0", - "polkadot-node-metrics 0.9.38 (git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38)", - "polkadot-node-subsystem", - "polkadot-node-subsystem-types", + "landlock", + "libc", + "parity-scale-codec", + "polkadot-parachain-primitives", "polkadot-primitives", - "sp-consensus-babe", - "tracing-gum 0.9.38 (git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38)", + "sc-executor", + "sc-executor-common", + "sc-executor-wasmtime", + "sp-core", + "sp-externalities 0.19.0 (git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3)", + "sp-io", + "sp-tracing 10.0.0 (git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3)", + "tokio", + "tracing-gum", ] [[package]] -name = "polkadot-node-jaeger" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" +name = "polkadot-node-core-pvf-prepare-worker" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ - "lazy_static", - "log", - "mick-jaeger", + "futures", + "libc", "parity-scale-codec", - "parking_lot 0.12.1", - "polkadot-node-primitives", + "polkadot-node-core-pvf-common", + "polkadot-parachain-primitives", "polkadot-primitives", - "sc-network", - "sp-core", - "thiserror", + "rayon", + "sc-executor", + "sc-executor-common", + "sc-executor-wasmtime", + "sp-io", + "sp-maybe-compressed-blob", + "sp-tracing 10.0.0 (git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3)", + "tikv-jemalloc-ctl", "tokio", + "tracing-gum", +] + +[[package]] +name = "polkadot-node-core-runtime-api" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" +dependencies = [ + "futures", + "polkadot-node-metrics", + "polkadot-node-subsystem", + "polkadot-node-subsystem-types", + "polkadot-primitives", + "schnellru", + "sp-consensus-babe", + "tracing-gum", ] [[package]] name = "polkadot-node-jaeger" -version = "0.9.38" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.38#097ffd245c42aeff28cf80f8a3568e1bee2e7da7" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "lazy_static", "log", @@ -8380,29 +8831,10 @@ dependencies = [ [[package]] name = "polkadot-node-metrics" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" -dependencies = [ - "bs58", - "futures", - "futures-timer", - "log", - "parity-scale-codec", - "polkadot-primitives", - "prioritized-metered-channel", - "sc-cli", - "sc-service", - "sc-tracing", - "substrate-prometheus-endpoint", - "tracing-gum 0.9.38 (git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38)", -] - -[[package]] -name = "polkadot-node-metrics" -version = "0.9.38" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.38#097ffd245c42aeff28cf80f8a3568e1bee2e7da7" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ - "bs58", + "bs58 0.5.0", "futures", "futures-timer", "log", @@ -8413,79 +8845,81 @@ dependencies = [ "sc-service", "sc-tracing", "substrate-prometheus-endpoint", - "tracing-gum 0.9.38 (git+https://github.com/paritytech/polkadot?branch=release-v0.9.38)", + "tracing-gum", ] [[package]] name = "polkadot-node-network-protocol" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ + "async-channel 1.9.0", "async-trait", + "bitvec", "derive_more", "fatality", "futures", "hex", "parity-scale-codec", - "polkadot-node-jaeger 0.9.38 (git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38)", + "polkadot-node-jaeger", "polkadot-node-primitives", "polkadot-primitives", "rand 0.8.5", "sc-authority-discovery", "sc-network", - "sc-network-common", - "strum", + "strum 0.24.1", "thiserror", - "tracing-gum 0.9.38 (git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38)", + "tracing-gum", ] [[package]] name = "polkadot-node-primitives" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "bounded-vec", "futures", "parity-scale-codec", - "polkadot-parachain", + "polkadot-parachain-primitives", "polkadot-primitives", - "schnorrkel", + "schnorrkel 0.9.1", "serde", "sp-application-crypto", "sp-consensus-babe", - "sp-consensus-vrf", "sp-core", "sp-keystore", "sp-maybe-compressed-blob", + "sp-runtime", "thiserror", - "zstd", + "zstd 0.12.4", ] [[package]] name = "polkadot-node-subsystem" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ - "polkadot-node-jaeger 0.9.38 (git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38)", + "polkadot-node-jaeger", "polkadot-node-subsystem-types", "polkadot-overseer", ] [[package]] name = "polkadot-node-subsystem-types" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "async-trait", "derive_more", "futures", "orchestra", - "polkadot-node-jaeger 0.9.38 (git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38)", + "polkadot-node-jaeger", "polkadot-node-network-protocol", "polkadot-node-primitives", "polkadot-primitives", "polkadot-statement-table", "sc-network", + "sc-transaction-pool-api", "smallvec", "sp-api", "sp-authority-discovery", @@ -8496,23 +8930,22 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "async-trait", "derive_more", "fatality", "futures", "futures-channel", - "itertools", + "itertools 0.10.5", "kvdb", - "lru 0.9.0", "parity-db", "parity-scale-codec", "parking_lot 0.11.2", "pin-project", - "polkadot-node-jaeger 0.9.38 (git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38)", - "polkadot-node-metrics 0.9.38 (git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38)", + "polkadot-node-jaeger", + "polkadot-node-metrics", "polkadot-node-network-protocol", "polkadot-node-primitives", "polkadot-node-subsystem", @@ -8520,41 +8953,43 @@ dependencies = [ "polkadot-primitives", "prioritized-metered-channel", "rand 0.8.5", + "schnellru", "sp-application-crypto", "sp-core", "sp-keystore", "thiserror", - "tracing-gum 0.9.38 (git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38)", + "tracing-gum", ] [[package]] name = "polkadot-overseer" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "async-trait", "futures", "futures-timer", - "lru 0.9.0", "orchestra", "parking_lot 0.12.1", - "polkadot-node-metrics 0.9.38 (git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38)", + "polkadot-node-metrics", "polkadot-node-network-protocol", "polkadot-node-primitives", "polkadot-node-subsystem-types", "polkadot-primitives", "sc-client-api", + "schnellru", "sp-api", "sp-core", "tikv-jemalloc-ctl", - "tracing-gum 0.9.38 (git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38)", + "tracing-gum", ] [[package]] -name = "polkadot-parachain" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" +name = "polkadot-parachain-primitives" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ + "bounded-collections", "derive_more", "frame-support", "parity-scale-codec", @@ -8568,29 +9003,32 @@ dependencies = [ [[package]] name = "polkadot-performance-test" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "env_logger 0.9.3", - "kusama-runtime", "log", "polkadot-erasure-coding", - "polkadot-node-core-pvf", + "polkadot-node-core-pvf-prepare-worker", "polkadot-node-primitives", + "polkadot-primitives", "quote", + "sc-executor-common", + "sp-maybe-compressed-blob", + "staging-kusama-runtime", "thiserror", ] [[package]] name = "polkadot-primitives" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "bitvec", - "hex-literal 0.3.4", + "hex-literal 0.4.1", "parity-scale-codec", "polkadot-core-primitives", - "polkadot-parachain", + "polkadot-parachain-primitives", "scale-info", "serde", "sp-api", @@ -8609,11 +9047,9 @@ dependencies = [ [[package]] name = "polkadot-rpc" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ - "beefy-gadget", - "beefy-gadget-rpc", "jsonrpsee", "mmr-rpc", "pallet-transaction-payment-rpc", @@ -8622,9 +9058,11 @@ dependencies = [ "sc-client-api", "sc-consensus-babe", "sc-consensus-babe-rpc", + "sc-consensus-beefy", + "sc-consensus-beefy-rpc", "sc-consensus-epochs", - "sc-finality-grandpa", - "sc-finality-grandpa-rpc", + "sc-consensus-grandpa", + "sc-consensus-grandpa-rpc", "sc-rpc", "sc-sync-state-rpc", "sc-transaction-pool-api", @@ -8641,8 +9079,8 @@ dependencies = [ [[package]] name = "polkadot-runtime" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "bitvec", "frame-benchmarking", @@ -8653,7 +9091,7 @@ dependencies = [ "frame-system-benchmarking", "frame-system-rpc-runtime-api", "frame-try-runtime", - "hex-literal 0.3.4", + "hex-literal 0.4.1", "log", "pallet-authority-discovery", "pallet-authorship", @@ -8663,9 +9101,10 @@ dependencies = [ "pallet-bounties", "pallet-child-bounties", "pallet-collective", - "pallet-democracy", + "pallet-conviction-voting", + "pallet-democracy 4.0.0-dev", "pallet-election-provider-multi-phase", - "pallet-election-provider-support-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.38)", + "pallet-election-provider-support-benchmarking", "pallet-elections-phragmen", "pallet-fast-unstake", "pallet-grandpa", @@ -8673,6 +9112,7 @@ dependencies = [ "pallet-im-online", "pallet-indices", "pallet-membership", + "pallet-message-queue", "pallet-multisig", "pallet-nomination-pools", "pallet-nomination-pools-benchmarking", @@ -8681,11 +9121,13 @@ dependencies = [ "pallet-offences-benchmarking", "pallet-preimage", "pallet-proxy", + "pallet-referenda", "pallet-scheduler", "pallet-session", "pallet-session-benchmarking", - "pallet-staking", + "pallet-staking 4.0.0-dev", "pallet-staking-reward-curve", + "pallet-staking-runtime-api", "pallet-timestamp", "pallet-tips", "pallet-transaction-payment", @@ -8693,7 +9135,9 @@ dependencies = [ "pallet-treasury", "pallet-utility", "pallet-vesting", + "pallet-whitelist", "pallet-xcm", + "pallet-xcm-benchmarks", "parity-scale-codec", "polkadot-primitives", "polkadot-runtime-common", @@ -8705,10 +9149,11 @@ dependencies = [ "serde_derive", "smallvec", "sp-api", + "sp-arithmetic", "sp-authority-discovery", - "sp-beefy", "sp-block-builder", "sp-consensus-babe", + "sp-consensus-beefy", "sp-core", "sp-inherents", "sp-io", @@ -8719,19 +9164,20 @@ dependencies = [ "sp-session", "sp-staking", "sp-std", + "sp-storage", "sp-transaction-pool", "sp-version", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", "static_assertions", "substrate-wasm-builder", - "xcm", - "xcm-builder", - "xcm-executor", ] [[package]] name = "polkadot-runtime-common" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "bitvec", "frame-benchmarking", @@ -8743,13 +9189,11 @@ dependencies = [ "log", "pallet-authorship", "pallet-babe", - "pallet-bags-list", "pallet-balances", - "pallet-beefy-mmr", "pallet-election-provider-multi-phase", "pallet-fast-unstake", "pallet-session", - "pallet-staking", + "pallet-staking 4.0.0-dev", "pallet-staking-reward-fn", "pallet-timestamp", "pallet-transaction-payment", @@ -8764,7 +9208,6 @@ dependencies = [ "serde_derive", "slot-range-helper", "sp-api", - "sp-beefy", "sp-core", "sp-inherents", "sp-io", @@ -8773,14 +9216,14 @@ dependencies = [ "sp-session", "sp-staking", "sp-std", + "staging-xcm", "static_assertions", - "xcm", ] [[package]] name = "polkadot-runtime-constants" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "frame-support", "polkadot-primitives", @@ -8793,37 +9236,41 @@ dependencies = [ [[package]] name = "polkadot-runtime-metrics" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ - "bs58", + "bs58 0.5.0", + "frame-benchmarking", "parity-scale-codec", "polkadot-primitives", "sp-std", - "sp-tracing", + "sp-tracing 10.0.0 (git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3)", ] [[package]] name = "polkadot-runtime-parachains" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ - "bitflags", + "bitflags 1.3.2", "bitvec", "derive_more", "frame-benchmarking", "frame-support", "frame-system", + "impl-trait-for-tuples", "log", "pallet-authority-discovery", "pallet-authorship", "pallet-babe", "pallet-balances", + "pallet-message-queue", "pallet-session", - "pallet-staking", + "pallet-staking 4.0.0-dev", "pallet-timestamp", "pallet-vesting", "parity-scale-codec", + "polkadot-parachain-primitives", "polkadot-primitives", "polkadot-runtime-metrics", "rand 0.8.5", @@ -8841,43 +9288,45 @@ dependencies = [ "sp-session", "sp-staking", "sp-std", + "staging-xcm", + "staging-xcm-executor", "static_assertions", - "xcm", - "xcm-executor", ] [[package]] name = "polkadot-service" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "async-trait", - "beefy-gadget", + "frame-benchmarking", "frame-benchmarking-cli", "frame-support", + "frame-system", "frame-system-rpc-runtime-api", "futures", - "hex-literal 0.3.4", - "kusama-runtime", + "hex-literal 0.4.1", + "is_executable", "kvdb", "kvdb-rocksdb", "log", - "lru 0.9.0", "mmr-gadget", "pallet-babe", "pallet-im-online", - "pallet-staking", + "pallet-staking 4.0.0-dev", + "pallet-transaction-payment", "pallet-transaction-payment-rpc-runtime-api", "parity-db", + "parity-scale-codec", "polkadot-approval-distribution", "polkadot-availability-bitfield-distribution", "polkadot-availability-distribution", "polkadot-availability-recovery", - "polkadot-client", "polkadot-collator-protocol", + "polkadot-core-primitives", "polkadot-dispute-distribution", "polkadot-gossip-support", - "polkadot-network-bridge 0.9.38 (git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38)", + "polkadot-network-bridge", "polkadot-node-collation-generation", "polkadot-node-core-approval-voting", "polkadot-node-core-av-store", @@ -8888,7 +9337,9 @@ dependencies = [ "polkadot-node-core-chain-selection", "polkadot-node-core-dispute-coordinator", "polkadot-node-core-parachains-inherent", + "polkadot-node-core-prospective-parachains", "polkadot-node-core-provisioner", + "polkadot-node-core-pvf", "polkadot-node-core-pvf-checker", "polkadot-node-core-runtime-api", "polkadot-node-network-protocol", @@ -8897,11 +9348,11 @@ dependencies = [ "polkadot-node-subsystem-types", "polkadot-node-subsystem-util", "polkadot-overseer", - "polkadot-parachain", + "polkadot-parachain-primitives", "polkadot-primitives", "polkadot-rpc", "polkadot-runtime", - "polkadot-runtime-constants", + "polkadot-runtime-common", "polkadot-runtime-parachains", "polkadot-statement-distribution", "rococo-runtime", @@ -8913,31 +9364,36 @@ dependencies = [ "sc-client-db", "sc-consensus", "sc-consensus-babe", + "sc-consensus-beefy", + "sc-consensus-grandpa", "sc-consensus-slots", "sc-executor", - "sc-finality-grandpa", "sc-keystore", "sc-network", "sc-network-common", + "sc-network-sync", "sc-offchain", "sc-service", "sc-sync-state-rpc", "sc-sysinfo", "sc-telemetry", "sc-transaction-pool", + "sc-transaction-pool-api", + "schnellru", "serde", "serde_json", "sp-api", "sp-authority-discovery", - "sp-beefy", "sp-block-builder", "sp-blockchain", "sp-consensus", "sp-consensus-babe", + "sp-consensus-beefy", + "sp-consensus-grandpa", "sp-core", - "sp-finality-grandpa", "sp-inherents", "sp-io", + "sp-keyring", "sp-keystore", "sp-mmr-primitives", "sp-offchain", @@ -8947,38 +9403,43 @@ dependencies = [ "sp-storage", "sp-timestamp", "sp-transaction-pool", - "sp-trie", + "sp-version", + "sp-weights", + "staging-kusama-runtime", "substrate-prometheus-endpoint", "thiserror", - "tracing-gum 0.9.38 (git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38)", + "tracing-gum", "westend-runtime", ] [[package]] name = "polkadot-statement-distribution" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ - "arrayvec 0.5.2", + "arrayvec 0.7.4", + "bitvec", "fatality", "futures", - "indexmap", + "futures-timer", + "indexmap 1.9.3", "parity-scale-codec", "polkadot-node-network-protocol", "polkadot-node-primitives", "polkadot-node-subsystem", + "polkadot-node-subsystem-types", "polkadot-node-subsystem-util", "polkadot-primitives", "sp-keystore", "sp-staking", "thiserror", - "tracing-gum 0.9.38 (git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38)", + "tracing-gum", ] [[package]] name = "polkadot-statement-table" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -8992,50 +9453,64 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" dependencies = [ "autocfg", - "bitflags", + "bitflags 1.3.2", "cfg-if", "concurrent-queue", "libc", "log", - "pin-project-lite 0.2.9", + "pin-project-lite 0.2.13", "windows-sys 0.48.0", ] [[package]] -name = "poly1305" -version = "0.7.2" +name = "polling" +version = "3.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "048aeb476be11a4b6ca432ca569e375810de9294ae78f4774e78ea98a9246ede" +checksum = "cf63fa624ab313c11656b4cda960bfc46c410187ad493c41f6ba2d8c1e991c9e" dependencies = [ - "cpufeatures", - "opaque-debug 0.3.0", - "universal-hash 0.4.1", + "cfg-if", + "concurrent-queue", + "pin-project-lite 0.2.13", + "rustix 0.38.27", + "tracing", + "windows-sys 0.52.0", ] [[package]] -name = "polyval" -version = "0.5.3" +name = "poly1305" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8419d2b623c7c0896ff2d5d96e2cb4ede590fed28fcc34934f4c33c036e620a1" +checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" dependencies = [ - "cfg-if", "cpufeatures", "opaque-debug 0.3.0", - "universal-hash 0.4.1", + "universal-hash", ] [[package]] name = "polyval" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef234e08c11dfcb2e56f79fd70f6f2eb7f025c0ce2333e82f4f0518ecad30c6" +checksum = "d52cff9d1d4dee5fe6d03729099f4a310a41179e0a10dbf542039873f2e826fb" dependencies = [ "cfg-if", "cpufeatures", "opaque-debug 0.3.0", - "universal-hash 0.5.1", + "universal-hash", ] +[[package]] +name = "portable-atomic" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0" + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + [[package]] name = "ppv-lite86" version = "0.2.17" @@ -9050,7 +9525,7 @@ checksum = "59230a63c37f3e18569bdb90e4a89cbf5bf8b06fea0b84e65ea10cc4df47addd" dependencies = [ "difflib", "float-cmp", - "itertools", + "itertools 0.10.5", "normalize-line-endings", "predicates-core", "regex", @@ -9074,13 +9549,11 @@ dependencies = [ [[package]] name = "pretty_assertions" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a25e9bcb20aa780fd0bb16b72403a9064d6b3f22f026946029acb941a50af755" +checksum = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66" dependencies = [ - "ctor", "diff", - "output_vt100", "yansi", ] @@ -9095,24 +9568,24 @@ dependencies = [ ] [[package]] -name = "primitive-types" -version = "0.11.1" +name = "prettyplease" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e28720988bff275df1f51b171e1b2a18c30d194c4d2b61defdacecd625a5d94a" +checksum = "ae005bd773ab59b4725093fd7df83fd7892f7d8eafb48dbd7de6e024e4215f9d" dependencies = [ - "fixed-hash 0.7.0", - "impl-codec", - "uint", + "proc-macro2", + "syn 2.0.39", ] [[package]] name = "primitive-types" -version = "0.12.1" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f3486ccba82358b11a77516035647c34ba167dfa53312630de83b12bd4f3d66" +checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" dependencies = [ - "fixed-hash 0.8.0", + "fixed-hash", "impl-codec", + "impl-rlp", "impl-serde", "scale-info", "uint", @@ -9120,27 +9593,28 @@ dependencies = [ [[package]] name = "primitives" -version = "5.8.2" -source = "git+https://github.com/galacticcouncil/HydraDX-node?rev=b59c0379b312e9b3df365f407aa48b43bc4ca833#b59c0379b312e9b3df365f407aa48b43bc4ca833" +version = "6.0.2" +source = "git+https://github.com/galacticcouncil/HydraDX-node?rev=7e997371d7f2110f7719d2f279a153feb973b994#7e997371d7f2110f7719d2f279a153feb973b994" dependencies = [ "frame-support", "hex-literal 0.3.4", "parity-scale-codec", "polkadot-primitives", "scale-info", + "serde", "sp-core", + "sp-std", "static_assertions", ] [[package]] name = "primitives" -version = "6.5.0" +version = "6.6.0" dependencies = [ "frame-support", - "frame-system", "parity-scale-codec", "polkadot-primitives", - "primitive-types 0.11.1", + "primitive-types", "scale-info", "serde", "sp-core", @@ -9174,7 +9648,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" dependencies = [ "once_cell", - "toml_edit", + "toml_edit 0.19.15", +] + +[[package]] +name = "proc-macro-crate" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97dc5fea232fc28d2f597b37c4876b348a40e33f3b02cc975c8d006d78d94b1a" +dependencies = [ + "toml_datetime", + "toml_edit 0.20.2", ] [[package]] @@ -9201,11 +9685,22 @@ dependencies = [ "version_check", ] +[[package]] +name = "proc-macro-warning" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d1eaa7fa0aa1929ffdf7eeb6eac234dde6268914a14ad44d23521ab6a9b258e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + [[package]] name = "proc-macro2" -version = "1.0.59" +version = "1.0.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6aeca18b86b413c660b781aa319e4e2648a3e6f9eadc9b47e9038e6fe9f3451b" +checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" dependencies = [ "unicode-ident", ] @@ -9226,45 +9721,25 @@ dependencies = [ [[package]] name = "prometheus-client" -version = "0.18.1" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83cd1b99916654a69008fd66b4f9397fbe08e6e51dfe23d4417acf5d3b8cb87c" +checksum = "5d6fa99d535dd930d1249e6c79cb3c2915f9172a540fe2b02a4c8f9ca954721e" dependencies = [ "dtoa", "itoa", "parking_lot 0.12.1", - "prometheus-client-derive-text-encode", + "prometheus-client-derive-encode", ] [[package]] -name = "prometheus-client-derive-text-encode" -version = "0.3.0" +name = "prometheus-client-derive-encode" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66a455fbcb954c1a7decf3c586e860fd7889cddf4b8e164be736dbac95a953cd" +checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", -] - -[[package]] -name = "proptest" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e35c06b98bf36aba164cc17cb25f7e232f5c4aeea73baa14b8a9f0d92dbfa65" -dependencies = [ - "bit-set", - "bitflags", - "byteorder", - "lazy_static", - "num-traits", - "rand 0.8.5", - "rand_chacha 0.3.1", - "rand_xorshift", - "regex-syntax 0.6.29", - "rusty-fork", - "tempfile", - "unarray", + "syn 2.0.39", ] [[package]] @@ -9285,12 +9760,12 @@ checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270" dependencies = [ "bytes", "heck", - "itertools", + "itertools 0.10.5", "lazy_static", "log", "multimap", - "petgraph 0.6.3", - "prettyplease", + "petgraph", + "prettyplease 0.1.25", "prost", "prost-types", "regex", @@ -9299,19 +9774,6 @@ dependencies = [ "which", ] -[[package]] -name = "prost-codec" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dc34979ff898b6e141106178981ce2596c387ea6e62533facfc61a37fc879c0" -dependencies = [ - "asynchronous-codec", - "bytes", - "prost", - "thiserror", - "unsigned-varint", -] - [[package]] name = "prost-derive" version = "0.11.9" @@ -9319,7 +9781,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" dependencies = [ "anyhow", - "itertools", + "itertools 0.10.5", "proc-macro2", "quote", "syn 1.0.109", @@ -9358,6 +9820,19 @@ dependencies = [ "byteorder", ] +[[package]] +name = "quick-protobuf-codec" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1693116345026436eb2f10b677806169c1a1260c1c60eaaffe3fb5a29ae23d8b" +dependencies = [ + "asynchronous-codec", + "bytes", + "quick-protobuf", + "thiserror", + "unsigned-varint", +] + [[package]] name = "quicksink" version = "0.1.2" @@ -9371,27 +9846,27 @@ dependencies = [ [[package]] name = "quinn-proto" -version = "0.9.3" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67c10f662eee9c94ddd7135043e544f3c82fa839a1e7b865911331961b53186c" +checksum = "94b0b33c13a79f669c85defaf4c275dc86a0c0372807d0ca3d78e0bb87274863" dependencies = [ "bytes", "rand 0.8.5", - "ring", + "ring 0.16.20", "rustc-hash", - "rustls 0.20.8", + "rustls 0.20.9", "slab", "thiserror", "tinyvec", "tracing", - "webpki 0.22.0", + "webpki", ] [[package]] name = "quote" -version = "1.0.28" +version = "1.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9ab9c7eadfd8df19006f1cf1a4aed13540ed5cbc047010ece5826e10825488" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" dependencies = [ "proc-macro2", ] @@ -9461,17 +9936,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.10", -] - -[[package]] -name = "rand_distr" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" -dependencies = [ - "num-traits", - "rand 0.8.5", + "getrandom 0.2.11", ] [[package]] @@ -9492,15 +9957,6 @@ dependencies = [ "rand_core 0.6.4", ] -[[package]] -name = "rand_xorshift" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" -dependencies = [ - "rand_core 0.6.4", -] - [[package]] name = "rawpointer" version = "0.2.1" @@ -9509,9 +9965,9 @@ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" [[package]] name = "rayon" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b" +checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1" dependencies = [ "either", "rayon-core", @@ -9519,27 +9975,12 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d" +checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed" dependencies = [ - "crossbeam-channel", "crossbeam-deque", "crossbeam-utils", - "num_cpus", -] - -[[package]] -name = "rcgen" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6413f3de1edee53342e6138e75b56d32e7bc6e332b3bd62d497b1929d4cfbcdd" -dependencies = [ - "pem", - "ring", - "time 0.3.21", - "x509-parser 0.13.2", - "yasna", ] [[package]] @@ -9549,8 +9990,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ffbe84efe2f38dea12e9bfc1f65377fdf03e53a18cb3b995faedf7934c7e785b" dependencies = [ "pem", - "ring", - "time 0.3.21", + "ring 0.16.20", + "time", "yasna", ] @@ -9560,67 +10001,67 @@ version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" dependencies = [ - "bitflags", + "bitflags 1.3.2", ] [[package]] name = "redox_syscall" -version = "0.3.5" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" dependencies = [ - "bitflags", + "bitflags 1.3.2", ] [[package]] name = "redox_users" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" +checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4" dependencies = [ - "getrandom 0.2.10", - "redox_syscall 0.2.16", + "getrandom 0.2.11", + "libredox", "thiserror", ] [[package]] name = "reed-solomon-novelpoly" -version = "1.0.0" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bd8f48b2066e9f69ab192797d66da804d1935bf22763204ed3675740cb0f221" +checksum = "58130877ca403ab42c864fbac74bb319a0746c07a634a92a5cfc7f54af272582" dependencies = [ "derive_more", "fs-err", - "itertools", - "static_init 0.5.2", + "itertools 0.11.0", + "static_init", "thiserror", ] [[package]] name = "ref-cast" -version = "1.0.16" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f43faa91b1c8b36841ee70e97188a869d37ae21759da6846d4be66de5bf7b12c" +checksum = "acde58d073e9c79da00f2b5b84eed919c8326832648a5b109b3fce1bb1175280" dependencies = [ "ref-cast-impl", ] [[package]] name = "ref-cast-impl" -version = "1.0.16" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d2275aab483050ab2a7364c1a46604865ee7d6906684e08db0f090acf74f9e7" +checksum = "7f7473c2cfcf90008193dd0e3e16599455cb601a9fce322b5bb55de799664925" dependencies = [ "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.39", ] [[package]] name = "regalloc2" -version = "0.3.2" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d43a209257d978ef079f3d446331d0f1794f5e0fc19b306a199983857833a779" +checksum = "80535183cae11b149d618fbd3c37e38d7cda589d82d7769e196ca9a9042d7621" dependencies = [ "fxhash", "log", @@ -9630,13 +10071,14 @@ dependencies = [ [[package]] name = "regex" -version = "1.8.4" +version = "1.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0ab3ca65655bb1e41f2a8c8cd662eb4fb035e67c3f78da1d61dffe89d07300f" +checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" dependencies = [ - "aho-corasick 1.0.2", + "aho-corasick", "memchr", - "regex-syntax 0.7.2", + "regex-automata 0.4.3", + "regex-syntax 0.8.2", ] [[package]] @@ -9648,6 +10090,17 @@ dependencies = [ "regex-syntax 0.6.29", ] +[[package]] +name = "regex-automata" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.8.2", +] + [[package]] name = "regex-syntax" version = "0.6.29" @@ -9656,9 +10109,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.7.2" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "436b050e76ed2903236f032a59761c1eb99e1b0aead2c257922771dab1fc8c78" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" [[package]] name = "resolv-conf" @@ -9672,13 +10125,27 @@ dependencies = [ [[package]] name = "rfc6979" -version = "0.3.1" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7743f17af12fa0b03b803ba12cd6a8d9483a587e89c69445e3909655c0b9fabb" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" dependencies = [ - "crypto-bigint", "hmac 0.12.1", - "zeroize", + "subtle", +] + +[[package]] +name = "ring" +version = "0.1.0" +source = "git+https://github.com/w3f/ring-proof?rev=0e948f3#0e948f3c28cbacecdd3020403c4841c0eb339213" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-poly", + "ark-serialize", + "ark-std", + "common", + "fflonk", + "merlin 3.0.0", ] [[package]] @@ -9690,17 +10157,53 @@ dependencies = [ "cc", "libc", "once_cell", - "spin", - "untrusted", + "spin 0.5.2", + "untrusted 0.7.1", "web-sys", "winapi", ] +[[package]] +name = "ring" +version = "0.17.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74" +dependencies = [ + "cc", + "getrandom 0.2.11", + "libc", + "spin 0.9.8", + "untrusted 0.9.0", + "windows-sys 0.48.0", +] + +[[package]] +name = "rlp" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" +dependencies = [ + "bytes", + "rlp-derive", + "rustc-hex", +] + +[[package]] +name = "rlp-derive" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e33d7b2abe0c340d8797fe2907d3f20d3b5ea5908683618bfe80df7f621f672a" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "rocksdb" -version = "0.19.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e9562ea1d70c0cc63a34a22d977753b50cca91cc6b6527750463bd5dd8697bc" +checksum = "bb6f170a4041d50a0ce04b0d2e14916d6ca863ea2e422689a5b694395d299ffe" dependencies = [ "libc", "librocksdb-sys", @@ -9708,10 +10211,10 @@ dependencies = [ [[package]] name = "rococo-runtime" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ - "beefy-merkle-tree", + "binary-merkle-tree", "frame-benchmarking", "frame-executive", "frame-support", @@ -9719,7 +10222,7 @@ dependencies = [ "frame-system-benchmarking", "frame-system-rpc-runtime-api", "frame-try-runtime", - "hex-literal 0.3.4", + "hex-literal 0.4.1", "log", "pallet-authority-discovery", "pallet-authorship", @@ -9730,13 +10233,14 @@ dependencies = [ "pallet-bounties", "pallet-child-bounties", "pallet-collective", - "pallet-democracy", + "pallet-democracy 4.0.0-dev", "pallet-elections-phragmen", "pallet-grandpa", "pallet-identity", "pallet-im-online", "pallet-indices", "pallet-membership", + "pallet-message-queue", "pallet-mmr", "pallet-multisig", "pallet-nis", @@ -9747,7 +10251,7 @@ dependencies = [ "pallet-scheduler", "pallet-session", "pallet-society", - "pallet-staking", + "pallet-staking 4.0.0-dev", "pallet-state-trie-migration", "pallet-sudo", "pallet-timestamp", @@ -9760,7 +10264,7 @@ dependencies = [ "pallet-xcm", "pallet-xcm-benchmarks", "parity-scale-codec", - "polkadot-parachain", + "polkadot-parachain-primitives", "polkadot-primitives", "polkadot-runtime-common", "polkadot-runtime-parachains", @@ -9771,9 +10275,9 @@ dependencies = [ "smallvec", "sp-api", "sp-authority-discovery", - "sp-beefy", "sp-block-builder", "sp-consensus-babe", + "sp-consensus-beefy", "sp-core", "sp-inherents", "sp-io", @@ -9783,19 +10287,20 @@ dependencies = [ "sp-session", "sp-staking", "sp-std", + "sp-storage", "sp-transaction-pool", "sp-version", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", "static_assertions", "substrate-wasm-builder", - "xcm", - "xcm-builder", - "xcm-executor", ] [[package]] name = "rococo-runtime-constants" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "frame-support", "polkadot-primitives", @@ -9808,24 +10313,13 @@ dependencies = [ [[package]] name = "rpassword" -version = "7.2.0" +version = "7.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6678cf63ab3491898c0d021b493c94c9b221d91295294a2a5746eacbe5928322" +checksum = "80472be3c897911d0137b2d2b9055faf6eeac5b14e324073d83bc17b191d7e3f" dependencies = [ "libc", "rtoolbox", - "winapi", -] - -[[package]] -name = "rtcp" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1919efd6d4a6a85d13388f9487549bb8e359f17198cc03ffd72f79b553873691" -dependencies = [ - "bytes", - "thiserror", - "webrtc-util", + "windows-sys 0.48.0", ] [[package]] @@ -9838,38 +10332,24 @@ dependencies = [ "log", "netlink-packet-route", "netlink-proto", - "nix 0.24.3", + "nix", "thiserror", "tokio", ] [[package]] name = "rtoolbox" -version = "0.0.1" +version = "0.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "034e22c514f5c0cb8a10ff341b9b048b5ceb21591f31c8f44c43b960f9b3524a" +checksum = "c247d24e63230cdb56463ae328478bd5eac8b8faa8c69461a77e8e323afac90e" dependencies = [ "libc", - "winapi", -] - -[[package]] -name = "rtp" -version = "0.6.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2a095411ff00eed7b12e4c6a118ba984d113e1079582570d56a5ee723f11f80" -dependencies = [ - "async-trait", - "bytes", - "rand 0.8.5", - "serde", - "thiserror", - "webrtc-util", + "windows-sys 0.48.0", ] [[package]] name = "runtime-integration-tests" -version = "0.9.15" +version = "1.0.1" dependencies = [ "basilisk-runtime", "cumulus-pallet-aura-ext", @@ -9890,7 +10370,6 @@ dependencies = [ "frame-system-rpc-runtime-api", "hex-literal 0.4.1", "hydradx-traits", - "kusama-runtime", "orml-tokens", "orml-traits", "orml-unknown-tokens", @@ -9905,10 +10384,11 @@ dependencies = [ "pallet-collator-selection", "pallet-collective", "pallet-currencies", - "pallet-democracy", + "pallet-democracy 4.0.0-dev", "pallet-duster", "pallet-elections-phragmen", "pallet-ema-oracle", + "pallet-im-online", "pallet-lbp", "pallet-marketplace", "pallet-nft", @@ -9927,18 +10407,22 @@ dependencies = [ "pallet-xcm", "pallet-xyk", "parachain-info", - "parachain-runtime-mock", - "polkadot-parachain", + "polkadot-parachain-primitives", "polkadot-primitives", "polkadot-runtime-parachains", + "polkadot-service", "pretty_assertions", - "primitives 6.5.0", + "primitives 6.6.0", + "sc-consensus-grandpa", "sp-api", "sp-arithmetic", + "sp-authority-discovery", "sp-block-builder", "sp-consensus-aura", + "sp-consensus-babe", + "sp-consensus-beefy", "sp-core", - "sp-externalities", + "sp-externalities 0.19.0 (git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3)", "sp-inherents", "sp-io", "sp-offchain", @@ -9949,11 +10433,12 @@ dependencies = [ "sp-transaction-pool", "sp-trie", "sp-version", + "staging-kusama-runtime", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", "test-case", - "xcm", - "xcm-builder", - "xcm-emulator 0.1.0 (git+https://github.com/shaunxw/xcm-simulator?rev=754f3b90ecc65af735a6c9a2e1792c5253926ff6)", - "xcm-executor", + "xcm-emulator", ] [[package]] @@ -9980,7 +10465,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ - "semver 1.0.17", + "semver 1.0.20", ] [[package]] @@ -9994,62 +10479,74 @@ dependencies = [ [[package]] name = "rustix" -version = "0.35.13" +version = "0.36.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "727a1a6d65f786ec22df8a81ca3121107f235970dc1705ed681d3e6e8b9cd5f9" +checksum = "305efbd14fde4139eb501df5f136994bb520b033fa9fbdce287507dc23b8c7ed" dependencies = [ - "bitflags", - "errno 0.2.8", - "io-lifetimes 0.7.5", + "bitflags 1.3.2", + "errno", + "io-lifetimes", "libc", - "linux-raw-sys 0.0.46", - "windows-sys 0.42.0", + "linux-raw-sys 0.1.4", + "windows-sys 0.45.0", ] [[package]] name = "rustix" -version = "0.37.19" +version = "0.37.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acf8729d8542766f1b2cf77eb034d52f40d375bb8b615d0b147089946e16613d" +checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2" dependencies = [ - "bitflags", - "errno 0.3.1", - "io-lifetimes 1.0.11", + "bitflags 1.3.2", + "errno", + "io-lifetimes", "libc", "linux-raw-sys 0.3.8", "windows-sys 0.48.0", ] +[[package]] +name = "rustix" +version = "0.38.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfeae074e687625746172d639330f1de242a178bf3189b51e35a7a21573513ac" +dependencies = [ + "bitflags 2.4.1", + "errno", + "libc", + "linux-raw-sys 0.4.12", + "windows-sys 0.52.0", +] + [[package]] name = "rustls" -version = "0.19.1" +version = "0.20.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7" +checksum = "1b80e3dec595989ea8510028f30c408a4630db12c9cbb8de34203b89d6577e99" dependencies = [ - "base64 0.13.1", "log", - "ring", - "sct 0.6.1", - "webpki 0.21.4", + "ring 0.16.20", + "sct", + "webpki", ] [[package]] name = "rustls" -version = "0.20.8" +version = "0.21.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f" +checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba" dependencies = [ "log", - "ring", - "sct 0.7.0", - "webpki 0.22.0", + "ring 0.17.7", + "rustls-webpki", + "sct", ] [[package]] name = "rustls-native-certs" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0167bac7a9f490495f3c33013e7722b53cb087ecbe082fb0c6387c96f634ea50" +checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" dependencies = [ "openssl-probe", "rustls-pemfile", @@ -10059,29 +10556,38 @@ dependencies = [ [[package]] name = "rustls-pemfile" -version = "1.0.2" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d194b56d58803a43635bdc398cd17e383d6f71f9182b9a192c127ca42494a59b" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" dependencies = [ - "base64 0.21.2", + "base64 0.21.5", +] + +[[package]] +name = "rustls-webpki" +version = "0.101.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +dependencies = [ + "ring 0.17.7", + "untrusted 0.9.0", ] [[package]] name = "rustversion" -version = "1.0.12" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f3208ce4d8448b3f3e7d168a73f5e0c43a61e32930de3bceeccedb388b6bf06" +checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" [[package]] -name = "rusty-fork" -version = "0.3.0" +name = "ruzstd" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f" +checksum = "ac3ffab8f9715a0d455df4bbb9d21e91135aab3cd3ca187af0cd0c3c3f868fdc" dependencies = [ - "fnv", - "quick-error", - "tempfile", - "wait-timeout", + "byteorder", + "thiserror-core", + "twox-hash", ] [[package]] @@ -10097,9 +10603,18 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.13" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" + +[[package]] +name = "safe_arch" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" +checksum = "f398075ce1e6a179b46f51bd88d0598b92b00d3551f1a2d4ac49e771b56ac354" +dependencies = [ + "bytemuck", +] [[package]] name = "same-file" @@ -10113,18 +10628,18 @@ dependencies = [ [[package]] name = "sc-allocator" version = "4.1.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "log", "sp-core", - "sp-wasm-interface", + "sp-wasm-interface 14.0.0 (git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3)", "thiserror", ] [[package]] name = "sc-authority-discovery" version = "0.10.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "async-trait", "futures", @@ -10132,12 +10647,13 @@ dependencies = [ "ip_network", "libp2p", "log", + "multihash", "parity-scale-codec", "prost", "prost-build", "rand 0.8.5", "sc-client-api", - "sc-network-common", + "sc-network", "sp-api", "sp-authority-discovery", "sp-blockchain", @@ -10151,7 +10667,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "futures", "futures-timer", @@ -10174,7 +10690,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -10184,46 +10700,49 @@ dependencies = [ "sp-core", "sp-inherents", "sp-runtime", - "sp-state-machine", ] [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "memmap2", "sc-chain-spec-derive", - "sc-network-common", + "sc-client-api", + "sc-executor", + "sc-network", "sc-telemetry", "serde", "serde_json", + "sp-blockchain", "sp-core", "sp-runtime", + "sp-state-machine", ] [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ - "proc-macro-crate", + "proc-macro-crate 1.3.1", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.39", ] [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ - "array-bytes 4.2.0", + "array-bytes", "chrono", "clap", "fdlimit", "futures", - "libp2p", + "libp2p-identity", "log", "names", "parity-scale-codec", @@ -10234,7 +10753,6 @@ dependencies = [ "sc-client-db", "sc-keystore", "sc-network", - "sc-network-common", "sc-service", "sc-telemetry", "sc-tracing", @@ -10256,7 +10774,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "fnv", "futures", @@ -10271,10 +10789,10 @@ dependencies = [ "sp-consensus", "sp-core", "sp-database", - "sp-externalities", - "sp-keystore", + "sp-externalities 0.19.0 (git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3)", "sp-runtime", "sp-state-machine", + "sp-statement-store", "sp-storage", "substrate-prometheus-endpoint", ] @@ -10282,9 +10800,9 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ - "hash-db", + "hash-db 0.16.0", "kvdb", "kvdb-memorydb", "kvdb-rocksdb", @@ -10308,12 +10826,12 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "async-trait", "futures", "futures-timer", - "libp2p", + "libp2p-identity", "log", "mockall", "parking_lot 0.12.1", @@ -10333,7 +10851,7 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "async-trait", "futures", @@ -10362,13 +10880,12 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "async-trait", "fork-tree", "futures", "log", - "merlin", "num-bigint", "num-rational", "num-traits", @@ -10378,9 +10895,9 @@ dependencies = [ "sc-consensus", "sc-consensus-epochs", "sc-consensus-slots", - "sc-keystore", "sc-telemetry", - "schnorrkel", + "sc-transaction-pool-api", + "scale-info", "sp-api", "sp-application-crypto", "sp-block-builder", @@ -10388,7 +10905,6 @@ dependencies = [ "sp-consensus", "sp-consensus-babe", "sp-consensus-slots", - "sp-consensus-vrf", "sp-core", "sp-inherents", "sp-keystore", @@ -10400,7 +10916,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "futures", "jsonrpsee", @@ -10420,115 +10936,78 @@ dependencies = [ ] [[package]] -name = "sc-consensus-epochs" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" -dependencies = [ - "fork-tree", - "parity-scale-codec", - "sc-client-api", - "sc-consensus", - "sp-blockchain", - "sp-runtime", -] - -[[package]] -name = "sc-consensus-slots" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +name = "sc-consensus-beefy" +version = "4.0.0-dev" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ + "array-bytes", + "async-channel 1.9.0", "async-trait", + "fnv", "futures", - "futures-timer", "log", "parity-scale-codec", + "parking_lot 0.12.1", "sc-client-api", "sc-consensus", - "sc-telemetry", + "sc-network", + "sc-network-gossip", + "sc-network-sync", + "sc-utils", + "sp-api", + "sp-application-crypto", "sp-arithmetic", "sp-blockchain", "sp-consensus", - "sp-consensus-slots", + "sp-consensus-beefy", "sp-core", - "sp-inherents", + "sp-keystore", + "sp-mmr-primitives", "sp-runtime", - "sp-state-machine", + "substrate-prometheus-endpoint", + "thiserror", + "wasm-timer", ] [[package]] -name = "sc-executor" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +name = "sc-consensus-beefy-rpc" +version = "4.0.0-dev" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ - "lru 0.8.1", + "futures", + "jsonrpsee", + "log", "parity-scale-codec", "parking_lot 0.12.1", - "sc-executor-common", - "sc-executor-wasmi", - "sc-executor-wasmtime", - "sp-api", + "sc-consensus-beefy", + "sc-rpc", + "serde", + "sp-consensus-beefy", "sp-core", - "sp-externalities", - "sp-io", - "sp-panic-handler", - "sp-runtime-interface", - "sp-trie", - "sp-version", - "sp-wasm-interface", - "tracing", - "wasmi", -] - -[[package]] -name = "sc-executor-common" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" -dependencies = [ - "sc-allocator", - "sp-maybe-compressed-blob", - "sp-wasm-interface", + "sp-runtime", "thiserror", - "wasm-instrument", - "wasmi", -] - -[[package]] -name = "sc-executor-wasmi" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" -dependencies = [ - "log", - "sc-allocator", - "sc-executor-common", - "sp-runtime-interface", - "sp-wasm-interface", - "wasmi", ] [[package]] -name = "sc-executor-wasmtime" +name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ - "cfg-if", - "libc", - "log", - "once_cell", - "rustix 0.35.13", - "sc-allocator", - "sc-executor-common", - "sp-runtime-interface", - "sp-wasm-interface", - "wasmtime", + "fork-tree", + "parity-scale-codec", + "sc-client-api", + "sc-consensus", + "sp-blockchain", + "sp-runtime", ] [[package]] -name = "sc-finality-grandpa" +name = "sc-consensus-grandpa" version = "0.10.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ - "ahash 0.8.3", - "array-bytes 4.2.0", + "ahash 0.8.6", + "array-bytes", "async-trait", "dyn-clone", "finality-grandpa", @@ -10547,6 +11026,7 @@ dependencies = [ "sc-network-common", "sc-network-gossip", "sc-telemetry", + "sc-transaction-pool-api", "sc-utils", "serde_json", "sp-api", @@ -10554,8 +11034,8 @@ dependencies = [ "sp-arithmetic", "sp-blockchain", "sp-consensus", + "sp-consensus-grandpa", "sp-core", - "sp-finality-grandpa", "sp-keystore", "sp-runtime", "substrate-prometheus-endpoint", @@ -10563,9 +11043,9 @@ dependencies = [ ] [[package]] -name = "sc-finality-grandpa-rpc" +name = "sc-consensus-grandpa-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "finality-grandpa", "futures", @@ -10573,7 +11053,7 @@ dependencies = [ "log", "parity-scale-codec", "sc-client-api", - "sc-finality-grandpa", + "sc-consensus-grandpa", "sc-rpc", "serde", "sp-blockchain", @@ -10582,16 +11062,91 @@ dependencies = [ "thiserror", ] +[[package]] +name = "sc-consensus-slots" +version = "0.10.0-dev" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" +dependencies = [ + "async-trait", + "futures", + "futures-timer", + "log", + "parity-scale-codec", + "sc-client-api", + "sc-consensus", + "sc-telemetry", + "sp-arithmetic", + "sp-blockchain", + "sp-consensus", + "sp-consensus-slots", + "sp-core", + "sp-inherents", + "sp-runtime", + "sp-state-machine", +] + +[[package]] +name = "sc-executor" +version = "0.10.0-dev" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" +dependencies = [ + "parity-scale-codec", + "parking_lot 0.12.1", + "sc-executor-common", + "sc-executor-wasmtime", + "schnellru", + "sp-api", + "sp-core", + "sp-externalities 0.19.0 (git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3)", + "sp-io", + "sp-panic-handler", + "sp-runtime-interface 17.0.0 (git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3)", + "sp-trie", + "sp-version", + "sp-wasm-interface 14.0.0 (git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3)", + "tracing", +] + +[[package]] +name = "sc-executor-common" +version = "0.10.0-dev" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" +dependencies = [ + "sc-allocator", + "sp-maybe-compressed-blob", + "sp-wasm-interface 14.0.0 (git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3)", + "thiserror", + "wasm-instrument", +] + +[[package]] +name = "sc-executor-wasmtime" +version = "0.10.0-dev" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" +dependencies = [ + "anyhow", + "cfg-if", + "libc", + "log", + "rustix 0.36.17", + "sc-allocator", + "sc-executor-common", + "sp-runtime-interface 17.0.0 (git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3)", + "sp-wasm-interface 14.0.0 (git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3)", + "wasmtime", +] + [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "ansi_term", "futures", "futures-timer", "log", "sc-client-api", + "sc-network", "sc-network-common", "sp-blockchain", "sp-runtime", @@ -10600,10 +11155,9 @@ dependencies = [ [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ - "array-bytes 4.2.0", - "async-trait", + "array-bytes", "parking_lot 0.12.1", "serde_json", "sp-application-crypto", @@ -10615,12 +11169,12 @@ dependencies = [ [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ - "array-bytes 4.2.0", + "array-bytes", + "async-channel 1.9.0", "async-trait", "asynchronous-codec", - "backtrace", "bytes", "either", "fnv", @@ -10628,45 +11182,45 @@ dependencies = [ "futures-timer", "ip_network", "libp2p", + "linked_hash_set", "log", - "lru 0.8.1", + "mockall", "parity-scale-codec", "parking_lot 0.12.1", + "partial_sort", "pin-project", "rand 0.8.5", - "sc-block-builder", "sc-client-api", - "sc-consensus", "sc-network-common", - "sc-peerset", "sc-utils", "serde", "serde_json", "smallvec", "sp-arithmetic", "sp-blockchain", - "sp-consensus", "sp-core", "sp-runtime", "substrate-prometheus-endpoint", "thiserror", "unsigned-varint", + "wasm-timer", "zeroize", ] [[package]] name = "sc-network-bitswap" version = "0.10.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ + "async-channel 1.9.0", "cid", "futures", - "libp2p", + "libp2p-identity", "log", "prost", "prost-build", "sc-client-api", - "sc-network-common", + "sc-network", "sp-blockchain", "sp-runtime", "thiserror", @@ -10676,42 +11230,33 @@ dependencies = [ [[package]] name = "sc-network-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "async-trait", - "bitflags", - "bytes", + "bitflags 1.3.2", "futures", - "futures-timer", - "libp2p", - "linked_hash_set", + "libp2p-identity", "parity-scale-codec", "prost-build", "sc-consensus", - "sc-peerset", - "serde", - "smallvec", - "sp-blockchain", "sp-consensus", - "sp-finality-grandpa", + "sp-consensus-grandpa", "sp-runtime", - "substrate-prometheus-endpoint", - "thiserror", ] [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ - "ahash 0.8.3", + "ahash 0.8.6", "futures", "futures-timer", "libp2p", "log", - "lru 0.8.1", + "sc-network", "sc-network-common", - "sc-peerset", + "schnellru", "sp-runtime", "substrate-prometheus-endpoint", "tracing", @@ -10720,18 +11265,18 @@ dependencies = [ [[package]] name = "sc-network-light" version = "0.10.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ - "array-bytes 4.2.0", + "array-bytes", + "async-channel 1.9.0", "futures", - "libp2p", + "libp2p-identity", "log", "parity-scale-codec", "prost", "prost-build", "sc-client-api", - "sc-network-common", - "sc-peerset", + "sc-network", "sp-blockchain", "sp-core", "sp-runtime", @@ -10741,30 +11286,32 @@ dependencies = [ [[package]] name = "sc-network-sync" version = "0.10.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ - "array-bytes 4.2.0", + "array-bytes", + "async-channel 1.9.0", "async-trait", "fork-tree", "futures", + "futures-timer", "libp2p", "log", - "lru 0.8.1", "mockall", "parity-scale-codec", "prost", "prost-build", "sc-client-api", "sc-consensus", + "sc-network", "sc-network-common", - "sc-peerset", "sc-utils", + "schnellru", "smallvec", "sp-arithmetic", "sp-blockchain", "sp-consensus", + "sp-consensus-grandpa", "sp-core", - "sp-finality-grandpa", "sp-runtime", "substrate-prometheus-endpoint", "thiserror", @@ -10773,16 +11320,15 @@ dependencies = [ [[package]] name = "sc-network-transactions" version = "0.10.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ - "array-bytes 4.2.0", + "array-bytes", "futures", "libp2p", "log", "parity-scale-codec", - "pin-project", + "sc-network", "sc-network-common", - "sc-peerset", "sc-utils", "sp-consensus", "sp-runtime", @@ -10792,9 +11338,9 @@ dependencies = [ [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ - "array-bytes 4.2.0", + "array-bytes", "bytes", "fnv", "futures", @@ -10802,40 +11348,31 @@ dependencies = [ "hyper", "hyper-rustls", "libp2p", + "log", "num_cpus", "once_cell", "parity-scale-codec", "parking_lot 0.12.1", "rand 0.8.5", "sc-client-api", + "sc-network", "sc-network-common", - "sc-peerset", + "sc-transaction-pool-api", "sc-utils", "sp-api", "sp-core", + "sp-externalities 0.19.0 (git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3)", + "sp-keystore", "sp-offchain", "sp-runtime", - "threadpool", - "tracing", -] - -[[package]] -name = "sc-peerset" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" -dependencies = [ - "futures", - "libp2p", - "log", - "sc-utils", - "serde_json", - "wasm-timer", + "threadpool", + "tracing", ] [[package]] name = "sc-proposer-metrics" version = "0.10.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -10844,7 +11381,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "futures", "jsonrpsee", @@ -10867,6 +11404,7 @@ dependencies = [ "sp-rpc", "sp-runtime", "sp-session", + "sp-statement-store", "sp-version", "tokio", ] @@ -10874,7 +11412,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -10893,7 +11431,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "http", "jsonrpsee", @@ -10908,9 +11446,9 @@ dependencies = [ [[package]] name = "sc-rpc-spec-v2" version = "0.10.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ - "array-bytes 4.2.0", + "array-bytes", "futures", "futures-util", "hex", @@ -10921,6 +11459,7 @@ dependencies = [ "sc-chain-spec", "sc-client-api", "sc-transaction-pool-api", + "sc-utils", "serde", "sp-api", "sp-blockchain", @@ -10928,13 +11467,14 @@ dependencies = [ "sp-runtime", "sp-version", "thiserror", + "tokio", "tokio-stream", ] [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "async-trait", "directories", @@ -10961,11 +11501,9 @@ dependencies = [ "sc-network-light", "sc-network-sync", "sc-network-transactions", - "sc-offchain", "sc-rpc", "sc-rpc-server", "sc-rpc-spec-v2", - "sc-storage-monitor 0.1.0 (git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38)", "sc-sysinfo", "sc-telemetry", "sc-tracing", @@ -10978,7 +11516,7 @@ dependencies = [ "sp-blockchain", "sp-consensus", "sp-core", - "sp-externalities", + "sp-externalities 0.19.0 (git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3)", "sp-keystore", "sp-runtime", "sp-session", @@ -10988,7 +11526,7 @@ dependencies = [ "sp-transaction-storage-proof", "sp-trie", "sp-version", - "static_init 1.0.3", + "static_init", "substrate-prometheus-endpoint", "tempfile", "thiserror", @@ -11000,7 +11538,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "log", "parity-scale-codec", @@ -11011,30 +11549,12 @@ dependencies = [ [[package]] name = "sc-storage-monitor" version = "0.1.0" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" -dependencies = [ - "clap", - "futures", - "log", - "nix 0.26.2", - "sc-client-db", - "sc-utils", - "sp-core", - "thiserror", - "tokio", -] - -[[package]] -name = "sc-storage-monitor" -version = "0.1.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "clap", - "futures", + "fs4", "log", - "nix 0.26.2", "sc-client-db", - "sc-utils", "sp-core", "thiserror", "tokio", @@ -11043,7 +11563,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -11051,7 +11571,7 @@ dependencies = [ "sc-client-api", "sc-consensus-babe", "sc-consensus-epochs", - "sc-finality-grandpa", + "sc-consensus-grandpa", "serde", "serde_json", "sp-blockchain", @@ -11062,7 +11582,7 @@ dependencies = [ [[package]] name = "sc-sysinfo" version = "6.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "futures", "libc", @@ -11081,7 +11601,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "chrono", "futures", @@ -11100,7 +11620,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "ansi_term", "atty", @@ -11108,12 +11628,10 @@ dependencies = [ "lazy_static", "libc", "log", - "once_cell", "parking_lot 0.12.1", "regex", "rustc-hash", "sc-client-api", - "sc-rpc-server", "sc-tracing-proc-macro", "serde", "sp-api", @@ -11121,7 +11639,7 @@ dependencies = [ "sp-core", "sp-rpc", "sp-runtime", - "sp-tracing", + "sp-tracing 10.0.0 (git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3)", "thiserror", "tracing", "tracing-log", @@ -11131,25 +11649,24 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ - "proc-macro-crate", + "proc-macro-crate 1.3.1", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.39", ] [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "async-trait", "futures", "futures-timer", "linked-hash-map", "log", - "num-traits", "parity-scale-codec", "parking_lot 0.12.1", "sc-client-api", @@ -11160,7 +11677,7 @@ dependencies = [ "sp-blockchain", "sp-core", "sp-runtime", - "sp-tracing", + "sp-tracing 10.0.0 (git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3)", "sp-transaction-pool", "substrate-prometheus-endpoint", "thiserror", @@ -11169,13 +11686,15 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "async-trait", "futures", "log", + "parity-scale-codec", "serde", "sp-blockchain", + "sp-core", "sp-runtime", "thiserror", ] @@ -11183,22 +11702,23 @@ dependencies = [ [[package]] name = "sc-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ - "backtrace", + "async-channel 1.9.0", "futures", "futures-timer", "lazy_static", "log", "parking_lot 0.12.1", "prometheus", + "sp-arithmetic", ] [[package]] name = "scale-info" -version = "2.7.0" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b569c32c806ec3abdf3b5869fb8bf1e0d275a7c1c9b0b05603d9464632649edf" +checksum = "7f7d66a1128282b7ef025a8ead62a4a9fcf017382ec53b8ffbf4d7bf77bd3c60" dependencies = [ "bitvec", "cfg-if", @@ -11210,11 +11730,11 @@ dependencies = [ [[package]] name = "scale-info-derive" -version = "2.6.0" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53012eae69e5aa5c14671942a5dd47de59d4cdcff8532a6dd0e081faf1119482" +checksum = "abf2c68b89cafb3b8d918dd07b42be0da66ff202cf1155c5739a4e0c1ea0dc19" dependencies = [ - "proc-macro-crate", + "proc-macro-crate 1.3.1", "proc-macro2", "quote", "syn 1.0.109", @@ -11222,11 +11742,11 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.21" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "713cfb06c7059f3588fb8044c0fad1d09e3c01d225e25b9220dbfdcf16dbb1b3" +checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" dependencies = [ - "windows-sys 0.42.0", + "windows-sys 0.48.0", ] [[package]] @@ -11235,7 +11755,7 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "772575a524feeb803e5b0fcbc6dd9f367e579488197c94c6e4023aad2305774d" dependencies = [ - "ahash 0.8.3", + "ahash 0.8.6", "cfg-if", "hashbrown 0.13.2", ] @@ -11250,7 +11770,7 @@ dependencies = [ "arrayvec 0.5.2", "curve25519-dalek 2.1.3", "getrandom 0.1.16", - "merlin", + "merlin 2.0.1", "rand 0.7.3", "rand_core 0.5.1", "sha2 0.8.2", @@ -11259,54 +11779,48 @@ dependencies = [ ] [[package]] -name = "scopeguard" -version = "1.1.0" +name = "schnorrkel" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" +checksum = "844b7645371e6ecdf61ff246ba1958c29e802881a749ae3fb1993675d210d28d" +dependencies = [ + "arrayref", + "arrayvec 0.7.4", + "curve25519-dalek-ng", + "merlin 3.0.0", + "rand_core 0.6.4", + "sha2 0.9.9", + "subtle-ng", + "zeroize", +] [[package]] -name = "scratch" -version = "1.0.5" +name = "scopeguard" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1792db035ce95be60c3f8853017b3999209281c24e2ba5bc8e59bf97a0c590c1" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] -name = "sct" -version = "0.6.1" +name = "scratch" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce" -dependencies = [ - "ring", - "untrusted", -] +checksum = "a3cf7c11c38cb994f3d40e8a8cde3bbd1f72a435e4c49e85d6553d8312306152" [[package]] name = "sct" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" -dependencies = [ - "ring", - "untrusted", -] - -[[package]] -name = "sdp" -version = "0.5.3" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d22a5ef407871893fd72b4562ee15e4742269b173959db4b8df6f538c414e13" +checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" dependencies = [ - "rand 0.8.5", - "substring", - "thiserror", - "url", + "ring 0.17.7", + "untrusted 0.9.0", ] [[package]] name = "sec1" -version = "0.3.0" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" dependencies = [ "base16ct", "der", @@ -11345,11 +11859,11 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.9.1" +version = "2.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fc758eb7bffce5b308734e9b0c1468893cae9ff70ebf13e7090be8dcbcc83a8" +checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" dependencies = [ - "bitflags", + "bitflags 1.3.2", "core-foundation", "core-foundation-sys", "libc", @@ -11358,9 +11872,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.9.0" +version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f51d0c0d83bec45f16480d0ce0058397a69e48fcdc52d1dc8855fb68acbd31a7" +checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" dependencies = [ "core-foundation-sys", "libc", @@ -11377,19 +11891,9 @@ dependencies = [ [[package]] name = "semver" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" -dependencies = [ - "semver-parser", - "serde", -] - -[[package]] -name = "semver" -version = "1.0.17" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed" +checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" dependencies = [ "serde", ] @@ -11402,35 +11906,44 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serde" -version = "1.0.163" +version = "1.0.193" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2113ab51b87a539ae008b5c6c02dc020ffa39afd2d83cffcb3f4eb2722cebec2" +checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.163" +version = "1.0.193" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c805777e3930c8883389c602315a24224bcc738b63905ef87cd1420353ea93e" +checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.39", ] [[package]] name = "serde_json" -version = "1.0.96" +version = "1.0.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "057d394a50403bcac12672b2b18fb387ab6d289d957dab67dd201875391e52f1" +checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" dependencies = [ "itoa", "ryu", "serde", ] +[[package]] +name = "serde_spanned" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12022b835073e5b11e90a14f86838ceb1c8fb0325b72416845c487ac0fa95e80" +dependencies = [ + "serde", +] + [[package]] name = "sha-1" version = "0.9.8" @@ -11444,17 +11957,6 @@ dependencies = [ "opaque-debug 0.3.0", ] -[[package]] -name = "sha1" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest 0.10.7", -] - [[package]] name = "sha2" version = "0.8.2" @@ -11482,9 +11984,9 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.6" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ "cfg-if", "cpufeatures", @@ -11503,18 +12005,18 @@ dependencies = [ [[package]] name = "sharded-slab" -version = "0.1.4" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" dependencies = [ "lazy_static", ] [[package]] name = "shlex" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3" +checksum = "a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380" [[package]] name = "signal-hook-registry" @@ -11527,9 +12029,9 @@ dependencies = [ [[package]] name = "signature" -version = "1.6.4" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" dependencies = [ "digest 0.10.7", "rand_core 0.6.4", @@ -11537,27 +12039,28 @@ dependencies = [ [[package]] name = "simba" -version = "0.5.1" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e82063457853d00243beda9952e910b82593e4b07ae9f721b9278a99a0d3d5c" +checksum = "061507c94fc6ab4ba1c9a0305018408e312e17c041eb63bef8aa726fa33aceae" dependencies = [ "approx", "num-complex", "num-traits", "paste", + "wide", ] [[package]] name = "siphasher" -version = "0.3.10" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" [[package]] name = "slab" -version = "0.4.8" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" dependencies = [ "autocfg", ] @@ -11570,8 +12073,8 @@ checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7" [[package]] name = "slot-range-helper" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "enumn", "parity-scale-codec", @@ -11582,47 +12085,154 @@ dependencies = [ [[package]] name = "slotmap" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1e08e261d0e8f5c43123b7adf3e4ca1690d655377ac93a03b2c9d3e98de1342" +checksum = "dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a" dependencies = [ "version_check", ] [[package]] name = "smallvec" -version = "1.10.0" +version = "1.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" + +[[package]] +name = "smol" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13f2b548cd8447f8de0fdf1c592929f70f4fc7039a05e47404b0d096ec6987a1" +dependencies = [ + "async-channel 1.9.0", + "async-executor", + "async-fs", + "async-io 1.13.0", + "async-lock 2.8.0", + "async-net", + "async-process", + "blocking", + "futures-lite 1.13.0", +] + +[[package]] +name = "smoldot" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0bb30cf57b7b5f6109ce17c3164445e2d6f270af2cb48f6e4d31c2967c9a9f5" +dependencies = [ + "arrayvec 0.7.4", + "async-lock 2.8.0", + "atomic-take", + "base64 0.21.5", + "bip39", + "blake2-rfc", + "bs58 0.5.0", + "chacha20", + "crossbeam-queue", + "derive_more", + "ed25519-zebra 4.0.3", + "either", + "event-listener 2.5.3", + "fnv", + "futures-lite 1.13.0", + "futures-util", + "hashbrown 0.14.3", + "hex", + "hmac 0.12.1", + "itertools 0.11.0", + "libsecp256k1", + "merlin 3.0.0", + "no-std-net", + "nom", + "num-bigint", + "num-rational", + "num-traits", + "pbkdf2 0.12.2", + "pin-project", + "poly1305", + "rand 0.8.5", + "rand_chacha 0.3.1", + "ruzstd", + "schnorrkel 0.10.2", + "serde", + "serde_json", + "sha2 0.10.8", + "sha3", + "siphasher", + "slab", + "smallvec", + "soketto", + "twox-hash", + "wasmi", + "x25519-dalek 2.0.0", + "zeroize", +] + +[[package]] +name = "smoldot-light" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" +checksum = "256b5bad1d6b49045e95fe87492ce73d5af81545d8b4d8318a872d2007024c33" +dependencies = [ + "async-channel 1.9.0", + "async-lock 2.8.0", + "base64 0.21.5", + "blake2-rfc", + "derive_more", + "either", + "event-listener 2.5.3", + "fnv", + "futures-channel", + "futures-lite 1.13.0", + "futures-util", + "hashbrown 0.14.3", + "hex", + "itertools 0.11.0", + "log", + "lru 0.11.1", + "no-std-net", + "parking_lot 0.12.1", + "pin-project", + "rand 0.8.5", + "rand_chacha 0.3.1", + "serde", + "serde_json", + "siphasher", + "slab", + "smol", + "smoldot", + "zeroize", +] [[package]] name = "snap" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e9f0ab6ef7eb7353d9119c170a436d1bf248eea575ac42d19d12f4e34130831" +checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" [[package]] name = "snow" -version = "0.9.2" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ccba027ba85743e09d15c03296797cad56395089b832b48b5a5217880f57733" +checksum = "58021967fd0a5eeeb23b08df6cc244a4d4a5b4aec1d27c9e02fad1a58b4cd74e" dependencies = [ - "aes-gcm 0.9.4", + "aes-gcm", "blake2", "chacha20poly1305", - "curve25519-dalek 4.0.0-rc.1", + "curve25519-dalek 4.1.1", "rand_core 0.6.4", - "ring", + "ring 0.17.7", "rustc_version", - "sha2 0.10.6", + "sha2 0.10.8", "subtle", ] [[package]] name = "socket2" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" +checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" dependencies = [ "libc", "winapi", @@ -11630,9 +12240,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.3" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2538b18701741680e0322a2302176d3253a35388e2e62f172f64f4f16605f877" +checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" dependencies = [ "libc", "windows-sys 0.48.0", @@ -11658,13 +12268,16 @@ dependencies = [ [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ - "hash-db", + "hash-db 0.16.0", "log", "parity-scale-codec", + "scale-info", "sp-api-proc-macro", "sp-core", + "sp-externalities 0.19.0 (git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3)", + "sp-metadata-ir", "sp-runtime", "sp-state-machine", "sp-std", @@ -11676,19 +12289,21 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ + "Inflector", "blake2", - "proc-macro-crate", + "expander 2.0.0", + "proc-macro-crate 1.3.1", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.39", ] [[package]] name = "sp-application-crypto" -version = "7.0.0" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +version = "23.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "parity-scale-codec", "scale-info", @@ -11700,8 +12315,8 @@ dependencies = [ [[package]] name = "sp-arithmetic" -version = "6.0.0" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +version = "16.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "integer-sqrt", "num-traits", @@ -11715,29 +12330,12 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" -dependencies = [ - "parity-scale-codec", - "scale-info", - "sp-api", - "sp-application-crypto", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "sp-beefy" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "parity-scale-codec", "scale-info", - "serde", "sp-api", "sp-application-crypto", - "sp-core", - "sp-io", - "sp-mmr-primitives", "sp-runtime", "sp-std", ] @@ -11745,9 +12343,8 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ - "parity-scale-codec", "sp-api", "sp-inherents", "sp-runtime", @@ -11757,13 +12354,13 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "futures", "log", - "lru 0.8.1", "parity-scale-codec", "parking_lot 0.12.1", + "schnellru", "sp-api", "sp-consensus", "sp-database", @@ -11775,32 +12372,28 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "async-trait", "futures", "log", - "parity-scale-codec", "sp-core", "sp-inherents", "sp-runtime", "sp-state-machine", - "sp-std", - "sp-version", "thiserror", ] [[package]] name = "sp-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "async-trait", "parity-scale-codec", "scale-info", "sp-api", "sp-application-crypto", - "sp-consensus", "sp-consensus-slots", "sp-inherents", "sp-runtime", @@ -11811,122 +12404,145 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "async-trait", - "merlin", "parity-scale-codec", "scale-info", "serde", "sp-api", "sp-application-crypto", - "sp-consensus", "sp-consensus-slots", - "sp-consensus-vrf", "sp-core", "sp-inherents", - "sp-keystore", "sp-runtime", "sp-std", "sp-timestamp", ] [[package]] -name = "sp-consensus-slots" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +name = "sp-consensus-beefy" +version = "4.0.0-dev" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ + "lazy_static", "parity-scale-codec", "scale-info", "serde", + "sp-api", + "sp-application-crypto", + "sp-core", + "sp-io", + "sp-mmr-primitives", + "sp-runtime", "sp-std", - "sp-timestamp", + "strum 0.24.1", ] [[package]] -name = "sp-consensus-vrf" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +name = "sp-consensus-grandpa" +version = "4.0.0-dev" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ + "finality-grandpa", + "log", "parity-scale-codec", "scale-info", - "schnorrkel", + "serde", + "sp-api", + "sp-application-crypto", "sp-core", + "sp-keystore", "sp-runtime", "sp-std", ] +[[package]] +name = "sp-consensus-slots" +version = "0.10.0-dev" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" +dependencies = [ + "parity-scale-codec", + "scale-info", + "serde", + "sp-std", + "sp-timestamp", +] + [[package]] name = "sp-core" -version = "7.0.0" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +version = "21.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ - "array-bytes 4.2.0", - "base58", - "bitflags", + "array-bytes", + "arrayvec 0.7.4", + "bandersnatch_vrfs", + "bitflags 1.3.2", "blake2", + "bounded-collections", + "bs58 0.5.0", "dyn-clonable", - "ed25519-zebra", + "ed25519-zebra 3.1.0", "futures", - "hash-db", + "hash-db 0.16.0", "hash256-std-hasher", "impl-serde", "lazy_static", "libsecp256k1", "log", - "merlin", + "merlin 2.0.1", "parity-scale-codec", "parking_lot 0.12.1", - "primitive-types 0.12.1", + "paste", + "primitive-types", "rand 0.8.5", "regex", "scale-info", - "schnorrkel", + "schnorrkel 0.9.1", "secp256k1", "secrecy", "serde", "sp-core-hashing", "sp-debug-derive", - "sp-externalities", - "sp-runtime-interface", + "sp-externalities 0.19.0 (git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3)", + "sp-runtime-interface 17.0.0 (git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3)", "sp-std", "sp-storage", "ss58-registry", "substrate-bip39", "thiserror", "tiny-bip39", + "tracing", "zeroize", ] [[package]] name = "sp-core-hashing" -version = "5.0.0" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +version = "9.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ - "blake2", + "blake2b_simd", "byteorder", "digest 0.10.7", - "sha2 0.10.6", + "sha2 0.10.8", "sha3", - "sp-std", "twox-hash", ] [[package]] name = "sp-core-hashing-proc-macro" -version = "5.0.0" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +version = "9.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ - "proc-macro2", "quote", "sp-core-hashing", - "syn 1.0.109", + "syn 2.0.39", ] [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "kvdb", "parking_lot 0.12.1", @@ -11934,18 +12550,18 @@ dependencies = [ [[package]] name = "sp-debug-derive" -version = "5.0.0" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +version = "8.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.39", ] [[package]] name = "sp-externalities" -version = "0.13.0" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +version = "0.19.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.1.0#4b7e06d11031f759e2e151eb35a805499a3e284b" dependencies = [ "environmental", "parity-scale-codec", @@ -11954,19 +12570,23 @@ dependencies = [ ] [[package]] -name = "sp-finality-grandpa" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +name = "sp-externalities" +version = "0.19.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ - "finality-grandpa", - "log", + "environmental", "parity-scale-codec", - "scale-info", - "serde", + "sp-std", + "sp-storage", +] + +[[package]] +name = "sp-genesis-builder" +version = "0.1.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" +dependencies = [ + "serde_json", "sp-api", - "sp-application-crypto", - "sp-core", - "sp-keystore", "sp-runtime", "sp-std", ] @@ -11974,12 +12594,12 @@ dependencies = [ [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "async-trait", "impl-trait-for-tuples", "parity-scale-codec", - "sp-core", + "scale-info", "sp-runtime", "sp-std", "thiserror", @@ -11987,24 +12607,23 @@ dependencies = [ [[package]] name = "sp-io" -version = "7.0.0" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +version = "23.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "bytes", - "ed25519", "ed25519-dalek", - "futures", "libsecp256k1", "log", "parity-scale-codec", + "rustversion", "secp256k1", "sp-core", - "sp-externalities", + "sp-externalities 0.19.0 (git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3)", "sp-keystore", - "sp-runtime-interface", + "sp-runtime-interface 17.0.0 (git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3)", "sp-state-machine", "sp-std", - "sp-tracing", + "sp-tracing 10.0.0 (git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3)", "sp-trie", "tracing", "tracing-core", @@ -12012,45 +12631,51 @@ dependencies = [ [[package]] name = "sp-keyring" -version = "7.0.0" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +version = "24.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "lazy_static", "sp-core", "sp-runtime", - "strum", + "strum 0.24.1", ] [[package]] name = "sp-keystore" -version = "0.13.0" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +version = "0.27.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ - "async-trait", - "futures", - "merlin", "parity-scale-codec", "parking_lot 0.12.1", - "schnorrkel", - "serde", "sp-core", - "sp-externalities", + "sp-externalities 0.19.0 (git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3)", "thiserror", ] [[package]] name = "sp-maybe-compressed-blob" version = "4.1.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "thiserror", - "zstd", + "zstd 0.12.4", +] + +[[package]] +name = "sp-metadata-ir" +version = "0.1.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" +dependencies = [ + "frame-metadata", + "parity-scale-codec", + "scale-info", + "sp-std", ] [[package]] name = "sp-mmr-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "ckb-merkle-mountain-range", "log", @@ -12068,7 +12693,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "parity-scale-codec", "scale-info", @@ -12082,7 +12707,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "sp-api", "sp-core", @@ -12091,8 +12716,8 @@ dependencies = [ [[package]] name = "sp-panic-handler" -version = "5.0.0" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +version = "8.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "backtrace", "lazy_static", @@ -12102,7 +12727,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "6.0.0" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "rustc-hash", "serde", @@ -12111,8 +12736,8 @@ dependencies = [ [[package]] name = "sp-runtime" -version = "7.0.0" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +version = "24.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "either", "hash256-std-hasher", @@ -12133,43 +12758,74 @@ dependencies = [ [[package]] name = "sp-runtime-interface" -version = "7.0.0" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +version = "17.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.1.0#4b7e06d11031f759e2e151eb35a805499a3e284b" +dependencies = [ + "bytes", + "impl-trait-for-tuples", + "parity-scale-codec", + "primitive-types", + "sp-externalities 0.19.0 (git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.1.0)", + "sp-runtime-interface-proc-macro 11.0.0 (git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.1.0)", + "sp-std", + "sp-storage", + "sp-tracing 10.0.0 (git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.1.0)", + "sp-wasm-interface 14.0.0 (git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.1.0)", + "static_assertions", +] + +[[package]] +name = "sp-runtime-interface" +version = "17.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "bytes", "impl-trait-for-tuples", "parity-scale-codec", - "primitive-types 0.12.1", - "sp-externalities", - "sp-runtime-interface-proc-macro", + "primitive-types", + "sp-externalities 0.19.0 (git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3)", + "sp-runtime-interface-proc-macro 11.0.0 (git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3)", "sp-std", "sp-storage", - "sp-tracing", - "sp-wasm-interface", + "sp-tracing 10.0.0 (git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3)", + "sp-wasm-interface 14.0.0 (git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3)", "static_assertions", ] [[package]] name = "sp-runtime-interface-proc-macro" -version = "6.0.0" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +version = "11.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.1.0#4b7e06d11031f759e2e151eb35a805499a3e284b" dependencies = [ "Inflector", - "proc-macro-crate", + "proc-macro-crate 1.3.1", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.39", +] + +[[package]] +name = "sp-runtime-interface-proc-macro" +version = "11.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" +dependencies = [ + "Inflector", + "proc-macro-crate 1.3.1", + "proc-macro2", + "quote", + "syn 2.0.39", ] [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "parity-scale-codec", "scale-info", "sp-api", "sp-core", + "sp-keystore", "sp-runtime", "sp-staking", "sp-std", @@ -12178,10 +12834,12 @@ dependencies = [ [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ + "impl-trait-for-tuples", "parity-scale-codec", "scale-info", + "serde", "sp-core", "sp-runtime", "sp-std", @@ -12189,33 +12847,58 @@ dependencies = [ [[package]] name = "sp-state-machine" -version = "0.13.0" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +version = "0.28.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ - "hash-db", + "hash-db 0.16.0", "log", "parity-scale-codec", "parking_lot 0.12.1", "rand 0.8.5", "smallvec", "sp-core", - "sp-externalities", + "sp-externalities 0.19.0 (git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3)", "sp-panic-handler", "sp-std", "sp-trie", "thiserror", "tracing", + "trie-db", +] + +[[package]] +name = "sp-statement-store" +version = "4.0.0-dev" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" +dependencies = [ + "aes-gcm", + "curve25519-dalek 4.1.1", + "ed25519-dalek", + "hkdf", + "parity-scale-codec", + "rand 0.8.5", + "scale-info", + "sha2 0.10.8", + "sp-api", + "sp-application-crypto", + "sp-core", + "sp-externalities 0.19.0 (git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3)", + "sp-runtime", + "sp-runtime-interface 17.0.0 (git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3)", + "sp-std", + "thiserror", + "x25519-dalek 2.0.0", ] [[package]] name = "sp-std" -version = "5.0.0" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +version = "8.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" [[package]] name = "sp-storage" -version = "7.0.0" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +version = "13.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "impl-serde", "parity-scale-codec", @@ -12228,11 +12911,9 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "async-trait", - "futures-timer", - "log", "parity-scale-codec", "sp-inherents", "sp-runtime", @@ -12242,8 +12923,20 @@ dependencies = [ [[package]] name = "sp-tracing" -version = "6.0.0" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +version = "10.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.1.0#4b7e06d11031f759e2e151eb35a805499a3e284b" +dependencies = [ + "parity-scale-codec", + "sp-std", + "tracing", + "tracing-core", + "tracing-subscriber", +] + +[[package]] +name = "sp-tracing" +version = "10.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "parity-scale-codec", "sp-std", @@ -12255,7 +12948,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "sp-api", "sp-runtime", @@ -12264,10 +12957,9 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "async-trait", - "log", "parity-scale-codec", "scale-info", "sp-core", @@ -12279,12 +12971,12 @@ dependencies = [ [[package]] name = "sp-trie" -version = "7.0.0" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +version = "22.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ - "ahash 0.8.3", - "hash-db", - "hashbrown 0.12.3", + "ahash 0.8.6", + "hash-db 0.16.0", + "hashbrown 0.13.2", "lazy_static", "memory-db", "nohash-hasher", @@ -12302,8 +12994,8 @@ dependencies = [ [[package]] name = "sp-version" -version = "5.0.0" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +version = "22.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "impl-serde", "parity-scale-codec", @@ -12319,126 +13011,296 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +version = "8.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "parity-scale-codec", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.39", +] + +[[package]] +name = "sp-wasm-interface" +version = "14.0.0" +source = "git+https://github.com/moonbeam-foundation/polkadot-sdk?branch=moonbeam-polkadot-v1.1.0#4b7e06d11031f759e2e151eb35a805499a3e284b" +dependencies = [ + "anyhow", + "impl-trait-for-tuples", + "log", + "parity-scale-codec", + "sp-std", + "wasmtime", +] + +[[package]] +name = "sp-wasm-interface" +version = "14.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" +dependencies = [ + "anyhow", + "impl-trait-for-tuples", + "log", + "parity-scale-codec", + "sp-std", + "wasmtime", +] + +[[package]] +name = "sp-weights" +version = "20.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" +dependencies = [ + "parity-scale-codec", + "scale-info", + "serde", + "smallvec", + "sp-arithmetic", + "sp-core", + "sp-debug-derive", + "sp-std", +] + +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" + +[[package]] +name = "spinners" +version = "4.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0ef947f358b9c238923f764c72a4a9d42f2d637c46e059dbd319d6e7cfb4f82" +dependencies = [ + "lazy_static", + "maplit", + "strum 0.24.1", +] + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der", +] + +[[package]] +name = "ss58-registry" +version = "1.44.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35935738370302d5e33963665b77541e4b990a3e919ec904c837a56cfc891de1" +dependencies = [ + "Inflector", + "num-format", + "proc-macro2", + "quote", + "serde", + "serde_json", + "unicode-xid", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "staging-kusama-runtime" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" +dependencies = [ + "binary-merkle-tree", + "bitvec", + "frame-benchmarking", + "frame-election-provider-support", + "frame-executive", + "frame-support", + "frame-system", + "frame-system-benchmarking", + "frame-system-rpc-runtime-api", + "frame-try-runtime", + "hex-literal 0.4.1", + "kusama-runtime-constants", + "log", + "pallet-authority-discovery", + "pallet-authorship", + "pallet-babe", + "pallet-bags-list", + "pallet-balances", + "pallet-beefy", + "pallet-beefy-mmr", + "pallet-bounties", + "pallet-child-bounties", + "pallet-collective", + "pallet-conviction-voting", + "pallet-democracy 4.0.0-dev", + "pallet-election-provider-multi-phase", + "pallet-election-provider-support-benchmarking", + "pallet-elections-phragmen", + "pallet-fast-unstake", + "pallet-grandpa", + "pallet-identity", + "pallet-im-online", + "pallet-indices", + "pallet-membership", + "pallet-message-queue", + "pallet-mmr", + "pallet-multisig", + "pallet-nis", + "pallet-nomination-pools", + "pallet-nomination-pools-benchmarking", + "pallet-nomination-pools-runtime-api", + "pallet-offences", + "pallet-offences-benchmarking", + "pallet-preimage", + "pallet-proxy", + "pallet-ranked-collective", + "pallet-recovery", + "pallet-referenda", + "pallet-scheduler", + "pallet-session", + "pallet-session-benchmarking", + "pallet-society", + "pallet-staking 4.0.0-dev", + "pallet-staking-runtime-api", + "pallet-state-trie-migration", + "pallet-timestamp", + "pallet-tips", + "pallet-transaction-payment", + "pallet-transaction-payment-rpc-runtime-api", + "pallet-treasury", + "pallet-utility", + "pallet-vesting", + "pallet-whitelist", + "pallet-xcm", + "pallet-xcm-benchmarks", + "parity-scale-codec", + "polkadot-primitives", + "polkadot-runtime-common", + "polkadot-runtime-parachains", + "rustc-hex", + "scale-info", + "serde", + "serde_derive", + "smallvec", + "sp-api", + "sp-application-crypto", + "sp-arithmetic", + "sp-authority-discovery", + "sp-block-builder", + "sp-consensus-babe", + "sp-consensus-beefy", + "sp-core", + "sp-inherents", + "sp-io", + "sp-mmr-primitives", + "sp-npos-elections", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-staking", + "sp-std", + "sp-storage", + "sp-transaction-pool", + "sp-version", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", + "static_assertions", + "substrate-wasm-builder", ] [[package]] -name = "sp-wasm-interface" -version = "7.0.0" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +name = "staging-xcm" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ + "bounded-collections", + "derivative", + "environmental", "impl-trait-for-tuples", "log", "parity-scale-codec", - "sp-std", - "wasmi", - "wasmtime", + "scale-info", + "serde", + "sp-weights", + "xcm-procedural", ] [[package]] -name = "sp-weights" -version = "4.0.0" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +name = "staging-xcm-builder" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ + "frame-support", + "frame-system", + "impl-trait-for-tuples", + "log", + "pallet-transaction-payment", "parity-scale-codec", + "polkadot-parachain-primitives", "scale-info", - "serde", - "smallvec", "sp-arithmetic", - "sp-core", - "sp-debug-derive", + "sp-io", + "sp-runtime", "sp-std", + "sp-weights", + "staging-xcm", + "staging-xcm-executor", ] [[package]] -name = "spin" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" - -[[package]] -name = "spki" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b" -dependencies = [ - "base64ct", - "der", -] - -[[package]] -name = "ss58-registry" -version = "1.40.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb47a8ad42e5fc72d5b1eb104a5546937eaf39843499948bb666d6e93c62423b" +name = "staging-xcm-executor" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ - "Inflector", - "num-format", - "proc-macro2", - "quote", - "serde", - "serde_json", - "unicode-xid", + "environmental", + "frame-benchmarking", + "frame-support", + "impl-trait-for-tuples", + "log", + "parity-scale-codec", + "sp-arithmetic", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "sp-weights", + "staging-xcm", ] -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - [[package]] name = "static_assertions" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" -[[package]] -name = "static_init" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11b73400442027c4adedda20a9f9b7945234a5bd8d5f7e86da22bd5d0622369c" -dependencies = [ - "cfg_aliases", - "libc", - "parking_lot 0.11.2", - "static_init_macro 0.5.0", -] - [[package]] name = "static_init" version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a2a1c578e98c1c16fc3b8ec1328f7659a500737d7a0c6d625e73e830ff9c1f6" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cfg_aliases", "libc", "parking_lot 0.11.2", "parking_lot_core 0.8.6", - "static_init_macro 1.0.2", + "static_init_macro", "winapi", ] -[[package]] -name = "static_init_macro" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2261c91034a1edc3fc4d1b80e89d82714faede0515c14a75da10cb941546bbf" -dependencies = [ - "cfg_aliases", - "memchr", - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "static_init_macro" version = "1.0.2" @@ -12452,19 +13314,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "statrs" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05bdbb8e4e78216a85785a85d3ec3183144f98d0097b9281802c019bb07a6f05" -dependencies = [ - "approx", - "lazy_static", - "nalgebra", - "num-traits", - "rand 0.8.5", -] - [[package]] name = "strsim" version = "0.10.0" @@ -12477,9 +13326,15 @@ version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" dependencies = [ - "strum_macros", + "strum_macros 0.24.3", ] +[[package]] +name = "strum" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" + [[package]] name = "strum_macros" version = "0.24.3" @@ -12494,33 +13349,27 @@ dependencies = [ ] [[package]] -name = "stun" -version = "0.4.4" +name = "strum_macros" +version = "0.25.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7e94b1ec00bad60e6410e058b52f1c66de3dc5fe4d62d09b3e52bb7d3b73e25" +checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0" dependencies = [ - "base64 0.13.1", - "crc", - "lazy_static", - "md-5", - "rand 0.8.5", - "ring", - "subtle", - "thiserror", - "tokio", - "url", - "webrtc-util", + "heck", + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.39", ] [[package]] name = "substrate-bip39" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49eee6965196b32f882dd2ee85a92b1dbead41b04e53907f269de3b0dc04733c" +checksum = "e620c7098893ba667438b47169c00aacdd9e7c10e042250ce2b60b087ec97328" dependencies = [ "hmac 0.11.0", "pbkdf2 0.8.0", - "schnorrkel", + "schnorrkel 0.9.1", "sha2 0.9.9", "zeroize", ] @@ -12528,15 +13377,12 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" -dependencies = [ - "platforms 2.0.0", -] +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "frame-system-rpc-runtime-api", "futures", @@ -12555,7 +13401,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.10.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "hyper", "log", @@ -12567,7 +13413,7 @@ dependencies = [ [[package]] name = "substrate-rpc-client" version = "0.10.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "async-trait", "jsonrpsee", @@ -12580,14 +13426,12 @@ dependencies = [ [[package]] name = "substrate-state-trie-migration-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "jsonrpsee", - "log", "parity-scale-codec", "sc-client-api", "sc-rpc-api", - "scale-info", "serde", "sp-core", "sp-runtime", @@ -12599,35 +13443,33 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "ansi_term", "build-helper", "cargo_metadata", "filetime", + "parity-wasm", "sp-maybe-compressed-blob", - "strum", + "strum 0.24.1", "tempfile", - "toml", + "toml 0.7.8", "walkdir", "wasm-opt", ] -[[package]] -name = "substring" -version = "1.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ee6433ecef213b2e72f587ef64a2f5943e7cd16fbd82dbe8bc07486c534c86" -dependencies = [ - "autocfg", -] - [[package]] name = "subtle" version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" +[[package]] +name = "subtle-ng" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "734676eb262c623cec13c3155096e08d1f8f29adce39ba17948b18dad1e54142" + [[package]] name = "syn" version = "1.0.109" @@ -12641,9 +13483,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.18" +version = "2.0.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32d41677bcbe24c20c52e7c70b0d8db04134c5d1066bf98662e2871ad200ea3e" +checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" dependencies = [ "proc-macro2", "quote", @@ -12668,7 +13510,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" dependencies = [ - "bitflags", + "bitflags 1.3.2", "core-foundation", "system-configuration-sys", ] @@ -12691,29 +13533,28 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "target-lexicon" -version = "0.12.7" +version = "0.12.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd1ba337640d60c3e96bc6f0638a939b9c9a7f2c316a1598c279828b3d1dc8c5" +checksum = "14c39fd04924ca3a864207c66fc2cd7d22d7c016007f9ce846cbb9326331930a" [[package]] name = "tempfile" -version = "3.6.0" +version = "3.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31c0432476357e58790aaa47a8efb0c5138f137343f3b5f23bd36a27e3b0a6d6" +checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" dependencies = [ - "autocfg", "cfg-if", - "fastrand", - "redox_syscall 0.3.5", - "rustix 0.37.19", + "fastrand 2.0.1", + "redox_syscall 0.4.1", + "rustix 0.38.27", "windows-sys 0.48.0", ] [[package]] name = "termcolor" -version = "1.2.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" +checksum = "ff1bc3d3f05aff0403e8ac0d92ced918ec05b666a43f83297ccef5bea8a3d449" dependencies = [ "winapi-util", ] @@ -12726,66 +13567,75 @@ checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" [[package]] name = "test-case" -version = "3.1.0" +version = "3.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a1d6e7bde536b0412f20765b76e921028059adfd1b90d8974d33fd3c91b25df" +checksum = "eb2550dd13afcd286853192af8601920d959b14c401fcece38071d53bf0768a8" dependencies = [ "test-case-macros", ] [[package]] name = "test-case-core" -version = "3.1.0" +version = "3.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d10394d5d1e27794f772b6fc854c7e91a2dc26e2cbf807ad523370c2a59c0cee" +checksum = "adcb7fd841cd518e279be3d5a3eb0636409487998a4aff22f3de87b81e88384f" dependencies = [ "cfg-if", - "proc-macro-error", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.39", ] [[package]] name = "test-case-macros" -version = "3.1.0" +version = "3.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eeb9a44b1c6a54c1ba58b152797739dba2a83ca74e18168a68c980eb142f9404" +checksum = "5c89e72a01ed4c579669add59014b9a524d609c0c88c6a585ce37485879f6ffb" dependencies = [ - "proc-macro-error", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.39", "test-case-core", ] [[package]] -name = "test-utils" -version = "1.1.1" -source = "git+https://github.com/galacticcouncil/HydraDX-node?rev=b59c0379b312e9b3df365f407aa48b43bc4ca833#b59c0379b312e9b3df365f407aa48b43bc4ca833" +name = "thiserror" +version = "1.0.50" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" dependencies = [ - "frame-system", - "pretty_assertions", + "thiserror-impl", ] [[package]] -name = "thiserror" -version = "1.0.40" +name = "thiserror-core" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac" +checksum = "c001ee18b7e5e3f62cbf58c7fe220119e68d902bb7443179c0c8aef30090e999" dependencies = [ - "thiserror-impl", + "thiserror-core-impl", +] + +[[package]] +name = "thiserror-core-impl" +version = "1.0.50" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4c60d69f36615a077cc7663b9cb8e42275722d23e58a7fa3d2c7f2915d09d04" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", ] [[package]] name = "thiserror-impl" -version = "1.0.40" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" +checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.39", ] [[package]] @@ -12828,9 +13678,9 @@ dependencies = [ [[package]] name = "tikv-jemalloc-ctl" -version = "0.5.0" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e37706572f4b151dff7a0146e040804e9c26fe3a3118591112f05cf12a4216c1" +checksum = "619bfed27d807b54f7f776b9430d4f8060e66ee138a28632ca898584d462c31c" dependencies = [ "libc", "paste", @@ -12839,9 +13689,9 @@ dependencies = [ [[package]] name = "tikv-jemalloc-sys" -version = "0.5.3+5.3.0-patched" +version = "0.5.4+5.3.0-patched" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a678df20055b43e57ef8cddde41cdfda9a3c1a060b67f4c5836dfb1d78543ba8" +checksum = "9402443cb8fd499b6f327e40565234ff34dbda27460c5b47db0db77443dd85d1" dependencies = [ "cc", "libc", @@ -12849,22 +13699,13 @@ dependencies = [ [[package]] name = "time" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" -dependencies = [ - "libc", - "wasi 0.10.0+wasi-snapshot-preview1", - "winapi", -] - -[[package]] -name = "time" -version = "0.3.21" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f3403384eaacbca9923fa06940178ac13e4edb725486d70e8e15881d0c836cc" +checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5" dependencies = [ + "deranged", "itoa", + "powerfmt", "serde", "time-core", "time-macros", @@ -12872,15 +13713,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.9" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "372950940a5f07bf38dbe211d7283c9e6d7327df53794992d293e534c733d09b" +checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20" dependencies = [ "time-core", ] @@ -12897,7 +13738,7 @@ dependencies = [ "pbkdf2 0.11.0", "rand 0.8.5", "rustc-hash", - "sha2 0.10.6", + "sha2 0.10.8", "thiserror", "unicode-normalization", "wasm-bindgen", @@ -12905,13 +13746,12 @@ dependencies = [ ] [[package]] -name = "tinytemplate" -version = "1.2.1" +name = "tiny-keccak" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" dependencies = [ - "serde", - "serde_json", + "crunchy", ] [[package]] @@ -12931,43 +13771,53 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.28.2" +version = "1.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94d7b1cfd2aa4011f2de74c2c4c63665e27a71006b0a192dcd2710272e73dfa2" +checksum = "d0c014766411e834f7af5b8f4cf46257aab4036ca95e9d2c144a10f59ad6f5b9" dependencies = [ - "autocfg", + "backtrace", "bytes", "libc", "mio", "num_cpus", "parking_lot 0.12.1", - "pin-project-lite 0.2.9", + "pin-project-lite 0.2.13", "signal-hook-registry", - "socket2 0.4.9", + "socket2 0.5.5", "tokio-macros", "windows-sys 0.48.0", ] [[package]] name = "tokio-macros" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" +checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.39", +] + +[[package]] +name = "tokio-retry" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f57eb36ecbe0fc510036adff84824dd3c24bb781e21bfa67b69d556aa85214f" +dependencies = [ + "pin-project", + "rand 0.8.5", + "tokio", ] [[package]] name = "tokio-rustls" -version = "0.23.4" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" dependencies = [ - "rustls 0.20.8", + "rustls 0.21.10", "tokio", - "webpki 0.22.0", ] [[package]] @@ -12977,22 +13827,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" dependencies = [ "futures-core", - "pin-project-lite 0.2.9", + "pin-project-lite 0.2.13", "tokio", "tokio-util", ] [[package]] name = "tokio-util" -version = "0.7.8" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d" +checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" dependencies = [ "bytes", "futures-core", "futures-io", "futures-sink", - "pin-project-lite 0.2.9", + "pin-project-lite 0.2.13", "tokio", "tracing", ] @@ -13006,19 +13856,61 @@ dependencies = [ "serde", ] +[[package]] +name = "toml" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.19.15", +] + +[[package]] +name = "toml" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.20.2", +] + [[package]] name = "toml_datetime" -version = "0.6.2" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a76a9312f5ba4c2dec6b9161fdf25d87ad8a09256ccea5a556fef03c706a10f" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap 2.1.0", + "serde", + "serde_spanned", + "toml_datetime", + "winnow", +] [[package]] name = "toml_edit" -version = "0.19.10" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2380d56e8670370eee6566b0bfd4265f65b3f432e8c6d85623f728d4fa31f739" +checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" dependencies = [ - "indexmap", + "indexmap 2.1.0", + "serde", + "serde_spanned", "toml_datetime", "winnow", ] @@ -13036,18 +13928,18 @@ dependencies = [ [[package]] name = "tower-http" -version = "0.3.5" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f873044bf02dd1e8239e9c1293ea39dad76dc594ec16185d0a1bf31d8dc8d858" +checksum = "61c5bb1d698276a2443e5ecfabc1008bf15a36c12e6a7176e7bf089ea9131140" dependencies = [ - "bitflags", + "bitflags 2.4.1", "bytes", "futures-core", "futures-util", "http", "http-body", "http-range-header", - "pin-project-lite 0.2.9", + "pin-project-lite 0.2.13", "tower-layer", "tower-service", ] @@ -13066,33 +13958,32 @@ checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" [[package]] name = "tracing" -version = "0.1.37" +version = "0.1.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ - "cfg-if", "log", - "pin-project-lite 0.2.9", + "pin-project-lite 0.2.13", "tracing-attributes", "tracing-core", ] [[package]] name = "tracing-attributes" -version = "0.1.24" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f57e3ca2a01450b1a921183a9c9cbfda207fd822cef4ccb00a65402cbba7a74" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.39", ] [[package]] name = "tracing-core" -version = "0.1.31" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" dependencies = [ "once_cell", "valuable", @@ -13110,58 +14001,36 @@ dependencies = [ [[package]] name = "tracing-gum" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" -dependencies = [ - "polkadot-node-jaeger 0.9.38 (git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38)", - "polkadot-primitives", - "tracing", - "tracing-gum-proc-macro 0.9.38 (git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38)", -] - -[[package]] -name = "tracing-gum" -version = "0.9.38" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.38#097ffd245c42aeff28cf80f8a3568e1bee2e7da7" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ - "polkadot-node-jaeger 0.9.38 (git+https://github.com/paritytech/polkadot?branch=release-v0.9.38)", + "coarsetime", + "polkadot-node-jaeger", "polkadot-primitives", "tracing", - "tracing-gum-proc-macro 0.9.38 (git+https://github.com/paritytech/polkadot?branch=release-v0.9.38)", -] - -[[package]] -name = "tracing-gum-proc-macro" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" -dependencies = [ - "expander 0.0.6", - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 1.0.109", + "tracing-gum-proc-macro", ] [[package]] name = "tracing-gum-proc-macro" -version = "0.9.38" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.38#097ffd245c42aeff28cf80f8a3568e1bee2e7da7" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ - "expander 0.0.6", - "proc-macro-crate", + "expander 2.0.0", + "proc-macro-crate 1.3.1", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.39", ] [[package]] name = "tracing-log" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" +checksum = "f751112709b4e791d8ce53e32c4ed2d353565a795ce84da2285393f41557bdf2" dependencies = [ - "lazy_static", "log", + "once_cell", "tracing-core", ] @@ -13200,12 +14069,12 @@ dependencies = [ [[package]] name = "trie-db" -version = "0.24.0" +version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "004e1e8f92535694b4cb1444dc5a8073ecf0815e3357f729638b9f8fc4062908" +checksum = "767abe6ffed88a1889671a102c2861ae742726f52e0a5a425b92c9fbfa7e9c85" dependencies = [ - "hash-db", - "hashbrown 0.12.3", + "hash-db 0.16.0", + "hashbrown 0.13.2", "log", "rustc-hex", "smallvec", @@ -13213,11 +14082,21 @@ dependencies = [ [[package]] name = "trie-root" -version = "0.17.0" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4ed310ef5ab98f5fa467900ed906cb9232dd5376597e00fd4cba2a449d06c0b" +dependencies = [ + "hash-db 0.16.0", +] + +[[package]] +name = "triehash" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a36c5ca3911ed3c9a5416ee6c679042064b93fc637ded67e25f92e68d783891" +checksum = "a1631b201eb031b563d2e85ca18ec8092508e262a3196ce9bd10a67ec87b9f5c" dependencies = [ - "hash-db", + "hash-db 0.15.2", + "rlp", ] [[package]] @@ -13238,7 +14117,7 @@ dependencies = [ "lazy_static", "rand 0.8.5", "smallvec", - "socket2 0.4.9", + "socket2 0.4.10", "thiserror", "tinyvec", "tokio", @@ -13268,39 +14147,43 @@ dependencies = [ [[package]] name = "try-lock" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "try-runtime-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech//substrate?branch=polkadot-v0.9.38#bcff60a227d455d95b4712b6cb356ce56b1ff672" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ + "async-trait", "clap", "frame-remote-externalities", - "frame-try-runtime", "hex", "log", "parity-scale-codec", "sc-cli", "sc-executor", - "sc-service", "serde", "serde_json", "sp-api", + "sp-consensus-aura", + "sp-consensus-babe", "sp-core", "sp-debug-derive", - "sp-externalities", + "sp-externalities 0.19.0 (git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3)", + "sp-inherents", "sp-io", "sp-keystore", "sp-rpc", "sp-runtime", "sp-state-machine", + "sp-timestamp", + "sp-transaction-storage-proof", "sp-version", "sp-weights", "substrate-rpc-client", - "zstd", + "zstd 0.12.4", ] [[package]] @@ -13309,25 +14192,6 @@ version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f4f195fd851901624eee5a58c4bb2b4f06399148fcd0ed336e6f1cb60a9881df" -[[package]] -name = "turn" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4712ee30d123ec7ae26d1e1b218395a16c87cdbaf4b3925d170d684af62ea5e8" -dependencies = [ - "async-trait", - "base64 0.13.1", - "futures", - "log", - "md-5", - "rand 0.8.5", - "ring", - "stun", - "thiserror", - "tokio", - "webrtc-util", -] - [[package]] name = "twox-hash" version = "1.6.3" @@ -13342,15 +14206,15 @@ dependencies = [ [[package]] name = "typenum" -version = "1.16.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "ucd-trie" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" +checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" [[package]] name = "uint" @@ -13364,23 +14228,17 @@ dependencies = [ "static_assertions", ] -[[package]] -name = "unarray" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" - [[package]] name = "unicode-bidi" -version = "0.3.13" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" +checksum = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416" [[package]] name = "unicode-ident" -version = "1.0.9" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15811caf2415fb889178633e7724bad2509101cde276048e013b9def5e51fa0" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "unicode-normalization" @@ -13393,9 +14251,9 @@ dependencies = [ [[package]] name = "unicode-width" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" +checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" [[package]] name = "unicode-xid" @@ -13403,16 +14261,6 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" -[[package]] -name = "universal-hash" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f214e8f697e925001e66ec2c6e37a4ef93f0f78c2eed7814394e10c62025b05" -dependencies = [ - "generic-array 0.14.7", - "subtle", -] - [[package]] name = "universal-hash" version = "0.5.1" @@ -13425,9 +14273,9 @@ dependencies = [ [[package]] name = "unsigned-varint" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d86a8dc7f45e4c1b0d30e43038c38f274e77af056aa5f74b93c2cf9eb3c1c836" +checksum = "6889a77d49f1f013504cec6bf97a2c730394adedaeb1deb5ea08949a50541105" dependencies = [ "asynchronous-codec", "bytes", @@ -13441,14 +14289,20 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + [[package]] name = "url" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb" +checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" dependencies = [ "form_urlencoded", - "idna 0.4.0", + "idna 0.5.0", "percent-encoding", ] @@ -13458,15 +14312,6 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" -[[package]] -name = "uuid" -version = "1.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "345444e32442451b267fc254ae85a209c64be56d2890e601a0c37ff0c3c5ecd2" -dependencies = [ - "getrandom 0.2.10", -] - [[package]] name = "valuable" version = "0.1.0" @@ -13491,35 +14336,17 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" -[[package]] -name = "wait-timeout" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" -dependencies = [ - "libc", -] - -[[package]] -name = "waitgroup" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1f50000a783467e6c0200f9d10642f4bc424e39efc1b770203e88b488f79292" -dependencies = [ - "atomic-waker", -] - [[package]] name = "waker-fn" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" +checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690" [[package]] name = "walkdir" -version = "2.3.3" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698" +checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" dependencies = [ "same-file", "winapi-util", @@ -13527,11 +14354,10 @@ dependencies = [ [[package]] name = "want" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" dependencies = [ - "log", "try-lock", ] @@ -13541,12 +14367,6 @@ version = "0.9.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" -[[package]] -name = "wasi" -version = "0.10.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" - [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -13555,9 +14375,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.86" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bba0e8cb82ba49ff4e229459ff22a191bbe9a1cb3a341610c9c33efc27ddf73" +checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -13565,24 +14385,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.86" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19b04bc93f9d6bdee709f6bd2118f57dd6679cf1176a1af464fca3ab0d66d8fb" +checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.39", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.36" +version = "0.4.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d1985d03709c53167ce907ff394f5316aa22cb4e12761295c5dc57dacb6297e" +checksum = "ac36a15a220124ac510204aec1c3e5db8a22ab06fd6706d881dc6149f8ed9a12" dependencies = [ "cfg-if", "js-sys", @@ -13592,9 +14412,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.86" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14d6b024f1a526bb0234f52840389927257beb670610081360e5a03c5df9c258" +checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -13602,22 +14422,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.86" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e128beba882dd1eb6200e1dc92ae6c5dbaa4311aa7bb211ca035779e5efc39f8" +checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" dependencies = [ "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.39", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.86" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed9d5b4305409d1fc9482fee2d7f9bcbf24b3972bf59817ef757e23982242a93" +checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f" [[package]] name = "wasm-instrument" @@ -13630,14 +14450,14 @@ dependencies = [ [[package]] name = "wasm-opt" -version = "0.111.0" +version = "0.114.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84a303793cbc01fb96551badfc7367db6007396bba6bac97936b3c8b6f7fdb41" +checksum = "effbef3bd1dde18acb401f73e740a6f3d4a1bc651e9773bddc512fe4d8d68f67" dependencies = [ "anyhow", "libc", - "strum", - "strum_macros", + "strum 0.24.1", + "strum_macros 0.24.3", "tempfile", "thiserror", "wasm-opt-cxx-sys", @@ -13646,9 +14466,9 @@ dependencies = [ [[package]] name = "wasm-opt-cxx-sys" -version = "0.111.0" +version = "0.114.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9c9deb56f8a9f2ec177b3bd642a8205621835944ed5da55f2388ef216aca5a4" +checksum = "c09e24eb283919ace2ed5733bda4842a59ce4c8de110ef5c6d98859513d17047" dependencies = [ "anyhow", "cxx", @@ -13658,15 +14478,14 @@ dependencies = [ [[package]] name = "wasm-opt-sys" -version = "0.111.0" +version = "0.114.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4432e28b542738a9776cedf92e8a99d8991c7b4667ee2c7ccddfb479dd2856a7" +checksum = "36f2f817bed2e8d65eb779fa37317e74de15585751f903c9118342d1970703a4" dependencies = [ "anyhow", "cc", "cxx", "cxx-build", - "regex", ] [[package]] @@ -13686,59 +14505,67 @@ dependencies = [ [[package]] name = "wasmi" -version = "0.13.2" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06c326c93fbf86419608361a2c925a31754cf109da1b8b55737070b4d6669422" +checksum = "acfc1e384a36ca532d070a315925887247f3c7e23567e23e0ac9b1c5d6b8bf76" dependencies = [ - "parity-wasm", - "wasmi-validation", + "smallvec", + "spin 0.9.8", + "wasmi_arena", "wasmi_core", + "wasmparser-nostd", ] [[package]] -name = "wasmi-validation" -version = "0.5.0" +name = "wasmi_arena" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ff416ad1ff0c42e5a926ed5d5fab74c0f098749aa0ad8b2a34b982ce0e867b" -dependencies = [ - "parity-wasm", -] +checksum = "401c1f35e413fac1846d4843745589d9ec678977ab35a384db8ae7830525d468" [[package]] name = "wasmi_core" -version = "0.2.1" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57d20cb3c59b788653d99541c646c561c9dd26506f25c0cebfe810659c54c6d7" +checksum = "dcf1a7db34bff95b85c261002720c00c3a6168256dcb93041d3fa2054d19856a" dependencies = [ "downcast-rs", - "libm 0.2.7", - "memory_units", - "num-rational", + "libm", "num-traits", + "paste", ] [[package]] name = "wasmparser" -version = "0.89.1" +version = "0.102.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab5d3e08b13876f96dd55608d03cd4883a0545884932d5adf11925876c96daef" +checksum = "48134de3d7598219ab9eaf6b91b15d8e50d31da76b8519fe4ecfcec2cf35104b" dependencies = [ - "indexmap", + "indexmap 1.9.3", + "url", +] + +[[package]] +name = "wasmparser-nostd" +version = "0.100.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9157cab83003221bfd385833ab587a039f5d6fa7304854042ba358a3b09e0724" +dependencies = [ + "indexmap-nostd", ] [[package]] name = "wasmtime" -version = "1.0.2" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ad5af6ba38311282f2a21670d96e78266e8c8e2f38cbcd52c254df6ccbc7731" +checksum = "f907fdead3153cb9bfb7a93bbd5b62629472dc06dee83605358c64c52ed3dda9" dependencies = [ "anyhow", "bincode", "cfg-if", - "indexmap", + "indexmap 1.9.3", "libc", "log", - "object 0.29.0", + "object 0.30.4", "once_cell", "paste", "psm", @@ -13751,43 +14578,43 @@ dependencies = [ "wasmtime-environ", "wasmtime-jit", "wasmtime-runtime", - "windows-sys 0.36.1", + "windows-sys 0.45.0", ] [[package]] name = "wasmtime-asm-macros" -version = "1.0.2" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45de63ddfc8b9223d1adc8f7b2ee5f35d1f6d112833934ad7ea66e4f4339e597" +checksum = "d3b9daa7c14cd4fa3edbf69de994408d5f4b7b0959ac13fa69d465f6597f810d" dependencies = [ "cfg-if", ] [[package]] name = "wasmtime-cache" -version = "1.0.2" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcd849399d17d2270141cfe47fa0d91ee52d5f8ea9b98cf7ddde0d53e5f79882" +checksum = "c86437fa68626fe896e5afc69234bb2b5894949083586535f200385adfd71213" dependencies = [ "anyhow", - "base64 0.13.1", + "base64 0.21.5", "bincode", "directories-next", "file-per-thread-logger", "log", - "rustix 0.35.13", + "rustix 0.36.17", "serde", - "sha2 0.9.9", - "toml", - "windows-sys 0.36.1", - "zstd", + "sha2 0.10.8", + "toml 0.5.11", + "windows-sys 0.45.0", + "zstd 0.11.2+zstd.1.5.2", ] [[package]] name = "wasmtime-cranelift" -version = "1.0.2" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bd91339b742ff20bfed4532a27b73c86b5bcbfedd6bea2dcdf2d64471e1b5c6" +checksum = "b1cefde0cce8cb700b1b21b6298a3837dba46521affd7b8c38a9ee2c869eee04" dependencies = [ "anyhow", "cranelift-codegen", @@ -13795,27 +14622,43 @@ dependencies = [ "cranelift-frontend", "cranelift-native", "cranelift-wasm", - "gimli 0.26.2", + "gimli 0.27.3", "log", - "object 0.29.0", + "object 0.30.4", "target-lexicon", "thiserror", "wasmparser", + "wasmtime-cranelift-shared", + "wasmtime-environ", +] + +[[package]] +name = "wasmtime-cranelift-shared" +version = "8.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd041e382ef5aea1b9fc78442394f1a4f6d676ce457e7076ca4cb3f397882f8b" +dependencies = [ + "anyhow", + "cranelift-codegen", + "cranelift-native", + "gimli 0.27.3", + "object 0.30.4", + "target-lexicon", "wasmtime-environ", ] [[package]] name = "wasmtime-environ" -version = "1.0.2" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebb881c61f4f627b5d45c54e629724974f8a8890d455bcbe634330cc27309644" +checksum = "a990198cee4197423045235bf89d3359e69bd2ea031005f4c2d901125955c949" dependencies = [ "anyhow", "cranelift-entity", - "gimli 0.26.2", - "indexmap", + "gimli 0.27.3", + "indexmap 1.9.3", "log", - "object 0.29.0", + "object 0.30.4", "serde", "target-lexicon", "thiserror", @@ -13825,330 +14668,127 @@ dependencies = [ [[package]] name = "wasmtime-jit" -version = "1.0.2" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1985c628011fe26adf5e23a5301bdc79b245e0e338f14bb58b39e4e25e4d8681" +checksum = "0de48df552cfca1c9b750002d3e07b45772dd033b0b206d5c0968496abf31244" dependencies = [ - "addr2line 0.17.0", + "addr2line 0.19.0", "anyhow", "bincode", "cfg-if", "cpp_demangle", - "gimli 0.26.2", + "gimli 0.27.3", "log", - "object 0.29.0", + "object 0.30.4", "rustc-demangle", - "rustix 0.35.13", "serde", "target-lexicon", - "thiserror", "wasmtime-environ", "wasmtime-jit-debug", + "wasmtime-jit-icache-coherence", "wasmtime-runtime", - "windows-sys 0.36.1", + "windows-sys 0.45.0", ] [[package]] name = "wasmtime-jit-debug" -version = "1.0.2" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f671b588486f5ccec8c5a3dba6b4c07eac2e66ab8c60e6f4e53717c77f709731" +checksum = "6e0554b84c15a27d76281d06838aed94e13a77d7bf604bbbaf548aa20eb93846" dependencies = [ - "object 0.29.0", + "object 0.30.4", "once_cell", - "rustix 0.35.13", + "rustix 0.36.17", ] [[package]] -name = "wasmtime-runtime" -version = "1.0.2" +name = "wasmtime-jit-icache-coherence" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee8f92ad4b61736339c29361da85769ebc200f184361959d1792832e592a1afd" +checksum = "aecae978b13f7f67efb23bd827373ace4578f2137ec110bbf6a4a7cde4121bbd" dependencies = [ - "anyhow", - "cc", "cfg-if", - "indexmap", "libc", - "log", - "mach", - "memfd", - "memoffset 0.6.5", - "paste", - "rand 0.8.5", - "rustix 0.35.13", - "thiserror", - "wasmtime-asm-macros", - "wasmtime-environ", - "wasmtime-jit-debug", - "windows-sys 0.36.1", -] - -[[package]] -name = "wasmtime-types" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d23d61cb4c46e837b431196dd06abb11731541021916d03476a178b54dc07aeb" -dependencies = [ - "cranelift-entity", - "serde", - "thiserror", - "wasmparser", -] - -[[package]] -name = "web-sys" -version = "0.3.63" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bdd9ef4e984da1187bf8110c5cf5b845fbc87a23602cdf912386a76fcd3a7c2" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "webpki" -version = "0.21.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea" -dependencies = [ - "ring", - "untrusted", -] - -[[package]] -name = "webpki" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd" -dependencies = [ - "ring", - "untrusted", -] - -[[package]] -name = "webpki-roots" -version = "0.22.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87" -dependencies = [ - "webpki 0.22.0", -] - -[[package]] -name = "webrtc" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d3bc9049bdb2cea52f5fd4f6f728184225bdb867ed0dc2410eab6df5bdd67bb" -dependencies = [ - "arc-swap", - "async-trait", - "bytes", - "hex", - "interceptor", - "lazy_static", - "log", - "rand 0.8.5", - "rcgen 0.9.3", - "regex", - "ring", - "rtcp", - "rtp", - "rustls 0.19.1", - "sdp", - "serde", - "serde_json", - "sha2 0.10.6", - "stun", - "thiserror", - "time 0.3.21", - "tokio", - "turn", - "url", - "waitgroup", - "webrtc-data", - "webrtc-dtls", - "webrtc-ice", - "webrtc-mdns", - "webrtc-media", - "webrtc-sctp", - "webrtc-srtp", - "webrtc-util", -] - -[[package]] -name = "webrtc-data" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ef36a4d12baa6e842582fe9ec16a57184ba35e1a09308307b67d43ec8883100" -dependencies = [ - "bytes", - "derive_builder", - "log", - "thiserror", - "tokio", - "webrtc-sctp", - "webrtc-util", -] - -[[package]] -name = "webrtc-dtls" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "942be5bd85f072c3128396f6e5a9bfb93ca8c1939ded735d177b7bcba9a13d05" -dependencies = [ - "aes 0.6.0", - "aes-gcm 0.10.2", - "async-trait", - "bincode", - "block-modes", - "byteorder", - "ccm", - "curve25519-dalek 3.2.0", - "der-parser 8.2.0", - "elliptic-curve", - "hkdf", - "hmac 0.12.1", - "log", - "oid-registry 0.6.1", - "p256", - "p384", - "rand 0.8.5", - "rand_core 0.6.4", - "rcgen 0.9.3", - "ring", - "rustls 0.19.1", - "sec1", - "serde", - "sha1", - "sha2 0.10.6", - "signature", - "subtle", - "thiserror", - "tokio", - "webpki 0.21.4", - "webrtc-util", - "x25519-dalek 2.0.0-pre.1", - "x509-parser 0.13.2", + "windows-sys 0.45.0", ] [[package]] -name = "webrtc-ice" -version = "0.9.1" +name = "wasmtime-runtime" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "465a03cc11e9a7d7b4f9f99870558fe37a102b65b93f8045392fef7c67b39e80" +checksum = "658cf6f325232b6760e202e5255d823da5e348fdea827eff0a2a22319000b441" dependencies = [ - "arc-swap", - "async-trait", - "crc", + "anyhow", + "cc", + "cfg-if", + "indexmap 1.9.3", + "libc", "log", - "rand 0.8.5", - "serde", - "serde_json", - "stun", - "thiserror", - "tokio", - "turn", - "url", - "uuid", - "waitgroup", - "webrtc-mdns", - "webrtc-util", + "mach", + "memfd", + "memoffset 0.8.0", + "paste", + "rand 0.8.5", + "rustix 0.36.17", + "wasmtime-asm-macros", + "wasmtime-environ", + "wasmtime-jit-debug", + "windows-sys 0.45.0", ] [[package]] -name = "webrtc-mdns" -version = "0.5.2" +name = "wasmtime-types" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f08dfd7a6e3987e255c4dbe710dde5d94d0f0574f8a21afa95d171376c143106" +checksum = "a4f6fffd2a1011887d57f07654dd112791e872e3ff4a2e626aee8059ee17f06f" dependencies = [ - "log", - "socket2 0.4.9", + "cranelift-entity", + "serde", "thiserror", - "tokio", - "webrtc-util", + "wasmparser", ] [[package]] -name = "webrtc-media" -version = "0.5.1" +name = "web-sys" +version = "0.3.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f72e1650a8ae006017d1a5280efb49e2610c19ccc3c0905b03b648aee9554991" +checksum = "50c24a44ec86bb68fbecd1b3efed7e85ea5621b39b35ef2766b66cd984f8010f" dependencies = [ - "byteorder", - "bytes", - "rand 0.8.5", - "rtp", - "thiserror", + "js-sys", + "wasm-bindgen", ] [[package]] -name = "webrtc-sctp" -version = "0.7.0" +name = "webpki" +version = "0.22.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d47adcd9427eb3ede33d5a7f3424038f63c965491beafcc20bc650a2f6679c0" +checksum = "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53" dependencies = [ - "arc-swap", - "async-trait", - "bytes", - "crc", - "log", - "rand 0.8.5", - "thiserror", - "tokio", - "webrtc-util", + "ring 0.17.7", + "untrusted 0.9.0", ] [[package]] -name = "webrtc-srtp" -version = "0.9.1" +name = "webpki-roots" +version = "0.22.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6183edc4c1c6c0175f8812eefdce84dfa0aea9c3ece71c2bf6ddd3c964de3da5" +checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87" dependencies = [ - "aead 0.4.3", - "aes 0.7.5", - "aes-gcm 0.9.4", - "async-trait", - "byteorder", - "bytes", - "ctr 0.8.0", - "hmac 0.11.0", - "log", - "rtcp", - "rtp", - "sha-1", - "subtle", - "thiserror", - "tokio", - "webrtc-util", + "webpki", ] [[package]] -name = "webrtc-util" -version = "0.7.0" +name = "webpki-roots" +version = "0.25.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93f1db1727772c05cf7a2cfece52c3aca8045ca1e176cd517d323489aa3c6d87" -dependencies = [ - "async-trait", - "bitflags", - "bytes", - "cc", - "ipnet", - "lazy_static", - "libc", - "log", - "nix 0.24.3", - "rand 0.8.5", - "thiserror", - "tokio", - "winapi", -] +checksum = "1778a42e8b3b90bff8d0f5032bf22250792889a5cdc752aa0020c84abe3aaf10" [[package]] name = "westend-runtime" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ + "binary-merkle-tree", "bitvec", "frame-benchmarking", "frame-election-provider-support", @@ -14158,17 +14798,19 @@ dependencies = [ "frame-system-benchmarking", "frame-system-rpc-runtime-api", "frame-try-runtime", - "hex-literal 0.3.4", + "hex-literal 0.4.1", "log", "pallet-authority-discovery", "pallet-authorship", "pallet-babe", "pallet-bags-list", "pallet-balances", + "pallet-beefy", + "pallet-beefy-mmr", "pallet-collective", - "pallet-democracy", + "pallet-democracy 4.0.0-dev", "pallet-election-provider-multi-phase", - "pallet-election-provider-support-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.38)", + "pallet-election-provider-support-benchmarking", "pallet-elections-phragmen", "pallet-fast-unstake", "pallet-grandpa", @@ -14176,6 +14818,8 @@ dependencies = [ "pallet-im-online", "pallet-indices", "pallet-membership", + "pallet-message-queue", + "pallet-mmr", "pallet-multisig", "pallet-nomination-pools", "pallet-nomination-pools-benchmarking", @@ -14189,8 +14833,9 @@ dependencies = [ "pallet-session", "pallet-session-benchmarking", "pallet-society", - "pallet-staking", + "pallet-staking 4.0.0-dev", "pallet-staking-reward-curve", + "pallet-staking-runtime-api", "pallet-state-trie-migration", "pallet-sudo", "pallet-timestamp", @@ -14202,7 +14847,7 @@ dependencies = [ "pallet-xcm", "pallet-xcm-benchmarks", "parity-scale-codec", - "polkadot-parachain", + "polkadot-parachain-primitives", "polkadot-primitives", "polkadot-runtime-common", "polkadot-runtime-parachains", @@ -14212,10 +14857,11 @@ dependencies = [ "serde_derive", "smallvec", "sp-api", + "sp-application-crypto", "sp-authority-discovery", - "sp-beefy", "sp-block-builder", "sp-consensus-babe", + "sp-consensus-beefy", "sp-core", "sp-inherents", "sp-io", @@ -14226,19 +14872,20 @@ dependencies = [ "sp-session", "sp-staking", "sp-std", + "sp-storage", "sp-transaction-pool", "sp-version", + "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", "substrate-wasm-builder", "westend-runtime-constants", - "xcm", - "xcm-builder", - "xcm-executor", ] [[package]] name = "westend-runtime-constants" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "frame-support", "polkadot-primitives", @@ -14251,13 +14898,24 @@ dependencies = [ [[package]] name = "which" -version = "4.4.0" +version = "4.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269" +checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" dependencies = [ "either", - "libc", + "home", "once_cell", + "rustix 0.38.27", +] + +[[package]] +name = "wide" +version = "0.7.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c68938b57b33da363195412cfc5fc37c9ed49aa9cfe2156fde64b8d2c9498242" +dependencies = [ + "bytemuck", + "safe_arch", ] [[package]] @@ -14284,9 +14942,9 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" dependencies = [ "winapi", ] @@ -14299,44 +14957,55 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows" -version = "0.34.0" +version = "0.51.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45296b64204227616fdbf2614cefa4c236b98ee64dfaaaa435207ed99fe7829f" +checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9" dependencies = [ - "windows_aarch64_msvc 0.34.0", - "windows_i686_gnu 0.34.0", - "windows_i686_msvc 0.34.0", - "windows_x86_64_gnu 0.34.0", - "windows_x86_64_msvc 0.34.0", + "windows-core", + "windows-targets 0.48.5", ] [[package]] -name = "windows" -version = "0.48.0" +name = "windows-core" +version = "0.51.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" +checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" dependencies = [ - "windows-targets", + "windows-targets 0.48.5", ] [[package]] name = "windows-sys" -version = "0.36.1" +version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" dependencies = [ - "windows_aarch64_msvc 0.36.1", - "windows_i686_gnu 0.36.1", - "windows_i686_msvc 0.36.1", - "windows_x86_64_gnu 0.36.1", - "windows_x86_64_msvc 0.36.1", + "windows-targets 0.42.2", ] [[package]] name = "windows-sys" -version = "0.42.0" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.0", +] + +[[package]] +name = "windows-targets" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" dependencies = [ "windows_aarch64_gnullvm 0.42.2", "windows_aarch64_msvc 0.42.2", @@ -14348,27 +15017,33 @@ dependencies = [ ] [[package]] -name = "windows-sys" -version = "0.48.0" +name = "windows-targets" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" dependencies = [ - "windows-targets", + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", ] [[package]] name = "windows-targets" -version = "0.48.0" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5" +checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" dependencies = [ - "windows_aarch64_gnullvm 0.48.0", - "windows_aarch64_msvc 0.48.0", - "windows_i686_gnu 0.48.0", - "windows_i686_msvc 0.48.0", - "windows_x86_64_gnu 0.48.0", - "windows_x86_64_gnullvm 0.48.0", - "windows_x86_64_msvc 0.48.0", + "windows_aarch64_gnullvm 0.52.0", + "windows_aarch64_msvc 0.52.0", + "windows_i686_gnu 0.52.0", + "windows_i686_msvc 0.52.0", + "windows_x86_64_gnu 0.52.0", + "windows_x86_64_gnullvm 0.52.0", + "windows_x86_64_msvc 0.52.0", ] [[package]] @@ -14379,21 +15054,15 @@ checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.34.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17cffbe740121affb56fad0fc0e421804adf0ae00891205213b5cecd30db881d" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] -name = "windows_aarch64_msvc" -version = "0.36.1" +name = "windows_aarch64_gnullvm" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" +checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" [[package]] name = "windows_aarch64_msvc" @@ -14403,21 +15072,15 @@ checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" [[package]] name = "windows_aarch64_msvc" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" - -[[package]] -name = "windows_i686_gnu" -version = "0.34.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2564fde759adb79129d9b4f54be42b32c89970c18ebf93124ca8870a498688ed" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] -name = "windows_i686_gnu" -version = "0.36.1" +name = "windows_aarch64_msvc" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" +checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" [[package]] name = "windows_i686_gnu" @@ -14427,21 +15090,15 @@ checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" [[package]] name = "windows_i686_gnu" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" - -[[package]] -name = "windows_i686_msvc" -version = "0.34.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cd9d32ba70453522332c14d38814bceeb747d80b3958676007acadd7e166956" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] -name = "windows_i686_msvc" -version = "0.36.1" +name = "windows_i686_gnu" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" +checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" [[package]] name = "windows_i686_msvc" @@ -14451,33 +15108,33 @@ checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" [[package]] name = "windows_i686_msvc" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] -name = "windows_x86_64_gnu" -version = "0.34.0" +name = "windows_i686_msvc" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfce6deae227ee8d356d19effc141a509cc503dfd1f850622ec4b0f84428e1f4" +checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" [[package]] name = "windows_x86_64_gnu" -version = "0.36.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" [[package]] name = "windows_x86_64_gnu" -version = "0.42.2" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.48.0" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" +checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" [[package]] name = "windows_x86_64_gnullvm" @@ -14487,39 +15144,39 @@ checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" [[package]] name = "windows_x86_64_gnullvm" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] -name = "windows_x86_64_msvc" -version = "0.34.0" +name = "windows_x86_64_gnullvm" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d19538ccc21819d01deaf88d6a17eae6596a12e9aafdbb97916fb49896d89de9" +checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" [[package]] name = "windows_x86_64_msvc" -version = "0.36.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" [[package]] name = "windows_x86_64_msvc" -version = "0.42.2" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.48.0" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" +checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" [[package]] name = "winnow" -version = "0.4.6" +version = "0.5.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61de7bac303dc551fe038e2b3cef0f571087a47571ea6e79a87692ac99b99699" +checksum = "b67b5f0a4e7a27a64c651977932b9dc5667ca7fc31ac44b03ed37a0cf42fdfff" dependencies = [ "memchr", ] @@ -14556,170 +15213,75 @@ dependencies = [ [[package]] name = "x25519-dalek" -version = "2.0.0-pre.1" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5da623d8af10a62342bcbbb230e33e58a63255a58012f8653c578e54bab48df" +checksum = "fb66477291e7e8d2b0ff1bcb900bf29489a9692816d79874bea351e7a8b6de96" dependencies = [ - "curve25519-dalek 3.2.0", + "curve25519-dalek 4.1.1", "rand_core 0.6.4", + "serde", "zeroize", ] -[[package]] -name = "x509-parser" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb9bace5b5589ffead1afb76e43e34cff39cd0f3ce7e170ae0c29e53b88eb1c" -dependencies = [ - "asn1-rs 0.3.1", - "base64 0.13.1", - "data-encoding", - "der-parser 7.0.0", - "lazy_static", - "nom", - "oid-registry 0.4.0", - "ring", - "rusticata-macros", - "thiserror", - "time 0.3.21", -] - [[package]] name = "x509-parser" version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e0ecbeb7b67ce215e40e3cc7f2ff902f94a223acf44995934763467e7b1febc8" dependencies = [ - "asn1-rs 0.5.2", + "asn1-rs", "base64 0.13.1", "data-encoding", - "der-parser 8.2.0", + "der-parser", "lazy_static", "nom", - "oid-registry 0.6.1", + "oid-registry", "rusticata-macros", "thiserror", - "time 0.3.21", -] - -[[package]] -name = "xcm" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" -dependencies = [ - "derivative", - "impl-trait-for-tuples", - "log", - "parity-scale-codec", - "scale-info", - "serde", - "sp-core", - "sp-weights", - "xcm-procedural", -] - -[[package]] -name = "xcm-builder" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" -dependencies = [ - "frame-support", - "frame-system", - "impl-trait-for-tuples", - "log", - "pallet-transaction-payment", - "parity-scale-codec", - "polkadot-parachain", - "scale-info", - "sp-arithmetic", - "sp-io", - "sp-runtime", - "sp-std", - "xcm", - "xcm-executor", -] - -[[package]] -name = "xcm-emulator" -version = "0.1.0" -source = "git+https://github.com/shaunxw/xcm-simulator?rev=6847a58888e483f0ed2e0b72f90e00767ea0ecac#6847a58888e483f0ed2e0b72f90e00767ea0ecac" -dependencies = [ - "cumulus-pallet-dmp-queue", - "cumulus-pallet-parachain-system", - "cumulus-pallet-xcmp-queue", - "cumulus-primitives-core", - "cumulus-primitives-parachain-inherent", - "cumulus-test-relay-sproof-builder", - "frame-support", - "frame-system", - "parachain-info", - "parity-scale-codec", - "paste", - "polkadot-primitives", - "polkadot-runtime-parachains", - "quote", - "sp-arithmetic", - "sp-io", - "sp-std", - "xcm", - "xcm-executor", + "time", ] [[package]] name = "xcm-emulator" version = "0.1.0" -source = "git+https://github.com/shaunxw/xcm-simulator?rev=754f3b90ecc65af735a6c9a2e1792c5253926ff6#754f3b90ecc65af735a6c9a2e1792c5253926ff6" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ - "cumulus-pallet-dmp-queue", "cumulus-pallet-parachain-system", - "cumulus-pallet-xcmp-queue", "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", "cumulus-test-relay-sproof-builder", "frame-support", "frame-system", - "parachain-info", + "impl-trait-for-tuples", + "lazy_static", + "log", + "pallet-balances", + "pallet-message-queue", + "parachains-common", "parity-scale-codec", "paste", + "polkadot-parachain-primitives", "polkadot-primitives", "polkadot-runtime-parachains", - "quote", - "sp-arithmetic", - "sp-io", - "sp-std", - "xcm", - "xcm-executor", -] - -[[package]] -name = "xcm-executor" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" -dependencies = [ - "environmental", - "frame-benchmarking", - "frame-support", - "impl-trait-for-tuples", - "log", - "parity-scale-codec", "sp-arithmetic", "sp-core", "sp-io", "sp-runtime", "sp-std", - "sp-weights", - "xcm", + "sp-tracing 10.0.0 (git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3)", + "staging-xcm", + "staging-xcm-executor", ] [[package]] name = "xcm-procedural" -version = "0.9.38" -source = "git+https://github.com/galacticcouncil/polkadot?branch=fix-xcm-executor-atomicity-9-38#a225599ab533bb5f7913429690e5c12ee3cff5ba" +version = "1.0.0" +source = "git+https://github.com/galacticcouncil/polkadot-sdk?rev=062d92eae0f3bb9908faf2d4e241eef17368b9d3#062d92eae0f3bb9908faf2d4e241eef17368b9d3" dependencies = [ "Inflector", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.39", ] [[package]] @@ -14748,14 +15310,34 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd" dependencies = [ - "time 0.3.21", + "time", +] + +[[package]] +name = "zerocopy" +version = "0.7.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d075cf85bbb114e933343e087b92f2146bac0d55b534cbb8188becf0039948e" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86cd5ca076997b97ef09d3ad65efe811fa68c9e874cb636ccb211223a813b0c2" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", ] [[package]] name = "zeroize" -version = "1.6.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9" +checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" dependencies = [ "zeroize_derive", ] @@ -14768,7 +15350,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.18", + "syn 2.0.39", ] [[package]] @@ -14777,7 +15359,16 @@ version = "0.11.2+zstd.1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" dependencies = [ - "zstd-safe", + "zstd-safe 5.0.2+zstd.1.5.2", +] + +[[package]] +name = "zstd" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a27595e173641171fc74a1232b7b1c7a7cb6e18222c11e9dfb9888fa424c53c" +dependencies = [ + "zstd-safe 6.0.6", ] [[package]] @@ -14790,13 +15381,22 @@ dependencies = [ "zstd-sys", ] +[[package]] +name = "zstd-safe" +version = "6.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee98ffd0b48ee95e6c5168188e44a54550b1564d9d530ee21d5f0eaed1069581" +dependencies = [ + "libc", + "zstd-sys", +] + [[package]] name = "zstd-sys" -version = "2.0.8+zstd.1.5.5" +version = "2.0.9+zstd.1.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5556e6ee25d32df2586c098bbfa278803692a20d0ab9565e049480d52707ec8c" +checksum = "9e16efa8a874a0481a574084d34cc26fdb3b99627480f785888deb6386506656" dependencies = [ "cc", - "libc", "pkg-config", ] diff --git a/Cargo.toml b/Cargo.toml index ee50cb34a62..83922f852b8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -6,206 +6,411 @@ members = [ 'node', 'runtime/basilisk', 'pallets/marketplace', - 'pallets/xyk', 'integration-tests', - 'integration-tests/parachain-runtime-mock' ] [workspace.dependencies] -hydra-dx-math = { git = "https://github.com/galacticcouncil/HydraDX-node", rev = "b59c0379b312e9b3df365f407aa48b43bc4ca833", default-features = false } -hydradx-traits = { git = "https://github.com/galacticcouncil/HydraDX-node", rev = "b59c0379b312e9b3df365f407aa48b43bc4ca833", default-features = false } -hydradx-adapters = { git = "https://github.com/galacticcouncil/HydraDX-node", rev = "b59c0379b312e9b3df365f407aa48b43bc4ca833", default-features = false } -pallet-relaychain-info = { git = "https://github.com/galacticcouncil/HydraDX-node", rev = "b59c0379b312e9b3df365f407aa48b43bc4ca833", default-features = false } -pallet-transaction-multi-payment = { git = "https://github.com/galacticcouncil/HydraDX-node", rev = "b59c0379b312e9b3df365f407aa48b43bc4ca833", default-features = false } -pallet-asset-registry = { git = "https://github.com/galacticcouncil/HydraDX-node", rev = "b59c0379b312e9b3df365f407aa48b43bc4ca833", default-features = false } -pallet-nft = { git = "https://github.com/galacticcouncil/HydraDX-node", rev = "b59c0379b312e9b3df365f407aa48b43bc4ca833", default-features = false } -pallet-currencies = { git = "https://github.com/galacticcouncil/HydraDX-node", rev = "b59c0379b312e9b3df365f407aa48b43bc4ca833", default-features = false } -pallet-transaction-pause = { git = "https://github.com/galacticcouncil/HydraDX-node", rev = "b59c0379b312e9b3df365f407aa48b43bc4ca833", default-features = false } -pallet-route-executor = { git = "https://github.com/galacticcouncil/HydraDX-node", rev = "b59c0379b312e9b3df365f407aa48b43bc4ca833", default-features = false } -pallet-liquidity-mining = { git = "https://github.com/galacticcouncil/HydraDX-node", rev = "b59c0379b312e9b3df365f407aa48b43bc4ca833", default-features = false } -warehouse-liquidity-mining = { package="pallet-liquidity-mining", git = "https://github.com/galacticcouncil/HydraDX-node", rev = "b59c0379b312e9b3df365f407aa48b43bc4ca833", default-features = false } -pallet-ema-oracle = { git = "https://github.com/galacticcouncil/HydraDX-node", rev = "b59c0379b312e9b3df365f407aa48b43bc4ca833", default-features = false } -pallet-duster = { git = "https://github.com/galacticcouncil/HydraDX-node", rev = "b59c0379b312e9b3df365f407aa48b43bc4ca833", default-features = false } -pallet-collator-rewards = { git = "https://github.com/galacticcouncil/HydraDX-node", rev = "b59c0379b312e9b3df365f407aa48b43bc4ca833", default-features = false } -test-utils = { git = "https://github.com/galacticcouncil/HydraDX-node", rev = "b59c0379b312e9b3df365f407aa48b43bc4ca833", default-features = false } -pallet-xcm-rate-limiter = { git = "https://github.com/galacticcouncil/HydraDX-node", rev = "b59c0379b312e9b3df365f407aa48b43bc4ca833", default-features = false } +primitive-types = { version = "0.12.0", default-features = false } +log = "0.4.20" -[patch."https://github.com/paritytech/substrate"] -frame-benchmarking = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -frame-benchmarking-cli = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -frame-election-provider-support = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -frame-executive = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -frame-support = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -frame-support-procedural = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -frame-support-procedural-tools = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -frame-support-procedural-tools-derive = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -frame-system = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -frame-system-benchmarking = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -frame-try-runtime = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -pallet-aura = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -pallet-authority-discovery = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -pallet-authorship = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -pallet-babe = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -pallet-balances = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -pallet-bounties = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -pallet-collective = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -pallet-democracy = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -pallet-election-provider-multi-phase = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -pallet-elections-phragmen = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -pallet-grandpa = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -pallet-identity = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -pallet-im-online = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -pallet-indices = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -pallet-membership = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -pallet-multisig = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -pallet-offences = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -pallet-offences-benchmarking = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -pallet-proxy = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -pallet-recovery = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -pallet-scheduler = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -pallet-session = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -pallet-session-benchmarking = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -pallet-society = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -pallet-staking = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -pallet-staking-reward-curve = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -pallet-staking-reward-fn = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -pallet-sudo = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -pallet-timestamp = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -pallet-tips = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -pallet-transaction-payment = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -pallet-transaction-payment-rpc = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -pallet-treasury = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -pallet-uniques = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -pallet-utility = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -pallet-vesting = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sc-authority-discovery = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sc-basic-authorship = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sc-block-builder = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sc-chain-spec = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sc-cli = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sc-client-api = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sc-client-db = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sc-consensus = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sc-consensus-aura = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sc-consensus-babe = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sc-consensus-babe-rpc = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sc-consensus-epochs = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sc-consensus-slots = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sc-executor = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sc-executor-common = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sc-executor-wasmtime = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sc-finality-grandpa = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sc-finality-grandpa-rpc = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sc-informant = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sc-keystore = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sc-network = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sc-network-common = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sc-network-gossip = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sc-offchain = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sc-rpc = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sc-rpc-api = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sc-rpc-server = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sc-service = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sc-sync-state-rpc = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sc-telemetry = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sc-tracing = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sc-transaction-pool = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sc-transaction-pool-api = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sc-utils = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sc-sysinfo = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sp-api = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sp-application-crypto = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sp-arithmetic = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sp-authority-discovery = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38"} -sp-block-builder = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sp-blockchain = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sp-consensus = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sp-consensus-aura = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sp-consensus-babe = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sp-consensus-slots = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sp-consensus-vrf = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sp-core = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sp-debug-derive = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sp-externalities = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sp-finality-grandpa = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sp-inherents = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sp-io = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sp-keyring = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sp-keystore = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sp-maybe-compressed-blob = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sp-npos-elections = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sp-offchain = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sp-rpc = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sp-runtime = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sp-runtime-interface = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sp-runtime-interface-proc-macro = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sp-session = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sp-staking = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sp-state-machine = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sp-std = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sp-storage = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sp-timestamp = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sp-tracing = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sp-transaction-pool = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sp-trie = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sp-version = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sp-wasm-interface = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sp-weights = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -substrate-build-script-utils = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -substrate-frame-rpc-system = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -substrate-prometheus-endpoint = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -substrate-wasm-builder = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -try-runtime-cli = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -pallet-mmr = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } -sp-mmr-primitives = { git = "https://github.com/paritytech//substrate", branch = "polkadot-v0.9.38" } +hydra-dx-math = { git = "https://github.com/galacticcouncil/HydraDX-node", rev = "7e997371d7f2110f7719d2f279a153feb973b994", default-features = false } +hydradx-traits = { git = "https://github.com/galacticcouncil/HydraDX-node", rev = "7e997371d7f2110f7719d2f279a153feb973b994", default-features = false } +hydradx-adapters = { git = "https://github.com/galacticcouncil/HydraDX-node", rev = "7e997371d7f2110f7719d2f279a153feb973b994", default-features = false } +pallet-relaychain-info = { git = "https://github.com/galacticcouncil/HydraDX-node", rev = "7e997371d7f2110f7719d2f279a153feb973b994", default-features = false } +pallet-transaction-multi-payment = { git = "https://github.com/galacticcouncil/HydraDX-node", rev = "7e997371d7f2110f7719d2f279a153feb973b994", default-features = false } +pallet-asset-registry = { git = "https://github.com/galacticcouncil/HydraDX-node", rev = "7e997371d7f2110f7719d2f279a153feb973b994", default-features = false } +pallet-nft = { git = "https://github.com/galacticcouncil/HydraDX-node", rev = "7e997371d7f2110f7719d2f279a153feb973b994", default-features = false } +pallet-currencies = { git = "https://github.com/galacticcouncil/HydraDX-node", rev = "7e997371d7f2110f7719d2f279a153feb973b994", default-features = false } +pallet-transaction-pause = { git = "https://github.com/galacticcouncil/HydraDX-node", rev = "7e997371d7f2110f7719d2f279a153feb973b994", default-features = false } +pallet-route-executor = { git = "https://github.com/galacticcouncil/HydraDX-node", rev = "7e997371d7f2110f7719d2f279a153feb973b994", default-features = false } +pallet-liquidity-mining = { git = "https://github.com/galacticcouncil/HydraDX-node", rev = "7e997371d7f2110f7719d2f279a153feb973b994", default-features = false } +warehouse-liquidity-mining = { package="pallet-liquidity-mining", git = "https://github.com/galacticcouncil/HydraDX-node", rev = "7e997371d7f2110f7719d2f279a153feb973b994", default-features = false } +pallet-ema-oracle = { git = "https://github.com/galacticcouncil/HydraDX-node", rev = "7e997371d7f2110f7719d2f279a153feb973b994", default-features = false } +pallet-duster = { git = "https://github.com/galacticcouncil/HydraDX-node", rev = "7e997371d7f2110f7719d2f279a153feb973b994", default-features = false } +pallet-collator-rewards = { git = "https://github.com/galacticcouncil/HydraDX-node", rev = "7e997371d7f2110f7719d2f279a153feb973b994", default-features = false } +test-utils = { git = "https://github.com/galacticcouncil/HydraDX-node", rev = "7e997371d7f2110f7719d2f279a153feb973b994", default-features = false } +pallet-xcm-rate-limiter = { git = "https://github.com/galacticcouncil/HydraDX-node", rev = "7e997371d7f2110f7719d2f279a153feb973b994", default-features = false } +pallet-xyk = { git = "https://github.com/galacticcouncil/HydraDX-node", rev = "7e997371d7f2110f7719d2f279a153feb973b994", default-features = false } +pallet-lbp = { git = "https://github.com/galacticcouncil/HydraDX-node", rev = "7e997371d7f2110f7719d2f279a153feb973b994", default-features = false } +hydra-dx-build-script-utils = { git = "https://github.com/galacticcouncil/HydraDX-node", rev = "7e997371d7f2110f7719d2f279a153feb973b994" } -[patch."https://github.com/paritytech/polkadot"] -kusama-runtime = { git = "https://github.com/galacticcouncil/polkadot", branch = "fix-xcm-executor-atomicity-9-38" } -pallet-xcm = { git = "https://github.com/galacticcouncil/polkadot", branch = "fix-xcm-executor-atomicity-9-38" } -polkadot-cli = { git = "https://github.com/galacticcouncil/polkadot", branch = "fix-xcm-executor-atomicity-9-38" } -polkadot-client = { git = "https://github.com/galacticcouncil/polkadot", branch = "fix-xcm-executor-atomicity-9-38" } -polkadot-core-primitives = { git = "https://github.com/galacticcouncil/polkadot", branch = "fix-xcm-executor-atomicity-9-38" } -polkadot-node-core-pvf = { git = "https://github.com/galacticcouncil/polkadot", branch = "fix-xcm-executor-atomicity-9-38" } -polkadot-node-network-protocol = { git = "https://github.com/galacticcouncil/polkadot", branch = "fix-xcm-executor-atomicity-9-38" } -polkadot-node-primitives = { git = "https://github.com/galacticcouncil/polkadot", branch = "fix-xcm-executor-atomicity-9-38" } -polkadot-node-subsystem = { git = "https://github.com/galacticcouncil/polkadot", branch = "fix-xcm-executor-atomicity-9-38" } -polkadot-node-subsystem-util = { git = "https://github.com/galacticcouncil/polkadot", branch = "fix-xcm-executor-atomicity-9-38" } -polkadot-overseer = { git = "https://github.com/galacticcouncil/polkadot", branch = "fix-xcm-executor-atomicity-9-38" } -polkadot-parachain = { git = "https://github.com/galacticcouncil/polkadot", branch = "fix-xcm-executor-atomicity-9-38" } -polkadot-primitives = { git = "https://github.com/galacticcouncil/polkadot", branch = "fix-xcm-executor-atomicity-9-38" } -polkadot-runtime = { git = "https://github.com/galacticcouncil/polkadot", branch = "fix-xcm-executor-atomicity-9-38" } -polkadot-runtime-common = { git = "https://github.com/galacticcouncil/polkadot", branch = "fix-xcm-executor-atomicity-9-38" } -polkadot-runtime-parachains = { git = "https://github.com/galacticcouncil/polkadot", branch = "fix-xcm-executor-atomicity-9-38" } -polkadot-service = { git = "https://github.com/galacticcouncil/polkadot", branch = "fix-xcm-executor-atomicity-9-38" } -polkadot-statement-table = { git = "https://github.com/galacticcouncil/polkadot", branch = "fix-xcm-executor-atomicity-9-38" } -rococo-runtime = { git = "https://github.com/galacticcouncil/polkadot", branch = "fix-xcm-executor-atomicity-9-38" } -westend-runtime = { git = "https://github.com/galacticcouncil/polkadot", branch = "fix-xcm-executor-atomicity-9-38" } -xcm = { git = "https://github.com/galacticcouncil/polkadot", branch = "fix-xcm-executor-atomicity-9-38" } -xcm-builder = { git = "https://github.com/galacticcouncil/polkadot", branch = "fix-xcm-executor-atomicity-9-38" } -xcm-executor = { git = "https://github.com/galacticcouncil/polkadot", branch = "fix-xcm-executor-atomicity-9-38" } +frame-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +frame-benchmarking-cli = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +frame-election-provider-support = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +frame-executive = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +frame-support = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +frame-support-procedural = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +frame-support-procedural-tools = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +frame-support-procedural-tools-derive = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +frame-system = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +frame-system-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +frame-try-runtime = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +pallet-aura = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +pallet-authority-discovery = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +pallet-authorship = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +pallet-babe = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +pallet-balances = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +pallet-bounties = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +pallet-collective = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +pallet-democracy = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +pallet-election-provider-multi-phase = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +pallet-elections-phragmen = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +pallet-identity = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +pallet-im-online = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +pallet-indices = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +pallet-membership = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +pallet-multisig = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +pallet-offences = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +pallet-offences-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +pallet-proxy = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +pallet-recovery = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +pallet-scheduler = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +pallet-session = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +pallet-session-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +pallet-society = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +pallet-staking = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +pallet-staking-reward-curve = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +pallet-staking-reward-fn = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +pallet-sudo = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +pallet-timestamp = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +pallet-tips = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +pallet-transaction-payment = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +pallet-treasury = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +pallet-uniques = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +pallet-utility = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +pallet-vesting = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +pallet-preimage = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sc-authority-discovery = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sc-basic-authorship = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sc-block-builder = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sc-chain-spec = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sc-cli = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sc-client-api = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sc-client-db = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sc-consensus = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sc-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sc-consensus-babe = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sc-consensus-babe-rpc = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sc-consensus-epochs = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sc-consensus-slots = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sc-consensus-grandpa = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sc-executor = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sc-executor-common = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sc-executor-wasmtime = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sc-informant = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sc-keystore = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sc-network = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sc-network-common = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sc-network-sync = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sc-network-gossip = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sc-offchain = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sc-rpc = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sc-rpc-api = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sc-rpc-server = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sc-service = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sc-sync-state-rpc = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sc-telemetry = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sc-tracing = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sc-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sc-transaction-pool-api = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sc-utils = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sc-sysinfo = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sp-api = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sp-application-crypto = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sp-arithmetic = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sp-authority-discovery = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false} +sp-block-builder = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sp-blockchain = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sp-consensus = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sp-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sp-consensus-babe = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sp-consensus-slots = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sp-consensus-beefy = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sp-core = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sp-debug-derive = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sp-externalities = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sp-inherents = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sp-io = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sp-keyring = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sp-keystore = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sp-maybe-compressed-blob = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sp-npos-elections = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sp-offchain = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sp-rpc = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sp-runtime = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sp-runtime-interface = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sp-runtime-interface-proc-macro = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sp-session = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sp-staking = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sp-state-machine = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sp-std = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sp-storage = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sp-timestamp = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sp-tracing = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sp-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sp-trie = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sp-version = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sp-wasm-interface = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sp-weights = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +substrate-build-script-utils = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +substrate-frame-rpc-system = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +substrate-prometheus-endpoint = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +substrate-wasm-builder = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +pallet-mmr = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +sp-mmr-primitives = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } -[patch."https://github.com/paritytech/cumulus"] -pallet-collator-selection = { git = "https://github.com/galacticcouncil/cumulus.git", branch = "feat/xcmp-defer-xcm-v9-38" } -cumulus-client-cli = { git = "https://github.com/galacticcouncil/cumulus.git", branch = "feat/xcmp-defer-xcm-v9-38" } -cumulus-client-consensus-aura = { git = "https://github.com/galacticcouncil/cumulus.git", branch = "feat/xcmp-defer-xcm-v9-38" } -cumulus-client-consensus-common = { git = "https://github.com/galacticcouncil/cumulus.git", branch = "feat/xcmp-defer-xcm-v9-38" } -cumulus-client-consensus-relay-chain = { git = "https://github.com/galacticcouncil/cumulus.git", branch = "feat/xcmp-defer-xcm-v9-38" } -cumulus-client-network = { git = "https://github.com/galacticcouncil/cumulus.git", branch = "feat/xcmp-defer-xcm-v9-38" } -cumulus-client-service = { git = "https://github.com/galacticcouncil/cumulus.git", branch = "feat/xcmp-defer-xcm-v9-38" } -cumulus-client-collator = { git = "https://github.com/galacticcouncil/cumulus.git", branch = "feat/xcmp-defer-xcm-v9-38" } -cumulus-pallet-aura-ext = { git = "https://github.com/galacticcouncil/cumulus.git", branch = "feat/xcmp-defer-xcm-v9-38" } -cumulus-pallet-dmp-queue = { git = "https://github.com/galacticcouncil/cumulus.git", branch = "feat/xcmp-defer-xcm-v9-38" } -cumulus-pallet-parachain-system = { git = "https://github.com/galacticcouncil/cumulus.git", branch = "feat/xcmp-defer-xcm-v9-38" } -cumulus-pallet-xcm = { git = "https://github.com/galacticcouncil/cumulus.git", branch = "feat/xcmp-defer-xcm-v9-38" } -cumulus-pallet-xcmp-queue = { git = "https://github.com/galacticcouncil/cumulus.git", branch = "feat/xcmp-defer-xcm-v9-38" } -cumulus-primitives-core = { git = "https://github.com/galacticcouncil/cumulus.git", branch = "feat/xcmp-defer-xcm-v9-38" } -cumulus-primitives-parachain-inherent = { git = "https://github.com/galacticcouncil/cumulus.git", branch = "feat/xcmp-defer-xcm-v9-38" } -cumulus-primitives-timestamp = { git = "https://github.com/galacticcouncil/cumulus.git", branch = "feat/xcmp-defer-xcm-v9-38" } -cumulus-primitives-utility = { git = "https://github.com/galacticcouncil/cumulus.git", branch = "feat/xcmp-defer-xcm-v9-38" } -cumulus-test-relay-sproof-builder = { git = "https://github.com/galacticcouncil/cumulus.git", branch = "feat/xcmp-defer-xcm-v9-38" } -parachain-info = { git = "https://github.com/galacticcouncil/cumulus.git", branch = "feat/xcmp-defer-xcm-v9-38" } -cumulus-relay-chain-interface = { git = "https://github.com/galacticcouncil/cumulus.git", branch = "feat/xcmp-defer-xcm-v9-38" } -cumulus-relay-chain-minimal-node = { git = "https://github.com/galacticcouncil/cumulus.git", branch = "feat/xcmp-defer-xcm-v9-38" } -cumulus-relay-chain-inprocess-interface = { git = "https://github.com/galacticcouncil/cumulus.git", branch = "feat/xcmp-defer-xcm-v9-38" } +kusama-runtime = { package = "staging-kusama-runtime", git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +pallet-xcm = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +polkadot-cli = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +polkadot-core-primitives = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +polkadot-node-core-pvf = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +polkadot-node-network-protocol = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +polkadot-node-primitives = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +polkadot-node-subsystem = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +polkadot-node-subsystem-util = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +polkadot-overseer = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +polkadot-parachain = { package = "polkadot-parachain-primitives", git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false, features = ["wasm-api"] } +polkadot-primitives = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +polkadot-runtime = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +polkadot-runtime-parachains = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +polkadot-service = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +polkadot-statement-table = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +rococo-runtime = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +westend-runtime = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +xcm = { package = "staging-xcm", git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +polkadot-xcm = { package = "staging-xcm", git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +xcm-builder = { package = "staging-xcm-builder", git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +xcm-executor = { package = "staging-xcm-executor", git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +xcm-emulator = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } + +pallet-collator-selection = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +cumulus-client-cli = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +cumulus-client-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +cumulus-client-consensus-common = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +cumulus-client-consensus-proposer = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +cumulus-client-network = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +cumulus-client-service = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +cumulus-client-collator = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +cumulus-pallet-xcm = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +cumulus-primitives-core = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +cumulus-primitives-timestamp = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +cumulus-primitives-utility = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +cumulus-test-relay-sproof-builder = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +parachain-info = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +cumulus-relay-chain-interface = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +cumulus-relay-chain-minimal-node = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } +cumulus-relay-chain-inprocess-interface = { git = "https://github.com/paritytech/polkadot-sdk", rev = "c8d2251cafadc108ba2f1f8a3208dc547ff38901", default-features = false } + +# ORML dependencies +orml-benchmarking = { git = "https://github.com/open-web3-stack/open-runtime-module-library", rev = "b3694e631df7f1ca16b1973122937753fcdee9d4", default-features = false } +orml-tokens = { git = "https://github.com/open-web3-stack/open-runtime-module-library", rev = "b3694e631df7f1ca16b1973122937753fcdee9d4", default-features = false } +orml-traits = { git = "https://github.com/open-web3-stack/open-runtime-module-library", rev = "b3694e631df7f1ca16b1973122937753fcdee9d4", default-features = false } +orml-utilities = { git = "https://github.com/open-web3-stack/open-runtime-module-library", rev = "b3694e631df7f1ca16b1973122937753fcdee9d4", default-features = false } +orml-vesting = { git = "https://github.com/open-web3-stack/open-runtime-module-library", rev = "b3694e631df7f1ca16b1973122937753fcdee9d4", default-features = false } + +# orml XCM support +orml-unknown-tokens = { git = "https://github.com/open-web3-stack/open-runtime-module-library", rev = "b3694e631df7f1ca16b1973122937753fcdee9d4", default-features = false } +orml-xcm = { git = "https://github.com/open-web3-stack/open-runtime-module-library", rev = "b3694e631df7f1ca16b1973122937753fcdee9d4", default-features = false } +orml-xcm-support = { git = "https://github.com/open-web3-stack/open-runtime-module-library", rev = "b3694e631df7f1ca16b1973122937753fcdee9d4", default-features = false } +orml-xtokens = { git = "https://github.com/open-web3-stack/open-runtime-module-library", rev = "b3694e631df7f1ca16b1973122937753fcdee9d4", default-features = false } + +# InvArch Tinkernet Multisig dependencies +orml-xcm-builder-kusama = { git = "https://github.com/open-web3-stack/orml-xcm-builder", rev = "32f0b3f1cbe77d4d330e07c7d4fcc3ebd669db77", default-features = false } + + +[patch."https://github.com/paritytech/polkadot-sdk"] +frame-benchmarking = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +frame-benchmarking-cli = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +frame-election-provider-support = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +frame-executive = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +frame-support = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +frame-support-procedural = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +frame-support-procedural-tools = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +frame-support-procedural-tools-derive = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +frame-system = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +frame-system-benchmarking = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +frame-system-rpc-runtime-api = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +frame-try-runtime = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +pallet-aura = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +pallet-authority-discovery = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +pallet-authorship = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +pallet-babe = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +pallet-balances = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +pallet-bounties = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +pallet-collective = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +pallet-democracy = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +pallet-election-provider-multi-phase = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +pallet-elections-phragmen = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +pallet-identity = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +pallet-im-online = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +pallet-indices = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +pallet-membership = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +pallet-multisig = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +pallet-offences = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +pallet-offences-benchmarking = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +pallet-proxy = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +pallet-recovery = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +pallet-scheduler = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +pallet-session = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +pallet-session-benchmarking = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +pallet-society = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +pallet-staking = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +pallet-staking-reward-curve = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +pallet-staking-reward-fn = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +pallet-sudo = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +pallet-timestamp = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +pallet-tips = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +pallet-transaction-payment = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +pallet-transaction-payment-rpc = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +pallet-treasury = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +pallet-uniques = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +pallet-utility = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +pallet-vesting = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +pallet-preimage = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sc-authority-discovery = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sc-basic-authorship = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sc-block-builder = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sc-chain-spec = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sc-cli = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sc-client-api = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sc-client-db = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sc-consensus = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sc-consensus-aura = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sc-consensus-babe = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sc-consensus-babe-rpc = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sc-consensus-epochs = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sc-consensus-slots = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sc-consensus-grandpa = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sc-executor = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sc-executor-common = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sc-executor-wasmtime = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sc-informant = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sc-keystore = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sc-network = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sc-network-common = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sc-network-sync = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sc-network-gossip = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sc-offchain = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sc-rpc = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sc-rpc-api = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sc-rpc-server = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sc-service = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sc-sync-state-rpc = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sc-telemetry = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sc-tracing = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sc-transaction-pool = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sc-transaction-pool-api = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sc-utils = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sc-sysinfo = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sp-api = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sp-application-crypto = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sp-arithmetic = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sp-authority-discovery = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sp-block-builder = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sp-blockchain = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sp-consensus = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sp-consensus-aura = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sp-consensus-babe = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sp-consensus-slots = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sp-consensus-beefy = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sp-core = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sp-debug-derive = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sp-externalities = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sp-inherents = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sp-io = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sp-keyring = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sp-keystore = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sp-maybe-compressed-blob = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sp-npos-elections = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sp-offchain = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sp-rpc = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sp-runtime = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sp-runtime-interface = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sp-runtime-interface-proc-macro = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sp-session = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sp-staking = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sp-state-machine = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sp-std = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sp-storage = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sp-timestamp = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sp-tracing = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sp-transaction-pool = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sp-trie = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sp-version = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sp-wasm-interface = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sp-weights = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +substrate-build-script-utils = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +substrate-frame-rpc-system = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +substrate-prometheus-endpoint = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +substrate-wasm-builder = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +pallet-mmr = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sp-mmr-primitives = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } + +kusama-runtime = { package = "staging-kusama-runtime", git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +pallet-xcm = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +polkadot-cli = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +polkadot-core-primitives = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +polkadot-node-core-pvf = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +polkadot-node-network-protocol = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +polkadot-node-primitives = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +polkadot-node-subsystem = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +polkadot-node-subsystem-util = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +polkadot-overseer = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +polkadot-parachain = { package = "polkadot-parachain-primitives", git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +polkadot-primitives = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +polkadot-runtime = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +polkadot-runtime-common = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +polkadot-runtime-parachains = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +polkadot-service = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +polkadot-statement-table = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +rococo-runtime = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +westend-runtime = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +polkadot-xcm = { package = "staging-xcm", git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +xcm-builder = { package = "staging-xcm-builder", git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +xcm-executor = { package = "staging-xcm-executor", git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +xcm-emulator = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } + +pallet-collator-selection = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +cumulus-client-cli = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +cumulus-client-consensus-aura = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +cumulus-client-consensus-common = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +cumulus-client-consensus-proposer = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +cumulus-client-network = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +cumulus-client-service = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +cumulus-client-collator = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +cumulus-pallet-aura-ext = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +cumulus-pallet-dmp-queue = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +cumulus-pallet-parachain-system = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +cumulus-pallet-xcm = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +cumulus-pallet-xcmp-queue = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +cumulus-primitives-core = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +cumulus-primitives-parachain-inherent = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +cumulus-primitives-timestamp = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +cumulus-primitives-utility = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +cumulus-test-relay-sproof-builder = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +parachain-info = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +cumulus-relay-chain-interface = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +cumulus-relay-chain-minimal-node = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +cumulus-relay-chain-inprocess-interface = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } + +# pallet-transaction-multi-payment depends on pallet-evm from moonbeam. Patch dependencies of this pallet. +[patch."https://github.com/moonbeam-foundation/polkadot-sdk"] +frame-benchmarking = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +frame-support = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +frame-system = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sp-core = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sp-io = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sp-keystore = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sp-runtime = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sp-storage = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } +sp-std = { git = "https://github.com/galacticcouncil/polkadot-sdk", rev = "062d92eae0f3bb9908faf2d4e241eef17368b9d3" } diff --git a/Makefile b/Makefile index f73f09218e8..f5546f4023a 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,6 @@ .PHONY: build build: - cargo build --release - ln -f $(CURDIR)/target/release/basilisk $(CURDIR)/target/release/testing-basilisk + cargo build --release --locked .PHONY: check check: @@ -13,7 +12,11 @@ build-benchmarks: .PHONY: test test: - cargo test --release + cargo test --locked + +.PHONY: test-release +test-release: + cargo test --release --locked .PHONY: test-benchmarks test-benchmarks: @@ -25,6 +28,10 @@ coverage: .PHONY: clippy clippy: + cargo clippy --release --locked --all-targets -- -D warnings -A deprecated + +.PHONY: clippy-all +clippy-all: cargo clippy --release --locked --all-targets --all-features -- -D warnings -A deprecated .PHONY: format @@ -33,7 +40,8 @@ format: .PHONY: try-runtime try-runtime: - cargo run --release --features=try-runtime --bin basilisk try-runtime --runtime ./target/release/wbuild/basilisk-runtime/basilisk_runtime.wasm on-runtime-upgrade --checks live --uri wss://rpc.basilisk.cloud:443 + cargo build --release --features try-runtime + try-runtime --runtime ./target/release/wbuild/basilisk-runtime/basilisk_runtime.wasm on-runtime-upgrade --checks all live --uri wss://rpc.basilisk.cloud:443 .PHONY: build-docs build-docs: @@ -57,3 +65,6 @@ checksum: release: build checksum all: clippy test test-benchmarks build build-benchmarks checksum + +chopstics: release + npx @acala-network/chopsticks --parachain=launch-configs/chopsticks/basilisk.yml diff --git a/README.md b/README.md index 2ed49105b02..9e261dc9e59 100644 --- a/README.md +++ b/README.md @@ -52,28 +52,6 @@ Observe Basilisk logs multitail 99*.log ``` -#### Use Testing Runtime - -There is also an option to run the testing runtime with less restrictive settings to facilitate testing of new features. -The following command starts a dev node collator, and the testing runtime is used as a runtime for our node. -```bash -./target/release/basilisk --dev --runtime=testing -``` -The testing runtime currently supports only two chain specifications: _dev_ and _local_ testnet. -Both runtimes store blockchain data in the same directories( e.g. the _dev_ directory is shared for both runtimes -started with the `--dev` parameter. That's why it is important to purge chain data when switching to different runtime( note: `--runtime` parameter can't be used when purging chain data) - -In the case of starting a testnet using the `polkadot-launch` tool, -we don't have an option to communicate to its internal commands that we would like to use the testing runtime. -To overcome this limitation, rename the binary so it starts with the `testing` prefix, e.g. `testing-basilisk`. -Such a binary always uses the testing runtime, even if the `--runtime testing` option is not specified. - -Start local testnet with testing runtime -``` -cd ../rococo-local -polkadot-launch testing-config.json -``` - ### Interaction with the node Go to the Polkadot apps at https://dotapps.io @@ -88,14 +66,13 @@ Connect to the local testnet at `ws://localhost:9988` or live `wss://basilisk.hy ### Testing of storage migrations and runtime upgrades The `try-runtime` tool can be used to test storage migrations and runtime upgrades against state from a real chain. -Run the following command to test against the state on Basilisk on Kusama +Run the following command to test against the state on Basilisk on Kusama. +Don't forget to use a runtime built with `try-runtime` feature. ``` -cargo run --features=try-runtime try-runtime on-runtime-upgrade live --uri wss://rpc.basilisk.cloud:443 -``` -or against the Basilisk testnet on Rococo -``` -cargo run --release --features=try-runtime try-runtime on-runtime-upgrade live --uri wss://rococo-basilisk-rpc.hydration.dev:443 +try-runtime --runtime ./target/release/wbuild/basilisk-runtime/basilisk_runtime.wasm on-runtime-upgrade --checks all live --uri wss://rpc.basilisk.cloud:443 ``` +or against the Basilisk testnet on Rococo using `--uri wss://rococo-basilisk-rpc.hydration.dev:443` + ### Chopsticks simulations `Chopsticks` can be used to dry-run any transaction in parallel reality of any Substrate network. diff --git a/integration-tests/Cargo.toml b/integration-tests/Cargo.toml index 4acce7b9b5d..7b9f93d7a2e 100644 --- a/integration-tests/Cargo.toml +++ b/integration-tests/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "runtime-integration-tests" -version = "0.9.15" +version = "1.0.1" description = "Integration tests" authors = ["GalacticCouncil"] edition = "2021" @@ -9,7 +9,7 @@ license = "Apache 2.0" repository = "https://github.com/galacticcouncil/Basilisk-node" [dependencies] -# Warehouse dependencies +# HydraDX dependencies pallet-transaction-multi-payment = { workspace = true } pallet-nft = { workspace = true } pallet-currencies = { workspace = true } @@ -18,99 +18,104 @@ pallet-asset-registry = { workspace = true } pallet-ema-oracle = { workspace = true } hydradx-traits = { workspace = true } pallet-duster = { workspace = true } +pallet-xyk = { workspace = true } +pallet-lbp = { workspace = true } -pallet-xyk = { path = "../pallets/xyk",default-features = false} -pallet-lbp = { path = "../pallets/lbp", default-features = false } pallet-marketplace = { path = '../pallets/marketplace', default-features = false } primitives = { default-features = false, path = "../primitives" } -pallet-treasury = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -pallet-democracy = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -pallet-scheduler = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -pallet-elections-phragmen = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -pallet-tips = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } +pallet-treasury = { workspace = true } +pallet-democracy = { workspace = true } +pallet-scheduler = { workspace = true } +pallet-elections-phragmen = { workspace = true } +pallet-tips = { workspace = true } # collator support -pallet-collator-selection = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.38", default-features = false } -pallet-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } +pallet-collator-selection = { workspace = true } +pallet-authorship = { workspace = true } # ORML dependencies -orml-tokens = { git = "https://github.com/open-web3-stack/open-runtime-module-library", branch = "polkadot-v0.9.38", default-features = false } -orml-traits = { git = "https://github.com/open-web3-stack/open-runtime-module-library", branch = "polkadot-v0.9.38", default-features = false } -orml-vesting = { git = "https://github.com/open-web3-stack/open-runtime-module-library", branch = "polkadot-v0.9.38", default-features = false } -orml-xcm = { git = "https://github.com/open-web3-stack/open-runtime-module-library", branch = "polkadot-v0.9.38", default-features = false } +orml-tokens = { workspace = true } +orml-traits = { workspace = true } +orml-vesting = { workspace = true } +orml-xcm = { workspace = true } # orml XCM support -orml-xtokens = { git = "https://github.com/open-web3-stack/open-runtime-module-library", branch = "polkadot-v0.9.38", default-features = false } -orml-xcm-support = { git = "https://github.com/open-web3-stack/open-runtime-module-library", branch = "polkadot-v0.9.38", default-features = false } -orml-unknown-tokens = { git = "https://github.com/open-web3-stack/open-runtime-module-library", branch = "polkadot-v0.9.38", default-features = false } +orml-xtokens = { workspace = true } +orml-xcm-support = { workspace = true } +orml-unknown-tokens = { workspace = true } # Cumulus dependencies -cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.38", default-features = false } -cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.38", default-features = false } -cumulus-pallet-xcm = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.38", default-features = false } -cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.38", default-features = false } -cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.38", default-features = false } -cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.38", default-features = false } -cumulus-primitives-utility = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.38", default-features = false } -cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.38", default-features = false } -cumulus-primitives-timestamp = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.38", default-features = false } -parachain-info = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.38", default-features = false } +cumulus-pallet-aura-ext = { workspace = true } +cumulus-pallet-parachain-system = { workspace = true } +cumulus-pallet-xcm = { workspace = true } +cumulus-pallet-xcmp-queue = { workspace = true } +cumulus-pallet-dmp-queue = { workspace = true } +cumulus-primitives-core = { workspace = true } +cumulus-primitives-utility = { workspace = true } +cumulus-primitives-parachain-inherent = { workspace = true } +cumulus-primitives-timestamp = { workspace = true } +parachain-info = { workspace = true } # Polkadot dependencies -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.38", default-features = false, features = ["wasm-api"] } -xcm-builder = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.38", default-features = false } -pallet-xcm = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.38", default-features = false } -xcm-executor = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.38", default-features = false } -polkadot-xcm = { package = "xcm", git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.38", default-features = false } +polkadot-parachain = { workspace = true } +polkadot-service = { workspace = true, features = ["full-node"] } +xcm-builder = { workspace = true } +pallet-xcm = { workspace = true } +xcm-executor = { workspace = true } +polkadot-xcm = { workspace = true } # Substrate dependencies -frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false, optional = true } -frame-executive = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -frame-support = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -frame-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false, optional = true } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -pallet-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -pallet-collective = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -pallet-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -pallet-utility = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -pallet-uniques = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-externalities = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-std = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-version = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-staking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-trie = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } +frame-benchmarking = { workspace = true, optional = true } +frame-executive = { workspace = true } +frame-support = { workspace = true } +frame-system = { workspace = true } +frame-system-benchmarking = { workspace = true, optional = true } +frame-system-rpc-runtime-api = { workspace = true } +pallet-aura = { workspace = true } +pallet-balances = { workspace = true } +pallet-collective = { workspace = true } +pallet-session = { workspace = true } +pallet-timestamp = { workspace = true } +pallet-transaction-payment = { workspace = true } +pallet-transaction-payment-rpc-runtime-api = { workspace = true } +pallet-utility = { workspace = true } +pallet-uniques = { workspace = true } +pallet-im-online = { workspace = true } +sp-api = { workspace = true } +sp-block-builder = { workspace = true } +sp-consensus-aura = { workspace = true } +sp-consensus-babe = { workspace = true } +sp-consensus-beefy = { workspace = true } +sp-authority-discovery = { workspace = true } +sp-core = { workspace = true } +sp-inherents = { workspace = true } +sp-externalities = { workspace = true } +sp-offchain = { workspace = true } +sp-runtime = { workspace = true } +sp-session = { workspace = true } +sp-std = { workspace = true } +sp-transaction-pool = { workspace = true } +sp-version = { workspace = true } +sp-staking = { workspace = true } +sp-trie = { workspace = true } +sp-io = { workspace = true } +sc-consensus-grandpa = { workspace = true } -polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.38" } -polkadot-runtime-parachains = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.38" } +polkadot-primitives = { workspace = true } +polkadot-runtime-parachains = { workspace = true } basilisk-runtime = { path = "../runtime/basilisk", default-features = false} -kusama-runtime = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.38" } -cumulus-test-relay-sproof-builder = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.38" } -parachain-runtime-mock = { path = "parachain-runtime-mock", default-features = false} +kusama-runtime = { workspace = true, features = ["try-runtime"] } +cumulus-test-relay-sproof-builder = { workspace = true } [dev-dependencies] -xcm-emulator = { git = "https://github.com/shaunxw/xcm-simulator", rev = "754f3b90ecc65af735a6c9a2e1792c5253926ff6" } +xcm-emulator = { workspace = true } hex-literal = "0.4.1" pallet-relaychain-info = { workspace = true } pretty_assertions = "1.2.1" -sp-arithmetic = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38" } +sp-arithmetic = { workspace = true } test-case = "3.1.0" [features] @@ -153,9 +158,13 @@ std = [ "pallet-transaction-payment-rpc-runtime-api/std", "pallet-lbp/std", "pallet-utility/std", + "pallet-im-online/std", "sp-api/std", "sp-block-builder/std", "sp-consensus-aura/std", + "sp-consensus-babe/std", + "sp-consensus-beefy/std", + "sp-authority-discovery/std", "sp-core/std", "sp-io/std", "sp-inherents/std", @@ -174,6 +183,12 @@ std = [ "pallet-tips/std", "pallet-collator-selection/std", "pallet-authorship/std", + "kusama-runtime/std", "basilisk-runtime/std", "hydradx-traits/std", ] + +runtime-benchmarks = [ + "basilisk-runtime/runtime-benchmarks", + "kusama-runtime/runtime-benchmarks", +] \ No newline at end of file diff --git a/integration-tests/parachain-runtime-mock/Cargo.toml b/integration-tests/parachain-runtime-mock/Cargo.toml deleted file mode 100644 index 97feb3f037d..00000000000 --- a/integration-tests/parachain-runtime-mock/Cargo.toml +++ /dev/null @@ -1,190 +0,0 @@ -[package] -name = "parachain-runtime-mock" -version = "0.2.9" -description = "A mock runtime for a parachain" -authors = ["GalacticCouncil"] -edition = "2021" -homepage = "https://github.com/galacticcouncil/Basilisk-node" -license = "Apache 2.0" -repository = "https://github.com/galacticcouncil/Basilisk-node" - -[dependencies] -serde = { version = "1.0.137", optional = true } -codec = { package = "parity-scale-codec", version = "3.4.0", default-features = false } -scale-info = { version = "2.3.1", default-features = false, features = ["derive"] } - -# Warehouse dependencies -pallet-transaction-multi-payment = { workspace = true } -pallet-nft = { workspace = true } -pallet-currencies = { workspace = true } -pallet-route-executor = { workspace = true } -pallet-asset-registry = { workspace = true } -hydradx-traits = { workspace = true } -hydradx-adapters = { workspace = true } -pallet-duster = { workspace = true } - -pallet-xyk = { path = "../../pallets/xyk",default-features = false} -pallet-lbp = { path = "../../pallets/lbp", default-features = false } -pallet-marketplace = { path = '../../pallets/marketplace', default-features = false } - -primitives = { default-features = false, path = "../../primitives" } - -pallet-treasury = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -pallet-democracy = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -pallet-scheduler = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -pallet-elections-phragmen = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -pallet-tips = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } - -# collator support -pallet-collator-selection = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.38", default-features = false } -pallet-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } - -# ORML dependencies -orml-tokens = { git = "https://github.com/open-web3-stack/open-runtime-module-library", branch = "polkadot-v0.9.38", default-features = false } -orml-traits = { git = "https://github.com/open-web3-stack/open-runtime-module-library", branch = "polkadot-v0.9.38", default-features = false } -orml-vesting = { git = "https://github.com/open-web3-stack/open-runtime-module-library", branch = "polkadot-v0.9.38", default-features = false } - -# orml XCM support -orml-xtokens = { git = "https://github.com/open-web3-stack/open-runtime-module-library", branch = "polkadot-v0.9.38", default-features = false } -orml-xcm-support = { git = "https://github.com/open-web3-stack/open-runtime-module-library", branch = "polkadot-v0.9.38", default-features = false } -orml-unknown-tokens = { git = "https://github.com/open-web3-stack/open-runtime-module-library", branch = "polkadot-v0.9.38", default-features = false } - -# Cumulus dependencies -cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.38", default-features = false } -cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.38", default-features = false } -cumulus-pallet-xcm = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.38", default-features = false } -cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.38", default-features = false } -cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.38", default-features = false } -cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.38", default-features = false } -cumulus-primitives-utility = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.38", default-features = false } -cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.38", default-features = false } -cumulus-primitives-timestamp = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.38", default-features = false } -parachain-info = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.38", default-features = false } - -# Polkadot dependencies -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.38", default-features = false, features = ["wasm-api"] } -xcm-builder = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.38", default-features = false } -pallet-xcm = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.38", default-features = false } -xcm-executor = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.38", default-features = false } -polkadot-xcm = { package = "xcm", git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.38", default-features = false } - -# Substrate dependencies -frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false, optional = true } -frame-executive = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -frame-support = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -frame-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false, optional = true } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -pallet-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -pallet-collective = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -pallet-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -pallet-utility = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -pallet-uniques = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-externalities = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-std = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-version = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-staking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-trie = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-arithmetic = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38" } - -polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.38" } -polkadot-runtime-parachains = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.38" } -basilisk-runtime = { path = "../../runtime/basilisk", default-features = false} -kusama-runtime = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.38" } - -[dev-dependencies] -xcm-emulator = { git = "https://github.com/shaunxw/xcm-simulator", rev = "6847a58888e483f0ed2e0b72f90e00767ea0ecac" } -hex-literal = "0.4.1" -pallet-relaychain-info = { workspace = true } -pretty_assertions = "1.2.1" -sp-arithmetic = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38" } -test-case = "3.1.0" - -[features] -default = ["std"] -std = [ - "frame-executive/std", - "frame-support/std", - "frame-system/std", - "frame-system-rpc-runtime-api/std", - "pallet-currencies/std", - "orml-tokens/std", - "orml-traits/std", - "orml-vesting/std", - "orml-xtokens/std", - "orml-xcm-support/std", - "orml-unknown-tokens/std", - "cumulus-pallet-parachain-system/std", - "cumulus-pallet-aura-ext/std", - "cumulus-pallet-xcm/std", - "cumulus-pallet-xcmp-queue/std", - "cumulus-primitives-core/std", - "cumulus-primitives-parachain-inherent/std", - "polkadot-xcm/std", - "xcm-builder/std", - "xcm-executor/std", - "pallet-xcm/std", - "parachain-info/std", - "pallet-xyk/std", - "pallet-duster/std", - "pallet-asset-registry/std", - "pallet-aura/std", - "pallet-balances/std", - "pallet-elections-phragmen/std", - "pallet-nft/std", - "pallet-marketplace/std", - "pallet-session/std", - "pallet-timestamp/std", - "pallet-transaction-payment/std", - "pallet-transaction-multi-payment/std", - "pallet-transaction-payment-rpc-runtime-api/std", - "pallet-lbp/std", - "pallet-utility/std", - "sp-api/std", - "sp-block-builder/std", - "sp-consensus-aura/std", - "sp-core/std", - "sp-io/std", - "sp-inherents/std", - "sp-externalities/std", - "sp-offchain/std", - "sp-runtime/std", - "sp-session/std", - "sp-std/std", - "sp-trie/std", - "sp-transaction-pool/std", - "sp-version/std", - "pallet-treasury/std", - "pallet-collective/std", - "pallet-democracy/std", - "pallet-scheduler/std", - "pallet-tips/std", - "pallet-collator-selection/std", - "pallet-authorship/std", - "basilisk-runtime/std", - "hydradx-traits/std", -] -runtime-benchmarks = [ - "frame-benchmarking", - "frame-support/runtime-benchmarks", - "frame-system-benchmarking/runtime-benchmarks", - "frame-system/runtime-benchmarks", - "sp-runtime/runtime-benchmarks", - "pallet-collator-selection/runtime-benchmarks", - "pallet-xcm/runtime-benchmarks", - "xcm-builder/runtime-benchmarks", -] diff --git a/integration-tests/parachain-runtime-mock/src/lib.rs b/integration-tests/parachain-runtime-mock/src/lib.rs deleted file mode 100644 index d67c5b05d1e..00000000000 --- a/integration-tests/parachain-runtime-mock/src/lib.rs +++ /dev/null @@ -1,479 +0,0 @@ -pub use basilisk_runtime::{AccountId, VestingPalletId}; -use frame_support::{ - construct_runtime, - dispatch::Pays, - pallet_prelude::ConstU32, - parameter_types, - traits::{Everything, Nothing}, - weights::{constants::WEIGHT_REF_TIME_PER_SECOND, Weight}, - PalletId, -}; -use hydradx_adapters::RelayChainBlockNumberProvider; -use hydradx_adapters::{MultiCurrencyTrader, ToFeeReceiver}; - -use orml_xcm_support::{DepositToAlternative, IsNativeConcrete, MultiCurrencyAdapter, MultiNativeAsset}; -use sp_runtime::traits::Convert; -use sp_runtime::Perbill; - -use codec::{Decode, Encode, MaxEncodedLen}; -use scale_info::TypeInfo; - -use orml_traits::parameter_type_with_key; - -use pallet_transaction_multi_payment::{DepositAll, Price, TransferFees}; -use polkadot_xcm::v3::prelude::*; -use primitives::Balance; - -use frame_system::EnsureRoot; -use pallet_xcm::XcmPassthrough; -use polkadot_parachain::primitives::Sibling; -use primitives::{constants::currency::*, AssetId}; -use sp_core::H256; -use sp_runtime::{ - testing::Header, - traits::{BlakeTwo256, IdentityLookup}, -}; -use xcm_builder::{ - AccountId32Aliases, AllowUnpaidExecutionFrom, EnsureXcmOrigin, FixedWeightBounds, ParentIsPreset, - RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative, - SignedToAccountId32, SovereignSignedViaLocation, -}; -use xcm_executor::{Config, XcmExecutor}; -pub type Amount = i128; -pub type BlockNumber = u64; - -use cumulus_primitives_core::ParaId; -use frame_support::weights::ConstantMultiplier; -use hydradx_traits::pools::SpotPriceProvider; -use orml_traits::location::AbsoluteReserveProvider; -use pallet_currencies::BasicCurrencyAdapter; -use pallet_transaction_payment::TargetedFeeAdjustment; -use polkadot_xcm::prelude::MultiLocation; -use sp_arithmetic::FixedU128; -use sp_runtime::traits::AccountIdConversion; - -use polkadot_xcm::v3::Weight as XcmWeight; - -use basilisk_runtime::{AdjustmentVariable, MaximumMultiplier, MinimumMultiplier, TargetBlockFullness, WeightToFee}; - -pub const NORMAL_DISPATCH_RATIO: Perbill = Perbill::from_percent(75); - -pub const CORE_ASSET_ID: AssetId = 0; - -parameter_types! { - pub const ParachainNativeCurrencyId: AssetId = 0; - pub const MultiPaymentCurrencySetFee: Pays = Pays::Yes; - pub const NativeExistentialDeposit: u128 = NATIVE_EXISTENTIAL_DEPOSIT; - pub const TransactionByteFee: Balance = 10 * MILLICENTS; - pub const BlockHashCount: u32 = 250; - pub const SS58Prefix: u8 = 63; - pub static MockBlockNumberProvider: u64 = 0; - pub const MaxLocks: u32 = 50; - pub const ExistentialDeposit: u128 = 500; - pub const MaxReserves: u32 = 50; - pub const RelayNetwork: NetworkId = NetworkId::Kusama; - pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); - pub const MaxInstructions: u32 = 100; - pub BlockLength: frame_system::limits::BlockLength = - frame_system::limits::BlockLength::max_with_normal_ratio(5 * 1024 * 1024, NORMAL_DISPATCH_RATIO); - pub const ReservedXcmpWeight: Weight = Weight::from_ref_time(WEIGHT_REF_TIME_PER_SECOND / 4); - pub const ReservedDmpWeight: Weight =Weight::from_ref_time(WEIGHT_REF_TIME_PER_SECOND / 4); - pub RegistryStringLimit: u32 = 100; - pub const TreasuryPalletId: PalletId = PalletId(*b"aca/trsy"); - pub ParachainTreasuryAccount: AccountId = TreasuryPalletId::get().into_account_truncating(); - pub KsmPerSecond: (AssetId, u128) = (0, 10); - pub BaseRate: u128 = 100; - pub SelfLocation: MultiLocation = MultiLocation::new(1, X1(Parachain(ParachainInfo::parachain_id().into()))); - pub const BaseXcmWeight: XcmWeight = XcmWeight::from_ref_time(100_000_000); - pub const MaxAssetsForTransfer: usize = 2; - pub const SequentialIdOffset: u32 = 1_000_000; - pub UniversalLocation: InteriorMultiLocation = X2(GlobalConsensus(RelayNetwork::get()), Parachain(ParachainInfo::parachain_id().into())); -} -parameter_type_with_key! { - pub ExistentialDeposits: |_currency_id: AssetId| -> Balance { - 1u128 - }; -} - -impl frame_system::Config for ParachainRuntime { - type BaseCallFilter = Everything; - type BlockWeights = (); - type BlockLength = BlockLength; - type DbWeight = (); - type RuntimeOrigin = RuntimeOrigin; - type RuntimeCall = RuntimeCall; - type Index = u64; - type BlockNumber = BlockNumber; - type Hash = H256; - type Hashing = BlakeTwo256; - type AccountId = AccountId; - type Lookup = IdentityLookup; - type Header = Header; - type RuntimeEvent = RuntimeEvent; - type BlockHashCount = BlockHashCount; - type Version = (); - type PalletInfo = PalletInfo; - type AccountData = pallet_balances::AccountData; - type OnNewAccount = (); - type OnKilledAccount = (); - type SystemWeightInfo = (); - type SS58Prefix = (); - type OnSetCode = cumulus_pallet_parachain_system::ParachainSetCode; - type MaxConsumers = frame_support::traits::ConstU32<16>; -} - -pub type LocalOriginToLocation = SignedToAccountId32; - -/// The means for routing XCM messages which are not for local execution into -/// the right message queues. -pub type XcmRouter = ( - // Two routers - use UMP to communicate with the relay chain: - cumulus_primitives_utility::ParentAsUmp, - // ..and XCMP to communicate with the sibling chains. - XcmpQueue, -); - -pub type LocalAssetTransactor = MultiCurrencyAdapter< - Currencies, - UnknownTokens, - IsNativeConcrete, - AccountId, - LocationToAccountId, - AssetId, - CurrencyIdConvert, - DepositToAlternative, ->; -pub type XcmOriginToCallOrigin = ( - SovereignSignedViaLocation, - RelayChainAsNative, - SiblingParachainAsNative, - SignedAccountId32AsNative, - XcmPassthrough, -); -pub type LocationToAccountId = ( - ParentIsPreset, - SiblingParachainConvertsVia, - AccountId32Aliases, -); -pub type Barrier = AllowUnpaidExecutionFrom; - -pub struct XcmConfig; -impl Config for XcmConfig { - type RuntimeCall = RuntimeCall; - type XcmSender = XcmRouter; - - type AssetTransactor = LocalAssetTransactor; - type OriginConverter = XcmOriginToCallOrigin; - type IsReserve = MultiNativeAsset; - - type IsTeleporter = (); - type UniversalLocation = UniversalLocation; - - type Barrier = Barrier; - type Weigher = FixedWeightBounds; - - // We calculate weight fees the same way as for regular extrinsics and use the prices and choice - // of accepted currencies of the transaction payment pallet. Fees go to the same fee receiver as - // configured in `MultiTransactionPayment`. - type Trader = MultiCurrencyTrader< - AssetId, - Balance, - Price, - WeightToFee, - MultiTransactionPayment, - CurrencyIdConvert, - ToFeeReceiver< - AccountId, - AssetId, - Balance, - Price, - CurrencyIdConvert, - DepositAll, - ParachainTreasuryAccount, - >, - >; - type ResponseHandler = PolkadotXcm; - type AssetTrap = PolkadotXcm; - type AssetLocker = (); - type AssetExchanger = (); - type AssetClaims = PolkadotXcm; - type SubscriptionService = PolkadotXcm; - type PalletInstancesInfo = AllPalletsWithSystem; - type MaxAssetsIntoHolding = ConstU32<64>; - type FeeManager = (); - type MessageExporter = (); - type UniversalAliases = Nothing; - type CallDispatcher = RuntimeCall; - type SafeCallFilter = Everything; -} - -impl cumulus_pallet_parachain_system::Config for ParachainRuntime { - type RuntimeEvent = RuntimeEvent; - type OnSystemEvent = (); - type SelfParaId = ParachainInfo; - type DmpMessageHandler = DmpQueue; - type ReservedDmpWeight = ReservedDmpWeight; - type OutboundXcmpMessageSource = XcmpQueue; - type XcmpMessageHandler = XcmpQueue; - type ReservedXcmpWeight = ReservedXcmpWeight; - type CheckAssociatedRelayNumber = cumulus_pallet_parachain_system::RelayNumberStrictlyIncreases; -} - -impl cumulus_pallet_xcmp_queue::Config for ParachainRuntime { - type RuntimeEvent = RuntimeEvent; - type XcmExecutor = XcmExecutor; - type ChannelInfo = ParachainSystem; - type VersionWrapper = PolkadotXcm; - type ExecuteOverweightOrigin = EnsureRoot; - type ControllerOrigin = EnsureRoot; - type ControllerOriginConverter = XcmOriginToCallOrigin; - type PriceForSiblingDelivery = (); - type WeightInfo = (); - type ExecuteDeferredOrigin = EnsureRoot; - type MaxDeferredMessages = ConstU32<100>; - type RelayChainBlockNumberProvider = RelayChainBlockNumberProvider; - type XcmDeferFilter = (); -} - -impl pallet_xcm::Config for ParachainRuntime { - type RuntimeEvent = RuntimeEvent; - type Currency = Balances; - type CurrencyMatcher = (); - type SendXcmOrigin = EnsureXcmOrigin; - type XcmRouter = XcmRouter; - type ExecuteXcmOrigin = EnsureXcmOrigin; - type XcmExecuteFilter = Everything; - type XcmExecutor = XcmExecutor; - type XcmTeleportFilter = Nothing; - type XcmReserveTransferFilter = Everything; - type Weigher = FixedWeightBounds; - type UniversalLocation = UniversalLocation; - type RuntimeOrigin = RuntimeOrigin; - type RuntimeCall = RuntimeCall; - const VERSION_DISCOVERY_QUEUE_SIZE: u32 = 100; - type AdvertisedXcmVersion = pallet_xcm::CurrentXcmVersion; - type TrustedLockers = (); - type SovereignAccountOf = (); - type MaxLockers = ConstU32<8>; - type WeightInfo = basilisk_runtime::weights::xcm::BasiliskWeight; - #[cfg(feature = "runtime-benchmarks")] - type ReachableDest = (); -} - -impl cumulus_pallet_dmp_queue::Config for ParachainRuntime { - type RuntimeEvent = RuntimeEvent; - type XcmExecutor = XcmExecutor; - type ExecuteOverweightOrigin = EnsureRoot; -} - -impl parachain_info::Config for ParachainRuntime {} - -impl orml_tokens::Config for ParachainRuntime { - type RuntimeEvent = RuntimeEvent; - type Balance = Balance; - type Amount = Amount; - type CurrencyId = AssetId; - type WeightInfo = (); - type ExistentialDeposits = ExistentialDeposits; - type MaxLocks = MaxLocks; - type DustRemovalWhitelist = Nothing; - type MaxReserves = MaxReserves; - type ReserveIdentifier = (); - type CurrencyHooks = (); -} - -impl pallet_balances::Config for ParachainRuntime { - type Balance = Balance; - type RuntimeEvent = RuntimeEvent; - type DustRemoval = (); - type ExistentialDeposit = ExistentialDeposit; - type AccountStore = frame_system::Pallet; - type MaxLocks = (); - type WeightInfo = (); - type MaxReserves = MaxReserves; - type ReserveIdentifier = (); -} -impl cumulus_pallet_xcm::Config for ParachainRuntime { - type RuntimeEvent = RuntimeEvent; - type XcmExecutor = XcmExecutor; -} - -impl pallet_asset_registry::Config for ParachainRuntime { - type RuntimeEvent = RuntimeEvent; - type AssetId = AssetId; - type RegistryOrigin = EnsureRoot; - type Balance = Balance; - type AssetNativeLocation = AssetLocation; - type StringLimit = RegistryStringLimit; - type SequentialIdStartAt = SequentialIdOffset; - type NativeAssetId = ParachainNativeCurrencyId; - type WeightInfo = (); -} - -type UncheckedExtrinsic = frame_system::mocking::MockUncheckedExtrinsic; -type Block = frame_system::mocking::MockBlock; - -#[derive(Debug, Encode, Decode, Clone, PartialEq, Eq, TypeInfo, MaxEncodedLen)] -pub struct AssetLocation(pub MultiLocation); - -impl Default for AssetLocation { - fn default() -> Self { - AssetLocation(MultiLocation::here()) - } -} - -pub struct CurrencyIdConvert; - -impl Convert> for CurrencyIdConvert { - fn convert(id: AssetId) -> Option { - match id { - CORE_ASSET_ID => Some(MultiLocation::new( - 1, - X2(Parachain(ParachainInfo::parachain_id().into()), GeneralIndex(id.into())), - )), - _ => AssetRegistry::asset_to_location(id).map(|loc| loc.0), - } - } -} - -impl Convert> for CurrencyIdConvert { - fn convert(location: MultiLocation) -> Option { - match location { - MultiLocation { - parents, - interior: X2(Parachain(id), GeneralIndex(index)), - } if parents == 1 - && ParaId::from(id) == ParachainInfo::parachain_id() - && (index as u32) == CORE_ASSET_ID => - { - // Handling native asset for this parachain - Some(CORE_ASSET_ID) - } - // handle reanchor canonical location: https://github.com/paritytech/polkadot/pull/4470 - MultiLocation { - parents: 0, - interior: X1(GeneralIndex(index)), - } if (index as u32) == CORE_ASSET_ID => Some(CORE_ASSET_ID), - // delegate to asset-registry - _ => AssetRegistry::location_to_asset(AssetLocation(location)), - } - } -} - -impl Convert> for CurrencyIdConvert { - fn convert(asset: MultiAsset) -> Option { - if let MultiAsset { - id: Concrete(location), .. - } = asset - { - Self::convert(location) - } else { - None - } - } -} - -pub struct AccountIdToMultiLocation; -impl Convert for AccountIdToMultiLocation { - fn convert(account: AccountId) -> MultiLocation { - X1(AccountId32 { - network: None, - id: account.into(), - }) - .into() - } -} - -parameter_type_with_key! { - pub ParachainMinFee: |_location: MultiLocation| -> Option { - None - }; -} - -impl orml_xtokens::Config for ParachainRuntime { - type RuntimeEvent = RuntimeEvent; - type Balance = Balance; - type CurrencyId = AssetId; - type CurrencyIdConvert = CurrencyIdConvert; - type AccountIdToMultiLocation = AccountIdToMultiLocation; - type SelfLocation = SelfLocation; - type MinXcmFee = ParachainMinFee; - type XcmExecutor = XcmExecutor; - type MultiLocationsFilter = Everything; - type Weigher = FixedWeightBounds; - type BaseXcmWeight = BaseXcmWeight; - type UniversalLocation = UniversalLocation; - type MaxAssetsForTransfer = MaxAssetsForTransfer; - type ReserveProvider = AbsoluteReserveProvider; -} - -impl pallet_currencies::Config for ParachainRuntime { - type RuntimeEvent = RuntimeEvent; - type MultiCurrency = Tokens; - type NativeCurrency = BasicCurrencyAdapter; - type GetNativeCurrencyId = ParachainNativeCurrencyId; - type WeightInfo = (); -} - -impl orml_unknown_tokens::Config for ParachainRuntime { - type RuntimeEvent = RuntimeEvent; -} -pub type SlowAdjustingFeeUpdate = - TargetedFeeAdjustment; - -impl pallet_transaction_payment::Config for ParachainRuntime { - type RuntimeEvent = RuntimeEvent; - type OnChargeTransaction = TransferFees, ParachainTreasuryAccount>; - type OperationalFeeMultiplier = (); - type WeightToFee = WeightToFee; - type FeeMultiplierUpdate = SlowAdjustingFeeUpdate; - type LengthToFee = ConstantMultiplier; -} - -pub struct ParachainSpotPriceProviderStub; - -impl SpotPriceProvider for ParachainSpotPriceProviderStub { - type Price = FixedU128; - - fn pair_exists(_asset_a: AssetId, _asset_b: AssetId) -> bool { - true - } - - fn spot_price(_asset_a: AssetId, _asset_b: AssetId) -> Option { - Some(FixedU128::from_inner(462_962_963_000_u128)) - } -} - -impl pallet_transaction_multi_payment::Config for ParachainRuntime { - type RuntimeEvent = RuntimeEvent; - type AcceptedCurrencyOrigin = EnsureRoot; - type Currencies = Currencies; - type SpotPriceProvider = ParachainSpotPriceProviderStub; - type WeightInfo = (); - type WeightToFee = WeightToFee; - type NativeAssetId = ParachainNativeCurrencyId; -} - -construct_runtime!( - pub enum ParachainRuntime where - Block = Block, - NodeBlock = Block, - UncheckedExtrinsic = UncheckedExtrinsic, - { - System: frame_system, - Tokens: orml_tokens, - Balances: pallet_balances, - Currencies: pallet_currencies, - ParachainSystem: cumulus_pallet_parachain_system, - ParachainInfo: parachain_info, - XcmpQueue: cumulus_pallet_xcmp_queue, - DmpQueue: cumulus_pallet_dmp_queue, - CumulusXcm: cumulus_pallet_xcm, - PolkadotXcm: pallet_xcm, - AssetRegistry: pallet_asset_registry, - TransactionPayment: pallet_transaction_payment, - MultiTransactionPayment: pallet_transaction_multi_payment, - XTokens: orml_xtokens = 154, - UnknownTokens: orml_unknown_tokens = 155, - } -); diff --git a/integration-tests/src/cross_chain_transfer.rs b/integration-tests/src/cross_chain_transfer.rs index 9e8282f3c19..082e7bd60f1 100644 --- a/integration-tests/src/cross_chain_transfer.rs +++ b/integration-tests/src/cross_chain_transfer.rs @@ -1,4 +1,5 @@ #![cfg(test)] +use crate::kusama_test_net::Kusama; use crate::kusama_test_net::*; use frame_support::{assert_noop, assert_ok}; @@ -31,7 +32,7 @@ fn basilisk_should_receive_asset_when_transferred_from_relaychain() { basilisk_runtime::AssetLocation(MultiLocation::parent()) )); }); - KusamaRelay::execute_with(|| { + Kusama::execute_with(|| { assert_ok!(kusama_runtime::XcmPallet::reserve_transfer_assets( kusama_runtime::RuntimeOrigin::signed(ALICE.into()), Box::new(Parachain(BASILISK_PARA_ID).into_versioned()), @@ -41,7 +42,9 @@ fn basilisk_should_receive_asset_when_transferred_from_relaychain() { )); assert_eq!( - kusama_runtime::Balances::free_balance(&ParaId::from(BASILISK_PARA_ID).into_account_truncating()), + kusama_runtime::Balances::free_balance(AccountIdConversion::::into_account_truncating( + &ParaId::from(BASILISK_PARA_ID) + )), 310 * UNITS ); }); @@ -49,11 +52,11 @@ fn basilisk_should_receive_asset_when_transferred_from_relaychain() { Basilisk::execute_with(|| { assert_eq!( basilisk_runtime::Tokens::free_balance(1, &AccountId::from(BOB)), - 1_299_999_989_814_815 + 1_299_999_987_268_519 ); assert_eq!( basilisk_runtime::Tokens::free_balance(1, &basilisk_runtime::Treasury::account_id()), - 10_185_185 + 12_731_481 ); }); } @@ -72,7 +75,7 @@ fn relaychain_should_receive_asset_when_transferred_from_basilisk() { 1, 3 * UNITS, Box::new(MultiLocation::new(1, X1(Junction::AccountId32 { id: BOB, network: None })).into()), - WeightLimit::Limited(Weight::from_ref_time(4_600_000_000)) + WeightLimit::Limited(Weight::from_parts(4_600_000_000, 10_000)) )); assert_eq!( basilisk_runtime::Tokens::free_balance(1, &AccountId::from(ALICE)), @@ -80,10 +83,10 @@ fn relaychain_should_receive_asset_when_transferred_from_basilisk() { ); }); - KusamaRelay::execute_with(|| { + Kusama::execute_with(|| { assert_eq!( - kusama_runtime::Balances::free_balance(&AccountId::from(BOB)), - 2999909712564 // 3 * BSX - fee + kusama_runtime::Balances::free_balance(AccountId::from(BOB)), + 2999918220455 // 3 * BSX - fee ); }); } @@ -103,8 +106,8 @@ fn basilisk_should_receive_asset_when_sent_from_other_parachain() { }); OtherParachain::execute_with(|| { - assert_ok!(parachain_runtime_mock::XTokens::transfer( - parachain_runtime_mock::RuntimeOrigin::signed(ALICE.into()), + assert_ok!(basilisk_runtime::XTokens::transfer( + basilisk_runtime::RuntimeOrigin::signed(ALICE.into()), 0, amount_to_send, Box::new( @@ -117,10 +120,10 @@ fn basilisk_should_receive_asset_when_sent_from_other_parachain() { ) .into() ), - WeightLimit::Limited(Weight::from_ref_time(399_600_000_000)) + WeightLimit::Limited(Weight::from_parts(399_600_000_000, 0)) )); assert_eq!( - parachain_runtime_mock::Balances::free_balance(&AccountId::from(ALICE)), + basilisk_runtime::Balances::free_balance(AccountId::from(ALICE)), ALICE_INITIAL_NATIVE_BALANCE_ON_OTHER_PARACHAIN - amount_to_send ); }); @@ -145,13 +148,10 @@ fn other_parachain_should_receive_asset_when_sent_from_basilisk() { let amount_to_send = 30 * UNITS; OtherParachain::execute_with(|| { - assert_ok!(parachain_runtime_mock::AssetRegistry::set_location( - parachain_runtime_mock::RuntimeOrigin::root(), + assert_ok!(basilisk_runtime::AssetRegistry::set_location( + basilisk_runtime::RuntimeOrigin::root(), 1, - parachain_runtime_mock::AssetLocation(MultiLocation::new( - 1, - X2(Parachain(BASILISK_PARA_ID), GeneralIndex(0)) - )) + basilisk_runtime::AssetLocation(MultiLocation::new(1, X2(Parachain(BASILISK_PARA_ID), GeneralIndex(0)))) )); }); @@ -175,24 +175,24 @@ fn other_parachain_should_receive_asset_when_sent_from_basilisk() { ) .into() ), - WeightLimit::Limited(Weight::from_ref_time(399_600_000_000)) + WeightLimit::Limited(Weight::from_parts(399_600_000_000, 0)) )); assert_eq!( - basilisk_runtime::Balances::free_balance(&AccountId::from(ALICE)), + basilisk_runtime::Balances::free_balance(AccountId::from(ALICE)), ALICE_INITIAL_BSX_BALANCE - amount_to_send ); }); OtherParachain::execute_with(|| { - let fee = 10175000000; + let fee = 10185185; assert_eq!( - parachain_runtime_mock::Tokens::free_balance(1, &AccountId::from(BOB)), + basilisk_runtime::Tokens::free_balance(1, &AccountId::from(BOB)), BOB_INITIAL_AUSD_BALANCE_ON_OTHER_PARACHAIN + amount_to_send - fee ); assert_eq!( - parachain_runtime_mock::Tokens::free_balance(1, ¶chain_runtime_mock::ParachainTreasuryAccount::get()), - 10175000000 + basilisk_runtime::Tokens::free_balance(1, &basilisk_runtime::TreasuryAccount::get()), + fee ); }); } @@ -212,8 +212,8 @@ fn transfer_from_other_parachain_and_back() { }); OtherParachain::execute_with(|| { - assert_ok!(parachain_runtime_mock::XTokens::transfer( - parachain_runtime_mock::RuntimeOrigin::signed(ALICE.into()), + assert_ok!(basilisk_runtime::XTokens::transfer( + basilisk_runtime::RuntimeOrigin::signed(ALICE.into()), 0, amount_to_send, Box::new( @@ -226,10 +226,10 @@ fn transfer_from_other_parachain_and_back() { ) .into() ), - WeightLimit::Limited(Weight::from_ref_time(399_600_000_000)) + WeightLimit::Limited(Weight::from_parts(399_600_000_000, 0)) )); assert_eq!( - parachain_runtime_mock::Balances::free_balance(&AccountId::from(ALICE)), + basilisk_runtime::Balances::free_balance(AccountId::from(ALICE)), ALICE_INITIAL_NATIVE_BALANCE_ON_OTHER_PARACHAIN - amount_to_send ); }); @@ -268,10 +268,10 @@ fn transfer_from_other_parachain_and_back() { ) .into() ), - WeightLimit::Limited(Weight::from_ref_time(399_600_000_000)) + WeightLimit::Limited(Weight::from_parts(399_600_000_000, 0)) )); assert_eq!( - basilisk_runtime::Balances::free_balance(&AccountId::from(BOB)), + basilisk_runtime::Balances::free_balance(AccountId::from(BOB)), 1000 * UNITS - amount_to_send ); assert_eq!( @@ -282,7 +282,7 @@ fn transfer_from_other_parachain_and_back() { OtherParachain::execute_with(|| { assert_eq!( - parachain_runtime_mock::Tokens::free_balance(1, &AccountId::from(ALICE)), + basilisk_runtime::Tokens::free_balance(1, &AccountId::from(ALICE)), ALICE_INITIAL_AUSD_BALANCE_ON_OTHER_PARACHAIN ); }); @@ -303,13 +303,13 @@ fn other_parachain_should_fail_to_send_asset_to_basilisk_when_insufficient_amoun OtherParachain::execute_with(|| { let insufficient_amount = 55; assert_eq!( - parachain_runtime_mock::Balances::free_balance(&AccountId::from(ALICE)), + basilisk_runtime::Balances::free_balance(AccountId::from(ALICE)), ALICE_INITIAL_NATIVE_BALANCE_ON_OTHER_PARACHAIN ); assert_noop!( - parachain_runtime_mock::XTokens::transfer( - parachain_runtime_mock::RuntimeOrigin::signed(ALICE.into()), + basilisk_runtime::XTokens::transfer( + basilisk_runtime::RuntimeOrigin::signed(ALICE.into()), 0, insufficient_amount, Box::new( @@ -322,13 +322,13 @@ fn other_parachain_should_fail_to_send_asset_to_basilisk_when_insufficient_amoun ) .into() ), - WeightLimit::Limited(Weight::from_ref_time(399_600_000_000)) + WeightLimit::Limited(Weight::from_parts(399_600_000_000, 0)) ), orml_xtokens::Error::::XcmExecutionFailed ); assert_eq!( - parachain_runtime_mock::Balances::free_balance(&AccountId::from(ALICE)), + basilisk_runtime::Balances::free_balance(AccountId::from(ALICE)), ALICE_INITIAL_NATIVE_BALANCE_ON_OTHER_PARACHAIN ); }); @@ -359,14 +359,14 @@ fn fee_currency_set_on_xcm_transfer() { // fee currency is not set before XCM transfer assert_eq!( - basilisk_runtime::MultiTransactionPayment::get_currency(&AccountId::from(HITCHHIKER)), + basilisk_runtime::MultiTransactionPayment::get_currency(AccountId::from(HITCHHIKER)), None ); }); OtherParachain::execute_with(|| { - assert_ok!(parachain_runtime_mock::XTokens::transfer( - parachain_runtime_mock::RuntimeOrigin::signed(ALICE.into()), + assert_ok!(basilisk_runtime::XTokens::transfer( + basilisk_runtime::RuntimeOrigin::signed(ALICE.into()), 0, transfer_amount, Box::new( @@ -382,10 +382,10 @@ fn fee_currency_set_on_xcm_transfer() { ) .into() ), - WeightLimit::Limited(Weight::from_ref_time(399_600_000_000)) + WeightLimit::Limited(Weight::from_parts(399_600_000_000, 0)) )); assert_eq!( - parachain_runtime_mock::Balances::free_balance(&AccountId::from(ALICE)), + basilisk_runtime::Balances::free_balance(AccountId::from(ALICE)), ALICE_INITIAL_NATIVE_BALANCE_ON_OTHER_PARACHAIN - transfer_amount ); }); @@ -402,7 +402,7 @@ fn fee_currency_set_on_xcm_transfer() { ); // fee currency is set after XCM transfer assert_eq!( - basilisk_runtime::MultiTransactionPayment::get_currency(&AccountId::from(HITCHHIKER)), + basilisk_runtime::MultiTransactionPayment::get_currency(AccountId::from(HITCHHIKER)), Some(1) ); }); @@ -413,8 +413,8 @@ fn assets_should_be_trapped_when_assets_are_unknown() { TestNet::reset(); OtherParachain::execute_with(|| { - assert_ok!(parachain_runtime_mock::XTokens::transfer( - parachain_runtime_mock::RuntimeOrigin::signed(ALICE.into()), + assert_ok!(basilisk_runtime::XTokens::transfer( + basilisk_runtime::RuntimeOrigin::signed(ALICE.into()), 0, 30 * UNITS, Box::new( @@ -427,10 +427,10 @@ fn assets_should_be_trapped_when_assets_are_unknown() { ) .into() ), - WeightLimit::Limited(Weight::from_ref_time(399_600_000_000)) + WeightLimit::Limited(Weight::from_parts(399_600_000_000, 0)) )); assert_eq!( - parachain_runtime_mock::Balances::free_balance(&AccountId::from(ALICE)), + basilisk_runtime::Balances::free_balance(AccountId::from(ALICE)), ALICE_INITIAL_NATIVE_BALANCE_ON_OTHER_PARACHAIN - 30 * UNITS ); }); @@ -438,14 +438,15 @@ fn assets_should_be_trapped_when_assets_are_unknown() { Basilisk::execute_with(|| { expect_basilisk_events(vec![ cumulus_pallet_xcmp_queue::Event::Fail { - message_hash: Some(hex!["30291d1dfb68ae6f66d4c841facb78f44e7611ab2a25c84f4fb7347f448d2944"]), + message_hash: hex!["30291d1dfb68ae6f66d4c841facb78f44e7611ab2a25c84f4fb7347f448d2944"], + message_id: hex!["30291d1dfb68ae6f66d4c841facb78f44e7611ab2a25c84f4fb7347f448d2944"], error: XcmError::AssetNotFound, - weight: Weight::from_ref_time(300_000_000), + weight: Weight::from_parts(300_000_000, 0), } .into(), pallet_relaychain_info::Event::CurrentBlockNumbers { - parachain_block_number: 1, - relaychain_block_number: 4, + parachain_block_number: 3, + relaychain_block_number: 5, } .into(), ]); @@ -490,11 +491,11 @@ fn claim_trapped_asset_should_work() { fn trap_asset() -> MultiAsset { OtherParachain::execute_with(|| { assert_eq!( - parachain_runtime_mock::Balances::free_balance(&AccountId::from(ALICE)), + basilisk_runtime::Balances::free_balance(AccountId::from(ALICE)), ALICE_INITIAL_NATIVE_BALANCE_ON_OTHER_PARACHAIN ); - assert_ok!(parachain_runtime_mock::XTokens::transfer( - parachain_runtime_mock::RuntimeOrigin::signed(ALICE.into()), + assert_ok!(basilisk_runtime::XTokens::transfer( + basilisk_runtime::RuntimeOrigin::signed(ALICE.into()), 0, 30 * UNITS, Box::new( @@ -507,10 +508,10 @@ fn trap_asset() -> MultiAsset { ) .into() ), - WeightLimit::Limited(Weight::from_ref_time(399_600_000_000)) + WeightLimit::Limited(Weight::from_parts(399_600_000_000, 0)) )); assert_eq!( - parachain_runtime_mock::Balances::free_balance(&AccountId::from(ALICE)), + basilisk_runtime::Balances::free_balance(AccountId::from(ALICE)), 200 * UNITS - 30 * UNITS ); }); @@ -521,14 +522,15 @@ fn trap_asset() -> MultiAsset { Basilisk::execute_with(|| { expect_basilisk_events(vec![ cumulus_pallet_xcmp_queue::Event::Fail { - message_hash: Some(hex!["30291d1dfb68ae6f66d4c841facb78f44e7611ab2a25c84f4fb7347f448d2944"]), + message_hash: hex!["30291d1dfb68ae6f66d4c841facb78f44e7611ab2a25c84f4fb7347f448d2944"], + message_id: hex!["30291d1dfb68ae6f66d4c841facb78f44e7611ab2a25c84f4fb7347f448d2944"], error: XcmError::AssetNotFound, - weight: Weight::from_ref_time(300_000_000), + weight: Weight::from_parts(300_000_000, 0), } .into(), pallet_relaychain_info::Event::CurrentBlockNumbers { - parachain_block_number: 1, - relaychain_block_number: 4, + parachain_block_number: 3, + relaychain_block_number: 5, } .into(), ]); @@ -565,8 +567,8 @@ fn claim_asset(asset: MultiAsset, recipient: [u8; 32]) { beneficiary: recipient, }, ]); - assert_ok!(parachain_runtime_mock::PolkadotXcm::send( - parachain_runtime_mock::RuntimeOrigin::root(), + assert_ok!(basilisk_runtime::PolkadotXcm::send( + basilisk_runtime::RuntimeOrigin::root(), Box::new(MultiLocation::new(1, X1(Parachain(BASILISK_PARA_ID))).into()), Box::new(VersionedXcm::from(xcm_msg)) )); @@ -584,13 +586,14 @@ fn polkadot_xcm_execute_extrinsic_should_not_be_allowed() { fees: (Here, 400000000000u128).into(), weight_limit: Unlimited, }, + ClearError, ])); assert_noop!( basilisk_runtime::PolkadotXcm::execute( basilisk_runtime::RuntimeOrigin::signed(ALICE.into()), Box::new(message), - Weight::from_ref_time(400_000_000_000) + Weight::from_parts(400_000_000_000, 0) ), pallet_xcm::Error::::Filtered ); diff --git a/integration-tests/src/exchange_asset.rs b/integration-tests/src/exchange_asset.rs index dcb139299fc..ca0c9692108 100644 --- a/integration-tests/src/exchange_asset.rs +++ b/integration-tests/src/exchange_asset.rs @@ -1,11 +1,15 @@ #![cfg(test)] use crate::kusama_test_net::*; +use basilisk_runtime::Currencies; use basilisk_runtime::RuntimeOrigin; use basilisk_runtime::XYK; use frame_support::dispatch::GetDispatchInfo; use frame_support::weights::Weight; use frame_support::{assert_ok, pallet_prelude::*}; +use hydradx_traits::router::AssetPair; +use hydradx_traits::router::PoolType; +use hydradx_traits::router::Trade; use orml_traits::currency::MultiCurrency; use polkadot_xcm::{latest::prelude::*, VersionedXcm}; use pretty_assertions::assert_eq; @@ -30,28 +34,28 @@ fn basilisk_should_swap_assets_when_receiving_from_otherchain_with_sell() { }); OtherParachain::execute_with(|| { - let xcm = craft_exchange_asset_xcm::<_, parachain_runtime_mock::RuntimeCall>( + let xcm = craft_exchange_asset_xcm::<_, basilisk_runtime::RuntimeCall>( MultiAsset::from((GeneralIndex(0), 5 * UNITS)), MultiAsset::from((GeneralIndex(CORE_ASSET_ID.into()), 2 * UNITS)), SELL, ); //Act - let res = parachain_runtime_mock::PolkadotXcm::execute( - parachain_runtime_mock::RuntimeOrigin::signed(ALICE.into()), + let res = basilisk_runtime::PolkadotXcm::execute( + basilisk_runtime::RuntimeOrigin::signed(ALICE.into()), Box::new(xcm), - Weight::from_ref_time(399_600_000_000), + Weight::from_parts(399_600_000_000, 0), ); assert_ok!(res); //Assert assert_eq!( - parachain_runtime_mock::Balances::free_balance(AccountId::from(ALICE)), + basilisk_runtime::Balances::free_balance(AccountId::from(ALICE)), ALICE_INITIAL_NATIVE_BALANCE_ON_OTHER_PARACHAIN - 100 * UNITS ); assert!(matches!( last_other_para_events(2).first(), - Some(parachain_runtime_mock::RuntimeEvent::XcmpQueue( + Some(basilisk_runtime::RuntimeEvent::XcmpQueue( cumulus_pallet_xcmp_queue::Event::XcmpMessageSent { .. } )) )); @@ -64,10 +68,7 @@ fn basilisk_should_swap_assets_when_receiving_from_otherchain_with_sell() { 95000000000000 - fees ); let received = BOB_INITIAL_BSX_BALANCE + 2373809523812; - assert_eq!( - basilisk_runtime::Balances::free_balance(&AccountId::from(BOB)), - received - ); + assert_eq!(basilisk_runtime::Balances::free_balance(AccountId::from(BOB)), received); assert_eq!( basilisk_runtime::Tokens::free_balance(KAR, &basilisk_runtime::Treasury::account_id()), fees @@ -97,28 +98,28 @@ fn basilisk_should_swap_assets_when_receiving_from_otherchain_with_buy() { let amount_out = 20 * UNITS; OtherParachain::execute_with(|| { - let xcm = craft_exchange_asset_xcm::<_, parachain_runtime_mock::RuntimeCall>( + let xcm = craft_exchange_asset_xcm::<_, basilisk_runtime::RuntimeCall>( MultiAsset::from((GeneralIndex(0), 70 * UNITS)), MultiAsset::from((GeneralIndex(CORE_ASSET_ID.into()), amount_out)), BUY, ); //Act - let res = parachain_runtime_mock::PolkadotXcm::execute( - parachain_runtime_mock::RuntimeOrigin::signed(ALICE.into()), + let res = basilisk_runtime::PolkadotXcm::execute( + basilisk_runtime::RuntimeOrigin::signed(ALICE.into()), Box::new(xcm), - Weight::from_ref_time(399_600_000_000), + Weight::from_parts(399_600_000_000, 0), ); assert_ok!(res); //Assert assert_eq!( - parachain_runtime_mock::Balances::free_balance(AccountId::from(ALICE)), + basilisk_runtime::Balances::free_balance(AccountId::from(ALICE)), ALICE_INITIAL_NATIVE_BALANCE_ON_OTHER_PARACHAIN - 100 * UNITS ); assert!(matches!( last_other_para_events(2).first(), - Some(parachain_runtime_mock::RuntimeEvent::XcmpQueue( + Some(basilisk_runtime::RuntimeEvent::XcmpQueue( cumulus_pallet_xcmp_queue::Event::XcmpMessageSent { .. } )) )); @@ -134,7 +135,7 @@ fn basilisk_should_swap_assets_when_receiving_from_otherchain_with_buy() { ); assert_eq!( - basilisk_runtime::Balances::free_balance(&AccountId::from(BOB)), + basilisk_runtime::Balances::free_balance(AccountId::from(BOB)), BOB_INITIAL_BSX_BALANCE + amount_out ); assert_eq!( @@ -144,6 +145,91 @@ fn basilisk_should_swap_assets_when_receiving_from_otherchain_with_buy() { }); } +#[test] +fn basilisk_should_swap_assets_coming_from_karura_when_onchain_route_present() { + //Arrange + TestNet::reset(); + + Basilisk::execute_with(|| { + register_kar(); + assert_ok!(basilisk_runtime::Tokens::deposit(KAR, &CHARLIE.into(), 3000 * UNITS)); + create_xyk_pool_with_amounts(KAR, 100000 * UNITS, BSX, 100000 * UNITS); + create_xyk_pool_with_amounts(BSX, 100000 * UNITS, KSM, 100000 * UNITS); + + //Register KSM location + assert_ok!(basilisk_runtime::AssetRegistry::set_location( + basilisk_runtime::RuntimeOrigin::root(), + KSM, + basilisk_runtime::AssetLocation(MultiLocation::new(0, X1(GeneralIndex(3)))) + )); + + //Register onchain route from KAR to KSM + assert_ok!(basilisk_runtime::Router::set_route( + RuntimeOrigin::signed(CHARLIE.into()), + AssetPair::new(KAR, KSM), + vec![ + Trade { + pool: PoolType::XYK, + asset_in: KAR, + asset_out: BSX, + }, + Trade { + pool: PoolType::XYK, + asset_in: BSX, + asset_out: KSM, + }, + ], + )); + + add_currency_price(KAR, FixedU128::from(1)); + }); + + OtherParachain::execute_with(|| { + let xcm = craft_exchange_asset_xcm::<_, basilisk_runtime::RuntimeCall>( + MultiAsset::from((GeneralIndex(0), 5 * UNITS)), + MultiAsset::from((GeneralIndex(KSM.into()), 2 * UNITS)), + SELL, + ); + //Act + let res = basilisk_runtime::PolkadotXcm::execute( + basilisk_runtime::RuntimeOrigin::signed(ALICE.into()), + Box::new(xcm), + Weight::from_parts(399_600_000_000, 0), + ); + assert_ok!(res); + + //Assert + assert_eq!( + basilisk_runtime::Balances::free_balance(AccountId::from(ALICE)), + ALICE_INITIAL_NATIVE_BALANCE_ON_OTHER_PARACHAIN - 100 * UNITS + ); + + assert!(matches!( + last_other_para_events(2).first(), + Some(basilisk_runtime::RuntimeEvent::XcmpQueue( + cumulus_pallet_xcmp_queue::Event::XcmpMessageSent { .. } + )) + )); + }); + + let fees = 27_500_000_000_000; + Basilisk::execute_with(|| { + assert_eq!( + basilisk_runtime::Tokens::free_balance(KAR, &AccountId::from(BOB)), + 95000000000000 - fees + ); + let received = 4969548790555; + assert_eq!( + basilisk_runtime::Tokens::free_balance(KSM, &AccountId::from(BOB)), + received + ); + assert_eq!( + basilisk_runtime::Tokens::free_balance(KAR, &basilisk_runtime::Treasury::account_id()), + fees + ); + }); +} + fn register_kar() { assert_ok!(basilisk_runtime::AssetRegistry::register( basilisk_runtime::RuntimeOrigin::root(), @@ -240,8 +326,8 @@ fn craft_exchange_asset_xcm, RC: Decode + GetDispatchInfo>( VersionedXcm::V3(message) } -pub fn last_other_para_events(n: usize) -> Vec { - frame_system::Pallet::::events() +pub fn last_other_para_events(n: usize) -> Vec { + frame_system::Pallet::::events() .into_iter() .rev() .take(n) @@ -259,3 +345,26 @@ fn create_xyk_pool(asset_a: u32, asset_b: u32) { 50 * UNITS, )); } + +fn create_xyk_pool_with_amounts(asset_a: u32, amount_a: u128, asset_b: u32, amount_b: u128) { + assert_ok!(Currencies::update_balance( + RuntimeOrigin::root(), + DAVE.into(), + asset_a, + amount_a as i128, + )); + + assert_ok!(Currencies::update_balance( + RuntimeOrigin::root(), + DAVE.into(), + asset_b, + amount_b as i128, + )); + assert_ok!(XYK::create_pool( + RuntimeOrigin::signed(DAVE.into()), + asset_a, + amount_a, + asset_b, + amount_b, + )); +} diff --git a/integration-tests/src/fees.rs b/integration-tests/src/fees.rs index 3e032122992..4f497b92bcf 100644 --- a/integration-tests/src/fees.rs +++ b/integration-tests/src/fees.rs @@ -75,8 +75,8 @@ fn transaction_fees_should_be_as_expected_when_transfer_happen() { #[test] fn transaction_fees_should_be_as_expected_when_nft_is_minted() { Basilisk::execute_with(|| { - let expected_rust_encoded_fees = 48_619 * UNITS / 100; //486.19 - let expected_ui_fees = 48_724 * UNITS / 100; //487.24 + let expected_rust_encoded_fees = 94_764 * UNITS / 100; //947.64 + let expected_ui_fees = 94_869 * UNITS / 100; //948.69 let call = pallet_nft::Call::::mint { collection_id: 1_000_000, @@ -133,8 +133,8 @@ fn transaction_fees_should_be_as_expected_when_nft_is_minted() { #[test] fn transaction_fees_should_be_as_expected_when_nft_collection_is_created() { Basilisk::execute_with(|| { - let expected_rust_encoded_fees = 45_584 * UNITS / 100; //455.84 - let expected_ui_fees = 45_689 * UNITS / 100; //456.89 + let expected_rust_encoded_fees = 76_492 * UNITS / 100; //764.92 + let expected_ui_fees = 76_597 * UNITS / 100; //765.97 let call = pallet_nft::Call::::create_collection { collection_id: 0, diff --git a/integration-tests/src/kusama_test_net.rs b/integration-tests/src/kusama_test_net.rs index fc1eb34490b..ebc15282f6d 100644 --- a/integration-tests/src/kusama_test_net.rs +++ b/integration-tests/src/kusama_test_net.rs @@ -1,7 +1,5 @@ +#![allow(clippy::type_complexity)] #![cfg(test)] -pub use basilisk_runtime::{AccountId, VestingPalletId}; -use pallet_transaction_multi_payment::Price; -use primitives::{AssetId, Balance}; pub const ALICE: [u8; 32] = [4u8; 32]; pub const BOB: [u8; 32] = [5u8; 32]; @@ -43,291 +41,423 @@ pub fn parachain_reserve_account() -> AccountId { polkadot_parachain::primitives::Sibling::from(OTHER_PARA_ID).into_account_truncating() } +pub use basilisk_runtime::{AccountId, VestingPalletId}; use cumulus_primitives_core::ParaId; use cumulus_test_relay_sproof_builder::RelayStateSproofBuilder; use frame_support::assert_ok; -use frame_support::traits::GenesisBuild; -use frame_support::weights::Weight; -use polkadot_primitives::v2::{BlockNumber, MAX_CODE_SIZE, MAX_POV_SIZE}; +use frame_support::traits::OnInitialize; +use pallet_transaction_multi_payment::Price; +pub use pallet_xyk::types::AssetPair; +use polkadot_primitives::v5::{BlockNumber, MAX_CODE_SIZE, MAX_POV_SIZE}; use polkadot_runtime_parachains::configuration::HostConfiguration; use pretty_assertions::assert_eq; -use sp_runtime::traits::AccountIdConversion; +use primitives::{AssetId, Balance}; +use sp_core::storage::Storage; +use sp_runtime::{traits::AccountIdConversion, BuildStorage}; use primitives::constants::chain::CORE_ASSET_ID; -use xcm_emulator::{decl_test_network, decl_test_parachain, decl_test_relay_chain}; - -decl_test_relay_chain! { - pub struct KusamaRelay { - Runtime = kusama_runtime::Runtime, - XcmConfig = kusama_runtime::xcm_config::XcmConfig, - new_ext = kusama_ext(), - } -} - -decl_test_parachain! { - pub struct Basilisk{ - Runtime = basilisk_runtime::Runtime, - RuntimeOrigin = basilisk_runtime::RuntimeOrigin, - XcmpMessageHandler = basilisk_runtime::XcmpQueue, - DmpMessageHandler = basilisk_runtime::DmpQueue, - new_ext = basilisk_ext(), +pub use xcm_emulator::Network; +use xcm_emulator::{decl_test_networks, decl_test_parachains, decl_test_relay_chains, DefaultMessageProcessor}; + +decl_test_relay_chains! { + #[api_version(5)] + pub struct Kusama { + genesis = kusama::genesis(), + on_init = (), + runtime = kusama_runtime, + core = { + MessageProcessor: DefaultMessageProcessor, + SovereignAccountOf: kusama_runtime::xcm_config::SovereignAccountOf, + }, + pallets = { + XcmPallet: kusama_runtime::XcmPallet, + Balances: kusama_runtime::Balances, + Hrmp: kusama_runtime::Hrmp, + } } } -decl_test_parachain! { - pub struct OtherParachain{ - Runtime = parachain_runtime_mock::ParachainRuntime, - RuntimeOrigin = parachain_runtime_mock::RuntimeOrigin, - XcmpMessageHandler = parachain_runtime_mock::XcmpQueue, - DmpMessageHandler = parachain_runtime_mock::DmpQueue, - new_ext = other_parachain_ext(), +decl_test_parachains! { + pub struct Basilisk { + genesis = basilisk::genesis(), + on_init = { + basilisk_runtime::System::set_block_number(1); + // Make sure the prices are up-to-date. + basilisk_runtime::MultiTransactionPayment::on_initialize(1); + }, + runtime = basilisk_runtime, + core = { + XcmpMessageHandler: basilisk_runtime::XcmpQueue, + DmpMessageHandler: basilisk_runtime::DmpQueue, + LocationToAccountId: basilisk_runtime::xcm::LocationToAccountId, + ParachainInfo: basilisk_runtime::ParachainInfo, + }, + pallets = { + PolkadotXcm: basilisk_runtime::PolkadotXcm, + Balances: basilisk_runtime::Balances, + } + }, + pub struct OtherParachain { + genesis = other_parachain::genesis(), + on_init = { + basilisk_runtime::System::set_block_number(1); + // Make sure the prices are up-to-date. + basilisk_runtime::MultiTransactionPayment::on_initialize(1); + }, + runtime = basilisk_runtime, + core = { + XcmpMessageHandler: basilisk_runtime::XcmpQueue, + DmpMessageHandler: basilisk_runtime::DmpQueue, + LocationToAccountId: basilisk_runtime::LocationToAccountId, + ParachainInfo: basilisk_runtime::ParachainInfo, + }, + pallets = { + PolkadotXcm: basilisk_runtime::PolkadotXcm, + Balances: basilisk_runtime::Balances, + } } } -decl_test_network! { +decl_test_networks! { pub struct TestNet { - relay_chain = KusamaRelay, + relay_chain = Kusama, parachains = vec![ - (2000, OtherParachain), - (2090, Basilisk), + OtherParachain, + Basilisk, ], - } + bridge = () + }, } -fn default_parachains_host_configuration() -> HostConfiguration { - HostConfiguration { - minimum_validation_upgrade_delay: 5, - validation_upgrade_cooldown: 5u32, - validation_upgrade_delay: 5, - code_retention_period: 1200, - max_code_size: MAX_CODE_SIZE, - max_pov_size: MAX_POV_SIZE, - max_head_data_size: 32 * 1024, - group_rotation_frequency: 20, - chain_availability_period: 4, - thread_availability_period: 4, - max_upward_queue_count: 8, - max_upward_queue_size: 1024 * 1024, - max_downward_message_size: 1024, - ump_service_total_weight: Weight::from_ref_time(4 * 1_000_000_000), - max_upward_message_size: 50 * 1024, - max_upward_message_num_per_candidate: 5, - hrmp_sender_deposit: 0, - hrmp_recipient_deposit: 0, - hrmp_channel_max_capacity: 8, - hrmp_channel_max_total_size: 8 * 1024, - hrmp_max_parachain_inbound_channels: 4, - hrmp_max_parathread_inbound_channels: 4, - hrmp_channel_max_message_size: 1024 * 1024, - hrmp_max_parachain_outbound_channels: 4, - hrmp_max_parathread_outbound_channels: 4, - hrmp_max_message_num_per_candidate: 5, - dispute_period: 6, - no_show_slots: 2, - n_delay_tranches: 25, - needed_approvals: 2, - relay_vrf_modulo_samples: 2, - zeroth_delay_tranche_width: 0, - ..Default::default() +pub mod kusama { + use super::*; + + fn get_host_configuration() -> HostConfiguration { + HostConfiguration { + minimum_validation_upgrade_delay: 5, + validation_upgrade_cooldown: 5u32, + validation_upgrade_delay: 5, + code_retention_period: 1200, + max_code_size: MAX_CODE_SIZE, + max_pov_size: MAX_POV_SIZE, + max_head_data_size: 32 * 1024, + group_rotation_frequency: 20, + paras_availability_period: 4, + max_upward_queue_count: 8, + max_upward_queue_size: 1024 * 1024, + max_downward_message_size: 1024, + max_upward_message_size: 50 * 1024, + max_upward_message_num_per_candidate: 5, + hrmp_sender_deposit: 0, + hrmp_recipient_deposit: 0, + hrmp_channel_max_capacity: 8, + hrmp_channel_max_total_size: 8 * 1024, + hrmp_max_parachain_inbound_channels: 4, + hrmp_channel_max_message_size: 1024 * 1024, + hrmp_max_parachain_outbound_channels: 4, + hrmp_max_message_num_per_candidate: 5, + dispute_period: 6, + no_show_slots: 2, + n_delay_tranches: 25, + needed_approvals: 2, + relay_vrf_modulo_samples: 2, + zeroth_delay_tranche_width: 0, + ..Default::default() + } } -} - -pub fn kusama_ext() -> sp_io::TestExternalities { - use kusama_runtime::{Runtime, System}; - - let mut t = frame_system::GenesisConfig::default() - .build_storage::() - .unwrap(); - pallet_balances::GenesisConfig:: { - balances: vec![ - (AccountId::from(ALICE), 2002 * UNITS), - (ParaId::from(BASILISK_PARA_ID).into_account_truncating(), 10 * UNITS), - ], + use pallet_im_online::sr25519::AuthorityId as ImOnlineId; + use polkadot_primitives::{AssignmentId, ValidatorId}; + use polkadot_service::chain_spec::get_authority_keys_from_seed_no_beefy; + use sc_consensus_grandpa::AuthorityId as GrandpaId; + use sp_authority_discovery::AuthorityId as AuthorityDiscoveryId; + use sp_consensus_babe::AuthorityId as BabeId; + use sp_consensus_beefy::ecdsa_crypto::AuthorityId as BeefyId; + + use sp_core::{Pair, Public}; + + /// Helper function to generate a crypto pair from seed + fn get_from_seed(seed: &str) -> ::Public { + TPublic::Pair::from_string(&format!("//{}", seed), None) + .expect("static values are valid; qed") + .public() } - .assimilate_storage(&mut t) - .unwrap(); - polkadot_runtime_parachains::configuration::GenesisConfig:: { - config: default_parachains_host_configuration(), + fn session_keys( + babe: BabeId, + grandpa: GrandpaId, + im_online: ImOnlineId, + para_validator: ValidatorId, + para_assignment: AssignmentId, + authority_discovery: AuthorityDiscoveryId, + beefy: BeefyId, + ) -> kusama_runtime::SessionKeys { + kusama_runtime::SessionKeys { + babe, + grandpa, + im_online, + para_validator, + para_assignment, + authority_discovery, + beefy, + } } - .assimilate_storage(&mut t) - .unwrap(); - >::assimilate_storage( - &pallet_xcm::GenesisConfig { - safe_xcm_version: Some(3), - }, - &mut t, - ) - .unwrap(); - - let mut ext = sp_io::TestExternalities::new(t); - ext.execute_with(|| System::set_block_number(1)); - ext -} + pub fn initial_authorities() -> Vec<( + AccountId, + AccountId, + BabeId, + GrandpaId, + ImOnlineId, + ValidatorId, + AssignmentId, + AuthorityDiscoveryId, + )> { + vec![get_authority_keys_from_seed_no_beefy("Alice")] + } -pub fn basilisk_ext() -> sp_io::TestExternalities { - use basilisk_runtime::{MultiTransactionPayment, NativeExistentialDeposit, Runtime, System}; - use frame_support::traits::OnInitialize; + pub fn genesis() -> Storage { + let genesis_config = kusama_runtime::RuntimeGenesisConfig { + balances: kusama_runtime::BalancesConfig { + balances: vec![ + (AccountId::from(ALICE), 2002 * UNITS), + (ParaId::from(BASILISK_PARA_ID).into_account_truncating(), 10 * UNITS), + ], + }, + session: kusama_runtime::SessionConfig { + keys: initial_authorities() + .iter() + .map(|x| { + ( + x.0.clone(), + x.0.clone(), + session_keys( + x.2.clone(), + x.3.clone(), + x.4.clone(), + x.5.clone(), + x.6.clone(), + x.7.clone(), + get_from_seed::("Alice"), + ), + ) + }) + .collect::>(), + }, + babe: kusama_runtime::BabeConfig { + authorities: Default::default(), + epoch_config: Some(kusama_runtime::BABE_GENESIS_EPOCH_CONFIG), + ..Default::default() + }, + configuration: kusama_runtime::ConfigurationConfig { + config: get_host_configuration(), + }, - let existential_deposit = NativeExistentialDeposit::get(); + xcm_pallet: kusama_runtime::XcmPalletConfig { + safe_xcm_version: Some(3), + ..Default::default() + }, + ..Default::default() + }; - let mut t = frame_system::GenesisConfig::default() - .build_storage::() - .unwrap(); + genesis_config.build_storage().unwrap() + } +} - pallet_balances::GenesisConfig:: { - balances: vec![ - (AccountId::from(ALICE), ALICE_INITIAL_BSX_BALANCE), - (AccountId::from(BOB), BOB_INITIAL_BSX_BALANCE), - (AccountId::from(CHARLIE), CHARLIE_INITIAL_BSX_BALANCE), - (AccountId::from(DAVE), DAVE_INITIAL_BSX_BALANCE), - (vesting_account(), VESTING_ACCOUNT_INITIAL_BSX_BALANCE), - ], +pub mod basilisk { + use super::*; + use sp_core::{sr25519, Pair, Public}; + use sp_runtime::{ + traits::{IdentifyAccount, Verify}, + MultiSignature, + }; + type AccountPublic = ::Signer; + + /// Helper function to generate a crypto pair from seed + fn get_from_seed(seed: &str) -> ::Public { + TPublic::Pair::from_string(&format!("//{}", seed), None) + .expect("static values are valid; qed") + .public() } - .assimilate_storage(&mut t) - .unwrap(); - - pallet_asset_registry::GenesisConfig:: { - registered_assets: vec![ - (b"aUSD".to_vec(), 1_000_000u128, Some(AUSD)), - (b"MOVR".to_vec(), 1_000u128, Some(MOVR)), - (b"KSMN".to_vec(), 1_000u128, Some(KSM)), - ( - b"NEW_BOOTSRAPPED_TOKEN".to_vec(), - 1_000u128, - Some(NEW_BOOTSTRAPPED_TOKEN), - ), - ], - native_asset_name: b"BSX".to_vec(), - native_existential_deposit: existential_deposit, + + /// Helper function to generate an account ID from seed. + fn get_account_id_from_seed(seed: &str) -> AccountId + where + AccountPublic: From<::Public>, + { + AccountPublic::from(get_from_seed::(seed)).into_account() } - .assimilate_storage(&mut t) - .unwrap(); - >::assimilate_storage( - ¶chain_info::GenesisConfig { - parachain_id: BASILISK_PARA_ID.into(), - }, - &mut t, - ) - .unwrap(); - orml_tokens::GenesisConfig:: { - balances: vec![ - (AccountId::from(ALICE), AUSD, ALICE_INITIAL_AUSD_BALANCE), - (AccountId::from(ALICE), MOVR, ALICE_INITIAL_MOVR_BALANCE), - (AccountId::from(ALICE), KSM, ALICE_INITIAL_KSM_BALANCE), + pub use sp_consensus_aura::sr25519::AuthorityId as AuraId; + + pub fn invulnerables() -> Vec<(AccountId, AuraId)> { + vec![ ( - AccountId::from(ALICE), - NEW_BOOTSTRAPPED_TOKEN, - ALICE_INITIAL_NEW_BOOTSTRAPPED_TOKEN_BALANCE, + get_account_id_from_seed::("Alice"), + get_from_seed::("Alice"), ), - (AccountId::from(BOB), AUSD, BOB_INITIAL_AUSD_BALANCE), ( - AccountId::from(BOB), - NEW_BOOTSTRAPPED_TOKEN, - BOB_INITIAL_NEW_BOOTSTRAPPED_TOKEN_BALANCE, + get_account_id_from_seed::("Bob"), + get_from_seed::("Bob"), ), - (AccountId::from(CHARLIE), AUSD, CHARLIE_INITIAL_AUSD_BALANCE), - (AccountId::from(DAVE), AUSD, DAVE_INITIAL_AUSD_BALANCE), - ], - } - .assimilate_storage(&mut t) - .unwrap(); - - >::assimilate_storage( - &pallet_xcm::GenesisConfig { - safe_xcm_version: Some(3), - }, - &mut t, - ) - .unwrap(); - - pallet_transaction_multi_payment::GenesisConfig:: { - currencies: vec![(AUSD, Price::from_inner(462_962_963_000_u128))], //0.000_000_462_962_963 - account_currencies: vec![], + ] } - .assimilate_storage(&mut t) - .unwrap(); - - let mut ext = sp_io::TestExternalities::new(t); - ext.execute_with(|| { - System::set_block_number(1); - // Make sure the prices are up-to-date. - MultiTransactionPayment::on_initialize(1); - }); - ext -} - -pub fn other_parachain_ext() -> sp_io::TestExternalities { - use frame_support::traits::OnInitialize; - use parachain_runtime_mock::{MultiTransactionPayment, NativeExistentialDeposit, ParachainRuntime, System}; - let existential_deposit = NativeExistentialDeposit::get(); + pub fn genesis() -> Storage { + use basilisk_runtime::NativeExistentialDeposit; - let mut t = frame_system::GenesisConfig::default() - .build_storage::() - .unwrap(); + let existential_deposit = NativeExistentialDeposit::get(); - pallet_balances::GenesisConfig:: { - balances: vec![(AccountId::from(ALICE), ALICE_INITIAL_NATIVE_BALANCE_ON_OTHER_PARACHAIN)], - } - .assimilate_storage(&mut t) - .unwrap(); + let genesis_config = basilisk_runtime::RuntimeGenesisConfig { + balances: basilisk_runtime::BalancesConfig { + balances: vec![ + (AccountId::from(ALICE), ALICE_INITIAL_BSX_BALANCE), + (AccountId::from(BOB), BOB_INITIAL_BSX_BALANCE), + (AccountId::from(CHARLIE), CHARLIE_INITIAL_BSX_BALANCE), + (AccountId::from(DAVE), DAVE_INITIAL_BSX_BALANCE), + (vesting_account(), VESTING_ACCOUNT_INITIAL_BSX_BALANCE), + ], + }, + collator_selection: basilisk_runtime::CollatorSelectionConfig { + invulnerables: invulnerables().iter().cloned().map(|(acc, _)| acc).collect(), + candidacy_bond: 2 * UNITS, + ..Default::default() + }, + session: basilisk_runtime::SessionConfig { + keys: invulnerables() + .into_iter() + .map(|(acc, aura)| { + ( + acc.clone(), // account id + acc, // validator id + basilisk_runtime::opaque::SessionKeys { aura }, // session keys + ) + }) + .collect(), + }, + asset_registry: basilisk_runtime::AssetRegistryConfig { + registered_assets: vec![ + (b"aUSD".to_vec(), 1_000_000u128, Some(AUSD)), + (b"MOVR".to_vec(), 1_000u128, Some(MOVR)), + (b"KSMN".to_vec(), 1_000u128, Some(KSM)), + ( + b"NEW_BOOTSRAPPED_TOKEN".to_vec(), + 1_000u128, + Some(NEW_BOOTSTRAPPED_TOKEN), + ), + ], + native_asset_name: b"BSX".to_vec(), + native_existential_deposit: existential_deposit, + }, + parachain_info: basilisk_runtime::ParachainInfoConfig { + parachain_id: BASILISK_PARA_ID.into(), + ..Default::default() + }, + tokens: basilisk_runtime::TokensConfig { + balances: vec![ + (AccountId::from(ALICE), AUSD, ALICE_INITIAL_AUSD_BALANCE), + (AccountId::from(ALICE), MOVR, ALICE_INITIAL_MOVR_BALANCE), + (AccountId::from(ALICE), KSM, ALICE_INITIAL_KSM_BALANCE), + ( + AccountId::from(ALICE), + NEW_BOOTSTRAPPED_TOKEN, + ALICE_INITIAL_NEW_BOOTSTRAPPED_TOKEN_BALANCE, + ), + (AccountId::from(BOB), AUSD, BOB_INITIAL_AUSD_BALANCE), + ( + AccountId::from(BOB), + NEW_BOOTSTRAPPED_TOKEN, + BOB_INITIAL_NEW_BOOTSTRAPPED_TOKEN_BALANCE, + ), + (AccountId::from(CHARLIE), AUSD, CHARLIE_INITIAL_AUSD_BALANCE), + (AccountId::from(DAVE), AUSD, DAVE_INITIAL_AUSD_BALANCE), + ], + }, + polkadot_xcm: basilisk_runtime::PolkadotXcmConfig { + safe_xcm_version: Some(3), + ..Default::default() + }, + multi_transaction_payment: basilisk_runtime::MultiTransactionPaymentConfig { + currencies: vec![(AUSD, Price::from_inner(462_962_963_000_u128))], //0.000_000_462_962_963 + account_currencies: vec![], + }, + duster: basilisk_runtime::DusterConfig { + account_blacklist: vec![basilisk_runtime::Treasury::account_id()], + reward_account: Some(basilisk_runtime::Treasury::account_id()), + dust_account: Some(basilisk_runtime::Treasury::account_id()), + }, + ..Default::default() + }; - pallet_asset_registry::GenesisConfig:: { - registered_assets: vec![(b"AUSD".to_vec(), 1_000_000u128, Some(AUSD))], - native_asset_name: b"KAR".to_vec(), - native_existential_deposit: existential_deposit, + genesis_config.build_storage().unwrap() } - .assimilate_storage(&mut t) - .unwrap(); +} - >::assimilate_storage( - ¶chain_info::GenesisConfig { - parachain_id: OTHER_PARA_ID.into(), - }, - &mut t, - ) - .unwrap(); +pub mod other_parachain { + use super::*; - orml_tokens::GenesisConfig:: { - balances: vec![ - ( - AccountId::from(ALICE), - AUSD, - ALICE_INITIAL_AUSD_BALANCE_ON_OTHER_PARACHAIN, - ), - (AccountId::from(BOB), AUSD, BOB_INITIAL_AUSD_BALANCE_ON_OTHER_PARACHAIN), - ], - } - .assimilate_storage(&mut t) - .unwrap(); + pub fn genesis() -> Storage { + use basilisk_runtime::NativeExistentialDeposit; - >::assimilate_storage( - &pallet_xcm::GenesisConfig { - safe_xcm_version: Some(3), - }, - &mut t, - ) - .unwrap(); + let existential_deposit = NativeExistentialDeposit::get(); - pallet_transaction_multi_payment::GenesisConfig:: { - currencies: vec![(1, Price::from_inner(462_962_963_000_u128))], //0.000_000_462_962_963 - account_currencies: vec![], + let genesis_config = basilisk_runtime::RuntimeGenesisConfig { + balances: basilisk_runtime::BalancesConfig { + balances: vec![(AccountId::from(ALICE), ALICE_INITIAL_NATIVE_BALANCE_ON_OTHER_PARACHAIN)], + }, + collator_selection: basilisk_runtime::CollatorSelectionConfig { + invulnerables: basilisk::invulnerables().iter().cloned().map(|(acc, _)| acc).collect(), + candidacy_bond: 2 * UNITS, + ..Default::default() + }, + session: basilisk_runtime::SessionConfig { + keys: basilisk::invulnerables() + .into_iter() + .map(|(acc, aura)| { + ( + acc.clone(), // account id + acc, // validator id + basilisk_runtime::opaque::SessionKeys { aura }, // session keys + ) + }) + .collect(), + }, + asset_registry: basilisk_runtime::AssetRegistryConfig { + registered_assets: vec![(b"AUSD".to_vec(), 1_000_000u128, Some(AUSD))], + native_asset_name: b"KAR".to_vec(), + native_existential_deposit: existential_deposit, + }, + parachain_info: basilisk_runtime::ParachainInfoConfig { + parachain_id: OTHER_PARA_ID.into(), + ..Default::default() + }, + tokens: basilisk_runtime::TokensConfig { + balances: vec![ + ( + AccountId::from(ALICE), + AUSD, + ALICE_INITIAL_AUSD_BALANCE_ON_OTHER_PARACHAIN, + ), + (AccountId::from(BOB), AUSD, BOB_INITIAL_AUSD_BALANCE_ON_OTHER_PARACHAIN), + ], + }, + polkadot_xcm: basilisk_runtime::PolkadotXcmConfig { + safe_xcm_version: Some(3), + ..Default::default() + }, + multi_transaction_payment: basilisk_runtime::MultiTransactionPaymentConfig { + currencies: vec![(AUSD, Price::from_inner(462_962_963_000_u128))], //0.000_000_462_962_963 + account_currencies: vec![], + }, + duster: basilisk_runtime::DusterConfig { + account_blacklist: vec![basilisk_runtime::Treasury::account_id()], + reward_account: Some(basilisk_runtime::Treasury::account_id()), + dust_account: Some(basilisk_runtime::Treasury::account_id()), + }, + ..Default::default() + }; + genesis_config.build_storage().unwrap() } - .assimilate_storage(&mut t) - .unwrap(); - - let mut ext = sp_io::TestExternalities::new(t); - ext.execute_with(|| { - System::set_block_number(1); - // Make sure the prices are up-to-date. - MultiTransactionPayment::on_initialize(1); - }); - - ext } pub fn last_basilisk_events(n: usize) -> Vec { @@ -344,8 +474,8 @@ pub fn expect_basilisk_events(e: Vec) { assert_eq!(last_basilisk_events(e.len()), e); } -pub fn last_parachain_events(n: usize) -> Vec { - frame_system::Pallet::::events() +pub fn last_parachain_events(n: usize) -> Vec { + frame_system::Pallet::::events() .into_iter() .rev() .take(n) @@ -361,7 +491,6 @@ pub fn vesting_account() -> AccountId { pub fn set_relaychain_block_number(number: BlockNumber) { use basilisk_runtime::ParachainSystem; use basilisk_runtime::RuntimeOrigin; - use frame_support::traits::OnInitialize; kusama_run_to_block(number); //We need to set block number this way as well because tarpaulin code coverage tool does not like the way how we set the block number with `cumulus-test-relay-sproof-builder` package @@ -386,7 +515,8 @@ pub fn set_relaychain_block_number(number: BlockNumber) { } pub fn kusama_run_to_block(to: BlockNumber) { - use frame_support::traits::{OnFinalize, OnInitialize}; + use frame_support::traits::OnFinalize; + while kusama_runtime::System::block_number() < to { let b = kusama_runtime::System::block_number(); kusama_runtime::System::on_finalize(b); diff --git a/integration-tests/src/lib.rs b/integration-tests/src/lib.rs index 64ab0f6adc6..e877e58f7be 100644 --- a/integration-tests/src/lib.rs +++ b/integration-tests/src/lib.rs @@ -1,3 +1,6 @@ +// Runtimes with enabled `runtime-benchmarks` feature behave differently. +// Disable the integration tests when this feature is enabled. +#![cfg(not(feature = "runtime-benchmarks"))] mod call_filter; mod cross_chain_transfer; mod exchange_asset; diff --git a/integration-tests/src/non_native_fee.rs b/integration-tests/src/non_native_fee.rs index 1a640700841..be98b2dc9cb 100644 --- a/integration-tests/src/non_native_fee.rs +++ b/integration-tests/src/non_native_fee.rs @@ -6,34 +6,33 @@ use basilisk_runtime::{Balances, Currencies, MultiTransactionPayment, RuntimeOri use frame_support::{ assert_err, assert_ok, - dispatch::{DispatchInfo, Weight}, + dispatch::DispatchInfo, sp_runtime::{ traits::SignedExtension, transaction_validity::{InvalidTransaction, TransactionValidityError}, }, traits::{OnFinalize, OnInitialize}, + weights::Weight, }; -use hydradx_traits::{pools::SpotPriceProvider, NativePriceOracle, AMM}; +use hydradx_traits::AMM; use orml_traits::currency::MultiCurrency; use pallet_asset_registry::AssetType; use pallet_transaction_multi_payment::Price; -use pallet_xyk::XYKSpotPrice; -use polkadot_primitives::v2::BlockNumber; -use primitives::{asset::AssetPair, AssetId}; +use primitives::AssetId; use xcm_emulator::TestExt; -pub fn basilisk_run_to_block(to: BlockNumber) { - while basilisk_runtime::System::block_number() < to { - let b = basilisk_runtime::System::block_number(); +pub fn basilisk_run_to_next_block() { + let b = basilisk_runtime::System::block_number(); - basilisk_runtime::System::on_finalize(b); - basilisk_runtime::MultiTransactionPayment::on_finalize(b); + basilisk_runtime::System::on_finalize(b); + basilisk_runtime::MultiTransactionPayment::on_finalize(b); + basilisk_runtime::EmaOracle::on_finalize(b); - basilisk_runtime::System::on_initialize(b + 1); - basilisk_runtime::MultiTransactionPayment::on_initialize(b + 1); + basilisk_runtime::System::on_initialize(b + 1); + basilisk_runtime::MultiTransactionPayment::on_initialize(b + 1); + basilisk_runtime::EmaOracle::on_initialize(b + 1); - basilisk_runtime::System::set_block_number(b + 1); - } + basilisk_runtime::System::set_block_number(b + 1); } #[test] @@ -46,7 +45,7 @@ fn non_native_fee_payment_works_with_configured_price() { ); let info = DispatchInfo { - weight: Weight::from_ref_time(106_957_000), + weight: Weight::from_parts(106_957_000, 0), ..Default::default() }; let len: usize = 10; @@ -66,7 +65,7 @@ fn non_native_fee_payment_works_with_configured_price() { } #[test] -fn non_native_fee_payment_works_with_xyk_spot_price() { +fn non_native_fee_payment_works_with_oracle_price_based_on_onchain_route() { TestNet::reset(); const NEW_TOKEN: AssetId = 42; @@ -76,7 +75,7 @@ fn non_native_fee_payment_works_with_xyk_spot_price() { currency: NEW_TOKEN, }); let info = DispatchInfo { - weight: Weight::from_ref_time(106_957_000), + weight: Weight::from_parts(106_957_000, 0), ..Default::default() }; let len: usize = 10; @@ -94,11 +93,10 @@ fn non_native_fee_payment_works_with_xyk_spot_price() { None, )); - assert_ok!(basilisk_runtime::Balances::set_balance( + assert_ok!(basilisk_runtime::Balances::force_set_balance( basilisk_runtime::RuntimeOrigin::root(), ALICE.into(), 2_000_000_000_000 * UNITS, - 0, )); assert_ok!(basilisk_runtime::Tokens::set_balance( @@ -147,14 +145,6 @@ fn non_native_fee_payment_works_with_xyk_spot_price() { asset_out: NEW_TOKEN, })); - let spot_price = XYKSpotPrice::::spot_price(NEW_TOKEN, BSX); - assert_eq!(spot_price, Some(Price::from_float(0.5))); - - basilisk_run_to_block(2); - - let pallet_price = basilisk_runtime::MultiTransactionPayment::price(NEW_TOKEN); - assert_eq!(spot_price, pallet_price); - assert_ok!(basilisk_runtime::XYK::buy( basilisk_runtime::RuntimeOrigin::signed(ALICE.into()), BSX, @@ -164,7 +154,7 @@ fn non_native_fee_payment_works_with_xyk_spot_price() { false, )); - basilisk_run_to_block(3); + basilisk_run_to_next_block(); // pay with the new token assert_ok!( @@ -188,10 +178,7 @@ fn fee_currency_on_account_lifecycle() { TestNet::reset(); Basilisk::execute_with(|| { - assert_eq!( - MultiTransactionPayment::get_currency(&AccountId::from(HITCHHIKER)), - None - ); + assert_eq!(MultiTransactionPayment::get_currency(AccountId::from(HITCHHIKER)), None); // ------------ set on create ------------ assert_ok!(Currencies::transfer( @@ -206,7 +193,7 @@ fn fee_currency_on_account_lifecycle() { 50_000_000_000_000 ); assert_eq!( - MultiTransactionPayment::get_currency(&AccountId::from(HITCHHIKER)), + MultiTransactionPayment::get_currency(AccountId::from(HITCHHIKER)), Some(1) ); @@ -218,10 +205,7 @@ fn fee_currency_on_account_lifecycle() { false, )); - assert_eq!( - MultiTransactionPayment::get_currency(&AccountId::from(HITCHHIKER)), - None - ); + assert_eq!(MultiTransactionPayment::get_currency(AccountId::from(HITCHHIKER)), None); }); } @@ -229,11 +213,10 @@ fn fee_currency_on_account_lifecycle() { fn fee_currency_should_not_change_when_account_holds_native_currency_already() { TestNet::reset(); Basilisk::execute_with(|| { - assert_ok!(Balances::set_balance( + assert_ok!(Balances::force_set_balance( RuntimeOrigin::root(), HITCHHIKER.into(), UNITS, - 0, )); assert_ok!(Currencies::transfer( @@ -243,11 +226,8 @@ fn fee_currency_should_not_change_when_account_holds_native_currency_already() { 50_000_000_000_000, )); - assert_eq!(Balances::free_balance(&AccountId::from(HITCHHIKER)), UNITS); - assert_eq!( - MultiTransactionPayment::get_currency(&AccountId::from(HITCHHIKER)), - None - ); + assert_eq!(Balances::free_balance(AccountId::from(HITCHHIKER)), UNITS); + assert_eq!(MultiTransactionPayment::get_currency(AccountId::from(HITCHHIKER)), None); }); } @@ -270,7 +250,7 @@ fn fee_currency_should_not_change_when_account_holds_other_token_already() { )); assert_eq!( - MultiTransactionPayment::get_currency(&AccountId::from(HITCHHIKER)), + MultiTransactionPayment::get_currency(AccountId::from(HITCHHIKER)), Some(1) ); }); @@ -300,9 +280,6 @@ fn fee_currency_should_reset_to_default_when_account_spends_tokens() { false, )); - assert_eq!( - MultiTransactionPayment::get_currency(&AccountId::from(HITCHHIKER)), - None - ); + assert_eq!(MultiTransactionPayment::get_currency(AccountId::from(HITCHHIKER)), None); }); } diff --git a/integration-tests/src/oracle.rs b/integration-tests/src/oracle.rs index 10e0b2c6762..72e97bc25b6 100644 --- a/integration-tests/src/oracle.rs +++ b/integration-tests/src/oracle.rs @@ -2,32 +2,27 @@ use crate::kusama_test_net::*; -use basilisk_runtime::{EmaOracle, RuntimeOrigin, XYK}; +use basilisk_runtime::{EmaOracle, RuntimeOrigin, XYKOracleSourceIdentifier, XYK}; use frame_support::{ assert_ok, traits::{OnFinalize, OnInitialize}, }; use hydradx_traits::{AggregatedPriceOracle, OraclePeriod::*}; use pallet_ema_oracle::OracleError; -use polkadot_primitives::v2::BlockNumber; use xcm_emulator::TestExt; -pub fn basilisk_run_to_block(to: BlockNumber) { - while basilisk_runtime::System::block_number() < to { - let b = basilisk_runtime::System::block_number(); +pub fn basilisk_run_to_next_block() { + let b = basilisk_runtime::System::block_number(); - basilisk_runtime::System::on_finalize(b); - basilisk_runtime::EmaOracle::on_finalize(b); + basilisk_runtime::System::on_finalize(b); + basilisk_runtime::EmaOracle::on_finalize(b); - basilisk_runtime::System::on_initialize(b + 1); - basilisk_runtime::EmaOracle::on_initialize(b + 1); + basilisk_runtime::System::on_initialize(b + 1); + basilisk_runtime::EmaOracle::on_initialize(b + 1); - basilisk_runtime::System::set_block_number(b + 1); - } + basilisk_runtime::System::set_block_number(b + 1); } -use pallet_xyk::SOURCE; - #[test] fn xyk_trades_are_ingested_into_oracle() { TestNet::reset(); @@ -37,7 +32,7 @@ fn xyk_trades_are_ingested_into_oracle() { Basilisk::execute_with(|| { // arrange - basilisk_run_to_block(2); + basilisk_run_to_next_block(); assert_ok!(XYK::create_pool( RuntimeOrigin::signed(ALICE.into()), @@ -57,18 +52,30 @@ fn xyk_trades_are_ingested_into_oracle() { // act // will store the data received in the sell as oracle values - basilisk_run_to_block(3); + basilisk_run_to_next_block(); // assert let expected = ((105000000000000, 190504761904760).into(), 0); - assert_eq!(EmaOracle::get_price(asset_a, asset_b, LastBlock, SOURCE), Ok(expected)); + assert_eq!( + EmaOracle::get_price(asset_a, asset_b, LastBlock, XYKOracleSourceIdentifier::get()), + Ok(expected) + ); // ten minutes oracle not configured/supported assert_eq!( - EmaOracle::get_price(asset_a, asset_b, TenMinutes, SOURCE), + EmaOracle::get_price(asset_a, asset_b, TenMinutes, XYKOracleSourceIdentifier::get()), Err(OracleError::NotPresent) ); - assert_eq!(EmaOracle::get_price(asset_a, asset_b, Hour, SOURCE), Ok(expected)); - assert_eq!(EmaOracle::get_price(asset_a, asset_b, Day, SOURCE), Ok(expected)); - assert_eq!(EmaOracle::get_price(asset_a, asset_b, Week, SOURCE), Ok(expected)); + assert_eq!( + EmaOracle::get_price(asset_a, asset_b, Hour, XYKOracleSourceIdentifier::get()), + Ok(expected) + ); + assert_eq!( + EmaOracle::get_price(asset_a, asset_b, Day, XYKOracleSourceIdentifier::get()), + Ok(expected) + ); + assert_eq!( + EmaOracle::get_price(asset_a, asset_b, Week, XYKOracleSourceIdentifier::get()), + Ok(expected) + ); }); } diff --git a/integration-tests/src/router.rs b/integration-tests/src/router.rs index a53bc5d984e..a89d85301b0 100644 --- a/integration-tests/src/router.rs +++ b/integration-tests/src/router.rs @@ -13,7 +13,7 @@ use pallet_lbp::WeightCurveType; use frame_support::assert_ok; use orml_traits::MultiCurrency; -use primitives::asset::AssetPair; +use pallet_lbp::AssetPair; const TRADER: [u8; 32] = BOB; @@ -75,7 +75,7 @@ mod router_different_pools_tests { )); //Assert - let amount_out = 1208552472394; + let amount_out = 1208552547698; assert_trader_non_native_balance!(BOB_INITIAL_AUSD_BALANCE - amount_to_sell, AUSD); assert_trader_bsx_balance!(BOB_INITIAL_BSX_BALANCE); @@ -135,7 +135,7 @@ mod router_different_pools_tests { )); //Assert - let amount_in = 8049720201692; + let amount_in = 8049719643050; assert_trader_non_native_balance!(BOB_INITIAL_AUSD_BALANCE - amount_in, AUSD); assert_trader_bsx_balance!(BOB_INITIAL_BSX_BALANCE); @@ -832,7 +832,7 @@ mod lbp_router_tests { )); //Assert - let amount_out = 5304848460209; + let amount_out = 5304848794461; assert_trader_bsx_balance!(BOB_INITIAL_BSX_BALANCE - amount_to_sell); assert_trader_non_native_balance!( @@ -879,7 +879,7 @@ mod lbp_router_tests { )); //Assert - let amount_out = 15853065839194; + let amount_out = 15853064919440; assert_trader_non_native_balance!( BOB_INITIAL_NEW_BOOTSTRAPPED_TOKEN_BALANCE - amount_to_sell, @@ -934,7 +934,7 @@ mod lbp_router_tests { )); //Assert - let amount_out = 2894653262401; + let amount_out = 2894653623153; assert_trader_bsx_balance!(BOB_INITIAL_BSX_BALANCE - amount_to_sell); assert_trader_non_native_balance!(BOB_INITIAL_NEW_BOOTSTRAPPED_TOKEN_BALANCE, NEW_BOOTSTRAPPED_TOKEN); @@ -987,7 +987,7 @@ mod lbp_router_tests { )); //Assert - let amount_out = 23648946648916; + let amount_out = 23648944192390; assert_trader_bsx_balance!(BOB_INITIAL_BSX_BALANCE - amount_to_sell); assert_trader_non_native_balance!(BOB_INITIAL_NEW_BOOTSTRAPPED_TOKEN_BALANCE, NEW_BOOTSTRAPPED_TOKEN); @@ -1009,7 +1009,7 @@ mod lbp_router_tests { let amount_to_sell = 10 * UNITS; let limit = 0; - let received_amount_out = 5304848460209; + let received_amount_out = 5304848794461; Basilisk::execute_with(|| { //Arrange @@ -1104,7 +1104,7 @@ mod lbp_router_tests { )); //Assert - let amount_in = 19944392706756; + let amount_in = 19944391321918; assert_trader_bsx_balance!(BOB_INITIAL_BSX_BALANCE - amount_in); assert_trader_non_native_balance!( @@ -1151,7 +1151,7 @@ mod lbp_router_tests { )); //Assert - let amount_in = 6045520606503; + let amount_in = 6045520997664; assert_trader_bsx_balance!(BOB_INITIAL_BSX_BALANCE + amount_to_buy); assert_trader_non_native_balance!( @@ -1206,7 +1206,7 @@ mod lbp_router_tests { )); //Assert - let amount_in = 3244461635777; + let amount_in = 3244461218396; assert_trader_bsx_balance!(BOB_INITIAL_BSX_BALANCE - amount_in); assert_trader_non_native_balance!(BOB_INITIAL_NEW_BOOTSTRAPPED_TOKEN_BALANCE, NEW_BOOTSTRAPPED_TOKEN); @@ -1259,7 +1259,7 @@ mod lbp_router_tests { )); //Assert - let amount_in = 322733714720; + let amount_in = 322733757240; assert_trader_bsx_balance!(BOB_INITIAL_BSX_BALANCE - amount_in); assert_trader_non_native_balance!(BOB_INITIAL_NEW_BOOTSTRAPPED_TOKEN_BALANCE, NEW_BOOTSTRAPPED_TOKEN); @@ -1281,7 +1281,7 @@ mod lbp_router_tests { let amount_to_buy = 10 * UNITS; let limit = 100 * UNITS; - let spent_amount_in = 19944392706756; + let spent_amount_in = 19944391321918; Basilisk::execute_with(|| { //Arrange diff --git a/integration-tests/src/transact_call_filter.rs b/integration-tests/src/transact_call_filter.rs index 9dc9b3a92c7..a0bb626b355 100644 --- a/integration-tests/src/transact_call_filter.rs +++ b/integration-tests/src/transact_call_filter.rs @@ -1,7 +1,7 @@ #![cfg(test)] use crate::kusama_test_net::*; -use frame_support::{assert_ok, weights::Weight}; +use frame_support::{assert_ok, dispatch::GetDispatchInfo, weights::Weight}; use sp_runtime::codec::Encode; use polkadot_xcm::latest::prelude::*; @@ -49,7 +49,7 @@ fn allowed_transact_call_should_pass_filter() { weight_limit: Unlimited, }, Transact { - require_weight_at_most: Weight::from_parts(10_000_000_000, 0u64), + require_weight_at_most: call.get_dispatch_info().weight, origin_kind: OriginKind::SovereignAccount, call: basilisk_runtime::RuntimeCall::Balances(call).encode().into(), }, @@ -66,7 +66,7 @@ fn allowed_transact_call_should_pass_filter() { ]); // Act - assert_ok!(parachain_runtime_mock::PolkadotXcm::send_xcm( + assert_ok!(basilisk_runtime::PolkadotXcm::send_xcm( Here, MultiLocation::new(1, X1(Parachain(BASILISK_PARA_ID))), message @@ -80,7 +80,7 @@ fn allowed_transact_call_should_pass_filter() { basilisk_runtime::RuntimeEvent::XcmpQueue(cumulus_pallet_xcmp_queue::Event::Success { .. }) ))); assert_eq!( - basilisk_runtime::Balances::free_balance(&AccountId::from(BOB)), + basilisk_runtime::Balances::free_balance(AccountId::from(BOB)), BOB_INITIAL_BSX_BALANCE + UNITS ); }); @@ -145,7 +145,7 @@ fn blocked_transact_calls_should_not_pass_filter() { ]); // Act - assert_ok!(parachain_runtime_mock::PolkadotXcm::send_xcm( + assert_ok!(basilisk_runtime::PolkadotXcm::send_xcm( Here, MultiLocation::new(1, X1(Parachain(BASILISK_PARA_ID))), message @@ -223,7 +223,7 @@ fn safe_call_filter_should_respect_runtime_call_filter() { ]); // Act - assert_ok!(parachain_runtime_mock::PolkadotXcm::send_xcm( + assert_ok!(basilisk_runtime::PolkadotXcm::send_xcm( Here, MultiLocation::new(1, X1(Parachain(BASILISK_PARA_ID))), message diff --git a/integration-tests/src/xcm_rate_limiter.rs b/integration-tests/src/xcm_rate_limiter.rs index 99d4ef9b52d..8e3421cdfb0 100644 --- a/integration-tests/src/xcm_rate_limiter.rs +++ b/integration-tests/src/xcm_rate_limiter.rs @@ -14,12 +14,12 @@ pub const EVE: [u8; 32] = [8u8; 32]; /// Returns the message hash in the `XcmpMessageSent` event at the `n`th last event (1-indexed, so if the second to last /// event has the hash, pass `2`); fn get_message_hash_from_event(n: usize) -> Option<[u8; 32]> { + use basilisk_runtime::RuntimeEvent; use cumulus_pallet_xcmp_queue::Event; - use parachain_runtime_mock::RuntimeEvent; let RuntimeEvent::XcmpQueue(Event::XcmpMessageSent { message_hash }) = &last_parachain_events(n)[0] else { panic!("expecting to find message sent event"); }; - *message_hash + Some(*message_hash) } // NOTE: Tests disabled until toggling the `runtime-benchmarks` feature no longer fails these tests. @@ -53,10 +53,10 @@ fn xcm_rate_limiter_should_limit_aca_when_limit_is_exceeded() { let amount = 100 * UNITS; let mut message_hash = None; OtherParachain::execute_with(|| { - assert!(parachain_runtime_mock::Balances::free_balance(&AccountId::from(ALICE)) >= amount); + assert!(basilisk_runtime::Balances::free_balance(AccountId::from(ALICE)) >= amount); // Act - assert_ok!(parachain_runtime_mock::XTokens::transfer( - parachain_runtime_mock::RuntimeOrigin::signed(ALICE.into()), + assert_ok!(basilisk_runtime::XTokens::transfer( + basilisk_runtime::RuntimeOrigin::signed(ALICE.into()), 0, amount, Box::new( @@ -69,12 +69,12 @@ fn xcm_rate_limiter_should_limit_aca_when_limit_is_exceeded() { ) .into() ), - WeightLimit::Limited(Weight::from_ref_time(399_600_000_000)) + WeightLimit::Limited(Weight::from_parts(399_600_000_000, 0)) )); // Assert assert_eq!( - parachain_runtime_mock::Balances::free_balance(&AccountId::from(ALICE)), + basilisk_runtime::Balances::free_balance(AccountId::from(ALICE)), ALICE_INITIAL_NATIVE_BALANCE_ON_OTHER_PARACHAIN - amount ); @@ -87,6 +87,8 @@ fn xcm_rate_limiter_should_limit_aca_when_limit_is_exceeded() { sender: OTHER_PARA_ID.into(), sent_at: 3, deferred_to: basilisk_runtime::DeferDuration::get() + 4, + index: (1, 1), + position: 1, message_hash, } .into(), @@ -127,8 +129,8 @@ fn xcm_rate_limiter_should_not_limit_aca_when_limit_is_not_exceeded() { let amount = 100 * UNITS; OtherParachain::execute_with(|| { // Act - assert_ok!(parachain_runtime_mock::XTokens::transfer( - parachain_runtime_mock::RuntimeOrigin::signed(ALICE.into()), + assert_ok!(basilisk_runtime::XTokens::transfer( + basilisk_runtime::RuntimeOrigin::signed(ALICE.into()), 0, amount, Box::new( @@ -141,12 +143,12 @@ fn xcm_rate_limiter_should_not_limit_aca_when_limit_is_not_exceeded() { ) .into() ), - WeightLimit::Limited(Weight::from_ref_time(399_600_000_000)) + WeightLimit::Limited(Weight::from_parts(399_600_000_000, 0)) )); // Assert assert_eq!( - parachain_runtime_mock::Balances::free_balance(&AccountId::from(ALICE)), + basilisk_runtime::Balances::free_balance(AccountId::from(ALICE)), ALICE_INITIAL_NATIVE_BALANCE_ON_OTHER_PARACHAIN - amount ); }); @@ -188,13 +190,13 @@ fn deferred_messages_should_be_executable_by_root() { let amount = 100 * UNITS; let mut message_hash = None; - let max_weight = Weight::from_ref_time(399_600_000_000); + let max_weight = Weight::from_parts(399_600_000_000, 0); OtherParachain::execute_with(|| { - assert!(parachain_runtime_mock::Balances::free_balance(&AccountId::from(ALICE)) >= amount); + assert!(basilisk_runtime::Balances::free_balance(AccountId::from(ALICE)) >= amount); // Act - assert_ok!(parachain_runtime_mock::XTokens::transfer( - parachain_runtime_mock::RuntimeOrigin::signed(ALICE.into()), + assert_ok!(basilisk_runtime::XTokens::transfer( + basilisk_runtime::RuntimeOrigin::signed(ALICE.into()), 0, amount, Box::new( @@ -207,12 +209,12 @@ fn deferred_messages_should_be_executable_by_root() { ) .into() ), - WeightLimit::Limited(Weight::from_ref_time(399_600_000_000)) + WeightLimit::Limited(Weight::from_parts(399_600_000_000, 0)) )); // Assert assert_eq!( - parachain_runtime_mock::Balances::free_balance(&AccountId::from(ALICE)), + basilisk_runtime::Balances::free_balance(AccountId::from(ALICE)), ALICE_INITIAL_NATIVE_BALANCE_ON_OTHER_PARACHAIN - amount ); @@ -225,6 +227,8 @@ fn deferred_messages_should_be_executable_by_root() { sender: OTHER_PARA_ID.into(), sent_at: 3, deferred_to: basilisk_runtime::DeferDuration::get() + 4, + index: (1, 1), + position: 1, message_hash, } .into(), @@ -243,6 +247,7 @@ fn deferred_messages_should_be_executable_by_root() { basilisk_runtime::RuntimeOrigin::root(), max_weight, OTHER_PARA_ID.into(), + basilisk_runtime::MaxBucketsProcessed::get(), )); let fee = basilisk_runtime::Tokens::free_balance(AUSD, &basilisk_runtime::Treasury::account_id()); diff --git a/integration-tests/src/xyk.rs b/integration-tests/src/xyk.rs index 7555059ded4..3e244dccc8d 100644 --- a/integration-tests/src/xyk.rs +++ b/integration-tests/src/xyk.rs @@ -4,7 +4,7 @@ use crate::kusama_test_net::*; use basilisk_runtime::{DustRemovalWhitelist, RuntimeOrigin, XYK}; use hydradx_traits::AMM; -use primitives::{asset::AssetPair, AssetId}; +use pallet_xyk::types::AssetId; use xcm_emulator::TestExt; use frame_support::{assert_ok, traits::Contains}; diff --git a/node/Cargo.toml b/node/Cargo.toml index 839aef52d86..b1d7d5b18bf 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "basilisk" -version = "10.0.1" +version = "11.0.0" description = "Basilisk node" authors = ["GalacticCouncil"] edition = "2021" @@ -16,7 +16,7 @@ name = "basilisk" targets = ["x86_64-unknown-linux-gnu"] [build-dependencies] -hydra-dx-build-script-utils = { git = "https://github.com/galacticcouncil/HydraDX-node", branch = "master" } +hydra-dx-build-script-utils = { workspace = true } [dependencies] codec = { package = "parity-scale-codec", version = "3.4.0" } @@ -33,73 +33,72 @@ basilisk-runtime = { path = "../runtime/basilisk" } primitives = { path = "../primitives" } # Substrate dependencies -frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38" } -frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", optional = true } -pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38" } -sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38" } -sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38" } -sc-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38" } -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38" } -sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38" } -sc-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38" } -sc-executor = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38"} -sc-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38" } -sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38" } -sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38" } -sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38" } -sc-service = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38"} -sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38" } -sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38" } -sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38" } -sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38" } -sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38" } -sc-network-common = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38" } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38" } -sc-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38" } -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38" } -sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38" } -sp-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38" } -sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38" } -sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38" } -sp-trie = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38" } -sp-storage = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38" } -substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38" } -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38" } -sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38" } -sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38" } -sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38" } -substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38" } -pallet-grandpa = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38" } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38" } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38" } -sp-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38"} -frame-try-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", optional = true } -try-runtime-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", optional = true } +frame-benchmarking = { workspace = true } +frame-benchmarking-cli = { workspace = true, optional = true } +pallet-transaction-payment-rpc = { workspace = true } +sc-basic-authorship = { workspace = true } +sc-chain-spec = { workspace = true } +sc-cli = { workspace = true } +sc-client-api = { workspace = true } +sc-consensus = { workspace = true } +sc-consensus-aura = { workspace = true } +sc-executor = { workspace = true } +sc-keystore = { workspace = true } +sc-rpc = { workspace = true } +sc-rpc-api = { workspace = true } +sc-service = { workspace = true } +sc-tracing = { workspace = true } +sc-telemetry = { workspace = true } +sc-transaction-pool = { workspace = true } +sc-transaction-pool-api = { workspace = true } +sc-network = { workspace = true } +sc-network-sync = { workspace = true } +sc-network-common = { workspace = true } +sp-api = { workspace = true } +sp-block-builder = { workspace = true } +sc-block-builder = { workspace = true } +sp-blockchain = { workspace = true } +sp-consensus = { workspace = true } +sp-consensus-aura = { workspace = true } +sp-core = { workspace = true } +sp-inherents = { workspace = true } +sp-runtime = { workspace = true } +sp-timestamp = { workspace = true } +sp-transaction-pool = { workspace = true } +sp-trie = { workspace = true } +sp-storage = { workspace = true } +substrate-frame-rpc-system = { workspace = true } +sp-keystore = { workspace = true } +sp-session = { workspace = true } +sp-offchain = { workspace = true } +sc-offchain = { workspace = true } +sc-sysinfo = { workspace = true } +sp-io = { workspace = true } +substrate-prometheus-endpoint = { workspace = true } +frame-system-rpc-runtime-api = { workspace = true } +pallet-transaction-payment-rpc-runtime-api = { workspace = true } +sp-authority-discovery = { workspace = true } +frame-try-runtime = { workspace = true, optional = true } # Cumulus dependencies -cumulus-client-cli = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.38" } -cumulus-client-collator = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.38" } -cumulus-client-consensus-aura = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.38" } -cumulus-client-consensus-relay-chain = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.38" } -cumulus-client-consensus-common = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.38" } -cumulus-client-network = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.38" } -cumulus-client-service = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.38" } -cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.38" } -cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.38" } -cumulus-relay-chain-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.38" } -cumulus-relay-chain-inprocess-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.38" } -cumulus-relay-chain-minimal-node = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.38" } +cumulus-client-cli = { workspace = true } +cumulus-client-collator = { workspace = true } +cumulus-client-consensus-aura = { workspace = true } +cumulus-client-consensus-common = { workspace = true } +cumulus-client-consensus-proposer = { workspace = true } +cumulus-client-network = { workspace = true } +cumulus-client-service = { workspace = true } +cumulus-primitives-core = { workspace = true } +cumulus-primitives-parachain-inherent = { workspace = true } +cumulus-relay-chain-interface = { workspace = true } +cumulus-relay-chain-inprocess-interface = { workspace = true } +cumulus-relay-chain-minimal-node = { workspace = true } # Polkadot dependencies -polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.38" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.38" } -polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.38" } -polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.38" } +polkadot-cli = { workspace = true } +polkadot-parachain = { workspace = true } +polkadot-primitives = { workspace = true } +polkadot-service = { workspace = true } [features] default = [ @@ -111,11 +110,7 @@ runtime-benchmarks = [ "polkadot-service/runtime-benchmarks", "polkadot-cli/runtime-benchmarks", ] -cli = [ - 'try-runtime-cli', -] try-runtime = [ "basilisk-runtime/try-runtime", - "try-runtime-cli/try-runtime", ] diff --git a/node/src/chain_spec.rs b/node/src/chain_spec.rs index 95b2135151f..adc225605d6 100644 --- a/node/src/chain_spec.rs +++ b/node/src/chain_spec.rs @@ -21,8 +21,8 @@ use basilisk_runtime::{ AccountId, AssetRegistryConfig, AuraId, Balance, BalancesConfig, CollatorSelectionConfig, CouncilConfig, - DusterConfig, ElectionsConfig, GenesisConfig, MultiTransactionPaymentConfig, ParachainInfoConfig, SessionConfig, - Signature, SystemConfig, TechnicalCommitteeConfig, TokensConfig, VestingConfig, WASM_BINARY, + DusterConfig, ElectionsConfig, MultiTransactionPaymentConfig, ParachainInfoConfig, RuntimeGenesisConfig, + SessionConfig, Signature, SystemConfig, TechnicalCommitteeConfig, TokensConfig, VestingConfig, WASM_BINARY, }; use cumulus_primitives_core::ParaId; use hex_literal::hex; @@ -67,7 +67,7 @@ impl Extensions { } /// Specialized `ChainSpec`. This is a specialization of the general Substrate ChainSpec type. -pub type ChainSpec = sc_service::GenericChainSpec; +pub type ChainSpec = sc_service::GenericChainSpec; /// Generate a crypto pair from seed. pub fn get_from_seed(seed: &str) -> ::Public { @@ -643,11 +643,12 @@ fn parachain_genesis( _endowed_accounts: Vec, _enable_println: bool, parachain_id: ParaId, -) -> GenesisConfig { - GenesisConfig { +) -> RuntimeGenesisConfig { + RuntimeGenesisConfig { system: SystemConfig { // Add Wasm runtime to storage. code: wasm_binary.to_vec(), + ..Default::default() }, balances: BalancesConfig { // Configure endowed accounts with initial balance of a lot. @@ -721,7 +722,10 @@ fn parachain_genesis( phantom: Default::default(), }, vesting: VestingConfig { vesting: vec![] }, - parachain_info: ParachainInfoConfig { parachain_id }, + parachain_info: ParachainInfoConfig { + parachain_id, + ..Default::default() + }, aura_ext: Default::default(), duster: DusterConfig { // treasury @@ -748,11 +752,12 @@ fn testnet_parachain_genesis( registered_assets: Vec<(Vec, Balance, Option)>, // (Asset name, Existential deposit, Chosen asset id) accepted_assets: Vec<(AssetId, Price)>, // (Asset id, Fallback price) - asset which fee can be paid with elections: Vec, -) -> GenesisConfig { - GenesisConfig { +) -> RuntimeGenesisConfig { + RuntimeGenesisConfig { system: SystemConfig { // Add Wasm runtime to storage. code: wasm_binary.to_vec(), + ..Default::default() }, balances: BalancesConfig { // Configure endowed accounts with initial balance of a lot. @@ -825,7 +830,10 @@ fn testnet_parachain_genesis( phantom: Default::default(), }, vesting: VestingConfig { vesting: vesting_list }, - parachain_info: ParachainInfoConfig { parachain_id }, + parachain_info: ParachainInfoConfig { + parachain_id, + ..Default::default() + }, aura_ext: Default::default(), duster: DusterConfig { account_blacklist: vec![get_account_id_from_seed::("Duster")], diff --git a/node/src/cli.rs b/node/src/cli.rs index f2bceff370a..853a61a50bd 100644 --- a/node/src/cli.rs +++ b/node/src/cli.rs @@ -1,3 +1,5 @@ +#![allow(clippy::large_enum_variant)] + use crate::chain_spec; use clap::Parser; use std::error::Error; @@ -35,6 +37,16 @@ pub struct Cli { #[clap(flatten)] pub run: RunCmd, + /// Disable automatic hardware benchmarks. + /// + /// By default these benchmarks are automatically ran at startup and measure + /// the CPU speed, the memory bandwidth and the disk speed. + /// + /// The results are then printed out in the logs, and also sent as part of + /// telemetry, if telemetry is enabled. + #[arg(long)] + pub no_hardware_benchmarks: bool, + /// Relaychain arguments #[clap(raw = true)] pub relaychain_args: Vec, @@ -60,11 +72,11 @@ impl RelayChainCli { ) -> Self { let extension = chain_spec::Extensions::try_get(&*para_config.chain_spec); let chain_id = extension.map(|e| e.relay_chain.clone()); - let base_path = para_config.base_path.as_ref().map(|x| x.path().join("polkadot")); + let base_path = para_config.base_path.path().join("polkadot"); Self { - base_path, - chain_id, base: polkadot_cli::RunCmd::parse_from(relay_chain_args), + chain_id, + base_path: Some(base_path), } } } @@ -104,11 +116,8 @@ pub enum Subcommand { #[clap(name = "export-genesis-wasm")] ExportGenesisWasm(cumulus_client_cli::ExportGenesisWasmCommand), - /// Try some command against runtime state. - #[cfg(feature = "try-runtime")] - TryRuntime(try_runtime_cli::TryRuntimeCmd), - - /// Try some command against runtime state. Note: `try-runtime` feature must be enabled. - #[cfg(not(feature = "try-runtime"))] + /// Try-runtime has migrated to a standalone + /// [CLI](). The subcommand exists as a stub and + /// deprecation notice. It will be removed entirely some time after Janurary 2024. TryRuntime, } diff --git a/node/src/command.rs b/node/src/command.rs index 2280cceadc3..b9526aa1abd 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -15,9 +15,9 @@ // See the License for the specific language governing permissions and // limitations under the License. +use crate::chain_spec; use crate::cli::{Cli, RelayChainCli, Subcommand}; -use crate::service::{new_partial, BasiliskExecutorDispatch}; -use crate::{chain_spec, service}; +use crate::service::{new_partial, BasiliskNativeExecutor}; use basilisk_runtime::Block; use codec::Encode; @@ -29,11 +29,12 @@ use sc_cli::{ ChainSpec, CliConfiguration, DefaultConfigurationValues, ImportParams, KeystoreParams, NetworkParams, Result, RuntimeVersion, SharedParams, SubstrateCli, }; +use sc_executor::{sp_wasm_interface::ExtendedHostFunctions, NativeExecutionDispatch}; use sc_service::config::{BasePath, PrometheusConfig}; use sp_core::hexdisplay::HexDisplay; use sp_runtime::traits::AccountIdConversion; use sp_runtime::traits::Block as BlockT; -use std::{io::Write, net::SocketAddr}; +use std::io::Write; fn load_spec(id: &str) -> std::result::Result, String> { Ok(match id { @@ -89,10 +90,6 @@ impl SubstrateCli for Cli { path => Box::new(chain_spec::ChainSpec::from_json_file(std::path::PathBuf::from(path))?), }) } - - fn native_runtime_version(_spec: &Box) -> &'static RuntimeVersion { - &basilisk_runtime::VERSION - } } impl SubstrateCli for RelayChainCli { @@ -123,10 +120,6 @@ impl SubstrateCli for RelayChainCli { fn load_spec(&self, id: &str) -> std::result::Result, String> { polkadot_cli::Cli::from_iter([RelayChainCli::executable_name()].iter()).load_spec(id) } - - fn native_runtime_version(chain_spec: &Box) -> &'static RuntimeVersion { - polkadot_cli::Cli::native_runtime_version(chain_spec) - } } #[allow(clippy::borrowed_box)] @@ -151,28 +144,28 @@ pub fn run() -> sc_cli::Result<()> { Some(Subcommand::CheckBlock(cmd)) => { let runner = cli.create_runner(cmd)?; runner.async_run(|config| { - let partials = new_partial::(&config)?; + let partials = new_partial(&config)?; Ok((cmd.run(partials.client, partials.import_queue), partials.task_manager)) }) } Some(Subcommand::ExportBlocks(cmd)) => { let runner = cli.create_runner(cmd)?; runner.async_run(|config| { - let partials = new_partial::(&config)?; + let partials = new_partial(&config)?; Ok((cmd.run(partials.client, config.database), partials.task_manager)) }) } Some(Subcommand::ExportState(cmd)) => { let runner = cli.create_runner(cmd)?; runner.async_run(|config| { - let partials = new_partial::(&config)?; + let partials = new_partial(&config)?; Ok((cmd.run(partials.client, config.chain_spec), partials.task_manager)) }) } Some(Subcommand::ImportBlocks(cmd)) => { let runner = cli.create_runner(cmd)?; runner.async_run(|config| { - let partials = new_partial::(&config)?; + let partials = new_partial(&config)?; Ok((cmd.run(partials.client, partials.import_queue), partials.task_manager)) }) } @@ -196,7 +189,7 @@ pub fn run() -> sc_cli::Result<()> { Some(Subcommand::Revert(cmd)) => { let runner = cli.create_runner(cmd)?; runner.async_run(|config| { - let partials = new_partial::(&config)?; + let partials = new_partial(&config)?; Ok((cmd.run(partials.client, partials.backend, None), partials.task_manager)) }) } @@ -206,7 +199,12 @@ pub fn run() -> sc_cli::Result<()> { match cmd { BenchmarkCmd::Pallet(cmd) => { if cfg!(feature = "runtime-benchmarks") { - runner.sync_run(|config| cmd.run::(config)) + runner.sync_run(|config| { + cmd.run::::ExtendHostFunctions, + >>(config) + }) } else { Err("Benchmarking wasn't enabled when building the node. \ You can enable it with `--features runtime-benchmarks`." @@ -214,14 +212,14 @@ pub fn run() -> sc_cli::Result<()> { } } BenchmarkCmd::Block(cmd) => runner.sync_run(|config| { - let partials = new_partial::(&config)?; + let partials = new_partial(&config)?; cmd.run(partials.client) }), #[cfg(not(feature = "runtime-benchmarks"))] BenchmarkCmd::Storage(_) => Err("Storage benchmarking can be enabled with `--features runtime-benchmarks`.".into()), #[cfg(feature = "runtime-benchmarks")] BenchmarkCmd::Storage(cmd) => runner.sync_run(|config| { - let partials = new_partial::(&config)?; + let partials = new_partial(&config)?; let db = partials.backend.expose_db(); let storage = partials.backend.expose_storage(); @@ -240,7 +238,7 @@ pub fn run() -> sc_cli::Result<()> { let _ = builder.init(); let spec = load_spec(¶ms.shared_params.chain.clone().unwrap_or_default())?; - let state_version = Cli::native_runtime_version(&spec).state_version(); + let state_version = Cli::runtime_version().state_version(); let block: Block = generate_genesis_block(&*spec, state_version)?; let raw_header = block.header().encode(); @@ -279,30 +277,7 @@ pub fn run() -> sc_cli::Result<()> { Ok(()) } - #[cfg(feature = "try-runtime")] - Some(Subcommand::TryRuntime(cmd)) => { - use sc_executor::{sp_wasm_interface::ExtendedHostFunctions, NativeExecutionDispatch}; - let runner = cli.create_runner(cmd)?; - runner.async_run(|config| { - // we don't need any of the components of new_partial, just a runtime, or a task - // manager to do `async_run`. - let registry = config.prometheus_config.as_ref().map(|cfg| &cfg.registry); - let task_manager = sc_service::TaskManager::new(config.tokio_handle.clone(), registry) - .map_err(|e| sc_cli::Error::Service(sc_service::Error::Prometheus(e)))?; - - Ok(( - cmd.run::::ExtendHostFunctions, - >>(), - task_manager, - )) - }) - } - #[cfg(not(feature = "try-runtime"))] - Some(Subcommand::TryRuntime) => Err("TryRuntime wasn't enabled when building the node. \ - You can enable it with `--features try-runtime`." - .into()), + Some(Subcommand::TryRuntime) => Err("The `try-runtime` subcommand has been migrated to a standalone CLI (https://github.com/paritytech/try-runtime-cli). It is no longer being maintained here and will be removed entirely some time after January 2024. Please remove this subcommand from your runtime and use the standalone CLI.".into()), None => { let runner = cli.create_runner(&cli.run.base.normalize())?; @@ -311,6 +286,13 @@ pub fn run() -> sc_cli::Result<()> { return Err("It is not allowed to run a collator node with the benchmarking runtime.".into()); }; + let hwbench = (!cli.no_hardware_benchmarks) + .then_some(config.database.path().map(|database_path| { + let _ = std::fs::create_dir_all(database_path); + sc_sysinfo::gather_hwbench(Some(database_path)) + })) + .flatten(); + let para_id = chain_spec::Extensions::try_get(&*config.chain_spec) .map(|e| e.para_id) .expect("Could not find parachain ID in chain-spec."); @@ -325,9 +307,9 @@ pub fn run() -> sc_cli::Result<()> { let id = ParaId::from(para_id); let parachain_account = - AccountIdConversion::::into_account_truncating(&id); + AccountIdConversion::::into_account_truncating(&id); - let state_version = Cli::native_runtime_version(&config.chain_spec).state_version(); + let state_version = Cli::runtime_version().state_version(); let block: Block = generate_genesis_block(&*config.chain_spec, state_version).map_err(|e| format!("{e:?}"))?; @@ -347,9 +329,9 @@ pub fn run() -> sc_cli::Result<()> { if config.role.is_authority() { "yes" } else { "no" } ); - crate::service::start_node(config, polkadot_config, collator_options, id) + crate::service::start_node(config, polkadot_config, collator_options, id, hwbench) .await - .map(|r| r.1) + .map(|r| r.0) .map_err(Into::into) }) } @@ -361,14 +343,10 @@ impl DefaultConfigurationValues for RelayChainCli { 30334 } - fn rpc_ws_listen_port() -> u16 { + fn rpc_listen_port() -> u16 { 9945 } - fn rpc_http_listen_port() -> u16 { - 9934 - } - fn prometheus_listen_port() -> u16 { 9616 } @@ -398,18 +376,6 @@ impl CliConfiguration for RelayChainCli { .or_else(|| self.base_path.clone().map(Into::into))) } - fn rpc_http(&self, default_listen_port: u16) -> Result> { - self.base.base.rpc_http(default_listen_port) - } - - fn rpc_ipc(&self) -> Result> { - self.base.base.rpc_ipc() - } - - fn rpc_ws(&self, default_listen_port: u16) -> Result> { - self.base.base.rpc_ws(default_listen_port) - } - fn prometheus_config( &self, default_listen_port: u16, @@ -453,10 +419,6 @@ impl CliConfiguration for RelayChainCli { self.base.base.rpc_methods() } - fn rpc_ws_max_connections(&self) -> Result> { - self.base.base.rpc_ws_max_connections() - } - fn rpc_cors(&self, is_dev: bool) -> Result>> { self.base.base.rpc_cors(is_dev) } @@ -485,3 +447,9 @@ impl CliConfiguration for RelayChainCli { self.base.base.telemetry_endpoints(chain_spec) } } + +impl Cli { + fn runtime_version() -> &'static RuntimeVersion { + &basilisk_runtime::VERSION + } +} diff --git a/node/src/service.rs b/node/src/service.rs index 18f12ea5155..9716ba1cd94 100644 --- a/node/src/service.rs +++ b/node/src/service.rs @@ -19,123 +19,79 @@ #![allow(clippy::all)] +// std +use std::{sync::Arc, time::Duration}; + use cumulus_client_cli::CollatorOptions; -use cumulus_client_consensus_aura::{AuraConsensus, BuildAuraConsensusParams, SlotProportion}; -use cumulus_client_consensus_common::{ParachainBlockImport as TParachainBlockImport, ParachainConsensus}; -use cumulus_client_network::BlockAnnounceValidator; +// Local Runtime Types +use basilisk_runtime::{ + opaque::{Block, Hash}, + RuntimeApi, +}; + +// Cumulus Imports +use cumulus_client_collator::service::CollatorService; +use cumulus_client_consensus_common::ParachainBlockImport as TParachainBlockImport; +use cumulus_client_consensus_proposer::Proposer; use cumulus_client_service::{ - prepare_node_config, start_collator, start_full_node, StartCollatorParams, StartFullNodeParams, + build_network, build_relay_chain_interface, prepare_node_config, start_relay_chain_tasks, BuildNetworkParams, + CollatorSybilResistance, DARecoveryProfile, StartRelayChainTasksParams, }; -use cumulus_primitives_core::{CollectCollationInfo, ParaId}; -use cumulus_relay_chain_inprocess_interface::build_inprocess_relay_chain; -use cumulus_relay_chain_interface::{RelayChainInterface, RelayChainResult}; -use cumulus_relay_chain_minimal_node::build_minimal_relay_chain_node; -use jsonrpsee::RpcModule; -use polkadot_service::CollatorPair; -use primitives::{AccountId, Balance, Block, Index}; +use cumulus_primitives_core::{relay_chain::CollatorPair, ParaId}; +use cumulus_relay_chain_interface::{OverseerHandle, RelayChainInterface}; + +// Substrate Imports +use sc_client_api::Backend; use sc_consensus::ImportQueue; -use sc_executor::{NativeElseWasmExecutor, NativeExecutionDispatch, NativeVersion}; -use sc_network::NetworkService; -use sc_network_common::service::NetworkBlock; +use sc_executor::{HeapAllocStrategy, NativeElseWasmExecutor, WasmExecutor, DEFAULT_HEAP_ALLOC_STRATEGY}; +use sc_network::NetworkBlock; +use sc_network_sync::SyncingService; use sc_service::{Configuration, PartialComponents, TFullBackend, TFullClient, TaskManager}; use sc_telemetry::{Telemetry, TelemetryHandle, TelemetryWorker, TelemetryWorkerHandle}; -use sp_api::ConstructRuntimeApi; -use sp_keystore::SyncCryptoStorePtr; -use std::{sync::Arc, time::Duration}; +use sc_transaction_pool_api::OffchainTransactionPoolFactory; +use sp_keystore::KeystorePtr; use substrate_prometheus_endpoint::Registry; -type Hash = sp_core::H256; -// native executor instance. -pub struct BasiliskExecutorDispatch; -impl NativeExecutionDispatch for BasiliskExecutorDispatch { +/// Native executor type. +pub struct BasiliskNativeExecutor; + +impl sc_executor::NativeExecutionDispatch for BasiliskNativeExecutor { type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions; fn dispatch(method: &str, data: &[u8]) -> Option> { basilisk_runtime::api::dispatch(method, data) } - fn native_version() -> NativeVersion { + fn native_version() -> sc_executor::NativeVersion { basilisk_runtime::native_version() } } -pub type FullBackend = TFullBackend; -pub type FullClient = - TFullClient>; -type ParachainBlockImport = - TParachainBlockImport>, FullBackend>; +type ParachainExecutor = NativeElseWasmExecutor; -/// Build the import queue for the parachain runtime. -pub fn parachain_build_import_queue( - client: Arc>, - backend: Arc, - config: &Configuration, - telemetry: Option, - task_manager: &TaskManager, -) -> Result>, sc_service::Error> -where - RuntimeApi: ConstructRuntimeApi> + Send + Sync + 'static, - RuntimeApi::RuntimeApi: sp_transaction_pool::runtime_api::TaggedTransactionQueue - + sp_api::ApiExt> - + sp_block_builder::BlockBuilder - + frame_system_rpc_runtime_api::AccountNonceApi - + pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi - + sp_api::Metadata - + sp_offchain::OffchainWorkerApi - + sp_session::SessionKeys - + sp_consensus_aura::AuraApi, - Executor: NativeExecutionDispatch + 'static, -{ - let slot_duration = cumulus_client_consensus_aura::slot_duration(&*client)?; +type ParachainClient = TFullClient; - cumulus_client_consensus_aura::import_queue::( - cumulus_client_consensus_aura::ImportQueueParams { - block_import: ParachainBlockImport::new(client.clone(), backend.clone()), - client: client.clone(), - create_inherent_data_providers: move |_, _| async move { - let timestamp = sp_timestamp::InherentDataProvider::from_system_time(); +type ParachainBackend = TFullBackend; - let slot = sp_consensus_aura::inherents::InherentDataProvider::from_timestamp_and_slot_duration( - *timestamp, - slot_duration, - ); +type ParachainBlockImport = TParachainBlockImport, ParachainBackend>; - Ok((slot, timestamp)) - }, - registry: config.prometheus_registry().clone(), - spawner: &task_manager.spawn_essential_handle(), - telemetry, - }, - ) - .map_err(Into::into) -} - -pub fn new_partial( +/// Starts a `ServiceBuilder` for a full service. +/// +/// Use this macro if you don't actually need the full service, but just the builder in order to +/// be able to perform chain operations. +pub fn new_partial( config: &Configuration, ) -> Result< PartialComponents< - TFullClient>, - TFullBackend, + ParachainClient, + ParachainBackend, (), - sc_consensus::DefaultImportQueue>, - sc_transaction_pool::FullPool>, - (Option, Option), + sc_consensus::DefaultImportQueue, + sc_transaction_pool::FullPool, + (ParachainBlockImport, Option, Option), >, sc_service::Error, -> -where - RuntimeApi: ConstructRuntimeApi> + Send + Sync + 'static, - RuntimeApi::RuntimeApi: sp_transaction_pool::runtime_api::TaggedTransactionQueue - + sp_api::ApiExt> - + sp_block_builder::BlockBuilder - + frame_system_rpc_runtime_api::AccountNonceApi - + pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi - + sp_api::Metadata - + sp_offchain::OffchainWorkerApi - + sp_session::SessionKeys - + sp_consensus_aura::AuraApi, - Executor: NativeExecutionDispatch + 'static, -{ +> { let telemetry = config .telemetry_endpoints .clone() @@ -147,19 +103,27 @@ where }) .transpose()?; - let executor = NativeElseWasmExecutor::::new( - config.wasm_method, - config.default_heap_pages, - config.max_runtime_instances, - config.runtime_cache_size, - ); + let heap_pages = config + .default_heap_pages + .map_or(DEFAULT_HEAP_ALLOC_STRATEGY, |h| HeapAllocStrategy::Static { + extra_pages: h as _, + }); - let (client, backend, keystore_container, task_manager) = - sc_service::new_full_parts::>( - config, - telemetry.as_ref().map(|(_, telemetry)| telemetry.handle()), - executor, - )?; + let wasm = WasmExecutor::builder() + .with_execution_method(config.wasm_method) + .with_onchain_heap_alloc_strategy(heap_pages) + .with_offchain_heap_alloc_strategy(heap_pages) + .with_max_runtime_instances(config.max_runtime_instances) + .with_runtime_cache_size(config.runtime_cache_size) + .build(); + + let executor = ParachainExecutor::new_with_wasm_executor(wasm); + + let (client, backend, keystore_container, task_manager) = sc_service::new_full_parts::( + config, + telemetry.as_ref().map(|(_, telemetry)| telemetry.handle()), + executor, + )?; let client = Arc::new(client); let telemetry_worker_handle = telemetry.as_ref().map(|(worker, _)| worker.handle()); @@ -169,101 +133,53 @@ where telemetry }); - let registry = config.prometheus_registry(); - let transaction_pool = sc_transaction_pool::BasicPool::new_full( config.transaction_pool.clone(), config.role.is_authority().into(), - registry, + config.prometheus_registry(), task_manager.spawn_essential_handle(), client.clone(), ); - let import_queue = parachain_build_import_queue::( + let block_import = ParachainBlockImport::new(client.clone(), backend.clone()); + + let import_queue = build_import_queue( client.clone(), - backend.clone(), + block_import.clone(), config, telemetry.as_ref().map(|telemetry| telemetry.handle()), &task_manager, )?; Ok(PartialComponents { - client, backend, + client, import_queue, - task_manager, keystore_container, + task_manager, transaction_pool, select_chain: (), - other: (telemetry, telemetry_worker_handle), + other: (block_import, telemetry, telemetry_worker_handle), }) } -/// Build a relay chain interface. -/// Will return a minimal relay chain node with RPC -/// client or an inprocess node, based on the [`CollatorOptions`] passed in. -async fn build_relay_chain_interface( - polkadot_config: Configuration, - parachain_config: &Configuration, - telemetry_worker_handle: Option, - task_manager: &mut TaskManager, - collator_options: CollatorOptions, -) -> RelayChainResult<(Arc<(dyn RelayChainInterface + 'static)>, Option)> { - if !collator_options.relay_chain_rpc_urls.is_empty() { - build_minimal_relay_chain_node(polkadot_config, task_manager, collator_options.relay_chain_rpc_urls).await - } else { - build_inprocess_relay_chain( - polkadot_config, - parachain_config, - telemetry_worker_handle, - task_manager, - None, - ) - } -} - /// Start a node with the given parachain `Configuration` and relay chain `Configuration`. /// /// This is the actual implementation that is abstract over the executor and the runtime api. -async fn start_node_impl( +#[sc_tracing::logging::prefix_logs_with("Parachain")] +async fn start_node_impl( parachain_config: Configuration, polkadot_config: Configuration, collator_options: CollatorOptions, para_id: ParaId, - _rpc_ext_builder: RpcBuilder, - build_consensus: ConsensusBuilder, -) -> sc_service::error::Result<(Arc>, TaskManager)> -where - RpcBuilder: Fn(Arc>) -> Result, sc_service::Error> + Send + 'static, - RuntimeApi: ConstructRuntimeApi> + Send + Sync + 'static, - RuntimeApi::RuntimeApi: sp_transaction_pool::runtime_api::TaggedTransactionQueue - + sp_api::ApiExt> - + sp_block_builder::BlockBuilder - + frame_system_rpc_runtime_api::AccountNonceApi - + pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi - + sp_api::Metadata - + sp_offchain::OffchainWorkerApi - + sp_session::SessionKeys - + CollectCollationInfo - + sp_consensus_aura::AuraApi, - Executor: NativeExecutionDispatch + 'static, - ConsensusBuilder: FnOnce( - Arc>, - ParachainBlockImport, - Option<&Registry>, - Option, - &TaskManager, - Arc, - Arc>>, - Arc>, - SyncCryptoStorePtr, - bool, - ) -> Result>, sc_service::Error>, -{ + hwbench: Option, +) -> sc_service::error::Result<(TaskManager, Arc)> { let parachain_config = prepare_node_config(parachain_config); - let params = new_partial::(¶chain_config)?; - let (mut telemetry, telemetry_worker_handle) = params.other; + let params = new_partial(¶chain_config)?; + let (block_import, mut telemetry, telemetry_worker_handle) = params.other; + let net_config = sc_network::config::FullNetworkConfiguration::new(¶chain_config.network); + let client = params.client.clone(); let backend = params.backend.clone(); let mut task_manager = params.task_manager; @@ -274,33 +190,56 @@ where telemetry_worker_handle, &mut task_manager, collator_options.clone(), + hwbench.clone(), ) .await .map_err(|e| sc_service::Error::Application(Box::new(e) as Box<_>))?; - let block_announce_validator = BlockAnnounceValidator::new(relay_chain_interface.clone(), para_id); - - let force_authoring = parachain_config.force_authoring; let validator = parachain_config.role.is_authority(); let prometheus_registry = parachain_config.prometheus_registry().cloned(); let transaction_pool = params.transaction_pool.clone(); let import_queue_service = params.import_queue.service(); - let (network, system_rpc_tx, tx_handler_controller, start_network) = - sc_service::build_network(sc_service::BuildNetworkParams { - config: ¶chain_config, + + let (network, system_rpc_tx, tx_handler_controller, start_network, sync_service) = + build_network(BuildNetworkParams { + parachain_config: ¶chain_config, + net_config, client: client.clone(), transaction_pool: transaction_pool.clone(), + para_id, spawn_handle: task_manager.spawn_handle(), + relay_chain_interface: relay_chain_interface.clone(), import_queue: params.import_queue, - block_announce_validator_builder: Some(Box::new(|_| Box::new(block_announce_validator))), - warp_sync: None, - })?; + sybil_resistance_level: CollatorSybilResistance::Resistant, // because of Aura + }) + .await?; + + if parachain_config.offchain_worker.enabled { + use futures::FutureExt; + + task_manager.spawn_handle().spawn( + "offchain-workers-runner", + "offchain-work", + sc_offchain::OffchainWorkers::new(sc_offchain::OffchainWorkerOptions { + runtime_api_provider: client.clone(), + keystore: Some(params.keystore_container.keystore()), + offchain_db: backend.offchain_storage(), + transaction_pool: Some(OffchainTransactionPoolFactory::new(transaction_pool.clone())), + network_provider: network.clone(), + is_validator: parachain_config.role.is_authority(), + enable_http_requests: false, + custom_extensions: move |_| vec![], + }) + .run(client.clone(), task_manager.spawn_handle()) + .boxed(), + ); + } let rpc_builder = { let client = client.clone(); let transaction_pool = transaction_pool.clone(); - move |deny_unsafe, _| { + Box::new(move |deny_unsafe, _| { let deps = crate::rpc::FullDeps { client: client.clone(), pool: transaction_pool.clone(), @@ -308,175 +247,201 @@ where }; crate::rpc::create_full(deps).map_err(Into::into) - } - }; - - if parachain_config.offchain_worker.enabled { - sc_service::build_offchain_workers( - ¶chain_config, - task_manager.spawn_handle(), - client.clone(), - network.clone(), - ); + }) }; sc_service::spawn_tasks(sc_service::SpawnTasksParams { - rpc_builder: Box::new(rpc_builder), + rpc_builder, client: client.clone(), transaction_pool: transaction_pool.clone(), task_manager: &mut task_manager, config: parachain_config, - keystore: params.keystore_container.sync_keystore(), - backend: backend.clone(), + keystore: params.keystore_container.keystore(), + backend, network: network.clone(), + sync_service: sync_service.clone(), system_rpc_tx, tx_handler_controller, telemetry: telemetry.as_mut(), })?; + if let Some(hwbench) = hwbench { + sc_sysinfo::print_hwbench(&hwbench); + // Here you can check whether the hardware meets your chains' requirements. Putting a link + // in there and swapping out the requirements for your own are probably a good idea. The + // requirements for a para-chain are dictated by its relay-chain. + if !frame_benchmarking_cli::SUBSTRATE_REFERENCE_HARDWARE.check_hardware(&hwbench) && validator { + log::warn!( + "⚠️ The hardware does not meet the minimal requirements for role 'Authority' find out more at:\n\ + https://wiki.polkadot.network/docs/maintain-guides-how-to-validate-polkadot#reference-hardware" + ); + } + + if let Some(ref mut telemetry) = telemetry { + let telemetry_handle = telemetry.handle(); + task_manager.spawn_handle().spawn( + "telemetry_hwbench", + None, + sc_sysinfo::initialize_hwbench_telemetry(telemetry_handle, hwbench), + ); + } + } + let announce_block = { - let network = network.clone(); - Arc::new(move |hash, data| network.announce_block(hash, data)) + let sync_service = sync_service.clone(); + Arc::new(move |hash, data| sync_service.announce_block(hash, data)) }; let relay_chain_slot_duration = Duration::from_secs(6); + let overseer_handle = relay_chain_interface + .overseer_handle() + .map_err(|e| sc_service::Error::Application(Box::new(e)))?; + + start_relay_chain_tasks(StartRelayChainTasksParams { + client: client.clone(), + announce_block: announce_block.clone(), + para_id, + relay_chain_interface: relay_chain_interface.clone(), + task_manager: &mut task_manager, + da_recovery_profile: if validator { + DARecoveryProfile::Collator + } else { + DARecoveryProfile::FullNode + }, + import_queue: import_queue_service, + relay_chain_slot_duration, + recovery_handle: Box::new(overseer_handle.clone()), + sync_service: sync_service.clone(), + })?; + if validator { - let parachain_consensus = build_consensus( + start_consensus( client.clone(), - ParachainBlockImport::new(client.clone(), backend.clone()), + block_import, prometheus_registry.as_ref(), telemetry.as_ref().map(|t| t.handle()), &task_manager, relay_chain_interface.clone(), transaction_pool, - network, - params.keystore_container.sync_keystore(), - force_authoring, + sync_service.clone(), + params.keystore_container.keystore(), + relay_chain_slot_duration, + para_id, + collator_key.expect("Command line arguments do not allow this. qed"), + overseer_handle, + announce_block, )?; + } - let spawner = task_manager.spawn_handle(); + start_network.start_network(); - let params = StartCollatorParams { - para_id, - block_status: client.clone(), - announce_block, - client: client.clone(), - task_manager: &mut task_manager, - relay_chain_interface, - spawner, - parachain_consensus, - import_queue: import_queue_service, - collator_key: collator_key.expect("Command line arguments do not allow this. qed"), - relay_chain_slot_duration, - }; + Ok((task_manager, client)) +} - start_collator(params).await?; - } else { - let params = StartFullNodeParams { - client: client.clone(), - announce_block, - task_manager: &mut task_manager, - para_id, - relay_chain_interface, - relay_chain_slot_duration, - import_queue: import_queue_service, - }; +/// Build the import queue for the parachain runtime. +fn build_import_queue( + client: Arc, + block_import: ParachainBlockImport, + config: &Configuration, + telemetry: Option, + task_manager: &TaskManager, +) -> Result, sc_service::Error> { + let slot_duration = cumulus_client_consensus_aura::slot_duration(&*client)?; - start_full_node(params)?; - } + Ok( + cumulus_client_consensus_aura::equivocation_import_queue::fully_verifying_import_queue::< + sp_consensus_aura::sr25519::AuthorityPair, + _, + _, + _, + _, + >( + client, + block_import, + move |_, _| async move { + let timestamp = sp_timestamp::InherentDataProvider::from_system_time(); + Ok(timestamp) + }, + slot_duration, + &task_manager.spawn_essential_handle(), + config.prometheus_registry(), + telemetry, + ), + ) +} - start_network.start_network(); +fn start_consensus( + client: Arc, + block_import: ParachainBlockImport, + prometheus_registry: Option<&Registry>, + telemetry: Option, + task_manager: &TaskManager, + relay_chain_interface: Arc, + transaction_pool: Arc>, + sync_oracle: Arc>, + keystore: KeystorePtr, + relay_chain_slot_duration: Duration, + para_id: ParaId, + collator_key: CollatorPair, + overseer_handle: OverseerHandle, + announce_block: Arc>) + Send + Sync>, +) -> Result<(), sc_service::Error> { + use cumulus_client_consensus_aura::collators::basic::{self as basic_aura, Params as BasicAuraParams}; + + // NOTE: because we use Aura here explicitly, we can use `CollatorSybilResistance::Resistant` + // when starting the network. + + let slot_duration = cumulus_client_consensus_aura::slot_duration(&*client)?; + + let proposer_factory = sc_basic_authorship::ProposerFactory::with_proof_recording( + task_manager.spawn_handle(), + client.clone(), + transaction_pool, + prometheus_registry, + telemetry.clone(), + ); + + let proposer = Proposer::new(proposer_factory); + + let collator_service = CollatorService::new( + client.clone(), + Arc::new(task_manager.spawn_handle()), + announce_block, + client.clone(), + ); + + let params = BasicAuraParams { + create_inherent_data_providers: move |_, ()| async move { Ok(()) }, + block_import, + para_client: client, + relay_client: relay_chain_interface, + sync_oracle, + keystore, + collator_key, + para_id, + overseer_handle, + slot_duration, + relay_chain_slot_duration, + proposer, + collator_service, + // Very limited proposal time. + authoring_duration: Duration::from_millis(500), + }; - Ok((client, task_manager)) + let fut = basic_aura::run::(params); + task_manager.spawn_essential_handle().spawn("aura", None, fut); + + Ok(()) } -/// Start a normal parachain node. -#[sc_tracing::logging::prefix_logs_with("Parachain")] +/// Start a parachain node. pub async fn start_node( parachain_config: Configuration, polkadot_config: Configuration, collator_options: CollatorOptions, para_id: ParaId, -) -> sc_service::error::Result<( - Arc>, - TaskManager, -)> { - start_node_impl::<_, basilisk_runtime::RuntimeApi, BasiliskExecutorDispatch, _>( - parachain_config, - polkadot_config, - collator_options, - para_id, - |_| Ok(RpcModule::new(())), - |client, - block_import, - prometheus_registry, - telemetry, - task_manager, - relay_chain_interface, - transaction_pool, - sync_oracle, - keystore, - force_authoring| { - let slot_duration = cumulus_client_consensus_aura::slot_duration(&*client)?; - - let proposer_factory = sc_basic_authorship::ProposerFactory::with_proof_recording( - task_manager.spawn_handle(), - client.clone(), - transaction_pool, - prometheus_registry.clone(), - telemetry.clone(), - ); - - Ok(AuraConsensus::build::< - sp_consensus_aura::sr25519::AuthorityPair, - _, - _, - _, - _, - _, - _, - >(BuildAuraConsensusParams { - proposer_factory, - create_inherent_data_providers: move |_, (relay_parent, validation_data)| { - let relay_chain_interface = relay_chain_interface.clone(); - async move { - let parachain_inherent = - cumulus_primitives_parachain_inherent::ParachainInherentData::create_at( - relay_parent, - &relay_chain_interface, - &validation_data, - para_id, - ) - .await; - - let timestamp = sp_timestamp::InherentDataProvider::from_system_time(); - - let slot = sp_consensus_aura::inherents::InherentDataProvider::from_timestamp_and_slot_duration( - *timestamp, - slot_duration, - ); - - let parachain_inherent = parachain_inherent.ok_or_else(|| { - Box::::from("Failed to create parachain inherent") - })?; - Ok((slot, timestamp, parachain_inherent)) - } - }, - block_import, - para_client: client, - backoff_authoring_blocks: Option::<()>::None, - sync_oracle, - keystore, - force_authoring, - slot_duration, - // We got around 500ms for proposing - block_proposal_slot_portion: SlotProportion::new(1f32 / 24f32), - // And a maximum of 750ms if slots are skipped - max_block_proposal_slot_portion: Some(SlotProportion::new(1f32 / 16f32)), - telemetry, - })) - }, - ) - .await + hwbench: Option, +) -> sc_service::error::Result<(TaskManager, Arc)> { + start_node_impl(parachain_config, polkadot_config, collator_options, para_id, hwbench).await } diff --git a/pallets/lbp/Cargo.toml b/pallets/lbp/Cargo.toml deleted file mode 100644 index cbcad270f55..00000000000 --- a/pallets/lbp/Cargo.toml +++ /dev/null @@ -1,71 +0,0 @@ -[package] -name = "pallet-lbp" -version = "4.6.13" -description = "HydraDX Liquidity Bootstrapping Pool Pallet" -authors = ["GalacticCouncil"] -edition = "2021" -homepage = "https://github.com/galacticcouncil/Basilisk-node" -license = "Apache 2.0" -repository = "https://github.com/galacticcouncil/Basilisk-node" - -[package.metadata.docs.rs] -targets = ["x86_64-unknown-linux-gnu"] - -[build-dependencies] -substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38" } - -[dependencies] -codec = { default-features = false, features = ["derive"], package = "parity-scale-codec", version = "3.4.0" } -scale-info = { version = "2.3.1", default-features = false, features = ["derive"] } -primitive-types = { default-features = false, version = "0.12.0" } -serde = { features = ["derive"], optional = true, version = "1.0.136" } - -# Warehouse dependencies -hydra-dx-math = { workspace = true } - -hydradx-traits = { workspace = true } - -## Local dependencies -primitives = { default-features = false, path = "../../primitives" } - -## ORML dependencies -orml-traits = { git = "https://github.com/open-web3-stack/open-runtime-module-library", branch = "polkadot-v0.9.38", default-features = false } - -## Substrate dependencies -frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false, optional = true } -frame-support = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -frame-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false, optional = true } -sp-std = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } - -# Needed for benchmarks -orml-tokens = { git = "https://github.com/open-web3-stack/open-runtime-module-library", branch = "polkadot-v0.9.38", default-features = false } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } - -[dev-dependencies] -sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -test-utils = { workspace = true } - -[features] -default = ["std"] -runtime-benchmarks = [ - "frame-benchmarking", - "frame-system/runtime-benchmarks", - "frame-support/runtime-benchmarks", -] -std = [ - "serde", - "codec/std", - "frame-support/std", - "frame-system/std", - "orml-tokens/std", - "orml-traits/std", - "sp-runtime/std", - "sp-core/std", - "sp-std/std", - "primitives/std", - "hydradx-traits/std", - "scale-info/std", -] -try-runtime = ["frame-support/try-runtime"] diff --git a/pallets/lbp/src/benchmarking.rs b/pallets/lbp/src/benchmarking.rs deleted file mode 100644 index 80c47900a75..00000000000 --- a/pallets/lbp/src/benchmarking.rs +++ /dev/null @@ -1,175 +0,0 @@ -// This file is part of Basilisk-node. - -// Copyright (C) 2020-2022 Intergalactic, Limited (GIB). -// SPDX-License-Identifier: Apache-2.0 - -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#![cfg(feature = "runtime-benchmarks")] - -use super::*; - -use frame_benchmarking::{account, benchmarks}; -use frame_system::RawOrigin; - -use primitives::AssetId; - -use crate::Pallet as LBP; - -const SEED: u32 = 1; - -const ASSET_HDX: AssetId = 0; -const ASSET_A_ID: AssetId = 1; -const ASSET_B_ID: AssetId = 2; -const ASSET_A_AMOUNT: Balance = 1_000_000_000; -const ASSET_B_AMOUNT: Balance = 2_000_000_000; -const INITIAL_WEIGHT: LBPWeight = 20_000_000; -const FINAL_WEIGHT: LBPWeight = 90_000_000; - -const DEFAULT_FEE: (u32, u32) = (2, 1_000); - -fn funded_account(name: &'static str, index: u32) -> T::AccountId { - let caller: T::AccountId = account(name, index, SEED); - T::MultiCurrency::update_balance(ASSET_HDX, &caller, 1_000_000_000_000_000).unwrap(); - T::MultiCurrency::update_balance(ASSET_A_ID, &caller, 1_000_000_000_000_000).unwrap(); - T::MultiCurrency::update_balance(ASSET_B_ID, &caller, 1_000_000_000_000_000).unwrap(); - caller -} - -benchmarks! { - create_pool { - let caller = funded_account::("caller", 0); - let pool_id = LBP::::pair_account_from_assets(ASSET_A_ID, ASSET_B_ID); - - }: _(RawOrigin::Root, caller.clone(), ASSET_A_ID, ASSET_A_AMOUNT, ASSET_B_ID, ASSET_B_AMOUNT, INITIAL_WEIGHT, FINAL_WEIGHT, WeightCurveType::Linear, DEFAULT_FEE, caller, 0) - verify { - assert!(PoolData::::contains_key(&pool_id)); - } - - update_pool_data { - let caller = funded_account::("caller", 0); - let fee_collector = funded_account::("fee_collector", 0); - let pool_id = LBP::::pair_account_from_assets(ASSET_A_ID, ASSET_B_ID); - let new_start = Some(T::BlockNumber::from(50_u32)); - let new_end = Some(T::BlockNumber::from(100_u32)); - let new_initial_weight = 45_250_600; - let new_final_weight = 55_250_600; - let fee = (5, 1000); - - LBP::::create_pool(RawOrigin::Root.into(), caller.clone(), ASSET_A_ID, ASSET_A_AMOUNT, ASSET_B_ID, ASSET_B_AMOUNT, INITIAL_WEIGHT, FINAL_WEIGHT, WeightCurveType::Linear, fee, caller.clone(), 0)?; - ensure!(PoolData::::contains_key(&pool_id), "Pool does not exist."); - - }: _(RawOrigin::Signed(caller.clone()), pool_id.clone(), Some(caller.clone()), new_start, new_end, Some(new_initial_weight), Some(new_final_weight), Some(DEFAULT_FEE), Some(fee_collector), Some(1)) - verify { - let pool_data = LBP::::pool_data(pool_id).unwrap(); - assert_eq!(pool_data.start, new_start); - assert_eq!(pool_data.end, new_end); - assert_eq!(pool_data.initial_weight, new_initial_weight); - assert_eq!(pool_data.final_weight, new_final_weight); - } - - add_liquidity { - let caller = funded_account::("caller", 0); - let pool_id = LBP::::pair_account_from_assets(ASSET_A_ID, ASSET_B_ID); - - LBP::::create_pool(RawOrigin::Root.into(), caller.clone(), ASSET_A_ID, ASSET_A_AMOUNT, ASSET_B_ID, ASSET_B_AMOUNT, INITIAL_WEIGHT, FINAL_WEIGHT, WeightCurveType::Linear, DEFAULT_FEE, caller.clone(), 0)?; - ensure!(PoolData::::contains_key(&pool_id), "Pool does not exist."); - - }: _(RawOrigin::Signed(caller), (ASSET_A_ID, 1_000_000_000_u128), (ASSET_B_ID, 2_000_000_000_u128)) - verify { - assert_eq!(T::MultiCurrency::free_balance(ASSET_A_ID, &pool_id), 2_000_000_000_u128); - assert_eq!(T::MultiCurrency::free_balance(ASSET_B_ID, &pool_id), 4_000_000_000_u128); - } - - remove_liquidity { - let caller = funded_account::("caller", 0); - let pool_id = LBP::::pair_account_from_assets(ASSET_A_ID, ASSET_B_ID); - - LBP::::create_pool(RawOrigin::Root.into(), caller.clone(), ASSET_A_ID, ASSET_A_AMOUNT, ASSET_B_ID, ASSET_B_AMOUNT, INITIAL_WEIGHT, FINAL_WEIGHT, WeightCurveType::Linear, DEFAULT_FEE, caller.clone(), 0)?; - ensure!(PoolData::::contains_key(&pool_id), "Pool does not exist."); - - }: _(RawOrigin::Signed(caller.clone()), pool_id.clone()) - verify { - assert!(!PoolData::::contains_key(&pool_id)); - assert_eq!(T::MultiCurrency::free_balance(ASSET_A_ID, &caller), 1000000000000000); - assert_eq!(T::MultiCurrency::free_balance(ASSET_B_ID, &caller), 1000000000000000); - } - - sell { - let caller = funded_account::("caller", 0); - let fee_collector = funded_account::("fee_collector", 0); - let asset_in: AssetId = ASSET_A_ID; - let asset_out: AssetId = ASSET_B_ID; - let amount : Balance = 100_000_000; - let max_limit: Balance = 10_000_000; - - let pool_id = LBP::::pair_account_from_assets(ASSET_A_ID, ASSET_B_ID); - - LBP::::create_pool(RawOrigin::Root.into(), caller.clone(), ASSET_A_ID, ASSET_A_AMOUNT, ASSET_B_ID, ASSET_B_AMOUNT, INITIAL_WEIGHT, FINAL_WEIGHT, WeightCurveType::Linear, DEFAULT_FEE, fee_collector.clone(), 0)?; - ensure!(PoolData::::contains_key(&pool_id), "Pool does not exist."); - - let start = T::BlockNumber::from(1u32); - let end = T::BlockNumber::from(11u32); - - LBP::::update_pool_data(RawOrigin::Signed(caller.clone()).into(), pool_id, None, Some(start), Some(end), None, None, None, None, None)?; - - }: _(RawOrigin::Signed(caller.clone()), asset_in, asset_out, amount, max_limit) - verify{ - assert_eq!(T::MultiCurrency::free_balance(asset_in, &caller), 999998900000000); - assert_eq!(T::MultiCurrency::free_balance(asset_out, &caller), 999998047091811); - assert_eq!(T::MultiCurrency::free_balance(asset_in, &fee_collector), 1000000000200000); - } - - buy { - let caller = funded_account::("caller", 0); - let fee_collector = funded_account::("fee_collector", 0); - let asset_in: AssetId = ASSET_A_ID; - let asset_out: AssetId = ASSET_B_ID; - let amount : Balance = 100_000_000; - let max_limit: Balance = 1_000_000_000; - let pool_id = LBP::::pair_account_from_assets(ASSET_A_ID, ASSET_B_ID); - - LBP::::create_pool(RawOrigin::Root.into(), caller.clone(), ASSET_A_ID, ASSET_A_AMOUNT, ASSET_B_ID, ASSET_B_AMOUNT, INITIAL_WEIGHT, FINAL_WEIGHT, WeightCurveType::Linear, DEFAULT_FEE, fee_collector.clone(), 0)?; - ensure!(PoolData::::contains_key(&pool_id), "Pool does not exist."); - - let start = T::BlockNumber::from(1u32); - let end = T::BlockNumber::from(11u32); - - LBP::::update_pool_data(RawOrigin::Signed(caller.clone()).into(), pool_id, None, Some(start), Some(end), None, None, None, None, None)?; - - }: _(RawOrigin::Signed(caller.clone()), asset_out, asset_in, amount, max_limit) - verify{ - assert_eq!(T::MultiCurrency::free_balance(asset_out, &caller), 999998100000000); - assert_eq!(T::MultiCurrency::free_balance(asset_in, &caller), 999998772262325); - assert_eq!(T::MultiCurrency::free_balance(asset_in, &fee_collector), 1000000000455474); - } -} - -#[cfg(test)] -mod tests { - use super::*; - use crate::tests::{new_test_ext, Test}; - use frame_support::assert_ok; - - #[test] - fn test_benchmarks() { - new_test_ext().execute_with(|| { - assert_ok!(Pallet::::test_benchmark_create_pool()); - assert_ok!(Pallet::::test_benchmark_update_pool_data()); - assert_ok!(Pallet::::test_benchmark_add_liquidity()); - assert_ok!(Pallet::::test_benchmark_remove_liquidity()); - assert_ok!(Pallet::::test_benchmark_sell()); - assert_ok!(Pallet::::test_benchmark_buy()); - }); - } -} diff --git a/pallets/lbp/src/lib.rs b/pallets/lbp/src/lib.rs deleted file mode 100644 index 4b31ace098d..00000000000 --- a/pallets/lbp/src/lib.rs +++ /dev/null @@ -1,1272 +0,0 @@ -// This file is part of Basilisk-node. - -// Copyright (C) 2020-2022 Intergalactic, Limited (GIB). -// SPDX-License-Identifier: Apache-2.0 - -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#![cfg_attr(not(feature = "std"), no_std)] -#![allow(clippy::unused_unit)] -#![allow(clippy::upper_case_acronyms)] -#![allow(clippy::type_complexity)] -#![allow(clippy::too_many_arguments)] - -use codec::{Decode, Encode, MaxEncodedLen}; -use frame_support::sp_runtime::{ - traits::{AtLeast32BitUnsigned, BlockNumberProvider, Saturating, Zero}, - DispatchError, RuntimeDebug, -}; -use frame_support::{ - dispatch::DispatchResult, - ensure, - traits::{EnsureOrigin, Get, LockIdentifier}, - transactional, -}; -use frame_system::ensure_signed; -use hydra_dx_math::types::LBPWeight; -use hydradx_traits::{AMMTransfer, AssetPairAccountIdFor, CanCreatePool, LockedBalance, AMM}; -use orml_traits::{MultiCurrency, MultiCurrencyExtended, MultiLockableCurrency}; -use primitives::{ - asset::AssetPair, - constants::chain::{MAX_IN_RATIO, MAX_OUT_RATIO}, - Amount, AssetId, Balance, -}; - -use scale_info::TypeInfo; - -#[cfg(feature = "std")] -use serde::{Deserialize, Serialize}; -use sp_std::{vec, vec::Vec}; - -#[cfg(test)] -mod mock; - -#[cfg(test)] -mod tests; - -mod benchmarking; - -#[allow(clippy::all)] -pub mod weights; - -mod trade_execution; - -use weights::WeightInfo; -// Re-export pallet items so that they can be accessed from the crate namespace. -pub use pallet::*; - -type BalanceOf = <::MultiCurrency as MultiCurrency<::AccountId>>::Balance; -type PoolId = ::AccountId; - -#[cfg_attr(feature = "std", derive(Serialize, Deserialize))] -#[derive(RuntimeDebug, Encode, Decode, Copy, Clone, PartialEq, Eq, TypeInfo, MaxEncodedLen)] -pub enum WeightCurveType { - Linear, -} - -impl Default for WeightCurveType { - fn default() -> Self { - WeightCurveType::Linear - } -} - -/// Max weight corresponds to 100% -pub const MAX_WEIGHT: LBPWeight = 100_000_000; - -/// Max sale duration is 14 days, assuming 6 sec blocks -pub const MAX_SALE_DURATION: u32 = (60 * 60 * 24 / 6) * 14; - -/// Lock Identifier for the collected fees -pub const COLLECTOR_LOCK_ID: LockIdentifier = *b"lbpcllct"; - -#[cfg_attr(feature = "std", derive(Serialize, Deserialize))] -#[derive(RuntimeDebug, Encode, Decode, Clone, PartialEq, Eq, TypeInfo, MaxEncodedLen)] -pub struct Pool { - /// owner of the pool after `CreatePoolOrigin` creates it - pub owner: AccountId, - - /// start block - pub start: Option, - - /// end block - pub end: Option, - - /// Asset ids of the tokens (accumulating asset, sold asset) // TODO maybe name them accordingly in struct instead of tuple - pub assets: (AssetId, AssetId), - - /// initial weight of the asset_a where the minimum value is 0 (equivalent to 0% weight), and the maximum value is 100_000_000 (equivalent to 100% weight) - pub initial_weight: LBPWeight, - - /// final weights of the asset_a where the minimum value is 0 (equivalent to 0% weight), and the maximum value is 100_000_000 (equivalent to 100% weight) - pub final_weight: LBPWeight, - - /// weight curve - pub weight_curve: WeightCurveType, - - /// standard fee amount - pub fee: (u32, u32), - - /// person that receives the fee - pub fee_collector: AccountId, - - /// repayment target of the accumulated asset in fee collectors account, when this target is reached fee drops from 20% to fee - pub repay_target: Balance, -} - -impl Pool { - fn new( - pool_owner: AccountId, - asset_a: AssetId, - asset_b: AssetId, - initial_weight: LBPWeight, - final_weight: LBPWeight, - weight_curve: WeightCurveType, - fee: (u32, u32), - fee_collector: AccountId, - repay_target: Balance, - ) -> Self { - Pool { - owner: pool_owner, - start: None, - end: None, - assets: (asset_a, asset_b), - initial_weight, - final_weight, - weight_curve, - fee, - fee_collector, - repay_target, - } - } -} - -pub trait LBPWeightCalculation { - fn calculate_weight( - weight_curve: WeightCurveType, - start: BlockNumber, - end: BlockNumber, - initial_weight: LBPWeight, - final_weight: LBPWeight, - at: BlockNumber, - ) -> Option; -} - -pub struct LBPWeightFunction; -impl LBPWeightCalculation for LBPWeightFunction { - fn calculate_weight( - _weight_curve: WeightCurveType, - start: BlockNumber, - end: BlockNumber, - initial_weight: LBPWeight, - final_weight: LBPWeight, - at: BlockNumber, - ) -> Option { - hydra_dx_math::lbp::calculate_linear_weights(start, end, initial_weight, final_weight, at).ok() - } -} - -#[frame_support::pallet] -pub mod pallet { - use super::*; - use frame_support::pallet_prelude::*; - use frame_system::pallet_prelude::OriginFor; - - #[pallet::pallet] - pub struct Pallet(_); - - #[pallet::config] - pub trait Config: frame_system::Config { - type RuntimeEvent: From> + IsType<::RuntimeEvent>; - - /// Multi currency for transfer of currencies - type MultiCurrency: MultiCurrencyExtended - + MultiLockableCurrency; - - /// Universal locked balance getter for tracking of fee collector balance - type LockedBalance: LockedBalance; - - /// The origin which can create a new pool - type CreatePoolOrigin: EnsureOrigin; - - /// Function for calculation of LBP weights - type LBPWeightFunction: LBPWeightCalculation; - - /// Mapping of asset pairs to unique pool identities - type AssetPairAccountId: AssetPairAccountIdFor>; - - /// Weight information for the extrinsics - type WeightInfo: WeightInfo; - - /// Minimum trading limit, sole purpose of this is to keep the math working - #[pallet::constant] - type MinTradingLimit: Get; - - /// Minimum pool liquidity, sole purpose of this is to keep the math working - #[pallet::constant] - type MinPoolLiquidity: Get; - - /// Max fraction of pool to sell in single transaction - #[pallet::constant] - type MaxInRatio: Get; - - /// Max fraction of pool to buy in single transaction - #[pallet::constant] - type MaxOutRatio: Get; - - /// The block number provider - type BlockNumberProvider: BlockNumberProvider; - } - - #[pallet::hooks] - impl Hooks for Pallet {} - - #[pallet::error] - pub enum Error { - /// Pool assets can not be the same - CannotCreatePoolWithSameAssets, - - /// Account is not a pool owner - NotOwner, - - /// Sale already started - SaleStarted, - - /// Sale is still in progress - SaleNotEnded, - - /// Sale is not running - SaleIsNotRunning, - - /// Sale duration is too long - MaxSaleDurationExceeded, - - /// Liquidity being added should not be zero - CannotAddZeroLiquidity, - - /// Asset balance too low - InsufficientAssetBalance, - - /// Pool does not exist - PoolNotFound, - - /// Pool has been already created - PoolAlreadyExists, - - /// Invalid block range - InvalidBlockRange, - - /// Calculation error - WeightCalculationError, - - /// Weight set is out of range - InvalidWeight, - - /// Can not perform a trade with zero amount - ZeroAmount, - - /// Trade amount is too high - MaxInRatioExceeded, - - /// Trade amount is too high - MaxOutRatioExceeded, - - /// Invalid fee amount - FeeAmountInvalid, - - /// Trading limit reached - TradingLimitReached, - - /// An unexpected integer overflow occurred - Overflow, - - /// Nothing to update - NothingToUpdate, - - /// Liquidity has not reached the required minimum. - InsufficientLiquidity, - - /// Amount is less than minimum trading limit. - InsufficientTradingAmount, - - /// Not more than one fee collector per asset id - FeeCollectorWithAssetAlreadyUsed, - } - - #[pallet::event] - #[pallet::generate_deposit(pub(crate) fn deposit_event)] - pub enum Event { - /// Pool was created by the `CreatePool` origin. - PoolCreated { - pool: PoolId, - data: Pool, - }, - - /// Pool data were updated. - PoolUpdated { - pool: PoolId, - data: Pool, - }, - - /// New liquidity was provided to the pool. - LiquidityAdded { - who: T::AccountId, - asset_a: AssetId, - asset_b: AssetId, - amount_a: BalanceOf, - amount_b: BalanceOf, - }, - - /// Liquidity was removed from the pool and the pool was destroyed. - LiquidityRemoved { - who: T::AccountId, - asset_a: AssetId, - asset_b: AssetId, - amount_a: BalanceOf, - amount_b: BalanceOf, - }, - - /// Sale executed. - SellExecuted { - who: T::AccountId, - asset_in: AssetId, - asset_out: AssetId, - amount: BalanceOf, - sale_price: BalanceOf, - fee_asset: AssetId, - fee_amount: BalanceOf, - }, - - /// Purchase executed. - BuyExecuted { - who: T::AccountId, - asset_out: AssetId, - asset_in: AssetId, - amount: BalanceOf, - buy_price: BalanceOf, - fee_asset: AssetId, - fee_amount: BalanceOf, - }, - } - - /// Details of a pool. - #[pallet::storage] - #[pallet::getter(fn pool_data)] - pub type PoolData = - StorageMap<_, Blake2_128Concat, PoolId, Pool, OptionQuery>; - - /// Storage used for tracking existing fee collectors - /// Not more than one fee collector per asset possible - #[pallet::storage] - pub type FeeCollectorWithAsset = - StorageDoubleMap<_, Blake2_128Concat, T::AccountId, Blake2_128Concat, AssetId, bool, ValueQuery>; - - #[pallet::extra_constants] - impl Pallet { - pub fn repay_fee() -> (u32, u32) { - (2, 10) - } - } - - #[pallet::call] - impl Pallet { - /// Create a new liquidity bootstrapping pool for given asset pair. - /// - /// For any asset pair, only one pool can exist at a time. - /// - /// The dispatch origin for this call must be `T::CreatePoolOrigin`. - /// The pool is created with initial liquidity provided by the `pool_owner` who must have - /// sufficient funds free. - /// - /// The pool starts uninitialized and update_pool call should be called once created to set the start block. - /// - /// This function should be dispatched from governing entity `T::CreatePoolOrigin` - /// - /// Parameters: - /// - `pool_owner`: the future owner of the new pool. - /// - `asset_a`: { asset_id, amount } Asset ID and initial liquidity amount. - /// - `asset_b`: { asset_id, amount } Asset ID and initial liquidity amount. - /// - `initial_weight`: Initial weight of the asset_a. 1_000_000 corresponding to 1% and 100_000_000 to 100% - /// this should be higher than final weight - /// - `final_weight`: Final weight of the asset_a. 1_000_000 corresponding to 1% and 100_000_000 to 100% - /// this should be lower than initial weight - /// - `weight_curve`: The weight function used to update the LBP weights. Currently, - /// there is only one weight function implemented, the linear function. - /// - `fee`: The trading fee charged on every trade distributed to `fee_collector`. - /// - `fee_collector`: The account to which trading fees will be transferred. - /// - `repay_target`: The amount of tokens to repay to separate fee_collector account. Until this amount is - /// reached, fee will be increased to 20% and taken from the pool - /// - /// Emits `PoolCreated` event when successful. - /// - /// BEWARE: We are taking the fee from the accumulated asset. If the accumulated asset is sold to the pool, - /// the fee cost is transferred to the pool. If its bought from the pool the buyer bears the cost. - /// This increases the price of the sold asset on every trade. Make sure to only run this with - /// previously illiquid assets. - #[pallet::call_index(0)] - #[pallet::weight(::WeightInfo::create_pool())] - pub fn create_pool( - origin: OriginFor, - pool_owner: T::AccountId, - asset_a: AssetId, - asset_a_amount: Balance, - asset_b: AssetId, - asset_b_amount: Balance, - initial_weight: LBPWeight, - final_weight: LBPWeight, - weight_curve: WeightCurveType, - fee: (u32, u32), - fee_collector: T::AccountId, - repay_target: Balance, - ) -> DispatchResult { - T::CreatePoolOrigin::ensure_origin(origin)?; - - ensure!( - asset_a_amount >= T::MinPoolLiquidity::get() && asset_b_amount >= T::MinPoolLiquidity::get(), - Error::::InsufficientLiquidity - ); - - ensure!(asset_a != asset_b, Error::::CannotCreatePoolWithSameAssets); - - let asset_pair = AssetPair { - asset_in: asset_a, - asset_out: asset_b, - }; - - ensure!(!Self::exists(asset_pair), Error::::PoolAlreadyExists); - - ensure!( - !>::contains_key(fee_collector.clone(), asset_a), - Error::::FeeCollectorWithAssetAlreadyUsed - ); - - ensure!( - T::MultiCurrency::free_balance(asset_a, &pool_owner) >= asset_a_amount, - Error::::InsufficientAssetBalance - ); - - ensure!( - T::MultiCurrency::free_balance(asset_b, &pool_owner) >= asset_b_amount, - Error::::InsufficientAssetBalance - ); - - let pool_data = Pool::new( - pool_owner.clone(), - asset_a, - asset_b, - initial_weight, - final_weight, - weight_curve, - fee, - fee_collector.clone(), - repay_target, - ); - - Self::validate_pool_data(&pool_data)?; - - let pool_id = Self::get_pair_id(asset_pair); - - >::insert(&pool_id, &pool_data); - >::insert(fee_collector, asset_a, true); - - Self::deposit_event(Event::PoolCreated { - pool: pool_id.clone(), - data: pool_data, - }); - - T::MultiCurrency::transfer(asset_a, &pool_owner, &pool_id, asset_a_amount)?; - T::MultiCurrency::transfer(asset_b, &pool_owner, &pool_id, asset_b_amount)?; - - Self::deposit_event(Event::LiquidityAdded { - who: pool_id, - asset_a, - asset_b, - amount_a: asset_a_amount, - amount_b: asset_b_amount, - }); - - Ok(()) - } - - /// Update pool data of a pool. - /// - /// The dispatch origin for this call must be signed by the pool owner. - /// - /// The pool can be updated only if the sale has not already started. - /// - /// At least one of the following optional parameters has to be specified. - /// - /// Parameters: - /// - `pool_id`: The identifier of the pool to be updated. - /// - `start`: The new starting time of the sale. This parameter is optional. - /// - `end`: The new ending time of the sale. This parameter is optional. - /// - `initial_weight`: The new initial weight. This parameter is optional. - /// - `final_weight`: The new final weight. This parameter is optional. - /// - `fee`: The new trading fee charged on every trade. This parameter is optional. - /// - `fee_collector`: The new receiver of trading fees. This parameter is optional. - /// - /// Emits `PoolUpdated` event when successful. - #[pallet::call_index(1)] - #[pallet::weight(::WeightInfo::update_pool_data())] - pub fn update_pool_data( - origin: OriginFor, - pool_id: PoolId, - pool_owner: Option, - start: Option, - end: Option, - initial_weight: Option, - final_weight: Option, - fee: Option<(u32, u32)>, - fee_collector: Option, - repay_target: Option, - ) -> DispatchResult { - let who = ensure_signed(origin)?; - - >::try_mutate_exists(pool_id.clone(), |maybe_pool| -> DispatchResult { - // check existence of the pool - let mut pool = maybe_pool.as_mut().ok_or(Error::::PoolNotFound)?; - - ensure!( - start.is_some() - || end.is_some() || initial_weight.is_some() - || final_weight.is_some() - || fee.is_some() || fee_collector.is_some() - || repay_target.is_some(), - Error::::NothingToUpdate - ); - - ensure!(who == pool.owner, Error::::NotOwner); - - ensure!(!Self::has_pool_started(pool), Error::::SaleStarted); - - pool.owner = pool_owner.unwrap_or_else(|| pool.owner.clone()); - - pool.start = start.or(pool.start); - pool.end = end.or(pool.end); - - pool.initial_weight = initial_weight.unwrap_or(pool.initial_weight); - - pool.final_weight = final_weight.unwrap_or(pool.final_weight); - - pool.fee = fee.unwrap_or(pool.fee); - - // Handle update of fee collector - validate and replace old fee collector - if let Some(updated_fee_collector) = fee_collector { - FeeCollectorWithAsset::::try_mutate( - &updated_fee_collector, - pool.assets.0, - |collector| -> DispatchResult { - ensure!(!*collector, Error::::FeeCollectorWithAssetAlreadyUsed); - - >::remove(&pool.fee_collector, pool.assets.0); - *collector = true; - - Ok(()) - }, - )?; - - pool.fee_collector = updated_fee_collector; - } - - pool.repay_target = repay_target.unwrap_or(pool.repay_target); - - Self::validate_pool_data(pool)?; - - Self::deposit_event(Event::PoolUpdated { - pool: pool_id, - data: (*pool).clone(), - }); - Ok(()) - }) - } - - /// Add liquidity to a pool. - /// - /// Assets to add has to match the pool assets. At least one amount has to be non-zero. - /// - /// The dispatch origin for this call must be signed by the pool owner. - /// - /// Parameters: - /// - `pool_id`: The identifier of the pool - /// - `amount_a`: The identifier of the asset and the amount to add. - /// - `amount_b`: The identifier of the second asset and the amount to add. - /// - /// Emits `LiquidityAdded` event when successful. - #[pallet::call_index(2)] - #[pallet::weight(::WeightInfo::add_liquidity())] - pub fn add_liquidity( - origin: OriginFor, - amount_a: (AssetId, BalanceOf), - amount_b: (AssetId, BalanceOf), - ) -> DispatchResult { - let who = ensure_signed(origin)?; - - let (asset_a, asset_b) = (amount_a.0, amount_b.0); - let (amount_a, amount_b) = (amount_a.1, amount_b.1); - - let pool_id = Self::pair_account_from_assets(asset_a, asset_b); - let pool_data = >::try_get(&pool_id).map_err(|_| Error::::PoolNotFound)?; - - ensure!(who == pool_data.owner, Error::::NotOwner); - - ensure!( - !amount_a.is_zero() || !amount_b.is_zero(), - Error::::CannotAddZeroLiquidity - ); - - if !amount_a.is_zero() { - ensure!( - T::MultiCurrency::free_balance(asset_a, &who) >= amount_a, - Error::::InsufficientAssetBalance - ); - } - - if !amount_b.is_zero() { - ensure!( - T::MultiCurrency::free_balance(asset_b, &who) >= amount_b, - Error::::InsufficientAssetBalance - ); - } - - T::MultiCurrency::transfer(asset_a, &who, &pool_id, amount_a)?; - T::MultiCurrency::transfer(asset_b, &who, &pool_id, amount_b)?; - - Self::deposit_event(Event::LiquidityAdded { - who: pool_id, - asset_a, - asset_b, - amount_a, - amount_b, - }); - - Ok(()) - } - - /// Transfer all the liquidity from a pool back to the pool owner and destroy the pool. - /// The pool data are also removed from the storage. - /// - /// The pool can't be destroyed during the sale. - /// - /// The dispatch origin for this call must be signed by the pool owner. - /// - /// Parameters: - /// - `amount_a`: The identifier of the asset and the amount to add. - /// - /// Emits 'LiquidityRemoved' when successful. - #[pallet::call_index(3)] - #[pallet::weight(::WeightInfo::remove_liquidity())] - pub fn remove_liquidity(origin: OriginFor, pool_id: PoolId) -> DispatchResult { - let who = ensure_signed(origin)?; - - let pool_data = >::try_get(&pool_id).map_err(|_| Error::::PoolNotFound)?; - - ensure!(who == pool_data.owner, Error::::NotOwner); - - ensure!(!Self::is_pool_running(&pool_data), Error::::SaleNotEnded); - - let (asset_a, asset_b) = pool_data.assets; - - let amount_a = T::MultiCurrency::free_balance(asset_a, &pool_id); - let amount_b = T::MultiCurrency::free_balance(asset_b, &pool_id); - - T::MultiCurrency::transfer(asset_a, &pool_id, &who, amount_a)?; - T::MultiCurrency::transfer(asset_b, &pool_id, &who, amount_b)?; - - if Self::collected_fees(&pool_data) > 0 { - T::MultiCurrency::remove_lock(COLLECTOR_LOCK_ID, asset_a, &pool_data.fee_collector)?; - } - - >::remove(pool_data.fee_collector, pool_data.assets.0); - >::remove(&pool_id); - - Self::deposit_event(Event::LiquidityRemoved { - who: pool_id, - asset_a, - asset_b, - amount_a, - amount_b, - }); - - Ok(()) - } - - /// Trade `asset_in` for `asset_out`. - /// - /// Executes a swap of `asset_in` for `asset_out`. Price is determined by the pool and is - /// affected by the amount and proportion of the pool assets and the weights. - /// - /// Trading `fee` is distributed to the `fee_collector`. - /// - /// Parameters: - /// - `asset_in`: The identifier of the asset being transferred from the account to the pool. - /// - `asset_out`: The identifier of the asset being transferred from the pool to the account. - /// - `amount`: The amount of `asset_in` - /// - `max_limit`: minimum amount of `asset_out` / amount of asset_out to be obtained from the pool in exchange for `asset_in`. - /// - /// Emits `SellExecuted` when successful. - #[pallet::call_index(4)] - #[pallet::weight(::WeightInfo::sell())] - pub fn sell( - origin: OriginFor, - asset_in: AssetId, - asset_out: AssetId, - amount: BalanceOf, - max_limit: BalanceOf, - ) -> DispatchResult { - let who = ensure_signed(origin)?; - - >::sell(&who, AssetPair { asset_in, asset_out }, amount, max_limit, false)?; - - Ok(()) - } - - /// Trade `asset_in` for `asset_out`. - /// - /// Executes a swap of `asset_in` for `asset_out`. Price is determined by the pool and is - /// affected by the amount and the proportion of the pool assets and the weights. - /// - /// Trading `fee` is distributed to the `fee_collector`. - /// - /// Parameters: - /// - `asset_in`: The identifier of the asset being transferred from the account to the pool. - /// - `asset_out`: The identifier of the asset being transferred from the pool to the account. - /// - `amount`: The amount of `asset_out`. - /// - `max_limit`: maximum amount of `asset_in` to be sold in exchange for `asset_out`. - /// - /// Emits `BuyExecuted` when successful. - #[pallet::call_index(5)] - #[pallet::weight(::WeightInfo::buy())] - pub fn buy( - origin: OriginFor, - asset_out: AssetId, - asset_in: AssetId, - amount: BalanceOf, - max_limit: BalanceOf, - ) -> DispatchResult { - let who = ensure_signed(origin)?; - - >::buy(&who, AssetPair { asset_in, asset_out }, amount, max_limit, false)?; - - Ok(()) - } - } -} - -impl Pallet { - fn calculate_weights( - pool_data: &Pool, - at: T::BlockNumber, - ) -> Result<(LBPWeight, LBPWeight), DispatchError> { - let weight_a = T::LBPWeightFunction::calculate_weight( - pool_data.weight_curve, - pool_data.start.unwrap_or_else(Zero::zero), - pool_data.end.unwrap_or_else(Zero::zero), - pool_data.initial_weight, - pool_data.final_weight, - at, - ) - .ok_or(Error::::WeightCalculationError)?; - - let weight_b = MAX_WEIGHT.saturating_sub(weight_a); - - Ok((weight_a, weight_b)) - } - - fn validate_pool_data(pool_data: &Pool) -> DispatchResult { - let now = T::BlockNumberProvider::current_block_number(); - - ensure!( - match (pool_data.start, pool_data.end) { - (Some(start), Some(end)) => now < start && start < end, - (None, None) => true, - _ => false, - }, - Error::::InvalidBlockRange - ); - - // duration of the LBP sale should not exceed 2 weeks (assuming 6 sec blocks) - ensure!( - pool_data - .end - .unwrap_or_default() - .saturating_sub(pool_data.start.unwrap_or_default()) - < MAX_SALE_DURATION.into(), - Error::::MaxSaleDurationExceeded - ); - - // zero weight at the beginning or at the end of a sale may cause a problem in the price calculation - ensure!( - !pool_data.initial_weight.is_zero() - && pool_data.initial_weight < MAX_WEIGHT - && !pool_data.final_weight.is_zero() - && pool_data.final_weight < MAX_WEIGHT, - // TODO people could leak value out the pool if initial weight is < final weight due to fee structure - // && pool_data.initial_weight > pool_data.final_weight, - Error::::InvalidWeight - ); - - ensure!(!pool_data.fee.1.is_zero(), Error::::FeeAmountInvalid); - - Ok(()) - } - - fn get_sorted_weight( - asset_in: AssetId, - now: T::BlockNumber, - pool_data: &Pool, - ) -> Result<(LBPWeight, LBPWeight), Error> { - match Self::calculate_weights(pool_data, now) { - Ok(weights) => { - if asset_in == pool_data.assets.0 { - Ok((weights.0, weights.1)) - } else { - // swap weights if assets are in different order - Ok((weights.1, weights.0)) - } - } - Err(_) => Err(Error::::InvalidWeight), - } - } - - /// return true if now is in interval - fn is_pool_running(pool_data: &Pool) -> bool { - let now = T::BlockNumberProvider::current_block_number(); - match (pool_data.start, pool_data.end) { - (Some(start), Some(end)) => start <= now && now <= end, - _ => false, - } - } - - /// return true if now is > pool.start and pool has been initialized - fn has_pool_started(pool_data: &Pool) -> bool { - let now = T::BlockNumberProvider::current_block_number(); - match pool_data.start { - Some(start) => start <= now, - _ => false, - } - } - - /// returns fees collected and locked in the fee collector account - /// note: after LBP finishes and liquidity is removed this will be 0 - fn collected_fees(pool: &Pool) -> BalanceOf { - T::LockedBalance::get_by_lock(COLLECTOR_LOCK_ID, pool.assets.0, pool.fee_collector.clone()) - } - - /// repay fee is applied until repay target amount is reached - fn is_repay_fee_applied(pool: &Pool) -> bool { - Self::collected_fees(pool) < pool.repay_target - } - - #[transactional] - fn execute_trade(transfer: &AMMTransfer) -> DispatchResult { - let pool_account = Self::get_pair_id(transfer.assets); - let pool = >::try_get(&pool_account).map_err(|_| Error::::PoolNotFound)?; - - // Transfer assets between pool and user - T::MultiCurrency::transfer( - transfer.assets.asset_in, - &transfer.origin, - &pool_account, - transfer.amount, - )?; - T::MultiCurrency::transfer( - transfer.assets.asset_out, - &pool_account, - &transfer.origin, - transfer.amount_b, - )?; - - // Fee is deducted from the sent out amount of accumulated asset and transferred to the fee collector - let (fee_asset, fee_amount) = transfer.fee; - let fee_payer = if transfer.assets.asset_in == fee_asset { - &transfer.origin - } else { - &pool_account - }; - - T::MultiCurrency::transfer(fee_asset, fee_payer, &pool.fee_collector, fee_amount)?; - - // Resets lock for total of collected fees - let collected_fee_total = Self::collected_fees(&pool) + fee_amount; - T::MultiCurrency::set_lock(COLLECTOR_LOCK_ID, fee_asset, &pool.fee_collector, collected_fee_total)?; - - Ok(()) - } - - /// determines fee rate and applies it to the amount - fn calculate_fees( - pool: &Pool, - amount: BalanceOf, - ) -> Result, DispatchError> { - let fee = if Self::is_repay_fee_applied(pool) { - Self::repay_fee() - } else { - pool.fee - }; - Ok(hydra_dx_math::fee::calculate_pool_trade_fee(amount, (fee.0, fee.1)) - .ok_or::>(Error::::FeeAmountInvalid)?) - } - - pub fn pair_account_from_assets(asset_a: AssetId, asset_b: AssetId) -> PoolId { - T::AssetPairAccountId::from_assets(asset_a, asset_b, "lbp") - } -} - -impl AMM> for Pallet { - fn exists(assets: AssetPair) -> bool { - let pair_account = Self::pair_account_from_assets(assets.asset_in, assets.asset_out); - >::contains_key(&pair_account) - } - - fn get_pair_id(assets: AssetPair) -> T::AccountId { - Self::pair_account_from_assets(assets.asset_in, assets.asset_out) - } - - fn get_share_token(_assets: AssetPair) -> AssetId { - // No share token in lbp - AssetId::MAX - } - - fn get_pool_assets(pool_account_id: &T::AccountId) -> Option> { - let maybe_pool = >::try_get(pool_account_id); - if let Ok(pool_data) = maybe_pool { - Some(vec![pool_data.assets.0, pool_data.assets.1]) - } else { - None - } - } - - /// Calculate spot price for given assets and amount. This method does not modify the storage. - /// - /// Provided assets must exist in the pool. Panic if an asset does not exist in the pool. - /// - /// Return 0 if calculation overflows or weights calculation overflows. - fn get_spot_price_unchecked(asset_a: AssetId, asset_b: AssetId, amount: BalanceOf) -> BalanceOf { - let pool_id = Self::get_pair_id(AssetPair { - asset_in: asset_a, - asset_out: asset_b, - }); - - let asset_a_reserve = T::MultiCurrency::free_balance(asset_a, &pool_id); - let asset_b_reserve = T::MultiCurrency::free_balance(asset_b, &pool_id); - - let pool_data = match >::try_get(&pool_id) { - Ok(pool) => pool, - Err(_) => return BalanceOf::::zero(), - }; - - let now = T::BlockNumberProvider::current_block_number(); - - // We need to sort weights here if asset_in is not the first asset - let (weight_in, weight_out) = match Self::get_sorted_weight(asset_a, now, &pool_data) { - Ok(weights) => weights, - Err(_) => return BalanceOf::::zero(), - }; - - hydra_dx_math::lbp::calculate_spot_price(asset_a_reserve, asset_b_reserve, weight_in, weight_out, amount) - .unwrap_or_else(|_| BalanceOf::::zero()) - } - - fn validate_sell( - who: &T::AccountId, - assets: AssetPair, - amount: BalanceOf, - min_bought: BalanceOf, - _discount: bool, - ) -> Result, DispatchError> { - ensure!(!amount.is_zero(), Error::::ZeroAmount); - ensure!( - T::MultiCurrency::free_balance(assets.asset_in, who) >= amount, - Error::::InsufficientAssetBalance - ); - - let pool_id = Self::get_pair_id(assets); - let pool_data = >::try_get(&pool_id).map_err(|_| Error::::PoolNotFound)?; - - ensure!(Self::is_pool_running(&pool_data), Error::::SaleIsNotRunning); - - let now = T::BlockNumberProvider::current_block_number(); - let (weight_in, weight_out) = Self::get_sorted_weight(assets.asset_in, now, &pool_data)?; - let asset_in_reserve = T::MultiCurrency::free_balance(assets.asset_in, &pool_id); - let asset_out_reserve = T::MultiCurrency::free_balance(assets.asset_out, &pool_id); - - ensure!( - amount <= asset_in_reserve.checked_div(MAX_IN_RATIO).ok_or(Error::::Overflow)?, - Error::::MaxInRatioExceeded - ); - - // LBP fee asset is always accumulated asset - let fee_asset = pool_data.assets.0; - - // Accumulated asset is sold (in) to the pool for distributed asset (out) - // Take accumulated asset (in) sans fee from the seller and add to pool - // Take distributed asset (out) and send to seller - // Take fee from the seller and send to fee collector - // Pool bears repay fee - if fee_asset == assets.asset_in { - let fee = Self::calculate_fees(&pool_data, amount)?; - - let amount_out = hydra_dx_math::lbp::calculate_out_given_in( - asset_in_reserve, - asset_out_reserve, - weight_in, - weight_out, - amount, - ) - .map_err(|_| Error::::Overflow)?; - - ensure!( - amount_out - <= asset_out_reserve - .checked_div(MAX_OUT_RATIO) - .ok_or(Error::::Overflow)?, - Error::::MaxOutRatioExceeded - ); - - ensure!(min_bought <= amount_out, Error::::TradingLimitReached); - - let amount_without_fee = amount.checked_sub(fee).ok_or(Error::::Overflow)?; - - Ok(AMMTransfer { - origin: who.clone(), - assets, - amount: amount_without_fee, - amount_b: amount_out, - discount: false, - discount_amount: 0_u128, - fee: (fee_asset, fee), - }) - - // Distributed asset is sold (in) to the pool for accumulated asset (out) - // Take accumulated asset (out) from the pool sans fee and send to the seller - // Take distributed asset (in) from the seller and send to pool - // Take fee from the pool and send to fee collector - // Seller bears repay fee - } else { - let calculated_out = hydra_dx_math::lbp::calculate_out_given_in( - asset_in_reserve, - asset_out_reserve, - weight_in, - weight_out, - amount, - ) - .map_err(|_| Error::::Overflow)?; - - let fee = Self::calculate_fees(&pool_data, calculated_out)?; - let amount_out_without_fee = calculated_out.checked_sub(fee).ok_or(Error::::Overflow)?; - - ensure!( - calculated_out - <= asset_out_reserve - .checked_div(MAX_OUT_RATIO) - .ok_or(Error::::Overflow)?, - Error::::MaxOutRatioExceeded - ); - - ensure!(min_bought <= amount_out_without_fee, Error::::TradingLimitReached); - - Ok(AMMTransfer { - origin: who.clone(), - assets, - amount, - amount_b: amount_out_without_fee, - discount: false, - discount_amount: 0_u128, - fee: (fee_asset, fee), - }) - } - } - - fn execute_sell(transfer: &AMMTransfer) -> DispatchResult { - Self::execute_trade(transfer)?; - - Self::deposit_event(Event::::SellExecuted { - who: transfer.origin.clone(), - asset_in: transfer.assets.asset_in, - asset_out: transfer.assets.asset_out, - amount: transfer.amount, - sale_price: transfer.amount_b, - fee_asset: transfer.fee.0, - fee_amount: transfer.fee.1, - }); - - Ok(()) - } - - fn validate_buy( - who: &T::AccountId, - assets: AssetPair, - amount: BalanceOf, - max_sold: BalanceOf, - _discount: bool, - ) -> Result, DispatchError> { - ensure!(!amount.is_zero(), Error::::ZeroAmount); - - let pool_id = Self::get_pair_id(assets); - let pool_data = >::try_get(&pool_id).map_err(|_| Error::::PoolNotFound)?; - - ensure!(Self::is_pool_running(&pool_data), Error::::SaleIsNotRunning); - - let now = T::BlockNumberProvider::current_block_number(); - let (weight_in, weight_out) = Self::get_sorted_weight(assets.asset_in, now, &pool_data)?; - let asset_in_reserve = T::MultiCurrency::free_balance(assets.asset_in, &pool_id); - let asset_out_reserve = T::MultiCurrency::free_balance(assets.asset_out, &pool_id); - - ensure!( - amount - <= asset_out_reserve - .checked_div(MAX_OUT_RATIO) - .ok_or(Error::::Overflow)?, - Error::::MaxOutRatioExceeded - ); - - // LBP fee asset is always accumulated asset - let fee_asset = pool_data.assets.0; - - // Accumulated asset is bought (out) of the pool for distributed asset (in) - // Take accumulated asset (out) sans fee from the pool and send to seller - // Take distributed asset (in) from the seller and add to pool - // Take fee from the pool and send to fee collector - // Buyer bears repay fee - if fee_asset == assets.asset_out { - let fee = Self::calculate_fees(&pool_data, amount)?; - let amount_out_plus_fee = amount.checked_add(fee).ok_or(Error::::Overflow)?; - - let calculated_in = hydra_dx_math::lbp::calculate_in_given_out( - asset_in_reserve, - asset_out_reserve, - weight_in, - weight_out, - amount_out_plus_fee, - ) - .map_err(|_| Error::::Overflow)?; - - ensure!( - calculated_in <= asset_in_reserve.checked_div(MAX_IN_RATIO).ok_or(Error::::Overflow)?, - Error::::MaxInRatioExceeded - ); - - ensure!( - T::MultiCurrency::free_balance(assets.asset_in, who) >= calculated_in, - Error::::InsufficientAssetBalance - ); - - ensure!(max_sold >= calculated_in, Error::::TradingLimitReached); - - Ok(AMMTransfer { - origin: who.clone(), - assets, - amount: calculated_in, - amount_b: amount, - discount: false, - discount_amount: 0_u128, - fee: (fee_asset, fee), - }) - - // Distributed asset is bought (out) of the pool for accumulated asset (in) - // Take accumulated asset (in) sans fee from the buyer and send to pool - // Take distributed asset (out) from the pool and send to buyer - // Take fee from the buyer and send to fee collector - // Pool bears repay fee - } else { - let calculated_in = hydra_dx_math::lbp::calculate_in_given_out( - asset_in_reserve, - asset_out_reserve, - weight_in, - weight_out, - amount, - ) - .map_err(|_| Error::::Overflow)?; - - let fee = Self::calculate_fees(&pool_data, calculated_in)?; - let calculated_in_without_fee = calculated_in.checked_sub(fee).ok_or(Error::::Overflow)?; - - ensure!( - calculated_in <= asset_in_reserve.checked_div(MAX_IN_RATIO).ok_or(Error::::Overflow)?, - Error::::MaxInRatioExceeded - ); - - ensure!( - T::MultiCurrency::free_balance(assets.asset_in, who) >= calculated_in, - Error::::InsufficientAssetBalance - ); - - ensure!(max_sold >= calculated_in, Error::::TradingLimitReached); - - Ok(AMMTransfer { - origin: who.clone(), - assets, - amount: calculated_in_without_fee, - amount_b: amount, - discount: false, - discount_amount: 0_u128, - fee: (fee_asset, fee), - }) - } - } - - fn execute_buy(transfer: &AMMTransfer>) -> DispatchResult { - Self::execute_trade(transfer)?; - - Self::deposit_event(Event::::BuyExecuted { - who: transfer.origin.clone(), - asset_out: transfer.assets.asset_out, - asset_in: transfer.assets.asset_in, - amount: transfer.amount, - buy_price: transfer.amount_b, - fee_asset: transfer.fee.0, - fee_amount: transfer.fee.1, - }); - Ok(()) - } - - fn get_min_trading_limit() -> Balance { - T::MinTradingLimit::get() - } - - fn get_min_pool_liquidity() -> Balance { - T::MinPoolLiquidity::get() - } - - fn get_max_in_ratio() -> u128 { - T::MaxInRatio::get() - } - - fn get_max_out_ratio() -> u128 { - T::MaxOutRatio::get() - } - - fn get_fee(pool_account_id: &T::AccountId) -> (u32, u32) { - let maybe_pool_data = >::get(pool_account_id); - match maybe_pool_data { - Some(pool_data) => pool_data.fee, - None => (0, 0), - } - } -} - -pub struct DisallowWhenLBPPoolRunning(sp_std::marker::PhantomData); - -impl CanCreatePool for DisallowWhenLBPPoolRunning { - fn can_create(asset_a: AssetId, asset_b: AssetId) -> bool { - let pool_id = Pallet::::pair_account_from_assets(asset_a, asset_b); - let now = T::BlockNumberProvider::current_block_number(); - match >::try_get(&pool_id) { - // returns true if the pool exists and the sale ended - Ok(data) => match data.end { - Some(end) => end < now, - None => false, - }, - _ => true, - } - } -} diff --git a/pallets/lbp/src/mock.rs b/pallets/lbp/src/mock.rs deleted file mode 100644 index 4593d6c1ec8..00000000000 --- a/pallets/lbp/src/mock.rs +++ /dev/null @@ -1,282 +0,0 @@ -#![cfg(test)] -use super::*; - -use crate as lbp; -use crate::{AssetPairAccountIdFor, Config}; -use frame_support::parameter_types; -use frame_support::traits::{Everything, GenesisBuild, LockIdentifier, Nothing}; -use hydradx_traits::LockedBalance; -use orml_traits::parameter_type_with_key; -use primitives::constants::chain::{ - AssetId, Balance, CORE_ASSET_ID, MAX_IN_RATIO, MAX_OUT_RATIO, MIN_POOL_LIQUIDITY, MIN_TRADING_LIMIT, -}; -use sp_core::H256; -use sp_runtime::{ - testing::Header, - traits::{BlakeTwo256, IdentityLookup}, -}; -use std::collections::BTreeMap; - -pub type Amount = i128; -pub type AccountId = u64; -pub type BlockNumber = u64; -type UncheckedExtrinsic = frame_system::mocking::MockUncheckedExtrinsic; -type Block = frame_system::mocking::MockBlock; - -pub const INITIAL_BALANCE: Balance = 1_000_000_000_000_000u128; - -pub const ALICE: AccountId = 1; -pub const BOB: AccountId = 2; -pub const CHARLIE: AccountId = 3; - -pub const HDX: AssetId = CORE_ASSET_ID; -pub const KUSD: AssetId = 2_000; -pub const BSX: AssetId = 3_000; -pub const ETH: AssetId = 4_000; - -pub const EXISTENTIAL_DEPOSIT: Balance = 100; -pub const SALE_START: Option = Some(10); -pub const SALE_END: Option = Some(40); - -pub const HDX_BSX_POOL_ID: AccountId = 3_000; -pub const KUSD_BSX_POOL_ID: AccountId = 2_003_000; - -pub const DEFAULT_FEE: (u32, u32) = (2, 1_000); - -pub const SAMPLE_POOL_DATA: Pool = Pool { - owner: ALICE, - start: SALE_START, - end: SALE_END, - assets: (KUSD, BSX), - initial_weight: 10_000_000, - final_weight: 90_000_000, - weight_curve: WeightCurveType::Linear, - fee: DEFAULT_FEE, - fee_collector: CHARLIE, - repay_target: 0, -}; - -pub const SAMPLE_AMM_TRANSFER: AMMTransfer = AMMTransfer { - origin: ALICE, - assets: AssetPair { - asset_in: KUSD, - asset_out: BSX, - }, - amount: 1000, - amount_b: 10000, - discount: false, - discount_amount: 0_u128, - fee: (KUSD, 200), -}; - -frame_support::construct_runtime!( - pub enum Test where - Block = Block, - NodeBlock = Block, - UncheckedExtrinsic = UncheckedExtrinsic, - { - System: frame_system, - LBPPallet: lbp, - Currency: orml_tokens, - } - -); - -parameter_types! { - pub const BlockHashCount: u64 = 250; - pub const SS58Prefix: u8 = 63; -} - -impl frame_system::Config for Test { - type BaseCallFilter = Everything; - type BlockWeights = (); - type BlockLength = (); - type RuntimeOrigin = RuntimeOrigin; - type RuntimeCall = RuntimeCall; - type Index = u64; - type BlockNumber = BlockNumber; - type Hash = H256; - type Hashing = BlakeTwo256; - type AccountId = u64; - type Lookup = IdentityLookup; - type Header = Header; - type RuntimeEvent = RuntimeEvent; - type BlockHashCount = BlockHashCount; - type DbWeight = (); - type Version = (); - type PalletInfo = PalletInfo; - type AccountData = (); - type OnNewAccount = (); - type OnKilledAccount = (); - type SystemWeightInfo = (); - type SS58Prefix = (); - type OnSetCode = (); - type MaxConsumers = frame_support::traits::ConstU32<16>; -} - -parameter_type_with_key! { - pub ExistentialDeposits: |_currency_id: AssetId| -> Balance { - EXISTENTIAL_DEPOSIT - }; -} - -parameter_types! { - pub const MaxLocks: u32 = 1; -} - -impl orml_tokens::Config for Test { - type RuntimeEvent = RuntimeEvent; - type Balance = Balance; - type Amount = Amount; - type CurrencyId = AssetId; - type WeightInfo = (); - type ExistentialDeposits = ExistentialDeposits; - type MaxLocks = MaxLocks; - type DustRemovalWhitelist = Nothing; - type ReserveIdentifier = (); - type MaxReserves = (); - type CurrencyHooks = (); -} - -pub struct AssetPairAccountIdTest(); - -impl AssetPairAccountIdFor for AssetPairAccountIdTest { - fn from_assets(asset_a: AssetId, asset_b: AssetId, _: &str) -> u64 { - let mut a = asset_a as u128; - let mut b = asset_b as u128; - if a > b { - std::mem::swap(&mut a, &mut b); - } - (a * 1000 + b) as u64 - } -} - -parameter_types! { - pub const NativeAssetId: AssetId = CORE_ASSET_ID; - pub const MinTradingLimit: Balance = MIN_TRADING_LIMIT; - pub const MinPoolLiquidity: Balance = MIN_POOL_LIQUIDITY; - pub const MaxInRatio: u128 = MAX_IN_RATIO; - pub const MaxOutRatio: u128 = MAX_OUT_RATIO; -} - -pub struct MultiLockedBalance(); - -impl LockedBalance for MultiLockedBalance { - fn get_by_lock(lock_id: LockIdentifier, asset: AssetId, account: AccountId) -> Balance { - if asset == NativeAssetId::get() { - match Currency::locks(account, asset) - .into_iter() - .find(|lock| lock.id == lock_id) - { - Some(lock) => lock.amount, - None => Zero::zero(), - } - } else { - match Currency::locks(account, asset) - .into_iter() - .find(|lock| lock.id == lock_id) - { - Some(lock) => lock.amount, - None => Zero::zero(), - } - } - } -} - -impl Config for Test { - type RuntimeEvent = RuntimeEvent; - type MultiCurrency = Currency; - type LockedBalance = MultiLockedBalance; - type CreatePoolOrigin = frame_system::EnsureRoot; - type LBPWeightFunction = lbp::LBPWeightFunction; - type AssetPairAccountId = AssetPairAccountIdTest; - type WeightInfo = (); - type MinTradingLimit = MinTradingLimit; - type MinPoolLiquidity = MinPoolLiquidity; - type MaxInRatio = MaxInRatio; - type MaxOutRatio = MaxOutRatio; - type BlockNumberProvider = System; -} - -pub struct ExtBuilder { - endowed_accounts: Vec<(AccountId, AssetId, Balance)>, -} - -impl Default for ExtBuilder { - fn default() -> Self { - Self { - endowed_accounts: vec![ - (ALICE, HDX, INITIAL_BALANCE), - (ALICE, BSX, INITIAL_BALANCE), - (ALICE, KUSD, INITIAL_BALANCE), - (ALICE, ETH, INITIAL_BALANCE), - (BOB, HDX, INITIAL_BALANCE), - (BOB, BSX, INITIAL_BALANCE), - (BOB, KUSD, INITIAL_BALANCE), - (BOB, ETH, INITIAL_BALANCE), - ], - } - } -} - -impl ExtBuilder { - pub fn build(self) -> sp_io::TestExternalities { - let mut t = frame_system::GenesisConfig::default().build_storage::().unwrap(); - - orml_tokens::GenesisConfig:: { - balances: self.endowed_accounts, - } - .assimilate_storage(&mut t) - .unwrap(); - - t.into() - } -} - -pub fn set_block_number>(n: u64) { - frame_system::Pallet::::set_block_number(n); -} - -pub fn run_to_sale_start() { - set_block_number::(SALE_START.unwrap()); -} - -pub fn run_to_sale_end() { - set_block_number::(SALE_END.unwrap() + 1); -} - -pub fn generate_trades( - start: BlockNumber, - end: BlockNumber, - sale_rate: u128, - sell_ratio: u128, -) -> BTreeMap { - let mut trades = BTreeMap::new(); - let intervals: u64 = 72; - - let buy_amount = sale_rate / 24; - let sell_amount = sale_rate / sell_ratio / 24; - - let skip = vec![0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; - let sells = vec![19, 20, 21, 33, 34, 35, 48, 49, 50, 62, 63, 64]; - for i in 0..=intervals { - let block_num = start + (i * ((end - start) / intervals)); - - if skip.contains(&i) { - continue; - } - - let (is_buy, amount) = if sells.contains(&i) { - (false, sell_amount) - } else { - (true, buy_amount) - }; - - trades.insert(block_num, (is_buy, amount)); - } - trades -} - -pub fn expect_events(e: Vec) { - test_utils::expect_events::(e); -} diff --git a/pallets/lbp/src/tests.rs b/pallets/lbp/src/tests.rs deleted file mode 100644 index fee7a4fb155..00000000000 --- a/pallets/lbp/src/tests.rs +++ /dev/null @@ -1,3664 +0,0 @@ -// This file is part of Basilisk-node. - -// Copyright (C) 2020-2022 Intergalactic, Limited (GIB). -// SPDX-License-Identifier: Apache-2.0 - -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#![allow(clippy::bool_assert_comparison)] -use super::*; -use crate::mock::{ - expect_events, generate_trades, run_to_sale_end, run_to_sale_start, RuntimeCall as Call, DEFAULT_FEE, - EXISTENTIAL_DEPOSIT, HDX_BSX_POOL_ID, INITIAL_BALANCE, KUSD_BSX_POOL_ID, SALE_END, SALE_START, SAMPLE_AMM_TRANSFER, - SAMPLE_POOL_DATA, -}; -pub use crate::mock::{ - set_block_number, Currency, ExtBuilder, LBPPallet, RuntimeEvent as TestEvent, RuntimeOrigin as Origin, Test, ALICE, - BOB, BSX, CHARLIE, ETH, HDX, KUSD, -}; -use frame_support::{assert_err, assert_noop, assert_ok, dispatch::Dispatchable}; -use hydradx_traits::{AMMTransfer, LockedBalance}; -use sp_runtime::traits::BadOrigin; -use sp_std::convert::TryInto; - -use primitives::constants::chain::CORE_ASSET_ID; -use primitives::{ - asset::AssetPair, - constants::chain::{MAX_IN_RATIO, MAX_OUT_RATIO}, -}; - -pub fn new_test_ext() -> sp_io::TestExternalities { - let mut ext = ExtBuilder::default().build(); - ext.execute_with(|| set_block_number::(1)); - ext -} - -pub fn predefined_test_ext() -> sp_io::TestExternalities { - let mut ext = new_test_ext(); - ext.execute_with(|| { - assert_ok!(LBPPallet::create_pool( - Origin::root(), - ALICE, - KUSD, - 1_000_000_000, - BSX, - 2_000_000_000, - 20_000_000, - 80_000_000, - WeightCurveType::Linear, - DEFAULT_FEE, - CHARLIE, - 0, - )); - - assert_ok!(LBPPallet::update_pool_data( - Origin::signed(ALICE), - KUSD_BSX_POOL_ID, - None, - SALE_START, - SALE_END, - None, - None, - None, - None, - None, - )); - - let pool_data2 = Pool { - owner: ALICE, - start: SALE_START, - end: SALE_END, - assets: (KUSD, BSX), - initial_weight: 20_000_000, - final_weight: 80_000_000, - weight_curve: WeightCurveType::Linear, - fee: DEFAULT_FEE, - fee_collector: CHARLIE, - repay_target: 0, - }; - - assert_eq!(>::get(KUSD_BSX_POOL_ID).unwrap(), pool_data2); - - expect_events(vec![ - Event::LiquidityAdded { - who: KUSD_BSX_POOL_ID, - asset_a: KUSD, - asset_b: BSX, - amount_a: 1_000_000_000, - amount_b: 2_000_000_000, - } - .into(), - Event::PoolUpdated { - pool: KUSD_BSX_POOL_ID, - data: pool_data2, - } - .into(), - ]); - }); - ext -} - -pub fn predefined_test_ext_with_repay_target() -> sp_io::TestExternalities { - let mut ext = new_test_ext(); - ext.execute_with(|| { - let initial_liquidity = 1_000_000_000; - - assert_ok!(LBPPallet::create_pool( - Origin::root(), - ALICE, - KUSD, - 1_000_000_000, - BSX, - 2_000_000_000, - 80_000_000, - 20_000_000, - WeightCurveType::Linear, - DEFAULT_FEE, - CHARLIE, - initial_liquidity, - )); - - assert_ok!(LBPPallet::update_pool_data( - Origin::signed(ALICE), - KUSD_BSX_POOL_ID, - None, - SALE_START, - Some(20), - None, - None, - None, - None, - None, - )); - - assert_ok!(LBPPallet::add_liquidity( - Origin::signed(ALICE), - (KUSD, 10_000_000_000), - (BSX, initial_liquidity), - )); - }); - ext -} - -#[test] -fn default_locked_balance_should_be_zero() { - new_test_ext().execute_with(|| { - assert_eq!( - ::LockedBalance::get_by_lock(COLLECTOR_LOCK_ID, BSX, BOB), - 0_u128 - ); - }); -} - -#[test] -fn validate_pool_data_should_work() { - new_test_ext().execute_with(|| { - let pool_data = Pool { - owner: ALICE, - start: SALE_START, - end: SALE_END, - assets: (KUSD, BSX), - initial_weight: 20_000_000, - final_weight: 90_000_000, - weight_curve: WeightCurveType::Linear, - fee: DEFAULT_FEE, - fee_collector: CHARLIE, - repay_target: 0, - }; - assert_ok!(LBPPallet::validate_pool_data(&pool_data)); - - // null interval - let pool_data = Pool { - owner: ALICE, - start: None, - end: None, - assets: (KUSD, BSX), - initial_weight: 20_000_000, - final_weight: 90_000_000, - weight_curve: WeightCurveType::Linear, - fee: DEFAULT_FEE, - fee_collector: CHARLIE, - repay_target: 0, - }; - assert_ok!(LBPPallet::validate_pool_data(&pool_data)); - - let pool_data = Pool { - owner: ALICE, - start: SALE_START, - end: Some(2u64), - assets: (KUSD, BSX), - initial_weight: 20_000_000, - final_weight: 90_000_000, - weight_curve: WeightCurveType::Linear, - fee: DEFAULT_FEE, - fee_collector: CHARLIE, - repay_target: 0, - }; - assert_noop!( - LBPPallet::validate_pool_data(&pool_data), - Error::::InvalidBlockRange - ); - - let pool_data = Pool { - owner: ALICE, - start: SALE_START, - end: Some(11u64 + u32::MAX as u64), - assets: (KUSD, BSX), - initial_weight: 20_000_000, - final_weight: 90_000_000, - weight_curve: WeightCurveType::Linear, - fee: DEFAULT_FEE, - fee_collector: CHARLIE, - repay_target: 0, - }; - assert_noop!( - LBPPallet::validate_pool_data(&pool_data), - Error::::MaxSaleDurationExceeded - ); - }); -} - -#[test] -fn max_sale_duration_ckeck() { - new_test_ext().execute_with(|| { - assert_ok!(LBPPallet::validate_pool_data(&Pool { - owner: ALICE, - start: SALE_START, - end: Some(SALE_START.unwrap() + MAX_SALE_DURATION as u64 - 1), - assets: (KUSD, BSX), - initial_weight: 20_000_000, - final_weight: 90_000_000, - weight_curve: WeightCurveType::Linear, - fee: DEFAULT_FEE, - fee_collector: CHARLIE, - repay_target: 0, - })); - assert_noop!( - LBPPallet::validate_pool_data(&Pool { - owner: ALICE, - start: SALE_START, - end: Some(SALE_START.unwrap() + MAX_SALE_DURATION as u64), - assets: (KUSD, BSX), - initial_weight: 20_000_000, - final_weight: 90_000_000, - weight_curve: WeightCurveType::Linear, - fee: DEFAULT_FEE, - fee_collector: CHARLIE, - repay_target: 0, - }), - Error::::MaxSaleDurationExceeded - ); - }); -} - -#[test] -fn calculate_weights_should_work() { - new_test_ext().execute_with(|| { - let mut pool_data = Pool { - owner: ALICE, - start: Some(100), - end: Some(200), - assets: (KUSD, BSX), - initial_weight: 50_000_000, - final_weight: 33_333_333, - weight_curve: WeightCurveType::Linear, - fee: DEFAULT_FEE, - fee_collector: CHARLIE, - repay_target: 0, - }; - assert_eq!(LBPPallet::calculate_weights(&pool_data, 170), Ok((38333333, 61666667))); - - pool_data.initial_weight = 33_333_333; - pool_data.final_weight = 66_666_666; - assert_eq!(LBPPallet::calculate_weights(&pool_data, 100), Ok((33333333, 66666667))); - - pool_data.initial_weight = 33_333_333; - pool_data.final_weight = 33_333_333; - assert_eq!(LBPPallet::calculate_weights(&pool_data, 100), Ok((33333333, 66666667))); - - pool_data.initial_weight = 50_000_000; - pool_data.final_weight = 33_333_333; - assert_eq!(LBPPallet::calculate_weights(&pool_data, 200), Ok((33333333, 66666667))); - - // invalid interval - pool_data.start = Some(200); - pool_data.end = Some(100); - assert_eq!( - LBPPallet::calculate_weights(&pool_data, 200), - Err(Error::::WeightCalculationError.into()) - ); - - // invalid interval - pool_data.start = Some(100); - pool_data.end = Some(200); - assert_eq!( - LBPPallet::calculate_weights(&pool_data, 201), - Err(Error::::WeightCalculationError.into()) - ); - - // out of bound - pool_data.start = Some(100); - pool_data.end = Some(200); - assert_eq!( - LBPPallet::calculate_weights(&pool_data, 10), - Err(Error::::WeightCalculationError.into()) - ); - assert_eq!( - LBPPallet::calculate_weights(&pool_data, 210), - Err(Error::::WeightCalculationError.into()) - ); - }); -} - -#[test] -fn create_pool_should_work() { - new_test_ext().execute_with(|| { - assert_ok!(LBPPallet::create_pool( - Origin::root(), - ALICE, - KUSD, - 1_000_000_000, - BSX, - 2_000_000_000, - 20_000_000u32, - 90_000_000u32, - WeightCurveType::Linear, - DEFAULT_FEE, - CHARLIE, - 0, - )); - - assert_eq!(Currency::free_balance(KUSD, &KUSD_BSX_POOL_ID), 1_000_000_000); - assert_eq!(Currency::free_balance(BSX, &KUSD_BSX_POOL_ID), 2_000_000_000); - assert_eq!( - Currency::free_balance(KUSD, &ALICE), - INITIAL_BALANCE.saturating_sub(1_000_000_000) - ); - assert_eq!( - Currency::free_balance(BSX, &ALICE), - INITIAL_BALANCE.saturating_sub(2_000_000_000) - ); - - let pool_data = LBPPallet::pool_data(KUSD_BSX_POOL_ID).unwrap(); - assert_eq!(pool_data.owner, ALICE); - assert_eq!(pool_data.start, None); - assert_eq!(pool_data.end, None); - assert_eq!(pool_data.assets, (KUSD, BSX)); - assert_eq!(pool_data.initial_weight, 20_000_000); - assert_eq!(pool_data.final_weight, 90_000_000); - assert_eq!(pool_data.weight_curve, WeightCurveType::Linear); - assert_eq!(pool_data.fee, DEFAULT_FEE); - assert_eq!(pool_data.fee_collector, CHARLIE); - - assert!(>::contains_key(CHARLIE, KUSD)); - - expect_events(vec![Event::LiquidityAdded { - who: KUSD_BSX_POOL_ID, - asset_a: KUSD, - asset_b: BSX, - amount_a: 1_000_000_000, - amount_b: 2_000_000_000, - } - .into()]); - }); -} - -#[test] -fn create_pool_from_basic_origin_should_not_work() { - new_test_ext().execute_with(|| { - // only CreatePoolOrigin is allowed to create new pools - assert_noop!( - LBPPallet::create_pool( - Origin::signed(ALICE), - ALICE, - HDX, - 1_000_000_000, - BSX, - 2_000_000_000, - 80_000_000u32, - 10_000_000u32, - WeightCurveType::Linear, - DEFAULT_FEE, - CHARLIE, - 0, - ), - BadOrigin - ); - }); -} - -#[test] -fn create_same_pool_should_not_work() { - new_test_ext().execute_with(|| { - assert_ok!(LBPPallet::create_pool( - Origin::root(), - ALICE, - KUSD, - 1_000_000_000, - BSX, - 2_000_000_000, - 80_000_000u32, - 10_000_000u32, - WeightCurveType::Linear, - DEFAULT_FEE, - CHARLIE, - 0, - )); - - assert_noop!( - LBPPallet::create_pool( - Origin::root(), - ALICE, - KUSD, - 10_000_000_000, - BSX, - 20_000_000_000, - 80_000_000u32, - 10_000_000u32, - WeightCurveType::Linear, - DEFAULT_FEE, - CHARLIE, - 0, - ), - Error::::PoolAlreadyExists - ); - - expect_events(vec![Event::LiquidityAdded { - who: KUSD_BSX_POOL_ID, - asset_a: KUSD, - asset_b: BSX, - amount_a: 1_000_000_000, - amount_b: 2_000_000_000, - } - .into()]); - }); -} - -#[test] -fn create_pool_with_same_assets_should_not_work() { - new_test_ext().execute_with(|| { - assert_noop!( - LBPPallet::create_pool( - Origin::root(), - ALICE, - KUSD, - 1_000_000_000, - KUSD, - 2_000_000_000, - 80_000_000u32, - 10_000_000u32, - WeightCurveType::Linear, - DEFAULT_FEE, - CHARLIE, - 0, - ), - Error::::CannotCreatePoolWithSameAssets - ); - }); -} - -#[test] -fn create_pool_with_non_existing_fee_collector_with_asset_should_work() { - new_test_ext().execute_with(|| { - assert_ok!(LBPPallet::create_pool( - Origin::root(), - ALICE, - KUSD, - 1_000_000_000, - BSX, - 2_000_000_000, - 20_000_000u32, - 90_000_000u32, - WeightCurveType::Linear, - DEFAULT_FEE, - CHARLIE, - 0, - )); - - assert_ok!(LBPPallet::create_pool( - Origin::root(), - ALICE, - HDX, - 1_000_000_000, - BSX, - 2_000_000_000, - 20_000_000u32, - 90_000_000u32, - WeightCurveType::Linear, - DEFAULT_FEE, - CHARLIE, - 0, - ),); - }); -} - -#[test] -fn create_pool_with_existing_fee_collector_with_asset_should_not_work() { - new_test_ext().execute_with(|| { - assert_ok!(LBPPallet::create_pool( - Origin::root(), - ALICE, - KUSD, - 1_000_000_000, - BSX, - 2_000_000_000, - 20_000_000u32, - 90_000_000u32, - WeightCurveType::Linear, - DEFAULT_FEE, - CHARLIE, - 0, - )); - - assert_noop!( - LBPPallet::create_pool( - Origin::root(), - ALICE, - KUSD, - 1_000_000_000, - HDX, - 2_000_000_000, - 20_000_000u32, - 90_000_000u32, - WeightCurveType::Linear, - DEFAULT_FEE, - CHARLIE, - 0, - ), - Error::::FeeCollectorWithAssetAlreadyUsed - ); - }); -} - -#[test] -fn create_pool_with_insufficient_liquidity_should_not_work() { - new_test_ext().execute_with(|| { - assert_noop!( - LBPPallet::create_pool( - Origin::root(), - ALICE, - HDX, - 0, - BSX, - 0, - 80_000_000u32, - 10_000_000u32, - WeightCurveType::Linear, - DEFAULT_FEE, - CHARLIE, - 0, - ), - Error::::InsufficientLiquidity - ); - - assert_noop!( - LBPPallet::create_pool( - Origin::root(), - ALICE, - HDX, - 0, - BSX, - 2_000_000_000, - 80_000_000u32, - 10_000_000u32, - WeightCurveType::Linear, - DEFAULT_FEE, - CHARLIE, - 0, - ), - Error::::InsufficientLiquidity - ); - - assert_noop!( - LBPPallet::create_pool( - Origin::root(), - ALICE, - HDX, - 100, - BSX, - 100, - 80_000_000u32, - 10_000_000u32, - WeightCurveType::Linear, - DEFAULT_FEE, - CHARLIE, - 0, - ), - Error::::InsufficientLiquidity - ); - }); -} - -#[test] -fn create_pool_with_insufficient_balance_should_not_work() { - new_test_ext().execute_with(|| { - assert_noop!( - LBPPallet::create_pool( - Origin::root(), - ALICE, - KUSD, - 2_000_000_000_000_000, - BSX, - 2_000_000_000_000_000, - 80_000_000u32, - 10_000_000u32, - WeightCurveType::Linear, - DEFAULT_FEE, - CHARLIE, - 0, - ), - Error::::InsufficientAssetBalance - ); - }); -} - -#[test] -fn update_pool_data_should_work() { - predefined_test_ext().execute_with(|| { - // update all parameters - assert_ok!(LBPPallet::update_pool_data( - Origin::signed(ALICE), - KUSD_BSX_POOL_ID, - None, - Some(15), - Some(18), - Some(10_000_000), - Some(80_000_000), - Some((5, 100)), - Some(BOB), - None, - )); - - // verify changes - let updated_pool_data_1 = LBPPallet::pool_data(KUSD_BSX_POOL_ID).unwrap(); - assert_eq!(updated_pool_data_1.start, Some(15)); - assert_eq!(updated_pool_data_1.end, Some(18)); - assert_eq!(updated_pool_data_1.initial_weight, 10_000_000); - assert_eq!(updated_pool_data_1.final_weight, 80_000_000); - assert_eq!(updated_pool_data_1.fee, (5, 100),); - assert_eq!(updated_pool_data_1.fee_collector, BOB); - - // removes old fee collector from store and - // sets updated fee collector - assert!(!>::contains_key(CHARLIE, KUSD)); - assert!(>::contains_key(BOB, KUSD)); - - // update only one parameter - assert_ok!(LBPPallet::update_pool_data( - Origin::signed(ALICE), - KUSD_BSX_POOL_ID, - None, - None, - Some(30), - None, - None, - None, - None, - None, - )); - - // verify changes - let updated_pool_data_2 = LBPPallet::pool_data(KUSD_BSX_POOL_ID).unwrap(); - assert_eq!(updated_pool_data_2.start, Some(15)); - assert_eq!(updated_pool_data_2.end, Some(30)); - assert_eq!(updated_pool_data_2.initial_weight, 10_000_000); - assert_eq!(updated_pool_data_2.final_weight, 80_000_000); - assert_eq!(updated_pool_data_2.fee, (5, 100),); - assert_eq!(updated_pool_data_2.fee_collector, BOB); - - // update only one parameter - assert_ok!(LBPPallet::update_pool_data( - Origin::signed(ALICE), - KUSD_BSX_POOL_ID, - None, - None, - None, - Some(12_500_000), - None, - None, - None, - None, - )); - - // verify changes - let updated_pool_data_3 = LBPPallet::pool_data(KUSD_BSX_POOL_ID).unwrap(); - assert_eq!(updated_pool_data_3.start, Some(15)); - assert_eq!(updated_pool_data_3.end, Some(30)); - assert_eq!(updated_pool_data_3.initial_weight, 12_500_000); - assert_eq!(updated_pool_data_3.final_weight, 80_000_000); - assert_eq!(updated_pool_data_3.fee, (5, 100),); - assert_eq!(updated_pool_data_3.fee_collector, BOB); - - // update only one parameter - assert_ok!(LBPPallet::update_pool_data( - Origin::signed(ALICE), - KUSD_BSX_POOL_ID, - None, - None, - None, - None, - None, - None, - Some(ALICE), - None, - )); - - // verify changes - let updated_pool_data_4 = LBPPallet::pool_data(KUSD_BSX_POOL_ID).unwrap(); - assert_eq!(updated_pool_data_4.start, Some(15)); - assert_eq!(updated_pool_data_4.end, Some(30)); - assert_eq!(updated_pool_data_4.initial_weight, 12_500_000); - assert_eq!(updated_pool_data_4.final_weight, 80_000_000); - assert_eq!(updated_pool_data_4.fee, (5, 100),); - assert_eq!(updated_pool_data_4.fee_collector, ALICE); - - // mix - assert_ok!(LBPPallet::update_pool_data( - Origin::signed(ALICE), - KUSD_BSX_POOL_ID, - None, - None, - Some(18), - Some(10_000_000), - Some(80_000_000), - Some((6, 1_000)), - None, - None, - )); - - // verify changes - let updated_pool_data_5 = LBPPallet::pool_data(KUSD_BSX_POOL_ID).unwrap(); - assert_eq!(updated_pool_data_5.start, Some(15)); - assert_eq!(updated_pool_data_5.end, Some(18)); - assert_eq!(updated_pool_data_5.initial_weight, 10_000_000); - assert_eq!(updated_pool_data_5.final_weight, 80_000_000); - assert_eq!(updated_pool_data_5.fee, (6, 1_000),); - assert_eq!(updated_pool_data_5.fee_collector, ALICE); - - // set repay target - let repayment = 1_000_000; - assert_eq!(updated_pool_data_5.repay_target, 0); - assert_ok!(LBPPallet::update_pool_data( - Origin::signed(ALICE), - KUSD_BSX_POOL_ID, - None, - None, - None, - None, - None, - None, - None, - Some(repayment), - )); - let updated_pool_data_6 = LBPPallet::pool_data(KUSD_BSX_POOL_ID).unwrap(); - assert_eq!(updated_pool_data_6.repay_target, repayment); - - expect_events(vec![ - Event::PoolUpdated { - pool: KUSD_BSX_POOL_ID, - data: updated_pool_data_1, - } - .into(), - Event::PoolUpdated { - pool: KUSD_BSX_POOL_ID, - data: updated_pool_data_2, - } - .into(), - Event::PoolUpdated { - pool: KUSD_BSX_POOL_ID, - data: updated_pool_data_3, - } - .into(), - Event::PoolUpdated { - pool: KUSD_BSX_POOL_ID, - data: updated_pool_data_4, - } - .into(), - Event::PoolUpdated { - pool: KUSD_BSX_POOL_ID, - data: updated_pool_data_5, - } - .into(), - Event::PoolUpdated { - pool: KUSD_BSX_POOL_ID, - data: updated_pool_data_6, - } - .into(), - ]); - }); -} - -#[test] -fn update_non_existing_pool_data_should_not_work() { - new_test_ext().execute_with(|| { - assert_noop!( - LBPPallet::update_pool_data( - Origin::signed(ALICE), - KUSD_BSX_POOL_ID, - None, - Some(15), - Some(18), - Some(10_000_000), - Some(80_000_000), - Some((5, 100)), - None, - None, - ), - Error::::PoolNotFound - ); - }); -} - -#[test] -fn update_pool_with_invalid_data_should_not_work() { - predefined_test_ext().execute_with(|| { - assert_noop!( - LBPPallet::update_pool_data( - Origin::signed(ALICE), - KUSD_BSX_POOL_ID, - None, - // reversed interval, the end precedes the beginning - Some(20), - Some(10), - Some(10_000_000), - Some(80_000_000), - Some((5, 100)), - None, - None, - ), - Error::::InvalidBlockRange - ); - - set_block_number::(6); - - assert_noop!( - LBPPallet::update_pool_data( - Origin::signed(ALICE), - KUSD_BSX_POOL_ID, - None, - Some(5), - Some(20), - Some(10_000_000), - Some(80_000_000), - Some((5, 100)), - None, - None, - ), - Error::::InvalidBlockRange - ); - - assert_noop!( - LBPPallet::update_pool_data( - Origin::signed(ALICE), - KUSD_BSX_POOL_ID, - None, - Some(0), - Some(20), - Some(10_000_000), - Some(80_000_000), - Some((5, 100)), - None, - None, - ), - Error::::InvalidBlockRange - ); - - assert_noop!( - LBPPallet::update_pool_data( - Origin::signed(ALICE), - KUSD_BSX_POOL_ID, - None, - Some(5), - Some(0), - Some(10_000_000), - Some(80_000_000), - Some((5, 100)), - None, - None, - ), - Error::::InvalidBlockRange - ); - }); -} - -#[test] -fn update_pool_data_without_changes_should_not_work() { - predefined_test_ext().execute_with(|| { - assert_noop!( - LBPPallet::update_pool_data( - Origin::signed(ALICE), - KUSD_BSX_POOL_ID, - None, - None, - None, - None, - None, - None, - None, - None, - ), - Error::::NothingToUpdate - ); - }); -} - -#[test] -fn update_pool_data_by_non_owner_should_not_work() { - predefined_test_ext().execute_with(|| { - assert_noop!( - LBPPallet::update_pool_data( - Origin::signed(BOB), - KUSD_BSX_POOL_ID, - None, - Some(15), - Some(20), - Some(10_000_000), - Some(80_000_000), - None, - None, - None, - ), - Error::::NotOwner - ); - }); -} - -#[test] -fn update_pool_owner_by_new_owner_should_work() { - predefined_test_ext().execute_with(|| { - assert_ok!(LBPPallet::update_pool_data( - Origin::signed(ALICE), - KUSD_BSX_POOL_ID, - Some(BOB), - Some(15), - Some(20), - Some(10_000_000), - Some(80_000_000), - None, - None, - None, - )); - - let pool_data1 = LBPPallet::pool_data(KUSD_BSX_POOL_ID).unwrap(); - - assert_ok!(LBPPallet::update_pool_data( - Origin::signed(BOB), - KUSD_BSX_POOL_ID, - Some(ALICE), - Some(15), - Some(20), - Some(10_000_000), - Some(80_000_000), - None, - None, - None, - )); - - let pool_data2 = LBPPallet::pool_data(KUSD_BSX_POOL_ID).unwrap(); - - expect_events(vec![ - Event::PoolUpdated { - pool: KUSD_BSX_POOL_ID, - data: pool_data1, - } - .into(), - Event::PoolUpdated { - pool: KUSD_BSX_POOL_ID, - data: pool_data2, - } - .into(), - ]); - }); -} - -#[test] -fn update_pool_data_for_running_lbp_should_not_work() { - predefined_test_ext().execute_with(|| { - assert_ok!(LBPPallet::update_pool_data( - Origin::signed(ALICE), - KUSD_BSX_POOL_ID, - None, - Some(15), - Some(20), - None, - None, - None, - None, - None, - )); - - set_block_number::(16); - - // update starting block and final weights - assert_noop!( - LBPPallet::update_pool_data( - Origin::signed(ALICE), - KUSD_BSX_POOL_ID, - None, - Some(15), - Some(30), - Some(10_000_000), - Some(80_000_000), - Some((5, 100)), - Some(BOB), - None, - ), - Error::::SaleStarted - ); - - let pool_data = LBPPallet::pool_data(KUSD_BSX_POOL_ID).unwrap(); - - expect_events(vec![Event::PoolUpdated { - pool: KUSD_BSX_POOL_ID, - data: pool_data, - } - .into()]); - }); -} - -#[test] -fn update_pool_with_existing_fee_collector_should_not_work() { - predefined_test_ext().execute_with(|| { - assert_ok!(LBPPallet::create_pool( - Origin::root(), - ALICE, - KUSD, - 1_000_000_000, - HDX, - 2_000_000_000, - 20_000_000u32, - 90_000_000u32, - WeightCurveType::Linear, - DEFAULT_FEE, - BOB, - 0, - )); - - assert_noop!( - LBPPallet::update_pool_data( - Origin::signed(ALICE), - KUSD_BSX_POOL_ID, - None, - Some(15), - Some(18), - Some(10_000_000), - Some(80_000_000), - Some((5, 100)), - Some(BOB), - None, - ), - Error::::FeeCollectorWithAssetAlreadyUsed - ); - }); -} - -#[test] -fn update_pool_interval_should_work() { - new_test_ext().execute_with(|| { - assert_ok!(LBPPallet::create_pool( - Origin::root(), - ALICE, - KUSD, - 1_000_000_000, - BSX, - 2_000_000_000, - 10_000_000, - 10_000_000, - WeightCurveType::Linear, - DEFAULT_FEE, - CHARLIE, - 0, - )); - - set_block_number::(15); - - assert_noop!( - LBPPallet::update_pool_data( - Origin::signed(ALICE), - KUSD_BSX_POOL_ID, - None, - Some(16), - Some(0), - None, - None, - None, - None, - None, - ), - Error::::InvalidBlockRange - ); - - assert_ok!(LBPPallet::update_pool_data( - Origin::signed(ALICE), - KUSD_BSX_POOL_ID, - None, - Some(16), - Some(20), - None, - None, - None, - None, - None, - )); - - // verify changes - let updated_pool_data = LBPPallet::pool_data(KUSD_BSX_POOL_ID).unwrap(); - assert_eq!(updated_pool_data.start, Some(16)); - assert_eq!(updated_pool_data.end, Some(20)); - - expect_events(vec![ - Event::LiquidityAdded { - who: KUSD_BSX_POOL_ID, - asset_a: KUSD, - asset_b: BSX, - amount_a: 1_000_000_000, - amount_b: 2_000_000_000, - } - .into(), - Event::PoolUpdated { - pool: KUSD_BSX_POOL_ID, - data: updated_pool_data, - } - .into(), - ]); - }); -} - -#[test] -fn add_liquidity_should_work() { - predefined_test_ext().execute_with(|| { - let user_balance_a_before = Currency::free_balance(KUSD, &ALICE); - let user_balance_b_before = Currency::free_balance(BSX, &ALICE); - let pool_balance_a_before = Currency::free_balance(KUSD, &KUSD_BSX_POOL_ID); - let pool_balance_b_before = Currency::free_balance(BSX, &KUSD_BSX_POOL_ID); - - let added_a = 10_000_000_000; - let added_b = 20_000_000_000; - - assert_ok!(LBPPallet::add_liquidity( - Origin::signed(ALICE), - (KUSD, added_a), - (BSX, added_b), - )); - - expect_events(vec![Event::LiquidityAdded { - who: KUSD_BSX_POOL_ID, - asset_a: KUSD, - asset_b: BSX, - amount_a: added_a, - amount_b: added_b, - } - .into()]); - - let pool_balance_a_after = Currency::free_balance(KUSD, &KUSD_BSX_POOL_ID); - let pool_balance_b_after = Currency::free_balance(BSX, &KUSD_BSX_POOL_ID); - assert_eq!(pool_balance_a_after, pool_balance_a_before.saturating_add(added_a)); - assert_eq!(pool_balance_b_after, pool_balance_b_before.saturating_add(added_b)); - - let user_balance_a_after = Currency::free_balance(KUSD, &ALICE); - let user_balance_b_after = Currency::free_balance(BSX, &ALICE); - assert_eq!(user_balance_a_after, user_balance_a_before.saturating_sub(added_a)); - assert_eq!(user_balance_b_after, user_balance_b_before.saturating_sub(added_b)); - - let user_balance_a_before = Currency::free_balance(KUSD, &ALICE); - let user_balance_b_before = Currency::free_balance(BSX, &ALICE); - let pool_balance_a_before = Currency::free_balance(KUSD, &KUSD_BSX_POOL_ID); - let pool_balance_b_before = Currency::free_balance(BSX, &KUSD_BSX_POOL_ID); - - assert_ok!(LBPPallet::add_liquidity( - Origin::signed(ALICE), - (KUSD, added_a), - (BSX, 0), - )); - - expect_events(vec![Event::LiquidityAdded { - who: KUSD_BSX_POOL_ID, - asset_a: KUSD, - asset_b: BSX, - amount_a: added_a, - amount_b: 0, - } - .into()]); - - let pool_balance_a_after = Currency::free_balance(KUSD, &KUSD_BSX_POOL_ID); - let pool_balance_b_after = Currency::free_balance(BSX, &KUSD_BSX_POOL_ID); - assert_eq!(pool_balance_a_after, pool_balance_a_before.saturating_add(added_a)); - assert_eq!(pool_balance_b_after, pool_balance_b_before); - - let user_balance_a_after = Currency::free_balance(KUSD, &ALICE); - let user_balance_b_after = Currency::free_balance(BSX, &ALICE); - assert_eq!(user_balance_a_after, user_balance_a_before.saturating_sub(added_a)); - assert_eq!(user_balance_b_after, user_balance_b_before); - - // change asset order - let user_balance_a_before = Currency::free_balance(KUSD, &ALICE); - let user_balance_b_before = Currency::free_balance(BSX, &ALICE); - let pool_balance_a_before = Currency::free_balance(KUSD, &KUSD_BSX_POOL_ID); - let pool_balance_b_before = Currency::free_balance(BSX, &KUSD_BSX_POOL_ID); - - assert_ok!(LBPPallet::add_liquidity( - Origin::signed(ALICE), - (BSX, added_b), - (KUSD, added_a), - )); - - let pool_balance_a_after = Currency::free_balance(KUSD, &KUSD_BSX_POOL_ID); - let pool_balance_b_after = Currency::free_balance(BSX, &KUSD_BSX_POOL_ID); - assert_eq!(pool_balance_a_after, pool_balance_a_before.saturating_add(added_a)); - assert_eq!(pool_balance_b_after, pool_balance_b_before.saturating_add(added_b)); - - let user_balance_a_after = Currency::free_balance(KUSD, &ALICE); - let user_balance_b_after = Currency::free_balance(BSX, &ALICE); - assert_eq!(user_balance_a_after, user_balance_a_before.saturating_sub(added_a)); - assert_eq!(user_balance_b_after, user_balance_b_before.saturating_sub(added_b)); - - expect_events(vec![Event::LiquidityAdded { - who: KUSD_BSX_POOL_ID, - asset_a: BSX, - asset_b: KUSD, - amount_a: added_b, - amount_b: added_a, - } - .into()]); - }); -} - -#[test] -fn add_liquidity_by_non_owner_should_not_work() { - predefined_test_ext().execute_with(|| { - assert_eq!(Currency::free_balance(KUSD, &BOB), 1000000000000000); - assert_eq!(Currency::free_balance(BSX, &BOB), 1000000000000000); - - assert_eq!(Currency::free_balance(KUSD, &KUSD_BSX_POOL_ID), 1_000_000_000); - assert_eq!(Currency::free_balance(BSX, &KUSD_BSX_POOL_ID), 2_000_000_000); - - assert_noop!( - LBPPallet::add_liquidity(Origin::signed(BOB), (KUSD, 10_000_000_000), (BSX, 20_000_000_000),), - Error::::NotOwner - ); - }); -} - -#[test] -fn add_zero_liquidity_should_not_work() { - predefined_test_ext().execute_with(|| { - let user_balance_a_before = Currency::free_balance(KUSD, &ALICE); - let user_balance_b_before = Currency::free_balance(BSX, &ALICE); - - let pool_balance_a_before = Currency::free_balance(KUSD, &KUSD_BSX_POOL_ID); - let pool_balance_b_before = Currency::free_balance(BSX, &KUSD_BSX_POOL_ID); - - assert_noop!( - LBPPallet::add_liquidity(Origin::signed(ALICE), (KUSD, 0), (BSX, 0),), - Error::::CannotAddZeroLiquidity - ); - - let pool_balance_a_after = Currency::free_balance(KUSD, &KUSD_BSX_POOL_ID); - let pool_balance_b_after = Currency::free_balance(BSX, &KUSD_BSX_POOL_ID); - - assert_eq!(pool_balance_a_after, pool_balance_a_before); - assert_eq!(pool_balance_b_after, pool_balance_b_before); - - let user_balance_a_after = Currency::free_balance(KUSD, &ALICE); - let user_balance_b_after = Currency::free_balance(BSX, &ALICE); - assert_eq!(user_balance_a_after, user_balance_a_before); - assert_eq!(user_balance_b_after, user_balance_b_before); - - // No new events expected - expect_events(vec![]); - }); -} - -#[test] -fn add_liquidity_with_insufficient_balance_should_not_work() { - predefined_test_ext().execute_with(|| { - let user_balance_a_before = Currency::free_balance(KUSD, &ALICE); - - let pool_balance_a_before = Currency::free_balance(KUSD, &KUSD_BSX_POOL_ID); - let pool_balance_b_before = Currency::free_balance(BSX, &KUSD_BSX_POOL_ID); - - assert_noop!( - LBPPallet::add_liquidity(Origin::signed(ALICE), (KUSD, u128::MAX), (BSX, 0),), - Error::::InsufficientAssetBalance - ); - - let pool_balance_a_after = Currency::free_balance(KUSD, &KUSD_BSX_POOL_ID); - let pool_balance_b_after = Currency::free_balance(BSX, &KUSD_BSX_POOL_ID); - - assert_eq!(pool_balance_a_after, pool_balance_a_before); - assert_eq!(pool_balance_b_after, pool_balance_b_before); - - let user_balance_a_after = Currency::free_balance(KUSD, &ALICE); - assert_eq!(user_balance_a_after, user_balance_a_before); - }); -} - -#[test] -fn add_liquidity_after_sale_started_should_work() { - predefined_test_ext().execute_with(|| { - set_block_number::(15); - - let user_balance_a_before = Currency::free_balance(KUSD, &ALICE); - let user_balance_b_before = Currency::free_balance(BSX, &ALICE); - - let pool_balance_a_before = Currency::free_balance(KUSD, &KUSD_BSX_POOL_ID); - let pool_balance_b_before = Currency::free_balance(BSX, &KUSD_BSX_POOL_ID); - - assert_ok!(LBPPallet::add_liquidity( - Origin::signed(ALICE), - (KUSD, 1_000), - (BSX, 1_000), - )); - - expect_events(vec![Event::LiquidityAdded { - who: KUSD_BSX_POOL_ID, - asset_a: KUSD, - asset_b: BSX, - amount_a: 1_000, - amount_b: 1_000, - } - .into()]); - - let pool_balance_a_after = Currency::free_balance(KUSD, &KUSD_BSX_POOL_ID); - let pool_balance_b_after = Currency::free_balance(BSX, &KUSD_BSX_POOL_ID); - - assert_eq!(pool_balance_a_after, pool_balance_a_before.saturating_add(1_000)); - assert_eq!(pool_balance_b_after, pool_balance_b_before.saturating_add(1_000)); - - let user_balance_a_after = Currency::free_balance(KUSD, &ALICE); - let user_balance_b_after = Currency::free_balance(BSX, &ALICE); - - assert_eq!(user_balance_a_after, user_balance_a_before.saturating_sub(1_000)); - assert_eq!(user_balance_b_after, user_balance_b_before.saturating_sub(1_000)); - - // sale ended at the block number 20 - set_block_number::(30); - - let user_balance_a_before = Currency::free_balance(KUSD, &ALICE); - let user_balance_b_before = Currency::free_balance(BSX, &ALICE); - - let pool_balance_a_before = Currency::free_balance(KUSD, &KUSD_BSX_POOL_ID); - let pool_balance_b_before = Currency::free_balance(BSX, &KUSD_BSX_POOL_ID); - - assert_ok!(LBPPallet::add_liquidity( - Origin::signed(ALICE), - (KUSD, 1_000), - (BSX, 1_000), - )); - - let pool_balance_a_after = Currency::free_balance(KUSD, &KUSD_BSX_POOL_ID); - let pool_balance_b_after = Currency::free_balance(BSX, &KUSD_BSX_POOL_ID); - - assert_eq!(pool_balance_a_after, pool_balance_a_before.saturating_add(1_000)); - assert_eq!(pool_balance_b_after, pool_balance_b_before.saturating_add(1_000)); - - let user_balance_a_after = Currency::free_balance(KUSD, &ALICE); - let user_balance_b_after = Currency::free_balance(BSX, &ALICE); - - assert_eq!(user_balance_a_after, user_balance_a_before.saturating_sub(1_000)); - assert_eq!(user_balance_b_after, user_balance_b_before.saturating_sub(1_000)); - - expect_events(vec![Event::LiquidityAdded { - who: KUSD_BSX_POOL_ID, - asset_a: KUSD, - asset_b: BSX, - amount_a: 1_000, - amount_b: 1_000, - } - .into()]); - }); -} - -#[test] -fn add_liquidity_to_non_existing_pool_should_not_work() { - predefined_test_ext().execute_with(|| { - assert_noop!( - LBPPallet::add_liquidity(Origin::signed(ALICE), (KUSD, 1_000), (HDX, 1_000),), - Error::::PoolNotFound - ); - }); -} - -#[test] -fn remove_liquidity_should_work() { - predefined_test_ext().execute_with(|| { - set_block_number::(41); - - let user_balance_a_before = Currency::free_balance(KUSD, &ALICE); - let user_balance_b_before = Currency::free_balance(BSX, &ALICE); - - let pool_balance_a_before = Currency::free_balance(KUSD, &KUSD_BSX_POOL_ID); - let pool_balance_b_before = Currency::free_balance(BSX, &KUSD_BSX_POOL_ID); - - assert_ok!(LBPPallet::remove_liquidity(Origin::signed(ALICE), KUSD_BSX_POOL_ID,)); - - let pool_balance_a_after = Currency::free_balance(KUSD, &KUSD_BSX_POOL_ID); - let pool_balance_b_after = Currency::free_balance(BSX, &KUSD_BSX_POOL_ID); - - assert_eq!(pool_balance_a_after, 0); - assert_eq!(pool_balance_b_after, 0); - - let user_balance_a_after = Currency::free_balance(KUSD, &ALICE); - assert_eq!( - user_balance_a_after, - user_balance_a_before.saturating_add(pool_balance_a_before) - ); - - let user_balance_b_after = Currency::free_balance(BSX, &ALICE); - assert_eq!( - user_balance_b_after, - user_balance_b_before.saturating_add(pool_balance_b_before) - ); - - assert!(!>::contains_key(CHARLIE, KUSD)); - assert!(!>::contains_key(KUSD_BSX_POOL_ID)); - - expect_events(vec![ - frame_system::Event::KilledAccount { - account: KUSD_BSX_POOL_ID, - } - .into(), - mock::RuntimeEvent::Currency(orml_tokens::Event::Transfer { - currency_id: BSX, - from: KUSD_BSX_POOL_ID, - to: ALICE, - amount: 2000000000, - }), - Event::LiquidityRemoved { - who: KUSD_BSX_POOL_ID, - asset_a: KUSD, - asset_b: BSX, - amount_a: pool_balance_a_before, - amount_b: pool_balance_b_before, - } - .into(), - ]); - }); -} - -#[test] -fn remove_liquidity_from_not_started_pool_should_work() { - predefined_test_ext().execute_with(|| { - let user_balance_a_before = Currency::free_balance(KUSD, &ALICE); - let user_balance_b_before = Currency::free_balance(BSX, &ALICE); - - let pool_balance_a_before = Currency::free_balance(KUSD, &KUSD_BSX_POOL_ID); - let pool_balance_b_before = Currency::free_balance(BSX, &KUSD_BSX_POOL_ID); - - assert_ok!(LBPPallet::remove_liquidity(Origin::signed(ALICE), KUSD_BSX_POOL_ID,)); - expect_events(vec![Event::LiquidityRemoved { - who: KUSD_BSX_POOL_ID, - asset_a: KUSD, - asset_b: BSX, - amount_a: pool_balance_a_before, - amount_b: pool_balance_b_before, - } - .into()]); - - let pool_balance_a_after = Currency::free_balance(KUSD, &KUSD_BSX_POOL_ID); - let pool_balance_b_after = Currency::free_balance(BSX, &KUSD_BSX_POOL_ID); - - assert_eq!(pool_balance_a_after, 0); - assert_eq!(pool_balance_b_after, 0); - - let user_balance_a_after = Currency::free_balance(KUSD, &ALICE); - assert_eq!( - user_balance_a_after, - user_balance_a_before.saturating_add(pool_balance_a_before) - ); - - let user_balance_b_after = Currency::free_balance(BSX, &ALICE); - assert_eq!( - user_balance_b_after, - user_balance_b_before.saturating_add(pool_balance_b_before) - ); - - assert!(!>::contains_key(KUSD_BSX_POOL_ID)); - - // sale duration is not specified - assert_ok!(LBPPallet::create_pool( - Origin::root(), - ALICE, - HDX, - 1_000_000_000, - BSX, - 2_000_000_000, - 10_000_000, - 90_000_000, - WeightCurveType::Linear, - DEFAULT_FEE, - CHARLIE, - 0, - )); - - let user_balance_a_before = Currency::free_balance(HDX, &ALICE); - let user_balance_b_before = Currency::free_balance(BSX, &ALICE); - - let pool_balance_a_before = Currency::free_balance(HDX, &HDX_BSX_POOL_ID); - let pool_balance_b_before = Currency::free_balance(BSX, &HDX_BSX_POOL_ID); - - assert_ok!(LBPPallet::remove_liquidity(Origin::signed(ALICE), HDX_BSX_POOL_ID,)); - - expect_events(vec![Event::LiquidityRemoved { - who: HDX_BSX_POOL_ID, - asset_a: HDX, - asset_b: BSX, - amount_a: pool_balance_a_before, - amount_b: pool_balance_b_before, - } - .into()]); - - let pool_balance_a_after = Currency::free_balance(HDX, &HDX_BSX_POOL_ID); - let pool_balance_b_after = Currency::free_balance(BSX, &HDX_BSX_POOL_ID); - - assert_eq!(pool_balance_a_after, 0); - assert_eq!(pool_balance_b_after, 0); - - let user_balance_a_after = Currency::free_balance(HDX, &ALICE); - assert_eq!( - user_balance_a_after, - user_balance_a_before.saturating_add(pool_balance_a_before) - ); - - let user_balance_b_after = Currency::free_balance(BSX, &ALICE); - assert_eq!( - user_balance_b_after, - user_balance_b_before.saturating_add(pool_balance_b_before) - ); - - assert!(!>::contains_key(HDX_BSX_POOL_ID)); - }); -} - -#[test] -fn remove_liquidity_from_non_existing_pool_should_not_work() { - new_test_ext().execute_with(|| { - assert_noop!( - LBPPallet::remove_liquidity(Origin::signed(ALICE), KUSD_BSX_POOL_ID), - Error::::PoolNotFound - ); - }); -} - -#[test] -fn remove_liquidity_from_not_finalized_pool_should_not_work() { - predefined_test_ext().execute_with(|| { - set_block_number::(15); - - let user_balance_a_before = Currency::free_balance(KUSD, &ALICE); - let user_balance_b_before = Currency::free_balance(BSX, &ALICE); - - let pool_balance_a_before = Currency::free_balance(KUSD, &KUSD_BSX_POOL_ID); - let pool_balance_b_before = Currency::free_balance(BSX, &KUSD_BSX_POOL_ID); - - assert_noop!( - LBPPallet::remove_liquidity(Origin::signed(ALICE), KUSD_BSX_POOL_ID,), - Error::::SaleNotEnded - ); - - let user_balance_a_after = Currency::free_balance(KUSD, &ALICE); - let user_balance_b_after = Currency::free_balance(BSX, &ALICE); - - let pool_balance_a_after = Currency::free_balance(KUSD, &KUSD_BSX_POOL_ID); - let pool_balance_b_after = Currency::free_balance(BSX, &KUSD_BSX_POOL_ID); - - assert_eq!(pool_balance_a_before, pool_balance_a_after); - assert_eq!(pool_balance_b_before, pool_balance_b_after); - assert_eq!(user_balance_a_before, user_balance_a_after); - assert_eq!(user_balance_b_before, user_balance_b_after); - }); -} - -#[test] -fn remove_liquidity_from_finalized_pool_should_work() { - predefined_test_ext().execute_with(|| { - set_block_number::(41); - - let user_balance_a_before = Currency::free_balance(KUSD, &ALICE); - let user_balance_b_before = Currency::free_balance(BSX, &ALICE); - - let pool_balance_a_before = Currency::free_balance(KUSD, &KUSD_BSX_POOL_ID); - let pool_balance_b_before = Currency::free_balance(BSX, &KUSD_BSX_POOL_ID); - - assert_ok!(LBPPallet::remove_liquidity(Origin::signed(ALICE), KUSD_BSX_POOL_ID,)); - - let pool_balance_a_after = Currency::free_balance(KUSD, &KUSD_BSX_POOL_ID); - let pool_balance_b_after = Currency::free_balance(BSX, &KUSD_BSX_POOL_ID); - - assert_eq!(pool_balance_a_after, 0); - assert_eq!(pool_balance_b_after, 0); - - let user_balance_a_after = Currency::free_balance(KUSD, &ALICE); - assert_eq!( - user_balance_a_after, - user_balance_a_before.saturating_add(pool_balance_a_before) - ); - - let user_balance_b_after = Currency::free_balance(BSX, &ALICE); - assert_eq!( - user_balance_b_after, - user_balance_b_before.saturating_add(pool_balance_b_before) - ); - - assert!(!>::contains_key(KUSD_BSX_POOL_ID)); - - expect_events(vec![ - frame_system::Event::KilledAccount { - account: KUSD_BSX_POOL_ID, - } - .into(), - mock::RuntimeEvent::Currency(orml_tokens::Event::Transfer { - currency_id: BSX, - from: KUSD_BSX_POOL_ID, - to: ALICE, - amount: 2000000000, - }), - Event::LiquidityRemoved { - who: KUSD_BSX_POOL_ID, - asset_a: KUSD, - asset_b: BSX, - amount_a: pool_balance_a_before, - amount_b: pool_balance_b_before, - } - .into(), - ]); - }); -} - -#[test] -fn remove_liquidity_by_non_owner_should_not_work() { - predefined_test_ext().execute_with(|| { - assert_noop!( - LBPPallet::remove_liquidity(Origin::signed(BOB), KUSD_BSX_POOL_ID), - Error::::NotOwner - ); - }); -} - -#[test] -fn execute_trade_should_work() { - predefined_test_ext().execute_with(|| { - let asset_in = KUSD; - let asset_out = BSX; - let pool_id = KUSD_BSX_POOL_ID; - - let amount_in = 5_000_000_u128; - let amount_b = 10_000_000_u128; - let t_sell = AMMTransfer { - origin: ALICE, - assets: AssetPair { asset_in, asset_out }, - amount: amount_in, - amount_b, - discount: false, - discount_amount: 0_u128, - fee: (asset_in, 1_000), - }; - - assert_eq!(Currency::free_balance(asset_in, &ALICE), 999_999_000_000_000); - assert_eq!(Currency::free_balance(asset_out, &ALICE), 999_998_000_000_000); - assert_eq!(Currency::free_balance(asset_in, &CHARLIE), 0); - assert_eq!(Currency::free_balance(asset_out, &CHARLIE), 0); - - assert_eq!(Currency::free_balance(asset_in, &pool_id), 1_000_000_000); - assert_eq!(Currency::free_balance(asset_out, &pool_id), 2_000_000_000); - - assert_ok!(LBPPallet::execute_trade(&t_sell)); - - assert_eq!(Currency::free_balance(asset_in, &ALICE), 999_998_994_999_000); - assert_eq!(Currency::free_balance(asset_out, &ALICE), 999_998_010_000_000); - assert_eq!(Currency::free_balance(asset_in, &CHARLIE), 1_000); - assert_eq!(Currency::free_balance(asset_out, &CHARLIE), 0); - - assert_eq!(Currency::free_balance(asset_in, &pool_id), 1_005_000_000); - assert_eq!(Currency::free_balance(asset_out, &pool_id), 1_990_000_000); - - let t_buy = AMMTransfer { - origin: ALICE, - assets: AssetPair { asset_in, asset_out }, - amount: amount_in, - amount_b, - discount: false, - discount_amount: 0_u128, - fee: (asset_in, 1_000), - }; - - assert_ok!(LBPPallet::execute_trade(&t_buy)); - - assert_eq!(Currency::free_balance(asset_in, &ALICE), 999_998_989_998_000); - assert_eq!(Currency::free_balance(asset_out, &ALICE), 999_998_020_000_000); - assert_eq!(Currency::free_balance(asset_in, &CHARLIE), 2_000); - assert_eq!(Currency::free_balance(asset_out, &CHARLIE), 0); - - assert_eq!(Currency::free_balance(asset_in, &pool_id), 1_010_000_000); - assert_eq!(Currency::free_balance(asset_out, &pool_id), 1_980_000_000); - }); -} - -#[test] -fn trade_fails_when_first_fee_lesser_than_existential_deposit() { - predefined_test_ext().execute_with(|| { - let trade = AMMTransfer { - origin: ALICE, - assets: AssetPair { - asset_in: KUSD, - asset_out: BSX, - }, - amount: 1000, - amount_b: 1000, - discount: false, - discount_amount: 0_u128, - fee: (KUSD, EXISTENTIAL_DEPOSIT - 1), - }; - - assert_noop!( - LBPPallet::execute_trade(&trade), - orml_tokens::Error::::ExistentialDeposit - ); - }); -} - -// // This test ensure storage was not modified on error -#[test] -fn execute_trade_should_not_work() { - predefined_test_ext().execute_with(|| { - let asset_in = KUSD; - let asset_out = BSX; - let pool_id = LBPPallet::get_pair_id(AssetPair { asset_in, asset_out }); - - let amount_in = 5_000_000_u128; - let amount_b = 10_000_000_000_000_000u128; - let t = AMMTransfer { - origin: ALICE, - assets: AssetPair { asset_in, asset_out }, - amount: amount_in, - amount_b, - discount: false, - discount_amount: 0_u128, - fee: (asset_in, 1_000), - }; - - assert_eq!(Currency::free_balance(asset_in, &ALICE), 999_999_000_000_000); - assert_eq!(Currency::free_balance(asset_out, &ALICE), 999_998_000_000_000); - assert_eq!(Currency::free_balance(asset_out, &CHARLIE), 0); - - assert_eq!(Currency::free_balance(asset_in, &pool_id), 1_000_000_000); - assert_eq!(Currency::free_balance(asset_out, &pool_id), 2_000_000_000); - - assert_noop!(LBPPallet::execute_trade(&t), orml_tokens::Error::::BalanceTooLow); - - assert_eq!(Currency::free_balance(asset_in, &ALICE), 999_999_000_000_000); - assert_eq!(Currency::free_balance(asset_out, &ALICE), 999_998_000_000_000); - assert_eq!(Currency::free_balance(asset_out, &CHARLIE), 0); - - assert_eq!(Currency::free_balance(asset_in, &pool_id), 1_000_000_000); - assert_eq!(Currency::free_balance(asset_out, &pool_id), 2_000_000_000); - }); -} - -#[test] -fn execute_sell_should_work() { - predefined_test_ext().execute_with(|| { - let asset_in = KUSD; - let asset_out = BSX; - let pool_id = LBPPallet::get_pair_id(AssetPair { asset_in, asset_out }); - - let amount_in = 8_000_000_u128; - let amount_b = 20_000_000_u128; - let t = AMMTransfer { - origin: ALICE, - assets: AssetPair { asset_in, asset_out }, - amount: amount_in, - amount_b, - discount: false, - discount_amount: 0_u128, - fee: (asset_in, 1_000), - }; - - assert_eq!(Currency::free_balance(asset_in, &ALICE), 999_999_000_000_000); - assert_eq!(Currency::free_balance(asset_out, &ALICE), 999_998_000_000_000); - assert_eq!(Currency::free_balance(asset_out, &CHARLIE), 0); - - assert_eq!(Currency::free_balance(asset_in, &pool_id), 1_000_000_000); - assert_eq!(Currency::free_balance(asset_out, &pool_id), 2_000_000_000); - - assert_ok!(LBPPallet::execute_sell(&t)); - - expect_events(vec![Event::SellExecuted { - who: ALICE, - asset_in, - asset_out, - amount: amount_in, - sale_price: amount_b, - fee_asset: asset_in, - fee_amount: 1_000, - } - .into()]); - - assert_eq!(Currency::free_balance(asset_in, &ALICE), 999_998_991_999_000); - assert_eq!(Currency::free_balance(asset_out, &ALICE), 999_998_020_000_000); - assert_eq!(Currency::free_balance(asset_in, &CHARLIE), 1_000); - - assert_eq!(Currency::free_balance(asset_in, &pool_id), 1_008_000_000); - assert_eq!(Currency::free_balance(asset_out, &pool_id), 1_980_000_000); - - expect_events(vec![Event::SellExecuted { - who: ALICE, - asset_in, - asset_out, - amount: 8_000_000, - sale_price: 20_000_000, - fee_asset: asset_in, - fee_amount: 1_000, - } - .into()]); - }); -} - -// This test ensure storage was not modified on error -#[test] -fn execute_sell_should_not_work() { - predefined_test_ext().execute_with(|| { - let t = AMMTransfer { - origin: ALICE, - assets: AssetPair { - asset_in: KUSD, - asset_out: BSX, - }, - amount: 8_000_000_000_u128, - amount_b: 200_000_000_000_000_u128, - discount: false, - discount_amount: 0_u128, - fee: (KUSD, 1_000), - }; - - assert_eq!(Currency::free_balance(KUSD, &ALICE), 999_999_000_000_000); - assert_eq!(Currency::free_balance(BSX, &ALICE), 999_998_000_000_000); - assert_eq!(Currency::free_balance(BSX, &CHARLIE), 0); - - assert_eq!(Currency::free_balance(KUSD, &KUSD_BSX_POOL_ID), 1_000_000_000); - assert_eq!(Currency::free_balance(BSX, &KUSD_BSX_POOL_ID), 2_000_000_000); - - assert_noop!(LBPPallet::execute_sell(&t), orml_tokens::Error::::BalanceTooLow); - - assert_eq!(Currency::free_balance(KUSD, &ALICE), 999_999_000_000_000); - assert_eq!(Currency::free_balance(BSX, &ALICE), 999_998_000_000_000); - assert_eq!(Currency::free_balance(BSX, &CHARLIE), 0); - - assert_eq!(Currency::free_balance(KUSD, &KUSD_BSX_POOL_ID), 1_000_000_000); - assert_eq!(Currency::free_balance(BSX, &KUSD_BSX_POOL_ID), 2_000_000_000); - }); -} - -#[test] -fn zero_weight_should_not_work() { - predefined_test_ext().execute_with(|| { - assert_noop!( - LBPPallet::create_pool( - Origin::root(), - ALICE, - ETH, - 1_000_000_000, - KUSD, - 2_000_000_000, - 0u32, - 20u32, - WeightCurveType::Linear, - DEFAULT_FEE, - CHARLIE, - 0, - ), - Error::::InvalidWeight - ); - - let call = Call::LBPPallet(crate::Call::::update_pool_data { - pool_id: KUSD_BSX_POOL_ID, - pool_owner: None, - start: Some(15), - end: Some(18), - initial_weight: Some(0), - final_weight: Some(80), - fee: Some((5, 100)), - fee_collector: Some(BOB), - repay_target: Some(0), - }); - - assert_noop!(call.dispatch(Origin::signed(ALICE)), Error::::InvalidWeight); - }); -} - -#[test] -fn execute_buy_should_work() { - predefined_test_ext().execute_with(|| { - let asset_in = KUSD; - let asset_out = BSX; - let pool_id = LBPPallet::get_pair_id(AssetPair { asset_in, asset_out }); - - let amount_in = 8_000_000_u128; - let amount_b = 20_000_000_u128; - let t = AMMTransfer { - origin: ALICE, - assets: AssetPair { asset_in, asset_out }, - amount: amount_in, - amount_b, - discount: false, - discount_amount: 0_u128, - fee: (asset_in, 1_000), - }; - - assert_eq!(Currency::free_balance(asset_in, &ALICE), 999_999_000_000_000); - assert_eq!(Currency::free_balance(asset_out, &ALICE), 999_998_000_000_000); - assert_eq!(Currency::free_balance(asset_in, &CHARLIE), 0); - assert_eq!(Currency::free_balance(asset_out, &CHARLIE), 0); - - assert_eq!(Currency::free_balance(asset_in, &pool_id), 1_000_000_000); - assert_eq!(Currency::free_balance(asset_out, &pool_id), 2_000_000_000); - - assert_ok!(LBPPallet::execute_buy(&t)); - - assert_eq!(Currency::free_balance(asset_in, &ALICE), 999_998_991_999_000); - assert_eq!(Currency::free_balance(asset_out, &ALICE), 999_998_020_000_000); - assert_eq!(Currency::free_balance(asset_in, &CHARLIE), 1_000); - assert_eq!(Currency::free_balance(asset_out, &CHARLIE), 0); - - assert_eq!(Currency::free_balance(asset_in, &pool_id), 1_008_000_000); - assert_eq!(Currency::free_balance(asset_out, &pool_id), 1_980_000_000); - - expect_events(vec![Event::BuyExecuted { - who: ALICE, - asset_out, - asset_in, - amount: 8_000_000, - buy_price: 20_000_000, - fee_asset: asset_in, - fee_amount: 1_000, - } - .into()]); - }); -} - -// This test ensures storage was not modified on error -#[test] -fn execute_buy_should_not_work() { - predefined_test_ext().execute_with(|| { - let asset_in = KUSD; - let asset_out = BSX; - let pool_id = LBPPallet::get_pair_id(AssetPair { asset_in, asset_out }); - - let amount_in = 8_000_000_000_u128; - let amount_b = 200_000_000_000_000_u128; - let t = AMMTransfer { - origin: ALICE, - assets: AssetPair { asset_in, asset_out }, - amount: amount_in, - amount_b, - discount: false, - discount_amount: 0_u128, - fee: (asset_in, 1_000), - }; - - assert_eq!(Currency::free_balance(asset_in, &ALICE), 999_999_000_000_000); - assert_eq!(Currency::free_balance(asset_out, &ALICE), 999_998_000_000_000); - assert_eq!(Currency::free_balance(asset_in, &CHARLIE), 0); - - assert_eq!(Currency::free_balance(asset_in, &pool_id), 1_000_000_000); - assert_eq!(Currency::free_balance(asset_out, &pool_id), 2_000_000_000); - - assert_noop!(LBPPallet::execute_buy(&t), orml_tokens::Error::::BalanceTooLow); - - assert_eq!(Currency::free_balance(asset_in, &ALICE), 999_999_000_000_000); - assert_eq!(Currency::free_balance(asset_out, &ALICE), 999_998_000_000_000); - assert_eq!(Currency::free_balance(asset_in, &CHARLIE), 0); - - assert_eq!(Currency::free_balance(asset_in, &pool_id), 1_000_000_000); - assert_eq!(Currency::free_balance(asset_out, &pool_id), 2_000_000_000); - }); -} - -#[test] -fn sell_zero_amount_should_not_work() { - predefined_test_ext().execute_with(|| { - assert_noop!( - LBPPallet::sell(Origin::signed(BOB), KUSD, BSX, 0_u128, 200_000_u128), - Error::::ZeroAmount - ); - }); -} - -#[test] -fn buy_zero_amount_should_not_work() { - predefined_test_ext().execute_with(|| { - assert_noop!( - LBPPallet::buy(Origin::signed(BOB), KUSD, BSX, 0_u128, 200_000_u128), - Error::::ZeroAmount - ); - }); -} - -#[test] -fn sell_to_non_existing_pool_should_not_work() { - predefined_test_ext().execute_with(|| { - assert_noop!( - LBPPallet::sell(Origin::signed(BOB), KUSD, ETH, 800_000_u128, 200_000_u128), - Error::::PoolNotFound - ); - }); -} - -#[test] -fn buy_from_non_existing_pool_should_not_work() { - predefined_test_ext().execute_with(|| { - assert_noop!( - LBPPallet::buy(Origin::signed(BOB), KUSD, ETH, 800_000_u128, 200_000_u128), - Error::::PoolNotFound - ); - }); -} - -#[test] -fn exceed_max_in_ratio_should_not_work() { - predefined_test_ext().execute_with(|| { - set_block_number::(11); //start sale - assert_noop!( - LBPPallet::sell( - Origin::signed(BOB), - KUSD, - BSX, - 1_000_000_000 / MAX_IN_RATIO + 1, - 200_000_u128 - ), - Error::::MaxInRatioExceeded - ); - - // 1/2 should not work - assert_noop!( - LBPPallet::sell(Origin::signed(BOB), KUSD, BSX, 1_000_000_000 / 2, 200_000_u128), - Error::::MaxInRatioExceeded - ); - - // max ratio should work - assert_ok!(LBPPallet::sell( - Origin::signed(BOB), - KUSD, - BSX, - 1_000_000_000 / MAX_IN_RATIO, - 2_000_u128 - )); - }); -} - -#[test] -fn exceed_max_out_ratio_should_not_work() { - predefined_test_ext().execute_with(|| { - set_block_number::(11); //start sale - - // max_ratio_out + 1 should not work - assert_noop!( - LBPPallet::buy( - Origin::signed(BOB), - BSX, - KUSD, - 2_000_000_000 / MAX_OUT_RATIO + 1, - 200_000_u128 - ), - Error::::MaxOutRatioExceeded - ); - - // 1/2 should not work - assert_noop!( - LBPPallet::buy(Origin::signed(BOB), BSX, KUSD, 2_000_000_000 / 2, 200_000_u128), - Error::::MaxOutRatioExceeded - ); - }); -} - -#[test] -fn trade_in_non_running_pool_should_not_work() { - predefined_test_ext().execute_with(|| { - let who = BOB; - let asset_in = KUSD; - let asset_out = BSX; - let amount = 800_000_u128; - let limit = 200_000_u128; - - //sale not started - set_block_number::(9); - assert_noop!( - LBPPallet::sell(Origin::signed(who), asset_in, asset_out, amount, limit), - Error::::SaleIsNotRunning - ); - assert_noop!( - LBPPallet::buy(Origin::signed(who), asset_out, asset_in, amount, limit), - Error::::SaleIsNotRunning - ); - - //sale ended - set_block_number::(41); - assert_noop!( - LBPPallet::sell(Origin::signed(who), asset_in, asset_out, amount, limit), - Error::::SaleIsNotRunning - ); - assert_noop!( - LBPPallet::buy(Origin::signed(who), asset_out, asset_in, amount, limit), - Error::::SaleIsNotRunning - ); - }); -} - -#[test] -fn exceed_trader_limit_should_not_work() { - predefined_test_ext().execute_with(|| { - let who = BOB; - let asset_in = KUSD; - let asset_out = BSX; - let amount = 800_000_u128; - let sell_limit = 800_000_u128; - let buy_limit = 1_000_u128; - - //start sale - set_block_number::(11); - assert_noop!( - LBPPallet::sell(Origin::signed(who), asset_in, asset_out, amount, sell_limit), - Error::::TradingLimitReached - ); - - assert_noop!( - LBPPallet::buy(Origin::signed(who), asset_out, asset_in, amount, buy_limit), - Error::::TradingLimitReached - ); - }); -} - -#[test] -fn sell_with_insufficient_balance_should_not_work() { - predefined_test_ext().execute_with(|| { - let who = BOB; - let asset_in = KUSD; - let asset_out = BSX; - let amount = 1_000_000_u128; - - Currency::set_balance(Origin::root(), who, asset_in, 100_000, 0).unwrap(); - Currency::set_balance(Origin::root(), who, asset_out, 100_000, 0).unwrap(); - - //start sale - set_block_number::(11); - - assert_noop!( - LBPPallet::sell(Origin::signed(who), asset_in, asset_out, amount, 800_000_u128), - Error::::InsufficientAssetBalance - ); - - // swap assets - assert_noop!( - LBPPallet::sell(Origin::signed(who), asset_out, asset_in, amount, 800_000_u128), - Error::::InsufficientAssetBalance - ); - }); -} - -#[test] -fn buy_with_insufficient_balance_should_not_work() { - predefined_test_ext().execute_with(|| { - let who = BOB; - let asset_in = KUSD; - let asset_out = BSX; - let amount = 1_000_000_u128; - - Currency::set_balance(Origin::root(), who, asset_in, 100_000, 0).unwrap(); - Currency::set_balance(Origin::root(), who, asset_out, 100_000, 0).unwrap(); - - //start sale - set_block_number::(11); - - assert_noop!( - LBPPallet::buy(Origin::signed(who), asset_out, asset_in, amount, 2_000_000_u128), - Error::::InsufficientAssetBalance - ); - - // swap assets - assert_noop!( - LBPPallet::buy(Origin::signed(who), asset_in, asset_out, amount, 2_000_000_u128), - Error::::InsufficientAssetBalance - ); - }); -} - -#[test] -fn inverted_operations_should_be_equal() { - let buy = predefined_test_ext().execute_with(|| { - run_to_sale_start(); - assert_ok!(LBPPallet::buy( - Origin::signed(BOB), - BSX, - KUSD, - 10_000_000_u128, - 21_000_000_u128 - )); - ( - Currency::free_balance(KUSD, &BOB), - Currency::free_balance(KUSD, &KUSD_BSX_POOL_ID), - Currency::free_balance(KUSD, &CHARLIE), - ) - }); - let sell = predefined_test_ext().execute_with(|| { - run_to_sale_start(); - assert_ok!(LBPPallet::sell( - Origin::signed(BOB), - KUSD, - BSX, - 20_252_529_u128, - 9_000_000_u128 - )); - ( - Currency::free_balance(KUSD, &BOB), - Currency::free_balance(KUSD, &KUSD_BSX_POOL_ID), - Currency::free_balance(KUSD, &CHARLIE), - ) - }); - assert_eq!(buy, sell); -} - -#[test] -fn buy_should_work() { - predefined_test_ext().execute_with(|| { - let buyer = BOB; - let asset_in = KUSD; - let asset_out = BSX; - let pool_id = LBPPallet::get_pair_id(AssetPair { asset_in, asset_out }); - - //start sale - set_block_number::(11); - assert_ok!(LBPPallet::buy( - Origin::signed(buyer), - asset_out, - asset_in, - 10_000_000_u128, - 2_000_000_000_u128 - )); - - expect_events(vec![Event::BuyExecuted { - who: buyer, - asset_out: BSX, - asset_in: KUSD, - amount: 17_894_744, - buy_price: 10_000_000, - fee_asset: KUSD, - fee_amount: 35_860, - } - .into()]); - - assert_eq!(Currency::free_balance(asset_in, &buyer), 999_999_982_069_396); - assert_eq!(Currency::free_balance(asset_out, &buyer), 1_000_000_010_000_000); - assert_eq!(Currency::free_balance(asset_in, &pool_id), 1_017_894_744); - assert_eq!(Currency::free_balance(asset_out, &pool_id), 1_990_000_000); - - // test buy where the amount_in is less than the amount_out - let asset_in = HDX; - let asset_out = BSX; - let pool_id2 = LBPPallet::get_pair_id(AssetPair { asset_in, asset_out }); - assert_ok!(LBPPallet::create_pool( - Origin::root(), - ALICE, - HDX, - 1_000_000_000, - BSX, - 2_000_000_000, - 80_000_000u32, - 10_000_000u32, - WeightCurveType::Linear, - DEFAULT_FEE, - CHARLIE, - 0, - )); - - let pool_data1 = LBPPallet::pool_data(pool_id2).unwrap(); - expect_events(vec![ - Event::PoolCreated { - pool: pool_id2, - data: pool_data1, - } - .into(), - frame_system::Event::NewAccount { account: pool_id2 }.into(), - mock::RuntimeEvent::Currency(orml_tokens::Event::Endowed { - currency_id: CORE_ASSET_ID, - who: HDX_BSX_POOL_ID, - amount: 1000000000, - }), - mock::RuntimeEvent::Currency(orml_tokens::Event::Transfer { - currency_id: CORE_ASSET_ID, - from: ALICE, - to: HDX_BSX_POOL_ID, - amount: 1000000000, - }), - mock::RuntimeEvent::Currency(orml_tokens::Event::Endowed { - currency_id: BSX, - who: HDX_BSX_POOL_ID, - amount: 2000000000, - }), - mock::RuntimeEvent::Currency(orml_tokens::Event::Transfer { - currency_id: BSX, - from: ALICE, - to: HDX_BSX_POOL_ID, - amount: 2000000000, - }), - mock::RuntimeEvent::LBPPallet(Event::LiquidityAdded { - who: pool_id2, - asset_a: HDX, - asset_b: BSX, - amount_a: 1_000_000_000, - amount_b: 2_000_000_000, - }), - ]); - - assert_ok!(LBPPallet::update_pool_data( - Origin::signed(ALICE), - HDX_BSX_POOL_ID, - None, - Some(20), - Some(30), - None, - None, - None, - None, - None - )); - - let pool_data2 = LBPPallet::pool_data(pool_id2).unwrap(); - - expect_events(vec![Event::PoolUpdated { - pool: pool_id2, - data: pool_data2, - } - .into()]); - - //start sale - set_block_number::(21); - assert_ok!(LBPPallet::buy( - Origin::signed(buyer), - asset_out, - asset_in, - 10_000_000_u128, - 2_000_000_000_u128 - )); - - expect_events(vec![Event::BuyExecuted { - who: buyer, - asset_out, - asset_in, - amount: 1_851_972, - buy_price: 10_000_000, - fee_asset: 0, - fee_amount: 3710, - } - .into()]); - - assert_eq!(Currency::free_balance(asset_in, &buyer), 999_999_998_144_318); - assert_eq!(Currency::free_balance(asset_out, &buyer), 1_000_000_020_000_000); - assert_eq!(Currency::free_balance(asset_in, &pool_id2), 1_001_851_972); - assert_eq!(Currency::free_balance(asset_out, &pool_id2), 1_990_000_000); - }); -} - -#[test] -fn buy_should_work_when_limit_is_set_above_account_balance() { - predefined_test_ext().execute_with(|| { - let buyer = BOB; - let asset_in = KUSD; - let asset_out = BSX; - - //start sale - set_block_number::(11); - - assert_ok!(LBPPallet::buy( - Origin::signed(buyer), - asset_out, - asset_in, - 10_000_000_u128, - u128::MAX, - )); - - expect_events(vec![Event::BuyExecuted { - who: buyer, - asset_out: BSX, - asset_in: KUSD, - amount: 17_894_744, - buy_price: 10_000_000, - fee_asset: KUSD, - fee_amount: 35_860, - } - .into()]); - - // swap assets - set_block_number::(11); - assert_ok!(LBPPallet::buy( - Origin::signed(buyer), - asset_in, - asset_out, - 10_000_000_u128, - u128::MAX, - )); - - expect_events(vec![Event::BuyExecuted { - who: buyer, - asset_out: KUSD, - asset_in: BSX, - amount: 5_560_310, - buy_price: 10_000_000, - fee_asset: KUSD, - fee_amount: 20_000, - } - .into()]); - }); -} - -#[test] -fn update_pool_data_after_sale_should_not_work() { - predefined_test_ext().execute_with(|| { - let buyer = BOB; - let asset_in = KUSD; - let asset_out = BSX; - let pool_id = LBPPallet::get_pair_id(AssetPair { asset_in, asset_out }); - - //start sale - set_block_number::(11); - assert_ok!(LBPPallet::buy( - Origin::signed(buyer), - asset_out, - asset_in, - 10_000_000_u128, - 2_000_000_000_u128 - )); - - assert_eq!(Currency::free_balance(asset_in, &buyer), 999_999_982_069_396); - assert_eq!(Currency::free_balance(asset_out, &buyer), 1_000_000_010_000_000); - assert_eq!(Currency::free_balance(asset_in, &pool_id), 1_017_894_744); - assert_eq!(Currency::free_balance(asset_out, &pool_id), 1_990_000_000); - assert_eq!(Currency::free_balance(asset_in, &CHARLIE), 35_860); - - set_block_number::(41); - - expect_events(vec![Event::BuyExecuted { - who: buyer, - asset_out: BSX, - asset_in: KUSD, - amount: 17_894_744, - buy_price: 10_000_000, - fee_asset: KUSD, - fee_amount: 35_860, - } - .into()]); - - assert_noop!( - LBPPallet::update_pool_data( - Origin::signed(ALICE), - KUSD_BSX_POOL_ID, - None, - Some(50), - Some(60), - None, - None, - None, - None, - None, - ), - Error::::SaleStarted - ); - }); -} - -#[test] -fn sell_should_work() { - predefined_test_ext().execute_with(|| { - let buyer = BOB; - let asset_in = KUSD; - let asset_out = BSX; - let pool_id = LBPPallet::get_pair_id(AssetPair { asset_in, asset_out }); - - //start sale - set_block_number::(11); - - assert_ok!(LBPPallet::sell( - Origin::signed(buyer), - asset_in, - asset_out, - 10_000_000_u128, - 2_000_u128 - )); - - expect_events(vec![Event::SellExecuted { - who: buyer, - asset_in: KUSD, - asset_out: BSX, - amount: 9_980_000, - sale_price: 5_605_128, - fee_asset: KUSD, - fee_amount: 20_000, - } - .into()]); - - assert_eq!(Currency::free_balance(asset_in, &buyer), 999_999_990_000_000); - assert_eq!(Currency::free_balance(asset_out, &buyer), 1_000_000_005_605_128); - assert_eq!(Currency::free_balance(asset_in, &pool_id), 1_009_980_000); - assert_eq!(Currency::free_balance(asset_out, &pool_id), 1_994_394_872); - - // test buy where the amount_in is less than the amount_out - let asset_in = HDX; - let asset_out = BSX; - let pool_id2 = LBPPallet::get_pair_id(AssetPair { asset_in, asset_out }); - assert_ok!(LBPPallet::create_pool( - Origin::root(), - ALICE, - HDX, - 1_000_000_000, - BSX, - 2_000_000_000, - 80_000_000u32, - 10_000_000u32, - WeightCurveType::Linear, - DEFAULT_FEE, - CHARLIE, - 0, - )); - let pool_data1 = LBPPallet::pool_data(pool_id2).unwrap(); - - expect_events(vec![ - Event::PoolCreated { - pool: pool_id2, - data: pool_data1, - } - .into(), - frame_system::Event::NewAccount { account: pool_id2 }.into(), - mock::RuntimeEvent::Currency(orml_tokens::Event::Endowed { - currency_id: CORE_ASSET_ID, - who: HDX_BSX_POOL_ID, - amount: 1000000000, - }), - mock::RuntimeEvent::Currency(orml_tokens::Event::Transfer { - currency_id: CORE_ASSET_ID, - from: ALICE, - to: HDX_BSX_POOL_ID, - amount: 1000000000, - }), - mock::RuntimeEvent::Currency(orml_tokens::Event::Endowed { - currency_id: BSX, - who: HDX_BSX_POOL_ID, - amount: 2000000000, - }), - mock::RuntimeEvent::Currency(orml_tokens::Event::Transfer { - currency_id: BSX, - from: ALICE, - to: HDX_BSX_POOL_ID, - amount: 2000000000, - }), - mock::RuntimeEvent::LBPPallet(Event::LiquidityAdded { - who: pool_id2, - asset_a: HDX, - asset_b: BSX, - amount_a: 1_000_000_000, - amount_b: 2_000_000_000, - }), - ]); - - assert_ok!(LBPPallet::update_pool_data( - Origin::signed(ALICE), - HDX_BSX_POOL_ID, - None, - Some(20), - Some(30), - None, - None, - None, - None, - None - )); - - let pool_data2 = LBPPallet::pool_data(pool_id2).unwrap(); - - expect_events(vec![Event::PoolUpdated { - pool: pool_id2, - data: pool_data2, - } - .into()]); - - //start sale - set_block_number::(21); - assert_ok!(LBPPallet::sell( - Origin::signed(buyer), - asset_out, - asset_in, - 10_000_000_u128, - 2_000_u128 - )); - - expect_events(vec![mock::RuntimeEvent::LBPPallet(Event::SellExecuted { - who: buyer, - asset_in: asset_out, - asset_out: asset_in, - amount: 10_000_000, - sale_price: 1_839_314, - fee_asset: 0, - fee_amount: 3_684, - })]); - - assert_eq!(Currency::free_balance(asset_in, &buyer), 1_000_000_001_839_314); - assert_eq!(Currency::free_balance(asset_out, &buyer), 999_999_995_605_128); - assert_eq!(Currency::free_balance(asset_in, &pool_id2), 998_157_002); - assert_eq!(Currency::free_balance(asset_out, &pool_id2), 2_010_000_000); - }); -} - -#[test] -fn zero_fee_should_work() { - new_test_ext().execute_with(|| { - assert_ok!(LBPPallet::create_pool( - Origin::root(), - ALICE, - KUSD, - 1_000_000_000, - BSX, - 2_000_000_000, - 20_000_000, - 80_000_000, - WeightCurveType::Linear, - (0, 100), - CHARLIE, - 0, - )); - - assert_ok!(LBPPallet::update_pool_data( - Origin::signed(ALICE), - KUSD_BSX_POOL_ID, - None, - Some(10), - Some(20), - None, - None, - None, - None, - None - )); - - //start sale - set_block_number::(11); - - assert_ok!(LBPPallet::sell(Origin::signed(ALICE), KUSD, BSX, 1_000, 1,)); - }); -} - -#[test] -fn invalid_fee_should_not_work() { - new_test_ext().execute_with(|| { - assert_noop!( - LBPPallet::create_pool( - Origin::root(), - ALICE, - KUSD, - 1_000_000_000, - BSX, - 2_000_000_000, - 20_000_000, - 80_000_000, - WeightCurveType::Linear, - (10, 0), - CHARLIE, - 0, - ), - Error::::FeeAmountInvalid - ); - }); -} - -#[test] -fn amm_trait_should_work() { - predefined_test_ext().execute_with(|| { - let asset_pair = AssetPair { - asset_in: KUSD, - asset_out: BSX, - }; - let reversed_asset_pair = AssetPair { - asset_in: BSX, - asset_out: KUSD, - }; - let non_existing_asset_pair = AssetPair { - asset_in: BSX, - asset_out: HDX, - }; - - set_block_number::(11); - - assert!(LBPPallet::exists(asset_pair)); - assert!(LBPPallet::exists(reversed_asset_pair)); - assert!(!LBPPallet::exists(non_existing_asset_pair)); - - assert_eq!(LBPPallet::get_pair_id(asset_pair), KUSD_BSX_POOL_ID); - assert_eq!(LBPPallet::get_pair_id(reversed_asset_pair), KUSD_BSX_POOL_ID); - - assert_eq!(LBPPallet::get_pool_assets(&KUSD_BSX_POOL_ID), Some(vec![KUSD, BSX])); - assert_eq!(LBPPallet::get_pool_assets(&HDX_BSX_POOL_ID), None); - - // calculate_spot_price is tested in get_spot_price_should_work - // execute_sell and execute_buy is tested in execute_sell_should_work and execute_buy_should_work - - let who = BOB; - let amount_in = 1_000_000; - let sell_limit = 100_000; - let pool_id = LBPPallet::get_pair_id(asset_pair); - let pool_data = LBPPallet::pool_data(pool_id).unwrap(); - - let fee = LBPPallet::calculate_fees(&pool_data, amount_in).unwrap(); - - let t_sell = AMMTransfer { - origin: who, - assets: asset_pair, - amount: amount_in - fee, - amount_b: 563_732, - discount: false, - discount_amount: 0_u128, - fee: (asset_pair.asset_in, fee), - }; - - assert_eq!( - LBPPallet::validate_sell(&who, asset_pair, amount_in, sell_limit, false).unwrap(), - t_sell - ); - - let amount_b = 1_000_000; - let buy_limit = 10_000_000; - let t_buy = AMMTransfer { - origin: who, - assets: asset_pair, - amount: 1_771_201, - amount_b, - discount: false, - discount_amount: 0_u128, - fee: (asset_pair.asset_in, 3_548), - }; - assert_eq!( - LBPPallet::validate_buy(&who, asset_pair, amount_in, buy_limit, false).unwrap(), - t_buy - ); - - assert_eq!( - LBPPallet::get_min_trading_limit(), - ::MinTradingLimit::get() - ); - assert_eq!( - LBPPallet::get_min_pool_liquidity(), - ::MinPoolLiquidity::get() - ); - assert_eq!(LBPPallet::get_max_in_ratio(), ::MaxInRatio::get()); - assert_eq!(LBPPallet::get_max_out_ratio(), ::MaxOutRatio::get()); - - assert_ok!(LBPPallet::create_pool( - Origin::root(), - ALICE, - HDX, - 1_000_000_000, - BSX, - 2_000_000_000, - 20_000_000, - 80_000_000, - WeightCurveType::Linear, - (400, 1_000), - CHARLIE, - 0, - )); - - let pool_id = LBPPallet::get_pair_id(AssetPair { - asset_in: HDX, - asset_out: BSX, - }); - // existing pool - assert_eq!(LBPPallet::get_fee(&pool_id), (400, 1_000)); - // not existing pool - assert_eq!(LBPPallet::get_fee(&1_234), (0, 0)); - }); -} - -#[test] -fn get_spot_price_should_work() { - new_test_ext().execute_with(|| { - assert_ok!(LBPPallet::create_pool( - Origin::root(), - ALICE, - KUSD, - 1_000_000_000, - BSX, - 2_000_000_000, - 20_000_000, - 90_000_000, - WeightCurveType::Linear, - DEFAULT_FEE, - CHARLIE, - 0, - )); - - assert_ok!(LBPPallet::update_pool_data( - Origin::signed(ALICE), - KUSD_BSX_POOL_ID, - None, - Some(10), - Some(20), - None, - None, - None, - None, - None - )); - - set_block_number::(10); - - let price = hydra_dx_math::lbp::calculate_spot_price( - 1_000_000_000_u128, - 2_000_000_000_u128, - 20_u32, - 80_u32, - 1_000_000_u128, - ) - .unwrap_or_else(|_| BalanceOf::::zero()); - - assert_eq!(LBPPallet::get_spot_price_unchecked(KUSD, BSX, 1_000_000_u128), price); - - // swap assets - let price = hydra_dx_math::lbp::calculate_spot_price( - 2_000_000_000_u128, - 1_000_000_000_u128, - 80_u32, - 20_u32, - 1_000_000_u128, - ) - .unwrap_or_else(|_| BalanceOf::::zero()); - - assert_eq!(LBPPallet::get_spot_price_unchecked(BSX, KUSD, 1_000_000_u128), price); - - // change weights - set_block_number::(20); - - let price = hydra_dx_math::lbp::calculate_spot_price( - 1_000_000_000_u128, - 2_000_000_000_u128, - 90_u32, - 10_u32, - 1_000_000_u128, - ) - .unwrap_or_else(|_| BalanceOf::::zero()); - - assert_eq!(LBPPallet::get_spot_price_unchecked(KUSD, BSX, 1_000_000), price); - - // pool does not exist - assert_eq!(LBPPallet::get_spot_price_unchecked(KUSD, HDX, 1_000_000), 0); - - // overflow - assert_eq!(LBPPallet::get_spot_price_unchecked(KUSD, BSX, u128::MAX), 0); - - // sale ended - set_block_number::(21); - assert_eq!(LBPPallet::get_spot_price_unchecked(KUSD, BSX, 1_000_000), 0); - }); -} - -#[test] -fn simulate_lbp_event_should_work() { - new_test_ext().execute_with(|| { - // setup - let pool_owner = BOB; - let lbp_participant = CHARLIE; - - let asset_in = BSX; - let asset_in_pool_reserve: u128 = 1_000_000; - let owner_initial_asset_in_balance: u128 = 1_000_000_000_000; - let lbp_participant_initial_asset_in_balance: u128 = 1_000_000_000_000; - - let asset_in_initial_weight = 10_000_000; // 10% - let asset_in_final_weight = 75_000_000; // 75% - - let asset_out = HDX; - let asset_out_pool_reserve: u128 = 500_000_000; - let owner_initial_asset_out_balance: u128 = 1_000_000_000_000; - let lbp_participant_initial_asset_out_balance: u128 = 1_000_000_000_000; - - let sale_start: u64 = 1_000; - let sale_end: u64 = 22_600; // in blocks; 3 days - - let trades = generate_trades(sale_start, sale_end, 200_000_000, 2); - - let fee = (9, 1_000); - - let fee_collector = ALICE; - - let trade_limit_factor: u128 = 1_000; - - // preparations - let asset_pair = AssetPair { asset_in, asset_out }; - let pool_account = LBPPallet::get_pair_id(asset_pair); - - Currency::set_balance(Origin::root(), fee_collector, asset_in, 0, 0).unwrap(); - Currency::set_balance(Origin::root(), fee_collector, asset_out, 0, 0).unwrap(); - - Currency::set_balance(Origin::root(), pool_owner, asset_in, 0, 0).unwrap(); - Currency::set_balance(Origin::root(), pool_owner, asset_out, 0, 0).unwrap(); - - Currency::set_balance( - Origin::root(), - pool_owner, - asset_in, - owner_initial_asset_in_balance - .checked_add(asset_in_pool_reserve) - .unwrap(), - 0, - ) - .unwrap(); - Currency::set_balance( - Origin::root(), - pool_owner, - asset_out, - owner_initial_asset_out_balance - .checked_add(asset_out_pool_reserve) - .unwrap(), - 0, - ) - .unwrap(); - - ::MultiCurrency::update_balance( - asset_in, - &lbp_participant, - lbp_participant_initial_asset_in_balance.try_into().unwrap(), - ) - .unwrap(); - ::MultiCurrency::update_balance( - asset_out, - &lbp_participant, - lbp_participant_initial_asset_out_balance.try_into().unwrap(), - ) - .unwrap(); - - assert_ok!(LBPPallet::create_pool( - Origin::root(), - pool_owner, - asset_in, - asset_in_pool_reserve, - asset_out, - asset_out_pool_reserve, - asset_in_initial_weight, - asset_in_final_weight, - WeightCurveType::Linear, - fee, - fee_collector, - 0, - )); - - assert_ok!(LBPPallet::update_pool_data( - Origin::signed(pool_owner), - pool_account, - None, - Some(sale_start), - Some(sale_end), - None, - None, - None, - None, - None - )); - - set_block_number::(sale_start.checked_sub(1).unwrap()); - //frame_system::Pallet::::set_block_number(sale_start + 1); - - // start LBP - for block_num in sale_start..=sale_end { - set_block_number::(block_num); - - if let Some((is_buy, amount)) = trades.get(&block_num) { - if *is_buy { - assert_ok!(LBPPallet::buy( - Origin::signed(lbp_participant), - asset_out, - asset_in, - *amount, - amount.saturating_mul(trade_limit_factor) - )); - } else { - assert_ok!(LBPPallet::sell( - Origin::signed(lbp_participant), - asset_out, - asset_in, - *amount, - amount.checked_div(trade_limit_factor).unwrap() - )); - } - } - } - - // end LBP and consolidate results - set_block_number::(sale_end.checked_add(1).unwrap()); - - let pool_account_result_asset_in = Currency::free_balance(asset_in, &pool_account); - let pool_account_result_asset_out = Currency::free_balance(asset_out, &pool_account); - - assert_eq!( - Currency::free_balance(asset_in, &pool_owner), - owner_initial_asset_in_balance - ); - assert_eq!( - Currency::free_balance(asset_out, &pool_owner), - owner_initial_asset_out_balance - ); - - assert_eq!(Currency::free_balance(asset_in, &pool_account), 4_893_544); - assert_eq!(Currency::free_balance(asset_out, &pool_account), 125_000_009); - - assert_eq!(Currency::free_balance(asset_in, &lbp_participant), 999_996_061_843); - assert_eq!(Currency::free_balance(asset_out, &lbp_participant), 1_000_374_999_991); - - // remove liquidity from the pool - assert_ok!(LBPPallet::remove_liquidity(Origin::signed(pool_owner), pool_account)); - - assert_eq!(Currency::free_balance(asset_in, &pool_account), 0); - assert_eq!(Currency::free_balance(asset_out, &pool_account), 0); - - assert_eq!( - Currency::free_balance(asset_in, &pool_owner), - owner_initial_asset_in_balance - .checked_add(pool_account_result_asset_in) - .unwrap() - ); - assert_eq!( - Currency::free_balance(asset_out, &pool_owner), - owner_initial_asset_out_balance - .checked_add(pool_account_result_asset_out) - .unwrap() - ); - - assert_eq!(Currency::free_balance(asset_in, &fee_collector), 44_613); - assert_eq!(Currency::free_balance(asset_out, &fee_collector), 0); - }); -} - -#[test] -fn validate_trade_should_work() { - predefined_test_ext().execute_with(|| { - run_to_sale_start(); - - assert_eq!( - LBPPallet::validate_buy( - &ALICE, - AssetPair { - asset_in: KUSD, - asset_out: BSX - }, - 1_000_000_u128, - 2_157_153_u128, - false - ) - .unwrap(), - AMMTransfer { - origin: ALICE, - assets: AssetPair { - asset_in: KUSD, - asset_out: BSX - }, - amount: 1_998_503_u128, - amount_b: 1_000_000_u128, - discount: false, - discount_amount: 0_u128, - fee: (KUSD, 4_004), - } - ); - - assert_eq!( - LBPPallet::validate_sell( - &ALICE, - AssetPair { - asset_in: KUSD, - asset_out: BSX - }, - 1_000_000_u128, - 2_000_u128, - false - ) - .unwrap(), - AMMTransfer { - origin: ALICE, - assets: AssetPair { - asset_in: KUSD, - asset_out: BSX - }, - amount: 998_000_u128, - amount_b: 499_678_u128, - discount: false, - discount_amount: 0_u128, - fee: (KUSD, 2000), - } - ); - }); -} - -#[test] -fn validate_trade_should_not_work() { - predefined_test_ext().execute_with(|| { - set_block_number::(9); - - assert_noop!( - LBPPallet::validate_buy( - &ALICE, - AssetPair { - asset_in: KUSD, - asset_out: BSX - }, - 1_000_000_u128, - 2_157_153_u128, - false, - ), - Error::::SaleIsNotRunning - ); - - set_block_number::(10); - - assert_noop!( - LBPPallet::validate_buy( - &ALICE, - AssetPair { - asset_in: KUSD, - asset_out: BSX - }, - 0, - 2_157_153_u128, - false, - ), - Error::::ZeroAmount - ); - - Currency::set_balance(Origin::root(), ALICE, KUSD, 10_000_000, 0).unwrap(); - assert_err!( - LBPPallet::validate_buy( - &ALICE, - AssetPair { - asset_in: KUSD, - asset_out: BSX - }, - 100_000_000u128, - 3_000_000_000_u128, - false, - ), - Error::::InsufficientAssetBalance - ); - // set the balance back - Currency::set_balance(Origin::root(), ALICE, KUSD, INITIAL_BALANCE, 0).unwrap(); - - assert_noop!( - LBPPallet::validate_buy( - &ALICE, - AssetPair { - asset_in: KUSD, - asset_out: HDX - }, - 1_000_000_u128, - 2_157_153_u128, - false, - ), - Error::::PoolNotFound - ); - - assert_err!( - LBPPallet::validate_buy( - &ALICE, - AssetPair { - asset_in: KUSD, - asset_out: BSX - }, - 1_000_000_000_u128, - 2_157_153_u128, - false, - ), - Error::::MaxOutRatioExceeded - ); - - assert_err!( - LBPPallet::validate_sell( - &ALICE, - AssetPair { - asset_in: KUSD, - asset_out: BSX - }, - 400_000_000_u128, - 2_157_153_u128, - false, - ), - Error::::MaxInRatioExceeded - ); - - assert_err!( - LBPPallet::validate_sell( - &ALICE, - AssetPair { - asset_in: KUSD, - asset_out: BSX - }, - 1_000_u128, - 499_u128, - false, - ), - Error::::TradingLimitReached - ); - - assert_err!( - LBPPallet::validate_buy( - &ALICE, - AssetPair { - asset_in: KUSD, - asset_out: BSX - }, - 1_000_u128, - 1_994_u128, - false, - ), - Error::::TradingLimitReached - ); - - Currency::set_balance(Origin::root(), ALICE, KUSD, INITIAL_BALANCE, 0).unwrap(); - Currency::set_balance(Origin::root(), ALICE, HDX, INITIAL_BALANCE, 0).unwrap(); - - // transfer fee > token amount in - assert_ok!(LBPPallet::create_pool( - Origin::root(), - ALICE, - HDX, - 1_000_000_000, - KUSD, - 2_000_000_000, - 20_000_000, - 80_000_000, - WeightCurveType::Linear, - (10, 1), - CHARLIE, - 0, - )); - let pool_id2 = LBPPallet::get_pair_id(AssetPair { - asset_in: KUSD, - asset_out: HDX, - }); - assert_ok!(LBPPallet::update_pool_data( - Origin::signed(ALICE), - pool_id2, - None, - Some(12), - Some(20), - None, - None, - None, - None, - None - )); - }); -} - -#[test] -fn get_sorted_weight_should_work() { - predefined_test_ext().execute_with(|| { - let pool = LBPPallet::pool_data(KUSD_BSX_POOL_ID).unwrap(); - - assert_eq!( - LBPPallet::get_sorted_weight(KUSD, ::BlockNumber::from(10u32), &pool) - .unwrap(), - (20_000_000, 80_000_000), - ); - - assert_eq!( - LBPPallet::get_sorted_weight(BSX, ::BlockNumber::from(10u32), &pool).unwrap(), - (80_000_000, 20_000_000), - ); - - assert_err!( - LBPPallet::get_sorted_weight(KUSD, ::BlockNumber::from(41u32), &pool) - .map_err(Into::::into), - Error::::InvalidWeight - ); - }); -} - -#[test] -fn calculate_fees_should_work() { - predefined_test_ext().execute_with(|| { - let pool = LBPPallet::pool_data(KUSD_BSX_POOL_ID).unwrap(); - - assert_eq!(LBPPallet::calculate_fees(&pool, 1_234_567_890_u128).unwrap(), 2_469_134,); - - assert_eq!(LBPPallet::calculate_fees(&pool, 1000_u128).unwrap(), 2,); - - assert_eq!(LBPPallet::calculate_fees(&pool, 1999_u128).unwrap(), 2,); - - assert_eq!(LBPPallet::calculate_fees(&pool, 999_u128).unwrap(), 0,); - - assert_eq!( - LBPPallet::calculate_fees(&pool, u128::MAX).unwrap(), - 680564733841876926926749214863536422 - ); - - assert_ok!(LBPPallet::create_pool( - Origin::root(), - ALICE, - HDX, - 1_000_000_000, - BSX, - 2_000_000_000, - 80_000_000, - 20_000_000, - WeightCurveType::Linear, - (10, 1), - CHARLIE, - 0, - )); - - assert_ok!(LBPPallet::update_pool_data( - Origin::signed(ALICE), - KUSD_BSX_POOL_ID, - None, - SALE_START, - Some(20), - None, - None, - None, - None, - None, - )); - - let pool = LBPPallet::pool_data(HDX_BSX_POOL_ID).unwrap(); - - assert_err!( - LBPPallet::calculate_fees(&pool, u128::MAX), - Error::::FeeAmountInvalid, - ); - }); -} - -#[test] -fn can_create_should_work() { - new_test_ext().execute_with(|| { - let asset_pair = AssetPair { - asset_in: KUSD, - asset_out: BSX, - }; - // pool doesn't exist - assert!(DisallowWhenLBPPoolRunning::::can_create( - asset_pair.asset_in, - asset_pair.asset_out - )); - - assert_ok!(LBPPallet::create_pool( - Origin::root(), - ALICE, - KUSD, - 1_000_000_000, - BSX, - 2_000_000_000, - 20_000_000, - 80_000_000, - WeightCurveType::Linear, - DEFAULT_FEE, - CHARLIE, - 0, - )); - // pool is not initialized - assert!(!DisallowWhenLBPPoolRunning::::can_create( - asset_pair.asset_in, - asset_pair.asset_out - )); - - assert_ok!(LBPPallet::update_pool_data( - Origin::signed(ALICE), - KUSD_BSX_POOL_ID, - None, - Some(10), - Some(20), - None, - None, - None, - None, - None, - )); - // pool is initialized but is not running - assert!(!DisallowWhenLBPPoolRunning::::can_create( - asset_pair.asset_in, - asset_pair.asset_out - )); - - set_block_number::(15); - // pool is running - assert!(!DisallowWhenLBPPoolRunning::::can_create( - asset_pair.asset_in, - asset_pair.asset_out - )); - - set_block_number::(30); - // sale ended - assert!(DisallowWhenLBPPoolRunning::::can_create( - asset_pair.asset_in, - asset_pair.asset_out - )); - - assert_ok!(LBPPallet::remove_liquidity(Origin::signed(ALICE), KUSD_BSX_POOL_ID,)); - // pool was destroyed - assert!(DisallowWhenLBPPoolRunning::::can_create( - asset_pair.asset_in, - asset_pair.asset_out - )); - }); -} - -#[test] -fn repay_fee_not_applied_when_set_to_zero() { - new_test_ext().execute_with(|| { - let pool = Pool { - repay_target: 0, - ..SAMPLE_POOL_DATA - }; - assert_eq!(LBPPallet::is_repay_fee_applied(&pool), false); - }); -} - -#[test] -fn repay_fee_applied_when_set() { - new_test_ext().execute_with(|| { - let pool = Pool { - repay_target: 10_000_000, - ..SAMPLE_POOL_DATA - }; - assert_eq!(LBPPallet::is_repay_fee_applied(&pool), true); - }); -} - -#[test] -fn repay_fee_not_applied_when_target_reached() { - new_test_ext().execute_with(|| { - let pool = Pool { - fee_collector: ALICE, - repay_target: INITIAL_BALANCE, - ..SAMPLE_POOL_DATA - }; - assert_ok!(Currency::set_lock( - COLLECTOR_LOCK_ID, - pool.assets.0, - &ALICE, - INITIAL_BALANCE - )); - assert_eq!(LBPPallet::is_repay_fee_applied(&pool), false); - }); -} - -#[test] -fn repay_fee_not_applied_in_predefined_env() { - predefined_test_ext().execute_with(|| { - let pool = LBPPallet::pool_data(KUSD_BSX_POOL_ID).unwrap(); - assert_eq!(LBPPallet::is_repay_fee_applied(&pool), false); - }); -} - -#[test] -fn repay_fee_applied_in_env_with_repay_target() { - predefined_test_ext_with_repay_target().execute_with(|| { - let pool = LBPPallet::pool_data(KUSD_BSX_POOL_ID).unwrap(); - assert_eq!(LBPPallet::is_repay_fee_applied(&pool), true); - }); -} - -#[test] -fn calculate_repay_fee() { - predefined_test_ext_with_repay_target().execute_with(|| { - let pool = LBPPallet::pool_data(KUSD_BSX_POOL_ID).unwrap(); - - assert_eq!(LBPPallet::calculate_fees(&pool, 1000).unwrap(), 200,); - }); -} - -#[test] -fn repay_fee_should_work() { - new_test_ext().execute_with(|| { - assert_eq!(LBPPallet::repay_fee(), (2, 10)); - }); -} - -#[test] -fn collected_fees_should_be_locked_and_unlocked_after_liquidity_is_removed() { - predefined_test_ext().execute_with(|| { - run_to_sale_start(); - let Pool { fee_collector, .. } = LBPPallet::pool_data(KUSD_BSX_POOL_ID).unwrap(); - let (fee_asset, fee_amount) = SAMPLE_AMM_TRANSFER.fee; - assert_ok!(LBPPallet::execute_buy(&SAMPLE_AMM_TRANSFER)); - - // collector receives locked fee - assert_eq!(Currency::free_balance(fee_asset, &fee_collector), fee_amount); - assert_eq!( - ::LockedBalance::get_by_lock(COLLECTOR_LOCK_ID, fee_asset, fee_collector), - fee_amount - ); - - // still locked after sale ends - run_to_sale_end(); - assert_eq!( - ::LockedBalance::get_by_lock(COLLECTOR_LOCK_ID, fee_asset, fee_collector), - fee_amount - ); - - // unlocked after liquidity is removed from pool - assert_ok!(LBPPallet::remove_liquidity(Origin::signed(ALICE), KUSD_BSX_POOL_ID)); - assert_eq!( - ::LockedBalance::get_by_lock(COLLECTOR_LOCK_ID, fee_asset, fee_collector), - 0 - ); - }); -} - -#[test] -fn collected_fees_are_continually_locked() { - predefined_test_ext().execute_with(|| { - run_to_sale_start(); - let Pool { fee_collector, .. } = LBPPallet::pool_data(KUSD_BSX_POOL_ID).unwrap(); - let (fee_asset, fee_amount) = SAMPLE_AMM_TRANSFER.fee; - assert_ok!(LBPPallet::execute_buy(&SAMPLE_AMM_TRANSFER)); - assert_ok!(LBPPallet::execute_buy(&SAMPLE_AMM_TRANSFER)); - let total = 2 * fee_amount; - assert_eq!(Currency::free_balance(fee_asset, &fee_collector), total); - assert_eq!( - ::LockedBalance::get_by_lock(COLLECTOR_LOCK_ID, fee_asset, fee_collector), - total - ); - }); -} - -#[ignore] -#[test] -fn simulate_lbp_event_with_repayment() { - new_test_ext().execute_with(|| { - // setup - let pool_owner = ALICE; - let lbp_participant = BOB; - let initial_balance: u128 = 1_000_000_000_000_000_000_000_000; - - let accumulated_asset = BSX; - let asset_in_pool_reserve: u128 = 1_000_000_000_000; - - let sold_asset = HDX; - let asset_out_pool_reserve: u128 = 500_000_000_000_000; - - let initial_weight = 90_000_000; - let final_weight = 30_000_000; - - let sale_start: u64 = 1_000; - let sale_end: u64 = 22_600; // in blocks; 3 days - - let trades = generate_trades(sale_start, sale_end, 500_000_000_000, 4); - - let fee = (9, 1_000); - - let fee_collector = CHARLIE; - - let trade_limit_factor: u128 = 1_000_000_000; - - // preparations - let asset_pair = AssetPair { - asset_in: accumulated_asset, - asset_out: sold_asset, - }; - let pool_account = LBPPallet::get_pair_id(asset_pair); - - assert_ok!(LBPPallet::create_pool( - Origin::root(), - pool_owner, - accumulated_asset, - asset_in_pool_reserve, - sold_asset, - asset_out_pool_reserve, - initial_weight, - final_weight, - WeightCurveType::Linear, - fee, - fee_collector, - 0, - )); - - assert_ok!(LBPPallet::update_pool_data( - Origin::signed(pool_owner), - pool_account, - None, - Some(sale_start), - Some(sale_end), - None, - None, - None, - None, - None - )); - - set_block_number::(sale_start.checked_sub(1).unwrap()); - //frame_system::Pallet::::set_block_number(sale_start + 1); - - // start LBP - for block_num in sale_start..=sale_end { - set_block_number::(block_num); - println!("{}", LBPPallet::get_spot_price_unchecked(HDX, BSX, 100_000_000_000)); - if let Some((is_buy, amount)) = trades.get(&block_num) { - if *is_buy { - assert_ok!(LBPPallet::buy( - Origin::signed(lbp_participant), - accumulated_asset, - sold_asset, - *amount, - amount.saturating_mul(trade_limit_factor) - )); - } else { - assert_ok!(LBPPallet::sell( - Origin::signed(lbp_participant), - accumulated_asset, - sold_asset, - *amount, - amount.checked_div(trade_limit_factor).unwrap() - )); - } - } - } - - // end LBP and consolidate results - set_block_number::(sale_end.checked_add(1).unwrap()); - - let pool_account_result_asset_in = Currency::free_balance(accumulated_asset, &pool_account); - let pool_account_result_asset_out = Currency::free_balance(sold_asset, &pool_account); - - assert_eq!(Currency::free_balance(accumulated_asset, &pool_owner), initial_balance); - assert_eq!(Currency::free_balance(sold_asset, &pool_owner), initial_balance); - - assert_eq!(Currency::free_balance(accumulated_asset, &pool_account), 4_970_435); - assert_eq!(Currency::free_balance(sold_asset, &pool_account), 125_000_009); - - assert_eq!( - Currency::free_balance(accumulated_asset, &lbp_participant), - 999_995_984_267 - ); - assert_eq!(Currency::free_balance(sold_asset, &lbp_participant), 1_000_374_999_991); - - // remove liquidity from the pool - assert_ok!(LBPPallet::remove_liquidity(Origin::signed(pool_owner), pool_account)); - - assert_eq!(Currency::free_balance(accumulated_asset, &pool_account), 0); - assert_eq!(Currency::free_balance(sold_asset, &pool_account), 0); - - assert_eq!( - Currency::free_balance(accumulated_asset, &pool_owner), - initial_balance.checked_add(pool_account_result_asset_in).unwrap() - ); - assert_eq!( - Currency::free_balance(sold_asset, &pool_owner), - initial_balance.checked_add(pool_account_result_asset_out).unwrap() - ); - - assert_eq!(Currency::free_balance(accumulated_asset, &fee_collector), 45_298); - assert_eq!(Currency::free_balance(sold_asset, &fee_collector), 0); - }); -} diff --git a/pallets/lbp/src/trade_execution.rs b/pallets/lbp/src/trade_execution.rs deleted file mode 100644 index 3a0bc1c0794..00000000000 --- a/pallets/lbp/src/trade_execution.rs +++ /dev/null @@ -1,137 +0,0 @@ -use crate::{Config, Error, Pallet, PoolData}; -use hydradx_traits::router::{ExecutorError, PoolType, TradeExecution}; -use hydradx_traits::AMM; -use orml_traits::MultiCurrency; -use primitives::asset::AssetPair; -use primitives::{AssetId, Balance}; -use sp_runtime::traits::BlockNumberProvider; -use sp_runtime::DispatchError; - -impl TradeExecution for Pallet { - type Error = DispatchError; - - fn calculate_sell( - pool_type: PoolType, - asset_in: AssetId, - asset_out: AssetId, - amount_in: Balance, - ) -> Result> { - if pool_type != PoolType::LBP { - return Err(ExecutorError::NotSupported); - } - - let assets = AssetPair { asset_in, asset_out }; - let pool_id = Self::get_pair_id(assets); - let pool_data = - >::try_get(&pool_id).map_err(|_| ExecutorError::Error(Error::::PoolNotFound.into()))?; - - let now = T::BlockNumberProvider::current_block_number(); - let (weight_in, weight_out) = Self::get_sorted_weight(assets.asset_in, now, &pool_data) - .map_err(|err| ExecutorError::Error(err.into()))?; - let asset_in_reserve = T::MultiCurrency::free_balance(assets.asset_in, &pool_id); - let asset_out_reserve = T::MultiCurrency::free_balance(assets.asset_out, &pool_id); - - let amount_out = hydra_dx_math::lbp::calculate_out_given_in( - asset_in_reserve, - asset_out_reserve, - weight_in, - weight_out, - amount_in, - ) - .map_err(|_| ExecutorError::Error(Error::::Overflow.into()))?; - - let fee_asset = pool_data.assets.0; - if fee_asset == assets.asset_in { - Ok(amount_out) //amount with fee applied as the user is responsible to send fee to the fee collector - } else { - let fee = Self::calculate_fees(&pool_data, amount_out).map_err(ExecutorError::Error)?; - let amount_out_without_fee = amount_out - .checked_sub(fee) - .ok_or_else(|| ExecutorError::Error(Error::::Overflow.into()))?; - - Ok(amount_out_without_fee) //amount without fee as the pool is responsible to send fee to the fee collector - } - } - - fn calculate_buy( - pool_type: PoolType, - asset_in: AssetId, - asset_out: AssetId, - amount_out: Balance, - ) -> Result> { - if pool_type != PoolType::LBP { - return Err(ExecutorError::NotSupported); - } - - let assets = AssetPair { asset_in, asset_out }; - let pool_id = Self::get_pair_id(assets); - let pool_data = - >::try_get(&pool_id).map_err(|_| ExecutorError::Error(Error::::PoolNotFound.into()))?; - - let now = T::BlockNumberProvider::current_block_number(); - let (weight_in, weight_out) = Self::get_sorted_weight(assets.asset_in, now, &pool_data) - .map_err(|err| ExecutorError::Error(err.into()))?; - let asset_in_reserve = T::MultiCurrency::free_balance(assets.asset_in, &pool_id); - let asset_out_reserve = T::MultiCurrency::free_balance(assets.asset_out, &pool_id); - - let fee_asset = pool_data.assets.0; - if fee_asset == assets.asset_out { - let fee = Self::calculate_fees(&pool_data, amount_out).map_err(ExecutorError::Error)?; - let amount_out_plus_fee = amount_out - .checked_add(fee) - .ok_or_else(|| ExecutorError::Error(Error::::Overflow.into()))?; - - let calculated_in = hydra_dx_math::lbp::calculate_in_given_out( - asset_in_reserve, - asset_out_reserve, - weight_in, - weight_out, - amount_out_plus_fee, - ) - .map_err(|_| ExecutorError::Error(Error::::Overflow.into()))?; - - Ok(calculated_in) //TODO: Double check with someone if this is correct - } else { - let calculated_in = hydra_dx_math::lbp::calculate_in_given_out( - asset_in_reserve, - asset_out_reserve, - weight_in, - weight_out, - amount_out, - ) - .map_err(|_| ExecutorError::Error(Error::::Overflow.into()))?; - - Ok(calculated_in) //amount with fee applied as the user is responsible to send fee to the fee collector - } - } - - fn execute_sell( - who: T::RuntimeOrigin, - pool_type: PoolType, - asset_in: AssetId, - asset_out: AssetId, - amount_in: Balance, - min_limit: Balance, - ) -> Result<(), ExecutorError> { - if pool_type != PoolType::LBP { - return Err(ExecutorError::NotSupported); - } - - Self::sell(who, asset_in, asset_out, amount_in, min_limit).map_err(ExecutorError::Error) - } - - fn execute_buy( - who: T::RuntimeOrigin, - pool_type: PoolType, - asset_in: AssetId, - asset_out: AssetId, - amount_out: Balance, - max_limit: Balance, - ) -> Result<(), ExecutorError> { - if pool_type != PoolType::LBP { - return Err(ExecutorError::NotSupported); - } - - Self::buy(who, asset_out, asset_in, amount_out, max_limit).map_err(ExecutorError::Error) - } -} diff --git a/pallets/lbp/src/weights.rs b/pallets/lbp/src/weights.rs deleted file mode 100644 index 4f2b1bc4b06..00000000000 --- a/pallets/lbp/src/weights.rs +++ /dev/null @@ -1,124 +0,0 @@ -// This file is part of HydraDX-node. - -// Copyright (C) 2022 Intergalactic Ltd. -// SPDX-License-Identifier: Apache-2.0 - -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -//! Autogenerated weights for lbp -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 3.0.0 -//! DATE: 2021-06-16, STEPS: [5, ], REPEAT: 20, LOW RANGE: [], HIGH RANGE: [] -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 128 - -// Executed Command: -// target/release/basilisk -// benchmark -// --pallet=lbp -// --chain=dev -// --steps=5 -// --repeat=20 -// --extrinsic=* -// --execution=wasm -// --wasm-execution=compiled -// --heap-pages=4096 -// --template=.maintain/pallet-weight-template.hbs -// --output=lbp.rs - -#![allow(unused_parens)] -#![allow(unused_imports)] - -use frame_support::{ - traits::Get, - weights::{constants::RocksDbWeight, Weight}, -}; -use sp_std::marker::PhantomData; - -/// Weight functions needed for lbp. -pub trait WeightInfo { - fn create_pool() -> Weight; - fn update_pool_data() -> Weight; - fn add_liquidity() -> Weight; - fn remove_liquidity() -> Weight; - fn sell() -> Weight; - fn buy() -> Weight; -} - -/// Weights for lbp using the hack.hydraDX node and recommended hardware. -pub struct HydraWeight(PhantomData); -impl WeightInfo for HydraWeight { - fn create_pool() -> Weight { - Weight::from_ref_time(121_358_000 as u64) - .saturating_add(T::DbWeight::get().reads(6 as u64)) - .saturating_add(T::DbWeight::get().writes(6 as u64)) - } - fn update_pool_data() -> Weight { - Weight::from_ref_time(29_130_000 as u64) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) - } - fn add_liquidity() -> Weight { - Weight::from_ref_time(101_859_000 as u64) - .saturating_add(T::DbWeight::get().reads(5 as u64)) - .saturating_add(T::DbWeight::get().writes(4 as u64)) - } - fn remove_liquidity() -> Weight { - Weight::from_ref_time(122_961_000 as u64) - .saturating_add(T::DbWeight::get().reads(6 as u64)) - .saturating_add(T::DbWeight::get().writes(6 as u64)) - } - fn sell() -> Weight { - Weight::from_ref_time(160_655_000 as u64) - .saturating_add(T::DbWeight::get().reads(6 as u64)) - .saturating_add(T::DbWeight::get().writes(6 as u64)) - } - fn buy() -> Weight { - Weight::from_ref_time(161_152_000 as u64) - .saturating_add(T::DbWeight::get().reads(6 as u64)) - .saturating_add(T::DbWeight::get().writes(6 as u64)) - } -} - -// For backwards compatibility and tests -impl WeightInfo for () { - fn create_pool() -> Weight { - Weight::from_ref_time(121_358_000 as u64) - .saturating_add(RocksDbWeight::get().reads(6 as u64)) - .saturating_add(RocksDbWeight::get().writes(6 as u64)) - } - fn update_pool_data() -> Weight { - Weight::from_ref_time(29_130_000 as u64) - .saturating_add(RocksDbWeight::get().reads(1 as u64)) - .saturating_add(RocksDbWeight::get().writes(1 as u64)) - } - fn add_liquidity() -> Weight { - Weight::from_ref_time(101_859_000 as u64) - .saturating_add(RocksDbWeight::get().reads(5 as u64)) - .saturating_add(RocksDbWeight::get().writes(4 as u64)) - } - fn remove_liquidity() -> Weight { - Weight::from_ref_time(122_961_000 as u64) - .saturating_add(RocksDbWeight::get().reads(6 as u64)) - .saturating_add(RocksDbWeight::get().writes(6 as u64)) - } - fn sell() -> Weight { - Weight::from_ref_time(160_655_000 as u64) - .saturating_add(RocksDbWeight::get().reads(6 as u64)) - .saturating_add(RocksDbWeight::get().writes(6 as u64)) - } - fn buy() -> Weight { - Weight::from_ref_time(161_152_000 as u64) - .saturating_add(RocksDbWeight::get().reads(6 as u64)) - .saturating_add(RocksDbWeight::get().writes(6 as u64)) - } -} diff --git a/pallets/marketplace/Cargo.toml b/pallets/marketplace/Cargo.toml index 9803be66af9..6721038af94 100644 --- a/pallets/marketplace/Cargo.toml +++ b/pallets/marketplace/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pallet-marketplace" -version = "5.0.15" +version = "5.0.17" authors = ["GalacticCoucil"] description = "The marketplace for trading NFTs" edition = "2018" @@ -14,16 +14,15 @@ targets = ["x86_64-unknown-linux-gnu"] [dependencies] codec = { default-features = false, features = ["derive"], package = "parity-scale-codec", version = "3.4.0" } scale-info = { version = "2.3.1", default-features = false, features = ["derive"] } -frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false, optional = true } -frame-support = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -frame-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -orml-utilities = { git = "https://github.com/open-web3-stack/open-runtime-module-library", branch = "polkadot-v0.9.38", default-features = false } +frame-benchmarking = { workspace = true, optional = true } +frame-support = { workspace = true } +frame-system = { workspace = true } serde = { version = "1.0.136", optional = true, features = ["derive"] } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-std = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-arithmetic = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -pallet-uniques = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } +sp-runtime = { workspace = true } +sp-std = { workspace = true } +sp-arithmetic = { workspace = true } +sp-io = { workspace = true } +pallet-uniques = { workspace = true } # Warehouse dependency pallet-nft = { workspace = true } @@ -32,9 +31,9 @@ pallet-nft = { workspace = true } primitives = { default-features = false, path = "../../primitives" } [dev-dependencies] -pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } +pallet-balances = { workspace = true } +sp-core = { workspace = true } +sp-runtime = { workspace = true } pretty_assertions = "1.2.1" [features] @@ -49,6 +48,7 @@ std = [ "sp-runtime/std", "pallet-nft/std", "pallet-uniques/std", + "pallet-balances/std", "primitives/std", ] runtime-benchmarks = [ diff --git a/pallets/marketplace/src/lib.rs b/pallets/marketplace/src/lib.rs index 88fc2239ff9..8830901e4c8 100644 --- a/pallets/marketplace/src/lib.rs +++ b/pallets/marketplace/src/lib.rs @@ -24,7 +24,7 @@ use frame_support::{ ensure, traits::{tokens::nonfungibles::Inspect, Currency, ExistenceRequirement, ReservableCurrency}, }; -use frame_system::{ensure_signed, RawOrigin}; +use frame_system::{ensure_signed, pallet_prelude::BlockNumberFor, RawOrigin}; use sp_runtime::{ traits::{CheckedDiv, CheckedMul, Saturating, StaticLookup}, ArithmeticError, DispatchError, @@ -44,7 +44,7 @@ mod mock; mod tests; type BalanceOf = <::Currency as Currency<::AccountId>>::Balance; -type OfferOf = Offer<::AccountId, BalanceOf, ::BlockNumber>; +type OfferOf = Offer<::AccountId, BalanceOf, BlockNumberFor>; type RoyaltyOf = Royalty<::AccountId>; pub const MAX_ROYALTY: u16 = 10_000; // 100% in basis points @@ -58,7 +58,7 @@ pub mod pallet { use frame_support::pallet_prelude::*; use frame_system::pallet_prelude::OriginFor; - const STORAGE_VERSION: StorageVersion = StorageVersion::new(1); + const STORAGE_VERSION: StorageVersion = StorageVersion::new(2); #[pallet::pallet] #[pallet::storage_version(STORAGE_VERSION)] @@ -174,7 +174,7 @@ pub mod pallet { collection_id: T::NftCollectionId, item_id: T::NftItemId, amount: BalanceOf, - expires: T::BlockNumber, + expires: BlockNumberFor, ) -> DispatchResult { let sender = ensure_signed(origin)?; @@ -370,7 +370,7 @@ pub mod pallet { collection: T::NftCollectionId, item: T::NftItemId, amount: BalanceOf, - expires: T::BlockNumber, + expires: BlockNumberFor, }, /// Offer was withdrawn OfferWithdrawn { diff --git a/pallets/marketplace/src/mock.rs b/pallets/marketplace/src/mock.rs index c36723d569b..db2af406ecb 100644 --- a/pallets/marketplace/src/mock.rs +++ b/pallets/marketplace/src/mock.rs @@ -10,8 +10,8 @@ pub use primitives::{Amount, AssetId}; use sp_core::storage::Storage; use sp_core::{crypto::AccountId32, H256}; use sp_runtime::{ - testing::Header, traits::{BlakeTwo256, IdentityLookup}, + BuildStorage, }; use sp_std::convert::{TryFrom, TryInto}; use std::borrow::Borrow; @@ -22,16 +22,12 @@ mod marketplace { pub use super::super::*; } -type UncheckedExtrinsic = frame_system::mocking::MockUncheckedExtrinsic; type Block = frame_system::mocking::MockBlock; type AccountId = AccountId32; // Configure a mock runtime to test the pallet. frame_support::construct_runtime!( - pub enum Test where - Block = Block, - NodeBlock = Block, - UncheckedExtrinsic = UncheckedExtrinsic, + pub enum Test { System: frame_system, Marketplace: pallet_marketplace, @@ -91,6 +87,10 @@ impl pallet_balances::Config for Test { type WeightInfo = (); type MaxReserves = MaxReserves; type ReserveIdentifier = (); + type FreezeIdentifier = (); + type MaxFreezes = (); + type MaxHolds = (); + type RuntimeHoldReason = (); } impl system::Config for Test { @@ -100,13 +100,12 @@ impl system::Config for Test { type DbWeight = (); type RuntimeOrigin = RuntimeOrigin; type RuntimeCall = RuntimeCall; - type Index = u64; - type BlockNumber = u64; + type Nonce = u64; + type Block = Block; type Hash = H256; type Hashing = BlakeTwo256; type AccountId = AccountId; type Lookup = IdentityLookup; - type Header = Header; type RuntimeEvent = RuntimeEvent; type BlockHashCount = BlockHashCount; type Version = (); @@ -195,7 +194,7 @@ impl ExtBuilder { } pub fn build(self) -> sp_io::TestExternalities { - let mut t = frame_system::GenesisConfig::default().build_storage::().unwrap(); + let mut t = frame_system::GenesisConfig::::default().build_storage().unwrap(); self.add_account_with_balances(&mut t); diff --git a/pallets/marketplace/src/tests/buy.rs b/pallets/marketplace/src/tests/buy.rs index 90eec043b26..d65623959d4 100644 --- a/pallets/marketplace/src/tests/buy.rs +++ b/pallets/marketplace/src/tests/buy.rs @@ -119,7 +119,7 @@ fn buy_should_fail_when_buyer_has_insufficient_balance() { //Act and assert assert_noop!( Market::buy(Origin::signed(CHARLIE), COLLECTION_ID_0, ITEM_ID_0), - pallet_balances::Error::::InsufficientBalance + sp_runtime::TokenError::FundsUnavailable ); }); } diff --git a/pallets/marketplace/src/tests/mod.rs b/pallets/marketplace/src/tests/mod.rs index dd89474af91..a475f5a60d4 100644 --- a/pallets/marketplace/src/tests/mod.rs +++ b/pallets/marketplace/src/tests/mod.rs @@ -1,7 +1,8 @@ use crate::mock::*; use crate::*; -use frame_support::{assert_noop, assert_ok, dispatch::Dispatchable}; +use frame_support::{assert_noop, assert_ok}; +use sp_runtime::traits::Dispatchable; mod accept_offer; mod add_royalty; diff --git a/pallets/marketplace/src/weights.rs b/pallets/marketplace/src/weights.rs index 869826eb0a0..c64a71a0ed9 100644 --- a/pallets/marketplace/src/weights.rs +++ b/pallets/marketplace/src/weights.rs @@ -1,6 +1,6 @@ -// This file is part of Basilisk-node. +// This file is part of Basilisk. -// Copyright (C) 2020-2022 Intergalactic, Limited (GIB). +// Copyright (C) 2020-2023 Intergalactic, Limited (GIB). // SPDX-License-Identifier: Apache-2.0 // Licensed under the Apache License, Version 2.0 (the "License"); @@ -15,25 +15,27 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_marketplace +//! Autogenerated weights for `pallet_marketplace` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2021-11-17, STEPS: 50, REPEAT: 20, LOW RANGE: [], HIGH RANGE: [] -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 128 +//! DATE: 2023-12-06, STEPS: `10`, REPEAT: `30`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// ./target/release/basilisk +// target/release/basilisk // benchmark +// pallet // --chain=dev -// --steps=50 -// --repeat=20 -// --pallet=pallet_marketplace -// --extrinsic=* -// --execution=wasm +// --steps=10 +// --repeat=30 // --wasm-execution=compiled // --heap-pages=4096 -// --output=pallets/marketplace/src/weights.rs // --template=.maintain/pallet-weight-template-no-back.hbs +// --pallet=pallet-marketplace +// --output=marketplace.rs +// --extrinsic= #![allow(unused_parens)] #![allow(unused_imports)] @@ -58,34 +60,138 @@ pub trait WeightInfo { pub struct BasiliskWeight(PhantomData); impl WeightInfo for BasiliskWeight { + /// Storage: `Uniques::Asset` (r:1 w:1) + /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) + /// Storage: `Marketplace::Prices` (r:1 w:1) + /// Proof: `Marketplace::Prices` (`max_values`: None, `max_size`: Some(80), added: 2555, mode: `MaxEncodedLen`) + /// Storage: `Marketplace::MarketplaceItems` (r:1 w:0) + /// Proof: `Marketplace::MarketplaceItems` (`max_values`: None, `max_size`: Some(98), added: 2573, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::NextAssetId` (r:1 w:0) + /// Proof: `AssetRegistry::NextAssetId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::LocationAssets` (r:1 w:0) + /// Proof: `AssetRegistry::LocationAssets` (`max_values`: None, `max_size`: Some(622), added: 3097, mode: `MaxEncodedLen`) + /// Storage: `Tokens::Accounts` (r:2 w:2) + /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:1 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `NFT::Collections` (r:1 w:0) + /// Proof: `NFT::Collections` (`max_values`: None, `max_size`: Some(99), added: 2574, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Class` (r:1 w:0) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(190), added: 2665, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Account` (r:0 w:2) + /// Proof: `Uniques::Account` (`max_values`: None, `max_size`: Some(112), added: 2587, mode: `MaxEncodedLen`) + /// Storage: `Uniques::ItemPriceOf` (r:0 w:1) + /// Proof: `Uniques::ItemPriceOf` (`max_values`: None, `max_size`: Some(113), added: 2588, mode: `MaxEncodedLen`) fn buy() -> Weight { - Weight::from_ref_time(54_000_000 as u64) - .saturating_add(T::DbWeight::get().reads(7 as u64)) - .saturating_add(T::DbWeight::get().writes(6 as u64)) + // Proof Size summary in bytes: + // Measured: `2858` + // Estimated: `6156` + // Minimum execution time: 129_748_000 picoseconds. + Weight::from_parts(130_751_000, 6156) + .saturating_add(T::DbWeight::get().reads(10_u64)) + .saturating_add(T::DbWeight::get().writes(7_u64)) } + /// Storage: `Uniques::Asset` (r:1 w:0) + /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) + /// Storage: `Marketplace::Prices` (r:1 w:1) + /// Proof: `Marketplace::Prices` (`max_values`: None, `max_size`: Some(80), added: 2555, mode: `MaxEncodedLen`) fn set_price() -> Weight { - Weight::from_ref_time(15_000_000 as u64) - .saturating_add(T::DbWeight::get().reads(2 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Size summary in bytes: + // Measured: `1359` + // Estimated: `3611` + // Minimum execution time: 35_495_000 picoseconds. + Weight::from_parts(36_171_000, 3611) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } + /// Storage: `Marketplace::Offers` (r:1 w:1) + /// Proof: `Marketplace::Offers` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::NextAssetId` (r:1 w:0) + /// Proof: `AssetRegistry::NextAssetId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::LocationAssets` (r:1 w:0) + /// Proof: `AssetRegistry::LocationAssets` (`max_values`: None, `max_size`: Some(622), added: 3097, mode: `MaxEncodedLen`) + /// Storage: `Tokens::Accounts` (r:1 w:1) + /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:1 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) fn make_offer() -> Weight { - Weight::from_ref_time(25_000_000 as u64) - .saturating_add(T::DbWeight::get().reads(3 as u64)) - .saturating_add(T::DbWeight::get().writes(3 as u64)) + // Proof Size summary in bytes: + // Measured: `1796` + // Estimated: `4087` + // Minimum execution time: 64_847_000 picoseconds. + Weight::from_parts(65_533_000, 4087) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } + /// Storage: `Marketplace::Offers` (r:1 w:1) + /// Proof: `Marketplace::Offers` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Asset` (r:1 w:0) + /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::NextAssetId` (r:1 w:0) + /// Proof: `AssetRegistry::NextAssetId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::LocationAssets` (r:1 w:0) + /// Proof: `AssetRegistry::LocationAssets` (`max_values`: None, `max_size`: Some(622), added: 3097, mode: `MaxEncodedLen`) + /// Storage: `Tokens::Accounts` (r:1 w:1) + /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:1 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) fn withdraw_offer() -> Weight { - Weight::from_ref_time(29_000_000 as u64) - .saturating_add(T::DbWeight::get().reads(4 as u64)) - .saturating_add(T::DbWeight::get().writes(3 as u64)) + // Proof Size summary in bytes: + // Measured: `2287` + // Estimated: `4087` + // Minimum execution time: 65_311_000 picoseconds. + Weight::from_parts(66_226_000, 4087) + .saturating_add(T::DbWeight::get().reads(6_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } + /// Storage: `Uniques::Asset` (r:1 w:1) + /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) + /// Storage: `Marketplace::Offers` (r:1 w:1) + /// Proof: `Marketplace::Offers` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::NextAssetId` (r:1 w:0) + /// Proof: `AssetRegistry::NextAssetId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::LocationAssets` (r:1 w:0) + /// Proof: `AssetRegistry::LocationAssets` (`max_values`: None, `max_size`: Some(622), added: 3097, mode: `MaxEncodedLen`) + /// Storage: `Tokens::Accounts` (r:2 w:2) + /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:1 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `Marketplace::Prices` (r:1 w:1) + /// Proof: `Marketplace::Prices` (`max_values`: None, `max_size`: Some(80), added: 2555, mode: `MaxEncodedLen`) + /// Storage: `Marketplace::MarketplaceItems` (r:1 w:0) + /// Proof: `Marketplace::MarketplaceItems` (`max_values`: None, `max_size`: Some(98), added: 2573, mode: `MaxEncodedLen`) + /// Storage: `NFT::Collections` (r:1 w:0) + /// Proof: `NFT::Collections` (`max_values`: None, `max_size`: Some(99), added: 2574, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Class` (r:1 w:0) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(190), added: 2665, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Account` (r:0 w:2) + /// Proof: `Uniques::Account` (`max_values`: None, `max_size`: Some(112), added: 2587, mode: `MaxEncodedLen`) + /// Storage: `Uniques::ItemPriceOf` (r:0 w:1) + /// Proof: `Uniques::ItemPriceOf` (`max_values`: None, `max_size`: Some(113), added: 2588, mode: `MaxEncodedLen`) fn accept_offer() -> Weight { - Weight::from_ref_time(73_000_000 as u64) - .saturating_add(T::DbWeight::get().reads(9 as u64)) - .saturating_add(T::DbWeight::get().writes(8 as u64)) + // Proof Size summary in bytes: + // Measured: `2928` + // Estimated: `6156` + // Minimum execution time: 155_327_000 picoseconds. + Weight::from_parts(157_067_000, 6156) + .saturating_add(T::DbWeight::get().reads(11_u64)) + .saturating_add(T::DbWeight::get().writes(8_u64)) } + /// Storage: `Marketplace::MarketplaceItems` (r:1 w:1) + /// Proof: `Marketplace::MarketplaceItems` (`max_values`: None, `max_size`: Some(98), added: 2573, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Asset` (r:1 w:0) + /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::NextAssetId` (r:1 w:0) + /// Proof: `AssetRegistry::NextAssetId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::LocationAssets` (r:1 w:0) + /// Proof: `AssetRegistry::LocationAssets` (`max_values`: None, `max_size`: Some(622), added: 3097, mode: `MaxEncodedLen`) fn add_royalty() -> Weight { - Weight::from_ref_time(27_000_000 as u64) - .saturating_add(T::DbWeight::get().reads(4 as u64)) - .saturating_add(T::DbWeight::get().writes(3 as u64)) + // Proof Size summary in bytes: + // Measured: `1609` + // Estimated: `4087` + // Minimum execution time: 47_072_000 picoseconds. + Weight::from_parts(47_584_000, 4087) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } } diff --git a/pallets/xyk-liquidity-mining/Cargo.toml b/pallets/xyk-liquidity-mining/Cargo.toml index c8fc8ab2673..9a7bb2549a8 100644 --- a/pallets/xyk-liquidity-mining/Cargo.toml +++ b/pallets/xyk-liquidity-mining/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pallet-xyk-liquidity-mining" -version = "1.1.8" +version = "1.1.10" description = "Liquidity mining" authors = ["GalacticCouncil"] edition = "2021" @@ -18,7 +18,7 @@ scale-info = { version = "2.3.1", default-features = false, features = ["derive" log = { version = "0.4.17", default-features = false } # ORML dependencies -orml-traits = { git = "https://github.com/open-web3-stack/open-runtime-module-library", branch = "polkadot-v0.9.38", default-features = false } +orml-traits = { workspace = true } # Local dependencies primitives = { path = "../../primitives", default-features = false } @@ -27,20 +27,20 @@ primitives = { path = "../../primitives", default-features = false } pallet-liquidity-mining = { workspace = true } hydradx-traits = { workspace = true } pallet-nft = { workspace = true } +pallet-xyk = { workspace = true } # Substrate dependencies -sp-std = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -frame-support = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -frame-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-arithmetic = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } +sp-std = { workspace = true } +frame-support = { workspace = true } +frame-system = { workspace = true } +sp-arithmetic = { workspace = true } +sp-runtime = { workspace = true } [dev-dependencies] -sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38" } -orml-currencies = { git = "https://github.com/open-web3-stack/open-runtime-module-library", branch="polkadot-v0.9.38" } -orml-tokens = { git = "https://github.com/open-web3-stack/open-runtime-module-library", branch="polkadot-v0.9.38"} -pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38"} +sp-io = { workspace = true } +sp-core = { workspace = true } +orml-tokens = { workspace = true } +pallet-balances = { workspace = true } pretty_assertions = "1.2.1" lazy_static = "1.4.0" diff --git a/pallets/xyk-liquidity-mining/benchmarking/Cargo.toml b/pallets/xyk-liquidity-mining/benchmarking/Cargo.toml index 6f6583f2fa8..8298735570f 100644 --- a/pallets/xyk-liquidity-mining/benchmarking/Cargo.toml +++ b/pallets/xyk-liquidity-mining/benchmarking/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pallet-xyk-liquidity-mining-benchmarking" -version = "1.0.15" +version = "1.0.16" description = "Liquidity Mining Benchmarking Module" authors = ["GalacticCouncil"] edition = "2021" @@ -18,11 +18,10 @@ scale-info = { version = "2.3.1", features = ["derive"], default-features = fals # Local dependencies pallet-xyk-liquidity-mining = { path = "../../xyk-liquidity-mining", default-features = false } primitives = { path = "../../../primitives", default-features = false } -pallet-xyk = { path = "../../xyk", default-features = false } # ORML dependencies -orml-traits = { git = "https://github.com/open-web3-stack/open-runtime-module-library", branch = "polkadot-v0.9.38", default-features = false } -orml-tokens = { git = "https://github.com/open-web3-stack/open-runtime-module-library", branch = "polkadot-v0.9.38", default-features = false } +orml-traits = { workspace = true } +orml-tokens = { workspace = true } # HydraDX dependencies pallet-nft = { workspace = true } @@ -30,23 +29,22 @@ pallet-asset-registry = { workspace = true } pallet-liquidity-mining = { workspace = true } hydradx-traits = { workspace = true } pallet-duster = { workspace = true } +pallet-xyk = { workspace = true } # Substrate dependencies -sp-std = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -frame-support = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -frame-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-arithmetic = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -pallet-uniques = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } +sp-std = { workspace = true } +frame-support = { workspace = true } +frame-system = { workspace = true } +sp-arithmetic = { workspace = true } +pallet-uniques = { workspace = true } +pallet-balances = { workspace = true } -frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } +frame-benchmarking = { workspace = true } [dev-dependencies] -sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38"} -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38"} -orml-currencies = { git = "https://github.com/open-web3-stack/open-runtime-module-library", branch = "polkadot-v0.9.38"} +sp-io = { workspace = true } +sp-runtime = { workspace = true } +sp-core = { workspace = true } [features] default = ["std"] diff --git a/pallets/xyk-liquidity-mining/benchmarking/src/lib.rs b/pallets/xyk-liquidity-mining/benchmarking/src/lib.rs index 4a428761a17..f3e4b918c9f 100644 --- a/pallets/xyk-liquidity-mining/benchmarking/src/lib.rs +++ b/pallets/xyk-liquidity-mining/benchmarking/src/lib.rs @@ -22,15 +22,15 @@ mod mock; use pallet_liquidity_mining::{GlobalFarmId, LoyaltyCurve, YieldFarmId}; +use pallet_xyk::types::{AssetId, AssetPair, Balance}; use pallet_xyk_liquidity_mining::Pallet as XYKLiquidityMining; use frame_benchmarking::{account, benchmarks}; -use frame_system::{Pallet as System, RawOrigin}; +use frame_system::{pallet_prelude::BlockNumberFor, Pallet as System, RawOrigin}; use frame_support::dispatch; use orml_traits::arithmetic::One; use orml_traits::MultiCurrency; -use primitives::{asset::AssetPair, AssetId, Balance}; use sp_arithmetic::FixedU128; use sp_arithmetic::Perquintill; use sp_std::convert::From; @@ -108,8 +108,8 @@ fn lm_create_global_farm( XYKLiquidityMining::::create_global_farm( RawOrigin::Root.into(), total_rewards, - T::BlockNumber::from(1_000_000_u32), - T::BlockNumber::from(1_u32), + BlockNumberFor::::from(1_000_000_u32), + BlockNumberFor::::from(1_u32), BSX, BSX, owner, @@ -153,9 +153,9 @@ benchmarks! { create_global_farm { let total_rewards = 1_000_000 * ONE; let caller = create_funded_account::("caller", 0); - let planned_yielding_periods = T::BlockNumber::from(1_000_000_u32); + let planned_yielding_periods = BlockNumberFor::::from(1_000_000_u32); let yield_per_period = Perquintill::from_percent(20); - let blocks_per_period = T::BlockNumber::from(1_u32); + let blocks_per_period = BlockNumberFor::::from(1_u32); }: { XYKLiquidityMining::::create_global_farm(RawOrigin::Root.into(), total_rewards, planned_yielding_periods, blocks_per_period, BSX, BSX, caller.clone(), yield_per_period, 1_000, One::one())? } diff --git a/pallets/xyk-liquidity-mining/benchmarking/src/mock.rs b/pallets/xyk-liquidity-mining/benchmarking/src/mock.rs index 06cb4c4fc5d..8bedff22248 100644 --- a/pallets/xyk-liquidity-mining/benchmarking/src/mock.rs +++ b/pallets/xyk-liquidity-mining/benchmarking/src/mock.rs @@ -20,13 +20,13 @@ use frame_support::{ instances::Instance1, parameter_types, - traits::{AsEnsureOriginWithArg, Everything, GenesisBuild, Nothing}, + traits::{AsEnsureOriginWithArg, Everything, Nothing}, PalletId, }; use frame_system as system; use frame_system::{EnsureRoot, EnsureSigned}; -use hydradx_traits::AssetPairAccountIdFor; +use hydradx_traits::{AssetPairAccountIdFor, Source}; use orml_traits::parameter_type_with_key; use primitives::{ constants::{ @@ -39,8 +39,8 @@ use primitives::{ use pallet_nft::{CollectionType, NftPermissions}; use sp_core::H256; use sp_runtime::{ - testing::Header, traits::{BlakeTwo256, BlockNumberProvider, IdentityLookup}, + BuildStorage, }; pub const UNITS: Balance = 1_000_000_000_000; @@ -54,14 +54,10 @@ pub const DOT: AssetId = 2; pub const LIQ_MINING_NFT_COLLECTION: primitives::CollectionId = 1; -type UncheckedExtrinsic = frame_system::mocking::MockUncheckedExtrinsic; type Block = frame_system::mocking::MockBlock; frame_support::construct_runtime!( - pub enum Test where - Block = Block, - NodeBlock = Block, - UncheckedExtrinsic = UncheckedExtrinsic, + pub enum Test { System: frame_system, Duster: pallet_duster, @@ -100,13 +96,12 @@ impl system::Config for Test { type DbWeight = (); type RuntimeOrigin = RuntimeOrigin; type RuntimeCall = RuntimeCall; - type Index = u64; - type BlockNumber = BlockNumber; + type Nonce = u64; + type Block = Block; type Hash = H256; type Hashing = BlakeTwo256; type AccountId = AccountId; type Lookup = IdentityLookup; - type Header = Header; type RuntimeEvent = RuntimeEvent; type BlockHashCount = BlockHashCount; type Version = (); @@ -207,6 +202,10 @@ impl pallet_balances::Config for Test { type WeightInfo = (); type MaxReserves = MaxReserves; type ReserveIdentifier = (); + type FreezeIdentifier = (); + type MaxFreezes = (); + type MaxHolds = (); + type RuntimeHoldReason = (); } parameter_types! { @@ -296,6 +295,7 @@ parameter_types! { pub const MaxInRatio: u128 = MAX_IN_RATIO; pub const MaxOutRatio: u128 = MAX_OUT_RATIO; pub const DiscountedFee: (u32, u32) = DISCOUNTED_FEE; + pub const XYKOracleSourceIdentifier: Source = *b"snek/xyk"; } impl pallet_xyk::Config for Test { @@ -310,6 +310,7 @@ impl pallet_xyk::Config for Test { type MinPoolLiquidity = MinPoolLiquidity; type MaxInRatio = MaxInRatio; type MaxOutRatio = MaxOutRatio; + type OracleSource = XYKOracleSourceIdentifier; type CanCreatePool = pallet_xyk::AllowAllPools; type AMMHandler = (); type DiscountedFee = DiscountedFee; @@ -318,7 +319,7 @@ impl pallet_xyk::Config for Test { impl ExtBuilder { pub fn build(self) -> sp_io::TestExternalities { - let mut t = frame_system::GenesisConfig::default().build_storage::().unwrap(); + let mut t = frame_system::GenesisConfig::::default().build_storage().unwrap(); orml_tokens::GenesisConfig:: { balances: self.endowed_accounts, @@ -334,8 +335,8 @@ impl ExtBuilder { .assimilate_storage(&mut t) .unwrap(); - >::assimilate_storage( - &pallet_xyk_liquidity_mining::GenesisConfig::default(), + as BuildStorage>::assimilate_storage( + &pallet_xyk_liquidity_mining::GenesisConfig::::default(), &mut t, ) .unwrap(); diff --git a/pallets/xyk-liquidity-mining/src/lib.rs b/pallets/xyk-liquidity-mining/src/lib.rs index 551b6dd9f60..0be69c6ac96 100644 --- a/pallets/xyk-liquidity-mining/src/lib.rs +++ b/pallets/xyk-liquidity-mining/src/lib.rs @@ -46,8 +46,10 @@ pub use pallet::*; use frame_support::traits::tokens::nonfungibles::{Inspect, Mutate}; use frame_support::{ensure, sp_runtime::traits::Zero, PalletId}; +use frame_system::pallet_prelude::BlockNumberFor; use hydradx_traits::liquidity_mining::{GlobalFarmId, Mutate as LiquidityMiningMutate, YieldFarmId}; use pallet_liquidity_mining::{FarmMultiplier, LoyaltyCurve}; +use pallet_xyk::types::{AssetId, AssetPair, Balance}; use frame_support::{pallet_prelude::*, sp_runtime::traits::AccountIdConversion}; use frame_system::{ensure_signed, pallet_prelude::OriginFor}; @@ -57,7 +59,7 @@ use hydradx_traits::{ }; use orml_traits::MultiCurrency; use pallet_nft::CollectionType; -use primitives::{asset::AssetPair, AssetId, Balance, CollectionId as DepositId}; +use primitives::CollectionId as DepositId; use scale_info::TypeInfo; use sp_arithmetic::{FixedU128, Perquintill}; use sp_std::{ @@ -65,7 +67,7 @@ use sp_std::{ vec, }; -type PeriodOf = ::BlockNumber; +type PeriodOf = BlockNumberFor; #[frame_support::pallet] #[allow(clippy::too_many_arguments)] @@ -92,11 +94,14 @@ pub mod pallet { } #[pallet::genesis_config] - #[cfg_attr(feature = "std", derive(Default))] - pub struct GenesisConfig {} + #[derive(frame_support::DefaultNoBound)] + pub struct GenesisConfig { + #[serde(skip)] + pub _marker: PhantomData, + } #[pallet::genesis_build] - impl GenesisBuild for GenesisConfig { + impl BuildGenesisConfig for GenesisConfig { fn build(&self) { let pallet_account = >::account_id(); diff --git a/pallets/xyk-liquidity-mining/src/tests/mock.rs b/pallets/xyk-liquidity-mining/src/tests/mock.rs index ece785a4e81..f3b95b18f6c 100644 --- a/pallets/xyk-liquidity-mining/src/tests/mock.rs +++ b/pallets/xyk-liquidity-mining/src/tests/mock.rs @@ -23,7 +23,7 @@ use crate::Config; use frame_support::weights::RuntimeDbWeight; use frame_support::{ parameter_types, - traits::{Everything, GenesisBuild, Nothing}, + traits::{Everything, Nothing}, PalletId, }; @@ -32,11 +32,12 @@ use hydradx_traits::{nft::CreateTypedCollection, pools::DustRemovalAccountWhitel use orml_traits::parameter_type_with_key; use pallet_liquidity_mining::{FarmMultiplier, YieldFarmId}; use pallet_nft::CollectionType; -use primitives::{asset::AssetPair, Amount, AssetId, Balance}; +use pallet_xyk::types::{AssetId, AssetPair, Balance}; +use primitives::Amount; use sp_core::H256; use sp_runtime::{ - testing::Header, traits::{BlakeTwo256, BlockNumberProvider, IdentityLookup}, + BuildStorage, }; use sp_std::convert::TryFrom; use std::{cell::RefCell, collections::HashMap}; @@ -85,19 +86,15 @@ pub const BSX_DOT_ASSET_PAIR: AssetPair = AssetPair { asset_out: DOT, }; -type UncheckedExtrinsic = frame_system::mocking::MockUncheckedExtrinsic; type Block = frame_system::mocking::MockBlock; frame_support::construct_runtime!( - pub enum Test where - Block = Block, - NodeBlock = Block, - UncheckedExtrinsic = UncheckedExtrinsic, + pub enum Test { - System: frame_system::{Pallet, Call, Config, Storage, Event}, - LiquidityMining: liq_mining::{Pallet, Call, Storage, Event}, - Tokens: orml_tokens::{Pallet, Call, Storage, Event}, - Balances: pallet_balances::{Pallet, Call, Storage, Config, Event}, + System: frame_system, + LiquidityMining: liq_mining, + Tokens: orml_tokens, + Balances: pallet_balances, } ); @@ -124,13 +121,12 @@ impl system::Config for Test { type DbWeight = DbWeight; type RuntimeOrigin = RuntimeOrigin; type RuntimeCall = RuntimeCall; - type Index = u64; - type BlockNumber = BlockNumber; + type Nonce = u64; + type Block = Block; type Hash = H256; type Hashing = BlakeTwo256; type AccountId = AccountId; type Lookup = IdentityLookup; - type Header = Header; type RuntimeEvent = RuntimeEvent; type BlockHashCount = BlockHashCount; type Version = (); @@ -677,7 +673,7 @@ impl hydradx_traits::liquidity_mining::Mutate f { let deposit = DEPOSITS.with(|v| { let mut p = v.borrow_mut(); - let mut deposit = p.get_mut(&deposit_id).unwrap(); + let deposit = p.get_mut(&deposit_id).unwrap(); deposit.entries += 1; @@ -734,7 +730,7 @@ impl hydradx_traits::liquidity_mining::Mutate f let deposit = DEPOSITS.with(|v| { let mut p = v.borrow_mut(); - let mut deposit = p.get_mut(&deposit_id).unwrap(); + let deposit = p.get_mut(&deposit_id).unwrap(); deposit.entries -= 1; @@ -804,6 +800,10 @@ impl pallet_balances::Config for Test { type WeightInfo = (); type MaxReserves = MaxReserves; type ReserveIdentifier = (); + type FreezeIdentifier = (); + type MaxFreezes = (); + type MaxHolds = (); + type RuntimeHoldReason = (); } parameter_type_with_key! { @@ -966,7 +966,7 @@ impl ExtBuilder { } pub fn build(self) -> sp_io::TestExternalities { - let mut t = frame_system::GenesisConfig::default().build_storage::().unwrap(); + let mut t = frame_system::GenesisConfig::::default().build_storage().unwrap(); orml_tokens::GenesisConfig:: { balances: self diff --git a/pallets/xyk-liquidity-mining/src/weights.rs b/pallets/xyk-liquidity-mining/src/weights.rs index f9cf19fc5fa..967fa8e9aba 100644 --- a/pallets/xyk-liquidity-mining/src/weights.rs +++ b/pallets/xyk-liquidity-mining/src/weights.rs @@ -1,6 +1,6 @@ -// This file is part of Basilisk-node. +// This file is part of Basilisk. -// Copyright (C) 2020-2021 Intergalactic, Limited (GIB). +// Copyright (C) 2020-2023 Intergalactic, Limited (GIB). // SPDX-License-Identifier: Apache-2.0 // Licensed under the Apache License, Version 2.0 (the "License"); @@ -15,25 +15,28 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_xyk_liquidity_mining +//! Autogenerated weights for `pallet_xyk_liquidity_mining` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-11-28, STEPS: 1, REPEAT: 20, LOW RANGE: [], HIGH RANGE: [] -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! DATE: 2023-12-06, STEPS: `10`, REPEAT: `30`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: -// ./target/release/basilisk +// target/release/basilisk // benchmark // pallet -// --pallet=pallet_xyk_liquidity_mining // --chain=dev -// --repeat=20 -// --extrinsic=* -// --execution=wasm +// --steps=10 +// --repeat=30 // --wasm-execution=compiled // --heap-pages=4096 -// --template=.maintain/pallet-weight-template.hbs -// --output=pallets/xyk-liquidity-mining/src/weights.rs +// --template=.maintain/pallet-weight-template-no-back.hbs +// --pallet=pallet-xyk-liquidity-mining +// --output=xyk_liquidity_mining.rs +// --extrinsic=* + #![allow(unused_parens)] #![allow(unused_imports)] #![allow(clippy::unnecessary_cast)] @@ -63,128 +66,584 @@ pub trait WeightInfo { pub struct BasiliskWeight(PhantomData); impl WeightInfo for BasiliskWeight { + /// Storage: `AssetRegistry::Assets` (r:1 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::FarmSequencer` (r:1 w:1) + /// Proof: `XYKWarehouseLM::FarmSequencer` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Duster::AccountBlacklist` (r:0 w:1) + /// Proof: `Duster::AccountBlacklist` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::GlobalFarm` (r:0 w:1) + /// Proof: `XYKWarehouseLM::GlobalFarm` (`max_values`: None, `max_size`: Some(205), added: 2680, mode: `MaxEncodedLen`) fn create_global_farm() -> Weight { - Weight::from_ref_time(86_072_000 as u64) - .saturating_add(T::DbWeight::get().reads(4 as u64)) - .saturating_add(T::DbWeight::get().writes(5 as u64)) + // Proof Size summary in bytes: + // Measured: `473` + // Estimated: `6196` + // Minimum execution time: 93_370_000 picoseconds. + Weight::from_parts(94_187_000, 6196) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(5_u64)) } + /// Storage: `XYKWarehouseLM::GlobalFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::GlobalFarm` (`max_values`: None, `max_size`: Some(205), added: 2680, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:1 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn update_global_farm() -> Weight { - Weight::from_ref_time(91_993_000 as u64) - .saturating_add(T::DbWeight::get().reads(4 as u64)) - .saturating_add(T::DbWeight::get().writes(3 as u64)) + // Proof Size summary in bytes: + // Measured: `879` + // Estimated: `6196` + // Minimum execution time: 98_533_000 picoseconds. + Weight::from_parts(99_357_000, 6196) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } + /// Storage: `XYKWarehouseLM::GlobalFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::GlobalFarm` (`max_values`: None, `max_size`: Some(205), added: 2680, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Duster::AccountBlacklist` (r:1 w:1) + /// Proof: `Duster::AccountBlacklist` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) fn terminate_global_farm() -> Weight { - Weight::from_ref_time(78_247_000 as u64) - .saturating_add(T::DbWeight::get().reads(4 as u64)) - .saturating_add(T::DbWeight::get().writes(4 as u64)) + // Proof Size summary in bytes: + // Measured: `1002` + // Estimated: `6196` + // Minimum execution time: 95_311_000 picoseconds. + Weight::from_parts(95_938_000, 6196) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) } + /// Storage: `XYK::ShareToken` (r:1 w:0) + /// Proof: `XYK::ShareToken` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::GlobalFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::GlobalFarm` (`max_values`: None, `max_size`: Some(205), added: 2680, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::ActiveYieldFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::ActiveYieldFarm` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:1 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::FarmSequencer` (r:1 w:1) + /// Proof: `XYKWarehouseLM::FarmSequencer` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::YieldFarm` (r:0 w:1) + /// Proof: `XYKWarehouseLM::YieldFarm` (`max_values`: None, `max_size`: Some(226), added: 2701, mode: `MaxEncodedLen`) fn create_yield_farm() -> Weight { - Weight::from_ref_time(116_579_000 as u64) - .saturating_add(T::DbWeight::get().reads(7 as u64)) - .saturating_add(T::DbWeight::get().writes(6 as u64)) + // Proof Size summary in bytes: + // Measured: `1213` + // Estimated: `6196` + // Minimum execution time: 122_647_000 picoseconds. + Weight::from_parts(124_077_000, 6196) + .saturating_add(T::DbWeight::get().reads(7_u64)) + .saturating_add(T::DbWeight::get().writes(6_u64)) } + /// Storage: `XYK::ShareToken` (r:1 w:0) + /// Proof: `XYK::ShareToken` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::ActiveYieldFarm` (r:1 w:0) + /// Proof: `XYKWarehouseLM::ActiveYieldFarm` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::YieldFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::YieldFarm` (`max_values`: None, `max_size`: Some(226), added: 2701, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::GlobalFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::GlobalFarm` (`max_values`: None, `max_size`: Some(205), added: 2680, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:1 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn update_yield_farm() -> Weight { - Weight::from_ref_time(120_727_000 as u64) - .saturating_add(T::DbWeight::get().reads(7 as u64)) - .saturating_add(T::DbWeight::get().writes(4 as u64)) + // Proof Size summary in bytes: + // Measured: `1361` + // Estimated: `6196` + // Minimum execution time: 129_497_000 picoseconds. + Weight::from_parts(130_156_000, 6196) + .saturating_add(T::DbWeight::get().reads(7_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) } + /// Storage: `XYKWarehouseLM::ActiveYieldFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::ActiveYieldFarm` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::YieldFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::YieldFarm` (`max_values`: None, `max_size`: Some(226), added: 2701, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::GlobalFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::GlobalFarm` (`max_values`: None, `max_size`: Some(205), added: 2680, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:1 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn stop_yield_farm() -> Weight { - Weight::from_ref_time(112_341_000 as u64) - .saturating_add(T::DbWeight::get().reads(6 as u64)) - .saturating_add(T::DbWeight::get().writes(5 as u64)) + // Proof Size summary in bytes: + // Measured: `1195` + // Estimated: `6196` + // Minimum execution time: 124_385_000 picoseconds. + Weight::from_parts(125_118_000, 6196) + .saturating_add(T::DbWeight::get().reads(6_u64)) + .saturating_add(T::DbWeight::get().writes(5_u64)) } + /// Storage: `XYKWarehouseLM::ActiveYieldFarm` (r:1 w:0) + /// Proof: `XYKWarehouseLM::ActiveYieldFarm` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::GlobalFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::GlobalFarm` (`max_values`: None, `max_size`: Some(205), added: 2680, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::YieldFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::YieldFarm` (`max_values`: None, `max_size`: Some(226), added: 2701, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn terminate_yield_farm() -> Weight { - Weight::from_ref_time(81_232_000 as u64) - .saturating_add(T::DbWeight::get().reads(5 as u64)) - .saturating_add(T::DbWeight::get().writes(4 as u64)) + // Proof Size summary in bytes: + // Measured: `904` + // Estimated: `6196` + // Minimum execution time: 99_601_000 picoseconds. + Weight::from_parts(100_152_000, 6196) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) } + /// Storage: `XYK::ShareToken` (r:1 w:0) + /// Proof: `XYK::ShareToken` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `Tokens::Accounts` (r:3 w:2) + /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::YieldFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::YieldFarm` (`max_values`: None, `max_size`: Some(226), added: 2701, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::GlobalFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::GlobalFarm` (`max_values`: None, `max_size`: Some(205), added: 2680, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:2 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:4 w:3) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `XYK::PoolAssets` (r:1 w:0) + /// Proof: `XYK::PoolAssets` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) + /// Storage: `XYK::TotalLiquidity` (r:1 w:0) + /// Proof: `XYK::TotalLiquidity` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::DepositSequencer` (r:1 w:1) + /// Proof: `XYKWarehouseLM::DepositSequencer` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `MultiTransactionPayment::AccountCurrencyMap` (r:1 w:0) + /// Proof: `MultiTransactionPayment::AccountCurrencyMap` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `NFT::Collections` (r:1 w:0) + /// Proof: `NFT::Collections` (`max_values`: None, `max_size`: Some(99), added: 2574, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Asset` (r:1 w:1) + /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Class` (r:1 w:1) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(190), added: 2665, mode: `MaxEncodedLen`) + /// Storage: `Uniques::CollectionMaxSupply` (r:1 w:0) + /// Proof: `Uniques::CollectionMaxSupply` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::NextAssetId` (r:1 w:0) + /// Proof: `AssetRegistry::NextAssetId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::LocationAssets` (r:1 w:0) + /// Proof: `AssetRegistry::LocationAssets` (`max_values`: None, `max_size`: Some(622), added: 3097, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Account` (r:0 w:1) + /// Proof: `Uniques::Account` (`max_values`: None, `max_size`: Some(112), added: 2587, mode: `MaxEncodedLen`) + /// Storage: `NFT::Items` (r:0 w:1) + /// Proof: `NFT::Items` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::Deposit` (r:0 w:1) + /// Proof: `XYKWarehouseLM::Deposit` (`max_values`: None, `max_size`: Some(413), added: 2888, mode: `MaxEncodedLen`) fn deposit_shares() -> Weight { - Weight::from_ref_time(238_648_000 as u64) - .saturating_add(T::DbWeight::get().reads(22 as u64)) - .saturating_add(T::DbWeight::get().writes(13 as u64)) + // Proof Size summary in bytes: + // Measured: `3236` + // Estimated: `11402` + // Minimum execution time: 257_650_000 picoseconds. + Weight::from_parts(258_966_000, 11402) + .saturating_add(T::DbWeight::get().reads(22_u64)) + .saturating_add(T::DbWeight::get().writes(13_u64)) } + /// Storage: `Uniques::Asset` (r:1 w:0) + /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) + /// Storage: `XYK::ShareToken` (r:1 w:0) + /// Proof: `XYK::ShareToken` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::Deposit` (r:1 w:1) + /// Proof: `XYKWarehouseLM::Deposit` (`max_values`: None, `max_size`: Some(413), added: 2888, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::YieldFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::YieldFarm` (`max_values`: None, `max_size`: Some(226), added: 2701, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::GlobalFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::GlobalFarm` (`max_values`: None, `max_size`: Some(205), added: 2680, mode: `MaxEncodedLen`) + /// Storage: `XYK::PoolAssets` (r:1 w:0) + /// Proof: `XYK::PoolAssets` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) + /// Storage: `XYK::TotalLiquidity` (r:1 w:0) + /// Proof: `XYK::TotalLiquidity` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:0) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Tokens::Accounts` (r:1 w:0) + /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) fn redeposit_shares() -> Weight { - Weight::from_ref_time(89_879_000 as u64) - .saturating_add(T::DbWeight::get().reads(9 as u64)) - .saturating_add(T::DbWeight::get().writes(3 as u64)) + // Proof Size summary in bytes: + // Measured: `2363` + // Estimated: `3878` + // Minimum execution time: 82_242_000 picoseconds. + Weight::from_parts(83_084_000, 3878) + .saturating_add(T::DbWeight::get().reads(9_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } + /// Storage: `Uniques::Asset` (r:1 w:0) + /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::Deposit` (r:1 w:1) + /// Proof: `XYKWarehouseLM::Deposit` (`max_values`: None, `max_size`: Some(413), added: 2888, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::YieldFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::YieldFarm` (`max_values`: None, `max_size`: Some(226), added: 2701, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::GlobalFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::GlobalFarm` (`max_values`: None, `max_size`: Some(205), added: 2680, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:1 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:3 w:3) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn claim_rewards() -> Weight { - Weight::from_ref_time(148_960_000 as u64) - .saturating_add(T::DbWeight::get().reads(8 as u64)) - .saturating_add(T::DbWeight::get().writes(6 as u64)) + // Proof Size summary in bytes: + // Measured: `2097` + // Estimated: `8799` + // Minimum execution time: 176_232_000 picoseconds. + Weight::from_parts(177_357_000, 8799) + .saturating_add(T::DbWeight::get().reads(8_u64)) + .saturating_add(T::DbWeight::get().writes(6_u64)) } + /// Storage: `Uniques::Asset` (r:1 w:1) + /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) + /// Storage: `XYK::ShareToken` (r:1 w:0) + /// Proof: `XYK::ShareToken` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::Deposit` (r:1 w:1) + /// Proof: `XYKWarehouseLM::Deposit` (`max_values`: None, `max_size`: Some(413), added: 2888, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::YieldFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::YieldFarm` (`max_values`: None, `max_size`: Some(226), added: 2701, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::GlobalFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::GlobalFarm` (`max_values`: None, `max_size`: Some(205), added: 2680, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:2 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:4 w:4) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `XYK::PoolAssets` (r:1 w:0) + /// Proof: `XYK::PoolAssets` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) + /// Storage: `Tokens::Accounts` (r:2 w:2) + /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Storage: `MultiTransactionPayment::AccountCurrencyMap` (r:1 w:1) + /// Proof: `MultiTransactionPayment::AccountCurrencyMap` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `MultiTransactionPayment::AcceptedCurrencies` (r:1 w:0) + /// Proof: `MultiTransactionPayment::AcceptedCurrencies` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Class` (r:1 w:1) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(190), added: 2665, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::NextAssetId` (r:1 w:0) + /// Proof: `AssetRegistry::NextAssetId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::LocationAssets` (r:1 w:0) + /// Proof: `AssetRegistry::LocationAssets` (`max_values`: None, `max_size`: Some(622), added: 3097, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Account` (r:0 w:1) + /// Proof: `Uniques::Account` (`max_values`: None, `max_size`: Some(112), added: 2587, mode: `MaxEncodedLen`) + /// Storage: `Uniques::ItemPriceOf` (r:0 w:1) + /// Proof: `Uniques::ItemPriceOf` (`max_values`: None, `max_size`: Some(113), added: 2588, mode: `MaxEncodedLen`) + /// Storage: `NFT::Items` (r:0 w:1) + /// Proof: `NFT::Items` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) fn withdraw_shares() -> Weight { - Weight::from_ref_time(316_765_000 as u64) - .saturating_add(T::DbWeight::get().reads(19 as u64)) - .saturating_add(T::DbWeight::get().writes(15 as u64)) + // Proof Size summary in bytes: + // Measured: `2928` + // Estimated: `11402` + // Minimum execution time: 383_107_000 picoseconds. + Weight::from_parts(385_120_000, 11402) + .saturating_add(T::DbWeight::get().reads(19_u64)) + .saturating_add(T::DbWeight::get().writes(15_u64)) } + /// Storage: `XYK::ShareToken` (r:1 w:0) + /// Proof: `XYK::ShareToken` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::ActiveYieldFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::ActiveYieldFarm` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::YieldFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::YieldFarm` (`max_values`: None, `max_size`: Some(226), added: 2701, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::GlobalFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::GlobalFarm` (`max_values`: None, `max_size`: Some(205), added: 2680, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:1 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn resume_yield_farm() -> Weight { - Weight::from_ref_time(115_577_000 as u64) - .saturating_add(T::DbWeight::get().reads(7 as u64)) - .saturating_add(T::DbWeight::get().writes(5 as u64)) + // Proof Size summary in bytes: + // Measured: `1469` + // Estimated: `6196` + // Minimum execution time: 123_753_000 picoseconds. + Weight::from_parts(124_758_000, 6196) + .saturating_add(T::DbWeight::get().reads(7_u64)) + .saturating_add(T::DbWeight::get().writes(5_u64)) } } // For backwards compatibility and tests impl WeightInfo for () { + /// Storage: `AssetRegistry::Assets` (r:1 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::FarmSequencer` (r:1 w:1) + /// Proof: `XYKWarehouseLM::FarmSequencer` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Duster::AccountBlacklist` (r:0 w:1) + /// Proof: `Duster::AccountBlacklist` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::GlobalFarm` (r:0 w:1) + /// Proof: `XYKWarehouseLM::GlobalFarm` (`max_values`: None, `max_size`: Some(205), added: 2680, mode: `MaxEncodedLen`) fn create_global_farm() -> Weight { - Weight::from_ref_time(86_072_000 as u64) - .saturating_add(RocksDbWeight::get().reads(4 as u64)) - .saturating_add(RocksDbWeight::get().writes(5 as u64)) + // Proof Size summary in bytes: + // Measured: `473` + // Estimated: `6196` + // Minimum execution time: 93_370_000 picoseconds. + Weight::from_parts(94_187_000, 6196) + .saturating_add(RocksDbWeight::get().reads(4_u64)) + .saturating_add(RocksDbWeight::get().writes(5_u64)) } + /// Storage: `XYKWarehouseLM::GlobalFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::GlobalFarm` (`max_values`: None, `max_size`: Some(205), added: 2680, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:1 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn update_global_farm() -> Weight { - Weight::from_ref_time(91_993_000 as u64) - .saturating_add(RocksDbWeight::get().reads(4 as u64)) - .saturating_add(RocksDbWeight::get().writes(3 as u64)) + // Proof Size summary in bytes: + // Measured: `879` + // Estimated: `6196` + // Minimum execution time: 98_533_000 picoseconds. + Weight::from_parts(99_357_000, 6196) + .saturating_add(RocksDbWeight::get().reads(4_u64)) + .saturating_add(RocksDbWeight::get().writes(3_u64)) } + /// Storage: `XYKWarehouseLM::GlobalFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::GlobalFarm` (`max_values`: None, `max_size`: Some(205), added: 2680, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Duster::AccountBlacklist` (r:1 w:1) + /// Proof: `Duster::AccountBlacklist` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) fn terminate_global_farm() -> Weight { - Weight::from_ref_time(78_247_000 as u64) - .saturating_add(RocksDbWeight::get().reads(4 as u64)) - .saturating_add(RocksDbWeight::get().writes(4 as u64)) + // Proof Size summary in bytes: + // Measured: `1002` + // Estimated: `6196` + // Minimum execution time: 95_311_000 picoseconds. + Weight::from_parts(95_938_000, 6196) + .saturating_add(RocksDbWeight::get().reads(4_u64)) + .saturating_add(RocksDbWeight::get().writes(4_u64)) } + /// Storage: `XYK::ShareToken` (r:1 w:0) + /// Proof: `XYK::ShareToken` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::GlobalFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::GlobalFarm` (`max_values`: None, `max_size`: Some(205), added: 2680, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::ActiveYieldFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::ActiveYieldFarm` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:1 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::FarmSequencer` (r:1 w:1) + /// Proof: `XYKWarehouseLM::FarmSequencer` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::YieldFarm` (r:0 w:1) + /// Proof: `XYKWarehouseLM::YieldFarm` (`max_values`: None, `max_size`: Some(226), added: 2701, mode: `MaxEncodedLen`) fn create_yield_farm() -> Weight { - Weight::from_ref_time(116_579_000 as u64) - .saturating_add(RocksDbWeight::get().reads(7 as u64)) - .saturating_add(RocksDbWeight::get().writes(6 as u64)) + // Proof Size summary in bytes: + // Measured: `1213` + // Estimated: `6196` + // Minimum execution time: 122_647_000 picoseconds. + Weight::from_parts(124_077_000, 6196) + .saturating_add(RocksDbWeight::get().reads(7_u64)) + .saturating_add(RocksDbWeight::get().writes(6_u64)) } + /// Storage: `XYK::ShareToken` (r:1 w:0) + /// Proof: `XYK::ShareToken` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::ActiveYieldFarm` (r:1 w:0) + /// Proof: `XYKWarehouseLM::ActiveYieldFarm` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::YieldFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::YieldFarm` (`max_values`: None, `max_size`: Some(226), added: 2701, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::GlobalFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::GlobalFarm` (`max_values`: None, `max_size`: Some(205), added: 2680, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:1 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn update_yield_farm() -> Weight { - Weight::from_ref_time(120_727_000 as u64) - .saturating_add(RocksDbWeight::get().reads(7 as u64)) - .saturating_add(RocksDbWeight::get().writes(4 as u64)) + // Proof Size summary in bytes: + // Measured: `1361` + // Estimated: `6196` + // Minimum execution time: 129_497_000 picoseconds. + Weight::from_parts(130_156_000, 6196) + .saturating_add(RocksDbWeight::get().reads(7_u64)) + .saturating_add(RocksDbWeight::get().writes(4_u64)) } + /// Storage: `XYKWarehouseLM::ActiveYieldFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::ActiveYieldFarm` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::YieldFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::YieldFarm` (`max_values`: None, `max_size`: Some(226), added: 2701, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::GlobalFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::GlobalFarm` (`max_values`: None, `max_size`: Some(205), added: 2680, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:1 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn stop_yield_farm() -> Weight { - Weight::from_ref_time(112_341_000 as u64) - .saturating_add(RocksDbWeight::get().reads(6 as u64)) - .saturating_add(RocksDbWeight::get().writes(5 as u64)) + // Proof Size summary in bytes: + // Measured: `1195` + // Estimated: `6196` + // Minimum execution time: 124_385_000 picoseconds. + Weight::from_parts(125_118_000, 6196) + .saturating_add(RocksDbWeight::get().reads(6_u64)) + .saturating_add(RocksDbWeight::get().writes(5_u64)) } + /// Storage: `XYKWarehouseLM::ActiveYieldFarm` (r:1 w:0) + /// Proof: `XYKWarehouseLM::ActiveYieldFarm` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::GlobalFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::GlobalFarm` (`max_values`: None, `max_size`: Some(205), added: 2680, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::YieldFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::YieldFarm` (`max_values`: None, `max_size`: Some(226), added: 2701, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn terminate_yield_farm() -> Weight { - Weight::from_ref_time(81_232_000 as u64) - .saturating_add(RocksDbWeight::get().reads(5 as u64)) - .saturating_add(RocksDbWeight::get().writes(4 as u64)) + // Proof Size summary in bytes: + // Measured: `904` + // Estimated: `6196` + // Minimum execution time: 99_601_000 picoseconds. + Weight::from_parts(100_152_000, 6196) + .saturating_add(RocksDbWeight::get().reads(5_u64)) + .saturating_add(RocksDbWeight::get().writes(4_u64)) } + /// Storage: `XYK::ShareToken` (r:1 w:0) + /// Proof: `XYK::ShareToken` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `Tokens::Accounts` (r:3 w:2) + /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::YieldFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::YieldFarm` (`max_values`: None, `max_size`: Some(226), added: 2701, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::GlobalFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::GlobalFarm` (`max_values`: None, `max_size`: Some(205), added: 2680, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:2 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:4 w:3) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `XYK::PoolAssets` (r:1 w:0) + /// Proof: `XYK::PoolAssets` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) + /// Storage: `XYK::TotalLiquidity` (r:1 w:0) + /// Proof: `XYK::TotalLiquidity` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::DepositSequencer` (r:1 w:1) + /// Proof: `XYKWarehouseLM::DepositSequencer` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `MultiTransactionPayment::AccountCurrencyMap` (r:1 w:0) + /// Proof: `MultiTransactionPayment::AccountCurrencyMap` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `NFT::Collections` (r:1 w:0) + /// Proof: `NFT::Collections` (`max_values`: None, `max_size`: Some(99), added: 2574, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Asset` (r:1 w:1) + /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Class` (r:1 w:1) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(190), added: 2665, mode: `MaxEncodedLen`) + /// Storage: `Uniques::CollectionMaxSupply` (r:1 w:0) + /// Proof: `Uniques::CollectionMaxSupply` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::NextAssetId` (r:1 w:0) + /// Proof: `AssetRegistry::NextAssetId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::LocationAssets` (r:1 w:0) + /// Proof: `AssetRegistry::LocationAssets` (`max_values`: None, `max_size`: Some(622), added: 3097, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Account` (r:0 w:1) + /// Proof: `Uniques::Account` (`max_values`: None, `max_size`: Some(112), added: 2587, mode: `MaxEncodedLen`) + /// Storage: `NFT::Items` (r:0 w:1) + /// Proof: `NFT::Items` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::Deposit` (r:0 w:1) + /// Proof: `XYKWarehouseLM::Deposit` (`max_values`: None, `max_size`: Some(413), added: 2888, mode: `MaxEncodedLen`) fn deposit_shares() -> Weight { - Weight::from_ref_time(238_648_000 as u64) - .saturating_add(RocksDbWeight::get().reads(22 as u64)) - .saturating_add(RocksDbWeight::get().writes(13 as u64)) + // Proof Size summary in bytes: + // Measured: `3236` + // Estimated: `11402` + // Minimum execution time: 257_650_000 picoseconds. + Weight::from_parts(258_966_000, 11402) + .saturating_add(RocksDbWeight::get().reads(22_u64)) + .saturating_add(RocksDbWeight::get().writes(13_u64)) } + /// Storage: `Uniques::Asset` (r:1 w:0) + /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) + /// Storage: `XYK::ShareToken` (r:1 w:0) + /// Proof: `XYK::ShareToken` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::Deposit` (r:1 w:1) + /// Proof: `XYKWarehouseLM::Deposit` (`max_values`: None, `max_size`: Some(413), added: 2888, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::YieldFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::YieldFarm` (`max_values`: None, `max_size`: Some(226), added: 2701, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::GlobalFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::GlobalFarm` (`max_values`: None, `max_size`: Some(205), added: 2680, mode: `MaxEncodedLen`) + /// Storage: `XYK::PoolAssets` (r:1 w:0) + /// Proof: `XYK::PoolAssets` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) + /// Storage: `XYK::TotalLiquidity` (r:1 w:0) + /// Proof: `XYK::TotalLiquidity` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:0) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Tokens::Accounts` (r:1 w:0) + /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) fn redeposit_shares() -> Weight { - Weight::from_ref_time(89_879_000 as u64) - .saturating_add(RocksDbWeight::get().reads(9 as u64)) - .saturating_add(RocksDbWeight::get().writes(3 as u64)) + // Proof Size summary in bytes: + // Measured: `2363` + // Estimated: `3878` + // Minimum execution time: 82_242_000 picoseconds. + Weight::from_parts(83_084_000, 3878) + .saturating_add(RocksDbWeight::get().reads(9_u64)) + .saturating_add(RocksDbWeight::get().writes(3_u64)) } + /// Storage: `Uniques::Asset` (r:1 w:0) + /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::Deposit` (r:1 w:1) + /// Proof: `XYKWarehouseLM::Deposit` (`max_values`: None, `max_size`: Some(413), added: 2888, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::YieldFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::YieldFarm` (`max_values`: None, `max_size`: Some(226), added: 2701, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::GlobalFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::GlobalFarm` (`max_values`: None, `max_size`: Some(205), added: 2680, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:1 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:3 w:3) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn claim_rewards() -> Weight { - Weight::from_ref_time(148_960_000 as u64) - .saturating_add(RocksDbWeight::get().reads(8 as u64)) - .saturating_add(RocksDbWeight::get().writes(6 as u64)) + // Proof Size summary in bytes: + // Measured: `2097` + // Estimated: `8799` + // Minimum execution time: 176_232_000 picoseconds. + Weight::from_parts(177_357_000, 8799) + .saturating_add(RocksDbWeight::get().reads(8_u64)) + .saturating_add(RocksDbWeight::get().writes(6_u64)) } + /// Storage: `Uniques::Asset` (r:1 w:1) + /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) + /// Storage: `XYK::ShareToken` (r:1 w:0) + /// Proof: `XYK::ShareToken` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::Deposit` (r:1 w:1) + /// Proof: `XYKWarehouseLM::Deposit` (`max_values`: None, `max_size`: Some(413), added: 2888, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::YieldFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::YieldFarm` (`max_values`: None, `max_size`: Some(226), added: 2701, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::GlobalFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::GlobalFarm` (`max_values`: None, `max_size`: Some(205), added: 2680, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:2 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:4 w:4) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `XYK::PoolAssets` (r:1 w:0) + /// Proof: `XYK::PoolAssets` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) + /// Storage: `Tokens::Accounts` (r:2 w:2) + /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Storage: `MultiTransactionPayment::AccountCurrencyMap` (r:1 w:1) + /// Proof: `MultiTransactionPayment::AccountCurrencyMap` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `MultiTransactionPayment::AcceptedCurrencies` (r:1 w:0) + /// Proof: `MultiTransactionPayment::AcceptedCurrencies` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Class` (r:1 w:1) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(190), added: 2665, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::NextAssetId` (r:1 w:0) + /// Proof: `AssetRegistry::NextAssetId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::LocationAssets` (r:1 w:0) + /// Proof: `AssetRegistry::LocationAssets` (`max_values`: None, `max_size`: Some(622), added: 3097, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Account` (r:0 w:1) + /// Proof: `Uniques::Account` (`max_values`: None, `max_size`: Some(112), added: 2587, mode: `MaxEncodedLen`) + /// Storage: `Uniques::ItemPriceOf` (r:0 w:1) + /// Proof: `Uniques::ItemPriceOf` (`max_values`: None, `max_size`: Some(113), added: 2588, mode: `MaxEncodedLen`) + /// Storage: `NFT::Items` (r:0 w:1) + /// Proof: `NFT::Items` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) fn withdraw_shares() -> Weight { - Weight::from_ref_time(316_765_000 as u64) - .saturating_add(RocksDbWeight::get().reads(19 as u64)) - .saturating_add(RocksDbWeight::get().writes(15 as u64)) + // Proof Size summary in bytes: + // Measured: `2928` + // Estimated: `11402` + // Minimum execution time: 383_107_000 picoseconds. + Weight::from_parts(385_120_000, 11402) + .saturating_add(RocksDbWeight::get().reads(19_u64)) + .saturating_add(RocksDbWeight::get().writes(15_u64)) } + /// Storage: `XYK::ShareToken` (r:1 w:0) + /// Proof: `XYK::ShareToken` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::ActiveYieldFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::ActiveYieldFarm` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::YieldFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::YieldFarm` (`max_values`: None, `max_size`: Some(226), added: 2701, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::GlobalFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::GlobalFarm` (`max_values`: None, `max_size`: Some(205), added: 2680, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:1 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn resume_yield_farm() -> Weight { - Weight::from_ref_time(115_577_000 as u64) - .saturating_add(RocksDbWeight::get().reads(7 as u64)) - .saturating_add(RocksDbWeight::get().writes(5 as u64)) + // Proof Size summary in bytes: + // Measured: `1469` + // Estimated: `6196` + // Minimum execution time: 123_753_000 picoseconds. + Weight::from_parts(124_758_000, 6196) + .saturating_add(RocksDbWeight::get().reads(7_u64)) + .saturating_add(RocksDbWeight::get().writes(5_u64)) } } diff --git a/pallets/xyk/Cargo.toml b/pallets/xyk/Cargo.toml deleted file mode 100644 index b52484ef826..00000000000 --- a/pallets/xyk/Cargo.toml +++ /dev/null @@ -1,75 +0,0 @@ -[package] -name = 'pallet-xyk' -version = "6.2.8" -description = 'XYK automated market maker' -authors = ['GalacticCouncil'] -edition = '2021' -homepage = 'https://github.com/galacticcouncil/basilisk-node' -license = 'Apache 2.0' -repository = 'https://github.com/galacticcouncil/basilisk-node' - -[package.metadata.docs.rs] -targets = ['x86_64-unknown-linux-gnu'] - -[build-dependencies] -substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38" } - -[dependencies] -codec = { default-features = false, features = ["derive"], package = "parity-scale-codec", version = "3.1.5" } -scale-info = { version = "2.3.1", default-features = false, features = ["derive"] } -primitive-types = { default-features = false, version = "0.12.0" } -serde = { features = ['derive'], optional = true, version = '1.0.136' } -log = { version = "0.4.17", default-features = false } - -hydra-dx-math = { workspace = true } - -# Local dependencies -primitives = {path = '../../primitives', default-features = false} - -# ORML dependencies -orml-tokens = { git = "https://github.com/open-web3-stack/open-runtime-module-library", branch = "polkadot-v0.9.38", default-features = false } -orml-traits = { git = "https://github.com/open-web3-stack/open-runtime-module-library", branch = "polkadot-v0.9.38", default-features = false } -orml-utilities = { git = "https://github.com/open-web3-stack/open-runtime-module-library", branch = "polkadot-v0.9.38", default-features = false } - -# HydraDX dependencies -hydradx-traits = { workspace = true } - -# Substrate dependencies -frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false, optional = true } -frame-support = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -frame-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false, optional = true } -sp-core = { git = 'https://github.com/paritytech/substrate', branch = "polkadot-v0.9.38", default-features = false } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-std = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } - -[dev-dependencies] -pallet-asset-registry = { workspace = true } -sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38" } -proptest = "1.0.0" - -[features] -default = ['std'] -runtime-benchmarks = [ - "frame-benchmarking", - "frame-system/runtime-benchmarks", - "frame-support/runtime-benchmarks", -] -std = [ - 'serde', - 'codec/std', - 'frame-support/std', - 'frame-system/std', - 'sp-runtime/std', - 'sp-core/std', - 'sp-std/std', - 'orml-traits/std', - 'primitives/std', - "hydradx-traits/std", - 'orml-tokens/std', - 'frame-benchmarking/std', - "scale-info/std", - "pallet-asset-registry/std", -] -try-runtime = ["frame-support/try-runtime"] diff --git a/pallets/xyk/README.md b/pallets/xyk/README.md deleted file mode 100644 index c29db36c790..00000000000 --- a/pallets/xyk/README.md +++ /dev/null @@ -1,25 +0,0 @@ -### AMM XYK pallet - -## Overview -AMM pallet provides functionality for managing liquidity pool and executing trades. - -This pallet implements AMM Api trait therefore it is possible to plug this pool implementation -into the exchange pallet. - -### Terminology - -- **Currency** - implementation of fungible multi-currency system -- **AssetPairAccount** / **AssetPairAccountId** - support for creating share accounts for asset pairs. -- **NativeAssetId** - asset id native currency -- **ShareToken** - asset id from asset registry for an asset pair -- **TotalLiquidity** - total liquidity in a pool identified by asset pair account id -- **PoolAssets** - asset pair in a pool identified by asset pair account id - -### Interface - -#### Dispatchable functions -- `create_pool` -- `add_liquidity` -- `remove_liquidity` -- `sell` -- `buy` diff --git a/pallets/xyk/src/benchmarking.rs b/pallets/xyk/src/benchmarking.rs deleted file mode 100644 index 970434f4a8f..00000000000 --- a/pallets/xyk/src/benchmarking.rs +++ /dev/null @@ -1,144 +0,0 @@ -// This file is part of Basilisk-node. - -// Copyright (C) 2022 Parity Technologies (UK) Ltd. -// SPDX-License-Identifier: Apache-2.0 - -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#![cfg(feature = "runtime-benchmarks")] - -use super::*; - -use frame_benchmarking::{account, benchmarks}; -use frame_system::RawOrigin; -use sp_std::prelude::*; - -use crate::Pallet as XYK; - -use primitives::{AssetId, Balance}; - -const SEED: u32 = 1; - -fn funded_account(name: &'static str, index: u32) -> T::AccountId { - let caller: T::AccountId = account(name, index, SEED); - T::Currency::update_balance(1, &caller, 1_000_000_000_000_000).unwrap(); - T::Currency::update_balance(2, &caller, 1_000_000_000_000_000).unwrap(); - caller -} - -benchmarks! { - create_pool { - let caller = funded_account::("caller", 0); - - let asset_a: AssetId = 1; - let asset_b: AssetId = 2; - let amount_a : Balance = 10 * 1_000_000_000; - let amount_b : Balance = 20 * 1_000_000_000; - - }: _(RawOrigin::Signed(caller.clone()), asset_a, amount_a, asset_b, amount_b) - verify { - assert_eq!(T::Currency::free_balance(asset_a, &caller), 999990000000000); - } - - add_liquidity { - let maker = funded_account::("maker", 0); - let caller = funded_account::("caller", 0); - - let asset_a: AssetId = 1; - let asset_b: AssetId = 2; - let amount : Balance = 10 * 1_000_000_000; - let max_limit : Balance = 10 * 1_000_000_000_000; - - XYK::::create_pool(RawOrigin::Signed(maker).into(), asset_a, 1_000_000_000,asset_b, 1_000_000_000)?; - - }: _(RawOrigin::Signed(caller.clone()), asset_a, asset_b, amount, max_limit) - verify { - assert_eq!(T::Currency::free_balance(asset_a, &caller), 999990000000000); - assert_eq!(T::Currency::free_balance(asset_b, &caller), 999990000000000 - 1); // Due to rounding in favor of pool - } - - remove_liquidity { - let maker = funded_account::("maker", 0); - let caller = funded_account::("caller", 0); - - let asset_a: AssetId = 1; - let asset_b: AssetId = 2; - let amount : Balance = 1_000_000_000; - - XYK::::create_pool(RawOrigin::Signed(maker).into(), 1, 10_000_000_000, 2, 20_000_000_000)?; - XYK::::add_liquidity(RawOrigin::Signed(caller.clone()).into(), 1, 2, 5_000_000_000, 10_100_000_000)?; - - assert_eq!(T::Currency::free_balance(asset_a, &caller), 999995000000000); - assert_eq!(T::Currency::free_balance(asset_b, &caller), 999990000000000 - 1);// Due to rounding in favor of pool - - }: _(RawOrigin::Signed(caller.clone()), asset_a, asset_b, amount) - verify { - assert_eq!(T::Currency::free_balance(asset_a, &caller), 999996000000000); - assert_eq!(T::Currency::free_balance(asset_b, &caller), 999992000000000 - 1);// Due to rounding in favor of pool - } - - sell { - let maker = funded_account::("maker", 0); - let caller = funded_account::("caller", 0); - - let asset_a: AssetId = 1; - let asset_b: AssetId = 2; - let amount : Balance = 1_000_000_000; - let discount = false; - - let min_bought: Balance = 10 * 1_000; - - XYK::::create_pool(RawOrigin::Signed(maker).into(), asset_a, 1_000_000_000_000, asset_b, 3_000_000_000_000)?; - - }: _(RawOrigin::Signed(caller.clone()), asset_a, asset_b, amount, min_bought, discount) - verify{ - assert_eq!(T::Currency::free_balance(asset_a, &caller), 999999000000000); - } - - buy { - let maker = funded_account::("maker", 0); - let caller = funded_account::("caller", 0); - - let asset_a: AssetId = 1; - let asset_b: AssetId = 2; - let amount : Balance = 1_000_000_000; - let discount = false; - - let max_sold: Balance = 6_000_000_000; - - XYK::::create_pool(RawOrigin::Signed(maker).into(), asset_a, 1_000_000_000_000, asset_b, 3_000_000_000_000)?; - - }: _(RawOrigin::Signed(caller.clone()), asset_a, asset_b, amount, max_sold, discount) - verify{ - assert_eq!(T::Currency::free_balance(asset_a, &caller), 1000001000000000); - } -} - -#[cfg(test)] -mod tests { - use super::*; - use crate::tests::mock::{ExtBuilder, System, Test}; - use frame_support::assert_ok; - - #[test] - fn test_benchmarks() { - ExtBuilder::default().build().execute_with(|| { - System::set_block_number(1); - assert_ok!(Pallet::::test_benchmark_create_pool()); - assert_ok!(Pallet::::test_benchmark_add_liquidity()); - assert_ok!(Pallet::::test_benchmark_remove_liquidity()); - assert_ok!(Pallet::::test_benchmark_sell()); - assert_ok!(Pallet::::test_benchmark_buy()); - }); - } -} diff --git a/pallets/xyk/src/impls.rs b/pallets/xyk/src/impls.rs deleted file mode 100644 index 8bba9f9a689..00000000000 --- a/pallets/xyk/src/impls.rs +++ /dev/null @@ -1,32 +0,0 @@ -use hydradx_traits::pools::SpotPriceProvider; -use hydradx_traits::AMM; -use orml_traits::MultiCurrency; -use primitives::asset::AssetPair; -use primitives::{AssetId, Price}; -use sp_runtime::FixedPointNumber; -use sp_std::marker::PhantomData; - -pub struct XYKSpotPrice(PhantomData); - -impl SpotPriceProvider for XYKSpotPrice { - type Price = Price; - - fn pair_exists(asset_a: AssetId, asset_b: AssetId) -> bool { - >::exists(AssetPair::new(asset_b, asset_a)) - } - - fn spot_price(asset_a: AssetId, asset_b: AssetId) -> Option { - if Self::pair_exists(asset_a, asset_b) { - let pair_account = >::get_pair_id(AssetPair { - asset_out: asset_a, - asset_in: asset_b, - }); - let asset_a_reserve = T::Currency::free_balance(asset_a, &pair_account); - let asset_b_reserve = T::Currency::free_balance(asset_b, &pair_account); - - Price::checked_from_rational(asset_a_reserve, asset_b_reserve) - } else { - None - } - } -} diff --git a/pallets/xyk/src/lib.rs b/pallets/xyk/src/lib.rs deleted file mode 100644 index e8cede03767..00000000000 --- a/pallets/xyk/src/lib.rs +++ /dev/null @@ -1,1099 +0,0 @@ -// This file is part of Basilisk-node. - -// Copyright (C) 2020-2022 Intergalactic, Limited (GIB). -// SPDX-License-Identifier: Apache-2.0 - -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -//! # XYK Pallet -//! -//! ## Overview -//! -//! XYK pallet provides functionality for managing liquidity pool and executing trades. -//! -//! This pallet implements AMM Api trait therefore it is possible to plug this pool implementation -//! into the exchange pallet. - -#![cfg_attr(not(feature = "std"), no_std)] -#![allow(clippy::unused_unit)] -#![allow(clippy::upper_case_acronyms)] - -use frame_support::sp_runtime::{traits::Zero, DispatchError}; -use frame_support::{dispatch::DispatchResult, ensure, traits::Get, transactional}; -use frame_system::ensure_signed; -use hydradx_traits::{ - AMMPosition, AMMTransfer, AssetPairAccountIdFor, CanCreatePool, OnCreatePoolHandler, OnLiquidityChangedHandler, - OnTradeHandler, Source, AMM, -}; -use primitives::{asset::AssetPair, AssetId, Balance}; -use sp_std::{vec, vec::Vec}; - -use orml_traits::{MultiCurrency, MultiCurrencyExtended}; -use primitives::Amount; - -#[cfg(test)] -mod tests; - -mod benchmarking; - -mod impls; -mod trade_execution; -pub mod weights; - -pub use impls::XYKSpotPrice; - -use weights::WeightInfo; - -/// Oracle source identifier for this pallet. -pub const SOURCE: Source = *b"snek/xyk"; - -// Re-export pallet items so that they can be accessed from the crate namespace. -pub use pallet::*; - -#[frame_support::pallet] -pub mod pallet { - use super::*; - use frame_support::pallet_prelude::*; - use frame_system::pallet_prelude::OriginFor; - use hydradx_traits::{pools::DustRemovalAccountWhitelist, registry::ShareTokenRegistry}; - - #[pallet::pallet] - pub struct Pallet(_); - - #[pallet::hooks] - impl Hooks for Pallet {} - - #[pallet::config] - pub trait Config: frame_system::Config { - type RuntimeEvent: From> + IsType<::RuntimeEvent>; - - /// Registry support - type AssetRegistry: ShareTokenRegistry, Balance, DispatchError>; - - /// Share token support - type AssetPairAccountId: AssetPairAccountIdFor; - - /// Multi currency for transfer of currencies - type Currency: MultiCurrencyExtended; - - /// Native Asset Id - #[pallet::constant] - type NativeAssetId: Get; - - /// Weight information for the extrinsics. - type WeightInfo: WeightInfo; - - /// Trading fee rate - #[pallet::constant] - type GetExchangeFee: Get<(u32, u32)>; - - /// Minimum trading limit - #[pallet::constant] - type MinTradingLimit: Get; - - /// Minimum pool liquidity - #[pallet::constant] - type MinPoolLiquidity: Get; - - /// Max fraction of pool to sell in single transaction - #[pallet::constant] - type MaxInRatio: Get; - - /// Max fraction of pool to buy in single transaction - #[pallet::constant] - type MaxOutRatio: Get; - - /// Called to ensure that pool can be created - type CanCreatePool: CanCreatePool; - - /// AMM handlers - type AMMHandler: OnCreatePoolHandler - + OnTradeHandler - + OnLiquidityChangedHandler; - - /// Discounted fee - type DiscountedFee: Get<(u32, u32)>; - - /// Account whitelist manager to exclude pool accounts from dusting mechanism. - type NonDustableWhitelistHandler: DustRemovalAccountWhitelist; - } - - #[pallet::error] - pub enum Error { - /// It is not allowed to create a pool between same assets. - CannotCreatePoolWithSameAssets, - - /// Liquidity has not reached the required minimum. - InsufficientLiquidity, - - /// Amount is less than min trading limit. - InsufficientTradingAmount, - - /// Liquidity is zero. - ZeroLiquidity, - - /// It is not allowed to create a pool with zero initial price. - /// Not used, kept for backward compatibility - ZeroInitialPrice, - - /// Overflow - /// Not used, kept for backward compatibility - CreatePoolAssetAmountInvalid, - - /// Overflow - InvalidMintedLiquidity, // No tests - but it is currently not possible this error to occur due to previous checks in the code. - - /// Overflow - InvalidLiquidityAmount, // no tests - it is currently not possible this error to occur due to previous checks in the code. - - /// Asset amount has exceeded given limit. - AssetAmountExceededLimit, - - /// Asset amount has not reached given limit. - AssetAmountNotReachedLimit, - - /// Asset balance is not sufficient. - InsufficientAssetBalance, - - /// Not enough asset liquidity in the pool. - InsufficientPoolAssetBalance, - - /// Not enough core asset liquidity in the pool. - InsufficientNativeCurrencyBalance, - - /// Liquidity pool for given assets does not exist. - TokenPoolNotFound, - - /// Liquidity pool for given assets already exists. - TokenPoolAlreadyExists, - - /// Overflow - AddAssetAmountInvalid, // no tests - /// Overflow - RemoveAssetAmountInvalid, // no tests - /// Overflow - SellAssetAmountInvalid, // no tests - /// Overflow - BuyAssetAmountInvalid, // no tests - - /// Overflow - FeeAmountInvalid, - - /// Overflow - CannotApplyDiscount, - - /// Max fraction of pool to buy in single transaction has been exceeded. - MaxOutRatioExceeded, - /// Max fraction of pool to sell in single transaction has been exceeded. - MaxInRatioExceeded, - - /// Overflow - Overflow, - - /// Pool cannot be created due to outside factors. - CannotCreatePool, - } - - #[pallet::event] - #[pallet::generate_deposit(pub(crate) fn deposit_event)] - pub enum Event { - /// New liquidity was provided to the pool. - LiquidityAdded { - who: T::AccountId, - asset_a: AssetId, - asset_b: AssetId, - amount_a: Balance, - amount_b: Balance, - }, - - /// Liquidity was removed from the pool. - LiquidityRemoved { - who: T::AccountId, - asset_a: AssetId, - asset_b: AssetId, - shares: Balance, - }, - - /// Pool was created. - PoolCreated { - who: T::AccountId, - asset_a: AssetId, - asset_b: AssetId, - initial_shares_amount: Balance, - share_token: AssetId, - pool: T::AccountId, - }, - - /// Pool was destroyed. - PoolDestroyed { - who: T::AccountId, - asset_a: AssetId, - asset_b: AssetId, - share_token: AssetId, - pool: T::AccountId, - }, - - /// Asset sale executed. - SellExecuted { - who: T::AccountId, - asset_in: AssetId, - asset_out: AssetId, - amount: Balance, - sale_price: Balance, - fee_asset: AssetId, - fee_amount: Balance, - pool: T::AccountId, - }, - - /// Asset purchase executed. - BuyExecuted { - who: T::AccountId, - asset_out: AssetId, - asset_in: AssetId, - amount: Balance, - buy_price: Balance, - fee_asset: AssetId, - fee_amount: Balance, - pool: T::AccountId, - }, - } - - /// Asset id storage for shared pool tokens - #[pallet::storage] - #[pallet::getter(fn share_token)] - pub(crate) type ShareToken = StorageMap<_, Blake2_128Concat, T::AccountId, AssetId, ValueQuery>; - - /// Total liquidity in a pool. - #[pallet::storage] - #[pallet::getter(fn total_liquidity)] - pub(crate) type TotalLiquidity = StorageMap<_, Blake2_128Concat, T::AccountId, Balance, ValueQuery>; - - /// Asset pair in a pool. - #[pallet::storage] - #[pallet::getter(fn pool_assets)] - pub(crate) type PoolAssets = - StorageMap<_, Blake2_128Concat, T::AccountId, (AssetId, AssetId), OptionQuery>; - - #[pallet::call] - impl Pallet { - /// Create new pool for given asset pair. - /// - /// Registers new pool for given asset pair (`asset a` and `asset b`) in asset registry. - /// Asset registry creates new id or returns previously created one if such pool existed before. - /// - /// Pool is created with initial liquidity provided by `origin`. - /// Shares are issued with specified initial price and represents proportion of asset in the pool. - /// - /// Emits `PoolCreated` event when successful. - #[pallet::call_index(0)] - #[pallet::weight(::WeightInfo::create_pool())] - pub fn create_pool( - origin: OriginFor, - asset_a: AssetId, - amount_a: Balance, - asset_b: AssetId, - amount_b: Balance, - ) -> DispatchResult { - let who = ensure_signed(origin)?; - - ensure!( - T::CanCreatePool::can_create(asset_a, asset_b), - Error::::CannotCreatePool - ); - - ensure!( - amount_a >= T::MinPoolLiquidity::get() && amount_b >= T::MinPoolLiquidity::get(), - Error::::InsufficientLiquidity - ); - - ensure!(asset_a != asset_b, Error::::CannotCreatePoolWithSameAssets); - - let asset_pair = AssetPair { - asset_in: asset_a, - asset_out: asset_b, - }; - - ensure!(!Self::exists(asset_pair), Error::::TokenPoolAlreadyExists); - - let shares_added = if asset_a < asset_b { amount_a } else { amount_b }; - - ensure!( - T::Currency::free_balance(asset_a, &who) >= amount_a, - Error::::InsufficientAssetBalance - ); - - ensure!( - T::Currency::free_balance(asset_b, &who) >= amount_b, - Error::::InsufficientAssetBalance - ); - - let pair_account = Self::get_pair_id(asset_pair); - - let token_name = asset_pair.name(); - - let share_token = T::AssetRegistry::get_or_create_shared_asset( - token_name, - vec![asset_a, asset_b], - T::MinPoolLiquidity::get(), - )?; - - let _ = T::AMMHandler::on_create_pool(asset_pair.asset_in, asset_pair.asset_out); - - T::NonDustableWhitelistHandler::add_account(&pair_account)?; - - >::insert(&pair_account, share_token); - >::insert(&pair_account, (asset_a, asset_b)); - - Self::deposit_event(Event::PoolCreated { - who: who.clone(), - asset_a, - asset_b, - initial_shares_amount: shares_added, - share_token, - pool: pair_account.clone(), - }); - - T::Currency::transfer(asset_a, &who, &pair_account, amount_a)?; - T::Currency::transfer(asset_b, &who, &pair_account, amount_b)?; - - T::Currency::deposit(share_token, &who, shares_added)?; - - >::insert(&pair_account, shares_added); - - Ok(()) - } - - /// Add liquidity to previously created asset pair pool. - /// - /// Shares are issued with current price. - /// - /// Emits `LiquidityAdded` event when successful. - #[pallet::call_index(1)] - #[pallet::weight( - ::WeightInfo::add_liquidity() - .saturating_add(T::AMMHandler::on_liquidity_changed_weight()) - )] - #[transactional] - pub fn add_liquidity( - origin: OriginFor, - asset_a: AssetId, - asset_b: AssetId, - amount_a: Balance, - amount_b_max_limit: Balance, - ) -> DispatchResult { - let who = ensure_signed(origin)?; - - let asset_pair = AssetPair { - asset_in: asset_a, - asset_out: asset_b, - }; - - ensure!(Self::exists(asset_pair), Error::::TokenPoolNotFound); - - ensure!( - amount_a >= T::MinTradingLimit::get(), - Error::::InsufficientTradingAmount - ); - - ensure!(!amount_b_max_limit.is_zero(), Error::::ZeroLiquidity); - - ensure!( - T::Currency::free_balance(asset_a, &who) >= amount_a, - Error::::InsufficientAssetBalance - ); - - let pair_account = Self::get_pair_id(asset_pair); - - let share_token = Self::share_token(&pair_account); - - let account_shares = T::Currency::free_balance(share_token, &who); - - let asset_a_reserve = T::Currency::free_balance(asset_a, &pair_account); - let asset_b_reserve = T::Currency::free_balance(asset_b, &pair_account); - let share_issuance = Self::total_liquidity(&pair_account); - - let amount_b = hydra_dx_math::xyk::calculate_liquidity_in(asset_a_reserve, asset_b_reserve, amount_a) - .map_err(|_| Error::::AddAssetAmountInvalid)?; - - ensure!( - T::Currency::free_balance(asset_b, &who) >= amount_b, - Error::::InsufficientAssetBalance - ); - - ensure!(amount_b <= amount_b_max_limit, Error::::AssetAmountExceededLimit); - - let shares_added = hydra_dx_math::xyk::calculate_shares(asset_a_reserve, amount_a, share_issuance) - .ok_or(Error::::Overflow)?; - - ensure!(!shares_added.is_zero(), Error::::InvalidMintedLiquidity); - - // Make sure that account share liquidity is at least MinPoolLiquidity - ensure!( - account_shares - .checked_add(shares_added) - .ok_or(Error::::InvalidMintedLiquidity)? - >= T::MinPoolLiquidity::get(), - Error::::InsufficientLiquidity - ); - - let liquidity_amount = share_issuance - .checked_add(shares_added) - .ok_or(Error::::InvalidLiquidityAmount)?; - - T::Currency::transfer(asset_a, &who, &pair_account, amount_a)?; - T::Currency::transfer(asset_b, &who, &pair_account, amount_b)?; - - T::Currency::deposit(share_token, &who, shares_added)?; - - >::insert(&pair_account, liquidity_amount); - - let liquidity_a = T::Currency::total_balance(asset_a, &pair_account); - let liquidity_b = T::Currency::total_balance(asset_b, &pair_account); - T::AMMHandler::on_liquidity_changed(SOURCE, asset_a, asset_b, amount_a, amount_b, liquidity_a, liquidity_b) - .map_err(|(_w, e)| e)?; - - Self::deposit_event(Event::LiquidityAdded { - who, - asset_a, - asset_b, - amount_a, - amount_b, - }); - - Ok(()) - } - - /// Remove liquidity from specific liquidity pool in the form of burning shares. - /// - /// If liquidity in the pool reaches 0, it is destroyed. - /// - /// Emits 'LiquidityRemoved' when successful. - /// Emits 'PoolDestroyed' when pool is destroyed. - #[pallet::call_index(2)] - #[pallet::weight( - ::WeightInfo::remove_liquidity() - .saturating_add(T::AMMHandler::on_liquidity_changed_weight()) - )] - #[transactional] - pub fn remove_liquidity( - origin: OriginFor, - asset_a: AssetId, - asset_b: AssetId, - liquidity_amount: Balance, - ) -> DispatchResult { - let who = ensure_signed(origin)?; - - let asset_pair = AssetPair { - asset_in: asset_a, - asset_out: asset_b, - }; - - ensure!(!liquidity_amount.is_zero(), Error::::ZeroLiquidity); - - ensure!(Self::exists(asset_pair), Error::::TokenPoolNotFound); - - let pair_account = Self::get_pair_id(asset_pair); - - let share_token = Self::share_token(&pair_account); - - let total_shares = Self::total_liquidity(&pair_account); - - let account_shares = T::Currency::free_balance(share_token, &who); - - ensure!(total_shares >= liquidity_amount, Error::::InsufficientLiquidity); - - ensure!(account_shares >= liquidity_amount, Error::::InsufficientAssetBalance); - - // Account's liquidity left should be either 0 or at least MinPoolLiquidity - ensure!( - (account_shares.saturating_sub(liquidity_amount)) >= T::MinPoolLiquidity::get() - || (account_shares == liquidity_amount), - Error::::InsufficientLiquidity - ); - - let asset_a_reserve = T::Currency::free_balance(asset_a, &pair_account); - let asset_b_reserve = T::Currency::free_balance(asset_b, &pair_account); - - let liquidity_out = hydra_dx_math::xyk::calculate_liquidity_out( - asset_a_reserve, - asset_b_reserve, - liquidity_amount, - total_shares, - ) - .map_err(|_| Error::::RemoveAssetAmountInvalid)?; - - let (remove_amount_a, remove_amount_b) = liquidity_out; - - ensure!( - T::Currency::free_balance(asset_a, &pair_account) >= remove_amount_a, - Error::::InsufficientPoolAssetBalance - ); - ensure!( - T::Currency::free_balance(asset_b, &pair_account) >= remove_amount_b, - Error::::InsufficientPoolAssetBalance - ); - - let liquidity_left = total_shares - .checked_sub(liquidity_amount) - .ok_or(Error::::InvalidLiquidityAmount)?; - - T::Currency::transfer(asset_a, &pair_account, &who, remove_amount_a)?; - T::Currency::transfer(asset_b, &pair_account, &who, remove_amount_b)?; - - T::Currency::withdraw(share_token, &who, liquidity_amount)?; - - >::insert(&pair_account, liquidity_left); - - let liquidity_a = T::Currency::total_balance(asset_a, &pair_account); - let liquidity_b = T::Currency::total_balance(asset_b, &pair_account); - T::AMMHandler::on_liquidity_changed( - SOURCE, - asset_a, - asset_b, - remove_amount_a, - remove_amount_b, - liquidity_a, - liquidity_b, - ) - .map_err(|(_w, e)| e)?; - - Self::deposit_event(Event::LiquidityRemoved { - who: who.clone(), - asset_a, - asset_b, - shares: liquidity_amount, - }); - - if liquidity_left == 0 { - >::remove(&pair_account); - >::remove(&pair_account); - >::remove(&pair_account); - - // Ignore the failure, this cant stop liquidity removal - let r = T::NonDustableWhitelistHandler::remove_account(&pair_account); - - if r.is_err() { - log::trace!( - target: "xyk::remova_liquidity", "XYK: Failed to remove account {:?} from dust-removal whitelist. Reason {:?}", - pair_account, - r - ); - } - - Self::deposit_event(Event::PoolDestroyed { - who, - asset_a, - asset_b, - share_token, - pool: pair_account, - }); - } - - Ok(()) - } - - /// Trade asset in for asset out. - /// - /// Executes a swap of `asset_in` for `asset_out`. Price is determined by the liquidity pool. - /// - /// `max_limit` - minimum amount of `asset_out` / amount of asset_out to be obtained from the pool in exchange for `asset_in`. - /// - /// Emits `SellExecuted` when successful. - #[pallet::call_index(3)] - #[pallet::weight(::WeightInfo::sell() + ::AMMHandler::on_trade_weight())] - pub fn sell( - origin: OriginFor, - asset_in: AssetId, - asset_out: AssetId, - amount: Balance, - max_limit: Balance, - discount: bool, - ) -> DispatchResult { - let who = ensure_signed(origin)?; - - >::sell(&who, AssetPair { asset_in, asset_out }, amount, max_limit, discount)?; - - Ok(()) - } - - /// Trade asset in for asset out. - /// - /// Executes a swap of `asset_in` for `asset_out`. Price is determined by the liquidity pool. - /// - /// `max_limit` - maximum amount of `asset_in` to be sold in exchange for `asset_out`. - /// - /// Emits `BuyExecuted` when successful. - #[pallet::call_index(4)] - #[pallet::weight(::WeightInfo::buy() + ::AMMHandler::on_trade_weight())] - pub fn buy( - origin: OriginFor, - asset_out: AssetId, - asset_in: AssetId, - amount: Balance, - max_limit: Balance, - discount: bool, - ) -> DispatchResult { - let who = ensure_signed(origin)?; - - >::buy(&who, AssetPair { asset_in, asset_out }, amount, max_limit, discount)?; - - Ok(()) - } - } -} - -impl Pallet { - /// Return balance of each asset in selected liquidity pool. - pub fn get_pool_balances(pool_address: T::AccountId) -> Option> { - let mut balances = Vec::new(); - - if let Some(assets) = Self::get_pool_assets(&pool_address) { - for item in &assets { - let reserve = T::Currency::free_balance(*item, &pool_address); - balances.push((*item, reserve)); - } - } - Some(balances) - } - /// Calculate discounted trade fee - fn calculate_discounted_fee(amount: Balance) -> Result { - Ok( - hydra_dx_math::fee::calculate_pool_trade_fee(amount, T::DiscountedFee::get()) - .ok_or::>(Error::::FeeAmountInvalid)?, - ) - } - - /// Calculate trade fee - fn calculate_fee(amount: Balance) -> Result { - let fee = T::GetExchangeFee::get(); - Ok(hydra_dx_math::fee::calculate_pool_trade_fee(amount, (fee.0, fee.1)) - .ok_or::>(Error::::FeeAmountInvalid)?) - } - - pub fn pair_account_from_assets(asset_a: AssetId, asset_b: AssetId) -> T::AccountId { - T::AssetPairAccountId::from_assets(asset_a, asset_b, "xyk") - } -} - -// Implementation of AMM API which makes possible to plug the AMM pool into the exchange pallet. -impl AMM for Pallet { - fn exists(assets: AssetPair) -> bool { - >::contains_key(&Self::get_pair_id(assets)) - } - - fn get_pair_id(assets: AssetPair) -> T::AccountId { - Self::pair_account_from_assets(assets.asset_in, assets.asset_out) - } - - fn get_share_token(assets: AssetPair) -> AssetId { - let pair_account = Self::get_pair_id(assets); - Self::share_token(&pair_account) - } - - fn get_pool_assets(pool_account_id: &T::AccountId) -> Option> { - let maybe_assets = >::get(pool_account_id); - maybe_assets.map(|assets| vec![assets.0, assets.1]) - } - - fn get_spot_price_unchecked(asset_a: AssetId, asset_b: AssetId, amount: Balance) -> Balance { - let pair_account = Self::get_pair_id(AssetPair { - asset_out: asset_a, - asset_in: asset_b, - }); - - let asset_a_reserve = T::Currency::free_balance(asset_a, &pair_account); - let asset_b_reserve = T::Currency::free_balance(asset_b, &pair_account); - - hydra_dx_math::xyk::calculate_spot_price(asset_a_reserve, asset_b_reserve, amount) - .unwrap_or_else(|_| Balance::zero()) - } - - /// Validate a sell. Perform all necessary checks and calculations. - /// No storage changes are performed yet. - /// - /// Return `AMMTransfer` with all info needed to execute the transaction. - fn validate_sell( - who: &T::AccountId, - assets: AssetPair, - amount: Balance, - min_bought: Balance, - discount: bool, - ) -> Result, sp_runtime::DispatchError> { - ensure!( - amount >= T::MinTradingLimit::get(), - Error::::InsufficientTradingAmount - ); - - ensure!(Self::exists(assets), Error::::TokenPoolNotFound); - - ensure!( - T::Currency::free_balance(assets.asset_in, who) >= amount, - Error::::InsufficientAssetBalance - ); - - // If discount, pool for Sell asset and native asset must exist - if discount { - ensure!( - Self::exists(AssetPair { - asset_in: assets.asset_in, - asset_out: T::NativeAssetId::get() - }), - Error::::CannotApplyDiscount - ); - } - - let pair_account = Self::get_pair_id(assets); - - let asset_in_reserve = T::Currency::free_balance(assets.asset_in, &pair_account); - let asset_out_reserve = T::Currency::free_balance(assets.asset_out, &pair_account); - - ensure!( - amount - <= asset_in_reserve - .checked_div(T::MaxInRatio::get()) - .ok_or(Error::::Overflow)?, - Error::::MaxInRatioExceeded - ); - - let amount_out = hydra_dx_math::xyk::calculate_out_given_in(asset_in_reserve, asset_out_reserve, amount) - .map_err(|_| Error::::SellAssetAmountInvalid)?; - - ensure!( - amount_out - <= asset_out_reserve - .checked_div(T::MaxOutRatio::get()) - .ok_or(Error::::Overflow)?, - Error::::MaxOutRatioExceeded - ); - - let transfer_fee = if discount { - Self::calculate_discounted_fee(amount_out)? - } else { - Self::calculate_fee(amount_out)? - }; - - let amount_out_without_fee = amount_out - .checked_sub(transfer_fee) - .ok_or(Error::::SellAssetAmountInvalid)?; - - ensure!(asset_out_reserve > amount_out, Error::::InsufficientAssetBalance); - - ensure!( - min_bought <= amount_out_without_fee, - Error::::AssetAmountNotReachedLimit - ); - - let discount_fee = if discount { - let native_asset = T::NativeAssetId::get(); - - let native_pair_account = Self::get_pair_id(AssetPair { - asset_in: assets.asset_in, - asset_out: native_asset, - }); - - let native_reserve = T::Currency::free_balance(native_asset, &native_pair_account); - let asset_reserve = T::Currency::free_balance(assets.asset_in, &native_pair_account); - - let native_fee_spot_price = - hydra_dx_math::xyk::calculate_spot_price(asset_reserve, native_reserve, transfer_fee) - .map_err(|_| Error::::CannotApplyDiscount)?; - - ensure!( - T::Currency::free_balance(native_asset, who) >= native_fee_spot_price, - Error::::InsufficientNativeCurrencyBalance - ); - - native_fee_spot_price - } else { - Balance::zero() - }; - - let transfer = AMMTransfer { - origin: who.clone(), - assets, - amount, - amount_b: amount_out_without_fee, - discount, - discount_amount: discount_fee, - fee: (assets.asset_out, transfer_fee), - }; - - Ok(transfer) - } - - /// Execute sell. validate_sell must be called first. - /// Perform necessary storage/state changes. - /// Note : the execution should not return error as everything was previously verified and validated. - #[transactional] - fn execute_sell(transfer: &AMMTransfer) -> DispatchResult { - let pair_account = Self::get_pair_id(transfer.assets); - - if transfer.discount && transfer.discount_amount > 0u128 { - let native_asset = T::NativeAssetId::get(); - T::Currency::withdraw(native_asset, &transfer.origin, transfer.discount_amount)?; - } - - T::Currency::transfer( - transfer.assets.asset_in, - &transfer.origin, - &pair_account, - transfer.amount, - )?; - T::Currency::transfer( - transfer.assets.asset_out, - &pair_account, - &transfer.origin, - transfer.amount_b, - )?; - - let liquidity_in = T::Currency::total_balance(transfer.assets.asset_in, &pair_account); - let liquidity_out = T::Currency::total_balance(transfer.assets.asset_out, &pair_account); - T::AMMHandler::on_trade( - SOURCE, - transfer.assets.asset_in, - transfer.assets.asset_out, - transfer.amount, - transfer.amount_b, - liquidity_in, - liquidity_out, - ) - .map_err(|(_w, e)| e)?; - - Self::deposit_event(Event::::SellExecuted { - who: transfer.origin.clone(), - asset_in: transfer.assets.asset_in, - asset_out: transfer.assets.asset_out, - amount: transfer.amount, - sale_price: transfer.amount_b, - fee_asset: transfer.fee.0, - fee_amount: transfer.fee.1, - pool: pair_account, - }); - - Ok(()) - } - - /// Validate a buy. Perform all necessary checks and calculations. - /// No storage changes are performed yet. - /// - /// Return `AMMTransfer` with all info needed to execute the transaction. - fn validate_buy( - who: &T::AccountId, - assets: AssetPair, - amount: Balance, - max_limit: Balance, - discount: bool, - ) -> Result, DispatchError> { - ensure!( - amount >= T::MinTradingLimit::get(), - Error::::InsufficientTradingAmount - ); - - ensure!(Self::exists(assets), Error::::TokenPoolNotFound); - - let pair_account = Self::get_pair_id(assets); - - let asset_out_reserve = T::Currency::free_balance(assets.asset_out, &pair_account); - let asset_in_reserve = T::Currency::free_balance(assets.asset_in, &pair_account); - - ensure!(asset_out_reserve > amount, Error::::InsufficientPoolAssetBalance); - - ensure!( - amount - <= asset_out_reserve - .checked_div(T::MaxOutRatio::get()) - .ok_or(Error::::Overflow)?, - Error::::MaxOutRatioExceeded - ); - - // If discount, pool for Sell asset and native asset must exist - if discount { - ensure!( - Self::exists(AssetPair { - asset_in: assets.asset_out, - asset_out: T::NativeAssetId::get() - }), - Error::::CannotApplyDiscount - ); - } - - let buy_price = hydra_dx_math::xyk::calculate_in_given_out(asset_out_reserve, asset_in_reserve, amount) - .map_err(|_| Error::::BuyAssetAmountInvalid)?; - - ensure!( - buy_price - <= asset_in_reserve - .checked_div(T::MaxInRatio::get()) - .ok_or(Error::::Overflow)?, - Error::::MaxInRatioExceeded - ); - - let transfer_fee = if discount { - Self::calculate_discounted_fee(buy_price)? - } else { - Self::calculate_fee(buy_price)? - }; - - let buy_price_with_fee = buy_price - .checked_add(transfer_fee) - .ok_or(Error::::BuyAssetAmountInvalid)?; - - ensure!(max_limit >= buy_price_with_fee, Error::::AssetAmountExceededLimit); - - ensure!( - T::Currency::free_balance(assets.asset_in, who) >= buy_price_with_fee, - Error::::InsufficientAssetBalance - ); - - let discount_fee = if discount { - let native_asset = T::NativeAssetId::get(); - - let native_pair_account = Self::get_pair_id(AssetPair { - asset_in: assets.asset_out, - asset_out: native_asset, - }); - - let native_reserve = T::Currency::free_balance(native_asset, &native_pair_account); - let asset_reserve = T::Currency::free_balance(assets.asset_out, &native_pair_account); - - let native_fee_spot_price = - hydra_dx_math::xyk::calculate_spot_price(asset_reserve, native_reserve, transfer_fee) - .map_err(|_| Error::::CannotApplyDiscount)?; - - ensure!( - T::Currency::free_balance(native_asset, who) >= native_fee_spot_price, - Error::::InsufficientNativeCurrencyBalance - ); - native_fee_spot_price - } else { - Balance::zero() - }; - - let transfer = AMMTransfer { - origin: who.clone(), - assets, - amount, - amount_b: buy_price, - discount, - discount_amount: discount_fee, - fee: (assets.asset_in, transfer_fee), - }; - - Ok(transfer) - } - - /// Execute buy. validate_buy must be called first. - /// Perform necessary storage/state changes. - /// Note : the execution should not return error as everything was previously verified and validated. - #[transactional] - fn execute_buy(transfer: &AMMTransfer) -> DispatchResult { - let pair_account = Self::get_pair_id(transfer.assets); - - if transfer.discount && transfer.discount_amount > 0 { - let native_asset = T::NativeAssetId::get(); - T::Currency::withdraw(native_asset, &transfer.origin, transfer.discount_amount)?; - } - - T::Currency::transfer( - transfer.assets.asset_out, - &pair_account, - &transfer.origin, - transfer.amount, - )?; - T::Currency::transfer( - transfer.assets.asset_in, - &transfer.origin, - &pair_account, - transfer.amount_b + transfer.fee.1, - )?; - - let liquidity_in = T::Currency::total_balance(transfer.assets.asset_in, &pair_account); - let liquidity_out = T::Currency::total_balance(transfer.assets.asset_out, &pair_account); - T::AMMHandler::on_trade( - SOURCE, - transfer.assets.asset_in, - transfer.assets.asset_out, - transfer.amount, - transfer.amount_b, - liquidity_in, - liquidity_out, - ) - .map_err(|(_w, e)| e)?; - - Self::deposit_event(Event::::BuyExecuted { - who: transfer.origin.clone(), - asset_out: transfer.assets.asset_out, - asset_in: transfer.assets.asset_in, - amount: transfer.amount, - buy_price: transfer.amount_b, - fee_asset: transfer.fee.0, - fee_amount: transfer.fee.1, - pool: pair_account, - }); - - Ok(()) - } - - fn get_min_trading_limit() -> Balance { - T::MinTradingLimit::get() - } - - fn get_min_pool_liquidity() -> Balance { - T::MinPoolLiquidity::get() - } - - fn get_max_in_ratio() -> u128 { - T::MaxInRatio::get() - } - - fn get_max_out_ratio() -> u128 { - T::MaxOutRatio::get() - } - - fn get_fee(_pool_account_id: &T::AccountId) -> (u32, u32) { - T::GetExchangeFee::get() - } -} - -pub struct AllowAllPools(); - -impl CanCreatePool for AllowAllPools { - fn can_create(_asset_a: AssetId, _asset_b: AssetId) -> bool { - true - } -} - -impl AMMPosition for Pallet { - type Error = DispatchError; - - fn get_liquidity_behind_shares( - asset_a: AssetId, - asset_b: AssetId, - shares_amount: Balance, - ) -> Result<(Balance, Balance), Self::Error> { - let asset_pair = AssetPair { - asset_in: asset_a, - asset_out: asset_b, - }; - - let pair_account = Self::get_pair_id(asset_pair); - - let total_shares = Self::total_liquidity(&pair_account); - - let asset_a_reserve = T::Currency::free_balance(asset_a, &pair_account); - let asset_b_reserve = T::Currency::free_balance(asset_b, &pair_account); - - hydra_dx_math::xyk::calculate_liquidity_out(asset_a_reserve, asset_b_reserve, shares_amount, total_shares) - .map_err(|_| Error::::RemoveAssetAmountInvalid.into()) - } -} diff --git a/pallets/xyk/src/tests/amm_position.rs b/pallets/xyk/src/tests/amm_position.rs deleted file mode 100644 index b04b73da1e3..00000000000 --- a/pallets/xyk/src/tests/amm_position.rs +++ /dev/null @@ -1,53 +0,0 @@ -use super::mock::*; -use crate::*; -use frame_support::assert_ok; -use primitives::asset::AssetPair; - -#[test] -fn get_liquidity_behind_shares_should_return_both_assets_value_when_pool_exists() { - let asset_a = ACA; - let asset_b = DOT; - - ExtBuilder::default() - .with_accounts(vec![(ALICE, asset_a, 1_000 * ONE), (ALICE, asset_b, 1_000 * ONE)]) - .build() - .execute_with(|| { - //arange - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(ALICE), - asset_a, - 100 * ONE, - asset_b, - 10 * ONE - )); - - let pair_account = XYK::get_pair_id(AssetPair { - asset_in: asset_a, - asset_out: asset_b, - }); - - let share_token = XYK::share_token(pair_account); - - let shares_amount = Currency::free_balance(share_token, &ALICE); - - assert_eq!( - XYK::get_liquidity_behind_shares(asset_a, asset_b, shares_amount).unwrap(), - (100 * ONE, 10 * ONE) - ); - - assert_eq!( - XYK::get_liquidity_behind_shares(asset_b, asset_a, shares_amount).unwrap(), - (10 * ONE, 100 * ONE) - ); - - assert_eq!( - XYK::get_liquidity_behind_shares(asset_b, asset_a, shares_amount / 2).unwrap(), - (5 * ONE, 50 * ONE) - ); - - assert_eq!( - XYK::get_liquidity_behind_shares(asset_a, asset_b, shares_amount / 2).unwrap(), - (50 * ONE, 5 * ONE) - ); - }); -} diff --git a/pallets/xyk/src/tests/creation.rs b/pallets/xyk/src/tests/creation.rs deleted file mode 100644 index fb4e56ba238..00000000000 --- a/pallets/xyk/src/tests/creation.rs +++ /dev/null @@ -1,425 +0,0 @@ -pub use super::mock::*; -use crate::{Error, Event}; -use frame_support::{assert_noop, assert_ok, BoundedVec}; -use hydradx_traits::Registry; -use hydradx_traits::AMM as AmmPool; -use orml_traits::MultiCurrency; -use pallet_asset_registry::AssetType; -use sp_std::convert::TryInto; - -use primitives::asset::AssetPair; - -#[test] -fn create_pool_should_work() { - new_test_ext().execute_with(|| { - let asset_a = HDX; - let asset_b = ACA; - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(ALICE), - asset_a, - 100_000_000_000_000, - asset_b, - 10 * 100_000_000_000_000, - )); - - let pair_account = XYK::get_pair_id(AssetPair { - asset_in: asset_a, - asset_out: asset_b, - }); - let share_token = XYK::share_token(pair_account); - - assert_eq!(XYK::get_pool_assets(&pair_account), Some(vec![asset_a, asset_b])); - - assert_eq!(Currency::free_balance(asset_a, &pair_account), 100000000000000); - assert_eq!(Currency::free_balance(asset_b, &pair_account), 1000000000000000); - assert_eq!(Currency::free_balance(asset_a, &ALICE), 900000000000000); - assert_eq!(Currency::free_balance(asset_b, &ALICE), 0); - assert_eq!(Currency::free_balance(share_token, &ALICE), 100000000000000); - assert_eq!(XYK::total_liquidity(&pair_account), 100000000000000); - - let name: Vec = vec![232, 3, 0, 0, 72, 68, 84, 184, 11, 0, 0]; - let bounded_name: BoundedVec::StringLimit> = - name.try_into().unwrap(); - - expect_events(vec![ - pallet_asset_registry::Event::Registered { - asset_id: share_token, - asset_name: bounded_name, - asset_type: AssetType::PoolShare(HDX, ACA), - } - .into(), - Event::PoolCreated { - who: ALICE, - asset_a, - asset_b, - initial_shares_amount: 100000000000000, - share_token, - pool: pair_account, - } - .into(), - frame_system::Event::NewAccount { account: pair_account }.into(), - orml_tokens::Event::Endowed { - currency_id: asset_a, - who: pair_account, - amount: 100000000000000, - } - .into(), - orml_tokens::Event::Endowed { - currency_id: asset_b, - who: pair_account, - amount: 1000000000000000, - } - .into(), - orml_tokens::Event::Endowed { - currency_id: share_token, - who: ALICE, - amount: 100000000000000, - } - .into(), - ]); - }); -} - -#[test] -fn create_same_pool_should_not_work() { - new_test_ext().execute_with(|| { - let user = ALICE; - let asset_a = HDX; - let asset_b = ACA; - - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(user), - asset_b, - 1000, - asset_a, - 2000, - )); - assert_noop!( - XYK::create_pool(RuntimeOrigin::signed(user), asset_b, 999, asset_a, 2 * 999), - Error::::InsufficientLiquidity - ); - assert_noop!( - XYK::create_pool(RuntimeOrigin::signed(user), asset_b, 1000, asset_a, 0), - Error::::InsufficientLiquidity - ); - assert_noop!( - XYK::create_pool(RuntimeOrigin::signed(user), asset_a, 1000, asset_a, 2000), - Error::::CannotCreatePoolWithSameAssets - ); - assert_noop!( - XYK::create_pool(RuntimeOrigin::signed(user), asset_b, 1000, asset_a, 2000), - Error::::TokenPoolAlreadyExists - ); - - let pair_account = XYK::get_pair_id(AssetPair { - asset_in: asset_a, - asset_out: asset_b, - }); - let share_token = XYK::share_token(pair_account); - - expect_events(vec![Event::PoolCreated { - who: ALICE, - asset_a: asset_b, - asset_b: asset_a, - initial_shares_amount: 2000, - share_token, - pool: pair_account, - } - .into()]); - }); -} - -#[test] -fn create_pool_with_insufficient_balance_should_not_work() { - new_test_ext().execute_with(|| { - let user = ALICE; - let asset_a = HDX; - - assert_noop!( - XYK::create_pool( - RuntimeOrigin::signed(user), - 4000, - 100_000_000_000_000, - asset_a, - 10 * 100_000_000_000_000, - ), - Error::::InsufficientAssetBalance - ); - - assert_noop!( - XYK::create_pool( - RuntimeOrigin::signed(user), - asset_a, - 100_000_000_000_000, - 4000, - 10 * 100_000_000_000_000, - ), - Error::::InsufficientAssetBalance - ); - }); -} - -#[test] -fn create_pool_with_insufficient_liquidity_should_not_work() { - new_test_ext().execute_with(|| { - assert_noop!( - XYK::create_pool(RuntimeOrigin::signed(ALICE), ACA, 500, HDX, 5000), - Error::::InsufficientLiquidity - ); - - assert_noop!( - XYK::create_pool(RuntimeOrigin::signed(ALICE), ACA, 5000, HDX, 500), - Error::::InsufficientLiquidity - ); - }); -} - -#[test] -fn create_pool_small_fixed_point_amount_should_work() { - new_test_ext().execute_with(|| { - let asset_a = HDX; - let asset_b = ACA; - - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(ALICE), - asset_a, - 100_000_000_000_000, - asset_b, - 1_000_000_000, - )); - - let pair_account = XYK::get_pair_id(AssetPair { - asset_in: asset_a, - asset_out: asset_b, - }); - let share_token = XYK::share_token(pair_account); - - assert_eq!(Currency::free_balance(asset_a, &pair_account), 100000000000000); - assert_eq!(Currency::free_balance(asset_b, &pair_account), 1000000000); - assert_eq!(Currency::free_balance(asset_a, &ALICE), 900000000000000); - assert_eq!(Currency::free_balance(asset_b, &ALICE), 999999000000000); - assert_eq!(Currency::free_balance(share_token, &ALICE), 100000000000000); - assert_eq!(XYK::total_liquidity(&pair_account), 100000000000000); - - expect_events(vec![Event::PoolCreated { - who: ALICE, - asset_a, - asset_b, - initial_shares_amount: 100000000000000, - share_token, - pool: pair_account, - } - .into()]); - }); -} - -#[test] -fn destroy_pool_on_remove_liquidity_and_recreate_should_work() { - new_test_ext().execute_with(|| { - let user = ALICE; - let asset_a = HDX; - let asset_b = DOT; - - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(user), - asset_a, - 100_000_000, - asset_b, - 1_000_000_000_000, - )); - - let asset_pair = AssetPair { - asset_in: asset_a, - asset_out: asset_b, - }; - - let pair_account = XYK::get_pair_id(asset_pair); - let share_token = XYK::share_token(pair_account); - - assert!(XYK::exists(asset_pair)); - - assert_ok!(XYK::remove_liquidity( - RuntimeOrigin::signed(user), - asset_a, - asset_b, - 100_000_000 - )); - - assert_eq!(XYK::total_liquidity(&pair_account), 0); - - assert!(!XYK::exists(asset_pair)); - - // It should be possible to recreate the pool again - - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(user), - asset_a, - 100_000_000, - asset_b, - 1_000_000_000_000 - )); - - expect_events(vec![ - Event::PoolCreated { - who: user, - asset_a, - asset_b, - initial_shares_amount: 100_000_000, - share_token, - pool: pair_account, - } - .into(), - frame_system::Event::KilledAccount { account: pair_account }.into(), - Event::LiquidityRemoved { - who: user, - asset_a, - asset_b, - shares: 100_000_000, - } - .into(), - Event::PoolDestroyed { - who: user, - asset_a, - asset_b, - share_token, - pool: pair_account, - } - .into(), - frame_system::Event::NewAccount { account: pair_account }.into(), - orml_tokens::Event::Endowed { - currency_id: asset_a, - who: pair_account, - amount: 100000000, - } - .into(), - orml_tokens::Event::Endowed { - currency_id: asset_b, - who: pair_account, - amount: 1000000000000, - } - .into(), - orml_tokens::Event::Endowed { - currency_id: share_token, - who: ALICE, - amount: 100000000, - } - .into(), - Event::PoolCreated { - who: user, - asset_a, - asset_b, - initial_shares_amount: 100_000_000, - share_token, - pool: pair_account, - } - .into(), - ]); - }); -} - -#[test] -fn create_pool_with_same_assets_should_not_be_allowed() { - new_test_ext().execute_with(|| { - let user = ALICE; - let asset_a = HDX; - - assert_noop!( - XYK::create_pool( - RuntimeOrigin::signed(user), - asset_a, - 100_000_000, - asset_a, - 100_000_000_000_000_000_000 - ), - Error::::CannotCreatePoolWithSameAssets - ); - }) -} - -#[test] -fn can_create_pool_should_work() { - new_test_ext().execute_with(|| { - let asset_a = 10u32; - let asset_b = 10u32; - assert_noop!( - XYK::create_pool( - RuntimeOrigin::signed(ALICE), - asset_a, - 100_000_000_000_000, - asset_b, - 1_000_000_000_000_000, - ), - Error::::CannotCreatePool - ); - }); -} - -#[test] -fn share_asset_id_should_be_offset() { - // Check that pools are created correctly with offset IDs. - new_test_ext().execute_with(|| { - // Arrange - let asset_pair = AssetPair { - asset_in: HDX, - asset_out: ACA, - }; - - // Next available asset id within the range of reserved IDs - let next_asset_id = AssetRegistry::next_asset_id() - .unwrap() - .checked_sub(::SequentialIdStartAt::get()) - .unwrap(); - - // Register the share token within the range of reserved IDs. - // This is how share tokens were registered before the offset was introduced. - assert_ok!(AssetRegistry::register( - RuntimeOrigin::signed(ALICE), - asset_pair.name(), - AssetType::PoolShare(HDX, ACA), - ::MinPoolLiquidity::get(), - Some(next_asset_id), - None, - None, - None, - )); - - // Create_pool doesn't register new share token if it already exists - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(ALICE), - HDX, - 100_000_000_000_000, - ACA, - 10 * 100_000_000_000_000, - )); - - let pair_account = XYK::get_pair_id(asset_pair); - let share_token = XYK::share_token(pair_account); - - assert_eq!(share_token, next_asset_id); - assert_eq!(AssetRegistry::retrieve_asset(&asset_pair.name()).unwrap(), share_token); - - // Act - let next_asset_id = AssetRegistry::next_asset_id().unwrap(); - - // Create new pool. The share token should be created with offset ID. - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(ALICE), - HDX, - 100_000_000_000_000, - DOT, - 10 * 100_000_000_000_000, - )); - - let asset_pair = AssetPair { - asset_in: HDX, - asset_out: DOT, - }; - - let pair_account = XYK::get_pair_id(asset_pair); - let share_token = XYK::share_token(pair_account); - - // Assert - assert_eq!(share_token, next_asset_id); - assert_eq!(AssetRegistry::retrieve_asset(&asset_pair.name()).unwrap(), share_token); - }); -} diff --git a/pallets/xyk/src/tests/fees.rs b/pallets/xyk/src/tests/fees.rs deleted file mode 100644 index 07477e8f4a5..00000000000 --- a/pallets/xyk/src/tests/fees.rs +++ /dev/null @@ -1,498 +0,0 @@ -pub use super::mock::*; -use crate::{Error, Event}; -use frame_support::{assert_noop, assert_ok}; -use hydradx_traits::AMM as AmmPool; -use orml_traits::MultiCurrency; - -use primitives::asset::AssetPair; - -#[test] -fn fee_calculation() { - ExtBuilder::default().build().execute_with(|| { - assert_eq!(XYK::calculate_fee(100_000), Ok(200)); - assert_eq!(XYK::calculate_fee(10_000), Ok(20)); - - assert_eq!(XYK::calculate_discounted_fee(9_999), Ok(0)); - assert_eq!(XYK::calculate_discounted_fee(10_000), Ok(7)); - assert_eq!(XYK::calculate_discounted_fee(100_000), Ok(70)); - }); - ExtBuilder::default() - .with_exchange_fee((10, 1000)) - .with_discounted_fee((10, 1000)) - .build() - .execute_with(|| { - assert_eq!(XYK::calculate_fee(100_000), Ok(1_000)); - assert_eq!(XYK::calculate_fee(10_000), Ok(100)); - - assert_eq!(XYK::calculate_discounted_fee(999), Ok(0)); - assert_eq!(XYK::calculate_discounted_fee(1_000), Ok(10)); - assert_eq!(XYK::calculate_discounted_fee(10_000), Ok(100)); - }); - - ExtBuilder::default() - .with_exchange_fee((10, 0)) - .build() - .execute_with(|| { - assert_eq!(XYK::calculate_fee(100000), Ok(0)); - }); - - ExtBuilder::default() - .with_exchange_fee((10, 1)) - .build() - .execute_with(|| { - assert_noop!(XYK::calculate_fee(u128::MAX), Error::::FeeAmountInvalid); - }); -} - -#[test] -fn get_fee_should_work() { - new_test_ext().execute_with(|| { - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(ALICE), - HDX, - 1_000_000_000, - DOT, - 2_000_000_000, - )); - - // existing pool - let fee = XYK::get_fee(&HDX_DOT_POOL_ID); - assert_eq!(fee, (2, 1_000)); - // non existing pool - let fee = XYK::get_fee(&1_234); - assert_eq!(fee, (2, 1_000)); - }); -} - -#[test] -fn discount_sell_fees_should_work() { - let accounts = vec![ - (ALICE, HDX, 1_000_000_000_000_000u128), - (ALICE, ACA, 1_000_000_000_000_000u128), - (ALICE, DOT, 1_000_000_000_000_000u128), - ]; - - let asset_a = ACA; - let asset_b = DOT; - - let mut ext: sp_io::TestExternalities = ExtBuilder::default().with_accounts(accounts.clone()).build(); - ext.execute_with(|| System::set_block_number(1)); - ext.execute_with(|| { - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(ALICE), - asset_a, - 1_000_000_000_000, - HDX, - 2_000_000_000_000, - )); - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(ALICE), - asset_a, - 200_000_000_000_000, - asset_b, - 400_000_000_000_000, - )); - - let pair_account = XYK::get_pair_id(AssetPair { - asset_in: asset_a, - asset_out: asset_b, - }); - let native_pair_account = XYK::get_pair_id(AssetPair { - asset_in: asset_a, - asset_out: HDX, - }); - - assert_eq!(Currency::free_balance(asset_a, &pair_account), 200_000_000_000_000); - assert_eq!(Currency::free_balance(asset_b, &pair_account), 400_000_000_000_000); - assert_eq!(Currency::free_balance(asset_a, &native_pair_account), 1_000_000_000_000); - assert_eq!(Currency::free_balance(HDX, &native_pair_account), 2_000_000_000_000); - - assert_eq!(Currency::free_balance(asset_a, &ALICE), 799_000_000_000_000); - assert_eq!(Currency::free_balance(asset_b, &ALICE), 600_000_000_000_000); - assert_eq!(Currency::free_balance(HDX, &ALICE), 998_000_000_000_000); - - assert_ok!(XYK::sell( - RuntimeOrigin::signed(ALICE), - asset_a, - asset_b, - 10_000_000, - 1_500, - true, - )); - - assert_eq!(Currency::free_balance(asset_a, &pair_account), 200_000_010_000_000); - assert_eq!(Currency::free_balance(asset_b, &pair_account), 399_999_980_013_994); - assert_eq!(Currency::free_balance(asset_a, &native_pair_account), 1_000_000_000_000); - assert_eq!(Currency::free_balance(HDX, &native_pair_account), 2_000_000_000_000); - - assert_eq!(Currency::free_balance(asset_a, &ALICE), 798_999_990_000_000); - assert_eq!(Currency::free_balance(asset_b, &ALICE), 600_000_019_986_006); - assert_eq!(Currency::free_balance(HDX, &ALICE), 997_999_999_972_014); - - expect_events(vec![Event::SellExecuted { - who: ALICE, - asset_in: asset_a, - asset_out: asset_b, - amount: 10_000_000, - sale_price: 19_986_006, - fee_asset: asset_b, - fee_amount: 13_993, - pool: pair_account, - } - .into()]); - }); - - // 0.1% discount fee - let mut ext: sp_io::TestExternalities = ExtBuilder::default() - .with_accounts(accounts.clone()) - .with_discounted_fee((10, 10_000)) - .build(); - ext.execute_with(|| System::set_block_number(1)); - ext.execute_with(|| { - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(ALICE), - asset_a, - 1_000_000_000_000, - HDX, - 2_000_000_000_000, - )); - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(ALICE), - asset_a, - 200_000_000_000_000, - asset_b, - 400_000_000_000_000, - )); - - let pair_account = XYK::get_pair_id(AssetPair { - asset_in: asset_a, - asset_out: asset_b, - }); - let native_pair_account = XYK::get_pair_id(AssetPair { - asset_in: asset_a, - asset_out: HDX, - }); - - assert_eq!(Currency::free_balance(asset_a, &pair_account), 200_000_000_000_000); - assert_eq!(Currency::free_balance(asset_b, &pair_account), 400_000_000_000_000); - assert_eq!(Currency::free_balance(asset_a, &native_pair_account), 1_000_000_000_000); - assert_eq!(Currency::free_balance(HDX, &native_pair_account), 2_000_000_000_000); - - assert_eq!(Currency::free_balance(asset_a, &ALICE), 799_000_000_000_000); - assert_eq!(Currency::free_balance(asset_b, &ALICE), 600_000_000_000_000); - assert_eq!(Currency::free_balance(HDX, &ALICE), 998_000_000_000_000); - - assert_ok!(XYK::sell( - RuntimeOrigin::signed(ALICE), - asset_a, - asset_b, - 10_000_000, - 1_500, - true, - )); - - assert_eq!(Currency::free_balance(asset_a, &pair_account), 200_000_010_000_000); - assert_eq!(Currency::free_balance(asset_b, &pair_account), 399_999_980_019_991); - assert_eq!(Currency::free_balance(asset_a, &native_pair_account), 1_000_000_000_000); - assert_eq!(Currency::free_balance(HDX, &native_pair_account), 2_000_000_000_000); - - assert_eq!(Currency::free_balance(asset_a, &ALICE), 798_999_990_000_000); - assert_eq!(Currency::free_balance(asset_b, &ALICE), 600_000_019_980_009); - assert_eq!(Currency::free_balance(HDX, &ALICE), 997_999_999_960_020); - - expect_events(vec![Event::SellExecuted { - who: ALICE, - asset_in: asset_a, - asset_out: asset_b, - amount: 10_000_000, - sale_price: 19_980_009, - fee_asset: asset_b, - fee_amount: 19_990, - pool: pair_account, - } - .into()]); - }); - - // zero discount fee - let mut ext: sp_io::TestExternalities = ExtBuilder::default() - .with_accounts(accounts) - .with_discounted_fee((0, 0)) - .build(); - ext.execute_with(|| System::set_block_number(1)); - ext.execute_with(|| { - let asset_a = ACA; - let asset_b = DOT; - - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(ALICE), - asset_a, - 1_000_000_000_000, - HDX, - 2_000_000_000_000, - )); - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(ALICE), - asset_a, - 200_000_000_000_000, - asset_b, - 400_000_000_000_000, - )); - - let pair_account = XYK::get_pair_id(AssetPair { - asset_in: asset_a, - asset_out: asset_b, - }); - - assert_eq!(Currency::free_balance(asset_a, &pair_account), 200_000_000_000_000); - assert_eq!(Currency::free_balance(asset_b, &pair_account), 400_000_000_000_000); - - assert_eq!(Currency::free_balance(asset_a, &ALICE), 799_000_000_000_000); - assert_eq!(Currency::free_balance(asset_b, &ALICE), 600_000_000_000_000); - - assert_ok!(XYK::sell( - RuntimeOrigin::signed(ALICE), - asset_a, - asset_b, - 10_000_000, - 1_500, - true, - )); - - assert_eq!(Currency::free_balance(asset_a, &pair_account), 200_000_010_000_000); - assert_eq!(Currency::free_balance(asset_b, &pair_account), 399_999_980_000_001); - - assert_eq!(Currency::free_balance(asset_a, &ALICE), 798_999_990_000_000); - assert_eq!(Currency::free_balance(asset_b, &ALICE), 600_000_019_999_999); - - expect_events(vec![Event::SellExecuted { - who: ALICE, - asset_in: asset_a, - asset_out: asset_b, - amount: 10_000_000, - sale_price: 19_999_999, - fee_asset: asset_b, - fee_amount: 0, - pool: pair_account, - } - .into()]); - }); -} - -#[test] -fn discount_buy_fees_should_work() { - let accounts = vec![ - (ALICE, HDX, 1_000_000_000_000_000u128), - (ALICE, ACA, 1_000_000_000_000_000u128), - (ALICE, DOT, 1_000_000_000_000_000u128), - ]; - - let asset_a = ACA; - let asset_b = DOT; - - let mut ext: sp_io::TestExternalities = ExtBuilder::default().with_accounts(accounts.clone()).build(); - ext.execute_with(|| System::set_block_number(1)); - ext.execute_with(|| { - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(ALICE), - asset_a, - 1_000_000_000_000, - HDX, - 2_000_000_000_000, - )); - - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(ALICE), - asset_a, - 200_000_000_000_000, - asset_b, - 400_000_000_000_000, - )); - - let native_pair_account = XYK::get_pair_id(AssetPair { - asset_in: asset_a, - asset_out: HDX, - }); - - let pair_account = XYK::get_pair_id(AssetPair { - asset_in: asset_a, - asset_out: asset_b, - }); - - assert_eq!(Currency::free_balance(asset_a, &pair_account), 200_000_000_000_000); - assert_eq!(Currency::free_balance(asset_b, &pair_account), 400_000_000_000_000); - assert_eq!(Currency::free_balance(asset_a, &native_pair_account), 1_000_000_000_000); - assert_eq!(Currency::free_balance(HDX, &native_pair_account), 2_000_000_000_000); - - assert_eq!(Currency::free_balance(asset_a, &ALICE), 799_000_000_000_000); - assert_eq!(Currency::free_balance(asset_b, &ALICE), 600_000_000_000_000); - assert_eq!(Currency::free_balance(HDX, &ALICE), 998_000_000_000_000); - - assert_ok!(XYK::buy( - RuntimeOrigin::signed(ALICE), - asset_a, - asset_b, - 10_000_000, - 1_000_000_000_000, - true, - )); - - assert_eq!(Currency::free_balance(asset_a, &pair_account), 199_999_990_000_000); - assert_eq!(Currency::free_balance(asset_b, &pair_account), 400_000_020_014_002); - assert_eq!(Currency::free_balance(asset_a, &native_pair_account), 1_000_000_000_000); - assert_eq!(Currency::free_balance(HDX, &native_pair_account), 2_000_000_000_000); - - assert_eq!(Currency::free_balance(asset_a, &ALICE), 799_000_010_000_000); - assert_eq!(Currency::free_balance(asset_b, &ALICE), 599_999_979_985_998); // compare to values in previous test to see difference! - assert_eq!(Currency::free_balance(HDX, &ALICE), 997_999_999_972_000); - - expect_events(vec![Event::BuyExecuted { - who: ALICE, - asset_out: asset_a, - asset_in: asset_b, - amount: 10_000_000, - buy_price: 20_000_002, - fee_asset: asset_b, - fee_amount: 14_000, - pool: pair_account, - } - .into()]); - }); - - // 0.1% discount fee - let mut ext: sp_io::TestExternalities = ExtBuilder::default() - .with_accounts(accounts.clone()) - .with_discounted_fee((10, 10_000)) - .build(); - ext.execute_with(|| System::set_block_number(1)); - ext.execute_with(|| { - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(ALICE), - asset_a, - 1_000_000_000_000, - HDX, - 2_000_000_000_000, - )); - - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(ALICE), - asset_a, - 200_000_000_000_000, - asset_b, - 400_000_000_000_000, - )); - - let native_pair_account = XYK::get_pair_id(AssetPair { - asset_in: asset_a, - asset_out: HDX, - }); - - let pair_account = XYK::get_pair_id(AssetPair { - asset_in: asset_a, - asset_out: asset_b, - }); - - assert_eq!(Currency::free_balance(asset_a, &pair_account), 200_000_000_000_000); - assert_eq!(Currency::free_balance(asset_b, &pair_account), 400_000_000_000_000); - assert_eq!(Currency::free_balance(asset_a, &native_pair_account), 1_000_000_000_000); - assert_eq!(Currency::free_balance(HDX, &native_pair_account), 2_000_000_000_000); - - assert_eq!(Currency::free_balance(asset_a, &ALICE), 799_000_000_000_000); - assert_eq!(Currency::free_balance(asset_b, &ALICE), 600_000_000_000_000); - assert_eq!(Currency::free_balance(HDX, &ALICE), 998_000_000_000_000); - - assert_ok!(XYK::buy( - RuntimeOrigin::signed(ALICE), - asset_a, - asset_b, - 10_000_000, - 1_000_000_000_000, - true, - )); - - assert_eq!(Currency::free_balance(asset_a, &pair_account), 199_999_990_000_000); - assert_eq!(Currency::free_balance(asset_b, &pair_account), 400_000_020_020_002); - assert_eq!(Currency::free_balance(asset_a, &native_pair_account), 1_000_000_000_000); - assert_eq!(Currency::free_balance(HDX, &native_pair_account), 2_000_000_000_000); - - assert_eq!(Currency::free_balance(asset_a, &ALICE), 799_000_010_000_000); - assert_eq!(Currency::free_balance(asset_b, &ALICE), 599_999_979_979_998); // compare to values in previous test to see difference! - assert_eq!(Currency::free_balance(HDX, &ALICE), 997_999_999_960_000); - - expect_events(vec![Event::BuyExecuted { - who: ALICE, - asset_out: asset_a, - asset_in: asset_b, - amount: 10_000_000, - buy_price: 20_000_002, - fee_asset: asset_b, - fee_amount: 20_000, - pool: pair_account, - } - .into()]); - }); - - // zero discount fee - let mut ext: sp_io::TestExternalities = ExtBuilder::default() - .with_accounts(accounts) - .with_discounted_fee((0, 0)) - .build(); - ext.execute_with(|| System::set_block_number(1)); - ext.execute_with(|| { - let asset_a = ACA; - let asset_b = DOT; - - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(ALICE), - asset_a, - 1_000_000_000_000, - HDX, - 2_000_000_000_000, - )); - - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(ALICE), - asset_a, - 200_000_000_000_000, - asset_b, - 400_000_000_000_000, - )); - - let pair_account = XYK::get_pair_id(AssetPair { - asset_in: asset_a, - asset_out: asset_b, - }); - - assert_eq!(Currency::free_balance(asset_a, &pair_account), 200_000_000_000_000); - assert_eq!(Currency::free_balance(asset_b, &pair_account), 400_000_000_000_000); - - assert_eq!(Currency::free_balance(asset_a, &ALICE), 799_000_000_000_000); - assert_eq!(Currency::free_balance(asset_b, &ALICE), 600_000_000_000_000); - - assert_ok!(XYK::buy( - RuntimeOrigin::signed(ALICE), - asset_a, - asset_b, - 10_000_000, - 1_000_000_000, - true, - )); - - assert_eq!(Currency::free_balance(asset_a, &pair_account), 199_999_990_000_000); - assert_eq!(Currency::free_balance(asset_b, &pair_account), 400_000_020_000_002); - - assert_eq!(Currency::free_balance(asset_a, &ALICE), 799_000_010_000_000); - assert_eq!(Currency::free_balance(asset_b, &ALICE), 599_999_979_999_998); - - expect_events(vec![Event::BuyExecuted { - who: ALICE, - asset_out: asset_a, - asset_in: asset_b, - amount: 10_000_000, - buy_price: 20_000_002, - fee_asset: asset_b, - fee_amount: 0, - pool: pair_account, - } - .into()]); - }); -} diff --git a/pallets/xyk/src/tests/invariants.rs b/pallets/xyk/src/tests/invariants.rs deleted file mode 100644 index d764ac2fbfe..00000000000 --- a/pallets/xyk/src/tests/invariants.rs +++ /dev/null @@ -1,560 +0,0 @@ -use super::mock::*; -use crate::*; - -use proptest::prelude::*; - -use frame_support::assert_ok; -use primitive_types::U256; -use sp_runtime::{FixedPointNumber, FixedU128}; - -const TOLERANCE: Balance = 1_000; - -#[macro_export] -macro_rules! assert_eq_approx { - ( $x:expr, $y:expr, $z:expr, $r:expr) => {{ - let diff = if $x >= $y { $x - $y } else { $y - $x }; - if diff > $z { - panic!("\n{} not equal\n left: {:?}\nright: {:?}\n", $r, $x, $y); - } - }}; -} - -fn asset_reserve() -> impl Strategy { - 1000 * ONE..10_000_000 * ONE -} - -fn trade_amount() -> impl Strategy { - ONE..100 * ONE -} - -fn price() -> impl Strategy { - 0.1f64..2f64 -} - -fn assert_asset_invariant( - old_state: (Balance, Balance), - new_state: (Balance, Balance), - tolerance: FixedU128, - desc: &str, -) { - let new_s = U256::from(new_state.0) * U256::from(new_state.1); - let s1 = new_s.integer_sqrt(); - - let old_s = U256::from(old_state.0) * U256::from(old_state.1); - let s2 = old_s.integer_sqrt(); - - assert!(new_s >= old_s, "Invariant decreased for {desc}"); - - let s1_u128 = Balance::try_from(s1).unwrap(); - let s2_u128 = Balance::try_from(s2).unwrap(); - - let invariant = FixedU128::from((s1_u128, ONE)) / FixedU128::from((s2_u128, ONE)); - assert_eq_approx!(invariant, FixedU128::from(1u128), tolerance, desc); -} - -proptest! { - #![proptest_config(ProptestConfig::with_cases(1000))] - #[test] - fn add_liquidity(initial_liquidity in asset_reserve(), - added_liquidity in asset_reserve(), - price in price(), - ) { - let asset_a = HDX; - let asset_b = DOT; - - ExtBuilder::default() - .with_exchange_fee((0, 0)) - .with_accounts(vec![ - (ALICE, asset_a,initial_liquidity), - (ALICE, asset_b,initial_liquidity * 1000), - (BOB, asset_a, added_liquidity), - (BOB, asset_b, added_liquidity * 1_000_000), - ]) - .build() - .execute_with(|| { - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(ALICE), - asset_a, - initial_liquidity, - asset_b, - FixedU128::from_float(price).saturating_mul_int(initial_liquidity), - )); - - let pool_account = XYK::get_pair_id(AssetPair { - asset_in: asset_a, - asset_out: asset_b, - }); - let share_token = XYK::share_token(pool_account); - - let pool_balance_a = Currency::free_balance(asset_a, &pool_account); - let pool_balance_b = Currency::free_balance(asset_b, &pool_account); - - let bob_balance_a = Currency::free_balance(asset_a, &BOB); - let bob_balance_b = Currency::free_balance(asset_b, &BOB); - - let issuance = XYK::total_liquidity(&pool_account); - - assert_ok!(XYK::add_liquidity( - RuntimeOrigin::signed(BOB), - asset_a, - asset_b, - added_liquidity, - added_liquidity * 1_000_000, // do not care about the limit here - )); - - let new_pool_balance_a = Currency::free_balance(asset_a, &pool_account); - let new_pool_balance_b = Currency::free_balance(asset_b, &pool_account); - - let new_bob_balance_a = Currency::free_balance(asset_a, &BOB); - let new_bob_balance_b = Currency::free_balance(asset_b, &BOB); - - let bob_shares = Currency::free_balance(share_token, &BOB); - - let p0 = FixedU128::from((pool_balance_a, pool_balance_b)); - let p1 = FixedU128::from((new_pool_balance_a, new_pool_balance_b)); - - // Price should not change - assert_eq_approx!( - p0, - p1, - FixedU128::from_float(0.0000000001), - "Price has changed after add liquidity" - ); - - // The following must hold when adding liquidity. - // delta_S / S <= delta_X / X - // delta_S / S <= delta_Y / Y - // where S is total share issuance, X is asset a and Y is asset b - - let s = U256::from(issuance); - let delta_s = U256::from(bob_shares); - let delta_x = U256::from(bob_balance_a - new_bob_balance_a); - let delta_y = U256::from(bob_balance_b - new_bob_balance_b); - let x = U256::from(pool_balance_a); - let y = U256::from(pool_balance_b); - - let left = delta_s * x; - let right = s * delta_x; - - assert!(left <= right); - - let l = FixedU128::from((bob_shares, issuance)); - let r = FixedU128::from((bob_balance_a - new_bob_balance_a, pool_balance_a)); - - let diff = r - l; - - assert!(diff <= FixedU128::from_float(0.000000001)); - - let left = delta_s * y; - let right = s * delta_y; - - assert!(left <= right); - - let l = FixedU128::from((bob_shares, issuance)); - let r = FixedU128::from((bob_balance_b - new_bob_balance_b, pool_balance_b)); - - let diff = r - l; - - assert!(diff <= FixedU128::from_float(0.000000001)); - }); - } -} - -proptest! { - #![proptest_config(ProptestConfig::with_cases(1000))] - #[test] - fn remove_liquidity(initial_liquidity in asset_reserve(), - added_liquidity in asset_reserve(), - price in price(), - ) { - let asset_a = HDX; - let asset_b = DOT; - - ExtBuilder::default() - .with_exchange_fee((0, 0)) - .with_accounts(vec![ - (ALICE, asset_a,initial_liquidity), - (ALICE, asset_b,initial_liquidity * 1000), - (BOB, asset_a, added_liquidity), - (BOB, asset_b, added_liquidity * 1_000_000), - ]) - .build() - .execute_with(|| { - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(ALICE), - asset_a, - initial_liquidity, - asset_b, - FixedU128::from_float(price).saturating_mul_int(initial_liquidity), - )); - - let pool_account = XYK::get_pair_id(AssetPair { - asset_in: asset_a, - asset_out: asset_b, - }); - let share_token = XYK::share_token(pool_account); - - assert_ok!(XYK::add_liquidity( - RuntimeOrigin::signed(BOB), - asset_a, - asset_b, - added_liquidity, - added_liquidity * 1_000_000, // do not care about the limit here - )); - let pool_balance_a = Currency::free_balance(asset_a, &pool_account); - let pool_balance_b = Currency::free_balance(asset_b, &pool_account); - - let bob_balance_a = Currency::free_balance(asset_a, &BOB); - let bob_balance_b = Currency::free_balance(asset_b, &BOB); - - let bob_shares = Currency::free_balance(share_token, &BOB); - - let issuance = XYK::total_liquidity(&pool_account); - - assert_ok!(XYK::remove_liquidity( - RuntimeOrigin::signed(BOB), - asset_a, - asset_b, - bob_shares, - )); - - let new_pool_balance_a = Currency::free_balance(asset_a, &pool_account); - let new_pool_balance_b = Currency::free_balance(asset_b, &pool_account); - - let new_bob_balance_a = Currency::free_balance(asset_a, &BOB); - let new_bob_balance_b = Currency::free_balance(asset_b, &BOB); - - let p0 = FixedU128::from((pool_balance_a, pool_balance_b)); - let p1 = FixedU128::from((new_pool_balance_a, new_pool_balance_b)); - - // Price should not change - assert_eq_approx!( - p0, - p1, - FixedU128::from_float(0.0000000001), - "Price has changed after remove liquidity" - ); - - let s = U256::from(issuance); - let delta_s = U256::from(bob_shares); - let delta_x = U256::from(new_bob_balance_a - bob_balance_a); - let delta_y = U256::from(new_bob_balance_b - bob_balance_b); - let x = U256::from(pool_balance_a); - let y = U256::from(pool_balance_b); - - let left = delta_s * x; - let right = s * delta_x; - - assert!(left >= right); - - let l = FixedU128::from((bob_shares, issuance)); - let r = FixedU128::from((new_bob_balance_a - bob_balance_a, pool_balance_a)); - - let diff = l - r; - - assert!(diff <= FixedU128::from_float(0.000000001)); - - let left = delta_s * y; - let right = s * delta_y; - - assert!(left >= right); - - let l = FixedU128::from((bob_shares, issuance)); - let r = FixedU128::from((new_bob_balance_b - bob_balance_b, pool_balance_b)); - - let diff = l - r; - - assert!(diff <= FixedU128::from_float(0.000000001)) - }); - } -} - -proptest! { - #![proptest_config(ProptestConfig::with_cases(1000))] - #[test] - fn sell_invariant(initial_liquidity in asset_reserve(), - added_liquidity in asset_reserve(), - amount in trade_amount(), - price in price(), - ) { - let asset_a = HDX; - let asset_b = DOT; - - ExtBuilder::default() - .with_exchange_fee((0, 0)) - .with_accounts(vec![ - (ALICE, asset_a,initial_liquidity), - (ALICE, asset_b,initial_liquidity * 1000), - (BOB, asset_a, added_liquidity), - (BOB, asset_b, added_liquidity * 1_000_000), - (CHARLIE, asset_a, amount), - ]) - .build() - .execute_with(|| { - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(ALICE), - asset_a, - initial_liquidity, - asset_b, - FixedU128::from_float(price).saturating_mul_int(initial_liquidity), - )); - - let pool_account = XYK::get_pair_id(AssetPair { - asset_in: asset_a, - asset_out: asset_b, - }); - - assert_ok!(XYK::add_liquidity( - RuntimeOrigin::signed(BOB), - asset_a, - asset_b, - added_liquidity, - added_liquidity * 1_000_000, // do not care about the limit here - )); - let pool_balance_a = Currency::free_balance(asset_a, &pool_account); - let pool_balance_b = Currency::free_balance(asset_b, &pool_account); - - assert_ok!(XYK::sell( - RuntimeOrigin::signed(CHARLIE), - asset_a, - asset_b, - amount, - 0u128, // limit not interesting here, - false, - )); - - let new_pool_balance_a = Currency::free_balance(asset_a, &pool_account); - let new_pool_balance_b = Currency::free_balance(asset_b, &pool_account); - - assert_asset_invariant((pool_balance_a, pool_balance_b), - (new_pool_balance_a, new_pool_balance_b), - FixedU128::from((TOLERANCE,ONE)), - "sell" - ); - - }); - } -} - -proptest! { - #![proptest_config(ProptestConfig::with_cases(1000))] - #[test] - fn buy_invariant(initial_liquidity in asset_reserve(), - added_liquidity in asset_reserve(), - amount in trade_amount(), - price in price(), - ) { - let asset_a = ACA; - let asset_b = DOT; - - ExtBuilder::default() - .with_exchange_fee((0, 0)) - .with_accounts(vec![ - (ALICE, asset_a,initial_liquidity * 1000), - (ALICE, HDX,initial_liquidity), - (ALICE, asset_b,initial_liquidity * 1000), - (BOB, asset_a, added_liquidity), - (BOB, asset_b, added_liquidity * 1_000_000), - (CHARLIE, asset_a, amount * 1_000), - (CHARLIE, HDX, amount * 1_000), - ]) - .build() - .execute_with(|| { - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(ALICE), - asset_a, - initial_liquidity, - asset_b, - FixedU128::from_float(price).saturating_mul_int(initial_liquidity), - )); - - let pool_account = XYK::get_pair_id(AssetPair { - asset_in: asset_a, - asset_out: asset_b, - }); - - assert_ok!(XYK::add_liquidity( - RuntimeOrigin::signed(BOB), - asset_a, - asset_b, - added_liquidity, - added_liquidity * 1_000_000, // do not care about the limit here - )); - let pool_balance_a = Currency::free_balance(asset_a, &pool_account); - let pool_balance_b = Currency::free_balance(asset_b, &pool_account); - - assert_ok!(XYK::buy( - RuntimeOrigin::signed(CHARLIE), - asset_b, - asset_a, - amount, - u128::MAX, // limit not interesting here, - false, - )); - - let new_pool_balance_a = Currency::free_balance(asset_a, &pool_account); - let new_pool_balance_b = Currency::free_balance(asset_b, &pool_account); - - assert_asset_invariant((pool_balance_a, pool_balance_b), - (new_pool_balance_a, new_pool_balance_b), - FixedU128::from((TOLERANCE,ONE)), - "buy" - ); - - }); - } -} - -proptest! { - #![proptest_config(ProptestConfig::with_cases(1000))] - #[test] - fn buy_invariant_with_discount(initial_liquidity in asset_reserve(), - added_liquidity in asset_reserve(), - amount in trade_amount(), - price in price(), - ) { - let asset_a = ACA; - let asset_b = DOT; - - ExtBuilder::default() - .with_exchange_fee((0, 0)) - .with_discounted_fee((0,0)) - .with_accounts(vec![ - (ALICE, asset_a,initial_liquidity * 1000), - (ALICE, HDX,initial_liquidity), - (ALICE, asset_b,initial_liquidity * 1000), - (BOB, asset_a, added_liquidity), - (BOB, asset_b, added_liquidity * 1_000_000), - (CHARLIE, asset_a, amount * 1_000), - (CHARLIE, HDX, amount * 1_000), - ]) - .build() - .execute_with(|| { - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(ALICE), - asset_a, - initial_liquidity, - asset_b, - FixedU128::from_float(price).saturating_mul_int(initial_liquidity), - )); - - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(ALICE), - asset_b, - 10 * ONE, - HDX, - 10 * ONE, - )); - - let pool_account = XYK::get_pair_id(AssetPair { - asset_in: asset_a, - asset_out: asset_b, - }); - - assert_ok!(XYK::add_liquidity( - RuntimeOrigin::signed(BOB), - asset_a, - asset_b, - added_liquidity, - added_liquidity * 1_000_000, // do not care about the limit here - )); - let _pool_balance_a = Currency::free_balance(asset_a, &pool_account); - let _pool_balance_b = Currency::free_balance(asset_b, &pool_account); - - assert_ok!(XYK::buy( - RuntimeOrigin::signed(CHARLIE), - asset_b, - asset_a, - amount, - u128::MAX, // limit not interesting here, - true, - )); - - let _new_pool_balance_a = Currency::free_balance(asset_a, &pool_account); - let _new_pool_balance_b = Currency::free_balance(asset_b, &pool_account); - - assert_asset_invariant((_pool_balance_a, _pool_balance_b), - (_new_pool_balance_a, _new_pool_balance_b), - FixedU128::from((TOLERANCE,ONE)), - "buy with discount" - ); - }); - } -} - -proptest! { - #![proptest_config(ProptestConfig::with_cases(1000))] - #[test] - fn sell_invariant_with_discount(initial_liquidity in asset_reserve(), - added_liquidity in asset_reserve(), - amount in trade_amount(), - price in price(), - ) { - let asset_a = ACA; - let asset_b = DOT; - - ExtBuilder::default() - .with_exchange_fee((0, 0)) - .with_discounted_fee((0,0)) - .with_accounts(vec![ - (ALICE, asset_a,initial_liquidity * 1000), - (ALICE, HDX,initial_liquidity), - (ALICE, asset_b,initial_liquidity * 1000), - (BOB, asset_a, added_liquidity), - (BOB, asset_b, added_liquidity * 1_000_000), - (CHARLIE, asset_a, amount * 1_000), - (CHARLIE, HDX, amount * 1_000), - ]) - .build() - .execute_with(|| { - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(ALICE), - asset_a, - initial_liquidity, - asset_b, - FixedU128::from_float(price).saturating_mul_int(initial_liquidity), - )); - - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(ALICE), - asset_a, - 10 * ONE, - HDX, - 10 * ONE, - )); - - let pool_account = XYK::get_pair_id(AssetPair { - asset_in: asset_a, - asset_out: asset_b, - }); - - assert_ok!(XYK::add_liquidity( - RuntimeOrigin::signed(BOB), - asset_a, - asset_b, - added_liquidity, - added_liquidity * 1_000_000, // do not care about the limit here - )); - let _pool_balance_a = Currency::free_balance(asset_a, &pool_account); - let _pool_balance_b = Currency::free_balance(asset_b, &pool_account); - - assert_ok!(XYK::sell( - RuntimeOrigin::signed(CHARLIE), - asset_a, - asset_b, - amount, - 0u128, // limit not interesting here, - true, - )); - - let _new_pool_balance_a = Currency::free_balance(asset_a, &pool_account); - let _new_pool_balance_b = Currency::free_balance(asset_b, &pool_account); - - assert_asset_invariant((_pool_balance_a, _pool_balance_b), - (_new_pool_balance_a, _new_pool_balance_b), - FixedU128::from((TOLERANCE,ONE)), - "sell with discount" - ); - }); - } -} diff --git a/pallets/xyk/src/tests/liquidity.rs b/pallets/xyk/src/tests/liquidity.rs deleted file mode 100644 index 7a543838777..00000000000 --- a/pallets/xyk/src/tests/liquidity.rs +++ /dev/null @@ -1,691 +0,0 @@ -pub use super::mock::*; -use crate::{Error, Event}; -use frame_support::{assert_noop, assert_ok}; -use hydradx_traits::AMM as AmmPool; -use orml_traits::MultiCurrency; - -use primitives::asset::AssetPair; -use primitives::Balance; - -#[test] -fn add_liquidity_should_work() { - new_test_ext().execute_with(|| { - let user = ALICE; - let asset_a = DOT; - let asset_b = HDX; - - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(user), - asset_a, - 100_000_000, - asset_b, - 65_400_000 - )); - let pair_account = XYK::get_pair_id(AssetPair { - asset_in: asset_a, - asset_out: asset_b, - }); - let share_token = XYK::share_token(pair_account); - - assert_eq!(Currency::free_balance(asset_b, &pair_account), 65_400_000); - assert_eq!(XYK::total_liquidity(&pair_account), 65400000); - - assert_ok!(XYK::add_liquidity( - RuntimeOrigin::signed(user), - asset_a, - asset_b, - 400_000, - 1_000_000_000_000 - )); - - assert_eq!(Currency::free_balance(share_token, &user), 65661600); - - assert_eq!(Currency::free_balance(asset_b, &pair_account), 65_661_601); - assert_eq!(Currency::free_balance(asset_a, &pair_account), 100400000); - assert_eq!(Currency::free_balance(asset_a, &user), 999999899600000); - assert_eq!(XYK::total_liquidity(&pair_account), 65661600); - - expect_events(vec![ - Event::PoolCreated { - who: ALICE, - asset_a, - asset_b, - initial_shares_amount: 65400000, - share_token, - pool: pair_account, - } - .into(), - Event::LiquidityAdded { - who: ALICE, - asset_a, - asset_b, - amount_a: 400000, - amount_b: 261601, - } - .into(), - ]); - }); -} - -#[test] -fn add_liquidity_mints_correct_shares() { - new_test_ext().execute_with(|| { - let user = ALICE; - let asset_a = DOT; - let asset_b = HDX; - - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(user), - asset_a, - 100_000_000, - asset_b, - 65_400_000 - )); - - assert_ok!(XYK::add_liquidity( - RuntimeOrigin::signed(user), - asset_b, - asset_a, - 261600, - 1_000_000_000_000 - )); - - let pair_account = XYK::get_pair_id(AssetPair { - asset_in: asset_a, - asset_out: asset_b, - }); - let share_token = XYK::share_token(pair_account); - - assert_eq!(Currency::free_balance(share_token, &user), 65661600); - }); -} - -#[test] -fn add_liquidity_as_another_user_should_work() { - new_test_ext().execute_with(|| { - let user = ALICE; - let asset_a = HDX; - let asset_b = ACA; - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(user), - asset_b, - 100_000_000, - asset_a, - 1_000_000_000_000 - )); - assert_ok!(XYK::add_liquidity( - RuntimeOrigin::signed(user), - asset_b, - asset_a, - 400_000, - 1_000_000_000_000 - )); - - let pair_account = XYK::get_pair_id(AssetPair { - asset_in: asset_a, - asset_out: asset_b, - }); - let share_token = XYK::share_token(pair_account); - - assert_eq!(Currency::free_balance(asset_a, &pair_account), 1004000000001); - assert_eq!(Currency::free_balance(asset_b, &pair_account), 100400000); - assert_eq!(Currency::free_balance(asset_b, &user), 999999899600000); - assert_eq!(Currency::free_balance(share_token, &user), 1004000000000); - assert_eq!(XYK::total_liquidity(&pair_account), 1004000000000); - - assert_ok!(XYK::add_liquidity( - RuntimeOrigin::signed(BOB), - asset_b, - asset_a, - 1_000_000, - 1_000_000_000_000 - )); - - assert_eq!(Currency::free_balance(asset_a, &pair_account), 1014000000002); - assert_eq!(Currency::free_balance(asset_b, &pair_account), 101400000); - assert_eq!(Currency::free_balance(asset_b, &user), 999999899600000); - assert_eq!(Currency::free_balance(asset_b, &BOB), 999999999000000); - assert_eq!(Currency::free_balance(share_token, &user), 1004000000000); - assert_eq!(Currency::free_balance(share_token, &BOB), 10000000000); - assert_eq!(XYK::total_liquidity(&pair_account), 1014000000000); - - expect_events(vec![ - Event::PoolCreated { - who: ALICE, - asset_a: asset_b, - asset_b: asset_a, - initial_shares_amount: 1000000000000, - share_token, - pool: pair_account, - } - .into(), - Event::LiquidityAdded { - who: ALICE, - asset_a: asset_b, - asset_b: asset_a, - amount_a: 400000, - amount_b: 4000000001, - } - .into(), - orml_tokens::Event::Endowed { - currency_id: share_token, - who: 2, - amount: 10000000000, - } - .into(), - Event::LiquidityAdded { - who: BOB, - asset_a: asset_b, - asset_b: asset_a, - amount_a: 1000000, - amount_b: 10000000001, - } - .into(), - ]); - }); -} - -#[test] -fn add_liquidity_should_work_when_limit_is_set_above_account_balance() { - new_test_ext().execute_with(|| { - let user = ALICE; - let asset_a = DOT; - let asset_b = HDX; - let amount_b_max_limit = 2_000_000_000_000_000; - - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(user), - asset_a, - 100_000_000, - asset_b, - 100_000_000, - )); - - assert!(Currency::free_balance(asset_b, &user) < amount_b_max_limit); - - assert_ok!(XYK::add_liquidity( - RuntimeOrigin::signed(user), - asset_a, - asset_b, - 400_000, - amount_b_max_limit, - )); - }); -} - -#[test] -fn remove_liquidity_should_work() { - new_test_ext().execute_with(|| { - let user = ALICE; - let asset_a = HDX; - let asset_b = DOT; - - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(user), - asset_a, - 100_000_000, - asset_b, - 1_000_000_000_000 - )); - - let pair_account = XYK::get_pair_id(AssetPair { - asset_in: asset_a, - asset_out: asset_b, - }); - let share_token = XYK::share_token(pair_account); - - assert_eq!(Currency::free_balance(share_token, &user), 100000000); - assert_eq!(Currency::free_balance(asset_a, &user), 999999900000000); - assert_eq!(Currency::free_balance(asset_a, &pair_account), 100000000); - assert_eq!(Currency::free_balance(asset_b, &pair_account), 1000000000000); - - assert_ok!(XYK::remove_liquidity( - RuntimeOrigin::signed(user), - asset_a, - asset_b, - 355_000 - )); - - assert_eq!(Currency::free_balance(asset_b, &pair_account), 996450000000); - assert_eq!(Currency::free_balance(asset_a, &user), 999999900355000); - - assert_eq!(Currency::free_balance(share_token, &user), 99645000); - assert_eq!(XYK::total_liquidity(&pair_account), 99645000); - - expect_events(vec![ - Event::PoolCreated { - who: ALICE, - asset_a, - asset_b, - initial_shares_amount: 100000000, - share_token, - pool: pair_account, - } - .into(), - Event::LiquidityRemoved { - who: ALICE, - asset_a, - asset_b, - shares: 355_000, - } - .into(), - ]); - }); -} - -#[test] -fn remove_liquidity_without_shares_should_not_work() { - new_test_ext().execute_with(|| { - let user = ALICE; - let asset_a = HDX; - let asset_b = DOT; - - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(user), - asset_a, - 100_000_000, - asset_b, - 100_000_000, - )); - - let pair_account = XYK::get_pair_id(AssetPair { - asset_in: asset_a, - asset_out: asset_b, - }); - let share_token = XYK::share_token(pair_account); - let shares = Currency::free_balance(share_token, &user); - - assert_ok!(Currency::transfer( - RuntimeOrigin::signed(ALICE), - BOB, - share_token, - shares - )); - - assert_noop!( - XYK::remove_liquidity(RuntimeOrigin::signed(user), asset_a, asset_b, 355_000), - Error::::InsufficientAssetBalance - ); - - expect_events(vec![ - Event::PoolCreated { - who: ALICE, - asset_a, - asset_b, - initial_shares_amount: 100000000, - share_token, - pool: pair_account, - } - .into(), - orml_tokens::Event::Endowed { - currency_id: share_token, - who: BOB, - amount: shares, - } - .into(), - orml_tokens::Event::Transfer { - currency_id: share_token, - from: ALICE, - to: BOB, - amount: shares, - } - .into(), - ]); - }); -} - -// events in the following test do not occur during standard chain operation -#[test] -fn remove_liquidity_from_reduced_pool_should_not_work() { - new_test_ext().execute_with(|| { - let user = ALICE; - let asset_a = HDX; - let asset_b = DOT; - - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(user), - asset_a, - 100_000_000, - asset_b, - 100_000_000, - )); - - let pair_account = XYK::get_pair_id(AssetPair { - asset_in: asset_a, - asset_out: asset_b, - }); - - // remove some amount from the pool - assert_ok!(Currency::transfer( - RuntimeOrigin::signed(pair_account), - BOB, - asset_a, - 90_000_000 - )); - - assert_noop!( - XYK::remove_liquidity(RuntimeOrigin::signed(user), asset_a, asset_b, 200_000_000), - Error::::InsufficientLiquidity - ); - - // return it back to the pool - assert_ok!(Currency::transfer( - RuntimeOrigin::signed(BOB), - pair_account, - asset_a, - 90_000_000 - )); - // do it again with asset_b - assert_ok!(Currency::transfer( - RuntimeOrigin::signed(pair_account), - BOB, - asset_b, - 90_000_000 - )); - - assert_noop!( - XYK::remove_liquidity(RuntimeOrigin::signed(user), asset_a, asset_b, 200_000_000), - Error::::InsufficientLiquidity - ); - - let pair_account = XYK::get_pair_id(AssetPair { - asset_in: asset_a, - asset_out: asset_b, - }); - let share_token = XYK::share_token(pair_account); - - expect_events(vec![ - Event::PoolCreated { - who: ALICE, - asset_a, - asset_b, - initial_shares_amount: 100000000, - share_token, - pool: pair_account, - } - .into(), - orml_tokens::Event::Transfer { - currency_id: asset_a, - from: pair_account, - to: BOB, - amount: 90_000_000, - } - .into(), - orml_tokens::Event::Transfer { - currency_id: asset_a, - from: BOB, - to: pair_account, - amount: 90_000_000, - } - .into(), - orml_tokens::Event::Transfer { - currency_id: asset_b, - from: pair_account, - to: BOB, - amount: 90_000_000, - } - .into(), - ]); - }); -} - -#[test] -fn add_liquidity_more_than_owner_should_not_work() { - new_test_ext().execute_with(|| { - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(ALICE), - HDX, - 200_000_000, - ACA, - 600_000_000_000_000, - )); - - assert_eq!(Currency::free_balance(ACA, &ALICE), 400_000_000_000_000); - - assert_noop!( - XYK::add_liquidity( - RuntimeOrigin::signed(ALICE), - HDX, - ACA, - 200_000_000_000_000_000, - 600_000_000 - ), - Error::::InsufficientAssetBalance - ); - - assert_noop!( - XYK::add_liquidity( - RuntimeOrigin::signed(ALICE), - HDX, - ACA, - 600_000_000, - 200_000_000_000_000_000 - ), - Error::::InsufficientAssetBalance - ); - }); -} - -#[test] -fn add_insufficient_liquidity_should_not_work() { - new_test_ext().execute_with(|| { - assert_ok!(XYK::create_pool(RuntimeOrigin::signed(ALICE), HDX, 1000, ACA, 1500,)); - - assert_noop!( - XYK::add_liquidity(RuntimeOrigin::signed(ALICE), HDX, ACA, 0, 0), - Error::::InsufficientTradingAmount - ); - - assert_noop!( - XYK::add_liquidity(RuntimeOrigin::signed(ALICE), HDX, ACA, 1000, 0), - Error::::ZeroLiquidity - ); - - assert_noop!( - XYK::add_liquidity(RuntimeOrigin::signed(BOB), ACA, HDX, 1000, 2000), - Error::::InsufficientLiquidity - ); - }); -} - -#[test] -fn add_liquidity_exceeding_max_limit_should_not_work() { - new_test_ext().execute_with(|| { - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(ALICE), - HDX, - 100_000_000_000_000, - ACA, - 100_000_000_000_000, - )); - - assert_noop!( - XYK::add_liquidity(RuntimeOrigin::signed(ALICE), HDX, ACA, 10_000_000, 1_000_000), - Error::::AssetAmountExceededLimit - ); - }); -} -#[test] -fn remove_liquidity_should_respect_min_pool_limit() { - new_test_ext().execute_with(|| { - assert_ok!(XYK::create_pool(RuntimeOrigin::signed(ALICE), HDX, 1000, ACA, 1500,)); - - assert_ok!(XYK::add_liquidity(RuntimeOrigin::signed(BOB), ACA, HDX, 2000, 2000)); - - assert_noop!( - XYK::remove_liquidity(RuntimeOrigin::signed(BOB), ACA, HDX, 500), - Error::::InsufficientLiquidity - ); - }); -} - -#[test] -fn remove_zero_liquidity_should_not_work() { - new_test_ext().execute_with(|| { - assert_noop!( - XYK::remove_liquidity(RuntimeOrigin::signed(ALICE), HDX, ACA, 0), - Error::::ZeroLiquidity - ); - }); -} - -#[test] -fn add_liquidity_to_non_existing_pool_should_not_work() { - new_test_ext().execute_with(|| { - assert_noop!( - XYK::add_liquidity( - RuntimeOrigin::signed(ALICE), - HDX, - ACA, - 200_000_000_000_000_000, - 600_000_000 - ), - Error::::TokenPoolNotFound - ); - }); -} - -#[test] -fn remove_zero_liquidity_from_non_existing_pool_should_not_work() { - new_test_ext().execute_with(|| { - assert_noop!( - XYK::remove_liquidity(RuntimeOrigin::signed(ALICE), HDX, ACA, 100), - Error::::TokenPoolNotFound - ); - }); -} - -#[test] -fn add_liquidity_overflow_work() { - let user = ALICE; - let asset_a = DOT; - let asset_b = HDX; - ExtBuilder::default() - .with_accounts(vec![(ALICE, DOT, Balance::MAX), (ALICE, HDX, Balance::MAX)]) - .build() - .execute_with(|| { - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(user), - asset_a, - 100_000, - asset_b, - 10_u128.pow(38) - )); - - assert_noop!( - XYK::add_liquidity( - RuntimeOrigin::signed(user), - asset_a, - asset_b, - 10_u128.pow(33), - 1_000_000_000_000 - ), - Error::::AddAssetAmountInvalid - ); - }); -} - -#[test] -fn share_ratio_calculations_are_correct() { - ExtBuilder::default() - .with_exchange_fee((0, 0)) - .build() - .execute_with(|| { - let asset_a = HDX; - let asset_b = DOT; - - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(ALICE), - asset_a, - 100 * ONE, - asset_b, - 65_440_000_000_000, - )); - - assert_eq!(Currency::free_balance(asset_a, &BOB), 1_000 * ONE); - assert_eq!(Currency::free_balance(asset_b, &BOB), 1_000 * ONE); - - let balance_a = Currency::free_balance(asset_a, &BOB); - let balance_b = Currency::free_balance(asset_b, &BOB); - - let bob_initial_balance = balance_a + balance_b; - - assert_eq!(bob_initial_balance, 2000 * ONE); - - assert_ok!(XYK::add_liquidity( - RuntimeOrigin::signed(BOB), - asset_b, - asset_a, - 10 * ONE, - 200 * ONE - )); - - let pair_account = XYK::get_pair_id(AssetPair { - asset_in: asset_a, - asset_out: asset_b, - }); - let share_token = XYK::share_token(pair_account); - - let expected_shares = 15_281_173_594_132u128; - - assert_eq!(Currency::free_balance(share_token, &BOB), expected_shares); - - assert_ok!(XYK::sell( - RuntimeOrigin::signed(CHARLIE), - asset_a, - asset_b, - 10 * ONE, - 0u128, - false, - )); - - assert_ok!(XYK::remove_liquidity( - RuntimeOrigin::signed(BOB), - asset_a, - asset_b, - expected_shares - )); - - assert_eq!(Currency::free_balance(share_token, &BOB), 0); - - for _ in 0..10 { - let balance_a = Currency::free_balance(asset_a, &BOB); - let balance_b = Currency::free_balance(asset_b, &BOB); - - let bob_previous_balance = balance_a + balance_b; - - let balance_pool_a = Currency::free_balance(asset_a, &pair_account); - let balance_pool_b = Currency::free_balance(asset_a, &pair_account); - - let initial_pool_liquidity = balance_pool_a + balance_pool_b; - - assert_ok!(XYK::add_liquidity( - RuntimeOrigin::signed(BOB), - asset_b, - asset_a, - 10 * ONE, - 200 * ONE - )); - - let shares = Currency::free_balance(share_token, &BOB); - - assert_ok!(XYK::remove_liquidity( - RuntimeOrigin::signed(BOB), - asset_a, - asset_b, - shares - )); - let balance_a = Currency::free_balance(asset_a, &BOB); - let balance_b = Currency::free_balance(asset_b, &BOB); - let bob_new_balance = balance_a + balance_b; - - let balance_pool_a = Currency::free_balance(asset_a, &pair_account); - let balance_pool_b = Currency::free_balance(asset_a, &pair_account); - - let total_pool_liquidity = balance_pool_a + balance_pool_b; - - assert!(bob_new_balance <= bob_previous_balance); - assert!(initial_pool_liquidity <= total_pool_liquidity); - } - }); -} diff --git a/pallets/xyk/src/tests/mock.rs b/pallets/xyk/src/tests/mock.rs deleted file mode 100644 index 53fa1753615..00000000000 --- a/pallets/xyk/src/tests/mock.rs +++ /dev/null @@ -1,294 +0,0 @@ -// This file is part of Basilisk-node. - -// Copyright (C) 2020-2022 Intergalactic, Limited (GIB). -// SPDX-License-Identifier: Apache-2.0 - -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -use crate as xyk; -use crate::Config; -use crate::*; -use frame_support::parameter_types; -use frame_system as system; -use orml_traits::parameter_type_with_key; -use sp_core::H256; -use sp_runtime::{ - testing::Header, - traits::{BlakeTwo256, IdentityLookup, One}, -}; - -use frame_support::traits::{Everything, GenesisBuild, Get, Nothing}; -use hydradx_traits::{AssetPairAccountIdFor, CanCreatePool}; -use primitives::{ - constants::chain::{MAX_IN_RATIO, MIN_POOL_LIQUIDITY, MIN_TRADING_LIMIT}, - AssetId, Balance, -}; - -use frame_system::EnsureSigned; -use hydradx_traits::pools::DustRemovalAccountWhitelist; -use std::cell::RefCell; - -pub type Amount = i128; -pub type AccountId = u64; - -pub const ALICE: AccountId = 1; -pub const BOB: AccountId = 2; -pub const CHARLIE: AccountId = 3; - -pub const HDX: AssetId = 1000; -pub const DOT: AssetId = 2000; -pub const ACA: AssetId = 3000; - -pub const HDX_DOT_POOL_ID: AccountId = 1_002_000; - -pub const ONE: Balance = 1_000_000_000_000; - -type UncheckedExtrinsic = frame_system::mocking::MockUncheckedExtrinsic; -type Block = frame_system::mocking::MockBlock; - -frame_support::construct_runtime!( - pub enum Test where - Block = Block, - NodeBlock = Block, - UncheckedExtrinsic = UncheckedExtrinsic, - { - System: frame_system, - XYK: xyk, - Currency: orml_tokens, - AssetRegistry: pallet_asset_registry, - } - -); - -thread_local! { - static EXCHANGE_FEE: RefCell<(u32, u32)> = RefCell::new((2, 1_000)); - static DISCOUNTED_FEE: RefCell<(u32, u32)> = RefCell::new(primitives::constants::chain::DISCOUNTED_FEE); - static MAX_OUT_RATIO: RefCell = RefCell::new(primitives::constants::chain::MAX_OUT_RATIO); -} - -struct ExchangeFee; -impl Get<(u32, u32)> for ExchangeFee { - fn get() -> (u32, u32) { - EXCHANGE_FEE.with(|v| *v.borrow()) - } -} - -struct DiscountedFee; -impl Get<(u32, u32)> for DiscountedFee { - fn get() -> (u32, u32) { - DISCOUNTED_FEE.with(|v| *v.borrow()) - } -} - -struct MaximumOutRatio; -impl Get for MaximumOutRatio { - fn get() -> u128 { - MAX_OUT_RATIO.with(|v| *v.borrow()) - } -} - -parameter_types! { - pub const BlockHashCount: u64 = 250; - pub const SS58Prefix: u8 = 63; - pub const NativeAssetId: AssetId = HDX; - pub RegistryStringLimit: u32 = 100; - pub const SequentialIdOffset: u32 = 1_000_000; -} - -impl pallet_asset_registry::Config for Test { - type RuntimeEvent = RuntimeEvent; - type RegistryOrigin = EnsureSigned; - type AssetId = AssetId; - type Balance = Balance; - type AssetNativeLocation = u8; - type StringLimit = RegistryStringLimit; - type SequentialIdStartAt = SequentialIdOffset; - type NativeAssetId = NativeAssetId; - type WeightInfo = (); -} - -impl system::Config for Test { - type BaseCallFilter = Everything; - type BlockWeights = (); - type BlockLength = (); - type RuntimeOrigin = RuntimeOrigin; - type RuntimeCall = RuntimeCall; - type Index = u64; - type BlockNumber = u64; - type Hash = H256; - type Hashing = BlakeTwo256; - type AccountId = u64; - type Lookup = IdentityLookup; - type Header = Header; - type RuntimeEvent = RuntimeEvent; - type BlockHashCount = BlockHashCount; - type DbWeight = (); - type Version = (); - type PalletInfo = PalletInfo; - type AccountData = (); - type OnNewAccount = (); - type OnKilledAccount = (); - type SystemWeightInfo = (); - type SS58Prefix = (); - type OnSetCode = (); - type MaxConsumers = frame_support::traits::ConstU32<16>; -} - -parameter_type_with_key! { - pub ExistentialDeposits: |_currency_id: AssetId| -> Balance { - One::one() - }; -} - -impl orml_tokens::Config for Test { - type RuntimeEvent = RuntimeEvent; - type Balance = Balance; - type Amount = Amount; - type CurrencyId = AssetId; - type WeightInfo = (); - type ExistentialDeposits = ExistentialDeposits; - type MaxLocks = (); - type DustRemovalWhitelist = Nothing; - type ReserveIdentifier = (); - type MaxReserves = (); - type CurrencyHooks = (); -} - -pub struct AssetPairAccountIdTest(); - -impl AssetPairAccountIdFor for AssetPairAccountIdTest { - fn from_assets(asset_a: AssetId, asset_b: AssetId, _: &str) -> u64 { - let mut a = asset_a as u128; - let mut b = asset_b as u128; - if a > b { - std::mem::swap(&mut a, &mut b) - } - (a * 1000 + b) as u64 - } -} - -parameter_types! { - pub const MinTradingLimit: Balance = MIN_TRADING_LIMIT; - pub const MinPoolLiquidity: Balance = MIN_POOL_LIQUIDITY; - pub const MaxInRatio: u128 = MAX_IN_RATIO; - pub MaxOutRatio: u128 = MaximumOutRatio::get(); - pub ExchangeFeeRate: (u32, u32) = ExchangeFee::get(); - pub DiscountedFeeRate: (u32, u32) = DiscountedFee::get(); -} - -pub struct Disallow10_10Pool(); - -impl CanCreatePool for Disallow10_10Pool { - fn can_create(asset_a: AssetId, asset_b: AssetId) -> bool { - !matches!((asset_a, asset_b), (10u32, 10u32)) - } -} - -impl Config for Test { - type RuntimeEvent = RuntimeEvent; - type AssetRegistry = AssetRegistry; - type AssetPairAccountId = AssetPairAccountIdTest; - type Currency = Currency; - type NativeAssetId = NativeAssetId; - type WeightInfo = (); - type GetExchangeFee = ExchangeFeeRate; - type MinTradingLimit = MinTradingLimit; - type MinPoolLiquidity = MinPoolLiquidity; - type MaxInRatio = MaxInRatio; - type MaxOutRatio = MaxOutRatio; - type CanCreatePool = Disallow10_10Pool; - type AMMHandler = (); - type DiscountedFee = DiscountedFeeRate; - type NonDustableWhitelistHandler = Whitelist; -} - -pub struct ExtBuilder { - endowed_accounts: Vec<(AccountId, AssetId, Balance)>, -} - -// Returns default values for genesis config -impl Default for ExtBuilder { - fn default() -> Self { - Self { - endowed_accounts: vec![ - (ALICE, HDX, 1_000_000_000_000_000u128), - (BOB, HDX, 1_000_000_000_000_000u128), - (ALICE, ACA, 1_000_000_000_000_000u128), - (BOB, ACA, 1_000_000_000_000_000u128), - (ALICE, DOT, 1_000_000_000_000_000u128), - (BOB, DOT, 1_000_000_000_000_000u128), - (CHARLIE, HDX, 1_000_000_000_000_000u128), - ], - } - } -} - -impl ExtBuilder { - // builds genesis config - - pub fn with_accounts(mut self, accounts: Vec<(AccountId, AssetId, Balance)>) -> Self { - self.endowed_accounts = accounts; - self - } - - pub fn with_exchange_fee(self, f: (u32, u32)) -> Self { - EXCHANGE_FEE.with(|v| *v.borrow_mut() = f); - self - } - - pub fn with_discounted_fee(self, f: (u32, u32)) -> Self { - DISCOUNTED_FEE.with(|v| *v.borrow_mut() = f); - self - } - - pub fn with_max_out_ratio(self, f: u128) -> Self { - MAX_OUT_RATIO.with(|v| *v.borrow_mut() = f); - self - } - - pub fn build(self) -> sp_io::TestExternalities { - let mut t = frame_system::GenesisConfig::default().build_storage::().unwrap(); - - orml_tokens::GenesisConfig:: { - balances: self.endowed_accounts, - } - .assimilate_storage(&mut t) - .unwrap(); - - t.into() - } -} - -pub fn new_test_ext() -> sp_io::TestExternalities { - let mut ext = ExtBuilder::default().build(); - ext.execute_with(|| System::set_block_number(1)); - ext -} - -pub fn expect_events(e: Vec) { - e.into_iter().for_each(frame_system::Pallet::::assert_has_event); -} - -pub struct Whitelist; - -impl DustRemovalAccountWhitelist for Whitelist { - type Error = DispatchError; - - fn add_account(_account: &AccountId) -> Result<(), Self::Error> { - Ok(()) - } - - fn remove_account(_account: &AccountId) -> Result<(), Self::Error> { - Ok(()) - } -} diff --git a/pallets/xyk/src/tests/mod.rs b/pallets/xyk/src/tests/mod.rs deleted file mode 100644 index 1bc9a4421b9..00000000000 --- a/pallets/xyk/src/tests/mod.rs +++ /dev/null @@ -1,8 +0,0 @@ -mod amm_position; -mod creation; -mod fees; -mod invariants; -mod liquidity; -pub(crate) mod mock; -mod spot_price; -mod trades; diff --git a/pallets/xyk/src/tests/spot_price.rs b/pallets/xyk/src/tests/spot_price.rs deleted file mode 100644 index 66bf37ebad8..00000000000 --- a/pallets/xyk/src/tests/spot_price.rs +++ /dev/null @@ -1,84 +0,0 @@ -use super::mock::*; -use crate::XYKSpotPrice; -use crate::*; -use frame_support::assert_ok; -use frame_support::dispatch::RawOrigin; -use hydradx_traits::pools::SpotPriceProvider; -use primitives::asset::AssetPair; -use primitives::Price; - -#[test] -fn spot_price_provider_should_return_correct_price_when_pool_exists() { - let asset_a = ACA; - let asset_b = DOT; - - let initial = 99_000_000_000_000u128; - - ExtBuilder::default() - .with_accounts(vec![(ALICE, asset_a, initial), (ALICE, asset_b, initial)]) - .build() - .execute_with(|| { - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(ALICE), - asset_a, - initial, - asset_b, - 39_600_000_000_000 - )); - - let price = XYKSpotPrice::::spot_price(asset_a, asset_b); - - assert_eq!(price, Some(Price::from_float(2.5))); // 99_000 / 39_600 = 2.5 - }); -} - -#[test] -fn spot_price_provider_should_return_none_when_pool_does_not_exist() { - let asset_a = ACA; - let asset_b = DOT; - - ExtBuilder::default().build().execute_with(|| { - let price = XYKSpotPrice::::spot_price(asset_a, asset_b); - - assert_eq!(price, None); - }); -} - -#[test] -fn spot_price_provider_should_return_none_when_asset_reserve_is_zero() { - let asset_a = ACA; - let asset_b = DOT; - - let initial = 99_000_000_000_000u128; - - ExtBuilder::default() - .with_accounts(vec![(ALICE, asset_a, initial), (ALICE, asset_b, initial)]) - .build() - .execute_with(|| { - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(ALICE), - asset_a, - initial, - asset_b, - 39_600_000_000_000 - )); - - let pool_account = XYK::get_pair_id(AssetPair { - asset_in: asset_a, - asset_out: asset_b, - }); - - // Force the pool balance to be zero in this test - assert_ok!(Currency::set_balance( - RawOrigin::Root.into(), - pool_account, - asset_b, - 0u128, - 0u128 - )); - - let price = XYKSpotPrice::::spot_price(asset_a, asset_b); - - assert_eq!(price, None); - }); -} diff --git a/pallets/xyk/src/tests/trades.rs b/pallets/xyk/src/tests/trades.rs deleted file mode 100644 index 5c51c2d9b88..00000000000 --- a/pallets/xyk/src/tests/trades.rs +++ /dev/null @@ -1,1085 +0,0 @@ -pub use super::mock::*; -use crate::{Error, Event}; -use frame_support::{assert_noop, assert_ok}; -use hydradx_traits::AMM as AmmPool; -use orml_traits::MultiCurrency; - -use primitives::asset::AssetPair; - -#[test] -fn sell_test() { - new_test_ext().execute_with(|| { - let user_1 = ALICE; - let asset_a = ACA; - let asset_b = DOT; - - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(user_1), - asset_a, - 200_000_000_000, - asset_b, - 600_000_000_000_000, - )); - - let pair_account = XYK::get_pair_id(AssetPair { - asset_in: asset_a, - asset_out: asset_b, - }); - let share_token = XYK::share_token(pair_account); - - assert_eq!(Currency::free_balance(asset_a, &user_1), 999800000000000); - assert_eq!(Currency::free_balance(asset_b, &user_1), 400000000000000); - assert_eq!(Currency::free_balance(share_token, &user_1), 600000000000000); - - assert_eq!(Currency::free_balance(asset_a, &pair_account), 200000000000); - assert_eq!(Currency::free_balance(asset_b, &pair_account), 600000000000000); - - assert_ok!(XYK::sell( - RuntimeOrigin::signed(user_1), - asset_a, - asset_b, - 456_444_678, - 1000000000000, - false, - )); - - assert_eq!(Currency::free_balance(asset_a, &user_1), 999799543555322); - assert_eq!(Currency::free_balance(asset_b, &user_1), 401363483591788); - assert_eq!(Currency::free_balance(share_token, &user_1), 600000000000000); - assert_eq!(Currency::free_balance(asset_a, &pair_account), 200456444678); - assert_eq!(Currency::free_balance(asset_b, &pair_account), 598636516408212); - - expect_events(vec![ - Event::PoolCreated { - who: ALICE, - asset_a, - asset_b, - initial_shares_amount: 600000000000000, - share_token, - pool: pair_account, - } - .into(), - Event::SellExecuted { - who: ALICE, - asset_in: asset_a, - asset_out: asset_b, - amount: 456444678, - sale_price: 1363483591788, - fee_asset: asset_b, - fee_amount: 2732432046, - pool: pair_account, - } - .into(), - ]); - }); -} - -#[test] -fn work_flow_happy_path_should_work() { - new_test_ext().execute_with(|| { - let user_1 = ALICE; - let user_2 = BOB; - let asset_a = HDX; - let asset_b = ACA; - - let pair_account = XYK::get_pair_id(AssetPair { - asset_in: asset_a, - asset_out: asset_b, - }); - - // Check initial balances - - assert_eq!(Currency::free_balance(asset_a, &user_1), 1000000000000000); - assert_eq!(Currency::free_balance(asset_b, &user_2), 1000000000000000); - assert_eq!(Currency::free_balance(asset_a, &pair_account), 0); - - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(user_1), - asset_a, - 350_000_000_000, - asset_b, - 14_000_000_000_000, - )); - - // User 1 really tries! - assert_noop!( - XYK::add_liquidity( - RuntimeOrigin::signed(user_1), - asset_a, - asset_b, - 800_000_000_000_000_000, - 100 - ), - Error::::InsufficientAssetBalance - ); - - // Total liquidity - assert_eq!(XYK::total_liquidity(&pair_account), 350_000_000_000); - - let share_token = XYK::share_token(pair_account); - - // Check balance after add liquidity for user 1 and user 2 - - assert_eq!(Currency::free_balance(asset_a, &user_1), 999_650_000_000_000); - assert_eq!(Currency::free_balance(asset_b, &user_1), 986_000_000_000_000); - - assert_eq!(Currency::free_balance(asset_a, &user_2), 1_000_000_000_000_000); - assert_eq!(Currency::free_balance(asset_b, &user_2), 1_000_000_000_000_000); - - assert_eq!(Currency::free_balance(share_token, &user_1), 350_000_000_000); - assert_eq!(Currency::free_balance(share_token, &user_2), 0); - - assert_eq!(Currency::free_balance(asset_a, &pair_account), 350_000_000_000); - assert_eq!(Currency::free_balance(asset_b, &pair_account), 14_000_000_000_000); - - // User 2 adds liquidity - let current_b_balance = Currency::free_balance(asset_b, &user_2); - assert_ok!(XYK::add_liquidity( - RuntimeOrigin::signed(user_2), - asset_a, - asset_b, - 300_000_000_000, - current_b_balance - )); - - assert_eq!(XYK::total_liquidity(&pair_account), 650_000_000_000); - - // Check balance after add liquidity for user 1 and user 2 - assert_eq!(Currency::free_balance(asset_a, &user_1), 999_650_000_000_000); - assert_eq!(Currency::free_balance(asset_b, &user_1), 986_000_000_000_000); - - assert_eq!(Currency::free_balance(asset_a, &user_2), 999_700_000_000_000); - assert_eq!(Currency::free_balance(asset_b, &user_2), 988_000_000_000_000 - 1); // - 1 because of liquidity_in rounds up in favor of pool - - assert_eq!(Currency::free_balance(share_token, &user_1), 350_000_000_000); - assert_eq!(Currency::free_balance(share_token, &user_2), 300_000_000_000); - - assert_eq!(Currency::free_balance(asset_a, &pair_account), 650_000_000_000); - assert_eq!(Currency::free_balance(asset_b, &pair_account), 26_000_000_000_001); - - // User 2 SELLs - assert_ok!(XYK::sell( - RuntimeOrigin::signed(user_2), - asset_a, - asset_b, - 216_666_666_666, - 100_000_000_000, - false, - )); - - assert_eq!(Currency::free_balance(asset_a, &user_1), 999_650_000_000_000); - assert_eq!(Currency::free_balance(asset_b, &user_1), 986_000_000_000_000); - - assert_eq!(Currency::free_balance(asset_a, &user_2), 999_483_333_333_334); - assert_eq!(Currency::free_balance(asset_b, &user_2), 994_486_999_999_986); - - assert_eq!(Currency::free_balance(share_token, &user_1), 350_000_000_000); - assert_eq!(Currency::free_balance(share_token, &user_2), 300_000_000_000); - - assert_eq!(Currency::free_balance(asset_a, &pair_account), 866_666_666_666); - assert_eq!(Currency::free_balance(asset_b, &pair_account), 19_513_000_000_014); - - // User 1 SELLs - assert_ok!(XYK::sell( - RuntimeOrigin::signed(user_1), - asset_a, - asset_b, - 288_888_888_888, - 100_000_000_000, - false, - )); - - assert_eq!(Currency::free_balance(asset_a, &user_1), 999_361_111_111_112); - assert_eq!(Currency::free_balance(asset_b, &user_1), 990_868_493_499_997); - - let user_2_original_balance_1 = Currency::free_balance(asset_a, &user_2); - let user_2_original_balance_2 = Currency::free_balance(asset_b, &user_2); - - assert_eq!(user_2_original_balance_1, 999_483_333_333_334); - assert_eq!(user_2_original_balance_2, 994_486_999_999_986); - - assert_eq!(Currency::free_balance(share_token, &user_1), 350_000_000_000); - assert_eq!(Currency::free_balance(share_token, &user_2), 300_000_000_000); - - // User 2 removes liquidity - - assert_ok!(XYK::remove_liquidity( - RuntimeOrigin::signed(user_2), - asset_a, - asset_b, - 10_000 - )); - - let user_2_remove_1_balance_1 = Currency::free_balance(asset_a, &user_2); - let user_2_remove_1_balance_2 = Currency::free_balance(asset_b, &user_2); - - assert_eq!(user_2_remove_1_balance_1, 999_483_333_351_111); - assert_eq!(user_2_remove_1_balance_2, 994_487_000_225_286); - assert_eq!(Currency::free_balance(share_token, &user_2), 299_999_990_000); - - assert_ok!(XYK::remove_liquidity( - RuntimeOrigin::signed(user_2), - asset_b, - asset_a, - 10_000 - )); - - let user_2_remove_2_balance_1 = Currency::free_balance(asset_a, &user_2); - let user_2_remove_2_balance_2 = Currency::free_balance(asset_b, &user_2); - - assert_eq!(user_2_remove_2_balance_1, 999_483_333_368_888); - assert_eq!(user_2_remove_2_balance_2, 994_487_000_450_586); - assert_eq!(Currency::free_balance(share_token, &user_2), 299_999_980_000); - - // The two removes should be equal (this could slip by 1 because of rounding error) - - assert_eq!( - user_2_remove_1_balance_1 - user_2_original_balance_1, - user_2_remove_2_balance_1 - user_2_remove_1_balance_1 - ); - - assert_eq!( - user_2_remove_1_balance_2 - user_2_original_balance_2, - user_2_remove_2_balance_2 - user_2_remove_1_balance_2 - ); - - assert_eq!(XYK::total_liquidity(&pair_account), 649_999_980_000); - - assert_ok!(XYK::remove_liquidity( - RuntimeOrigin::signed(user_2), - asset_a, - asset_b, - 18_000 - )); - assert_eq!(Currency::free_balance(share_token, &user_2), 299_999_962_000); - - assert_eq!(XYK::total_liquidity(&pair_account), 649_999_962_000); - - expect_events(vec![ - Event::PoolCreated { - who: user_1, - asset_a, - asset_b, - initial_shares_amount: 350_000_000_000, - share_token, - pool: pair_account, - } - .into(), - orml_tokens::Event::Endowed { - currency_id: share_token, - who: 2, - amount: 300000000000, - } - .into(), - Event::LiquidityAdded { - who: user_2, - asset_a, - asset_b, - amount_a: 300_000_000_000, - amount_b: 12_000_000_000_001, - } - .into(), - ]); - }); -} - -#[test] -fn sell_with_correct_fees_should_work() { - let accounts = vec![ - (ALICE, HDX, 1_000_000_000_000_000u128), - (BOB, HDX, 1_000_000_000_000_000u128), - (ALICE, ACA, 1_000_000_000_000_000u128), - (BOB, ACA, 1_000_000_000_000_000u128), - (ALICE, DOT, 1_000_000_000_000_000u128), - (BOB, DOT, 1_000_000_000_000_000u128), - ]; - - let mut ext: sp_io::TestExternalities = ExtBuilder::default().with_accounts(accounts).build(); - ext.execute_with(|| System::set_block_number(1)); - ext.execute_with(|| { - let user_1 = ALICE; - let user_2 = BOB; - let asset_a = ACA; - let asset_b = HDX; - - // Verify initial balances - assert_eq!(Currency::free_balance(asset_a, &user_1), 1_000_000_000_000_000); - assert_eq!(Currency::free_balance(asset_a, &user_2), 1_000_000_000_000_000); - - assert_eq!(Currency::free_balance(asset_b, &user_1), 1_000_000_000_000_000); - assert_eq!(Currency::free_balance(asset_b, &user_2), 1_000_000_000_000_000); - - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(user_1), - asset_a, - 10_000_000, - asset_b, - 2_000_000_000, - )); - - let pair_account = XYK::get_pair_id(AssetPair { - asset_in: asset_a, - asset_out: asset_b, - }); - let share_token = XYK::share_token(pair_account); - - assert_eq!(Currency::free_balance(asset_a, &user_1), 999999990000000); - assert_eq!(Currency::free_balance(asset_b, &user_1), 999998000000000); - - assert_eq!(Currency::free_balance(asset_a, &pair_account), 10000000); - assert_eq!(Currency::free_balance(asset_b, &pair_account), 2000000000); - - assert_eq!(Currency::free_balance(share_token, &user_1), 2000000000); - - assert_ok!(XYK::sell( - RuntimeOrigin::signed(user_1), - asset_a, - asset_b, - 100_000, - 1_000_000, - false, - )); - - assert_eq!(Currency::free_balance(asset_a, &pair_account), 10100000); - assert_eq!(Currency::free_balance(asset_b, &pair_account), 1980237622); - - assert_eq!(Currency::free_balance(asset_a, &user_1), 999999989900000); - assert_eq!(Currency::free_balance(asset_b, &user_1), 999998019762378); - expect_events(vec![ - Event::PoolCreated { - who: user_1, - asset_a, - asset_b, - initial_shares_amount: 2000000000, - share_token, - pool: pair_account, - } - .into(), - Event::SellExecuted { - who: user_1, - asset_in: asset_a, - asset_out: asset_b, - amount: 100_000, - sale_price: 19_762_378, - fee_asset: asset_b, - fee_amount: 39_602, - pool: pair_account, - } - .into(), - ]); - }); -} - -#[test] -fn sell_without_sufficient_balance_should_not_work() { - new_test_ext().execute_with(|| { - let user = ALICE; - let asset_a = ACA; - let asset_b = DOT; - - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(user), - asset_a, - 1_000_000_000, - asset_b, - 1_000_000_000, - )); - - assert_ok!(Currency::transfer( - RuntimeOrigin::signed(user), - BOB, - ACA, - 999_998_999_999_999 - )); - - assert_noop!( - XYK::sell(RuntimeOrigin::signed(user), ACA, DOT, 1_000, 100, false), - Error::::InsufficientAssetBalance - ); - }); -} - -#[test] -fn sell_without_sufficient_discount_balance_should_not_work() { - new_test_ext().execute_with(|| { - let user = ALICE; - let asset_a = ACA; - let asset_b = DOT; - - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(user), - asset_a, - 1_000_000_000_000, - asset_b, - 1_000_000_000_000, - )); - - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(user), - asset_a, - 1_000_000_000_000, - HDX, - 1_000_000_000_000, - )); - - assert_ok!(Currency::transfer( - RuntimeOrigin::signed(user), - BOB, - HDX, - 998_999_999_999_999 - )); - - assert_noop!( - XYK::sell(RuntimeOrigin::signed(user), ACA, DOT, 1_000_000_000, 100, true), - Error::::InsufficientNativeCurrencyBalance - ); - }); -} - -#[test] -fn buy_without_sufficient_balance_should_not_work() { - new_test_ext().execute_with(|| { - let user = ALICE; - let asset_a = ACA; - let asset_b = DOT; - - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(user), - asset_a, - 1_000_000_000, - asset_b, - 1_000_000_000, - )); - - assert_ok!(Currency::transfer( - RuntimeOrigin::signed(user), - BOB, - ACA, - 999_998_999_999_999 - )); - - assert_noop!( - XYK::buy(RuntimeOrigin::signed(user), DOT, ACA, 1_000, 10_000, false), - Error::::InsufficientAssetBalance - ); - }); -} - -#[test] -fn buy_without_sufficient_discount_balance_should_not_work() { - new_test_ext().execute_with(|| { - let user = ALICE; - let asset_a = ACA; - let asset_b = DOT; - - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(user), - asset_a, - 1_000_000_000_000, - asset_b, - 1_000_000_000_000, - )); - - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(user), - asset_b, - 1_000_000_000_000, - HDX, - 1_000_000_000_000, - )); - - assert_ok!(Currency::transfer( - RuntimeOrigin::signed(user), - BOB, - HDX, - 998_999_999_999_999 - )); - - assert_noop!( - XYK::buy( - RuntimeOrigin::signed(user), - DOT, - ACA, - 1_000_000_000, - 10_000_000_000, - true - ), - Error::::InsufficientNativeCurrencyBalance - ); - }); -} - -#[test] -fn single_buy_should_work() { - new_test_ext().execute_with(|| { - let user_1 = ALICE; - let asset_a = ACA; - let asset_b = DOT; - - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(user_1), - asset_a, - 200_000_000, - asset_b, - 640_000_000_000, - )); - - let pair_account = XYK::get_pair_id(AssetPair { - asset_in: asset_a, - asset_out: asset_b, - }); - let share_token = XYK::share_token(pair_account); - - assert_eq!(Currency::free_balance(asset_a, &user_1), 999_999_800_000_000); - assert_eq!(Currency::free_balance(asset_b, &user_1), 999_360_000_000_000); - assert_eq!(Currency::free_balance(share_token, &user_1), 640_000_000_000); - - assert_eq!(Currency::free_balance(asset_a, &pair_account), 200_000_000); - assert_eq!(Currency::free_balance(asset_b, &pair_account), 640_000_000_000); - - assert_ok!(XYK::buy( - RuntimeOrigin::signed(user_1), - asset_a, - asset_b, - 6_666_666, - 1_000_000_000_000, - false, - )); - - assert_eq!(Currency::free_balance(asset_a, &user_1), 999_999_806_666_666); - assert_eq!(Currency::free_balance(asset_b, &user_1), 999_337_886_898_839); - assert_eq!(Currency::free_balance(share_token, &user_1), 640_000_000_000); - assert_eq!(Currency::free_balance(asset_a, &pair_account), 193_333_334); - assert_eq!(Currency::free_balance(asset_b, &pair_account), 662_113_101_161); - - expect_events(vec![ - Event::PoolCreated { - who: user_1, - asset_a, - asset_b, - initial_shares_amount: 640_000_000_000, - share_token, - pool: pair_account, - } - .into(), - Event::BuyExecuted { - who: user_1, - asset_out: asset_a, - asset_in: asset_b, - amount: 6_666_666, - buy_price: 22_068_963_235, - fee_asset: asset_b, - fee_amount: 44_137_926, - pool: pair_account, - } - .into(), - ]); - }); -} - -#[test] -fn create_pool_with_insufficient_liquidity_should_not_work() { - new_test_ext().execute_with(|| { - assert_noop!( - XYK::create_pool(RuntimeOrigin::signed(ALICE), ACA, 500, HDX, 1_600_000), - Error::::InsufficientLiquidity - ); - - assert_noop!( - XYK::create_pool(RuntimeOrigin::signed(ALICE), ACA, 5000, HDX, 500), - Error::::InsufficientLiquidity - ); - }); -} - -#[test] -fn add_liquidity_to_non_existing_pool_should_not_work() { - new_test_ext().execute_with(|| { - assert_noop!( - XYK::add_liquidity( - RuntimeOrigin::signed(ALICE), - HDX, - ACA, - 200_000_000_000_000_000, - 600_000_000 - ), - Error::::TokenPoolNotFound - ); - }); -} - -#[test] -fn remove_zero_liquidity_from_non_existing_pool_should_not_work() { - new_test_ext().execute_with(|| { - assert_noop!( - XYK::remove_liquidity(RuntimeOrigin::signed(ALICE), HDX, ACA, 100), - Error::::TokenPoolNotFound - ); - }); -} - -#[test] -fn sell_with_non_existing_pool_should_not_work() { - new_test_ext().execute_with(|| { - assert_noop!( - XYK::sell(RuntimeOrigin::signed(ALICE), HDX, DOT, 456_444_678, 1_000_000, false), - Error::::TokenPoolNotFound - ); - }); -} - -#[test] -fn discount_sell_with_no_native_pool_should_not_work() { - new_test_ext().execute_with(|| { - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(ALICE), - ACA, - 1000, - DOT, - 3_200_000 - )); - - assert_noop!( - XYK::sell(RuntimeOrigin::signed(ALICE), ACA, DOT, 456_444_678, 1_000_000, true), - Error::::CannotApplyDiscount - ); - }); -} - -#[test] -fn buy_with_non_existing_pool_should_not_work() { - new_test_ext().execute_with(|| { - assert_noop!( - XYK::buy( - RuntimeOrigin::signed(ALICE), - HDX, - DOT, - 456_444_678, - 1_000_000_000, - false - ), - Error::::TokenPoolNotFound - ); - }); -} - -#[test] -fn discount_buy_with_no_native_pool_should_not_work() { - new_test_ext().execute_with(|| { - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(ALICE), - ACA, - 10_000, - DOT, - 32_000_000 - )); - - assert_noop!( - XYK::buy(RuntimeOrigin::signed(ALICE), ACA, DOT, 1000, 1_000_000_000, true), - Error::::CannotApplyDiscount - ); - }); -} - -#[test] -fn money_in_sell_money_out_should_leave_the_same_balance() { - new_test_ext().execute_with(|| { - let user_1 = ALICE; - let asset_a = ACA; - let asset_b = DOT; - - let user_1_balance_a_before = Currency::free_balance(asset_a, &user_1); - let user_1_balance_b_before = Currency::free_balance(asset_b, &user_1); - - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(user_1), - asset_a, - 200_000_000_000, - asset_b, - 600_000_000_000_000, - )); - - let pair_account = XYK::get_pair_id(AssetPair { - asset_in: asset_a, - asset_out: asset_b, - }); - let share_token = XYK::share_token(pair_account); - - assert_eq!(Currency::free_balance(asset_a, &user_1), 999800000000000); - assert_eq!(Currency::free_balance(asset_b, &user_1), 400000000000000); - assert_eq!(Currency::free_balance(share_token, &user_1), 600000000000000); - - assert_eq!(Currency::free_balance(asset_a, &pair_account), 200000000000); - assert_eq!(Currency::free_balance(asset_b, &pair_account), 600000000000000); - - assert_ok!(XYK::sell( - RuntimeOrigin::signed(user_1), - asset_a, - asset_b, - 456_444_678, - 1000000000000, - false, - )); - - assert_eq!(Currency::free_balance(asset_a, &user_1), 999799543555322); - assert_eq!(Currency::free_balance(asset_b, &user_1), 401363483591788); - assert_eq!(Currency::free_balance(share_token, &user_1), 600000000000000); - assert_eq!(Currency::free_balance(asset_a, &pair_account), 200456444678); - assert_eq!(Currency::free_balance(asset_b, &pair_account), 598636516408212); - - assert_ok!(XYK::remove_liquidity( - RuntimeOrigin::signed(user_1), - asset_a, - asset_b, - 600000000000000 - )); - - let user_1_balance_a_after = Currency::free_balance(asset_a, &user_1); - let user_1_balance_b_after = Currency::free_balance(asset_b, &user_1); - - assert_eq!(user_1_balance_a_before, user_1_balance_a_after); - assert_eq!(user_1_balance_b_before, user_1_balance_b_after); - }); -} - -#[test] -fn money_in_money_out_should_leave_the_same_balance_for_both_accounts() { - new_test_ext().execute_with(|| { - let user_1 = ALICE; - let user_2 = BOB; - let asset_a = HDX; - let asset_b = DOT; - - let user_1_balance_a_before = Currency::free_balance(asset_a, &user_1); - let user_1_balance_b_before = Currency::free_balance(asset_b, &user_1); - let user_2_balance_a_before = Currency::free_balance(asset_a, &user_2); - let user_2_balance_b_before = Currency::free_balance(asset_b, &user_2); - - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(user_1), - asset_a, - 100_000_000, - asset_b, - 1_000_000_000_000, - )); - - let asset_pair = AssetPair { - asset_in: asset_a, - asset_out: asset_b, - }; - - let pair_account = XYK::get_pair_id(asset_pair); - let share_token = XYK::share_token(pair_account); - - assert!(XYK::exists(asset_pair)); - - assert_ok!(XYK::add_liquidity( - RuntimeOrigin::signed(user_2), - asset_a, - asset_b, - 100_000_000, - 1_100_000_000_000 - )); - - assert_eq!(Currency::free_balance(share_token, &user_1), 100_000_000); - assert_eq!(Currency::free_balance(share_token, &user_2), 100_000_000); - - assert_ok!(XYK::remove_liquidity( - RuntimeOrigin::signed(user_1), - asset_a, - asset_b, - 100_000_000 - )); - - assert_ok!(XYK::remove_liquidity( - RuntimeOrigin::signed(user_2), - asset_a, - asset_b, - 100_000_000 - )); - - assert_eq!(XYK::total_liquidity(&pair_account), 0); - - let user_1_balance_a_after = Currency::free_balance(asset_a, &user_1); - let user_1_balance_b_after = Currency::free_balance(asset_b, &user_1); - let user_2_balance_a_after = Currency::free_balance(asset_a, &user_2); - let user_2_balance_b_after = Currency::free_balance(asset_b, &user_2); - - assert_eq!(user_1_balance_a_before, user_1_balance_a_after); - assert_eq!(user_1_balance_b_before, user_1_balance_b_after); - assert_eq!(user_2_balance_a_before, user_2_balance_a_after); - assert_eq!(user_2_balance_b_before, user_2_balance_b_after); - - assert!(!XYK::exists(asset_pair)); - }); -} - -#[test] -fn sell_test_not_reaching_limit() { - ExtBuilder::default().build().execute_with(|| { - let user_1 = ALICE; - let asset_a = ACA; - let asset_b = DOT; - - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(user_1), - asset_a, - 200_000_000_000, - asset_b, - 600_000_000_000_000, - )); - - let pair_account = XYK::get_pair_id(AssetPair { - asset_in: asset_a, - asset_out: asset_b, - }); - let share_token = XYK::share_token(pair_account); - - assert_eq!(Currency::free_balance(asset_a, &user_1), 999800000000000); - assert_eq!(Currency::free_balance(asset_b, &user_1), 400000000000000); - assert_eq!(Currency::free_balance(share_token, &user_1), 600000000000000); - - assert_eq!(Currency::free_balance(asset_a, &pair_account), 200000000000); - assert_eq!(Currency::free_balance(asset_b, &pair_account), 600000000000000); - - assert_noop!( - XYK::sell( - RuntimeOrigin::signed(user_1), - asset_a, - asset_b, - 456_444_678, - 1_000_000_000_000_000, - false, - ), - Error::::AssetAmountNotReachedLimit - ); - - assert_eq!(Currency::free_balance(asset_a, &user_1), 999800000000000); - assert_eq!(Currency::free_balance(asset_b, &user_1), 400000000000000); - - assert_eq!(Currency::free_balance(asset_a, &pair_account), 200000000000); - assert_eq!(Currency::free_balance(asset_b, &pair_account), 600000000000000); - }); -} - -#[test] -fn buy_test_exceeding_max_limit() { - ExtBuilder::default().build().execute_with(|| { - let user_1 = ALICE; - let asset_a = ACA; - let asset_b = DOT; - - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(user_1), - asset_a, - 200_000_000_000, - asset_b, - 600_000_000_000_000, - )); - - let pair_account = XYK::get_pair_id(AssetPair { - asset_in: asset_a, - asset_out: asset_b, - }); - let share_token = XYK::share_token(pair_account); - - assert_eq!(Currency::free_balance(asset_a, &user_1), 999800000000000); - assert_eq!(Currency::free_balance(asset_b, &user_1), 400000000000000); - assert_eq!(Currency::free_balance(share_token, &user_1), 600000000000000); - - assert_eq!(Currency::free_balance(asset_a, &pair_account), 200000000000); - assert_eq!(Currency::free_balance(asset_b, &pair_account), 600000000000000); - - assert_noop!( - XYK::buy( - RuntimeOrigin::signed(user_1), - asset_a, - asset_b, - 456_444_678, - 1_000_000_000, - false, - ), - Error::::AssetAmountExceededLimit - ); - - assert_eq!(Currency::free_balance(asset_a, &user_1), 999800000000000); - assert_eq!(Currency::free_balance(asset_b, &user_1), 400000000000000); - - assert_eq!(Currency::free_balance(asset_a, &pair_account), 200000000000); - assert_eq!(Currency::free_balance(asset_b, &pair_account), 600000000000000); - }); -} - -#[test] -fn single_buy_more_than_ratio_out_should_not_work() { - new_test_ext().execute_with(|| { - let user_1 = ALICE; - let asset_a = ACA; - let asset_b = DOT; - - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(user_1), - asset_a, - 200_000_000, - asset_b, - 640_000_000_000, - )); - - let pair_account = XYK::get_pair_id(AssetPair { - asset_in: asset_a, - asset_out: asset_b, - }); - let share_token = XYK::share_token(pair_account); - - assert_eq!(Currency::free_balance(asset_a, &user_1), 999_999_800_000_000); - assert_eq!(Currency::free_balance(asset_b, &user_1), 999_360_000_000_000); - assert_eq!(Currency::free_balance(share_token, &user_1), 640_000_000_000); - - assert_eq!(Currency::free_balance(asset_a, &pair_account), 200_000_000); - assert_eq!(Currency::free_balance(asset_b, &pair_account), 640_000_000_000); - - assert_noop!( - XYK::buy( - RuntimeOrigin::signed(user_1), - asset_a, - asset_b, - 66_666_667, - 1_000_000_000_000, - false, - ), - Error::::MaxOutRatioExceeded - ); - }); -} - -#[test] -fn single_buy_more_than_ratio_in_should_not_work() { - new_test_ext().execute_with(|| { - let user_1 = ALICE; - let asset_a = ACA; - let asset_b = DOT; - - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(user_1), - asset_a, - 100_000_000_000, - asset_b, - 100_000_000_000 - )); - - assert_noop!( - XYK::buy( - RuntimeOrigin::signed(user_1), - asset_a, - asset_b, - 33_333_333_333, - 1_000_000_000_000, - false, - ), - Error::::MaxInRatioExceeded - ); - }); -} - -#[test] -fn single_sell_more_than_ratio_in_should_not_work() { - new_test_ext().execute_with(|| { - let user_1 = ALICE; - let asset_a = ACA; - let asset_b = DOT; - - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(user_1), - asset_a, - 200_000_000_000, - asset_b, - 600_000_000_000_000, - )); - - let pair_account = XYK::get_pair_id(AssetPair { - asset_in: asset_a, - asset_out: asset_b, - }); - let share_token = XYK::share_token(pair_account); - - assert_eq!(Currency::free_balance(asset_a, &user_1), 999_800_000_000_000); - assert_eq!(Currency::free_balance(asset_b, &user_1), 400_000_000_000_000); - assert_eq!(Currency::free_balance(share_token, &user_1), 600_000_000_000_000); - - assert_eq!(Currency::free_balance(asset_a, &pair_account), 200_000_000_000); - assert_eq!(Currency::free_balance(asset_b, &pair_account), 600_000_000_000_000); - - assert_noop!( - XYK::sell( - RuntimeOrigin::signed(user_1), - asset_a, - asset_b, - 66_666_666_667, - 10_000_000, - false, - ), - Error::::MaxInRatioExceeded - ); - }); -} - -#[test] -fn single_sell_more_than_ratio_out_should_not_work() { - ExtBuilder::default().with_max_out_ratio(5).build().execute_with(|| { - let user_1 = ALICE; - let asset_a = ACA; - let asset_b = DOT; - - assert_ok!(XYK::create_pool( - RuntimeOrigin::signed(user_1), - asset_a, - 100_000_000_000, - asset_b, - 100_000_000_000 - )); - - assert_noop!( - XYK::sell( - RuntimeOrigin::signed(user_1), - asset_a, - asset_b, - 33_333_333_333, - 10_000_000, - false, - ), - Error::::MaxOutRatioExceeded - ); - }); -} - -#[test] -fn sell_with_low_amount_should_not_work() { - new_test_ext().execute_with(|| { - assert_noop!( - XYK::sell(RuntimeOrigin::signed(ALICE), HDX, DOT, 1, 1_000_000, false), - Error::::InsufficientTradingAmount - ); - }); -} - -#[test] -fn buy_with_low_amount_should_not_work() { - new_test_ext().execute_with(|| { - assert_noop!( - XYK::buy(RuntimeOrigin::signed(ALICE), HDX, DOT, 1, 1_000_000, false), - Error::::InsufficientTradingAmount - ); - }); -} - -#[test] -fn buy_with_excesive_amount_should_not_work() { - new_test_ext().execute_with(|| { - assert_ok!(XYK::create_pool(RuntimeOrigin::signed(ALICE), HDX, 10_000, DOT, 10_000,)); - - assert_noop!( - XYK::buy(RuntimeOrigin::signed(ALICE), HDX, DOT, 20_000, 1_000_000, false), - Error::::InsufficientPoolAssetBalance - ); - }); -} diff --git a/pallets/xyk/src/trade_execution.rs b/pallets/xyk/src/trade_execution.rs deleted file mode 100644 index 6722ed71133..00000000000 --- a/pallets/xyk/src/trade_execution.rs +++ /dev/null @@ -1,125 +0,0 @@ -use crate::{Config, Error, Pallet}; -use frame_support::ensure; -use frame_support::traits::Get; -use hydradx_traits::router::{ExecutorError, PoolType, TradeExecution}; -use hydradx_traits::AMM; -use orml_traits::MultiCurrency; -use primitives::asset::AssetPair; -use primitives::{AssetId, Balance}; -use sp_runtime::DispatchError; - -impl TradeExecution for Pallet { - type Error = DispatchError; - - fn calculate_sell( - pool_type: PoolType, - asset_in: AssetId, - asset_out: AssetId, - amount_in: Balance, - ) -> Result> { - if pool_type != PoolType::XYK { - return Err(ExecutorError::NotSupported); - } - - let assets = AssetPair { asset_in, asset_out }; - - if !Self::exists(assets) { - return Err(ExecutorError::Error(Error::::TokenPoolNotFound.into())); - } - - let pair_account = Self::get_pair_id(assets); - - let asset_in_reserve = T::Currency::free_balance(assets.asset_in, &pair_account); - let asset_out_reserve = T::Currency::free_balance(assets.asset_out, &pair_account); - - let amount_out = hydra_dx_math::xyk::calculate_out_given_in(asset_in_reserve, asset_out_reserve, amount_in) - .map_err(|_| ExecutorError::Error(Error::::SellAssetAmountInvalid.into()))?; - - ensure!( - asset_out_reserve > amount_out, - ExecutorError::Error(Error::::InsufficientPoolAssetBalance.into()) - ); - - let transfer_fee = Self::calculate_fee(amount_out).map_err(ExecutorError::Error)?; - - let amount_out_without_fee = amount_out - .checked_sub(transfer_fee) - .ok_or_else(|| ExecutorError::Error(Error::::SellAssetAmountInvalid.into()))?; - - Ok(amount_out_without_fee) - } - - fn calculate_buy( - pool_type: PoolType, - asset_in: AssetId, - asset_out: AssetId, - amount_out: Balance, - ) -> Result> { - if pool_type != PoolType::XYK { - return Err(ExecutorError::NotSupported); - } - - let assets = AssetPair { asset_in, asset_out }; - - ensure!( - Self::exists(assets), - ExecutorError::Error(Error::::TokenPoolNotFound.into()) - ); - - let pair_account = Self::get_pair_id(assets); - - let asset_out_reserve = T::Currency::free_balance(assets.asset_out, &pair_account); - let asset_in_reserve = T::Currency::free_balance(assets.asset_in, &pair_account); - - ensure!( - asset_out_reserve > amount_out, - ExecutorError::Error(Error::::InsufficientPoolAssetBalance.into()) - ); - - ensure!( - amount_out >= T::MinTradingLimit::get(), - ExecutorError::Error(Error::::InsufficientTradingAmount.into()) - ); - - let amount_in = hydra_dx_math::xyk::calculate_in_given_out(asset_out_reserve, asset_in_reserve, amount_out) - .map_err(|_| ExecutorError::Error(Error::::BuyAssetAmountInvalid.into()))?; - - let transfer_fee = Self::calculate_fee(amount_in).map_err(ExecutorError::Error)?; - - let amount_in_with_fee = amount_in - .checked_add(transfer_fee) - .ok_or_else(|| ExecutorError::Error(Error::::BuyAssetAmountInvalid.into()))?; - - Ok(amount_in_with_fee) - } - - fn execute_sell( - who: T::RuntimeOrigin, - pool_type: PoolType, - asset_in: AssetId, - asset_out: AssetId, - amount_in: Balance, - min_limit: Balance, - ) -> Result<(), ExecutorError> { - if pool_type != PoolType::XYK { - return Err(ExecutorError::NotSupported); - } - - Self::sell(who, asset_in, asset_out, amount_in, min_limit, false).map_err(ExecutorError::Error) - } - - fn execute_buy( - who: T::RuntimeOrigin, - pool_type: PoolType, - asset_in: AssetId, - asset_out: AssetId, - amount_out: Balance, - max_limit: Balance, - ) -> Result<(), ExecutorError> { - if pool_type != PoolType::XYK { - return Err(ExecutorError::NotSupported); - } - - Self::buy(who, asset_out, asset_in, amount_out, max_limit, false).map_err(ExecutorError::Error) - } -} diff --git a/pallets/xyk/src/weights.rs b/pallets/xyk/src/weights.rs deleted file mode 100644 index ae58714a3a5..00000000000 --- a/pallets/xyk/src/weights.rs +++ /dev/null @@ -1,115 +0,0 @@ -// This file is part of Basilisk-node. - -// Copyright (C) 2020-2022 Intergalactic, Limited (GIB). -// SPDX-License-Identifier: Apache-2.0 - -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -//! Autogenerated weights for amm -//! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 3.0.0 -//! DATE: 2021-03-18, STEPS: [5, ], REPEAT: 20, LOW RANGE: [], HIGH RANGE: [] -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 128 - -// Executed Command: -// target/release/hydra-dx -// benchmark -// --chain=dev -// --steps=5 -// --repeat=20 -// --pallet=amm -// --extrinsic=* -// --execution=wasm -// --wasm-execution=compiled -// --heap-pages=4096 -// --output=weights.rs -// --template=.maintain/pallet-weight-template.hbs - -#![allow(unused_parens)] -#![allow(unused_imports)] -#![allow(clippy::unnecessary_cast)] - -use frame_support::{ - traits::Get, - weights::{constants::RocksDbWeight, Weight}, -}; -use sp_std::marker::PhantomData; - -/// Weight functions needed for amm. -pub trait WeightInfo { - fn create_pool() -> Weight; - fn add_liquidity() -> Weight; - fn remove_liquidity() -> Weight; - fn sell() -> Weight; - fn buy() -> Weight; -} - -/// Weights for amm using the hydraDX node and recommended hardware. -pub struct HydraWeight(PhantomData); - -impl WeightInfo for HydraWeight { - fn create_pool() -> Weight { - Weight::from_ref_time(189_645_000 as u64) - .saturating_add(T::DbWeight::get().reads(11 as u64)) - .saturating_add(T::DbWeight::get().writes(13 as u64)) - } - fn add_liquidity() -> Weight { - Weight::from_ref_time(171_602_000 as u64) - .saturating_add(T::DbWeight::get().reads(9 as u64)) - .saturating_add(T::DbWeight::get().writes(8 as u64)) - } - fn remove_liquidity() -> Weight { - Weight::from_ref_time(170_846_000 as u64) - .saturating_add(T::DbWeight::get().reads(8 as u64)) - .saturating_add(T::DbWeight::get().writes(7 as u64)) - } - fn sell() -> Weight { - Weight::from_ref_time(122_125_000 as u64) - .saturating_add(T::DbWeight::get().reads(5 as u64)) - .saturating_add(T::DbWeight::get().writes(4 as u64)) - } - fn buy() -> Weight { - Weight::from_ref_time(121_289_000 as u64) - .saturating_add(T::DbWeight::get().reads(5 as u64)) - .saturating_add(T::DbWeight::get().writes(4 as u64)) - } -} - -// For backwards compatibility and tests -impl WeightInfo for () { - fn create_pool() -> Weight { - Weight::from_ref_time(189_645_000 as u64) - .saturating_add(RocksDbWeight::get().reads(11 as u64)) - .saturating_add(RocksDbWeight::get().writes(13 as u64)) - } - fn add_liquidity() -> Weight { - Weight::from_ref_time(171_602_000 as u64) - .saturating_add(RocksDbWeight::get().reads(9 as u64)) - .saturating_add(RocksDbWeight::get().writes(8 as u64)) - } - fn remove_liquidity() -> Weight { - Weight::from_ref_time(170_846_000 as u64) - .saturating_add(RocksDbWeight::get().reads(8 as u64)) - .saturating_add(RocksDbWeight::get().writes(7 as u64)) - } - fn sell() -> Weight { - Weight::from_ref_time(122_125_000 as u64) - .saturating_add(RocksDbWeight::get().reads(5 as u64)) - .saturating_add(RocksDbWeight::get().writes(4 as u64)) - } - fn buy() -> Weight { - Weight::from_ref_time(121_289_000 as u64) - .saturating_add(RocksDbWeight::get().reads(5 as u64)) - .saturating_add(RocksDbWeight::get().writes(4 as u64)) - } -} diff --git a/primitives/Cargo.toml b/primitives/Cargo.toml index 0a57d43ae73..22a89bdec8a 100644 --- a/primitives/Cargo.toml +++ b/primitives/Cargo.toml @@ -1,32 +1,31 @@ [package] name = "primitives" -version = "6.5.0" +version = "6.6.0" authors = ["GalacticCouncil"] edition = "2021" repository = "https://github.com/galacticcouncil/Basilisk-node" [build-dependencies] -substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } +substrate-wasm-builder = { workspace = true } [dependencies] codec = { default-features = false, features = ["derive"], package = "parity-scale-codec", version = "3.4.0" } scale-info = { version = "2.3.1", default-features = false, features = ["derive"] } -primitive-types = { default-features = false, version = "0.11.1" } +primitive-types = { workspace = true } serde = { features = ["derive"], optional = true, version = "1.0.136" } static_assertions = "1.1.0" # Polkadot dependencies -polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.38", default-features = false } +polkadot-primitives = { workspace = true } # Substrate dependencies -frame-support = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -frame-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-std = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } +frame-support = { workspace = true } +sp-std = { workspace = true } +sp-runtime = { workspace = true } +sp-core = { workspace = true } [dev-dependencies] -sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } +sp-io = { workspace = true } [features] default = ["std"] diff --git a/primitives/src/asset.rs b/primitives/src/asset.rs deleted file mode 100644 index 534be4e0cbe..00000000000 --- a/primitives/src/asset.rs +++ /dev/null @@ -1,66 +0,0 @@ -// This file is part of Basilisk-node. - -// Copyright (C) 2020-2022 Intergalactic, Limited (GIB). -// SPDX-License-Identifier: Apache-2.0 - -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -use crate::AssetId; - -use codec::{Decode, Encode}; - -use sp_std::vec::Vec; - -use scale_info::TypeInfo; - -#[cfg(feature = "std")] -use serde::{Deserialize, Serialize}; - -/// Asset Pair representation for AMM trades -/// ( asset_a, asset_b ) combination where asset_a is meant to be exchanged for asset_b -/// -/// asset_in represents asset coming into the pool -/// asset_out represents asset coming out of the pool -#[cfg_attr(feature = "std", derive(Serialize, Deserialize))] -#[derive(Debug, Encode, Decode, Copy, Clone, PartialEq, Eq, Default, TypeInfo)] -pub struct AssetPair { - pub asset_in: AssetId, - pub asset_out: AssetId, -} - -impl AssetPair { - pub fn new(asset_in: AssetId, asset_out: AssetId) -> Self { - Self { asset_in, asset_out } - } - /// Return ordered asset tuple (A,B) where A < B - /// Used in storage - pub fn ordered_pair(&self) -> (AssetId, AssetId) { - match self.asset_in <= self.asset_out { - true => (self.asset_in, self.asset_out), - false => (self.asset_out, self.asset_in), - } - } - - /// Return share token name - pub fn name(&self) -> Vec { - let mut buf: Vec = Vec::new(); - - let (asset_a, asset_b) = self.ordered_pair(); - - buf.extend_from_slice(&asset_a.to_le_bytes()); - buf.extend_from_slice(b"HDT"); - buf.extend_from_slice(&asset_b.to_le_bytes()); - - buf - } -} diff --git a/primitives/src/constants.rs b/primitives/src/constants.rs index 7c6b397b035..78deede9cee 100644 --- a/primitives/src/constants.rs +++ b/primitives/src/constants.rs @@ -91,7 +91,7 @@ pub mod chain { /// We allow for pub const MAXIMUM_BLOCK_WEIGHT: Weight = Weight::from_parts( WEIGHT_REF_TIME_PER_SECOND.saturating_div(2), - polkadot_primitives::v2::MAX_POV_SIZE as u64, + polkadot_primitives::v5::MAX_POV_SIZE as u64, ); /// Discounted XYK fee diff --git a/primitives/src/lib.rs b/primitives/src/lib.rs index 332529db3eb..a9b18e98e36 100644 --- a/primitives/src/lib.rs +++ b/primitives/src/lib.rs @@ -36,7 +36,6 @@ use frame_support::{ }, }; -pub mod asset; pub mod constants; /// An index to a block. @@ -99,27 +98,9 @@ pub type HighPrecisionBalance = U256; pub type LowPrecisionBalance = u128; #[cfg_attr(feature = "std", derive(Serialize, Deserialize))] -#[derive(Debug, Encode, Decode, Clone, Copy, PartialEq, Eq, TypeInfo)] +#[derive(Default, Debug, Encode, Decode, Clone, Copy, PartialEq, Eq, TypeInfo)] pub enum IntentionType { + #[default] SELL, BUY, } - -impl Default for IntentionType { - fn default() -> IntentionType { - IntentionType::SELL - } -} - -#[cfg_attr(feature = "std", derive(Serialize, Deserialize))] -#[derive(Encode, Decode, Default, Clone, PartialEq, Eq, TypeInfo)] -pub struct ExchangeIntention { - pub who: AccountId, - pub assets: asset::AssetPair, - pub amount_in: Balance, - pub amount_out: Balance, - pub trade_limit: Balance, - pub discount: bool, - pub sell_or_buy: IntentionType, - pub intention_id: IntentionID, -} diff --git a/rococo-local/config-zombienet.json b/rococo-local/config-zombienet.json new file mode 100644 index 00000000000..bfe22ce08c3 --- /dev/null +++ b/rococo-local/config-zombienet.json @@ -0,0 +1,53 @@ +{ + "settings": { + "provider": "native" + }, + "relaychain": { + "default_command": "../../polkadot/target/release/polkadot", + "chain": "rococo-local", + "nodes": [ + { + "name": "alice", + "ws_port": 9944, + "invulnerable": true + }, + { + "name": "bob", + "ws_port": 9955, + "invulnerable": true + }, + { + "name": "charlie", + "ws_port": 9966, + "invulnerable": true + }, + { + "name": "dave", + "ws_port": 9977, + "invulnerable": true + } + ] + }, + "types": {}, + "hrmp_channels": [], + "parachains": [ + { + "id": 2090, + "cumulus_based": true, + "chain": "local", + "collators": [ + { + "name": "alice", + "command": "../target/release/basilisk", + "ws_port": 9988, + "rpc_port": 9999 + }, + { + "name": "bob", + "command": "../target/release/basilisk", + "ws_port": 9989 + } + ] + } + ] +} diff --git a/runtime/basilisk/Cargo.toml b/runtime/basilisk/Cargo.toml index 0370d279f7f..8020c2580c3 100644 --- a/runtime/basilisk/Cargo.toml +++ b/runtime/basilisk/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "basilisk-runtime" -version = "106.0.0" +version = "108.0.0" authors = ["GalacticCouncil"] edition = "2021" homepage = "https://github.com/galacticcouncil/Basilisk-node" @@ -11,8 +11,7 @@ repository = "https://github.com/galacticcouncil/Basilisk-node" targets = ["x86_64-unknown-linux-gnu"] [build-dependencies] -substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38" } -substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38" } +substrate-wasm-builder = { workspace = true } [dependencies] hex-literal = "0.4.1" @@ -20,24 +19,24 @@ serde = { features = ["derive"], optional = true, version = "1.0.136" } codec = { package = "parity-scale-codec", version = "3.4.0", default-features = false, features = ["derive"] } scale-info = { version = "2.3.1", default-features = false, features = ["derive"] } smallvec = "1.9.0" +log = { workspace = true } # local dependencies primitives = { default-features = false, path = "../../primitives" } -pallet-xyk = { path = "../../pallets/xyk",default-features = false} -pallet-lbp = { path = "../../pallets/lbp", default-features = false } pallet-marketplace = { path = '../../pallets/marketplace', default-features = false } -pallet-xyk-liquidity-mining = { path = "../../pallets/xyk-liquidity-mining", default-features=false} -pallet-xyk-liquidity-mining-benchmarking = { path = "../../pallets/xyk-liquidity-mining/benchmarking", optional = true, default-features = false} +pallet-xyk-liquidity-mining = { path = "../../pallets/xyk-liquidity-mining", default-features = false } +pallet-xyk-liquidity-mining-benchmarking = { path = "../../pallets/xyk-liquidity-mining/benchmarking", optional = true, default-features = false } -pallet-treasury = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -pallet-democracy = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -pallet-scheduler = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -pallet-elections-phragmen = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -pallet-tips = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -pallet-identity = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } +pallet-treasury = { workspace = true } +pallet-democracy = { workspace = true } +pallet-scheduler = { workspace = true } +pallet-elections-phragmen = { workspace = true } +pallet-tips = { workspace = true } +pallet-identity = { workspace = true } -# Warehouse dependencies +# HydraDX dependencies hydradx-traits = { workspace = true } +hydra-dx-math = { workspace = true } pallet-transaction-multi-payment = { workspace = true } pallet-relaychain-info = { workspace = true } pallet-asset-registry = { workspace = true } @@ -51,80 +50,83 @@ pallet-ema-oracle = { workspace = true } pallet-duster = { workspace = true } pallet-collator-rewards = { workspace = true } pallet-xcm-rate-limiter = { workspace = true } +pallet-xyk = { workspace = true } +pallet-lbp = { workspace = true } # collator support -pallet-collator-selection = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.38", default-features = false } -pallet-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } +pallet-collator-selection = { workspace = true } +pallet-authorship = { workspace = true } # ORML dependencies -orml-tokens = { git = "https://github.com/open-web3-stack/open-runtime-module-library", branch = "polkadot-v0.9.38", default-features = false } -orml-traits = { git = "https://github.com/open-web3-stack/open-runtime-module-library", branch = "polkadot-v0.9.38", default-features = false } -orml-vesting = { git = "https://github.com/open-web3-stack/open-runtime-module-library", branch = "polkadot-v0.9.38", default-features = false } -orml-benchmarking = { git = "https://github.com/open-web3-stack/open-runtime-module-library", branch = "polkadot-v0.9.38", default-features = false, optional = true } +orml-tokens = { workspace = true } +orml-traits = { workspace = true } +orml-vesting = { workspace = true } +orml-benchmarking = { workspace = true, optional = true } # orml XCM support -orml-xtokens = { git = "https://github.com/open-web3-stack/open-runtime-module-library", branch = "polkadot-v0.9.38", default-features = false } -orml-xcm-support = { git = "https://github.com/open-web3-stack/open-runtime-module-library", branch = "polkadot-v0.9.38", default-features = false } -orml-unknown-tokens = { git = "https://github.com/open-web3-stack/open-runtime-module-library", branch = "polkadot-v0.9.38", default-features = false } -orml-xcm = { git = "https://github.com/open-web3-stack/open-runtime-module-library", branch = "polkadot-v0.9.38", default-features = false } +orml-xtokens = { workspace = true } +orml-xcm-support = { workspace = true } +orml-unknown-tokens = { workspace = true } +orml-xcm = { workspace = true } # Cumulus dependencies -cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.38", default-features = false } -cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.38", default-features = false } -cumulus-pallet-xcm = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.38", default-features = false } -cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.38", default-features = false } -cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.38", default-features = false } -cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.38", default-features = false } -cumulus-primitives-utility = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.38", default-features = false } -cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.38", default-features = false } -cumulus-primitives-timestamp = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.38", default-features = false } -parachain-info = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.38", default-features = false } +cumulus-pallet-aura-ext = { workspace = true } +cumulus-pallet-parachain-system = { workspace = true } +cumulus-pallet-xcm = { workspace = true } +cumulus-pallet-xcmp-queue = { workspace = true } +cumulus-pallet-dmp-queue = { workspace = true } +cumulus-primitives-core = { workspace = true } +cumulus-primitives-utility = { workspace = true } +cumulus-primitives-parachain-inherent = { workspace = true } +cumulus-primitives-timestamp = { workspace = true } +parachain-info = { workspace = true } # Polkadot dependencies -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.38", default-features = false, features = ["wasm-api"] } -xcm-builder = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.38", default-features = false } -pallet-xcm = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.38", default-features = false } -xcm-executor = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.38", default-features = false } -polkadot-xcm = { package = "xcm", git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.38", default-features = false } +polkadot-parachain = { workspace = true } +xcm-builder = { workspace = true } +pallet-xcm = { workspace = true } +xcm-executor = { workspace = true } +polkadot-xcm = { workspace = true } # Substrate dependencies -frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false, optional = true } -frame-executive = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -frame-support = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -frame-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false} -frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false, optional = true } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -frame-try-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false, optional = true} -pallet-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -pallet-collective = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -pallet-preimage = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -pallet-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -pallet-proxy = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -pallet-multisig = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -pallet-uniques = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -pallet-utility = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-externalities = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-std = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-version = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-staking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-trie = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } -sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.38", default-features = false } +primitive-types = { workspace = true } +frame-benchmarking = { workspace = true, optional = true } +frame-executive = { workspace = true } +frame-support = { workspace = true } +frame-system = { workspace = true } +frame-system-benchmarking = { workspace = true, optional = true } +frame-system-rpc-runtime-api = { workspace = true } +frame-try-runtime = { workspace = true, optional = true } +pallet-aura = { workspace = true } +pallet-balances = { workspace = true } +pallet-collective = { workspace = true } +pallet-preimage = { workspace = true } +pallet-session = { workspace = true } +pallet-proxy = { workspace = true } +pallet-multisig = { workspace = true } +pallet-timestamp = { workspace = true } +pallet-transaction-payment = { workspace = true } +pallet-transaction-payment-rpc-runtime-api = { workspace = true } +pallet-uniques = { workspace = true } +pallet-utility = { workspace = true } +sp-api = { workspace = true } +sp-block-builder = { workspace = true } +sp-consensus-aura = { workspace = true } +sp-core = { workspace = true } +sp-inherents = { workspace = true } +sp-externalities = { workspace = true } +sp-offchain = { workspace = true } +sp-runtime = { workspace = true } +sp-session = { workspace = true } +sp-std = { workspace = true } +sp-transaction-pool = { workspace = true } +sp-version = { workspace = true } +sp-staking = { workspace = true } +sp-trie = { workspace = true } +sp-io = { workspace = true } # InvArch Tinkernet Multisig dependencies -invarch-xcm-builder = { git = "https://github.com/InvArch/InvArch-XCM-Builder", branch = "polkadot-v0.9.38", default-features = false } +orml-xcm-builder-kusama = { workspace = true } [features] default = ["std"] @@ -159,7 +161,9 @@ runtime-benchmarks = [ "pallet-transaction-pause/runtime-benchmarks", "pallet-ema-oracle/runtime-benchmarks", "cumulus-pallet-xcmp-queue/runtime-benchmarks", + "cumulus-pallet-parachain-system/runtime-benchmarks", "pallet-xcm-rate-limiter/runtime-benchmarks", + "pallet-elections-phragmen/runtime-benchmarks", ] std = [ "codec/std", diff --git a/runtime/basilisk/src/adapter.rs b/runtime/basilisk/src/adapter.rs index 3c7fcd5bfbe..11109a4fdcd 100644 --- a/runtime/basilisk/src/adapter.rs +++ b/runtime/basilisk/src/adapter.rs @@ -1,13 +1,26 @@ -use frame_support::dispatch::DispatchError; use frame_support::sp_runtime::DispatchResult; use frame_support::traits::BalanceStatus; +use frame_system::pallet_prelude::BlockNumberFor; +use hydra_dx_math::{ + ema::EmaPrice, + support::rational::{round_u512_to_rational, Rounding}, +}; +use hydradx_traits::{ + router::{PoolType, Trade}, + AggregatedPriceOracle, OraclePeriod, PriceOracle, +}; use orml_traits::currency::TransferAll; use orml_traits::{ LockIdentifier, MultiCurrency, MultiCurrencyExtended, MultiLockableCurrency, MultiReservableCurrency, NamedMultiReservableCurrency, }; +use pallet_ema_oracle::OracleError; +use primitive_types::U512; +use primitives::BlockNumber; +use sp_runtime::DispatchError; +use sp_std::{marker::PhantomData, vec::Vec}; -pub struct OrmlTokensAdapter(sp_std::marker::PhantomData); +pub struct OrmlTokensAdapter(PhantomData); impl MultiCurrency for OrmlTokensAdapter { type CurrencyId = ::CurrencyId; @@ -120,7 +133,7 @@ impl MultiReservableCurrency MultiLockableCurrency for OrmlTokensAdapter { - type Moment = T::BlockNumber; + type Moment = BlockNumberFor; fn set_lock( lock_id: LockIdentifier, @@ -280,3 +293,58 @@ impl NamedMultiReservableCurrency for Orml ) } } + +pub struct OraclePriceProvider(PhantomData<(AssetId, AggregatedPriceGetter)>); + +impl PriceOracle for OraclePriceProvider +where + u32: From, + AggregatedPriceGetter: AggregatedPriceOracle, + AssetId: Clone + Copy, +{ + type Price = EmaPrice; + + /// We calculate prices for trade (in a route) then making the product of them + fn price(route: &[Trade], period: OraclePeriod) -> Option { + let mut prices: Vec = Vec::with_capacity(route.len()); + for trade in route { + let asset_a = trade.asset_in; + let asset_b = trade.asset_out; + let price = match trade.pool { + PoolType::XYK => { + let price_result = AggregatedPriceGetter::get_price( + asset_a, + asset_b, + period, + crate::XYKOracleSourceIdentifier::get(), + ); + + match price_result { + Ok(price) => price.0, + Err(OracleError::SameAsset) => EmaPrice::from(1), + Err(_) => return None, + } + } + _ => return None, + }; + + prices.push(price); + } + + if prices.is_empty() { + return None; + } + + let nominator = prices + .iter() + .try_fold(U512::from(1u128), |acc, price| acc.checked_mul(U512::from(price.n)))?; + + let denominator = prices + .iter() + .try_fold(U512::from(1u128), |acc, price| acc.checked_mul(U512::from(price.d)))?; + + let rat_as_u128 = round_u512_to_rational((nominator, denominator), Rounding::Nearest); + + Some(EmaPrice::new(rat_as_u128.0, rat_as_u128.1)) + } +} diff --git a/runtime/basilisk/src/assets.rs b/runtime/basilisk/src/assets.rs index d0e466abfac..1e4177794f2 100644 --- a/runtime/basilisk/src/assets.rs +++ b/runtime/basilisk/src/assets.rs @@ -18,22 +18,29 @@ use super::*; use crate::governance::{SuperMajorityCouncilOrRoot, SuperMajorityTechCommitteeOrRoot, UnanimousTechCommitteeOrRoot}; use crate::system::NativeAssetId; -use adapter::OrmlTokensAdapter; -use hydradx_adapters::inspect::MultiInspectAdapter; -use hydradx_traits::{AssetPairAccountIdFor, LockedBalance, OraclePeriod}; +use hydradx_traits::{ + router::{inverse_route, AmmTradeWeights, PoolType, Trade}, + AssetPairAccountIdFor, LockedBalance, OnTradeHandler, OraclePeriod, Source, +}; +use pallet_currencies::fungibles::FungibleCurrencies; use pallet_currencies::BasicCurrencyAdapter; +use pallet_lbp::weights::WeightInfo as LbpWeights; +use pallet_route_executor::weights::WeightInfo as RouterWeights; use pallet_transaction_multi_payment::{AddTxAssetOnAccount, RemoveTxAssetOnKilled}; +use pallet_xyk::weights::WeightInfo as XykWeights; use primitives::constants::{ chain::{DISCOUNTED_FEE, MAX_IN_RATIO, MAX_OUT_RATIO, MIN_POOL_LIQUIDITY, MIN_TRADING_LIMIT}, currency::{NATIVE_EXISTENTIAL_DEPOSIT, UNITS}, }; -use codec::Decode; use frame_support::{ parameter_types, sp_runtime::{app_crypto::sp_core::crypto::UncheckedFrom, traits::Zero}, - traits::{AsEnsureOriginWithArg, Contains, Defensive, EnsureOrigin, Get, LockIdentifier, NeverEnsureOrigin}, + traits::{ + AsEnsureOriginWithArg, Contains, Currency, Defensive, EnsureOrigin, Get, Imbalance, LockIdentifier, + NeverEnsureOrigin, OnUnbalanced, + }, BoundedVec, PalletId, }; use frame_system::RawOrigin; @@ -60,10 +67,21 @@ parameter_types! { pub const MaxReserves: u32 = 50; } +// pallet-treasury did not impl OnUnbalanced, need an adapter to handle dust. +type CreditOf = frame_support::traits::fungible::Credit<::AccountId, Balances>; +type NegativeImbalance = >::NegativeImbalance; +pub struct DustRemovalAdapter; +impl OnUnbalanced for DustRemovalAdapter { + fn on_nonzero_unbalanced(amount: CreditOf) { + let new_amount = NegativeImbalance::new(amount.peek()); + Treasury::on_nonzero_unbalanced(new_amount); + } +} + impl pallet_balances::Config for Runtime { /// The type for recording an account's balance. type Balance = Balance; - type DustRemoval = Treasury; + type DustRemoval = DustRemovalAdapter; type RuntimeEvent = RuntimeEvent; /// The ubiquitous event type. type ExistentialDeposit = NativeExistentialDeposit; @@ -72,6 +90,10 @@ impl pallet_balances::Config for Runtime { type MaxLocks = MaxLocks; type MaxReserves = MaxReserves; type ReserveIdentifier = (); + type FreezeIdentifier = (); + type MaxFreezes = (); + type MaxHolds = (); + type RuntimeHoldReason = (); } pub struct CurrencyHooks; @@ -112,7 +134,7 @@ impl orml_tokens::Config for Runtime { // the pallet that contains and emit events and was updated to the polkadot version we use. impl pallet_currencies::Config for Runtime { type RuntimeEvent = RuntimeEvent; - type MultiCurrency = OrmlTokensAdapter; + type MultiCurrency = Tokens; type NativeCurrency = BasicCurrencyAdapter; type GetNativeCurrencyId = NativeAssetId; type WeightInfo = weights::currencies::BasiliskWeight; @@ -177,6 +199,7 @@ parameter_types! { pub const MaxOutRatio: u128 = MAX_OUT_RATIO; pub const RegistryStrLimit: u32 = 32; pub const DiscountedFee: (u32, u32) = DISCOUNTED_FEE; + pub const XYKOracleSourceIdentifier: Source = *b"snek/xyk"; } impl pallet_xyk::Config for Runtime { @@ -191,6 +214,7 @@ impl pallet_xyk::Config for Runtime { type MinPoolLiquidity = MinPoolLiquidity; type MaxInRatio = MaxInRatio; type MaxOutRatio = MaxOutRatio; + type OracleSource = XYKOracleSourceIdentifier; type CanCreatePool = pallet_lbp::DisallowWhenLBPPoolRunning; type AMMHandler = pallet_ema_oracle::OnActivityHandler; type DiscountedFee = DiscountedFee; @@ -246,6 +270,9 @@ impl pallet_lbp::Config for Runtime { type BlockNumberProvider = RelayChainBlockNumberProvider; } +#[cfg(feature = "runtime-benchmarks")] +use codec::Decode; + pub struct RootAsVestingPallet; impl EnsureOrigin for RootAsVestingPallet { type Success = AccountId; @@ -381,23 +408,237 @@ impl warehouse_liquidity_mining::Config for Runtime type PriceAdjustment = warehouse_liquidity_mining::DefaultPriceAdjustment; } -parameter_types! { - pub const MaxNumberOfTrades: u8 = 5; +// Provides weight info for the router. Router extrinsics can be executed with different AMMs, so we split the router weights into two parts: +// the router extrinsic overhead and the AMM weight. +pub struct RouterWeightInfo; +// Calculates the overhead of Router extrinsics. To do that, we benchmark Router::sell with single LBP trade and subtract the weight of LBP::sell. +// This allows us to calculate the weight of any route by adding the weight of AMM trades to the overhead of a router extrinsic. +impl RouterWeightInfo { + pub fn sell_and_calculate_sell_trade_amounts_overhead_weight( + num_of_calc_sell: u32, + num_of_execute_sell: u32, + ) -> Weight { + weights::route_executor::BasiliskWeight::::calculate_and_execute_sell_in_lbp(num_of_calc_sell) + .saturating_sub(weights::lbp::BasiliskWeight::::router_execution_sell( + num_of_calc_sell.saturating_add(num_of_execute_sell), + num_of_execute_sell, + )) + } + + pub fn buy_and_calculate_buy_trade_amounts_overhead_weight( + num_of_calc_buy: u32, + num_of_execute_buy: u32, + ) -> Weight { + let router_weight = weights::route_executor::BasiliskWeight::::calculate_and_execute_buy_in_lbp( + num_of_calc_buy, + num_of_execute_buy, + ); + // Handle this case separately. router_execution_buy provides incorrect weight for the case when only calculate_buy is executed. + let lbp_weight = if (num_of_calc_buy, num_of_execute_buy) == (1, 0) { + weights::lbp::BasiliskWeight::::calculate_buy() + } else { + weights::lbp::BasiliskWeight::::router_execution_buy( + num_of_calc_buy.saturating_add(num_of_execute_buy), + num_of_execute_buy, + ) + }; + router_weight.saturating_sub(lbp_weight) + } + + pub fn set_route_overweight() -> Weight { + let number_of_times_calculate_sell_amounts_executed = 5; //4 calculations + in the validation + let number_of_times_execute_sell_amounts_executed = 0; //We do have it once executed in the validation of the route, but it is without writing to database (as rolled back), and since we pay back successful set_route, we just keep this overhead + + let set_route_overweight = weights::route_executor::BasiliskWeight::::set_route_for_xyk(); + + set_route_overweight.saturating_sub(weights::xyk::BasiliskWeight::::router_execution_sell( + number_of_times_calculate_sell_amounts_executed, + number_of_times_execute_sell_amounts_executed, + )) + } } +impl AmmTradeWeights> for RouterWeightInfo { + // Used in Router::sell extrinsic, which calls AMM::calculate_sell and AMM::execute_sell + fn sell_weight(route: &[Trade]) -> Weight { + let mut weight = Weight::zero(); + let c = 1; // number of times AMM::calculate_sell is executed + let e = 1; // number of times AMM::execute_sell is executed + + for trade in route { + weight.saturating_accrue(Self::sell_and_calculate_sell_trade_amounts_overhead_weight(0, 1)); + + let lbp_weight = weights::lbp::BasiliskWeight::::router_execution_sell(c, e); + let xyk_weight = weights::xyk::BasiliskWeight::::router_execution_sell(c, e) + .saturating_add(::AMMHandler::on_trade_weight()); + + let amm_weight = match trade.pool { + PoolType::LBP => lbp_weight, + PoolType::XYK => xyk_weight, + _ => lbp_weight.max(xyk_weight), + }; + weight.saturating_accrue(amm_weight); + } + + weight + } + + // Used in Router::buy extrinsic, which calls AMM::calculate_buy and AMM::execute_buy + fn buy_weight(route: &[Trade]) -> Weight { + let mut weight = Weight::zero(); + let c = 1; // number of times AMM::calculate_buy is executed + let e = 1; // number of times AMM::execute_buy is executed + + for trade in route { + weight.saturating_accrue(Self::buy_and_calculate_buy_trade_amounts_overhead_weight(0, 1)); + + let lbp_weight = weights::lbp::BasiliskWeight::::router_execution_buy(c, e); + let xyk_weight = weights::xyk::BasiliskWeight::::router_execution_buy(c, e) + .saturating_add(::AMMHandler::on_trade_weight()); + + let amm_weight = match trade.pool { + PoolType::LBP => lbp_weight, + PoolType::XYK => xyk_weight, + _ => lbp_weight.max(xyk_weight), + }; + weight.saturating_accrue(amm_weight); + } + + weight + } + + // Used in DCA::schedule extrinsic, which calls Router::calculate_buy_trade_amounts + fn calculate_buy_trade_amounts_weight(route: &[Trade]) -> Weight { + let mut weight = Weight::zero(); + let c = 1; // number of times AMM::calculate_buy is executed + let e = 0; // number of times AMM::execute_buy is executed + + for trade in route { + weight.saturating_accrue(Self::buy_and_calculate_buy_trade_amounts_overhead_weight(1, 0)); + + let lbp_weight = weights::lbp::BasiliskWeight::::router_execution_buy(c, e); + let xyk_weight = weights::xyk::BasiliskWeight::::router_execution_buy(c, e) + .saturating_add(::AMMHandler::on_trade_weight()); + + let amm_weight = match trade.pool { + PoolType::LBP => lbp_weight, + PoolType::XYK => xyk_weight, + _ => lbp_weight.max(xyk_weight), + }; + weight.saturating_accrue(amm_weight); + } + + weight + } + + // Used in DCA::on_initialize for Order::Sell, which calls Router::calculate_sell_trade_amounts and Router::sell. + fn sell_and_calculate_sell_trade_amounts_weight(route: &[Trade]) -> Weight { + let mut weight = Weight::zero(); + let c = 2; // number of times AMM::calculate_sell is executed + let e = 1; // number of times AMM::execute_sell is executed + + for trade in route { + weight.saturating_accrue(Self::sell_and_calculate_sell_trade_amounts_overhead_weight(1, 1)); + + let lbp_weight = weights::lbp::BasiliskWeight::::router_execution_sell(c, e); + let xyk_weight = weights::xyk::BasiliskWeight::::router_execution_sell(c, e) + .saturating_add(::AMMHandler::on_trade_weight()); + + let amm_weight = match trade.pool { + PoolType::LBP => lbp_weight, + PoolType::XYK => xyk_weight, + _ => lbp_weight.max(xyk_weight), + }; + weight.saturating_accrue(amm_weight); + } + + weight + } + + // Used in DCA::on_initialize for Order::Buy, which calls 2 * Router::calculate_buy_trade_amounts and Router::buy. + fn buy_and_calculate_buy_trade_amounts_weight(route: &[Trade]) -> Weight { + let mut weight = Weight::zero(); + let c = 3; // number of times AMM::calculate_buy is executed + let e = 1; // number of times AMM::execute_buy is executed + + for trade in route { + weight.saturating_accrue(Self::buy_and_calculate_buy_trade_amounts_overhead_weight(2, 1)); + + let lbp_weight = weights::lbp::BasiliskWeight::::router_execution_buy(c, e); + let xyk_weight = weights::xyk::BasiliskWeight::::router_execution_buy(c, e) + .saturating_add(::AMMHandler::on_trade_weight()); + + let amm_weight = match trade.pool { + PoolType::LBP => lbp_weight, + PoolType::XYK => xyk_weight, + _ => lbp_weight.max(xyk_weight), + }; + weight.saturating_accrue(amm_weight); + } + + weight + } + + fn set_route_weight(route: &[Trade]) -> Weight { + let mut weight = Weight::zero(); + + //We ignore the calls for AMM:get_liquidty_depth, as the same logic happens in AMM calculation/execution + + //Overweight + weight.saturating_accrue(Self::set_route_overweight()); + + //Add a sell weight as we do a dry-run sell as validation + weight.saturating_accrue(Self::sell_weight(route)); + + //For the stored route we expect a worst case with max number of trades in the most expensive pool which is LBP + //We have have two sell calculation for that, normal and inverse + weights::lbp::BasiliskWeight::::router_execution_sell(2, 0) + .checked_mul(pallet_route_executor::MAX_NUMBER_OF_TRADES.into()); + + let lbp_weight = weights::lbp::BasiliskWeight::::router_execution_sell(1, 0); + let xyk_weight = weights::xyk::BasiliskWeight::::router_execution_sell(1, 0); + + //Calculate sell amounts for the new route + for trade in route { + let amm_weight = match trade.pool { + PoolType::LBP => lbp_weight, + PoolType::XYK => xyk_weight, + _ => lbp_weight.max(xyk_weight), + }; + weight.saturating_accrue(amm_weight); + } + + //Calculate sell amounts for the inversed new route + for trade in inverse_route(route.to_vec()) { + let amm_weight = match trade.pool { + PoolType::LBP => lbp_weight, + PoolType::XYK => xyk_weight, + _ => lbp_weight.max(xyk_weight), + }; + weight.saturating_accrue(amm_weight); + } + + weight + } +} + +parameter_types! { + pub DefaultRoutePoolType: PoolType = PoolType::XYK; +} impl pallet_route_executor::Config for Runtime { type RuntimeEvent = RuntimeEvent; type AssetId = AssetId; type Balance = Balance; - type MaxNumberOfTrades = MaxNumberOfTrades; - type Currency = MultiInspectAdapter; + type Currency = FungibleCurrencies; type AMM = (XYK, LBP); - type WeightInfo = weights::route_executor::BasiliskWeight; + type NativeAssetId = NativeAssetId; + type DefaultRoutePoolType = DefaultRoutePoolType; + type WeightInfo = RouterWeightInfo; } parameter_types! { pub SupportedPeriods: BoundedVec> = BoundedVec::truncate_from( - vec![OraclePeriod::LastBlock, OraclePeriod::Hour, OraclePeriod::Day, OraclePeriod::Week] + vec![OraclePeriod::LastBlock, OraclePeriod::Short, OraclePeriod::Hour, OraclePeriod::Day, OraclePeriod::Week] ); // There are currently only a few pools, so the number of entries per block is limited. // NOTE: Needs to be updated once the number of pools grows. diff --git a/runtime/basilisk/src/benchmarking/currencies.rs b/runtime/basilisk/src/benchmarking/currencies.rs index 6086e1a79dc..1ba547a0a51 100644 --- a/runtime/basilisk/src/benchmarking/currencies.rs +++ b/runtime/basilisk/src/benchmarking/currencies.rs @@ -123,10 +123,11 @@ runtime_benchmarks! { mod tests { use super::*; use orml_benchmarking::impl_benchmark_test_suite; + use sp_runtime::BuildStorage; fn new_test_ext() -> sp_io::TestExternalities { - frame_system::GenesisConfig::default() - .build_storage::() + frame_system::GenesisConfig::::default() + .build_storage() .unwrap() .into() } diff --git a/runtime/basilisk/src/benchmarking/duster.rs b/runtime/basilisk/src/benchmarking/duster.rs index 952f0dc68ed..b41e8cb44f3 100644 --- a/runtime/basilisk/src/benchmarking/duster.rs +++ b/runtime/basilisk/src/benchmarking/duster.rs @@ -94,10 +94,11 @@ runtime_benchmarks! { mod tests { use super::*; use orml_benchmarking::impl_benchmark_test_suite; + use sp_runtime::BuildStorage; fn new_test_ext() -> sp_io::TestExternalities { - frame_system::GenesisConfig::default() - .build_storage::() + frame_system::GenesisConfig::::default() + .build_storage() .unwrap() .into() } diff --git a/runtime/basilisk/src/benchmarking/marketplace.rs b/runtime/basilisk/src/benchmarking/marketplace.rs index cb702ef0207..e2b019c01e7 100644 --- a/runtime/basilisk/src/benchmarking/marketplace.rs +++ b/runtime/basilisk/src/benchmarking/marketplace.rs @@ -2,7 +2,7 @@ use super::*; use crate::{ AccountId, AssetRegistry, Marketplace, RelayChainAssetId, Runtime, Uniques, NFT, RELAY_CHAIN_ASSET_LOCATION, }; -use frame_benchmarking::{account, vec}; +use frame_benchmarking::account; use frame_support::{ sp_runtime::{traits::StaticLookup, SaturatedConversion}, traits::Get, @@ -14,6 +14,7 @@ use orml_benchmarking::runtime_benchmarks; use pallet_nft::BoundedVecOfUnq; use primitives::{constants::currency::UNITS, CollectionId, ItemId}; use sp_std::convert::TryInto; +use sp_std::vec; const ENDOWMENT: u32 = 1_000_000; const COLLECTION_ID_0: u32 = 1_000_000; @@ -140,10 +141,11 @@ runtime_benchmarks! { mod tests { use super::*; use orml_benchmarking::impl_benchmark_test_suite; + use sp_runtime::BuildStorage; fn new_test_ext() -> sp_io::TestExternalities { - frame_system::GenesisConfig::default() - .build_storage::() + frame_system::GenesisConfig::::default() + .build_storage() .unwrap() .into() } diff --git a/runtime/basilisk/src/benchmarking/mod.rs b/runtime/basilisk/src/benchmarking/mod.rs index 575a63cecfa..881b47b8512 100644 --- a/runtime/basilisk/src/benchmarking/mod.rs +++ b/runtime/basilisk/src/benchmarking/mod.rs @@ -9,7 +9,6 @@ pub mod tokens; pub mod vesting; use crate::AssetRegistry; -use crate::XYK; use crate::Currencies; @@ -55,13 +54,3 @@ pub fn update_asset(asset_id: AssetId, name: Vec, deposit: Balance) -> Resul ) .map_err(|_| ()) } - -pub fn create_pool(who: AccountId, asset_a: AssetId, amount_a: Balance, asset_b: AssetId, amount_b: Balance) { - assert_ok!(XYK::create_pool( - RawOrigin::Signed(who).into(), - asset_a, - amount_a, - asset_b, - amount_b, - )); -} diff --git a/runtime/basilisk/src/benchmarking/multi_payment.rs b/runtime/basilisk/src/benchmarking/multi_payment.rs index b6a5ae6ebfe..0cfec81ebb5 100644 --- a/runtime/basilisk/src/benchmarking/multi_payment.rs +++ b/runtime/basilisk/src/benchmarking/multi_payment.rs @@ -15,20 +15,27 @@ // See the License for the specific language governing permissions and // limitations under the License. -use crate::{AccountId, Runtime}; -use primitives::Price; - use super::*; - -use frame_benchmarking::account; -use frame_benchmarking::BenchmarkError; -use frame_support::assert_ok; +use crate::{AccountId, AssetId, Balance, Currencies, EmaOracle, Runtime, System}; +use hydradx_traits::{ + router::{AssetPair, PoolType, RouteProvider, Trade}, + OraclePeriod, PriceOracle, +}; +use pallet_route_executor::MAX_NUMBER_OF_TRADES; +use primitives::{constants::currency::UNITS, BlockNumber, Price}; + +use frame_benchmarking::{account, BenchmarkError}; +use frame_support::{ + assert_ok, + traits::{OnFinalize, OnInitialize}, +}; use frame_system::RawOrigin; use orml_benchmarking::runtime_benchmarks; - -use hydradx_traits::pools::SpotPriceProvider; +use sp_runtime::FixedU128; type MultiPaymentPallet = pallet_transaction_multi_payment::Pallet; +type XykPallet = pallet_xyk::Pallet; +type Router = pallet_route_executor::Pallet; const SEED: u32 = 1; @@ -64,20 +71,138 @@ runtime_benchmarks! { assert_eq!(MultiPaymentPallet::::get_currency(caller), Some(asset_id)); } - get_spot_price { + get_oracle_price { let maker: AccountId = account("maker", 0, SEED); - let asset_out = 0u32; - let asset_id = register_asset(b"TST".to_vec(), 1u128).map_err(|_| BenchmarkError::Stop("Failed to register asset"))?; - update_balance(asset_out, &maker, 2_000_000_000_000_000); - update_balance(asset_id, &maker, 2_000_000_000_000_000); - - create_pool(maker, asset_out, 1_000_000_000_000_000, asset_id, 500_000_000_000_000); + let asset_1 = register_asset(b"AS1".to_vec(), 1u128).map_err(|_| BenchmarkError::Stop("Failed to register asset"))?; + let asset_2 = register_asset(b"AS2".to_vec(), 1u128).map_err(|_| BenchmarkError::Stop("Failed to register asset"))?; + let asset_3 = register_asset(b"AS3".to_vec(), 1u128).map_err(|_| BenchmarkError::Stop("Failed to register asset"))?; + let asset_4 = register_asset(b"AS4".to_vec(), 1u128).map_err(|_| BenchmarkError::Stop("Failed to register asset"))?; + let asset_5 = register_asset(b"AS5".to_vec(), 1u128).map_err(|_| BenchmarkError::Stop("Failed to register asset"))?; + let asset_6 = register_asset(b"AS6".to_vec(), 1u128).map_err(|_| BenchmarkError::Stop("Failed to register asset"))?; + + create_xyk_pool::(asset_1, 1000 * UNITS, asset_2, 1000 * UNITS); + create_xyk_pool::(asset_2, 1000 * UNITS, asset_3, 1000 * UNITS); + create_xyk_pool::(asset_3, 1000 * UNITS, asset_4, 1000 * UNITS); + create_xyk_pool::(asset_4, 1000 * UNITS, asset_5, 1000 * UNITS); + create_xyk_pool::(asset_5, 1000 * UNITS, asset_6, 1000 * UNITS); + + xyk_sell::(asset_1,asset_2, 10 * UNITS); + xyk_sell::(asset_2,asset_3, 10 * UNITS); + xyk_sell::(asset_3,asset_4, 10 * UNITS); + xyk_sell::(asset_4,asset_5, 10 * UNITS); + xyk_sell::(asset_5,asset_6, 10 * UNITS); + + set_period(10); + + let route = vec![ + Trade { + pool: PoolType::XYK, + asset_in: asset_1, + asset_out: asset_2, + }, + Trade { + pool: PoolType::XYK, + asset_in: asset_2, + asset_out: asset_3, + }, + Trade { + pool: PoolType::XYK, + asset_in: asset_3, + asset_out: asset_4, + }, + Trade { + pool: PoolType::XYK, + asset_in: asset_4, + asset_out: asset_5, + }, + Trade { + pool: PoolType::XYK, + asset_in: asset_5, + asset_out: asset_6, + } + ]; + + assert_eq!(route.len(),MAX_NUMBER_OF_TRADES as usize, "Route length should be as big as max number of trades allowed"); + + Router::::set_route(RawOrigin::Signed(maker).into(), AssetPair::new(asset_1, asset_6), route)?; + + let mut _price = None;//Named with underscore because clippy thinks that the price in the Act part is unused. + + }: { + let on_chain_route = ::RouteProvider::get_route(AssetPair::new(asset_1, asset_6)); + + _price = ::OraclePriceProvider::price(&on_chain_route, OraclePeriod::Short) + .map(|ratio| FixedU128::from_rational(ratio.n, ratio.d)); + + } - }: { ::SpotPriceProvider::spot_price(asset_out, asset_id) } verify{ - assert_eq!(::SpotPriceProvider::spot_price(asset_id, asset_out), - Some(Price::from((1,2)))); + assert!(_price.is_some()); + } +} + +fn create_xyk_pool(asset_a: AssetId, amount_a: Balance, asset_b: AssetId, amount_b: Balance) +where + ::RuntimeOrigin: core::convert::From>, +{ + let maker: AccountId = account("xyk-maker", 0, SEED); + + assert_ok!(Currencies::update_balance( + RawOrigin::Root.into(), + maker.clone(), + asset_a, + amount_a as i128, + )); + assert_ok!(Currencies::update_balance( + RawOrigin::Root.into(), + maker.clone(), + asset_b, + amount_b as i128, + )); + + assert_ok!(XykPallet::::create_pool( + RawOrigin::Signed(maker).into(), + asset_a, + amount_a, + asset_b, + amount_b, + )); +} + +fn xyk_sell(asset_a: AssetId, asset_b: AssetId, amount_a: Balance) +where + ::RuntimeOrigin: core::convert::From>, +{ + let maker: AccountId = account("xyk-seller", 0, SEED); + + assert_ok!(Currencies::update_balance( + RawOrigin::Root.into(), + maker.clone(), + asset_a, + amount_a as i128, + )); + assert_ok!(XykPallet::::sell( + RawOrigin::Signed(maker).into(), + asset_a, + asset_b, + amount_a, + u128::MIN, + false + )); +} + +fn set_period(to: u32) { + while System::block_number() < Into::::into(to) { + let b = System::block_number(); + + System::on_finalize(b); + EmaOracle::on_finalize(b); + + System::on_initialize(b + 1_u32); + EmaOracle::on_initialize(b + 1_u32); + + System::set_block_number(b + 1_u32); } } @@ -85,10 +210,11 @@ runtime_benchmarks! { mod tests { use super::*; use orml_benchmarking::impl_benchmark_test_suite; + use sp_runtime::BuildStorage; fn new_test_ext() -> sp_io::TestExternalities { - frame_system::GenesisConfig::default() - .build_storage::() + frame_system::GenesisConfig::::default() + .build_storage() .unwrap() .into() } diff --git a/runtime/basilisk/src/benchmarking/route_executor.rs b/runtime/basilisk/src/benchmarking/route_executor.rs index 9f4e985370f..493f40ffa38 100644 --- a/runtime/basilisk/src/benchmarking/route_executor.rs +++ b/runtime/basilisk/src/benchmarking/route_executor.rs @@ -16,134 +16,265 @@ // limitations under the License. #![allow(clippy::result_large_err)] -use crate::{AccountId, AssetId, Balance, Currencies, Runtime}; - -use super::*; +use crate::{AccountId, AssetId, AssetRegistry, Balance, Currencies, Router, Runtime, RuntimeOrigin, System, LBP, XYK}; use frame_benchmarking::account; -use frame_benchmarking::BenchmarkError; +use frame_support::dispatch::DispatchResult; +use frame_support::sp_runtime::traits::One; +use frame_support::{assert_ok, ensure}; use frame_system::RawOrigin; +use hydradx_traits::router::AssetPair; +use hydradx_traits::router::{PoolType, RouterT, Trade}; +use hydradx_traits::Registry; use orml_benchmarking::runtime_benchmarks; +use orml_traits::{MultiCurrency, MultiCurrencyExtended}; +use primitives::constants::currency::UNITS; +use sp_std::vec; -use orml_traits::MultiCurrency; +pub const INITIAL_BALANCE: Balance = 10_000_000 * UNITS; -type RouteExecutor = pallet_route_executor::Pallet; +fn funded_account(name: &'static str, index: u32, assets: &[AssetId]) -> AccountId { + let account: AccountId = account(name, index, 0); + for asset in assets { + assert_ok!(>::update_balance( + *asset, + &account, + INITIAL_BALANCE.try_into().unwrap(), + )); + } + account +} -use codec::alloc::string::ToString; -use hydradx_traits::router::PoolType; -use pallet_route_executor::Trade; -use sp_std::vec; +fn setup_lbp(caller: AccountId, asset_in: AssetId, asset_out: AssetId) -> DispatchResult { + let asset_in_amount = 1_000_000_000; + let asset_out_amount = 2_000_000_000; + let initial_weight = 20_000_000; + let final_weight = 90_000_000; + let fee = (2, 1_000); + let fee_collector = caller.clone(); + let repay_target = 0; + + let pool_id = LBP::pair_account_from_assets(asset_in, asset_out); + + LBP::create_pool( + RawOrigin::Root.into(), + caller.clone(), + asset_in, + asset_in_amount, + asset_out, + asset_out_amount, + initial_weight, + final_weight, + pallet_lbp::WeightCurveType::Linear, + fee, + fee_collector, + repay_target, + )?; + ensure!( + pallet_lbp::PoolData::::contains_key(&pool_id), + "Pool does not exist." + ); + + let start = 1u32; + let end = 11u32; -const SEED: u32 = 1; -pub const UNITS: Balance = 100_000_000_000; -const MAX_NUMBER_OF_TRADES: u32 = 5; + LBP::update_pool_data( + RawOrigin::Signed(caller).into(), + pool_id, + None, + Some(start), + Some(end), + None, + None, + None, + None, + None, + )?; -pub fn register_asset_with_name(name_as_bye_string: &[u8]) -> Result { - register_asset(name_as_bye_string.to_vec(), 0u128).map_err(|_| BenchmarkError::Stop("Failed to register asset")) + System::set_block_number(2u32); + Ok(()) } -pub fn create_account(name: &'static str) -> AccountId { - account(name, 0, SEED) +fn create_xyk_pool(asset_a: u32, asset_b: u32) { + let caller: AccountId = funded_account("caller", 0, &[asset_a, asset_b]); + + let amount = 100000 * UNITS; + assert_ok!(Currencies::update_balance( + RuntimeOrigin::root(), + caller.clone(), + asset_a, + amount as i128, + )); + + assert_ok!(Currencies::update_balance( + RuntimeOrigin::root(), + caller.clone(), + asset_b, + amount as i128, + )); + + assert_ok!(XYK::create_pool( + RuntimeOrigin::signed(caller), + asset_a, + amount, + asset_b, + amount, + )); } -pub fn generate_trades(number_of_trades: u32) -> Result<(AssetId, AssetId, Vec>), BenchmarkError> { - let pool_maker: AccountId = create_account("pool_maker"); +runtime_benchmarks! { + {Runtime, pallet_route_executor} - let balance = 2000 * UNITS; - let main_asset_in = register_asset_with_name(b"TST")?; - let main_asset_out = register_asset_with_name(b"TST2")?; - update_balance(main_asset_in, &pool_maker, balance); - update_balance(main_asset_out, &pool_maker, balance); + // Calculates the weight of LBP trade. Used in the calculation to determine the weight of the overhead. + calculate_and_execute_sell_in_lbp { + let c in 0..1; // if c == 1, calculate_sell_trade_amounts is executed - let number_of_intermediate_assets = number_of_trades - 1; + let asset_in = 1u32; + let asset_out = 2u32; + let caller: AccountId = funded_account("caller", 7, &[asset_in, asset_out]); + let seller: AccountId = funded_account("seller", 8, &[asset_in, asset_out]); - //Create intermediate assets - let mut intermediate_assets: Vec = vec![]; - for n in 0..number_of_intermediate_assets { - let intermediate_asset = register_asset_with_name(n.to_string().as_bytes())?; - update_balance(intermediate_asset, &pool_maker, balance); - intermediate_assets.push(intermediate_asset); - } + setup_lbp(caller, asset_in, asset_out)?; - //Create pools and generate trades for intermediate assets - let mut trades: Vec> = vec![]; - let mut asset_in = main_asset_in; - for _ in 0..number_of_intermediate_assets { - let asset_out = intermediate_assets.pop().unwrap(); - create_pool(pool_maker.clone(), asset_in, 1_000 * UNITS, asset_out, 500 * UNITS); - let trade = Trade { - pool: PoolType::XYK, + let trades = vec![Trade { + pool: PoolType::LBP, asset_in, - asset_out, - }; - trades.push(trade); - asset_in = asset_out; - } + asset_out + }]; + + let amount_to_sell: Balance = 100_000_000; - //Create pool and trade for the last trade - create_pool(pool_maker, asset_in, 1_000 * UNITS, main_asset_out, 500 * UNITS); - let last_trade = Trade { - pool: PoolType::XYK, + }: { + if c != 0 { + Router::calculate_sell_trade_amounts(trades.as_slice(), amount_to_sell)?; + } + Router::sell(RawOrigin::Signed(seller.clone()).into(), asset_in, asset_out, amount_to_sell, 0u128, trades.clone())?; + } + verify { + assert_eq!(>::free_balance( asset_in, - asset_out: main_asset_out, - }; - trades.push(last_trade); + &seller, + ), INITIAL_BALANCE - amount_to_sell); + } - Ok((main_asset_in, main_asset_out, trades)) -} + // Calculates the weight of LBP trade. Used in the calculation to determine the weight of the overhead. + calculate_and_execute_buy_in_lbp { + let c in 1..2; // number of times `calculate_buy_trade_amounts` is executed + let b in 0..1; // if e == 1, buy is executed -runtime_benchmarks! { - { Runtime, pallet_route_executor} + let asset_in = 1u32; + let asset_out = 2u32; + let caller: AccountId = funded_account("caller", 0, &[asset_in, asset_out]); + let buyer: AccountId = funded_account("buyer", 1, &[asset_in, asset_out]); - sell { - let n in 1..MAX_NUMBER_OF_TRADES; - let (asset_in, asset_out, trades) = generate_trades(n).unwrap(); + setup_lbp(caller, asset_in, asset_out)?; - let caller: AccountId = create_account("caller"); + let trades = vec![Trade { + pool: PoolType::LBP, + asset_in, + asset_out + }]; - let amount_to_sell = 10 * UNITS; - let caller_asset_in_balance = 2000 * UNITS; - let caller_asset_out_balance = 2000 * UNITS; + let amount_to_buy = 100_000_000; - update_balance(asset_in, &caller, caller_asset_in_balance); }: { - RouteExecutor::::sell(RawOrigin::Signed(caller.clone()).into(), asset_in, asset_out, amount_to_sell, 0u128, trades)? + for _ in 1..c { + Router::calculate_buy_trade_amounts(trades.as_slice(), amount_to_buy)?; + } + if b != 0 { + Router::buy(RawOrigin::Signed(buyer.clone()).into(), asset_in, asset_out, amount_to_buy, u128::MAX, trades)? + } } - verify{ - assert_eq!(>::total_balance(asset_in, &caller), caller_asset_in_balance - amount_to_sell); - assert!(>::total_balance(asset_out, &caller) > 0); + verify { + if b != 0 { + assert!(>::free_balance( + asset_in, + &buyer, + ) < INITIAL_BALANCE); + } } - buy { - let n in 1..MAX_NUMBER_OF_TRADES; - let (asset_in, asset_out, trades) = generate_trades(n).unwrap(); + // Calculates the weight of xyk set route. Used in the calculation to determine the weight of the overhead. + set_route_for_xyk { + let asset_1 = 1u32; + let asset_2 = AssetRegistry::create_asset(&b"FCA".to_vec(), Balance::one())?; + let asset_3 = AssetRegistry::create_asset(&b"FCB".to_vec(), Balance::one())?; + let asset_4 = AssetRegistry::create_asset(&b"FCC".to_vec(), Balance::one())?; - let caller: AccountId = create_account("caller"); + let caller: AccountId = funded_account("caller", 0, &[asset_1, asset_2, asset_3, asset_4]); + let buyer: AccountId = funded_account("buyer", 1, &[asset_1, asset_2, asset_3, asset_4]); + create_xyk_pool(asset_1, asset_2); + create_xyk_pool(asset_2, asset_3); + create_xyk_pool(asset_3, asset_4); + create_xyk_pool(asset_1, asset_3); - let amount_to_buy = UNITS; - let caller_asset_in_balance = 2000 * UNITS; + let route = vec![Trade { + pool: PoolType::XYK, + asset_in: asset_1, + asset_out: asset_2 + },Trade { + pool: PoolType::XYK, + asset_in: asset_2, + asset_out: asset_3 + },Trade { + pool: PoolType::XYK, + asset_in: asset_3, + asset_out: asset_4 + }]; + + Router::set_route( + RawOrigin::Signed(caller.clone()).into(), + AssetPair::new(asset_1, asset_4), + route, + )?; + + let better_route = vec![Trade { + pool: PoolType::XYK, + asset_in: asset_1, + asset_out: asset_3 + },Trade { + pool: PoolType::XYK, + asset_in: asset_3, + asset_out: asset_4 + }]; - update_balance(asset_in, &caller, caller_asset_in_balance); }: { - RouteExecutor::::buy(RawOrigin::Signed(caller.clone()).into(), asset_in, asset_out, amount_to_buy, 10000u128 * UNITS, trades)? + Router::set_route( + RawOrigin::Signed(caller.clone()).into(), + AssetPair::new(asset_1, asset_4), + better_route.clone(), + )?; } - verify{ - assert!(>::total_balance(asset_in, &caller) < caller_asset_in_balance); - assert_eq!(>::total_balance(asset_out, &caller), amount_to_buy); + verify { + let stored_route = Router::route(AssetPair::new(asset_1, asset_4)).unwrap(); + assert_eq!(stored_route, better_route); } - } #[cfg(test)] mod tests { use super::*; + use crate::NativeExistentialDeposit; use orml_benchmarking::impl_benchmark_test_suite; + use sp_runtime::BuildStorage; fn new_test_ext() -> sp_io::TestExternalities { - frame_system::GenesisConfig::default() - .build_storage::() - .unwrap() - .into() + let mut t = frame_system::GenesisConfig::::default() + .build_storage() + .unwrap(); + + pallet_asset_registry::GenesisConfig:: { + registered_assets: vec![ + (b"LRNA".to_vec(), 1_000u128, Some(1)), + (b"DAI".to_vec(), 1_000u128, Some(2)), + ], + native_asset_name: b"BSX".to_vec(), + native_existential_deposit: NativeExistentialDeposit::get(), + } + .assimilate_storage(&mut t) + .unwrap(); + + sp_io::TestExternalities::new(t) } impl_benchmark_test_suite!(new_test_ext(),); diff --git a/runtime/basilisk/src/benchmarking/tokens.rs b/runtime/basilisk/src/benchmarking/tokens.rs index 70a5e0b57bc..c20000524f2 100644 --- a/runtime/basilisk/src/benchmarking/tokens.rs +++ b/runtime/basilisk/src/benchmarking/tokens.rs @@ -103,10 +103,11 @@ runtime_benchmarks! { mod tests { use super::*; use orml_benchmarking::impl_benchmark_test_suite; + use sp_runtime::BuildStorage; fn new_test_ext() -> sp_io::TestExternalities { - frame_system::GenesisConfig::default() - .build_storage::() + frame_system::GenesisConfig::::default() + .build_storage() .unwrap() .into() } diff --git a/runtime/basilisk/src/benchmarking/vesting.rs b/runtime/basilisk/src/benchmarking/vesting.rs index a18b156fda5..ccacb184656 100644 --- a/runtime/basilisk/src/benchmarking/vesting.rs +++ b/runtime/basilisk/src/benchmarking/vesting.rs @@ -120,10 +120,11 @@ runtime_benchmarks! { mod tests { use super::*; use orml_benchmarking::impl_benchmark_test_suite; + use sp_runtime::BuildStorage; fn new_test_ext() -> sp_io::TestExternalities { - frame_system::GenesisConfig::default() - .build_storage::() + frame_system::GenesisConfig::::default() + .build_storage() .unwrap() .into() } diff --git a/runtime/basilisk/src/governance.rs b/runtime/basilisk/src/governance.rs index 62f25c8981a..0526d6e34f7 100644 --- a/runtime/basilisk/src/governance.rs +++ b/runtime/basilisk/src/governance.rs @@ -24,11 +24,12 @@ use primitives::constants::{ use frame_support::{ parameter_types, sp_runtime::{Perbill, Percent, Permill}, - traits::{EitherOfDiverse, EqualPrivilegeOnly, LockIdentifier, NeverEnsureOrigin, U128CurrencyToVote}, + traits::{EitherOfDiverse, EqualPrivilegeOnly, LockIdentifier, NeverEnsureOrigin}, PalletId, }; -use frame_system::EnsureRoot; +use frame_system::{EnsureRoot, EnsureSigned}; use pallet_collective::EnsureProportionAtLeast; +use sp_staking::currency_to_vote::U128CurrencyToVote; pub type MajorityCouncilOrRoot = EitherOfDiverse, EnsureRoot>; @@ -97,6 +98,7 @@ impl pallet_democracy::Config for Runtime { type VetoOrigin = pallet_collective::EnsureMember; type PalletsOrigin = OriginCaller; type Slash = Treasury; + type SubmitOrigin = EnsureSigned; } parameter_types! { @@ -111,7 +113,8 @@ parameter_types! { pub const DesiredRunnersUp: u32 = 9; pub const ElectionsPhragmenPalletId: LockIdentifier = *b"phrelect"; pub const MaxElectionCandidates: u32 = 1_000; - pub const MaxElectionVoters: u32 = 10_000; + pub const MaxElectionVoters: u32 = 1_000; + pub const MaxVotesPerVoter: u32 = 5; } impl pallet_elections_phragmen::Config for Runtime { @@ -132,12 +135,14 @@ impl pallet_elections_phragmen::Config for Runtime { type MaxCandidates = MaxElectionCandidates; type MaxVoters = MaxElectionVoters; type WeightInfo = (); + type MaxVotesPerVoter = MaxVotesPerVoter; } parameter_types! { pub const CouncilMotionDuration: BlockNumber = 5 * DAYS; pub const CouncilMaxProposals: u32 = 13; pub const CouncilMaxMembers: u32 = 7; + pub MaxProposalWeight: Weight = Perbill::from_percent(50) * BlockWeights::get().max_block; } type CouncilCollective = pallet_collective::Instance1; @@ -149,7 +154,9 @@ impl pallet_collective::Config for Runtime { type MaxProposals = CouncilMaxProposals; type MaxMembers = CouncilMaxMembers; type DefaultVote = pallet_collective::PrimeDefaultVote; - type WeightInfo = (); + type WeightInfo = weights::collective::BasiliskWeight; // use the weights from TechnicalCommittee because we are not able to benchmark both pallets + type MaxProposalWeight = MaxProposalWeight; + type SetMembersOrigin = EnsureRoot; } parameter_types! { @@ -167,7 +174,9 @@ impl pallet_collective::Config for Runtime { type MaxProposals = TechnicalMaxProposals; type MaxMembers = TechnicalMaxMembers; type DefaultVote = pallet_collective::PrimeDefaultVote; - type WeightInfo = (); + type WeightInfo = weights::collective::BasiliskWeight; + type MaxProposalWeight = MaxProposalWeight; + type SetMembersOrigin = EnsureRoot; } parameter_types! { diff --git a/runtime/basilisk/src/lib.rs b/runtime/basilisk/src/lib.rs index 503a2aa3184..3faad1886dd 100644 --- a/runtime/basilisk/src/lib.rs +++ b/runtime/basilisk/src/lib.rs @@ -23,6 +23,7 @@ #![allow(clippy::large_enum_variant)] #![allow(clippy::from_over_into)] #![allow(clippy::match_like_matches_macro)] +#![allow(clippy::items_after_test_module)] // Make the WASM binary available. #[cfg(feature = "std")] @@ -39,7 +40,7 @@ mod adapter; mod assets; mod governance; mod system; -mod xcm; +pub mod xcm; pub use assets::*; pub use governance::*; @@ -56,6 +57,7 @@ use frame_support::sp_runtime::{ transaction_validity::{TransactionSource, TransactionValidity}, ApplyExtrinsicResult, }; +use frame_system::pallet_prelude::BlockNumberFor; use sp_api::impl_runtime_apis; pub use sp_consensus_aura::sr25519::AuthorityId as AuraId; use sp_core::{ConstU32, OpaqueMetadata}; @@ -73,6 +75,10 @@ use frame_support::{construct_runtime, weights::Weight}; /// to even the core data structures. pub mod opaque { use super::*; + use sp_runtime::{ + generic, + traits::{BlakeTwo256, Hash as HashT}, + }; pub use sp_runtime::OpaqueExtrinsic as UncheckedExtrinsic; @@ -82,6 +88,8 @@ pub mod opaque { pub type Block = generic::Block; /// Opaque block identifier type. pub type BlockId = generic::BlockId; + /// Opaque block hash type. + pub type Hash = ::Output; impl_opaque_keys! { pub struct SessionKeys { pub aura: Aura, @@ -94,7 +102,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("basilisk"), impl_name: create_runtime_str!("basilisk"), authoring_version: 1, - spec_version: 106, + spec_version: 108, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 1, @@ -129,13 +137,13 @@ pub struct RelayChainBlockNumberProvider(PhantomData); impl BlockNumberProvider for RelayChainBlockNumberProvider { - type BlockNumber = BlockNumber; + type BlockNumber = BlockNumberFor; fn current_block_number() -> Self::BlockNumber { let maybe_data = cumulus_pallet_parachain_system::Pallet::::validation_data(); if let Some(data) = maybe_data { - data.relay_parent_number + data.relay_parent_number.into() } else { Self::BlockNumber::default() } @@ -144,7 +152,7 @@ impl BlockNumb #[cfg(feature = "runtime-benchmarks")] impl BlockNumberProvider for RelayChainBlockNumberProvider { - type BlockNumber = ::BlockNumber; + type BlockNumber = BlockNumberFor; fn current_block_number() -> Self::BlockNumber { frame_system::Pallet::::current_block_number() @@ -153,10 +161,7 @@ impl BlockNumberProvider for RelayChainBlockNumberProvi // Create the runtime by composing the FRAME pallets that were previously configured. construct_runtime!( - pub enum Runtime where - Block = Block, - NodeBlock = opaque::Block, - UncheckedExtrinsic = UncheckedExtrinsic + pub enum Runtime { // Substrate System: frame_system exclude_parts { Origin } = 0, @@ -258,16 +263,8 @@ pub type Executive = frame_executive::Executive< Runtime, AllPalletsReversedWithSystemFirst, ( - pallet_preimage::migration::v1::Migration, - pallet_democracy::migrations::v1::Migration, - pallet_multisig::migrations::v1::MigrateToV1, - pallet_xcm::migration::v1::MigrateToV1, - DmpQueue, - XcmpQueue, - ParachainSystem, migrations::OnRuntimeUpgradeMigration, - migrations::MigrateRegistryLocationToV3, - migrations::XcmRateLimitMigration, + pallet_transaction_pause::migration::v1::Migration, ), >; @@ -290,6 +287,14 @@ impl_runtime_apis! { fn metadata() -> OpaqueMetadata { OpaqueMetadata::new(Runtime::metadata().into()) } + + fn metadata_at_version(version: u32) -> Option { + Runtime::metadata_at_version(version) + } + + fn metadata_versions() -> sp_std::vec::Vec { + Runtime::metadata_versions() + } } impl sp_block_builder::BlockBuilder for Runtime { @@ -360,7 +365,7 @@ impl_runtime_apis! { #[cfg(feature = "try-runtime")] impl frame_try_runtime::TryRuntime for Runtime { fn on_runtime_upgrade(checks: frame_try_runtime::UpgradeCheckSelect) -> (Weight, Weight) { - //log::info!("try-runtime::on_runtime_upgrade."); + log::info!("try-runtime::on_runtime_upgrade."); let weight = Executive::try_runtime_upgrade(checks).unwrap(); (weight, BlockWeights::get().max_block) } @@ -437,6 +442,7 @@ impl_runtime_apis! { list_benchmark!(list, extra, pallet_scheduler, Scheduler); list_benchmark!(list, extra, pallet_utility, Utility); list_benchmark!(list, extra, pallet_tips, Tips); + list_benchmark!(list, extra, pallet_collective, TechnicalCommittee); list_benchmark!(list, extra, cumulus_pallet_xcmp_queue, XcmpQueue); list_benchmark!(list, extra, pallet_xcm, PolkadotXcm); @@ -457,14 +463,24 @@ impl_runtime_apis! { fn dispatch_benchmark( config: frame_benchmarking::BenchmarkConfig ) -> Result, sp_runtime::RuntimeString> { - use frame_benchmarking::{Benchmarking, BenchmarkBatch, add_benchmark, TrackedStorageKey}; + use frame_benchmarking::{BenchmarkError, Benchmarking, BenchmarkBatch, add_benchmark}; + use frame_support::traits::TrackedStorageKey; use orml_benchmarking::add_benchmark as orml_add_benchmark; use frame_system_benchmarking::Pallet as SystemBench; use pallet_xyk_liquidity_mining_benchmarking::Pallet as XYKLiquidityMiningBench; - impl frame_system_benchmarking::Config for Runtime {} + impl frame_system_benchmarking::Config for Runtime { + fn setup_set_code_requirements(code: &sp_std::vec::Vec) -> Result<(), BenchmarkError> { + ParachainSystem::initialize_for_set_code_benchmark(code.len() as u32); + Ok(()) + } + + fn verify_set_code() { + System::assert_last_event(cumulus_pallet_parachain_system::Event::::ValidationFunctionStored.into()); + } + } impl pallet_xyk_liquidity_mining_benchmarking::Config for Runtime {} let whitelist: Vec = vec![ @@ -504,6 +520,7 @@ impl_runtime_apis! { add_benchmark!(params, batches, pallet_scheduler, Scheduler); add_benchmark!(params, batches, pallet_utility, Utility); add_benchmark!(params, batches, pallet_tips, Tips); + add_benchmark!(params, batches, pallet_collective, TechnicalCommittee); add_benchmark!(params, batches, cumulus_pallet_xcmp_queue, XcmpQueue); add_benchmark!(params, batches, pallet_xcm, PolkadotXcm); diff --git a/runtime/basilisk/src/migrations.rs b/runtime/basilisk/src/migrations.rs index 555c116aa03..73fcb8e3e2e 100644 --- a/runtime/basilisk/src/migrations.rs +++ b/runtime/basilisk/src/migrations.rs @@ -1,112 +1,52 @@ -use super::*; - -use frame_support::{ - log, migration::storage_key_iter, pallet_prelude::*, traits::OnRuntimeUpgrade, weights::Weight, StoragePrefixedMap, -}; -use pallet_asset_registry::{AssetLocations, LocationAssets}; -use polkadot_xcm::v3::MultiLocation; +use crate::Runtime; +use frame_support::{traits::OnRuntimeUpgrade, weights::Weight}; +#[cfg(feature = "try-runtime")] +use sp_std::prelude::*; pub struct OnRuntimeUpgradeMigration; impl OnRuntimeUpgrade for OnRuntimeUpgradeMigration { #[cfg(feature = "try-runtime")] - fn pre_upgrade() -> Result, &'static str> { - frame_support::log::info!("PreMigrate Duster Pallet start"); - pallet_duster::migration::v1::pre_migrate::(); - frame_support::log::info!("PreMigrate Duster Pallet end"); + fn pre_upgrade() -> Result, sp_runtime::DispatchError> { + log::info!("PreMigrate Collator Selection Pallet start"); + let number_of_invulnerables = pallet_collator_selection::migration::v1::MigrateToV1::::pre_upgrade()?; + log::info!("PreMigrate Collator Selection Pallet end"); + + log::info!("PreMigrate Collator Rewards Pallet start"); + pallet_collator_rewards::migration::v1::pre_migrate::(); + log::info!("PreMigrate Collator Rewards Pallet end"); - Ok(vec![]) + Ok(number_of_invulnerables) } fn on_runtime_upgrade() -> Weight { let mut weight: Weight = Weight::zero(); - frame_support::log::info!("Migrate Scheduler Pallet to v4 start"); - weight = weight.saturating_add(Scheduler::migrate_v1_to_v4()); - frame_support::log::info!("Migrate Scheduler Pallet to v4 end"); - - frame_support::log::info!("Migrate Duster Pallet to v1 start"); - weight = weight.saturating_add(pallet_duster::migration::v1::migrate::( - get_all_module_accounts(), - TreasuryAccount::get(), - TreasuryAccount::get(), - )); - frame_support::log::info!("Migrate Duster Pallet to v1 end"); + log::info!("Migrate Collator Selection Pallet to v1 start"); + weight = weight + .saturating_add(pallet_collator_selection::migration::v1::MigrateToV1::::on_runtime_upgrade()); + log::info!("Migrate Collator Selection Pallet to v1 end"); - weight - } + log::info!("Migrate Collator Rewards Pallet to v1 start"); + weight = weight.saturating_add(pallet_collator_rewards::migration::v1::migrate::()); + log::info!("Migrate Collator Rewards Pallet to v1 end"); - #[cfg(feature = "try-runtime")] - fn post_upgrade(_state: Vec) -> Result<(), &'static str> { - frame_support::log::info!("PostMigrate Duster Pallet start"); - pallet_duster::migration::v1::post_migrate::(); - frame_support::log::info!("PostMigrate Duster Pallet end"); - Ok(()) - } -} - -#[derive(Debug, Encode, Decode, Clone, PartialEq, Eq, TypeInfo)] -pub struct AssetLocationV2(pub polkadot_xcm::v2::MultiLocation); - -pub struct MigrateRegistryLocationToV3(PhantomData); -impl OnRuntimeUpgrade for MigrateRegistryLocationToV3 -where - AssetLocation: Into, -{ - fn on_runtime_upgrade() -> Weight { - log::info!( - target: "runtime::asset-registry", - "MigrateRegistryLocationToV3::on_runtime_upgrade: migrating asset locations to v3" - ); + log::info!("Migrate Unknown Tokens Pallet to v2 start"); + weight = weight.saturating_add(orml_unknown_tokens::Migration::::on_runtime_upgrade()); + log::info!("Migrate Unknown Tokens Pallet to v2 end"); - let mut weight: Weight = Weight::zero(); - - AssetLocations::::translate(|_asset_id, old_location: AssetLocationV2| { - weight.saturating_accrue(T::DbWeight::get().reads_writes(1, 1)); - let new_multi_loc: MultiLocation = old_location.0.try_into().expect("xcm::v1::MultiLocation"); - let new_location: T::AssetNativeLocation = AssetLocation(new_multi_loc).into(); - Some(new_location) - }); - - let module_prefix = LocationAssets::::module_prefix(); - let storage_prefix = LocationAssets::::storage_prefix(); - let old_data = storage_key_iter::(module_prefix, storage_prefix) - .drain() - .collect::>(); - for (old_location, asset_id) in old_data { - weight.saturating_accrue(T::DbWeight::get().reads_writes(1, 1)); - let new_multi_loc: MultiLocation = old_location.0.try_into().expect("xcm::v1::MultiLocation"); - let new_location: T::AssetNativeLocation = AssetLocation(new_multi_loc).into(); - LocationAssets::::insert(new_location, asset_id); - } weight } -} -pub struct XcmRateLimitMigration; -impl OnRuntimeUpgrade for XcmRateLimitMigration { #[cfg(feature = "try-runtime")] - fn pre_upgrade() -> Result, &'static str> { - frame_support::log::info!("PreMigrate Asset Registry Pallet start"); - pallet_asset_registry::migration::v1::pre_migrate::(); - frame_support::log::info!("PreMigrate Asset Registry Pallet end"); - - Ok(vec![]) - } + fn post_upgrade(state: Vec) -> Result<(), sp_runtime::DispatchError> { + log::info!("PostMigrate Collator Selection Pallet start"); + let migration_result = pallet_collator_selection::migration::v1::MigrateToV1::::post_upgrade(state); + log::info!("PostMigrate Collator Selection Pallet end"); - fn on_runtime_upgrade() -> Weight { - log::info!( - target: "runtime::asset-registry", - "XcmRateLimitMigration::on_runtime_upgrade: migrating asset details to include xcm rate limit" - ); + log::info!("PostMigrate Collator Rewards Pallet start"); + pallet_collator_rewards::migration::v1::post_migrate::(); + log::info!("PostMigrate Collator Rewards Pallet end"); - pallet_asset_registry::migration::v1::migrate::() - } - - #[cfg(feature = "try-runtime")] - fn post_upgrade(_state: Vec) -> Result<(), &'static str> { - frame_support::log::info!("PostMigrate Asset Registry Pallet start"); - pallet_asset_registry::migration::v1::post_migrate::(); - frame_support::log::info!("PostMigrate Asset Registry Pallet end"); - Ok(()) + migration_result } } diff --git a/runtime/basilisk/src/system.rs b/runtime/basilisk/src/system.rs index 7795548b95a..878ef3d05b9 100644 --- a/runtime/basilisk/src/system.rs +++ b/runtime/basilisk/src/system.rs @@ -30,14 +30,15 @@ use codec::{Decode, Encode, MaxEncodedLen}; use frame_support::{ dispatch::DispatchClass, parameter_types, - sp_runtime::{traits::IdentityLookup, FixedPointNumber, Perbill, Perquintill}, - traits::{Contains, InstanceFilter}, + sp_runtime::{traits::IdentityLookup, FixedPointNumber, Perbill, Perquintill, RuntimeDebug}, + traits::{ConstBool, Contains, InstanceFilter}, weights::{ constants::{BlockExecutionWeight, RocksDbWeight, WEIGHT_REF_TIME_PER_MICROS}, ConstantMultiplier, WeightToFeeCoefficient, WeightToFeeCoefficients, WeightToFeePolynomial, }, - PalletId, RuntimeDebug, + PalletId, }; +use hydradx_adapters::RelayChainBlockNumberProvider; use scale_info::TypeInfo; /// We assume that an on-initialize consumes 2.5% of the weight on average, hence a single extrinsic @@ -82,7 +83,7 @@ parameter_types! { /// Basilisk base weight of an extrinsic /// This includes weight for payment in non-native currency. // Default substrate base weight is 125 * WEIGHT_PER_MICROS - pub const BasiliskExtrinsicBaseWeight: Weight = Weight::from_ref_time(200 * WEIGHT_REF_TIME_PER_MICROS); + pub const BasiliskExtrinsicBaseWeight: Weight = Weight::from_parts(200 * WEIGHT_REF_TIME_PER_MICROS, 0); pub const Version: RuntimeVersion = VERSION; /// Block weights base values and limits. pub BlockWeights: frame_system::limits::BlockWeights = frame_system::limits::BlockWeights::builder() @@ -116,9 +117,9 @@ impl frame_system::Config for Runtime { /// The aggregated dispatch type that is available for extrinsics. type RuntimeCall = RuntimeCall; /// The index type for storing how many extrinsics an account has signed. - type Index = Index; + type Nonce = Index; /// The index type for blocks. - type BlockNumber = BlockNumber; + type Block = Block; /// The type for hashing blocks and tries. type Hash = Hash; /// The hashing algorithm used. @@ -127,8 +128,6 @@ impl frame_system::Config for Runtime { type AccountId = AccountId; /// The lookup mechanism to get account ID from whatever is passed in dispatchers. type Lookup = IdentityLookup; - /// The header type. - type Header = generic::Header; /// The ubiquitous event type. type RuntimeEvent = RuntimeEvent; /// Maximum number of block number to block hash mappings to keep (oldest pruned first). @@ -228,7 +227,8 @@ impl pallet_transaction_multi_payment::Config for Runtime { type RuntimeEvent = RuntimeEvent; type AcceptedCurrencyOrigin = MajorityTechCommitteeOrRoot; type Currencies = Currencies; - type SpotPriceProvider = pallet_xyk::XYKSpotPrice; + type RouteProvider = Router; + type OraclePriceProvider = adapter::OraclePriceProvider; type WeightInfo = weights::payment::BasiliskWeight; type WeightToFee = WeightToFee; type NativeAssetId = NativeAssetId; @@ -331,6 +331,7 @@ impl pallet_aura::Config for Runtime { type AuthorityId = AuraId; type MaxAuthorities = MaxAuthorities; type DisabledValidators = (); + type AllowMultipleBlocksPerSlot = ConstBool; } impl pallet_utility::Config for Runtime { @@ -352,7 +353,6 @@ impl pallet_authorship::Config for Runtime { parameter_types! { pub const PotId: PalletId = PalletId(*b"PotStake"); pub const MaxCandidates: u32 = 20; - pub const MinCandidates: u32 = 4; pub const MaxInvulnerables: u32 = 50; } @@ -362,7 +362,6 @@ impl pallet_collator_selection::Config for Runtime { type UpdateOrigin = MajorityTechCommitteeOrRoot; type PotId = PotId; type MaxCandidates = MaxCandidates; - type MinCandidates = MinCandidates; type MaxInvulnerables = MaxInvulnerables; // should be a multiple of session or things will get inconsistent type KickThreshold = Period; @@ -370,6 +369,7 @@ impl pallet_collator_selection::Config for Runtime { type ValidatorIdOf = pallet_collator_selection::IdentityCollator; type ValidatorRegistration = Session; type WeightInfo = weights::collator_selection::BasiliskWeight; + type MinEligibleCollators = ConstU32<4>; } parameter_types! { @@ -426,6 +426,7 @@ impl pallet_collator_rewards::Config for Runtime { // We wrap the ` SessionManager` implementation of `CollatorSelection` to get the collatrs that // we hand out rewards to. type SessionManager = CollatorSelection; + type MaxCandidates = MaxInvulnerables; } parameter_types! { diff --git a/runtime/basilisk/src/tests.rs b/runtime/basilisk/src/tests.rs index 2bd4959a790..6179dc291da 100644 --- a/runtime/basilisk/src/tests.rs +++ b/runtime/basilisk/src/tests.rs @@ -4,7 +4,7 @@ use crate::*; use codec::Encode; use frame_support::{ dispatch::{DispatchClass, GetDispatchInfo}, - sp_runtime::{traits::Convert, FixedPointNumber}, + sp_runtime::{traits::Convert, BuildStorage, FixedPointNumber}, weights::WeightToFee, }; use pallet_transaction_payment::Multiplier; @@ -24,7 +24,7 @@ fn full_block_cost() { let max_weight = BlockWeights::get() .get(DispatchClass::Normal) .max_total - .unwrap_or(Weight::from_ref_time(1)); + .unwrap_or(Weight::from_parts(1, 0)); let weight_fee = crate::WeightToFee::weight_to_fee(&max_weight); assert_eq!(weight_fee, 20_625_000_000_000_000); @@ -77,8 +77,8 @@ fn run_with_system_weight(w: Weight, mut assertions: F) where F: FnMut(), { - let mut t: sp_io::TestExternalities = frame_system::GenesisConfig::default() - .build_storage::() + let mut t: sp_io::TestExternalities = frame_system::GenesisConfig::::default() + .build_storage() .unwrap() .into(); t.execute_with(|| { diff --git a/runtime/basilisk/src/weights/asset_registry.rs b/runtime/basilisk/src/weights/asset_registry.rs index 74fba1419cc..7899805e181 100644 --- a/runtime/basilisk/src/weights/asset_registry.rs +++ b/runtime/basilisk/src/weights/asset_registry.rs @@ -15,25 +15,27 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_asset_registry +//! Autogenerated weights for `pallet_asset_registry` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-01, STEPS: 5, REPEAT: 20, LOW RANGE: [], HIGH RANGE: [] -//! EXECUTION: None, WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! DATE: 2023-12-06, STEPS: `10`, REPEAT: `30`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: // target/release/basilisk // benchmark // pallet -// --pallet=pallet-asset-registry // --chain=dev +// --steps=10 +// --repeat=30 +// --wasm-execution=compiled +// --heap-pages=4096 +// --template=.maintain/pallet-weight-template-no-back.hbs +// --pallet=pallet-asset-registry +// --output=weights-1.1.0/asset_registry.rs // --extrinsic=* -// --steps=5 -// --repeat=20 -// --output -// asset_registry.rs -// --template -// .maintain/pallet-weight-template-no-back.hbs #![allow(unused_parens)] #![allow(unused_imports)] @@ -50,54 +52,66 @@ use pallet_asset_registry::weights::WeightInfo; pub struct BasiliskWeight(PhantomData); impl WeightInfo for BasiliskWeight { - // Storage: AssetRegistry AssetIds (r:1 w:1) - // Proof Skipped: AssetRegistry AssetIds (max_values: None, max_size: None, mode: Measured) - // Storage: AssetRegistry NextAssetId (r:1 w:1) - // Proof Skipped: AssetRegistry NextAssetId (max_values: Some(1), max_size: None, mode: Measured) - // Storage: AssetRegistry LocationAssets (r:1 w:1) - // Proof Skipped: AssetRegistry LocationAssets (max_values: None, max_size: None, mode: Measured) - // Storage: AssetRegistry AssetLocations (r:0 w:1) - // Proof Skipped: AssetRegistry AssetLocations (max_values: None, max_size: None, mode: Measured) - // Storage: AssetRegistry AssetMetadataMap (r:0 w:1) - // Proof Skipped: AssetRegistry AssetMetadataMap (max_values: None, max_size: None, mode: Measured) - // Storage: AssetRegistry Assets (r:0 w:1) - // Proof Skipped: AssetRegistry Assets (max_values: None, max_size: None, mode: Measured) + /// Storage: `AssetRegistry::AssetIds` (r:1 w:1) + /// Proof: `AssetRegistry::AssetIds` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::NextAssetId` (r:1 w:1) + /// Proof: `AssetRegistry::NextAssetId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::LocationAssets` (r:1 w:1) + /// Proof: `AssetRegistry::LocationAssets` (`max_values`: None, `max_size`: Some(622), added: 3097, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::AssetLocations` (r:0 w:1) + /// Proof: `AssetRegistry::AssetLocations` (`max_values`: None, `max_size`: Some(614), added: 3089, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::AssetMetadataMap` (r:0 w:1) + /// Proof: `AssetRegistry::AssetMetadataMap` (`max_values`: None, `max_size`: Some(46), added: 2521, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:0 w:1) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) fn register() -> Weight { - // Minimum execution time: 20_833 nanoseconds. - Weight::from_ref_time(21_550_000 as u64) - .saturating_add(T::DbWeight::get().reads(3 as u64)) - .saturating_add(T::DbWeight::get().writes(6 as u64)) + // Proof Size summary in bytes: + // Measured: `305` + // Estimated: `4087` + // Minimum execution time: 46_391_000 picoseconds. + Weight::from_parts(47_096_000, 4087) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(6_u64)) } - // Storage: AssetRegistry Assets (r:1 w:1) - // Proof Skipped: AssetRegistry Assets (max_values: None, max_size: None, mode: Measured) - // Storage: AssetRegistry AssetIds (r:1 w:2) - // Proof Skipped: AssetRegistry AssetIds (max_values: None, max_size: None, mode: Measured) + /// Storage: `AssetRegistry::Assets` (r:1 w:1) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::AssetIds` (r:1 w:2) + /// Proof: `AssetRegistry::AssetIds` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`) fn update() -> Weight { - // Minimum execution time: 17_281 nanoseconds. - Weight::from_ref_time(17_611_000 as u64) - .saturating_add(T::DbWeight::get().reads(2 as u64)) - .saturating_add(T::DbWeight::get().writes(3 as u64)) + // Proof Size summary in bytes: + // Measured: `372` + // Estimated: `3552` + // Minimum execution time: 28_884_000 picoseconds. + Weight::from_parts(29_304_000, 3552) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } - // Storage: AssetRegistry Assets (r:1 w:0) - // Proof Skipped: AssetRegistry Assets (max_values: None, max_size: None, mode: Measured) - // Storage: AssetRegistry AssetMetadataMap (r:0 w:1) - // Proof Skipped: AssetRegistry AssetMetadataMap (max_values: None, max_size: None, mode: Measured) + /// Storage: `AssetRegistry::Assets` (r:1 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::AssetMetadataMap` (r:0 w:1) + /// Proof: `AssetRegistry::AssetMetadataMap` (`max_values`: None, `max_size`: Some(46), added: 2521, mode: `MaxEncodedLen`) fn set_metadata() -> Weight { - // Minimum execution time: 12_962 nanoseconds. - Weight::from_ref_time(13_255_000 as u64) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Size summary in bytes: + // Measured: `300` + // Estimated: `3552` + // Minimum execution time: 21_653_000 picoseconds. + Weight::from_parts(21_923_000, 3552) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } - // Storage: AssetRegistry Assets (r:1 w:0) - // Proof Skipped: AssetRegistry Assets (max_values: None, max_size: None, mode: Measured) - // Storage: AssetRegistry LocationAssets (r:1 w:1) - // Proof Skipped: AssetRegistry LocationAssets (max_values: None, max_size: None, mode: Measured) - // Storage: AssetRegistry AssetLocations (r:1 w:1) - // Proof Skipped: AssetRegistry AssetLocations (max_values: None, max_size: None, mode: Measured) + /// Storage: `AssetRegistry::Assets` (r:1 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::LocationAssets` (r:1 w:1) + /// Proof: `AssetRegistry::LocationAssets` (`max_values`: None, `max_size`: Some(622), added: 3097, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::AssetLocations` (r:1 w:1) + /// Proof: `AssetRegistry::AssetLocations` (`max_values`: None, `max_size`: Some(614), added: 3089, mode: `MaxEncodedLen`) fn set_location() -> Weight { - // Minimum execution time: 13_650 nanoseconds. - Weight::from_ref_time(14_096_000 as u64) - .saturating_add(T::DbWeight::get().reads(3 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) + // Proof Size summary in bytes: + // Measured: `274` + // Estimated: `4087` + // Minimum execution time: 26_980_000 picoseconds. + Weight::from_parts(27_406_000, 4087) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } } diff --git a/runtime/basilisk/src/weights/balances.rs b/runtime/basilisk/src/weights/balances.rs index d82936bca20..5589ea246f9 100644 --- a/runtime/basilisk/src/weights/balances.rs +++ b/runtime/basilisk/src/weights/balances.rs @@ -15,25 +15,27 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_balances +//! Autogenerated weights for `pallet_balances` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-01, STEPS: 5, REPEAT: 20, LOW RANGE: [], HIGH RANGE: [] -//! EXECUTION: None, WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! DATE: 2023-12-06, STEPS: `10`, REPEAT: `30`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: // target/release/basilisk // benchmark // pallet -// --pallet=pallet-balances // --chain=dev +// --steps=10 +// --repeat=30 +// --wasm-execution=compiled +// --heap-pages=4096 +// --template=.maintain/pallet-weight-template-no-back.hbs +// --pallet=pallet-balances +// --output=weights-1.1.0/balances.rs // --extrinsic=* -// --steps=5 -// --repeat=20 -// --output -// balances.rs -// --template -// .maintain/pallet-weight-template-no-back.hbs #![allow(unused_parens)] #![allow(unused_imports)] @@ -50,60 +52,96 @@ use pallet_balances::weights::WeightInfo; pub struct BasiliskWeight(PhantomData); impl WeightInfo for BasiliskWeight { - // Storage: System Account (r:1 w:1) - // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - fn transfer() -> Weight { - // Minimum execution time: 38_236 nanoseconds. - Weight::from_ref_time(38_941_000 as u64) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn transfer_allow_death() -> Weight { + // Proof Size summary in bytes: + // Measured: `52` + // Estimated: `3593` + // Minimum execution time: 97_341_000 picoseconds. + Weight::from_parts(98_092_000, 3593) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } - // Storage: System Account (r:1 w:1) - // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn transfer_keep_alive() -> Weight { - // Minimum execution time: 28_222 nanoseconds. - Weight::from_ref_time(28_677_000 as u64) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Size summary in bytes: + // Measured: `52` + // Estimated: `3593` + // Minimum execution time: 60_573_000 picoseconds. + Weight::from_parts(61_238_000, 3593) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } - // Storage: System Account (r:1 w:1) - // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - fn set_balance_creating() -> Weight { - // Minimum execution time: 23_486 nanoseconds. - Weight::from_ref_time(23_855_000 as u64) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn force_set_balance_creating() -> Weight { + // Proof Size summary in bytes: + // Measured: `103` + // Estimated: `3593` + // Minimum execution time: 23_050_000 picoseconds. + Weight::from_parts(23_439_000, 3593) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } - // Storage: System Account (r:1 w:1) - // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - fn set_balance_killing() -> Weight { - // Minimum execution time: 24_931 nanoseconds. - Weight::from_ref_time(25_416_000 as u64) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn force_set_balance_killing() -> Weight { + // Proof Size summary in bytes: + // Measured: `103` + // Estimated: `3593` + // Minimum execution time: 33_216_000 picoseconds. + Weight::from_parts(33_836_000, 3593) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } - // Storage: System Account (r:2 w:2) - // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn force_transfer() -> Weight { - // Minimum execution time: 38_145 nanoseconds. - Weight::from_ref_time(38_657_000 as u64) - .saturating_add(T::DbWeight::get().reads(2 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) + // Proof Size summary in bytes: + // Measured: `155` + // Estimated: `6196` + // Minimum execution time: 100_377_000 picoseconds. + Weight::from_parts(100_813_000, 6196) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } - // Storage: System Account (r:1 w:1) - // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn transfer_all() -> Weight { - // Minimum execution time: 30_840 nanoseconds. - Weight::from_ref_time(31_610_000 as u64) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Size summary in bytes: + // Measured: `52` + // Estimated: `3593` + // Minimum execution time: 74_755_000 picoseconds. + Weight::from_parts(75_577_000, 3593) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } - // Storage: System Account (r:1 w:1) - // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn force_unreserve() -> Weight { - // Minimum execution time: 19_723 nanoseconds. - Weight::from_ref_time(20_369_000 as u64) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Size summary in bytes: + // Measured: `103` + // Estimated: `3593` + // Minimum execution time: 26_716_000 picoseconds. + Weight::from_parts(27_432_000, 3593) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `System::Account` (r:1000 w:1000) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// The range of component `u` is `[1, 1000]`. + fn upgrade_accounts(u: u32) -> Weight { + // Proof Size summary in bytes: + // Measured: `0 + u * (135 ±0)` + // Estimated: `990 + u * (2603 ±0)` + // Minimum execution time: 26_372_000 picoseconds. + Weight::from_parts(26_734_000, 990) + // Standard Error: 19_513 + .saturating_add(Weight::from_parts(19_513_626, 0).saturating_mul(u.into())) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(u.into()))) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(u.into()))) + .saturating_add(Weight::from_parts(0, 2603).saturating_mul(u.into())) } } diff --git a/runtime/basilisk/src/weights/collator_selection.rs b/runtime/basilisk/src/weights/collator_selection.rs index c3cbccd5e4c..f72f3da12ab 100644 --- a/runtime/basilisk/src/weights/collator_selection.rs +++ b/runtime/basilisk/src/weights/collator_selection.rs @@ -15,25 +15,27 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_collator_selection +//! Autogenerated weights for `pallet_collator_selection` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-01, STEPS: 5, REPEAT: 20, LOW RANGE: [], HIGH RANGE: [] -//! EXECUTION: None, WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! DATE: 2023-12-06, STEPS: `10`, REPEAT: `30`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: // target/release/basilisk // benchmark // pallet -// --pallet=pallet-collator-selection // --chain=dev +// --steps=10 +// --repeat=30 +// --wasm-execution=compiled +// --heap-pages=4096 +// --template=.maintain/pallet-weight-template-no-back.hbs +// --pallet=pallet-collator-selection +// --output=weights-1.1.0/collator_selection.rs // --extrinsic=* -// --steps=5 -// --repeat=20 -// --output -// collator_selection.rs -// --template -// .maintain/pallet-weight-template-no-back.hbs #![allow(unused_parens)] #![allow(unused_imports)] @@ -50,93 +52,164 @@ use pallet_collator_selection::weights::WeightInfo; pub struct BasiliskWeight(PhantomData); impl WeightInfo for BasiliskWeight { - // Storage: Session NextKeys (r:50 w:0) - // Proof Skipped: Session NextKeys (max_values: None, max_size: None, mode: Measured) - // Storage: CollatorSelection Invulnerables (r:0 w:1) - // Proof: CollatorSelection Invulnerables (max_values: Some(1), max_size: Some(1601), added: 2096, mode: MaxEncodedLen) + /// Storage: `Session::NextKeys` (r:50 w:0) + /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `CollatorSelection::Invulnerables` (r:0 w:1) + /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(1601), added: 2096, mode: `MaxEncodedLen`) /// The range of component `b` is `[1, 50]`. fn set_invulnerables(b: u32) -> Weight { - // Minimum execution time: 11_228 nanoseconds. - Weight::from_ref_time(11_238_329 as u64) // Standard Error: 11_359 - .saturating_add(Weight::from_ref_time(2_113_074 as u64).saturating_mul(b as u64)) - .saturating_add(T::DbWeight::get().reads((1 as u64).saturating_mul(b as u64))) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Size summary in bytes: + // Measured: `205 + b * (79 ±0)` + // Estimated: `1194 + b * (2554 ±0)` + // Minimum execution time: 20_642_000 picoseconds. + Weight::from_parts(19_678_835, 1194) + // Standard Error: 8_717 + .saturating_add(Weight::from_parts(3_466_810, 0).saturating_mul(b.into())) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) + .saturating_add(T::DbWeight::get().writes(1_u64)) + .saturating_add(Weight::from_parts(0, 2554).saturating_mul(b.into())) + } + /// Storage: `Session::NextKeys` (r:1 w:0) + /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `CollatorSelection::Invulnerables` (r:1 w:1) + /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(1601), added: 2096, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::Candidates` (r:1 w:1) + /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(961), added: 1456, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// The range of component `b` is `[1, 49]`. + /// The range of component `c` is `[1, 19]`. + fn add_invulnerable(b: u32, c: u32) -> Weight { + // Proof Size summary in bytes: + // Measured: `853 + b * (42 ±0) + c * (48 ±0)` + // Estimated: `4355 + b * (42 ±0) + c * (46 ±0)` + // Minimum execution time: 59_791_000 picoseconds. + Weight::from_parts(58_869_820, 4355) + // Standard Error: 4_211 + .saturating_add(Weight::from_parts(159_294, 0).saturating_mul(b.into())) + // Standard Error: 11_302 + .saturating_add(Weight::from_parts(46_107, 0).saturating_mul(c.into())) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) + .saturating_add(Weight::from_parts(0, 42).saturating_mul(b.into())) + .saturating_add(Weight::from_parts(0, 46).saturating_mul(c.into())) + } + /// Storage: `CollatorSelection::Candidates` (r:1 w:0) + /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(961), added: 1456, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::Invulnerables` (r:1 w:1) + /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(1601), added: 2096, mode: `MaxEncodedLen`) + /// The range of component `b` is `[5, 50]`. + fn remove_invulnerable(b: u32) -> Weight { + // Proof Size summary in bytes: + // Measured: `186 + b * (32 ±0)` + // Estimated: `3086` + // Minimum execution time: 21_930_000 picoseconds. + Weight::from_parts(22_391_375, 3086) + // Standard Error: 1_204 + .saturating_add(Weight::from_parts(46_963, 0).saturating_mul(b.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } - // Storage: CollatorSelection DesiredCandidates (r:0 w:1) - // Proof: CollatorSelection DesiredCandidates (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: `CollatorSelection::DesiredCandidates` (r:0 w:1) + /// Proof: `CollatorSelection::DesiredCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) fn set_desired_candidates() -> Weight { - // Minimum execution time: 7_420 nanoseconds. - Weight::from_ref_time(7_737_000 as u64).saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 11_158_000 picoseconds. + Weight::from_parts(11_428_000, 0).saturating_add(T::DbWeight::get().writes(1_u64)) } - // Storage: CollatorSelection CandidacyBond (r:0 w:1) - // Proof: CollatorSelection CandidacyBond (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) + /// Storage: `CollatorSelection::CandidacyBond` (r:0 w:1) + /// Proof: `CollatorSelection::CandidacyBond` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) fn set_candidacy_bond() -> Weight { - // Minimum execution time: 4_411 nanoseconds. - Weight::from_ref_time(4_621_000 as u64).saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 11_250_000 picoseconds. + Weight::from_parts(11_503_000, 0).saturating_add(T::DbWeight::get().writes(1_u64)) } - // Storage: CollatorSelection Candidates (r:1 w:1) - // Proof: CollatorSelection Candidates (max_values: Some(1), max_size: Some(961), added: 1456, mode: MaxEncodedLen) - // Storage: CollatorSelection DesiredCandidates (r:1 w:0) - // Proof: CollatorSelection DesiredCandidates (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - // Storage: CollatorSelection Invulnerables (r:1 w:0) - // Proof: CollatorSelection Invulnerables (max_values: Some(1), max_size: Some(1601), added: 2096, mode: MaxEncodedLen) - // Storage: Session NextKeys (r:1 w:0) - // Proof Skipped: Session NextKeys (max_values: None, max_size: None, mode: Measured) - // Storage: CollatorSelection CandidacyBond (r:1 w:0) - // Proof: CollatorSelection CandidacyBond (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) - // Storage: CollatorSelection LastAuthoredBlock (r:0 w:1) - // Proof: CollatorSelection LastAuthoredBlock (max_values: None, max_size: Some(44), added: 2519, mode: MaxEncodedLen) + /// Storage: `CollatorSelection::Candidates` (r:1 w:1) + /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(961), added: 1456, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::DesiredCandidates` (r:1 w:0) + /// Proof: `CollatorSelection::DesiredCandidates` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::Invulnerables` (r:1 w:0) + /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(1601), added: 2096, mode: `MaxEncodedLen`) + /// Storage: `Session::NextKeys` (r:1 w:0) + /// Proof: `Session::NextKeys` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `CollatorSelection::CandidacyBond` (r:1 w:0) + /// Proof: `CollatorSelection::CandidacyBond` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::LastAuthoredBlock` (r:0 w:1) + /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) /// The range of component `c` is `[1, 19]`. fn register_as_candidate(c: u32) -> Weight { - // Minimum execution time: 29_387 nanoseconds. - Weight::from_ref_time(30_345_989 as u64) // Standard Error: 11_263 - .saturating_add(Weight::from_ref_time(168_107 as u64).saturating_mul(c as u64)) - .saturating_add(T::DbWeight::get().reads(5 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) + // Proof Size summary in bytes: + // Measured: `621 + c * (61 ±0)` + // Estimated: `4091 + c * (61 ±0)` + // Minimum execution time: 57_862_000 picoseconds. + Weight::from_parts(58_635_556, 4091) + // Standard Error: 4_827 + .saturating_add(Weight::from_parts(158_468, 0).saturating_mul(c.into())) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + .saturating_add(Weight::from_parts(0, 61).saturating_mul(c.into())) } - // Storage: CollatorSelection Candidates (r:1 w:1) - // Proof: CollatorSelection Candidates (max_values: Some(1), max_size: Some(961), added: 1456, mode: MaxEncodedLen) - // Storage: CollatorSelection LastAuthoredBlock (r:0 w:1) - // Proof: CollatorSelection LastAuthoredBlock (max_values: None, max_size: Some(44), added: 2519, mode: MaxEncodedLen) - /// The range of component `c` is `[5, 20]`. + /// Storage: `CollatorSelection::Candidates` (r:1 w:1) + /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(961), added: 1456, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::Invulnerables` (r:1 w:0) + /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(1601), added: 2096, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::LastAuthoredBlock` (r:0 w:1) + /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + /// The range of component `c` is `[3, 20]`. fn leave_intent(c: u32) -> Weight { - // Minimum execution time: 19_534 nanoseconds. - Weight::from_ref_time(20_126_884 as u64) // Standard Error: 8_702 - .saturating_add(Weight::from_ref_time(56_416 as u64).saturating_mul(c as u64)) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) + // Proof Size summary in bytes: + // Measured: `448 + c * (47 ±0)` + // Estimated: `3086` + // Minimum execution time: 45_364_000 picoseconds. + Weight::from_parts(46_297_183, 3086) + // Standard Error: 6_548 + .saturating_add(Weight::from_parts(81_304, 0).saturating_mul(c.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } - // Storage: System Account (r:2 w:2) - // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - // Storage: System BlockWeight (r:1 w:1) - // Proof: System BlockWeight (max_values: Some(1), max_size: Some(48), added: 543, mode: MaxEncodedLen) - // Storage: CollatorSelection LastAuthoredBlock (r:0 w:1) - // Proof: CollatorSelection LastAuthoredBlock (max_values: None, max_size: Some(44), added: 2519, mode: MaxEncodedLen) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `System::BlockWeight` (r:1 w:1) + /// Proof: `System::BlockWeight` (`max_values`: Some(1), `max_size`: Some(48), added: 543, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::LastAuthoredBlock` (r:0 w:1) + /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) fn note_author() -> Weight { - // Minimum execution time: 16_634 nanoseconds. - Weight::from_ref_time(17_028_000 as u64) - .saturating_add(T::DbWeight::get().reads(3 as u64)) - .saturating_add(T::DbWeight::get().writes(4 as u64)) + // Proof Size summary in bytes: + // Measured: `102` + // Estimated: `6196` + // Minimum execution time: 62_641_000 picoseconds. + Weight::from_parts(63_217_000, 6196) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) } - // Storage: CollatorSelection Candidates (r:1 w:0) - // Proof: CollatorSelection Candidates (max_values: Some(1), max_size: Some(961), added: 1456, mode: MaxEncodedLen) - // Storage: CollatorSelection LastAuthoredBlock (r:20 w:0) - // Proof: CollatorSelection LastAuthoredBlock (max_values: None, max_size: Some(44), added: 2519, mode: MaxEncodedLen) - // Storage: CollatorSelection Invulnerables (r:1 w:0) - // Proof: CollatorSelection Invulnerables (max_values: Some(1), max_size: Some(1601), added: 2096, mode: MaxEncodedLen) - // Storage: System BlockWeight (r:1 w:1) - // Proof: System BlockWeight (max_values: Some(1), max_size: Some(48), added: 543, mode: MaxEncodedLen) - // Storage: System Account (r:15 w:15) - // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `CollatorSelection::Candidates` (r:1 w:0) + /// Proof: `CollatorSelection::Candidates` (`max_values`: Some(1), `max_size`: Some(961), added: 1456, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::LastAuthoredBlock` (r:20 w:0) + /// Proof: `CollatorSelection::LastAuthoredBlock` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + /// Storage: `CollatorSelection::Invulnerables` (r:1 w:0) + /// Proof: `CollatorSelection::Invulnerables` (`max_values`: Some(1), `max_size`: Some(1601), added: 2096, mode: `MaxEncodedLen`) + /// Storage: `System::BlockWeight` (r:1 w:1) + /// Proof: `System::BlockWeight` (`max_values`: Some(1), `max_size`: Some(48), added: 543, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:17 w:17) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) /// The range of component `r` is `[1, 20]`. /// The range of component `c` is `[1, 20]`. - fn new_session(_r: u32, c: u32) -> Weight { - // Minimum execution time: 15_048 nanoseconds. - Weight::from_ref_time(27_699_841 as u64) // Standard Error: 743_006 - .saturating_add(Weight::from_ref_time(4_765_854 as u64).saturating_mul(c as u64)) - .saturating_add(T::DbWeight::get().reads(4 as u64)) - .saturating_add(T::DbWeight::get().reads((1 as u64).saturating_mul(c as u64))) - .saturating_add(T::DbWeight::get().writes(4 as u64)) - .saturating_add(T::DbWeight::get().writes((1 as u64).saturating_mul(c as u64))) + fn new_session(r: u32, c: u32) -> Weight { + // Proof Size summary in bytes: + // Measured: `312 + c * (98 ±0) + r * (117 ±0)` + // Estimated: `3086 + c * (2519 ±0) + r * (2603 ±0)` + // Minimum execution time: 28_271_000 picoseconds. + Weight::from_parts(28_435_000, 3086) + // Standard Error: 692_426 + .saturating_add(Weight::from_parts(17_239_787, 0).saturating_mul(c.into())) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into()))) + .saturating_add(T::DbWeight::get().writes(1_u64)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(c.into()))) + .saturating_add(Weight::from_parts(0, 2519).saturating_mul(c.into())) + .saturating_add(Weight::from_parts(0, 2603).saturating_mul(r.into())) } } diff --git a/runtime/basilisk/src/weights/collective.rs b/runtime/basilisk/src/weights/collective.rs new file mode 100644 index 00000000000..66e20f44708 --- /dev/null +++ b/runtime/basilisk/src/weights/collective.rs @@ -0,0 +1,293 @@ +// This file is part of Basilisk. + +// Copyright (C) 2020-2023 Intergalactic, Limited (GIB). +// SPDX-License-Identifier: Apache-2.0 + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//! Autogenerated weights for `pallet_collective` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-12-06, STEPS: `10`, REPEAT: `30`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` + +// Executed Command: +// target/release/basilisk +// benchmark +// pallet +// --chain=dev +// --steps=10 +// --repeat=30 +// --wasm-execution=compiled +// --heap-pages=4096 +// --template=.maintain/pallet-weight-template-no-back.hbs +// --pallet=pallet-collective +// --output=weights-1.1.0/collective.rs +// --extrinsic=* + +#![allow(unused_parens)] +#![allow(unused_imports)] +#![allow(clippy::unnecessary_cast)] + +use frame_support::{ + traits::Get, + weights::{constants::RocksDbWeight, Weight}, +}; +use sp_std::marker::PhantomData; + +use pallet_collective::weights::WeightInfo; + +pub struct BasiliskWeight(PhantomData); + +impl WeightInfo for BasiliskWeight { + /// Storage: `TechnicalCommittee::Members` (r:1 w:1) + /// Proof: `TechnicalCommittee::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `TechnicalCommittee::Proposals` (r:1 w:0) + /// Proof: `TechnicalCommittee::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `TechnicalCommittee::Voting` (r:20 w:20) + /// Proof: `TechnicalCommittee::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `TechnicalCommittee::Prime` (r:0 w:1) + /// Proof: `TechnicalCommittee::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// The range of component `m` is `[0, 10]`. + /// The range of component `n` is `[0, 10]`. + /// The range of component `p` is `[0, 20]`. + fn set_members(m: u32, _n: u32, p: u32) -> Weight { + // Proof Size summary in bytes: + // Measured: `0 + m * (672 ±0) + p * (310 ±0)` + // Estimated: `7085 + m * (396 ±7) + p * (2539 ±3)` + // Minimum execution time: 14_131_000 picoseconds. + Weight::from_parts(14_533_000, 7085) + // Standard Error: 152_332 + .saturating_add(Weight::from_parts(2_671_121, 0).saturating_mul(m.into())) + // Standard Error: 76_518 + .saturating_add(Weight::from_parts(4_088_462, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(p.into()))) + .saturating_add(T::DbWeight::get().writes(2_u64)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(p.into()))) + .saturating_add(Weight::from_parts(0, 396).saturating_mul(m.into())) + .saturating_add(Weight::from_parts(0, 2539).saturating_mul(p.into())) + } + /// Storage: `TechnicalCommittee::Members` (r:1 w:0) + /// Proof: `TechnicalCommittee::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// The range of component `b` is `[2, 1024]`. + /// The range of component `m` is `[1, 10]`. + fn execute(b: u32, m: u32) -> Weight { + // Proof Size summary in bytes: + // Measured: `70 + m * (32 ±0)` + // Estimated: `1555 + m * (32 ±0)` + // Minimum execution time: 21_477_000 picoseconds. + Weight::from_parts(21_571_584, 1555) + // Standard Error: 27 + .saturating_add(Weight::from_parts(1_340, 0).saturating_mul(b.into())) + // Standard Error: 3_076 + .saturating_add(Weight::from_parts(28_991, 0).saturating_mul(m.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into())) + } + /// Storage: `TechnicalCommittee::Members` (r:1 w:0) + /// Proof: `TechnicalCommittee::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `TechnicalCommittee::ProposalOf` (r:1 w:0) + /// Proof: `TechnicalCommittee::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `b` is `[2, 1024]`. + /// The range of component `m` is `[1, 10]`. + fn propose_execute(b: u32, m: u32) -> Weight { + // Proof Size summary in bytes: + // Measured: `70 + m * (32 ±0)` + // Estimated: `3535 + m * (32 ±0)` + // Minimum execution time: 25_333_000 picoseconds. + Weight::from_parts(25_044_584, 3535) + // Standard Error: 60 + .saturating_add(Weight::from_parts(1_891, 0).saturating_mul(b.into())) + // Standard Error: 6_890 + .saturating_add(Weight::from_parts(71_568, 0).saturating_mul(m.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into())) + } + /// Storage: `TechnicalCommittee::Members` (r:1 w:0) + /// Proof: `TechnicalCommittee::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `TechnicalCommittee::ProposalOf` (r:1 w:1) + /// Proof: `TechnicalCommittee::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `TechnicalCommittee::Proposals` (r:1 w:1) + /// Proof: `TechnicalCommittee::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `TechnicalCommittee::ProposalCount` (r:1 w:1) + /// Proof: `TechnicalCommittee::ProposalCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `TechnicalCommittee::Voting` (r:0 w:1) + /// Proof: `TechnicalCommittee::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `b` is `[2, 1024]`. + /// The range of component `m` is `[2, 10]`. + /// The range of component `p` is `[1, 20]`. + fn propose_proposed(b: u32, m: u32, p: u32) -> Weight { + // Proof Size summary in bytes: + // Measured: `128 + m * (32 ±0) + p * (52 ±0)` + // Estimated: `3529 + m * (36 ±0) + p * (54 ±0)` + // Minimum execution time: 33_376_000 picoseconds. + Weight::from_parts(33_502_707, 3529) + // Standard Error: 106 + .saturating_add(Weight::from_parts(1_928, 0).saturating_mul(b.into())) + // Standard Error: 12_618 + .saturating_add(Weight::from_parts(29_934, 0).saturating_mul(m.into())) + // Standard Error: 5_629 + .saturating_add(Weight::from_parts(335_390, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) + .saturating_add(Weight::from_parts(0, 36).saturating_mul(m.into())) + .saturating_add(Weight::from_parts(0, 54).saturating_mul(p.into())) + } + /// Storage: `TechnicalCommittee::Members` (r:1 w:0) + /// Proof: `TechnicalCommittee::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `TechnicalCommittee::Voting` (r:1 w:1) + /// Proof: `TechnicalCommittee::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `m` is `[5, 10]`. + fn vote(m: u32) -> Weight { + // Proof Size summary in bytes: + // Measured: `610 + m * (64 ±0)` + // Estimated: `4075 + m * (64 ±0)` + // Minimum execution time: 26_938_000 picoseconds. + Weight::from_parts(27_018_173, 4075) + // Standard Error: 6_530 + .saturating_add(Weight::from_parts(72_199, 0).saturating_mul(m.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + .saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into())) + } + /// Storage: `TechnicalCommittee::Voting` (r:1 w:1) + /// Proof: `TechnicalCommittee::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `TechnicalCommittee::Members` (r:1 w:0) + /// Proof: `TechnicalCommittee::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `TechnicalCommittee::Proposals` (r:1 w:1) + /// Proof: `TechnicalCommittee::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `TechnicalCommittee::ProposalOf` (r:0 w:1) + /// Proof: `TechnicalCommittee::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `m` is `[4, 10]`. + /// The range of component `p` is `[1, 20]`. + fn close_early_disapproved(m: u32, p: u32) -> Weight { + // Proof Size summary in bytes: + // Measured: `164 + m * (64 ±0) + p * (55 ±0)` + // Estimated: `3623 + m * (66 ±0) + p * (55 ±0)` + // Minimum execution time: 34_392_000 picoseconds. + Weight::from_parts(34_795_912, 3623) + // Standard Error: 13_268 + .saturating_add(Weight::from_parts(67_179, 0).saturating_mul(m.into())) + // Standard Error: 4_357 + .saturating_add(Weight::from_parts(290_784, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) + .saturating_add(Weight::from_parts(0, 66).saturating_mul(m.into())) + .saturating_add(Weight::from_parts(0, 55).saturating_mul(p.into())) + } + /// Storage: `TechnicalCommittee::Voting` (r:1 w:1) + /// Proof: `TechnicalCommittee::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `TechnicalCommittee::Members` (r:1 w:0) + /// Proof: `TechnicalCommittee::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `TechnicalCommittee::ProposalOf` (r:1 w:1) + /// Proof: `TechnicalCommittee::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `TechnicalCommittee::Proposals` (r:1 w:1) + /// Proof: `TechnicalCommittee::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// The range of component `b` is `[2, 1024]`. + /// The range of component `m` is `[4, 10]`. + /// The range of component `p` is `[1, 20]`. + fn close_early_approved(b: u32, m: u32, p: u32) -> Weight { + // Proof Size summary in bytes: + // Measured: `66 + b * (1 ±0) + m * (64 ±0) + p * (79 ±0)` + // Estimated: `3612 + b * (1 ±0) + m * (59 ±1) + p * (76 ±0)` + // Minimum execution time: 50_177_000 picoseconds. + Weight::from_parts(50_853_069, 3612) + // Standard Error: 196 + .saturating_add(Weight::from_parts(3_771, 0).saturating_mul(b.into())) + // Standard Error: 10_427 + .saturating_add(Weight::from_parts(530_034, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) + .saturating_add(Weight::from_parts(0, 1).saturating_mul(b.into())) + .saturating_add(Weight::from_parts(0, 59).saturating_mul(m.into())) + .saturating_add(Weight::from_parts(0, 76).saturating_mul(p.into())) + } + /// Storage: `TechnicalCommittee::Voting` (r:1 w:1) + /// Proof: `TechnicalCommittee::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `TechnicalCommittee::Members` (r:1 w:0) + /// Proof: `TechnicalCommittee::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `TechnicalCommittee::Prime` (r:1 w:0) + /// Proof: `TechnicalCommittee::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `TechnicalCommittee::Proposals` (r:1 w:1) + /// Proof: `TechnicalCommittee::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `TechnicalCommittee::ProposalOf` (r:0 w:1) + /// Proof: `TechnicalCommittee::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `m` is `[4, 10]`. + /// The range of component `p` is `[1, 20]`. + fn close_disapproved(m: u32, p: u32) -> Weight { + // Proof Size summary in bytes: + // Measured: `184 + m * (64 ±0) + p * (55 ±0)` + // Estimated: `3643 + m * (66 ±0) + p * (55 ±0)` + // Minimum execution time: 37_715_000 picoseconds. + Weight::from_parts(38_659_831, 3643) + // Standard Error: 13_755 + .saturating_add(Weight::from_parts(37_343, 0).saturating_mul(m.into())) + // Standard Error: 4_516 + .saturating_add(Weight::from_parts(283_261, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) + .saturating_add(Weight::from_parts(0, 66).saturating_mul(m.into())) + .saturating_add(Weight::from_parts(0, 55).saturating_mul(p.into())) + } + /// Storage: `TechnicalCommittee::Voting` (r:1 w:1) + /// Proof: `TechnicalCommittee::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `TechnicalCommittee::Members` (r:1 w:0) + /// Proof: `TechnicalCommittee::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `TechnicalCommittee::Prime` (r:1 w:0) + /// Proof: `TechnicalCommittee::Prime` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `TechnicalCommittee::ProposalOf` (r:1 w:1) + /// Proof: `TechnicalCommittee::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `TechnicalCommittee::Proposals` (r:1 w:1) + /// Proof: `TechnicalCommittee::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// The range of component `b` is `[2, 1024]`. + /// The range of component `m` is `[4, 10]`. + /// The range of component `p` is `[1, 20]`. + fn close_approved(b: u32, m: u32, p: u32) -> Weight { + // Proof Size summary in bytes: + // Measured: `86 + b * (1 ±0) + m * (64 ±0) + p * (79 ±0)` + // Estimated: `3632 + b * (1 ±0) + m * (59 ±1) + p * (76 ±0)` + // Minimum execution time: 54_060_000 picoseconds. + Weight::from_parts(54_211_560, 3632) + // Standard Error: 216 + .saturating_add(Weight::from_parts(3_907, 0).saturating_mul(b.into())) + // Standard Error: 11_493 + .saturating_add(Weight::from_parts(539_109, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) + .saturating_add(Weight::from_parts(0, 1).saturating_mul(b.into())) + .saturating_add(Weight::from_parts(0, 59).saturating_mul(m.into())) + .saturating_add(Weight::from_parts(0, 76).saturating_mul(p.into())) + } + /// Storage: `TechnicalCommittee::Proposals` (r:1 w:1) + /// Proof: `TechnicalCommittee::Proposals` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `TechnicalCommittee::Voting` (r:0 w:1) + /// Proof: `TechnicalCommittee::Voting` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `TechnicalCommittee::ProposalOf` (r:0 w:1) + /// Proof: `TechnicalCommittee::ProposalOf` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `p` is `[1, 20]`. + fn disapprove_proposal(p: u32) -> Weight { + // Proof Size summary in bytes: + // Measured: `226 + p * (32 ±0)` + // Estimated: `1711 + p * (32 ±0)` + // Minimum execution time: 22_209_000 picoseconds. + Weight::from_parts(22_780_540, 1711) + // Standard Error: 3_594 + .saturating_add(Weight::from_parts(225_594, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) + .saturating_add(Weight::from_parts(0, 32).saturating_mul(p.into())) + } +} diff --git a/runtime/basilisk/src/weights/currencies.rs b/runtime/basilisk/src/weights/currencies.rs index c7635a7b8aa..5a31bbbddea 100644 --- a/runtime/basilisk/src/weights/currencies.rs +++ b/runtime/basilisk/src/weights/currencies.rs @@ -15,25 +15,27 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_currencies +//! Autogenerated weights for `pallet_currencies` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-01, STEPS: 5, REPEAT: 20, LOW RANGE: [], HIGH RANGE: [] -//! EXECUTION: None, WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! DATE: 2023-12-06, STEPS: `10`, REPEAT: `30`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: // target/release/basilisk // benchmark // pallet -// --pallet=pallet-currencies // --chain=dev +// --steps=10 +// --repeat=30 +// --wasm-execution=compiled +// --heap-pages=4096 +// --template=.maintain/pallet-weight-template-no-back.hbs +// --pallet=pallet-currencies +// --output=weights-1.1.0/currencies.rs // --extrinsic=* -// --steps=5 -// --repeat=20 -// --output -// currencies.rs -// --template -// .maintain/pallet-weight-template-no-back.hbs #![allow(unused_parens)] #![allow(unused_imports)] @@ -50,62 +52,77 @@ use pallet_currencies::WeightInfo; pub struct BasiliskWeight(PhantomData); impl WeightInfo for BasiliskWeight { - // Storage: Tokens Accounts (r:2 w:2) - // Proof: Tokens Accounts (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen) - // Storage: AssetRegistry Assets (r:1 w:0) - // Proof Skipped: AssetRegistry Assets (max_values: None, max_size: None, mode: Measured) - // Storage: System Account (r:1 w:1) - // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - // Storage: MultiTransactionPayment AccountCurrencyMap (r:1 w:1) - // Proof: MultiTransactionPayment AccountCurrencyMap (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) - // Storage: MultiTransactionPayment AcceptedCurrencies (r:1 w:0) - // Proof: MultiTransactionPayment AcceptedCurrencies (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) + /// Storage: `Tokens::Accounts` (r:2 w:2) + /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:1 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `MultiTransactionPayment::AccountCurrencyMap` (r:1 w:1) + /// Proof: `MultiTransactionPayment::AccountCurrencyMap` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `MultiTransactionPayment::AcceptedCurrencies` (r:1 w:0) + /// Proof: `MultiTransactionPayment::AcceptedCurrencies` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) fn transfer_non_native_currency() -> Weight { - // Minimum execution time: 53_811 nanoseconds. - Weight::from_ref_time(54_318_000 as u64) - .saturating_add(T::DbWeight::get().reads(6 as u64)) - .saturating_add(T::DbWeight::get().writes(4 as u64)) + // Proof Size summary in bytes: + // Measured: `2106` + // Estimated: `6156` + // Minimum execution time: 95_273_000 picoseconds. + Weight::from_parts(95_988_000, 6156) + .saturating_add(T::DbWeight::get().reads(6_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) } - // Storage: System Account (r:1 w:1) - // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn transfer_native_currency() -> Weight { - // Minimum execution time: 29_935 nanoseconds. - Weight::from_ref_time(30_990_000 as u64) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Size summary in bytes: + // Measured: `1444` + // Estimated: `3593` + // Minimum execution time: 92_596_000 picoseconds. + Weight::from_parts(93_466_000, 3593) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } - // Storage: Tokens Accounts (r:1 w:1) - // Proof: Tokens Accounts (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen) - // Storage: AssetRegistry Assets (r:1 w:0) - // Proof Skipped: AssetRegistry Assets (max_values: None, max_size: None, mode: Measured) - // Storage: Tokens TotalIssuance (r:1 w:1) - // Proof: Tokens TotalIssuance (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) - // Storage: System Account (r:1 w:1) - // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - // Storage: MultiTransactionPayment AccountCurrencyMap (r:1 w:0) - // Proof: MultiTransactionPayment AccountCurrencyMap (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) - // Storage: MultiTransactionPayment AcceptedCurrencies (r:1 w:0) - // Proof: MultiTransactionPayment AcceptedCurrencies (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) + /// Storage: `Tokens::Accounts` (r:1 w:1) + /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:1 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `Tokens::TotalIssuance` (r:1 w:1) + /// Proof: `Tokens::TotalIssuance` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `MultiTransactionPayment::AccountCurrencyMap` (r:1 w:0) + /// Proof: `MultiTransactionPayment::AccountCurrencyMap` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `MultiTransactionPayment::AcceptedCurrencies` (r:1 w:0) + /// Proof: `MultiTransactionPayment::AcceptedCurrencies` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) fn update_balance_non_native_currency() -> Weight { - // Minimum execution time: 41_846 nanoseconds. - Weight::from_ref_time(42_748_000 as u64) - .saturating_add(T::DbWeight::get().reads(6 as u64)) - .saturating_add(T::DbWeight::get().writes(3 as u64)) + // Proof Size summary in bytes: + // Measured: `1897` + // Estimated: `3593` + // Minimum execution time: 71_703_000 picoseconds. + Weight::from_parts(72_244_000, 3593) + .saturating_add(T::DbWeight::get().reads(6_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } - // Storage: System Account (r:1 w:1) - // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn update_balance_native_currency_creating() -> Weight { - // Minimum execution time: 27_369 nanoseconds. - Weight::from_ref_time(27_966_000 as u64) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Size summary in bytes: + // Measured: `1304` + // Estimated: `3593` + // Minimum execution time: 53_642_000 picoseconds. + Weight::from_parts(54_216_000, 3593) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } - // Storage: System Account (r:1 w:1) - // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn update_balance_native_currency_killing() -> Weight { - // Minimum execution time: 27_014 nanoseconds. - Weight::from_ref_time(27_487_000 as u64) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Size summary in bytes: + // Measured: `1440` + // Estimated: `3593` + // Minimum execution time: 53_388_000 picoseconds. + Weight::from_parts(53_917_000, 3593) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } } diff --git a/runtime/basilisk/src/weights/democracy.rs b/runtime/basilisk/src/weights/democracy.rs index ec98caa0b13..1aef2c4c17b 100644 --- a/runtime/basilisk/src/weights/democracy.rs +++ b/runtime/basilisk/src/weights/democracy.rs @@ -15,25 +15,27 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_democracy +//! Autogenerated weights for `pallet_democracy` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-01, STEPS: 5, REPEAT: 20, LOW RANGE: [], HIGH RANGE: [] -//! EXECUTION: None, WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! DATE: 2023-12-06, STEPS: `10`, REPEAT: `30`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: // target/release/basilisk // benchmark // pallet -// --pallet=pallet-democracy // --chain=dev +// --steps=10 +// --repeat=30 +// --wasm-execution=compiled +// --heap-pages=4096 +// --template=.maintain/pallet-weight-template-no-back.hbs +// --pallet=pallet-democracy +// --output=democracy.rs // --extrinsic=* -// --steps=5 -// --repeat=20 -// --output -// democracy.rs -// --template -// .maintain/pallet-weight-template-no-back.hbs #![allow(unused_parens)] #![allow(unused_imports)] @@ -50,264 +52,448 @@ use pallet_democracy::weights::WeightInfo; pub struct BasiliskWeight(PhantomData); impl WeightInfo for BasiliskWeight { - // Storage: Democracy PublicPropCount (r:1 w:1) - // Proof: Democracy PublicPropCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - // Storage: Democracy PublicProps (r:1 w:1) - // Proof: Democracy PublicProps (max_values: Some(1), max_size: Some(16702), added: 17197, mode: MaxEncodedLen) - // Storage: Democracy Blacklist (r:1 w:0) - // Proof: Democracy Blacklist (max_values: None, max_size: Some(3238), added: 5713, mode: MaxEncodedLen) - // Storage: Democracy DepositOf (r:0 w:1) - // Proof: Democracy DepositOf (max_values: None, max_size: Some(3230), added: 5705, mode: MaxEncodedLen) + /// Storage: `Democracy::PublicPropCount` (r:1 w:1) + /// Proof: `Democracy::PublicPropCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Democracy::PublicProps` (r:1 w:1) + /// Proof: `Democracy::PublicProps` (`max_values`: Some(1), `max_size`: Some(16702), added: 17197, mode: `MaxEncodedLen`) + /// Storage: `Democracy::Blacklist` (r:1 w:0) + /// Proof: `Democracy::Blacklist` (`max_values`: None, `max_size`: Some(3238), added: 5713, mode: `MaxEncodedLen`) + /// Storage: `Democracy::DepositOf` (r:0 w:1) + /// Proof: `Democracy::DepositOf` (`max_values`: None, `max_size`: Some(3230), added: 5705, mode: `MaxEncodedLen`) fn propose() -> Weight { - // Minimum execution time: 25_155 nanoseconds. - Weight::from_ref_time(25_699_000 as u64) - .saturating_add(T::DbWeight::get().reads(3 as u64)) - .saturating_add(T::DbWeight::get().writes(3 as u64)) + // Proof Size summary in bytes: + // Measured: `4688` + // Estimated: `18187` + // Minimum execution time: 52_114_000 picoseconds. + Weight::from_parts(52_489_000, 18187) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } - // Storage: Democracy DepositOf (r:1 w:1) - // Proof: Democracy DepositOf (max_values: None, max_size: Some(3230), added: 5705, mode: MaxEncodedLen) + /// Storage: `Democracy::DepositOf` (r:1 w:1) + /// Proof: `Democracy::DepositOf` (`max_values`: None, `max_size`: Some(3230), added: 5705, mode: `MaxEncodedLen`) fn second() -> Weight { - // Minimum execution time: 21_621 nanoseconds. - Weight::from_ref_time(21_991_000 as u64) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Size summary in bytes: + // Measured: `3443` + // Estimated: `6695` + // Minimum execution time: 45_776_000 picoseconds. + Weight::from_parts(46_532_000, 6695) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } - // Storage: Democracy ReferendumInfoOf (r:1 w:1) - // Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen) - // Storage: Democracy VotingOf (r:1 w:1) - // Proof: Democracy VotingOf (max_values: None, max_size: Some(3795), added: 6270, mode: MaxEncodedLen) - // Storage: Balances Locks (r:1 w:1) - // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) + /// Storage: `Democracy::ReferendumInfoOf` (r:1 w:1) + /// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`) + /// Storage: `Democracy::VotingOf` (r:1 w:1) + /// Proof: `Democracy::VotingOf` (`max_values`: None, `max_size`: Some(3795), added: 6270, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) fn vote_new() -> Weight { - // Minimum execution time: 34_158 nanoseconds. - Weight::from_ref_time(34_868_000 as u64) - .saturating_add(T::DbWeight::get().reads(3 as u64)) - .saturating_add(T::DbWeight::get().writes(3 as u64)) + // Proof Size summary in bytes: + // Measured: `3388` + // Estimated: `7260` + // Minimum execution time: 59_494_000 picoseconds. + Weight::from_parts(60_347_000, 7260) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } - // Storage: Democracy ReferendumInfoOf (r:1 w:1) - // Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen) - // Storage: Democracy VotingOf (r:1 w:1) - // Proof: Democracy VotingOf (max_values: None, max_size: Some(3795), added: 6270, mode: MaxEncodedLen) - // Storage: Balances Locks (r:1 w:1) - // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) + /// Storage: `Democracy::ReferendumInfoOf` (r:1 w:1) + /// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`) + /// Storage: `Democracy::VotingOf` (r:1 w:1) + /// Proof: `Democracy::VotingOf` (`max_values`: None, `max_size`: Some(3795), added: 6270, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) fn vote_existing() -> Weight { - // Minimum execution time: 34_316 nanoseconds. - Weight::from_ref_time(34_932_000 as u64) - .saturating_add(T::DbWeight::get().reads(3 as u64)) - .saturating_add(T::DbWeight::get().writes(3 as u64)) + // Proof Size summary in bytes: + // Measured: `3410` + // Estimated: `7260` + // Minimum execution time: 66_633_000 picoseconds. + Weight::from_parts(66_980_000, 7260) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } - // Storage: Democracy ReferendumInfoOf (r:1 w:1) - // Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen) - // Storage: Democracy Cancellations (r:1 w:1) - // Proof: Democracy Cancellations (max_values: None, max_size: Some(33), added: 2508, mode: MaxEncodedLen) + /// Storage: `Democracy::ReferendumInfoOf` (r:1 w:1) + /// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`) + /// Storage: `Democracy::Cancellations` (r:1 w:1) + /// Proof: `Democracy::Cancellations` (`max_values`: None, `max_size`: Some(33), added: 2508, mode: `MaxEncodedLen`) + /// Storage: `Democracy::MetadataOf` (r:1 w:1) + /// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`) fn emergency_cancel() -> Weight { - // Minimum execution time: 12_260 nanoseconds. - Weight::from_ref_time(12_554_000 as u64) - .saturating_add(T::DbWeight::get().reads(2 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) + // Proof Size summary in bytes: + // Measured: `249` + // Estimated: `3666` + // Minimum execution time: 35_212_000 picoseconds. + Weight::from_parts(35_695_000, 3666) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } - // Storage: Democracy PublicProps (r:1 w:1) - // Proof: Democracy PublicProps (max_values: Some(1), max_size: Some(16702), added: 17197, mode: MaxEncodedLen) - // Storage: Democracy DepositOf (r:1 w:1) - // Proof: Democracy DepositOf (max_values: None, max_size: Some(3230), added: 5705, mode: MaxEncodedLen) - // Storage: System Account (r:1 w:1) - // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - // Storage: Democracy NextExternal (r:1 w:1) - // Proof: Democracy NextExternal (max_values: Some(1), max_size: Some(132), added: 627, mode: MaxEncodedLen) - // Storage: Democracy ReferendumInfoOf (r:1 w:1) - // Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen) - // Storage: Democracy Blacklist (r:0 w:1) - // Proof: Democracy Blacklist (max_values: None, max_size: Some(3238), added: 5713, mode: MaxEncodedLen) + /// Storage: `Democracy::PublicProps` (r:1 w:1) + /// Proof: `Democracy::PublicProps` (`max_values`: Some(1), `max_size`: Some(16702), added: 17197, mode: `MaxEncodedLen`) + /// Storage: `Democracy::DepositOf` (r:1 w:1) + /// Proof: `Democracy::DepositOf` (`max_values`: None, `max_size`: Some(3230), added: 5705, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Democracy::MetadataOf` (r:3 w:1) + /// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`) + /// Storage: `Democracy::NextExternal` (r:1 w:1) + /// Proof: `Democracy::NextExternal` (`max_values`: Some(1), `max_size`: Some(132), added: 627, mode: `MaxEncodedLen`) + /// Storage: `Democracy::ReferendumInfoOf` (r:1 w:1) + /// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`) + /// Storage: `Democracy::Blacklist` (r:0 w:1) + /// Proof: `Democracy::Blacklist` (`max_values`: None, `max_size`: Some(3238), added: 5713, mode: `MaxEncodedLen`) fn blacklist() -> Weight { - // Minimum execution time: 57_938 nanoseconds. - Weight::from_ref_time(59_242_000 as u64) - .saturating_add(T::DbWeight::get().reads(5 as u64)) - .saturating_add(T::DbWeight::get().writes(6 as u64)) + // Proof Size summary in bytes: + // Measured: `5819` + // Estimated: `18187` + // Minimum execution time: 128_837_000 picoseconds. + Weight::from_parts(129_578_000, 18187) + .saturating_add(T::DbWeight::get().reads(8_u64)) + .saturating_add(T::DbWeight::get().writes(7_u64)) } - // Storage: Democracy NextExternal (r:1 w:1) - // Proof: Democracy NextExternal (max_values: Some(1), max_size: Some(132), added: 627, mode: MaxEncodedLen) - // Storage: Democracy Blacklist (r:1 w:0) - // Proof: Democracy Blacklist (max_values: None, max_size: Some(3238), added: 5713, mode: MaxEncodedLen) + /// Storage: `Democracy::NextExternal` (r:1 w:1) + /// Proof: `Democracy::NextExternal` (`max_values`: Some(1), `max_size`: Some(132), added: 627, mode: `MaxEncodedLen`) + /// Storage: `Democracy::Blacklist` (r:1 w:0) + /// Proof: `Democracy::Blacklist` (`max_values`: None, `max_size`: Some(3238), added: 5713, mode: `MaxEncodedLen`) fn external_propose() -> Weight { - // Minimum execution time: 9_468 nanoseconds. - Weight::from_ref_time(10_062_000 as u64) - .saturating_add(T::DbWeight::get().reads(2 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Size summary in bytes: + // Measured: `3276` + // Estimated: `6703` + // Minimum execution time: 16_235_000 picoseconds. + Weight::from_parts(16_657_000, 6703) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } - // Storage: Democracy NextExternal (r:0 w:1) - // Proof: Democracy NextExternal (max_values: Some(1), max_size: Some(132), added: 627, mode: MaxEncodedLen) + /// Storage: `Democracy::NextExternal` (r:0 w:1) + /// Proof: `Democracy::NextExternal` (`max_values`: Some(1), `max_size`: Some(132), added: 627, mode: `MaxEncodedLen`) fn external_propose_majority() -> Weight { - // Minimum execution time: 2_299 nanoseconds. - Weight::from_ref_time(2_359_000 as u64).saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 5_641_000 picoseconds. + Weight::from_parts(5_763_000, 0).saturating_add(T::DbWeight::get().writes(1_u64)) } - // Storage: Democracy NextExternal (r:0 w:1) - // Proof: Democracy NextExternal (max_values: Some(1), max_size: Some(132), added: 627, mode: MaxEncodedLen) + /// Storage: `Democracy::NextExternal` (r:0 w:1) + /// Proof: `Democracy::NextExternal` (`max_values`: Some(1), `max_size`: Some(132), added: 627, mode: `MaxEncodedLen`) fn external_propose_default() -> Weight { - // Minimum execution time: 2_253 nanoseconds. - Weight::from_ref_time(2_335_000 as u64).saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 5_600_000 picoseconds. + Weight::from_parts(5_786_000, 0).saturating_add(T::DbWeight::get().writes(1_u64)) } - // Storage: Democracy NextExternal (r:1 w:1) - // Proof: Democracy NextExternal (max_values: Some(1), max_size: Some(132), added: 627, mode: MaxEncodedLen) - // Storage: Democracy ReferendumCount (r:1 w:1) - // Proof: Democracy ReferendumCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - // Storage: Democracy ReferendumInfoOf (r:0 w:1) - // Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen) + /// Storage: `Democracy::NextExternal` (r:1 w:1) + /// Proof: `Democracy::NextExternal` (`max_values`: Some(1), `max_size`: Some(132), added: 627, mode: `MaxEncodedLen`) + /// Storage: `Democracy::ReferendumCount` (r:1 w:1) + /// Proof: `Democracy::ReferendumCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Democracy::MetadataOf` (r:1 w:2) + /// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`) + /// Storage: `Democracy::ReferendumInfoOf` (r:0 w:1) + /// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`) fn fast_track() -> Weight { - // Minimum execution time: 11_484 nanoseconds. - Weight::from_ref_time(11_886_000 as u64) - .saturating_add(T::DbWeight::get().reads(2 as u64)) - .saturating_add(T::DbWeight::get().writes(3 as u64)) + // Proof Size summary in bytes: + // Measured: `147` + // Estimated: `3518` + // Minimum execution time: 35_335_000 picoseconds. + Weight::from_parts(35_694_000, 3518) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(5_u64)) } - // Storage: Democracy NextExternal (r:1 w:1) - // Proof: Democracy NextExternal (max_values: Some(1), max_size: Some(132), added: 627, mode: MaxEncodedLen) - // Storage: Democracy Blacklist (r:1 w:1) - // Proof: Democracy Blacklist (max_values: None, max_size: Some(3238), added: 5713, mode: MaxEncodedLen) + /// Storage: `Democracy::NextExternal` (r:1 w:1) + /// Proof: `Democracy::NextExternal` (`max_values`: Some(1), `max_size`: Some(132), added: 627, mode: `MaxEncodedLen`) + /// Storage: `Democracy::Blacklist` (r:1 w:1) + /// Proof: `Democracy::Blacklist` (`max_values`: None, `max_size`: Some(3238), added: 5713, mode: `MaxEncodedLen`) + /// Storage: `Democracy::MetadataOf` (r:1 w:1) + /// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`) fn veto_external() -> Weight { - // Minimum execution time: 14_789 nanoseconds. - Weight::from_ref_time(15_026_000 as u64) - .saturating_add(T::DbWeight::get().reads(2 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) + // Proof Size summary in bytes: + // Measured: `3377` + // Estimated: `6703` + // Minimum execution time: 36_757_000 picoseconds. + Weight::from_parts(37_171_000, 6703) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } - // Storage: Democracy PublicProps (r:1 w:1) - // Proof: Democracy PublicProps (max_values: Some(1), max_size: Some(16702), added: 17197, mode: MaxEncodedLen) - // Storage: Democracy DepositOf (r:1 w:1) - // Proof: Democracy DepositOf (max_values: None, max_size: Some(3230), added: 5705, mode: MaxEncodedLen) - // Storage: System Account (r:1 w:1) - // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Democracy::PublicProps` (r:1 w:1) + /// Proof: `Democracy::PublicProps` (`max_values`: Some(1), `max_size`: Some(16702), added: 17197, mode: `MaxEncodedLen`) + /// Storage: `Democracy::DepositOf` (r:1 w:1) + /// Proof: `Democracy::DepositOf` (`max_values`: None, `max_size`: Some(3230), added: 5705, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Democracy::MetadataOf` (r:1 w:1) + /// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`) fn cancel_proposal() -> Weight { - // Minimum execution time: 43_257 nanoseconds. - Weight::from_ref_time(45_515_000 as u64) - .saturating_add(T::DbWeight::get().reads(3 as u64)) - .saturating_add(T::DbWeight::get().writes(3 as u64)) + // Proof Size summary in bytes: + // Measured: `5704` + // Estimated: `18187` + // Minimum execution time: 100_500_000 picoseconds. + Weight::from_parts(101_121_000, 18187) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) } - // Storage: Democracy ReferendumInfoOf (r:0 w:1) - // Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen) + /// Storage: `Democracy::MetadataOf` (r:1 w:1) + /// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`) + /// Storage: `Democracy::ReferendumInfoOf` (r:0 w:1) + /// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`) fn cancel_referendum() -> Weight { - // Minimum execution time: 5_045 nanoseconds. - Weight::from_ref_time(5_272_000 as u64).saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Size summary in bytes: + // Measured: `181` + // Estimated: `3518` + // Minimum execution time: 27_472_000 picoseconds. + Weight::from_parts(27_813_000, 3518) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } - // Storage: Democracy LowestUnbaked (r:1 w:1) - // Proof: Democracy LowestUnbaked (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - // Storage: Democracy ReferendumCount (r:1 w:0) - // Proof: Democracy ReferendumCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - // Storage: Democracy ReferendumInfoOf (r:99 w:0) - // Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen) + /// Storage: `Democracy::LowestUnbaked` (r:1 w:1) + /// Proof: `Democracy::LowestUnbaked` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Democracy::ReferendumCount` (r:1 w:0) + /// Proof: `Democracy::ReferendumCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Democracy::ReferendumInfoOf` (r:99 w:0) + /// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`) /// The range of component `r` is `[0, 99]`. fn on_initialize_base(r: u32) -> Weight { - // Minimum execution time: 4_594 nanoseconds. - Weight::from_ref_time(5_698_230 as u64) // Standard Error: 10_821 - .saturating_add(Weight::from_ref_time(2_177_776 as u64).saturating_mul(r as u64)) - .saturating_add(T::DbWeight::get().reads(2 as u64)) - .saturating_add(T::DbWeight::get().reads((1 as u64).saturating_mul(r as u64))) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Size summary in bytes: + // Measured: `125 + r * (86 ±0)` + // Estimated: `1489 + r * (2676 ±0)` + // Minimum execution time: 7_324_000 picoseconds. + Weight::from_parts(10_018_029, 1489) + // Standard Error: 7_493 + .saturating_add(Weight::from_parts(3_483_961, 0).saturating_mul(r.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) + .saturating_add(T::DbWeight::get().writes(1_u64)) + .saturating_add(Weight::from_parts(0, 2676).saturating_mul(r.into())) } - // Storage: Democracy LowestUnbaked (r:1 w:1) - // Proof: Democracy LowestUnbaked (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - // Storage: Democracy ReferendumCount (r:1 w:0) - // Proof: Democracy ReferendumCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - // Storage: Democracy LastTabledWasExternal (r:1 w:0) - // Proof: Democracy LastTabledWasExternal (max_values: Some(1), max_size: Some(1), added: 496, mode: MaxEncodedLen) - // Storage: Democracy NextExternal (r:1 w:0) - // Proof: Democracy NextExternal (max_values: Some(1), max_size: Some(132), added: 627, mode: MaxEncodedLen) - // Storage: Democracy PublicProps (r:1 w:0) - // Proof: Democracy PublicProps (max_values: Some(1), max_size: Some(16702), added: 17197, mode: MaxEncodedLen) - // Storage: Democracy ReferendumInfoOf (r:99 w:0) - // Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen) + /// Storage: `Democracy::LowestUnbaked` (r:1 w:1) + /// Proof: `Democracy::LowestUnbaked` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Democracy::ReferendumCount` (r:1 w:0) + /// Proof: `Democracy::ReferendumCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Democracy::LastTabledWasExternal` (r:1 w:0) + /// Proof: `Democracy::LastTabledWasExternal` (`max_values`: Some(1), `max_size`: Some(1), added: 496, mode: `MaxEncodedLen`) + /// Storage: `Democracy::NextExternal` (r:1 w:0) + /// Proof: `Democracy::NextExternal` (`max_values`: Some(1), `max_size`: Some(132), added: 627, mode: `MaxEncodedLen`) + /// Storage: `Democracy::PublicProps` (r:1 w:0) + /// Proof: `Democracy::PublicProps` (`max_values`: Some(1), `max_size`: Some(16702), added: 17197, mode: `MaxEncodedLen`) + /// Storage: `Democracy::ReferendumInfoOf` (r:99 w:0) + /// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`) /// The range of component `r` is `[0, 99]`. fn on_initialize_base_with_launch_period(r: u32) -> Weight { - // Minimum execution time: 6_297 nanoseconds. - Weight::from_ref_time(7_002_136 as u64) // Standard Error: 15_373 - .saturating_add(Weight::from_ref_time(2_199_111 as u64).saturating_mul(r as u64)) - .saturating_add(T::DbWeight::get().reads(5 as u64)) - .saturating_add(T::DbWeight::get().reads((1 as u64).saturating_mul(r as u64))) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Size summary in bytes: + // Measured: `125 + r * (86 ±0)` + // Estimated: `18187 + r * (2676 ±0)` + // Minimum execution time: 11_931_000 picoseconds. + Weight::from_parts(14_585_511, 18187) + // Standard Error: 9_076 + .saturating_add(Weight::from_parts(3_497_355, 0).saturating_mul(r.into())) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) + .saturating_add(T::DbWeight::get().writes(1_u64)) + .saturating_add(Weight::from_parts(0, 2676).saturating_mul(r.into())) } - // Storage: Democracy VotingOf (r:3 w:3) - // Proof: Democracy VotingOf (max_values: None, max_size: Some(3795), added: 6270, mode: MaxEncodedLen) - // Storage: Democracy ReferendumInfoOf (r:99 w:99) - // Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen) - // Storage: Balances Locks (r:1 w:1) - // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) + /// Storage: `Democracy::VotingOf` (r:3 w:3) + /// Proof: `Democracy::VotingOf` (`max_values`: None, `max_size`: Some(3795), added: 6270, mode: `MaxEncodedLen`) + /// Storage: `Democracy::ReferendumInfoOf` (r:99 w:99) + /// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) /// The range of component `r` is `[0, 99]`. fn delegate(r: u32) -> Weight { - // Minimum execution time: 26_422 nanoseconds. - Weight::from_ref_time(29_168_428 as u64) // Standard Error: 15_118 - .saturating_add(Weight::from_ref_time(3_097_186 as u64).saturating_mul(r as u64)) - .saturating_add(T::DbWeight::get().reads(4 as u64)) - .saturating_add(T::DbWeight::get().reads((1 as u64).saturating_mul(r as u64))) - .saturating_add(T::DbWeight::get().writes(4 as u64)) - .saturating_add(T::DbWeight::get().writes((1 as u64).saturating_mul(r as u64))) + // Proof Size summary in bytes: + // Measured: `748 + r * (108 ±0)` + // Estimated: `19800 + r * (2676 ±0)` + // Minimum execution time: 52_854_000 picoseconds. + Weight::from_parts(54_745_296, 19800) + // Standard Error: 11_445 + .saturating_add(Weight::from_parts(4_550_546, 0).saturating_mul(r.into())) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) + .saturating_add(T::DbWeight::get().writes(4_u64)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(r.into()))) + .saturating_add(Weight::from_parts(0, 2676).saturating_mul(r.into())) } - // Storage: Democracy VotingOf (r:2 w:2) - // Proof: Democracy VotingOf (max_values: None, max_size: Some(3795), added: 6270, mode: MaxEncodedLen) - // Storage: Democracy ReferendumInfoOf (r:99 w:99) - // Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen) + /// Storage: `Democracy::VotingOf` (r:2 w:2) + /// Proof: `Democracy::VotingOf` (`max_values`: None, `max_size`: Some(3795), added: 6270, mode: `MaxEncodedLen`) + /// Storage: `Democracy::ReferendumInfoOf` (r:99 w:99) + /// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`) /// The range of component `r` is `[0, 99]`. fn undelegate(r: u32) -> Weight { - // Minimum execution time: 15_248 nanoseconds. - Weight::from_ref_time(16_741_637 as u64) // Standard Error: 10_525 - .saturating_add(Weight::from_ref_time(3_036_592 as u64).saturating_mul(r as u64)) - .saturating_add(T::DbWeight::get().reads(2 as u64)) - .saturating_add(T::DbWeight::get().reads((1 as u64).saturating_mul(r as u64))) - .saturating_add(T::DbWeight::get().writes(2 as u64)) - .saturating_add(T::DbWeight::get().writes((1 as u64).saturating_mul(r as u64))) + // Proof Size summary in bytes: + // Measured: `373 + r * (108 ±0)` + // Estimated: `13530 + r * (2676 ±0)` + // Minimum execution time: 25_365_000 picoseconds. + Weight::from_parts(22_654_244, 13530) + // Standard Error: 20_918 + .saturating_add(Weight::from_parts(4_586_941, 0).saturating_mul(r.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(r.into()))) + .saturating_add(T::DbWeight::get().writes(2_u64)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(r.into()))) + .saturating_add(Weight::from_parts(0, 2676).saturating_mul(r.into())) } - // Storage: Democracy PublicProps (r:0 w:1) - // Proof: Democracy PublicProps (max_values: Some(1), max_size: Some(16702), added: 17197, mode: MaxEncodedLen) + /// Storage: `Democracy::PublicProps` (r:0 w:1) + /// Proof: `Democracy::PublicProps` (`max_values`: Some(1), `max_size`: Some(16702), added: 17197, mode: `MaxEncodedLen`) fn clear_public_proposals() -> Weight { - // Minimum execution time: 2_312 nanoseconds. - Weight::from_ref_time(2_386_000 as u64).saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 5_687_000 picoseconds. + Weight::from_parts(5_836_000, 0).saturating_add(T::DbWeight::get().writes(1_u64)) } - // Storage: Democracy VotingOf (r:1 w:1) - // Proof: Democracy VotingOf (max_values: None, max_size: Some(3795), added: 6270, mode: MaxEncodedLen) - // Storage: Balances Locks (r:1 w:1) - // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) - // Storage: System Account (r:1 w:1) - // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Democracy::VotingOf` (r:1 w:1) + /// Proof: `Democracy::VotingOf` (`max_values`: None, `max_size`: Some(3795), added: 6270, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) /// The range of component `r` is `[0, 99]`. fn unlock_remove(r: u32) -> Weight { - // Minimum execution time: 13_724 nanoseconds. - Weight::from_ref_time(16_623_981 as u64) // Standard Error: 7_491 - .saturating_add(Weight::from_ref_time(62_092 as u64).saturating_mul(r as u64)) - .saturating_add(T::DbWeight::get().reads(3 as u64)) - .saturating_add(T::DbWeight::get().writes(3 as u64)) + // Proof Size summary in bytes: + // Measured: `504` + // Estimated: `7260` + // Minimum execution time: 31_996_000 picoseconds. + Weight::from_parts(43_490_743, 7260) + // Standard Error: 11_023 + .saturating_add(Weight::from_parts(105_337, 0).saturating_mul(r.into())) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } - // Storage: Democracy VotingOf (r:1 w:1) - // Proof: Democracy VotingOf (max_values: None, max_size: Some(3795), added: 6270, mode: MaxEncodedLen) - // Storage: Balances Locks (r:1 w:1) - // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) - // Storage: System Account (r:1 w:1) - // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Democracy::VotingOf` (r:1 w:1) + /// Proof: `Democracy::VotingOf` (`max_values`: None, `max_size`: Some(3795), added: 6270, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) /// The range of component `r` is `[0, 99]`. fn unlock_set(r: u32) -> Weight { - // Minimum execution time: 19_194 nanoseconds. - Weight::from_ref_time(19_765_470 as u64) // Standard Error: 1_275 - .saturating_add(Weight::from_ref_time(62_842 as u64).saturating_mul(r as u64)) - .saturating_add(T::DbWeight::get().reads(3 as u64)) - .saturating_add(T::DbWeight::get().writes(3 as u64)) + // Proof Size summary in bytes: + // Measured: `504 + r * (22 ±0)` + // Estimated: `7260` + // Minimum execution time: 45_808_000 picoseconds. + Weight::from_parts(46_797_619, 7260) + // Standard Error: 1_606 + .saturating_add(Weight::from_parts(45_847, 0).saturating_mul(r.into())) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } - // Storage: Democracy ReferendumInfoOf (r:1 w:1) - // Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen) - // Storage: Democracy VotingOf (r:1 w:1) - // Proof: Democracy VotingOf (max_values: None, max_size: Some(3795), added: 6270, mode: MaxEncodedLen) + /// Storage: `Democracy::ReferendumInfoOf` (r:1 w:1) + /// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`) + /// Storage: `Democracy::VotingOf` (r:1 w:1) + /// Proof: `Democracy::VotingOf` (`max_values`: None, `max_size`: Some(3795), added: 6270, mode: `MaxEncodedLen`) /// The range of component `r` is `[1, 100]`. fn remove_vote(r: u32) -> Weight { - // Minimum execution time: 11_895 nanoseconds. - Weight::from_ref_time(12_859_725 as u64) // Standard Error: 3_774 - .saturating_add(Weight::from_ref_time(87_756 as u64).saturating_mul(r as u64)) - .saturating_add(T::DbWeight::get().reads(2 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) + // Proof Size summary in bytes: + // Measured: `644 + r * (25 ±0)` + // Estimated: `7260` + // Minimum execution time: 18_965_000 picoseconds. + Weight::from_parts(21_382_331, 7260) + // Standard Error: 2_463 + .saturating_add(Weight::from_parts(65_052, 0).saturating_mul(r.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } - // Storage: Democracy ReferendumInfoOf (r:1 w:1) - // Proof: Democracy ReferendumInfoOf (max_values: None, max_size: Some(201), added: 2676, mode: MaxEncodedLen) - // Storage: Democracy VotingOf (r:1 w:1) - // Proof: Democracy VotingOf (max_values: None, max_size: Some(3795), added: 6270, mode: MaxEncodedLen) + /// Storage: `Democracy::ReferendumInfoOf` (r:1 w:1) + /// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`) + /// Storage: `Democracy::VotingOf` (r:1 w:1) + /// Proof: `Democracy::VotingOf` (`max_values`: None, `max_size`: Some(3795), added: 6270, mode: `MaxEncodedLen`) /// The range of component `r` is `[1, 100]`. fn remove_other_vote(r: u32) -> Weight { - // Minimum execution time: 11_704 nanoseconds. - Weight::from_ref_time(12_797_491 as u64) // Standard Error: 3_861 - .saturating_add(Weight::from_ref_time(88_052 as u64).saturating_mul(r as u64)) - .saturating_add(T::DbWeight::get().reads(2 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) + // Proof Size summary in bytes: + // Measured: `644 + r * (25 ±0)` + // Estimated: `7260` + // Minimum execution time: 19_147_000 picoseconds. + Weight::from_parts(21_637_991, 7260) + // Standard Error: 2_623 + .saturating_add(Weight::from_parts(66_432, 0).saturating_mul(r.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `Democracy::NextExternal` (r:1 w:0) + /// Proof: `Democracy::NextExternal` (`max_values`: Some(1), `max_size`: Some(132), added: 627, mode: `MaxEncodedLen`) + /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Democracy::MetadataOf` (r:0 w:1) + /// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`) + fn set_external_metadata() -> Weight { + // Proof Size summary in bytes: + // Measured: `287` + // Estimated: `3556` + // Minimum execution time: 23_679_000 picoseconds. + Weight::from_parts(24_310_000, 3556) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Democracy::NextExternal` (r:1 w:0) + /// Proof: `Democracy::NextExternal` (`max_values`: Some(1), `max_size`: Some(132), added: 627, mode: `MaxEncodedLen`) + /// Storage: `Democracy::MetadataOf` (r:1 w:1) + /// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`) + fn clear_external_metadata() -> Weight { + // Proof Size summary in bytes: + // Measured: `147` + // Estimated: `3518` + // Minimum execution time: 21_263_000 picoseconds. + Weight::from_parts(21_643_000, 3518) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Democracy::PublicProps` (r:1 w:0) + /// Proof: `Democracy::PublicProps` (`max_values`: Some(1), `max_size`: Some(16702), added: 17197, mode: `MaxEncodedLen`) + /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Democracy::MetadataOf` (r:0 w:1) + /// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`) + fn set_proposal_metadata() -> Weight { + // Proof Size summary in bytes: + // Measured: `4842` + // Estimated: `18187` + // Minimum execution time: 48_066_000 picoseconds. + Weight::from_parts(48_647_000, 18187) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Democracy::PublicProps` (r:1 w:0) + /// Proof: `Democracy::PublicProps` (`max_values`: Some(1), `max_size`: Some(16702), added: 17197, mode: `MaxEncodedLen`) + /// Storage: `Democracy::MetadataOf` (r:1 w:1) + /// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`) + fn clear_proposal_metadata() -> Weight { + // Proof Size summary in bytes: + // Measured: `4706` + // Estimated: `18187` + // Minimum execution time: 44_044_000 picoseconds. + Weight::from_parts(44_772_000, 18187) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Preimage::StatusFor` (r:1 w:0) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) + /// Storage: `Democracy::MetadataOf` (r:0 w:1) + /// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`) + fn set_referendum_metadata() -> Weight { + // Proof Size summary in bytes: + // Measured: `211` + // Estimated: `3556` + // Minimum execution time: 20_942_000 picoseconds. + Weight::from_parts(21_152_000, 3556) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `Democracy::ReferendumInfoOf` (r:1 w:0) + /// Proof: `Democracy::ReferendumInfoOf` (`max_values`: None, `max_size`: Some(201), added: 2676, mode: `MaxEncodedLen`) + /// Storage: `Democracy::MetadataOf` (r:1 w:1) + /// Proof: `Democracy::MetadataOf` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`) + fn clear_referendum_metadata() -> Weight { + // Proof Size summary in bytes: + // Measured: `159` + // Estimated: `3666` + // Minimum execution time: 23_243_000 picoseconds. + Weight::from_parts(23_579_000, 3666) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } } diff --git a/runtime/basilisk/src/weights/duster.rs b/runtime/basilisk/src/weights/duster.rs index 2f755c70881..3bcba2212b1 100644 --- a/runtime/basilisk/src/weights/duster.rs +++ b/runtime/basilisk/src/weights/duster.rs @@ -15,25 +15,27 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_duster +//! Autogenerated weights for `pallet_duster` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-01, STEPS: 5, REPEAT: 20, LOW RANGE: [], HIGH RANGE: [] -//! EXECUTION: None, WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! DATE: 2023-12-06, STEPS: `10`, REPEAT: `30`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: // target/release/basilisk // benchmark // pallet -// --pallet=pallet-duster // --chain=dev +// --steps=10 +// --repeat=30 +// --wasm-execution=compiled +// --heap-pages=4096 +// --template=.maintain/pallet-weight-template-no-back.hbs +// --pallet=pallet-duster +// --output=weights-1.1.0/duster.rs // --extrinsic=* -// --steps=5 -// --repeat=20 -// --output -// duster.rs -// --template -// .maintain/pallet-weight-template-no-back.hbs #![allow(unused_parens)] #![allow(unused_imports)] @@ -50,38 +52,47 @@ use pallet_duster::weights::WeightInfo; pub struct BasiliskWeight(PhantomData); impl WeightInfo for BasiliskWeight { - // Storage: Duster AccountBlacklist (r:1 w:0) - // Proof Skipped: Duster AccountBlacklist (max_values: None, max_size: None, mode: Measured) - // Storage: AssetRegistry Assets (r:1 w:0) - // Proof Skipped: AssetRegistry Assets (max_values: None, max_size: None, mode: Measured) - // Storage: Tokens Accounts (r:2 w:2) - // Proof: Tokens Accounts (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen) - // Storage: Duster DustAccount (r:1 w:0) - // Proof Skipped: Duster DustAccount (max_values: Some(1), max_size: None, mode: Measured) - // Storage: System Account (r:1 w:1) - // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - // Storage: Duster RewardAccount (r:1 w:0) - // Proof Skipped: Duster RewardAccount (max_values: Some(1), max_size: None, mode: Measured) - // Storage: MultiTransactionPayment AccountCurrencyMap (r:0 w:1) - // Proof: MultiTransactionPayment AccountCurrencyMap (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Storage: `Duster::AccountBlacklist` (r:1 w:0) + /// Proof: `Duster::AccountBlacklist` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:1 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `Tokens::Accounts` (r:2 w:2) + /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Storage: `Duster::DustAccount` (r:1 w:0) + /// Proof: `Duster::DustAccount` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Duster::RewardAccount` (r:1 w:0) + /// Proof: `Duster::RewardAccount` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `MultiTransactionPayment::AccountCurrencyMap` (r:0 w:1) + /// Proof: `MultiTransactionPayment::AccountCurrencyMap` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) fn dust_account() -> Weight { - // Minimum execution time: 54_606 nanoseconds. - Weight::from_ref_time(55_138_000 as u64) - .saturating_add(T::DbWeight::get().reads(7 as u64)) - .saturating_add(T::DbWeight::get().writes(4 as u64)) + // Proof Size summary in bytes: + // Measured: `2389` + // Estimated: `6156` + // Minimum execution time: 90_423_000 picoseconds. + Weight::from_parts(91_336_000, 6156) + .saturating_add(T::DbWeight::get().reads(7_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) } - // Storage: Duster AccountBlacklist (r:0 w:1) - // Proof Skipped: Duster AccountBlacklist (max_values: None, max_size: None, mode: Measured) + /// Storage: `Duster::AccountBlacklist` (r:0 w:1) + /// Proof: `Duster::AccountBlacklist` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) fn add_nondustable_account() -> Weight { - // Minimum execution time: 14_084 nanoseconds. - Weight::from_ref_time(14_486_000 as u64).saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Size summary in bytes: + // Measured: `967` + // Estimated: `0` + // Minimum execution time: 21_334_000 picoseconds. + Weight::from_parts(21_802_000, 0).saturating_add(T::DbWeight::get().writes(1_u64)) } - // Storage: Duster AccountBlacklist (r:1 w:1) - // Proof Skipped: Duster AccountBlacklist (max_values: None, max_size: None, mode: Measured) + /// Storage: `Duster::AccountBlacklist` (r:1 w:1) + /// Proof: `Duster::AccountBlacklist` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) fn remove_nondustable_account() -> Weight { - // Minimum execution time: 19_134 nanoseconds. - Weight::from_ref_time(19_581_000 as u64) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Size summary in bytes: + // Measured: `1288` + // Estimated: `3513` + // Minimum execution time: 26_321_000 picoseconds. + Weight::from_parts(26_849_000, 3513) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } } diff --git a/runtime/basilisk/src/weights/ema_oracle.rs b/runtime/basilisk/src/weights/ema_oracle.rs index f8598ac88f7..311c9d40924 100644 --- a/runtime/basilisk/src/weights/ema_oracle.rs +++ b/runtime/basilisk/src/weights/ema_oracle.rs @@ -1,4 +1,4 @@ -// This file is part of Basilisk-node. +// This file is part of Basilisk. // Copyright (C) 2020-2023 Intergalactic, Limited (GIB). // SPDX-License-Identifier: Apache-2.0 @@ -15,11 +15,13 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_ema_oracle +//! Autogenerated weights for `pallet_ema_oracle` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-03-09, STEPS: 10, REPEAT: 30, LOW RANGE: [], HIGH RANGE: [] -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! DATE: 2023-12-06, STEPS: `10`, REPEAT: `30`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: // target/release/basilisk @@ -28,13 +30,13 @@ // --chain=dev // --steps=10 // --repeat=30 -// --execution=wasm // --wasm-execution=compiled // --heap-pages=4096 // --template=.maintain/pallet-weight-template-no-back.hbs -// --pallet=pallet_ema_oracle -// --output=oracle.rs +// --pallet=pallet-ema-oracle +// --output=weights-1.1.0/ema_oracle.rs // --extrinsic=* + #![allow(unused_parens)] #![allow(unused_imports)] #![allow(clippy::unnecessary_cast)] @@ -50,30 +52,69 @@ use pallet_ema_oracle::weights::WeightInfo; pub struct BasiliskWeight(PhantomData); impl WeightInfo for BasiliskWeight { + /// Storage: `EmaOracle::Accumulator` (r:1 w:0) + /// Proof: `EmaOracle::Accumulator` (`max_values`: Some(1), `max_size`: Some(4441), added: 4936, mode: `MaxEncodedLen`) fn on_finalize_no_entry() -> Weight { - Weight::from_ref_time(4_740_000).saturating_add(T::DbWeight::get().reads(1 as u64)) + // Proof Size summary in bytes: + // Measured: `109` + // Estimated: `5926` + // Minimum execution time: 3_917_000 picoseconds. + Weight::from_parts(4_081_000, 5926).saturating_add(T::DbWeight::get().reads(1_u64)) } + /// Storage: `EmaOracle::Accumulator` (r:1 w:1) + /// Proof: `EmaOracle::Accumulator` (`max_values`: Some(1), `max_size`: Some(4441), added: 4936, mode: `MaxEncodedLen`) + /// Storage: `EmaOracle::Oracles` (r:145 w:145) + /// Proof: `EmaOracle::Oracles` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) + /// The range of component `b` is `[1, 29]`. fn on_finalize_multiple_tokens(b: u32) -> Weight { - Weight::from_ref_time(19_041_000) // Standard Error: 53_000 - .saturating_add(Weight::from_ref_time(43_566_000).saturating_mul(b as u64)) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().reads((4 as u64).saturating_mul(b as u64))) - .saturating_add(T::DbWeight::get().writes(1 as u64)) - .saturating_add(T::DbWeight::get().writes((4 as u64).saturating_mul(b as u64))) + // Proof Size summary in bytes: + // Measured: `170 + b * (933 ±0)` + // Estimated: `5926 + b * (13260 ±0)` + // Minimum execution time: 75_545_000 picoseconds. + Weight::from_parts(14_265_997, 5926) + // Standard Error: 32_211 + .saturating_add(Weight::from_parts(62_973_426, 0).saturating_mul(b.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().reads((5_u64).saturating_mul(b.into()))) + .saturating_add(T::DbWeight::get().writes(1_u64)) + .saturating_add(T::DbWeight::get().writes((5_u64).saturating_mul(b.into()))) + .saturating_add(Weight::from_parts(0, 13260).saturating_mul(b.into())) } + /// Storage: `EmaOracle::Accumulator` (r:1 w:1) + /// Proof: `EmaOracle::Accumulator` (`max_values`: Some(1), `max_size`: Some(4441), added: 4936, mode: `MaxEncodedLen`) + /// The range of component `b` is `[1, 29]`. fn on_trade_multiple_tokens(b: u32) -> Weight { - Weight::from_ref_time(17_201_000) // Standard Error: 6_000 - .saturating_add(Weight::from_ref_time(712_000).saturating_mul(b as u64)) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Size summary in bytes: + // Measured: `171 + b * (148 ±0)` + // Estimated: `5926` + // Minimum execution time: 9_626_000 picoseconds. + Weight::from_parts(9_727_215, 5926) + // Standard Error: 2_561 + .saturating_add(Weight::from_parts(398_934, 0).saturating_mul(b.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } + /// Storage: `EmaOracle::Accumulator` (r:1 w:1) + /// Proof: `EmaOracle::Accumulator` (`max_values`: Some(1), `max_size`: Some(4441), added: 4936, mode: `MaxEncodedLen`) + /// The range of component `b` is `[1, 29]`. fn on_liquidity_changed_multiple_tokens(b: u32) -> Weight { - Weight::from_ref_time(17_238_000) // Standard Error: 6_000 - .saturating_add(Weight::from_ref_time(704_000).saturating_mul(b as u64)) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Size summary in bytes: + // Measured: `171 + b * (148 ±0)` + // Estimated: `5926` + // Minimum execution time: 9_684_000 picoseconds. + Weight::from_parts(9_869_189, 5926) + // Standard Error: 2_507 + .saturating_add(Weight::from_parts(395_300, 0).saturating_mul(b.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } + /// Storage: `EmaOracle::Oracles` (r:2 w:0) + /// Proof: `EmaOracle::Oracles` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) fn get_entry() -> Weight { - Weight::from_ref_time(24_093_000).saturating_add(T::DbWeight::get().reads(2 as u64)) + // Proof Size summary in bytes: + // Measured: `575` + // Estimated: `6294` + // Minimum execution time: 20_401_000 picoseconds. + Weight::from_parts(20_592_000, 6294).saturating_add(T::DbWeight::get().reads(2_u64)) } } diff --git a/runtime/basilisk/src/weights/lbp.rs b/runtime/basilisk/src/weights/lbp.rs index d827b4d5729..93d87af5c4a 100644 --- a/runtime/basilisk/src/weights/lbp.rs +++ b/runtime/basilisk/src/weights/lbp.rs @@ -15,25 +15,27 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_lbp +//! Autogenerated weights for `pallet_lbp` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-01, STEPS: 5, REPEAT: 20, LOW RANGE: [], HIGH RANGE: [] -//! EXECUTION: None, WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! DATE: 2023-12-06, STEPS: `10`, REPEAT: `30`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: // target/release/basilisk // benchmark // pallet -// --pallet=pallet-lbp // --chain=dev +// --steps=10 +// --repeat=30 +// --wasm-execution=compiled +// --heap-pages=4096 +// --template=.maintain/pallet-weight-template-no-back.hbs +// --pallet=pallet-lbp +// --output=weights-1.1.0/lbp.rs // --extrinsic=* -// --steps=5 -// --repeat=20 -// --output -// lbp.rs -// --template -// .maintain/pallet-weight-template-no-back.hbs #![allow(unused_parens)] #![allow(unused_imports)] @@ -50,100 +52,183 @@ use pallet_lbp::weights::WeightInfo; pub struct BasiliskWeight(PhantomData); impl WeightInfo for BasiliskWeight { - // Storage: LBP PoolData (r:1 w:1) - // Proof Skipped: LBP PoolData (max_values: None, max_size: None, mode: Measured) - // Storage: LBP FeeCollectorWithAsset (r:1 w:1) - // Proof Skipped: LBP FeeCollectorWithAsset (max_values: None, max_size: None, mode: Measured) - // Storage: Tokens Accounts (r:4 w:4) - // Proof: Tokens Accounts (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen) - // Storage: AssetRegistry Assets (r:2 w:0) - // Proof Skipped: AssetRegistry Assets (max_values: None, max_size: None, mode: Measured) - // Storage: System Account (r:2 w:1) - // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - // Storage: MultiTransactionPayment AccountCurrencyMap (r:1 w:1) - // Proof: MultiTransactionPayment AccountCurrencyMap (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) - // Storage: MultiTransactionPayment AcceptedCurrencies (r:1 w:0) - // Proof: MultiTransactionPayment AcceptedCurrencies (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) + /// Storage: `LBP::PoolData` (r:1 w:1) + /// Proof: `LBP::PoolData` (`max_values`: None, `max_size`: Some(163), added: 2638, mode: `MaxEncodedLen`) + /// Storage: `LBP::FeeCollectorWithAsset` (r:1 w:1) + /// Proof: `LBP::FeeCollectorWithAsset` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) + /// Storage: `Tokens::Accounts` (r:4 w:4) + /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:2 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `MultiTransactionPayment::AccountCurrencyMap` (r:1 w:1) + /// Proof: `MultiTransactionPayment::AccountCurrencyMap` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `MultiTransactionPayment::AcceptedCurrencies` (r:1 w:0) + /// Proof: `MultiTransactionPayment::AcceptedCurrencies` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) fn create_pool() -> Weight { - // Minimum execution time: 69_643 nanoseconds. - Weight::from_ref_time(70_487_000 as u64) - .saturating_add(T::DbWeight::get().reads(12 as u64)) - .saturating_add(T::DbWeight::get().writes(8 as u64)) + // Proof Size summary in bytes: + // Measured: `930` + // Estimated: `11322` + // Minimum execution time: 144_594_000 picoseconds. + Weight::from_parts(145_577_000, 11322) + .saturating_add(T::DbWeight::get().reads(12_u64)) + .saturating_add(T::DbWeight::get().writes(8_u64)) } - // Storage: LBP PoolData (r:1 w:1) - // Proof Skipped: LBP PoolData (max_values: None, max_size: None, mode: Measured) - // Storage: LBP FeeCollectorWithAsset (r:1 w:2) - // Proof Skipped: LBP FeeCollectorWithAsset (max_values: None, max_size: None, mode: Measured) + /// Storage: `LBP::PoolData` (r:1 w:1) + /// Proof: `LBP::PoolData` (`max_values`: None, `max_size`: Some(163), added: 2638, mode: `MaxEncodedLen`) + /// Storage: `LBP::FeeCollectorWithAsset` (r:1 w:2) + /// Proof: `LBP::FeeCollectorWithAsset` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) fn update_pool_data() -> Weight { - // Minimum execution time: 17_606 nanoseconds. - Weight::from_ref_time(17_866_000 as u64) - .saturating_add(T::DbWeight::get().reads(2 as u64)) - .saturating_add(T::DbWeight::get().writes(3 as u64)) + // Proof Size summary in bytes: + // Measured: `351` + // Estimated: `3628` + // Minimum execution time: 30_652_000 picoseconds. + Weight::from_parts(31_114_000, 3628) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } - // Storage: LBP PoolData (r:1 w:0) - // Proof Skipped: LBP PoolData (max_values: None, max_size: None, mode: Measured) - // Storage: Tokens Accounts (r:4 w:4) - // Proof: Tokens Accounts (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen) - // Storage: AssetRegistry Assets (r:2 w:0) - // Proof Skipped: AssetRegistry Assets (max_values: None, max_size: None, mode: Measured) - // Storage: System Account (r:1 w:0) - // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `LBP::PoolData` (r:1 w:0) + /// Proof: `LBP::PoolData` (`max_values`: None, `max_size`: Some(163), added: 2638, mode: `MaxEncodedLen`) + /// Storage: `Tokens::Accounts` (r:4 w:4) + /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:2 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:0) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn add_liquidity() -> Weight { - // Minimum execution time: 54_416 nanoseconds. - Weight::from_ref_time(54_978_000 as u64) - .saturating_add(T::DbWeight::get().reads(8 as u64)) - .saturating_add(T::DbWeight::get().writes(4 as u64)) + // Proof Size summary in bytes: + // Measured: `1170` + // Estimated: `11322` + // Minimum execution time: 100_856_000 picoseconds. + Weight::from_parts(101_975_000, 11322) + .saturating_add(T::DbWeight::get().reads(8_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) } - // Storage: LBP PoolData (r:1 w:1) - // Proof Skipped: LBP PoolData (max_values: None, max_size: None, mode: Measured) - // Storage: Tokens Accounts (r:4 w:4) - // Proof: Tokens Accounts (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen) - // Storage: AssetRegistry Assets (r:2 w:0) - // Proof Skipped: AssetRegistry Assets (max_values: None, max_size: None, mode: Measured) - // Storage: System Account (r:1 w:1) - // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - // Storage: MultiTransactionPayment AccountCurrencyMap (r:1 w:1) - // Proof: MultiTransactionPayment AccountCurrencyMap (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) - // Storage: Tokens Locks (r:1 w:0) - // Proof: Tokens Locks (max_values: None, max_size: Some(1261), added: 3736, mode: MaxEncodedLen) - // Storage: LBP FeeCollectorWithAsset (r:0 w:1) - // Proof Skipped: LBP FeeCollectorWithAsset (max_values: None, max_size: None, mode: Measured) + /// Storage: `LBP::PoolData` (r:1 w:1) + /// Proof: `LBP::PoolData` (`max_values`: None, `max_size`: Some(163), added: 2638, mode: `MaxEncodedLen`) + /// Storage: `Tokens::Accounts` (r:4 w:4) + /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:2 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `MultiTransactionPayment::AccountCurrencyMap` (r:1 w:1) + /// Proof: `MultiTransactionPayment::AccountCurrencyMap` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `Tokens::Locks` (r:1 w:0) + /// Proof: `Tokens::Locks` (`max_values`: None, `max_size`: Some(1261), added: 3736, mode: `MaxEncodedLen`) + /// Storage: `LBP::FeeCollectorWithAsset` (r:0 w:1) + /// Proof: `LBP::FeeCollectorWithAsset` (`max_values`: None, `max_size`: Some(69), added: 2544, mode: `MaxEncodedLen`) fn remove_liquidity() -> Weight { - // Minimum execution time: 68_270 nanoseconds. - Weight::from_ref_time(69_701_000 as u64) - .saturating_add(T::DbWeight::get().reads(10 as u64)) - .saturating_add(T::DbWeight::get().writes(8 as u64)) + // Proof Size summary in bytes: + // Measured: `1359` + // Estimated: `11322` + // Minimum execution time: 133_431_000 picoseconds. + Weight::from_parts(134_355_000, 11322) + .saturating_add(T::DbWeight::get().reads(10_u64)) + .saturating_add(T::DbWeight::get().writes(8_u64)) } - // Storage: Tokens Accounts (r:5 w:5) - // Proof: Tokens Accounts (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen) - // Storage: LBP PoolData (r:1 w:0) - // Proof Skipped: LBP PoolData (max_values: None, max_size: None, mode: Measured) - // Storage: Tokens Locks (r:1 w:1) - // Proof: Tokens Locks (max_values: None, max_size: Some(1261), added: 3736, mode: MaxEncodedLen) - // Storage: AssetRegistry Assets (r:2 w:0) - // Proof Skipped: AssetRegistry Assets (max_values: None, max_size: None, mode: Measured) - // Storage: System Account (r:3 w:1) - // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Tokens::Accounts` (r:5 w:5) + /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Storage: `LBP::PoolData` (r:1 w:0) + /// Proof: `LBP::PoolData` (`max_values`: None, `max_size`: Some(163), added: 2638, mode: `MaxEncodedLen`) + /// Storage: `Tokens::Locks` (r:1 w:1) + /// Proof: `Tokens::Locks` (`max_values`: None, `max_size`: Some(1261), added: 3736, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:2 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:3 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn sell() -> Weight { - // Minimum execution time: 91_282 nanoseconds. - Weight::from_ref_time(94_560_000 as u64) - .saturating_add(T::DbWeight::get().reads(12 as u64)) - .saturating_add(T::DbWeight::get().writes(7 as u64)) + // Proof Size summary in bytes: + // Measured: `1538` + // Estimated: `13905` + // Minimum execution time: 216_160_000 picoseconds. + Weight::from_parts(218_332_000, 13905) + .saturating_add(T::DbWeight::get().reads(12_u64)) + .saturating_add(T::DbWeight::get().writes(7_u64)) } - // Storage: LBP PoolData (r:1 w:0) - // Proof Skipped: LBP PoolData (max_values: None, max_size: None, mode: Measured) - // Storage: Tokens Accounts (r:5 w:5) - // Proof: Tokens Accounts (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen) - // Storage: Tokens Locks (r:1 w:1) - // Proof: Tokens Locks (max_values: None, max_size: Some(1261), added: 3736, mode: MaxEncodedLen) - // Storage: AssetRegistry Assets (r:2 w:0) - // Proof Skipped: AssetRegistry Assets (max_values: None, max_size: None, mode: Measured) - // Storage: System Account (r:3 w:1) - // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `LBP::PoolData` (r:1 w:0) + /// Proof: `LBP::PoolData` (`max_values`: None, `max_size`: Some(163), added: 2638, mode: `MaxEncodedLen`) + /// Storage: `Tokens::Accounts` (r:5 w:5) + /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Storage: `Tokens::Locks` (r:1 w:1) + /// Proof: `Tokens::Locks` (`max_values`: None, `max_size`: Some(1261), added: 3736, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:2 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:3 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn buy() -> Weight { - // Minimum execution time: 91_220 nanoseconds. - Weight::from_ref_time(92_250_000 as u64) - .saturating_add(T::DbWeight::get().reads(12 as u64)) - .saturating_add(T::DbWeight::get().writes(7 as u64)) + // Proof Size summary in bytes: + // Measured: `1538` + // Estimated: `13905` + // Minimum execution time: 216_459_000 picoseconds. + Weight::from_parts(217_991_000, 13905) + .saturating_add(T::DbWeight::get().reads(12_u64)) + .saturating_add(T::DbWeight::get().writes(7_u64)) + } + /// Storage: `LBP::PoolData` (r:1 w:0) + /// Proof: `LBP::PoolData` (`max_values`: None, `max_size`: Some(163), added: 2638, mode: `MaxEncodedLen`) + /// Storage: `Tokens::Accounts` (r:5 w:5) + /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Storage: `Tokens::Locks` (r:1 w:1) + /// Proof: `Tokens::Locks` (`max_values`: None, `max_size`: Some(1261), added: 3736, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:2 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:3 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// The range of component `c` is `[1, 2]`. + /// The range of component `e` is `[0, 1]`. + fn router_execution_sell(c: u32, e: u32) -> Weight { + // Proof Size summary in bytes: + // Measured: `784 + e * (754 ±0)` + // Estimated: `6156 + e * (7749 ±34_606_984_459_695_172)` + // Minimum execution time: 65_605_000 picoseconds. + Weight::from_parts(66_090_000, 6156) + // Standard Error: 614_731 + .saturating_add(Weight::from_parts(2_364_398, 0).saturating_mul(c.into())) + // Standard Error: 1_349_510 + .saturating_add(Weight::from_parts(158_869_336, 0).saturating_mul(e.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().reads((9_u64).saturating_mul(e.into()))) + .saturating_add(T::DbWeight::get().writes((7_u64).saturating_mul(e.into()))) + .saturating_add(Weight::from_parts(0, 7749).saturating_mul(e.into())) + } + /// Storage: `LBP::PoolData` (r:1 w:0) + /// Proof: `LBP::PoolData` (`max_values`: None, `max_size`: Some(163), added: 2638, mode: `MaxEncodedLen`) + /// Storage: `Tokens::Accounts` (r:5 w:5) + /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Storage: `Tokens::Locks` (r:1 w:1) + /// Proof: `Tokens::Locks` (`max_values`: None, `max_size`: Some(1261), added: 3736, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:2 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:3 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// The range of component `c` is `[1, 3]`. + /// The range of component `e` is `[0, 1]`. + fn router_execution_buy(c: u32, e: u32) -> Weight { + // Proof Size summary in bytes: + // Measured: `784 + e * (754 ±0)` + // Estimated: `6156 + e * (7749 ±0)` + // Minimum execution time: 116_794_000 picoseconds. + Weight::from_parts(117_321_000, 6156) + // Standard Error: 759_399 + .saturating_add(Weight::from_parts(3_773_334, 0).saturating_mul(c.into())) + // Standard Error: 2_507_585 + .saturating_add(Weight::from_parts(131_536_809, 0).saturating_mul(e.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().reads((9_u64).saturating_mul(e.into()))) + .saturating_add(T::DbWeight::get().writes((7_u64).saturating_mul(e.into()))) + .saturating_add(Weight::from_parts(0, 7749).saturating_mul(e.into())) + } + /// Storage: `LBP::PoolData` (r:1 w:0) + /// Proof: `LBP::PoolData` (`max_values`: None, `max_size`: Some(163), added: 2638, mode: `MaxEncodedLen`) + /// Storage: `Tokens::Accounts` (r:2 w:0) + /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + fn calculate_buy() -> Weight { + // Proof Size summary in bytes: + // Measured: `784` + // Estimated: `6156` + // Minimum execution time: 65_901_000 picoseconds. + Weight::from_parts(66_148_000, 6156).saturating_add(T::DbWeight::get().reads(3_u64)) } } diff --git a/runtime/basilisk/src/weights/marketplace.rs b/runtime/basilisk/src/weights/marketplace.rs index c78bb251968..8a45520042b 100644 --- a/runtime/basilisk/src/weights/marketplace.rs +++ b/runtime/basilisk/src/weights/marketplace.rs @@ -15,25 +15,27 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_marketplace +//! Autogenerated weights for `pallet_marketplace` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-01, STEPS: 5, REPEAT: 20, LOW RANGE: [], HIGH RANGE: [] -//! EXECUTION: None, WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! DATE: 2023-12-06, STEPS: `10`, REPEAT: `30`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: // target/release/basilisk // benchmark // pallet -// --pallet=pallet-marketplace // --chain=dev +// --steps=10 +// --repeat=30 +// --wasm-execution=compiled +// --heap-pages=4096 +// --template=.maintain/pallet-weight-template-no-back.hbs +// --pallet=pallet-marketplace +// --output=weights-1.1.0/marketplace.rs // --extrinsic=* -// --steps=5 -// --repeat=20 -// --output -// marketplace.rs -// --template -// .maintain/pallet-weight-template-no-back.hbs #![allow(unused_parens)] #![allow(unused_imports)] @@ -50,120 +52,138 @@ use pallet_marketplace::weights::WeightInfo; pub struct BasiliskWeight(PhantomData); impl WeightInfo for BasiliskWeight { - // Storage: Uniques Asset (r:1 w:1) - // Proof: Uniques Asset (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) - // Storage: Marketplace Prices (r:1 w:1) - // Proof Skipped: Marketplace Prices (max_values: None, max_size: None, mode: Measured) - // Storage: Marketplace MarketplaceItems (r:1 w:0) - // Proof Skipped: Marketplace MarketplaceItems (max_values: None, max_size: None, mode: Measured) - // Storage: AssetRegistry NextAssetId (r:1 w:0) - // Proof Skipped: AssetRegistry NextAssetId (max_values: Some(1), max_size: None, mode: Measured) - // Storage: AssetRegistry LocationAssets (r:1 w:0) - // Proof Skipped: AssetRegistry LocationAssets (max_values: None, max_size: None, mode: Measured) - // Storage: Tokens Accounts (r:2 w:2) - // Proof: Tokens Accounts (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen) - // Storage: AssetRegistry Assets (r:1 w:0) - // Proof Skipped: AssetRegistry Assets (max_values: None, max_size: None, mode: Measured) - // Storage: NFT Collections (r:1 w:0) - // Proof: NFT Collections (max_values: None, max_size: Some(99), added: 2574, mode: MaxEncodedLen) - // Storage: Uniques Class (r:1 w:0) - // Proof: Uniques Class (max_values: None, max_size: Some(190), added: 2665, mode: MaxEncodedLen) - // Storage: Uniques Account (r:0 w:2) - // Proof: Uniques Account (max_values: None, max_size: Some(112), added: 2587, mode: MaxEncodedLen) - // Storage: Uniques ItemPriceOf (r:0 w:1) - // Proof: Uniques ItemPriceOf (max_values: None, max_size: Some(113), added: 2588, mode: MaxEncodedLen) + /// Storage: `Uniques::Asset` (r:1 w:1) + /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) + /// Storage: `Marketplace::Prices` (r:1 w:1) + /// Proof: `Marketplace::Prices` (`max_values`: None, `max_size`: Some(80), added: 2555, mode: `MaxEncodedLen`) + /// Storage: `Marketplace::MarketplaceItems` (r:1 w:0) + /// Proof: `Marketplace::MarketplaceItems` (`max_values`: None, `max_size`: Some(98), added: 2573, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::NextAssetId` (r:1 w:0) + /// Proof: `AssetRegistry::NextAssetId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::LocationAssets` (r:1 w:0) + /// Proof: `AssetRegistry::LocationAssets` (`max_values`: None, `max_size`: Some(622), added: 3097, mode: `MaxEncodedLen`) + /// Storage: `Tokens::Accounts` (r:2 w:2) + /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:1 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `NFT::Collections` (r:1 w:0) + /// Proof: `NFT::Collections` (`max_values`: None, `max_size`: Some(99), added: 2574, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Class` (r:1 w:0) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(190), added: 2665, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Account` (r:0 w:2) + /// Proof: `Uniques::Account` (`max_values`: None, `max_size`: Some(112), added: 2587, mode: `MaxEncodedLen`) + /// Storage: `Uniques::ItemPriceOf` (r:0 w:1) + /// Proof: `Uniques::ItemPriceOf` (`max_values`: None, `max_size`: Some(113), added: 2588, mode: `MaxEncodedLen`) fn buy() -> Weight { - // Minimum execution time: 78_475 nanoseconds. - Weight::from_ref_time(79_790_000 as u64) - .saturating_add(T::DbWeight::get().reads(10 as u64)) - .saturating_add(T::DbWeight::get().writes(7 as u64)) + // Proof Size summary in bytes: + // Measured: `2859` + // Estimated: `6156` + // Minimum execution time: 130_029_000 picoseconds. + Weight::from_parts(130_806_000, 6156) + .saturating_add(T::DbWeight::get().reads(10_u64)) + .saturating_add(T::DbWeight::get().writes(7_u64)) } - // Storage: Uniques Asset (r:1 w:0) - // Proof: Uniques Asset (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) - // Storage: Marketplace Prices (r:1 w:1) - // Proof Skipped: Marketplace Prices (max_values: None, max_size: None, mode: Measured) + /// Storage: `Uniques::Asset` (r:1 w:0) + /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) + /// Storage: `Marketplace::Prices` (r:1 w:1) + /// Proof: `Marketplace::Prices` (`max_values`: None, `max_size`: Some(80), added: 2555, mode: `MaxEncodedLen`) fn set_price() -> Weight { - // Minimum execution time: 25_612 nanoseconds. - Weight::from_ref_time(26_033_000 as u64) - .saturating_add(T::DbWeight::get().reads(2 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Size summary in bytes: + // Measured: `1360` + // Estimated: `3611` + // Minimum execution time: 35_699_000 picoseconds. + Weight::from_parts(36_340_000, 3611) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } - // Storage: Marketplace Offers (r:1 w:1) - // Proof Skipped: Marketplace Offers (max_values: None, max_size: None, mode: Measured) - // Storage: AssetRegistry NextAssetId (r:1 w:0) - // Proof Skipped: AssetRegistry NextAssetId (max_values: Some(1), max_size: None, mode: Measured) - // Storage: AssetRegistry LocationAssets (r:1 w:0) - // Proof Skipped: AssetRegistry LocationAssets (max_values: None, max_size: None, mode: Measured) - // Storage: Tokens Accounts (r:1 w:1) - // Proof: Tokens Accounts (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen) - // Storage: AssetRegistry Assets (r:1 w:0) - // Proof Skipped: AssetRegistry Assets (max_values: None, max_size: None, mode: Measured) + /// Storage: `Marketplace::Offers` (r:1 w:1) + /// Proof: `Marketplace::Offers` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::NextAssetId` (r:1 w:0) + /// Proof: `AssetRegistry::NextAssetId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::LocationAssets` (r:1 w:0) + /// Proof: `AssetRegistry::LocationAssets` (`max_values`: None, `max_size`: Some(622), added: 3097, mode: `MaxEncodedLen`) + /// Storage: `Tokens::Accounts` (r:1 w:1) + /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:1 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) fn make_offer() -> Weight { - // Minimum execution time: 42_274 nanoseconds. - Weight::from_ref_time(42_869_000 as u64) - .saturating_add(T::DbWeight::get().reads(5 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) + // Proof Size summary in bytes: + // Measured: `1797` + // Estimated: `4087` + // Minimum execution time: 64_370_000 picoseconds. + Weight::from_parts(65_044_000, 4087) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } - // Storage: Marketplace Offers (r:1 w:1) - // Proof Skipped: Marketplace Offers (max_values: None, max_size: None, mode: Measured) - // Storage: Uniques Asset (r:1 w:0) - // Proof: Uniques Asset (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) - // Storage: AssetRegistry NextAssetId (r:1 w:0) - // Proof Skipped: AssetRegistry NextAssetId (max_values: Some(1), max_size: None, mode: Measured) - // Storage: AssetRegistry LocationAssets (r:1 w:0) - // Proof Skipped: AssetRegistry LocationAssets (max_values: None, max_size: None, mode: Measured) - // Storage: Tokens Accounts (r:1 w:1) - // Proof: Tokens Accounts (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen) - // Storage: AssetRegistry Assets (r:1 w:0) - // Proof Skipped: AssetRegistry Assets (max_values: None, max_size: None, mode: Measured) + /// Storage: `Marketplace::Offers` (r:1 w:1) + /// Proof: `Marketplace::Offers` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Asset` (r:1 w:0) + /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::NextAssetId` (r:1 w:0) + /// Proof: `AssetRegistry::NextAssetId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::LocationAssets` (r:1 w:0) + /// Proof: `AssetRegistry::LocationAssets` (`max_values`: None, `max_size`: Some(622), added: 3097, mode: `MaxEncodedLen`) + /// Storage: `Tokens::Accounts` (r:1 w:1) + /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:1 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) fn withdraw_offer() -> Weight { - // Minimum execution time: 45_565 nanoseconds. - Weight::from_ref_time(47_083_000 as u64) - .saturating_add(T::DbWeight::get().reads(6 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) + // Proof Size summary in bytes: + // Measured: `2288` + // Estimated: `4087` + // Minimum execution time: 65_488_000 picoseconds. + Weight::from_parts(66_451_000, 4087) + .saturating_add(T::DbWeight::get().reads(6_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } - // Storage: Uniques Asset (r:1 w:1) - // Proof: Uniques Asset (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) - // Storage: Marketplace Offers (r:1 w:1) - // Proof Skipped: Marketplace Offers (max_values: None, max_size: None, mode: Measured) - // Storage: AssetRegistry NextAssetId (r:1 w:0) - // Proof Skipped: AssetRegistry NextAssetId (max_values: Some(1), max_size: None, mode: Measured) - // Storage: AssetRegistry LocationAssets (r:1 w:0) - // Proof Skipped: AssetRegistry LocationAssets (max_values: None, max_size: None, mode: Measured) - // Storage: Tokens Accounts (r:2 w:2) - // Proof: Tokens Accounts (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen) - // Storage: AssetRegistry Assets (r:1 w:0) - // Proof Skipped: AssetRegistry Assets (max_values: None, max_size: None, mode: Measured) - // Storage: Marketplace Prices (r:1 w:1) - // Proof Skipped: Marketplace Prices (max_values: None, max_size: None, mode: Measured) - // Storage: Marketplace MarketplaceItems (r:1 w:0) - // Proof Skipped: Marketplace MarketplaceItems (max_values: None, max_size: None, mode: Measured) - // Storage: NFT Collections (r:1 w:0) - // Proof: NFT Collections (max_values: None, max_size: Some(99), added: 2574, mode: MaxEncodedLen) - // Storage: Uniques Class (r:1 w:0) - // Proof: Uniques Class (max_values: None, max_size: Some(190), added: 2665, mode: MaxEncodedLen) - // Storage: Uniques Account (r:0 w:2) - // Proof: Uniques Account (max_values: None, max_size: Some(112), added: 2587, mode: MaxEncodedLen) - // Storage: Uniques ItemPriceOf (r:0 w:1) - // Proof: Uniques ItemPriceOf (max_values: None, max_size: Some(113), added: 2588, mode: MaxEncodedLen) + /// Storage: `Uniques::Asset` (r:1 w:1) + /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) + /// Storage: `Marketplace::Offers` (r:1 w:1) + /// Proof: `Marketplace::Offers` (`max_values`: None, `max_size`: Some(148), added: 2623, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::NextAssetId` (r:1 w:0) + /// Proof: `AssetRegistry::NextAssetId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::LocationAssets` (r:1 w:0) + /// Proof: `AssetRegistry::LocationAssets` (`max_values`: None, `max_size`: Some(622), added: 3097, mode: `MaxEncodedLen`) + /// Storage: `Tokens::Accounts` (r:2 w:2) + /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:1 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `Marketplace::Prices` (r:1 w:1) + /// Proof: `Marketplace::Prices` (`max_values`: None, `max_size`: Some(80), added: 2555, mode: `MaxEncodedLen`) + /// Storage: `Marketplace::MarketplaceItems` (r:1 w:0) + /// Proof: `Marketplace::MarketplaceItems` (`max_values`: None, `max_size`: Some(98), added: 2573, mode: `MaxEncodedLen`) + /// Storage: `NFT::Collections` (r:1 w:0) + /// Proof: `NFT::Collections` (`max_values`: None, `max_size`: Some(99), added: 2574, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Class` (r:1 w:0) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(190), added: 2665, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Account` (r:0 w:2) + /// Proof: `Uniques::Account` (`max_values`: None, `max_size`: Some(112), added: 2587, mode: `MaxEncodedLen`) + /// Storage: `Uniques::ItemPriceOf` (r:0 w:1) + /// Proof: `Uniques::ItemPriceOf` (`max_values`: None, `max_size`: Some(113), added: 2588, mode: `MaxEncodedLen`) fn accept_offer() -> Weight { - // Minimum execution time: 86_739 nanoseconds. - Weight::from_ref_time(87_641_000 as u64) - .saturating_add(T::DbWeight::get().reads(11 as u64)) - .saturating_add(T::DbWeight::get().writes(8 as u64)) + // Proof Size summary in bytes: + // Measured: `2929` + // Estimated: `6156` + // Minimum execution time: 158_110_000 picoseconds. + Weight::from_parts(159_121_000, 6156) + .saturating_add(T::DbWeight::get().reads(11_u64)) + .saturating_add(T::DbWeight::get().writes(8_u64)) } - // Storage: Marketplace MarketplaceItems (r:1 w:1) - // Proof Skipped: Marketplace MarketplaceItems (max_values: None, max_size: None, mode: Measured) - // Storage: Uniques Asset (r:1 w:0) - // Proof: Uniques Asset (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) - // Storage: AssetRegistry NextAssetId (r:1 w:0) - // Proof Skipped: AssetRegistry NextAssetId (max_values: Some(1), max_size: None, mode: Measured) - // Storage: AssetRegistry LocationAssets (r:1 w:0) - // Proof Skipped: AssetRegistry LocationAssets (max_values: None, max_size: None, mode: Measured) + /// Storage: `Marketplace::MarketplaceItems` (r:1 w:1) + /// Proof: `Marketplace::MarketplaceItems` (`max_values`: None, `max_size`: Some(98), added: 2573, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Asset` (r:1 w:0) + /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::NextAssetId` (r:1 w:0) + /// Proof: `AssetRegistry::NextAssetId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::LocationAssets` (r:1 w:0) + /// Proof: `AssetRegistry::LocationAssets` (`max_values`: None, `max_size`: Some(622), added: 3097, mode: `MaxEncodedLen`) fn add_royalty() -> Weight { - // Minimum execution time: 33_170 nanoseconds. - Weight::from_ref_time(33_774_000 as u64) - .saturating_add(T::DbWeight::get().reads(4 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Size summary in bytes: + // Measured: `1610` + // Estimated: `4087` + // Minimum execution time: 47_308_000 picoseconds. + Weight::from_parts(47_795_000, 4087) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } } diff --git a/runtime/basilisk/src/weights/mod.rs b/runtime/basilisk/src/weights/mod.rs index 722c81c0ae2..4b7e7e9fe95 100644 --- a/runtime/basilisk/src/weights/mod.rs +++ b/runtime/basilisk/src/weights/mod.rs @@ -1,6 +1,7 @@ pub mod asset_registry; pub mod balances; pub mod collator_selection; +pub mod collective; pub mod currencies; pub mod democracy; pub mod duster; diff --git a/runtime/basilisk/src/weights/nft.rs b/runtime/basilisk/src/weights/nft.rs index a2134c896d2..faad1ca806d 100644 --- a/runtime/basilisk/src/weights/nft.rs +++ b/runtime/basilisk/src/weights/nft.rs @@ -15,25 +15,27 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_nft +//! Autogenerated weights for `pallet_nft` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-01, STEPS: 5, REPEAT: 20, LOW RANGE: [], HIGH RANGE: [] -//! EXECUTION: None, WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! DATE: 2023-12-06, STEPS: `10`, REPEAT: `30`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: // target/release/basilisk // benchmark // pallet -// --pallet=pallet-nft // --chain=dev +// --steps=10 +// --repeat=30 +// --wasm-execution=compiled +// --heap-pages=4096 +// --template=.maintain/pallet-weight-template-no-back.hbs +// --pallet=pallet-nft +// --output=weights-1.1.0/nft.rs // --extrinsic=* -// --steps=5 -// --repeat=20 -// --output -// nft.rs -// --template -// .maintain/pallet-weight-template-no-back.hbs #![allow(unused_parens)] #![allow(unused_imports)] @@ -54,104 +56,119 @@ const CREATE_COLLECTION_OFFSET: u64 = 180 * 2; const MINT_OFFSET: u64 = 140 * 2; impl WeightInfo for BasiliskWeight { - // Storage: Uniques Class (r:1 w:1) - // Proof: Uniques Class (max_values: None, max_size: Some(190), added: 2665, mode: MaxEncodedLen) - // Storage: AssetRegistry NextAssetId (r:1 w:0) - // Proof Skipped: AssetRegistry NextAssetId (max_values: Some(1), max_size: None, mode: Measured) - // Storage: AssetRegistry LocationAssets (r:1 w:0) - // Proof Skipped: AssetRegistry LocationAssets (max_values: None, max_size: None, mode: Measured) - // Storage: Uniques ClassAccount (r:0 w:1) - // Proof: Uniques ClassAccount (max_values: None, max_size: Some(80), added: 2555, mode: MaxEncodedLen) - // Storage: NFT Collections (r:0 w:1) - // Proof: NFT Collections (max_values: None, max_size: Some(99), added: 2574, mode: MaxEncodedLen) + /// Storage: `Uniques::Class` (r:1 w:1) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(190), added: 2665, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::NextAssetId` (r:1 w:0) + /// Proof: `AssetRegistry::NextAssetId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::LocationAssets` (r:1 w:0) + /// Proof: `AssetRegistry::LocationAssets` (`max_values`: None, `max_size`: Some(622), added: 3097, mode: `MaxEncodedLen`) + /// Storage: `Uniques::ClassAccount` (r:0 w:1) + /// Proof: `Uniques::ClassAccount` (`max_values`: None, `max_size`: Some(80), added: 2555, mode: `MaxEncodedLen`) + /// Storage: `NFT::Collections` (r:0 w:1) + /// Proof: `NFT::Collections` (`max_values`: None, `max_size`: Some(99), added: 2574, mode: `MaxEncodedLen`) fn create_collection() -> Weight { - // Minimum execution time: 19_500 nanoseconds. - Weight::from_ref_time(19_928_000 as u64) + // Proof Size summary in bytes: + // Measured: `467` + // Estimated: `4087` + // Minimum execution time: 36_542_000 picoseconds. + Weight::from_parts(36_999_000, 4087) .saturating_mul(CREATE_COLLECTION_OFFSET) - .saturating_add(T::DbWeight::get().reads(3 as u64)) - .saturating_add(T::DbWeight::get().writes(3 as u64)) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } - // Storage: NFT Collections (r:1 w:0) - // Proof: NFT Collections (max_values: None, max_size: Some(99), added: 2574, mode: MaxEncodedLen) - // Storage: Uniques Class (r:1 w:1) - // Proof: Uniques Class (max_values: None, max_size: Some(190), added: 2665, mode: MaxEncodedLen) - // Storage: Uniques Asset (r:1 w:1) - // Proof: Uniques Asset (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) - // Storage: Uniques CollectionMaxSupply (r:1 w:0) - // Proof: Uniques CollectionMaxSupply (max_values: None, max_size: Some(36), added: 2511, mode: MaxEncodedLen) - // Storage: AssetRegistry NextAssetId (r:1 w:0) - // Proof Skipped: AssetRegistry NextAssetId (max_values: Some(1), max_size: None, mode: Measured) - // Storage: AssetRegistry LocationAssets (r:1 w:0) - // Proof Skipped: AssetRegistry LocationAssets (max_values: None, max_size: None, mode: Measured) - // Storage: Uniques Account (r:0 w:1) - // Proof: Uniques Account (max_values: None, max_size: Some(112), added: 2587, mode: MaxEncodedLen) - // Storage: NFT Items (r:0 w:1) - // Proof: NFT Items (max_values: None, max_size: Some(122), added: 2597, mode: MaxEncodedLen) + /// Storage: `NFT::Collections` (r:1 w:0) + /// Proof: `NFT::Collections` (`max_values`: None, `max_size`: Some(99), added: 2574, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Class` (r:1 w:1) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(190), added: 2665, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Asset` (r:1 w:1) + /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) + /// Storage: `Uniques::CollectionMaxSupply` (r:1 w:0) + /// Proof: `Uniques::CollectionMaxSupply` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::NextAssetId` (r:1 w:0) + /// Proof: `AssetRegistry::NextAssetId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::LocationAssets` (r:1 w:0) + /// Proof: `AssetRegistry::LocationAssets` (`max_values`: None, `max_size`: Some(622), added: 3097, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Account` (r:0 w:1) + /// Proof: `Uniques::Account` (`max_values`: None, `max_size`: Some(112), added: 2587, mode: `MaxEncodedLen`) + /// Storage: `NFT::Items` (r:0 w:1) + /// Proof: `NFT::Items` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) fn mint() -> Weight { - // Minimum execution time: 31_625 nanoseconds. - Weight::from_ref_time(32_251_000 as u64) + // Proof Size summary in bytes: + // Measured: `903` + // Estimated: `4087` + // Minimum execution time: 58_112_000 picoseconds. + Weight::from_parts(58_800_000, 4087) .saturating_mul(MINT_OFFSET) - .saturating_add(T::DbWeight::get().reads(6 as u64)) - .saturating_add(T::DbWeight::get().writes(4 as u64)) + .saturating_add(T::DbWeight::get().reads(6_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) } - // Storage: NFT Collections (r:1 w:0) - // Proof: NFT Collections (max_values: None, max_size: Some(99), added: 2574, mode: MaxEncodedLen) - // Storage: Uniques Asset (r:1 w:1) - // Proof: Uniques Asset (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) - // Storage: Uniques Class (r:1 w:0) - // Proof: Uniques Class (max_values: None, max_size: Some(190), added: 2665, mode: MaxEncodedLen) - // Storage: Uniques Account (r:0 w:2) - // Proof: Uniques Account (max_values: None, max_size: Some(112), added: 2587, mode: MaxEncodedLen) - // Storage: Uniques ItemPriceOf (r:0 w:1) - // Proof: Uniques ItemPriceOf (max_values: None, max_size: Some(113), added: 2588, mode: MaxEncodedLen) + /// Storage: `NFT::Collections` (r:1 w:0) + /// Proof: `NFT::Collections` (`max_values`: None, `max_size`: Some(99), added: 2574, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Asset` (r:1 w:1) + /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Class` (r:1 w:0) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(190), added: 2665, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Account` (r:0 w:2) + /// Proof: `Uniques::Account` (`max_values`: None, `max_size`: Some(112), added: 2587, mode: `MaxEncodedLen`) + /// Storage: `Uniques::ItemPriceOf` (r:0 w:1) + /// Proof: `Uniques::ItemPriceOf` (`max_values`: None, `max_size`: Some(113), added: 2588, mode: `MaxEncodedLen`) fn transfer() -> Weight { - // Minimum execution time: 28_903 nanoseconds. - Weight::from_ref_time(29_233_000 as u64) - .saturating_add(T::DbWeight::get().reads(3 as u64)) - .saturating_add(T::DbWeight::get().writes(4 as u64)) + // Proof Size summary in bytes: + // Measured: `873` + // Estimated: `3655` + // Minimum execution time: 53_329_000 picoseconds. + Weight::from_parts(54_155_000, 3655) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) } - // Storage: NFT Collections (r:1 w:1) - // Proof: NFT Collections (max_values: None, max_size: Some(99), added: 2574, mode: MaxEncodedLen) - // Storage: Uniques Class (r:1 w:1) - // Proof: Uniques Class (max_values: None, max_size: Some(190), added: 2665, mode: MaxEncodedLen) - // Storage: Uniques Asset (r:1 w:0) - // Proof: Uniques Asset (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) - // Storage: AssetRegistry NextAssetId (r:1 w:0) - // Proof Skipped: AssetRegistry NextAssetId (max_values: Some(1), max_size: None, mode: Measured) - // Storage: AssetRegistry LocationAssets (r:1 w:0) - // Proof Skipped: AssetRegistry LocationAssets (max_values: None, max_size: None, mode: Measured) - // Storage: Uniques ClassAccount (r:0 w:1) - // Proof: Uniques ClassAccount (max_values: None, max_size: Some(80), added: 2555, mode: MaxEncodedLen) - // Storage: Uniques ClassMetadataOf (r:0 w:1) - // Proof: Uniques ClassMetadataOf (max_values: None, max_size: Some(123), added: 2598, mode: MaxEncodedLen) - // Storage: Uniques CollectionMaxSupply (r:0 w:1) - // Proof: Uniques CollectionMaxSupply (max_values: None, max_size: Some(36), added: 2511, mode: MaxEncodedLen) + /// Storage: `NFT::Collections` (r:1 w:1) + /// Proof: `NFT::Collections` (`max_values`: None, `max_size`: Some(99), added: 2574, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Class` (r:1 w:1) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(190), added: 2665, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Asset` (r:1 w:0) + /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::NextAssetId` (r:1 w:0) + /// Proof: `AssetRegistry::NextAssetId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::LocationAssets` (r:1 w:0) + /// Proof: `AssetRegistry::LocationAssets` (`max_values`: None, `max_size`: Some(622), added: 3097, mode: `MaxEncodedLen`) + /// Storage: `Uniques::ClassAccount` (r:0 w:1) + /// Proof: `Uniques::ClassAccount` (`max_values`: None, `max_size`: Some(80), added: 2555, mode: `MaxEncodedLen`) + /// Storage: `Uniques::ClassMetadataOf` (r:0 w:1) + /// Proof: `Uniques::ClassMetadataOf` (`max_values`: None, `max_size`: Some(123), added: 2598, mode: `MaxEncodedLen`) + /// Storage: `Uniques::CollectionMaxSupply` (r:0 w:1) + /// Proof: `Uniques::CollectionMaxSupply` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`) fn destroy_collection() -> Weight { - // Minimum execution time: 38_674 nanoseconds. - Weight::from_ref_time(39_564_000 as u64) - .saturating_add(T::DbWeight::get().reads(5 as u64)) - .saturating_add(T::DbWeight::get().writes(5 as u64)) + // Proof Size summary in bytes: + // Measured: `945` + // Estimated: `4087` + // Minimum execution time: 67_374_000 picoseconds. + Weight::from_parts(68_041_000, 4087) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(5_u64)) } - // Storage: NFT Collections (r:1 w:0) - // Proof: NFT Collections (max_values: None, max_size: Some(99), added: 2574, mode: MaxEncodedLen) - // Storage: Uniques Asset (r:1 w:1) - // Proof: Uniques Asset (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) - // Storage: Uniques Class (r:1 w:1) - // Proof: Uniques Class (max_values: None, max_size: Some(190), added: 2665, mode: MaxEncodedLen) - // Storage: AssetRegistry NextAssetId (r:1 w:0) - // Proof Skipped: AssetRegistry NextAssetId (max_values: Some(1), max_size: None, mode: Measured) - // Storage: AssetRegistry LocationAssets (r:1 w:0) - // Proof Skipped: AssetRegistry LocationAssets (max_values: None, max_size: None, mode: Measured) - // Storage: Uniques Account (r:0 w:1) - // Proof: Uniques Account (max_values: None, max_size: Some(112), added: 2587, mode: MaxEncodedLen) - // Storage: Uniques ItemPriceOf (r:0 w:1) - // Proof: Uniques ItemPriceOf (max_values: None, max_size: Some(113), added: 2588, mode: MaxEncodedLen) - // Storage: NFT Items (r:0 w:1) - // Proof: NFT Items (max_values: None, max_size: Some(122), added: 2597, mode: MaxEncodedLen) + /// Storage: `NFT::Collections` (r:1 w:0) + /// Proof: `NFT::Collections` (`max_values`: None, `max_size`: Some(99), added: 2574, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Asset` (r:1 w:1) + /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Class` (r:1 w:1) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(190), added: 2665, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::NextAssetId` (r:1 w:0) + /// Proof: `AssetRegistry::NextAssetId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::LocationAssets` (r:1 w:0) + /// Proof: `AssetRegistry::LocationAssets` (`max_values`: None, `max_size`: Some(622), added: 3097, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Account` (r:0 w:1) + /// Proof: `Uniques::Account` (`max_values`: None, `max_size`: Some(112), added: 2587, mode: `MaxEncodedLen`) + /// Storage: `Uniques::ItemPriceOf` (r:0 w:1) + /// Proof: `Uniques::ItemPriceOf` (`max_values`: None, `max_size`: Some(113), added: 2588, mode: `MaxEncodedLen`) + /// Storage: `NFT::Items` (r:0 w:1) + /// Proof: `NFT::Items` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) fn burn() -> Weight { - // Minimum execution time: 32_790 nanoseconds. - Weight::from_ref_time(33_331_000 as u64) - .saturating_add(T::DbWeight::get().reads(5 as u64)) - .saturating_add(T::DbWeight::get().writes(5 as u64)) + // Proof Size summary in bytes: + // Measured: `1108` + // Estimated: `4087` + // Minimum execution time: 57_449_000 picoseconds. + Weight::from_parts(58_046_000, 4087) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(5_u64)) } } diff --git a/runtime/basilisk/src/weights/payment.rs b/runtime/basilisk/src/weights/payment.rs index 19934b2086b..8b5dbc7b87a 100644 --- a/runtime/basilisk/src/weights/payment.rs +++ b/runtime/basilisk/src/weights/payment.rs @@ -15,25 +15,27 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_transaction_multi_payment +//! Autogenerated weights for `pallet_transaction_multi_payment` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-01, STEPS: 5, REPEAT: 20, LOW RANGE: [], HIGH RANGE: [] -//! EXECUTION: None, WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! DATE: 2023-12-06, STEPS: `10`, REPEAT: `30`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: // target/release/basilisk // benchmark // pallet -// --pallet=pallet-transaction-multi-payment // --chain=dev +// --steps=10 +// --repeat=30 +// --wasm-execution=compiled +// --heap-pages=4096 +// --template=.maintain/pallet-weight-template-no-back.hbs +// --pallet=pallet-transaction-multi-payment +// --output=weights-1.1.0/payment.rs // --extrinsic=* -// --steps=5 -// --repeat=20 -// --output -// payment.rs -// --template -// .maintain/pallet-weight-template-no-back.hbs #![allow(unused_parens)] #![allow(unused_imports)] @@ -50,40 +52,50 @@ use pallet_transaction_multi_payment::weights::WeightInfo; pub struct BasiliskWeight(PhantomData); impl WeightInfo for BasiliskWeight { - // Storage: MultiTransactionPayment AcceptedCurrencies (r:1 w:1) - // Proof: MultiTransactionPayment AcceptedCurrencies (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) + /// Storage: `MultiTransactionPayment::AcceptedCurrencies` (r:1 w:1) + /// Proof: `MultiTransactionPayment::AcceptedCurrencies` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) fn add_currency() -> Weight { - // Minimum execution time: 17_576 nanoseconds. - Weight::from_ref_time(18_000_000 as u64) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Size summary in bytes: + // Measured: `1131` + // Estimated: `3493` + // Minimum execution time: 25_024_000 picoseconds. + Weight::from_parts(25_413_000, 3493) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } - // Storage: MultiTransactionPayment AcceptedCurrencies (r:1 w:1) - // Proof: MultiTransactionPayment AcceptedCurrencies (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) + /// Storage: `MultiTransactionPayment::AcceptedCurrencies` (r:1 w:1) + /// Proof: `MultiTransactionPayment::AcceptedCurrencies` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) fn remove_currency() -> Weight { - // Minimum execution time: 18_399 nanoseconds. - Weight::from_ref_time(18_777_000 as u64) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Size summary in bytes: + // Measured: `1162` + // Estimated: `3493` + // Minimum execution time: 25_032_000 picoseconds. + Weight::from_parts(25_501_000, 3493) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } - // Storage: MultiTransactionPayment AcceptedCurrencies (r:1 w:0) - // Proof: MultiTransactionPayment AcceptedCurrencies (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) - // Storage: MultiTransactionPayment AccountCurrencyMap (r:0 w:1) - // Proof: MultiTransactionPayment AccountCurrencyMap (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Storage: `MultiTransactionPayment::AcceptedCurrencies` (r:1 w:0) + /// Proof: `MultiTransactionPayment::AcceptedCurrencies` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) + /// Storage: `MultiTransactionPayment::AccountCurrencyMap` (r:0 w:1) + /// Proof: `MultiTransactionPayment::AccountCurrencyMap` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) fn set_currency() -> Weight { - // Minimum execution time: 21_494 nanoseconds. - Weight::from_ref_time(22_029_000 as u64) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Size summary in bytes: + // Measured: `1196` + // Estimated: `3493` + // Minimum execution time: 30_094_000 picoseconds. + Weight::from_parts(30_402_000, 3493) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } - // Storage: XYK ShareToken (r:1 w:0) - // Proof: XYK ShareToken (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) - // Storage: System Account (r:1 w:0) - // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - // Storage: Tokens Accounts (r:1 w:0) - // Proof: Tokens Accounts (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen) - fn get_spot_price() -> Weight { - // Minimum execution time: 21_535 nanoseconds. - Weight::from_ref_time(21_794_000 as u64).saturating_add(T::DbWeight::get().reads(3 as u64)) + /// Storage: `Router::Routes` (r:1 w:0) + /// Proof: `Router::Routes` (`max_values`: None, `max_size`: Some(90), added: 2565, mode: `MaxEncodedLen`) + /// Storage: `EmaOracle::Oracles` (r:10 w:0) + /// Proof: `EmaOracle::Oracles` (`max_values`: None, `max_size`: Some(177), added: 2652, mode: `MaxEncodedLen`) + fn get_oracle_price() -> Weight { + // Proof Size summary in bytes: + // Measured: `3346` + // Estimated: `27510` + // Minimum execution time: 96_786_000 picoseconds. + Weight::from_parts(97_647_000, 27510).saturating_add(T::DbWeight::get().reads(11_u64)) } } diff --git a/runtime/basilisk/src/weights/route_executor.rs b/runtime/basilisk/src/weights/route_executor.rs index 1a6e2869a1f..5e2f7b8a1f7 100644 --- a/runtime/basilisk/src/weights/route_executor.rs +++ b/runtime/basilisk/src/weights/route_executor.rs @@ -15,25 +15,27 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_route_executor +//! Autogenerated weights for `pallet_route_executor` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-01, STEPS: 5, REPEAT: 20, LOW RANGE: [], HIGH RANGE: [] -//! EXECUTION: None, WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! DATE: 2023-12-07, STEPS: `10`, REPEAT: `30`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: // target/release/basilisk // benchmark // pallet -// --pallet=pallet-route-executor // --chain=dev +// --steps=10 +// --repeat=30 +// --wasm-execution=compiled +// --heap-pages=4096 +// --template=.maintain/pallet-weight-template-no-back.hbs +// --pallet=pallet-route-executor +// --output=weights-1.1.0/route_executor.rs // --extrinsic=* -// --steps=5 -// --repeat=20 -// --output -// route_executor.rs -// --template -// .maintain/pallet-weight-template-no-back.hbs #![allow(unused_parens)] #![allow(unused_imports)] @@ -50,48 +52,80 @@ use pallet_route_executor::weights::WeightInfo; pub struct BasiliskWeight(PhantomData); impl WeightInfo for BasiliskWeight { - // Storage: Tokens Accounts (r:16 w:16) - // Proof: Tokens Accounts (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen) - // Storage: System Account (r:6 w:1) - // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - // Storage: XYK ShareToken (r:5 w:0) - // Proof: XYK ShareToken (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) - // Storage: AssetRegistry Assets (r:6 w:0) - // Proof Skipped: AssetRegistry Assets (max_values: None, max_size: None, mode: Measured) - // Storage: MultiTransactionPayment AccountCurrencyMap (r:1 w:0) - // Proof: MultiTransactionPayment AccountCurrencyMap (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) - // Storage: MultiTransactionPayment AcceptedCurrencies (r:5 w:0) - // Proof: MultiTransactionPayment AcceptedCurrencies (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) - /// The range of component `n` is `[1, 5]`. - fn sell(n: u32) -> Weight { - // Minimum execution time: 102_357 nanoseconds. - Weight::from_ref_time(53_920_890 as u64) // Standard Error: 79_051 - .saturating_add(Weight::from_ref_time(49_147_710 as u64).saturating_mul(n as u64)) - .saturating_add(T::DbWeight::get().reads(4 as u64)) - .saturating_add(T::DbWeight::get().reads((7 as u64).saturating_mul(n as u64))) - .saturating_add(T::DbWeight::get().writes(2 as u64)) - .saturating_add(T::DbWeight::get().writes((3 as u64).saturating_mul(n as u64))) + /// Storage: `LBP::PoolData` (r:1 w:0) + /// Proof: `LBP::PoolData` (`max_values`: None, `max_size`: Some(163), added: 2638, mode: `MaxEncodedLen`) + /// Storage: `Tokens::Accounts` (r:5 w:5) + /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:3 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Tokens::Locks` (r:1 w:1) + /// Proof: `Tokens::Locks` (`max_values`: None, `max_size`: Some(1261), added: 3736, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:2 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// The range of component `c` is `[0, 1]`. + fn calculate_and_execute_sell_in_lbp(c: u32) -> Weight { + // Proof Size summary in bytes: + // Measured: `2792` + // Estimated: `13905` + // Minimum execution time: 311_089_000 picoseconds. + Weight::from_parts(313_538_367, 13905) + // Standard Error: 135_932 + .saturating_add(Weight::from_parts(51_727_507, 0).saturating_mul(c.into())) + .saturating_add(T::DbWeight::get().reads(12_u64)) + .saturating_add(T::DbWeight::get().writes(7_u64)) + } + /// Storage: `LBP::PoolData` (r:1 w:0) + /// Proof: `LBP::PoolData` (`max_values`: None, `max_size`: Some(163), added: 2638, mode: `MaxEncodedLen`) + /// Storage: `Tokens::Accounts` (r:5 w:5) + /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:3 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Tokens::Locks` (r:1 w:1) + /// Proof: `Tokens::Locks` (`max_values`: None, `max_size`: Some(1261), added: 3736, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:2 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// The range of component `c` is `[1, 2]`. + /// The range of component `b` is `[0, 1]`. + fn calculate_and_execute_buy_in_lbp(c: u32, b: u32) -> Weight { + // Proof Size summary in bytes: + // Measured: `1534 + b * (1274 ±0)` + // Estimated: `6156 + b * (7749 ±99_524_913_928_918_768)` + // Minimum execution time: 73_124_000 picoseconds. + Weight::from_parts(73_641_000, 6156) + // Standard Error: 603_015 + .saturating_add(Weight::from_parts(2_335_052, 0).saturating_mul(c.into())) + // Standard Error: 1_323_790 + .saturating_add(Weight::from_parts(245_212_503, 0).saturating_mul(b.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().reads((9_u64).saturating_mul(b.into()))) + .saturating_add(T::DbWeight::get().writes((7_u64).saturating_mul(b.into()))) + .saturating_add(Weight::from_parts(0, 7749).saturating_mul(b.into())) } - // Storage: Tokens Accounts (r:16 w:16) - // Proof: Tokens Accounts (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen) - // Storage: System Account (r:6 w:1) - // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - // Storage: XYK ShareToken (r:5 w:0) - // Proof: XYK ShareToken (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) - // Storage: AssetRegistry Assets (r:6 w:0) - // Proof Skipped: AssetRegistry Assets (max_values: None, max_size: None, mode: Measured) - // Storage: MultiTransactionPayment AccountCurrencyMap (r:1 w:0) - // Proof: MultiTransactionPayment AccountCurrencyMap (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) - // Storage: MultiTransactionPayment AcceptedCurrencies (r:5 w:0) - // Proof: MultiTransactionPayment AcceptedCurrencies (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) - /// The range of component `n` is `[1, 5]`. - fn buy(n: u32) -> Weight { - // Minimum execution time: 98_383 nanoseconds. - Weight::from_ref_time(48_960_480 as u64) // Standard Error: 149_822 - .saturating_add(Weight::from_ref_time(50_004_240 as u64).saturating_mul(n as u64)) - .saturating_add(T::DbWeight::get().reads(4 as u64)) - .saturating_add(T::DbWeight::get().reads((7 as u64).saturating_mul(n as u64))) - .saturating_add(T::DbWeight::get().writes(2 as u64)) - .saturating_add(T::DbWeight::get().writes((3 as u64).saturating_mul(n as u64))) + /// Storage: `Router::Routes` (r:1 w:1) + /// Proof: `Router::Routes` (`max_values`: None, `max_size`: Some(90), added: 2565, mode: `MaxEncodedLen`) + /// Storage: `Tokens::Accounts` (r:12 w:0) + /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Storage: `Tokens::TotalIssuance` (r:2 w:0) + /// Proof: `Tokens::TotalIssuance` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:4 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:5 w:0) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `MultiTransactionPayment::AccountCurrencyMap` (r:1 w:0) + /// Proof: `MultiTransactionPayment::AccountCurrencyMap` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `MultiTransactionPayment::AcceptedCurrencies` (r:4 w:0) + /// Proof: `MultiTransactionPayment::AcceptedCurrencies` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) + /// Storage: `XYK::ShareToken` (r:4 w:0) + /// Proof: `XYK::ShareToken` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `EmaOracle::Accumulator` (r:1 w:0) + /// Proof: `EmaOracle::Accumulator` (`max_values`: Some(1), `max_size`: Some(4441), added: 4936, mode: `MaxEncodedLen`) + fn set_route_for_xyk() -> Weight { + // Proof Size summary in bytes: + // Measured: `4396` + // Estimated: `31986` + // Minimum execution time: 1_640_100_000 picoseconds. + Weight::from_parts(1_648_958_000, 31986) + .saturating_add(T::DbWeight::get().reads(34_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } } diff --git a/runtime/basilisk/src/weights/scheduler.rs b/runtime/basilisk/src/weights/scheduler.rs index 7696a2b219a..2b11409240a 100644 --- a/runtime/basilisk/src/weights/scheduler.rs +++ b/runtime/basilisk/src/weights/scheduler.rs @@ -15,25 +15,27 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_scheduler +//! Autogenerated weights for `pallet_scheduler` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-01, STEPS: 5, REPEAT: 20, LOW RANGE: [], HIGH RANGE: [] -//! EXECUTION: None, WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! DATE: 2023-12-06, STEPS: `10`, REPEAT: `30`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: // target/release/basilisk // benchmark // pallet -// --pallet=pallet-scheduler // --chain=dev +// --steps=10 +// --repeat=30 +// --wasm-execution=compiled +// --heap-pages=4096 +// --template=.maintain/pallet-weight-template-no-back.hbs +// --pallet=pallet-scheduler +// --output=weights-1.1.0/scheduler.rs // --extrinsic=* -// --steps=5 -// --repeat=20 -// --output -// scheduler.rs -// --template -// .maintain/pallet-weight-template-no-back.hbs #![allow(unused_parens)] #![allow(unused_imports)] @@ -50,102 +52,145 @@ use pallet_scheduler::weights::WeightInfo; pub struct BasiliskWeight(PhantomData); impl WeightInfo for BasiliskWeight { - // Storage: Scheduler IncompleteSince (r:1 w:1) - // Proof: Scheduler IncompleteSince (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: `Scheduler::IncompleteSince` (r:1 w:1) + /// Proof: `Scheduler::IncompleteSince` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) fn service_agendas_base() -> Weight { - // Minimum execution time: 2_786 nanoseconds. - Weight::from_ref_time(2_922_000 as u64) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Size summary in bytes: + // Measured: `31` + // Estimated: `1489` + // Minimum execution time: 4_587_000 picoseconds. + Weight::from_parts(4_667_000, 1489) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } - // Storage: Scheduler Agenda (r:1 w:1) - // Proof: Scheduler Agenda (max_values: None, max_size: Some(38963), added: 41438, mode: MaxEncodedLen) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`) /// The range of component `s` is `[0, 50]`. fn service_agenda_base(s: u32) -> Weight { - // Minimum execution time: 1_945 nanoseconds. - Weight::from_ref_time(3_527_815 as u64) // Standard Error: 8_736 - .saturating_add(Weight::from_ref_time(408_541 as u64).saturating_mul(s as u64)) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Size summary in bytes: + // Measured: `78 + s * (177 ±0)` + // Estimated: `42428` + // Minimum execution time: 4_573_000 picoseconds. + Weight::from_parts(7_765_796, 42428) + // Standard Error: 6_034 + .saturating_add(Weight::from_parts(919_183, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } fn service_task_base() -> Weight { - // Minimum execution time: 2_805 nanoseconds. - Weight::from_ref_time(2_906_000 as u64) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 8_192_000 picoseconds. + Weight::from_parts(8_344_000, 0) } - // Storage: Preimage PreimageFor (r:1 w:1) - // Proof: Preimage PreimageFor (max_values: None, max_size: Some(4194344), added: 4196819, mode: Measured) - // Storage: Preimage StatusFor (r:1 w:1) - // Proof: Preimage StatusFor (max_values: None, max_size: Some(91), added: 2566, mode: MaxEncodedLen) + /// Storage: `Preimage::PreimageFor` (r:1 w:1) + /// Proof: `Preimage::PreimageFor` (`max_values`: None, `max_size`: Some(4194344), added: 4196819, mode: `Measured`) + /// Storage: `Preimage::StatusFor` (r:1 w:1) + /// Proof: `Preimage::StatusFor` (`max_values`: None, `max_size`: Some(91), added: 2566, mode: `MaxEncodedLen`) /// The range of component `s` is `[128, 4194304]`. fn service_task_fetched(s: u32) -> Weight { - // Minimum execution time: 12_849 nanoseconds. - Weight::from_ref_time(13_154_000 as u64) // Standard Error: 8 - .saturating_add(Weight::from_ref_time(852 as u64).saturating_mul(s as u64)) - .saturating_add(T::DbWeight::get().reads(2 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) + // Proof Size summary in bytes: + // Measured: `246 + s * (1 ±0)` + // Estimated: `3709 + s * (1 ±0)` + // Minimum execution time: 27_177_000 picoseconds. + Weight::from_parts(27_454_000, 3709) + // Standard Error: 4 + .saturating_add(Weight::from_parts(1_161, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + .saturating_add(Weight::from_parts(0, 1).saturating_mul(s.into())) } - // Storage: Scheduler Lookup (r:0 w:1) - // Proof: Scheduler Lookup (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) + /// Storage: `Scheduler::Lookup` (r:0 w:1) + /// Proof: `Scheduler::Lookup` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) fn service_task_named() -> Weight { - // Minimum execution time: 3_707 nanoseconds. - Weight::from_ref_time(3_925_000 as u64).saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 10_288_000 picoseconds. + Weight::from_parts(10_607_000, 0).saturating_add(T::DbWeight::get().writes(1_u64)) } fn service_task_periodic() -> Weight { - // Minimum execution time: 2_832 nanoseconds. - Weight::from_ref_time(3_042_000 as u64) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 8_217_000 picoseconds. + Weight::from_parts(8_355_000, 0) } fn execute_dispatch_signed() -> Weight { - // Minimum execution time: 1_471 nanoseconds. - Weight::from_ref_time(1_620_000 as u64) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 4_572_000 picoseconds. + Weight::from_parts(4_670_000, 0) } fn execute_dispatch_unsigned() -> Weight { - // Minimum execution time: 1_413 nanoseconds. - Weight::from_ref_time(1_509_000 as u64) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 4_400_000 picoseconds. + Weight::from_parts(4_513_000, 0) } - // Storage: Scheduler Agenda (r:1 w:1) - // Proof: Scheduler Agenda (max_values: None, max_size: Some(38963), added: 41438, mode: MaxEncodedLen) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`) /// The range of component `s` is `[0, 49]`. fn schedule(s: u32) -> Weight { - // Minimum execution time: 7_807 nanoseconds. - Weight::from_ref_time(9_795_871 as u64) // Standard Error: 10_186 - .saturating_add(Weight::from_ref_time(419_618 as u64).saturating_mul(s as u64)) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Size summary in bytes: + // Measured: `78 + s * (177 ±0)` + // Estimated: `42428` + // Minimum execution time: 18_375_000 picoseconds. + Weight::from_parts(21_573_549, 42428) + // Standard Error: 5_764 + .saturating_add(Weight::from_parts(922_228, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } - // Storage: Scheduler Agenda (r:1 w:1) - // Proof: Scheduler Agenda (max_values: None, max_size: Some(38963), added: 41438, mode: MaxEncodedLen) - // Storage: Scheduler Lookup (r:0 w:1) - // Proof: Scheduler Lookup (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Lookup` (r:0 w:1) + /// Proof: `Scheduler::Lookup` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) /// The range of component `s` is `[1, 50]`. fn cancel(s: u32) -> Weight { - // Minimum execution time: 11_196 nanoseconds. - Weight::from_ref_time(11_533_708 as u64) // Standard Error: 6_405 - .saturating_add(Weight::from_ref_time(589_313 as u64).saturating_mul(s as u64)) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) + // Proof Size summary in bytes: + // Measured: `78 + s * (177 ±0)` + // Estimated: `42428` + // Minimum execution time: 24_061_000 picoseconds. + Weight::from_parts(22_976_505, 42428) + // Standard Error: 1_824 + .saturating_add(Weight::from_parts(1_634_940, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } - // Storage: Scheduler Lookup (r:1 w:1) - // Proof: Scheduler Lookup (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - // Storage: Scheduler Agenda (r:1 w:1) - // Proof: Scheduler Agenda (max_values: None, max_size: Some(38963), added: 41438, mode: MaxEncodedLen) + /// Storage: `Scheduler::Lookup` (r:1 w:1) + /// Proof: `Scheduler::Lookup` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`) /// The range of component `s` is `[0, 49]`. fn schedule_named(s: u32) -> Weight { - // Minimum execution time: 9_508 nanoseconds. - Weight::from_ref_time(11_886_342 as u64) // Standard Error: 12_420 - .saturating_add(Weight::from_ref_time(463_642 as u64).saturating_mul(s as u64)) - .saturating_add(T::DbWeight::get().reads(2 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) + // Proof Size summary in bytes: + // Measured: `192 + s * (187 ±0)` + // Estimated: `42428` + // Minimum execution time: 22_951_000 picoseconds. + Weight::from_parts(26_389_660, 42428) + // Standard Error: 6_664 + .saturating_add(Weight::from_parts(980_392, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } - // Storage: Scheduler Lookup (r:1 w:1) - // Proof: Scheduler Lookup (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) - // Storage: Scheduler Agenda (r:1 w:1) - // Proof: Scheduler Agenda (max_values: None, max_size: Some(38963), added: 41438, mode: MaxEncodedLen) + /// Storage: `Scheduler::Lookup` (r:1 w:1) + /// Proof: `Scheduler::Lookup` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `Scheduler::Agenda` (r:1 w:1) + /// Proof: `Scheduler::Agenda` (`max_values`: None, `max_size`: Some(38963), added: 41438, mode: `MaxEncodedLen`) /// The range of component `s` is `[1, 50]`. fn cancel_named(s: u32) -> Weight { - // Minimum execution time: 12_759 nanoseconds. - Weight::from_ref_time(13_759_716 as u64) // Standard Error: 8_454 - .saturating_add(Weight::from_ref_time(614_785 as u64).saturating_mul(s as u64)) - .saturating_add(T::DbWeight::get().reads(2 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) + // Proof Size summary in bytes: + // Measured: `263 + s * (186 ±0)` + // Estimated: `42428` + // Minimum execution time: 26_389_000 picoseconds. + Weight::from_parts(25_843_381, 42428) + // Standard Error: 2_318 + .saturating_add(Weight::from_parts(1_657_000, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } } diff --git a/runtime/basilisk/src/weights/system.rs b/runtime/basilisk/src/weights/system.rs index 9ba4818332a..6b444748f33 100644 --- a/runtime/basilisk/src/weights/system.rs +++ b/runtime/basilisk/src/weights/system.rs @@ -15,25 +15,27 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for frame_system +//! Autogenerated weights for `frame_system` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-01, STEPS: 5, REPEAT: 20, LOW RANGE: [], HIGH RANGE: [] -//! EXECUTION: None, WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! DATE: 2023-12-06, STEPS: `10`, REPEAT: `30`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: // target/release/basilisk // benchmark // pallet -// --pallet=frame-system // --chain=dev +// --steps=10 +// --repeat=30 +// --wasm-execution=compiled +// --heap-pages=4096 +// --template=.maintain/pallet-weight-template-no-back.hbs +// --pallet=frame-system +// --output=weights-1.1.0/system.rs // --extrinsic=* -// --steps=5 -// --repeat=20 -// --output -// system.rs -// --template -// .maintain/pallet-weight-template-no-back.hbs #![allow(unused_parens)] #![allow(unused_imports)] @@ -52,51 +54,97 @@ pub struct BasiliskWeight(PhantomData); impl WeightInfo for BasiliskWeight { /// The range of component `b` is `[0, 3932160]`. fn remark(b: u32) -> Weight { - // Minimum execution time: 1_243 nanoseconds. - Weight::from_ref_time(1_305_000 as u64) // Standard Error: 2 - .saturating_add(Weight::from_ref_time(305 as u64).saturating_mul(b as u64)) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_616_000 picoseconds. + Weight::from_parts(3_685_000, 0) + // Standard Error: 0 + .saturating_add(Weight::from_parts(410, 0).saturating_mul(b.into())) } /// The range of component `b` is `[0, 3932160]`. fn remark_with_event(b: u32) -> Weight { - // Minimum execution time: 4_434 nanoseconds. - Weight::from_ref_time(4_615_000 as u64) // Standard Error: 2 - .saturating_add(Weight::from_ref_time(1_280 as u64).saturating_mul(b as u64)) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 11_748_000 picoseconds. + Weight::from_parts(11_887_000, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(1_408, 0).saturating_mul(b.into())) } - // Storage: System Digest (r:1 w:1) - // Proof Skipped: System Digest (max_values: Some(1), max_size: None, mode: Measured) - // Storage: unknown `0x3a686561707061676573` (r:0 w:1) - // Proof Skipped: unknown `0x3a686561707061676573` (r:0 w:1) + /// Storage: `System::Digest` (r:1 w:1) + /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: UNKNOWN KEY `0x3a686561707061676573` (r:0 w:1) + /// Proof: UNKNOWN KEY `0x3a686561707061676573` (r:0 w:1) fn set_heap_pages() -> Weight { - // Minimum execution time: 2_790 nanoseconds. - Weight::from_ref_time(2_938_000 as u64) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `1485` + // Minimum execution time: 6_909_000 picoseconds. + Weight::from_parts(7_056_000, 1485) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `ParachainSystem::ValidationData` (r:1 w:0) + /// Proof: `ParachainSystem::ValidationData` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::UpgradeRestrictionSignal` (r:1 w:0) + /// Proof: `ParachainSystem::UpgradeRestrictionSignal` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingValidationCode` (r:1 w:1) + /// Proof: `ParachainSystem::PendingValidationCode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::NewValidationCode` (r:0 w:1) + /// Proof: `ParachainSystem::NewValidationCode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::DidSetValidationCode` (r:0 w:1) + /// Proof: `ParachainSystem::DidSetValidationCode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn set_code() -> Weight { + // Proof Size summary in bytes: + // Measured: `198` + // Estimated: `1683` + // Minimum execution time: 118_445_234_000 picoseconds. + Weight::from_parts(121_210_429_000, 1683) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } - // Storage: Skipped Metadata (r:0 w:0) - // Proof Skipped: Skipped Metadata (max_values: None, max_size: None, mode: Measured) + /// Storage: `Skipped::Metadata` (r:0 w:0) + /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `i` is `[0, 1000]`. fn set_storage(i: u32) -> Weight { - // Minimum execution time: 1_278 nanoseconds. - Weight::from_ref_time(1_324_000 as u64) // Standard Error: 4_118 - .saturating_add(Weight::from_ref_time(490_036 as u64).saturating_mul(i as u64)) - .saturating_add(T::DbWeight::get().writes((1 as u64).saturating_mul(i as u64))) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_890_000 picoseconds. + Weight::from_parts(4_013_000, 0) + // Standard Error: 4_442 + .saturating_add(Weight::from_parts(944_461, 0).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } - // Storage: Skipped Metadata (r:0 w:0) - // Proof Skipped: Skipped Metadata (max_values: None, max_size: None, mode: Measured) + /// Storage: `Skipped::Metadata` (r:0 w:0) + /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `i` is `[0, 1000]`. fn kill_storage(i: u32) -> Weight { - // Minimum execution time: 1_317 nanoseconds. - Weight::from_ref_time(1_380_000 as u64) // Standard Error: 2_773 - .saturating_add(Weight::from_ref_time(408_846 as u64).saturating_mul(i as u64)) - .saturating_add(T::DbWeight::get().writes((1 as u64).saturating_mul(i as u64))) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_984_000 picoseconds. + Weight::from_parts(4_015_000, 0) + // Standard Error: 1_473 + .saturating_add(Weight::from_parts(634_355, 0).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } - // Storage: Skipped Metadata (r:0 w:0) - // Proof Skipped: Skipped Metadata (max_values: None, max_size: None, mode: Measured) + /// Storage: `Skipped::Metadata` (r:0 w:0) + /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `p` is `[0, 1000]`. fn kill_prefix(p: u32) -> Weight { - // Minimum execution time: 3_084 nanoseconds. - Weight::from_ref_time(3_135_000 as u64) // Standard Error: 3_312 - .saturating_add(Weight::from_ref_time(1_028_885 as u64).saturating_mul(p as u64)) - .saturating_add(T::DbWeight::get().writes((1 as u64).saturating_mul(p as u64))) + // Proof Size summary in bytes: + // Measured: `96 + p * (69 ±0)` + // Estimated: `84 + p * (70 ±0)` + // Minimum execution time: 7_026_000 picoseconds. + Weight::from_parts(7_078_000, 84) + // Standard Error: 1_506 + .saturating_add(Weight::from_parts(1_097_197, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(p.into()))) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(p.into()))) + .saturating_add(Weight::from_parts(0, 70).saturating_mul(p.into())) } } diff --git a/runtime/basilisk/src/weights/timestamp.rs b/runtime/basilisk/src/weights/timestamp.rs index 0e84ac3fb83..e8c4a958256 100644 --- a/runtime/basilisk/src/weights/timestamp.rs +++ b/runtime/basilisk/src/weights/timestamp.rs @@ -15,25 +15,27 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_timestamp +//! Autogenerated weights for `pallet_timestamp` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-01, STEPS: 5, REPEAT: 20, LOW RANGE: [], HIGH RANGE: [] -//! EXECUTION: None, WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! DATE: 2023-12-06, STEPS: `10`, REPEAT: `30`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: // target/release/basilisk // benchmark // pallet -// --pallet=pallet-timestamp // --chain=dev +// --steps=10 +// --repeat=30 +// --wasm-execution=compiled +// --heap-pages=4096 +// --template=.maintain/pallet-weight-template-no-back.hbs +// --pallet=pallet-timestamp +// --output=weights-1.1.0/timestamp.rs // --extrinsic=* -// --steps=5 -// --repeat=20 -// --output -// timestamp.rs -// --template -// .maintain/pallet-weight-template-no-back.hbs #![allow(unused_parens)] #![allow(unused_imports)] @@ -50,16 +52,22 @@ use pallet_timestamp::weights::WeightInfo; pub struct BasiliskWeight(PhantomData); impl WeightInfo for BasiliskWeight { - // Storage: Timestamp Now (r:1 w:1) - // Proof: Timestamp Now (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) + /// Storage: `Timestamp::Now` (r:1 w:1) + /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) fn set() -> Weight { - // Minimum execution time: 5_445 nanoseconds. - Weight::from_ref_time(5_666_000 as u64) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Size summary in bytes: + // Measured: `42` + // Estimated: `1493` + // Minimum execution time: 10_265_000 picoseconds. + Weight::from_parts(10_513_000, 1493) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } fn on_finalize() -> Weight { - // Minimum execution time: 4_437 nanoseconds. - Weight::from_ref_time(4_691_000 as u64) + // Proof Size summary in bytes: + // Measured: `94` + // Estimated: `0` + // Minimum execution time: 5_546_000 picoseconds. + Weight::from_parts(5_705_000, 0) } } diff --git a/runtime/basilisk/src/weights/tips.rs b/runtime/basilisk/src/weights/tips.rs index 562b138c6e5..6609a9bd1ba 100644 --- a/runtime/basilisk/src/weights/tips.rs +++ b/runtime/basilisk/src/weights/tips.rs @@ -15,25 +15,27 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_tips +//! Autogenerated weights for `pallet_tips` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-01, STEPS: 5, REPEAT: 20, LOW RANGE: [], HIGH RANGE: [] -//! EXECUTION: None, WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! DATE: 2023-12-06, STEPS: `10`, REPEAT: `30`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: // target/release/basilisk // benchmark // pallet -// --pallet=pallet-tips // --chain=dev +// --steps=10 +// --repeat=30 +// --wasm-execution=compiled +// --heap-pages=4096 +// --template=.maintain/pallet-weight-template-no-back.hbs +// --pallet=pallet-tips +// --output=weights-1.1.0/tips.rs // --extrinsic=* -// --steps=5 -// --repeat=20 -// --output -// tips.rs -// --template -// .maintain/pallet-weight-template-no-back.hbs #![allow(unused_parens)] #![allow(unused_imports)] @@ -50,82 +52,109 @@ use pallet_tips::weights::WeightInfo; pub struct BasiliskWeight(PhantomData); impl WeightInfo for BasiliskWeight { - // Storage: Tips Reasons (r:1 w:1) - // Proof Skipped: Tips Reasons (max_values: None, max_size: None, mode: Measured) - // Storage: Tips Tips (r:1 w:1) - // Proof Skipped: Tips Tips (max_values: None, max_size: None, mode: Measured) + /// Storage: `Tips::Reasons` (r:1 w:1) + /// Proof: `Tips::Reasons` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Tips::Tips` (r:1 w:1) + /// Proof: `Tips::Tips` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 1024]`. fn report_awesome(r: u32) -> Weight { - // Minimum execution time: 14_024 nanoseconds. - Weight::from_ref_time(14_342_560 as u64) // Standard Error: 46 - .saturating_add(Weight::from_ref_time(1_192 as u64).saturating_mul(r as u64)) - .saturating_add(T::DbWeight::get().reads(2 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) + // Proof Size summary in bytes: + // Measured: `3` + // Estimated: `3468` + // Minimum execution time: 40_703_000 picoseconds. + Weight::from_parts(41_096_004, 3468) + // Standard Error: 38 + .saturating_add(Weight::from_parts(1_443, 0).saturating_mul(r.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } - // Storage: Tips Tips (r:1 w:1) - // Proof Skipped: Tips Tips (max_values: None, max_size: None, mode: Measured) - // Storage: Tips Reasons (r:0 w:1) - // Proof Skipped: Tips Reasons (max_values: None, max_size: None, mode: Measured) + /// Storage: `Tips::Tips` (r:1 w:1) + /// Proof: `Tips::Tips` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Tips::Reasons` (r:0 w:1) + /// Proof: `Tips::Reasons` (`max_values`: None, `max_size`: None, mode: `Measured`) fn retract_tip() -> Weight { - // Minimum execution time: 14_579 nanoseconds. - Weight::from_ref_time(15_025_000 as u64) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) + // Proof Size summary in bytes: + // Measured: `220` + // Estimated: `3685` + // Minimum execution time: 38_411_000 picoseconds. + Weight::from_parts(38_741_000, 3685) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } - // Storage: Elections Members (r:1 w:0) - // Proof Skipped: Elections Members (max_values: Some(1), max_size: None, mode: Measured) - // Storage: Tips Reasons (r:1 w:1) - // Proof Skipped: Tips Reasons (max_values: None, max_size: None, mode: Measured) - // Storage: Tips Tips (r:0 w:1) - // Proof Skipped: Tips Tips (max_values: None, max_size: None, mode: Measured) + /// Storage: `Elections::Members` (r:1 w:0) + /// Proof: `Elections::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Tips::Reasons` (r:1 w:1) + /// Proof: `Tips::Reasons` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Tips::Tips` (r:0 w:1) + /// Proof: `Tips::Tips` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `r` is `[0, 1024]`. /// The range of component `t` is `[1, 7]`. fn tip_new(r: u32, t: u32) -> Weight { - // Minimum execution time: 13_921 nanoseconds. - Weight::from_ref_time(13_642_289 as u64) // Standard Error: 63 - .saturating_add(Weight::from_ref_time(1_261 as u64).saturating_mul(r as u64)) - // Standard Error: 10_466 - .saturating_add(Weight::from_ref_time(83_217 as u64).saturating_mul(t as u64)) - .saturating_add(T::DbWeight::get().reads(2 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) + // Proof Size summary in bytes: + // Measured: `238 + t * (64 ±0)` + // Estimated: `3703 + t * (64 ±0)` + // Minimum execution time: 26_815_000 picoseconds. + Weight::from_parts(26_762_157, 3703) + // Standard Error: 30 + .saturating_add(Weight::from_parts(1_830, 0).saturating_mul(r.into())) + // Standard Error: 4_954 + .saturating_add(Weight::from_parts(77_114, 0).saturating_mul(t.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + .saturating_add(Weight::from_parts(0, 64).saturating_mul(t.into())) } - // Storage: Elections Members (r:1 w:0) - // Proof Skipped: Elections Members (max_values: Some(1), max_size: None, mode: Measured) - // Storage: Tips Tips (r:1 w:1) - // Proof Skipped: Tips Tips (max_values: None, max_size: None, mode: Measured) + /// Storage: `Elections::Members` (r:1 w:0) + /// Proof: `Elections::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Tips::Tips` (r:1 w:1) + /// Proof: `Tips::Tips` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `t` is `[1, 7]`. fn tip(t: u32) -> Weight { - // Minimum execution time: 12_086 nanoseconds. - Weight::from_ref_time(12_250_866 as u64) // Standard Error: 9_625 - .saturating_add(Weight::from_ref_time(138_045 as u64).saturating_mul(t as u64)) - .saturating_add(T::DbWeight::get().reads(2 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Size summary in bytes: + // Measured: `459 + t * (112 ±0)` + // Estimated: `3924 + t * (112 ±0)` + // Minimum execution time: 20_822_000 picoseconds. + Weight::from_parts(21_042_093, 3924) + // Standard Error: 5_344 + .saturating_add(Weight::from_parts(158_511, 0).saturating_mul(t.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + .saturating_add(Weight::from_parts(0, 112).saturating_mul(t.into())) } - // Storage: Tips Tips (r:1 w:1) - // Proof Skipped: Tips Tips (max_values: None, max_size: None, mode: Measured) - // Storage: Elections Members (r:1 w:0) - // Proof Skipped: Elections Members (max_values: Some(1), max_size: None, mode: Measured) - // Storage: System Account (r:1 w:1) - // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - // Storage: Tips Reasons (r:0 w:1) - // Proof Skipped: Tips Reasons (max_values: None, max_size: None, mode: Measured) + /// Storage: `Tips::Tips` (r:1 w:1) + /// Proof: `Tips::Tips` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Elections::Members` (r:1 w:0) + /// Proof: `Elections::Members` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Tips::Reasons` (r:0 w:1) + /// Proof: `Tips::Reasons` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `t` is `[1, 7]`. fn close_tip(t: u32) -> Weight { - // Minimum execution time: 27_246 nanoseconds. - Weight::from_ref_time(28_197_616 as u64) // Standard Error: 28_807 - .saturating_add(Weight::from_ref_time(9_248 as u64).saturating_mul(t as u64)) - .saturating_add(T::DbWeight::get().reads(3 as u64)) - .saturating_add(T::DbWeight::get().writes(3 as u64)) + // Proof Size summary in bytes: + // Measured: `459 + t * (112 ±0)` + // Estimated: `3956 + t * (108 ±0)` + // Minimum execution time: 81_401_000 picoseconds. + Weight::from_parts(82_522_678, 3956) + // Standard Error: 17_050 + .saturating_add(Weight::from_parts(47_685, 0).saturating_mul(t.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) + .saturating_add(Weight::from_parts(0, 108).saturating_mul(t.into())) } - // Storage: Tips Tips (r:1 w:1) - // Proof Skipped: Tips Tips (max_values: None, max_size: None, mode: Measured) - // Storage: Tips Reasons (r:0 w:1) - // Proof Skipped: Tips Reasons (max_values: None, max_size: None, mode: Measured) + /// Storage: `Tips::Tips` (r:1 w:1) + /// Proof: `Tips::Tips` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `Tips::Reasons` (r:0 w:1) + /// Proof: `Tips::Reasons` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `t` is `[1, 7]`. - fn slash_tip(_t: u32) -> Weight { - // Minimum execution time: 10_657 nanoseconds. - Weight::from_ref_time(11_189_816 as u64) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) + fn slash_tip(t: u32) -> Weight { + // Proof Size summary in bytes: + // Measured: `268` + // Estimated: `3733` + // Minimum execution time: 20_060_000 picoseconds. + Weight::from_parts(20_472_625, 3733) + // Standard Error: 3_824 + .saturating_add(Weight::from_parts(2_274, 0).saturating_mul(t.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } } diff --git a/runtime/basilisk/src/weights/tokens.rs b/runtime/basilisk/src/weights/tokens.rs index 46387796a77..2eea647dc06 100644 --- a/runtime/basilisk/src/weights/tokens.rs +++ b/runtime/basilisk/src/weights/tokens.rs @@ -15,25 +15,27 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for orml_tokens +//! Autogenerated weights for `orml_tokens` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-01, STEPS: 5, REPEAT: 20, LOW RANGE: [], HIGH RANGE: [] -//! EXECUTION: None, WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! DATE: 2023-12-06, STEPS: `10`, REPEAT: `30`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: // target/release/basilisk // benchmark // pallet -// --pallet=orml-tokens // --chain=dev -// --extrinsic=* -// --steps=5 -// --repeat=20 -// --output -// tokens.rs -// --template -// .maintain/pallet-weight-template-no-back.hbs +// --steps=10 +// --repeat=30 +// --wasm-execution=compiled +// --heap-pages=4096 +// --template=.maintain/pallet-weight-template-no-back.hbs +// --pallet=orml-tokens +// --output=weights-1.1.0/tokens.rs +// --extrinsic=** #![allow(unused_parens)] #![allow(unused_imports)] @@ -50,86 +52,101 @@ use orml_tokens::WeightInfo; pub struct BasiliskWeight(PhantomData); impl WeightInfo for BasiliskWeight { - // Storage: Tokens Accounts (r:2 w:2) - // Proof: Tokens Accounts (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen) - // Storage: AssetRegistry Assets (r:1 w:0) - // Proof Skipped: AssetRegistry Assets (max_values: None, max_size: None, mode: Measured) - // Storage: System Account (r:1 w:1) - // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - // Storage: MultiTransactionPayment AccountCurrencyMap (r:1 w:1) - // Proof: MultiTransactionPayment AccountCurrencyMap (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) - // Storage: MultiTransactionPayment AcceptedCurrencies (r:1 w:0) - // Proof: MultiTransactionPayment AcceptedCurrencies (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) + /// Storage: `Tokens::Accounts` (r:2 w:2) + /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:1 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `MultiTransactionPayment::AccountCurrencyMap` (r:1 w:1) + /// Proof: `MultiTransactionPayment::AccountCurrencyMap` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `MultiTransactionPayment::AcceptedCurrencies` (r:1 w:0) + /// Proof: `MultiTransactionPayment::AcceptedCurrencies` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) fn transfer() -> Weight { - // Minimum execution time: 51_309 nanoseconds. - Weight::from_ref_time(51_976_000 as u64) - .saturating_add(T::DbWeight::get().reads(6 as u64)) - .saturating_add(T::DbWeight::get().writes(4 as u64)) + // Proof Size summary in bytes: + // Measured: `2106` + // Estimated: `6156` + // Minimum execution time: 87_635_000 picoseconds. + Weight::from_parts(88_923_000, 6156) + .saturating_add(T::DbWeight::get().reads(6_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) } - // Storage: Tokens Accounts (r:2 w:2) - // Proof: Tokens Accounts (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen) - // Storage: AssetRegistry Assets (r:1 w:0) - // Proof Skipped: AssetRegistry Assets (max_values: None, max_size: None, mode: Measured) - // Storage: System Account (r:1 w:1) - // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - // Storage: MultiTransactionPayment AccountCurrencyMap (r:1 w:1) - // Proof: MultiTransactionPayment AccountCurrencyMap (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) - // Storage: MultiTransactionPayment AcceptedCurrencies (r:1 w:0) - // Proof: MultiTransactionPayment AcceptedCurrencies (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) + /// Storage: `Tokens::Accounts` (r:2 w:2) + /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:1 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `MultiTransactionPayment::AccountCurrencyMap` (r:1 w:1) + /// Proof: `MultiTransactionPayment::AccountCurrencyMap` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `MultiTransactionPayment::AcceptedCurrencies` (r:1 w:0) + /// Proof: `MultiTransactionPayment::AcceptedCurrencies` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) fn transfer_all() -> Weight { - // Minimum execution time: 53_472 nanoseconds. - Weight::from_ref_time(56_437_000 as u64) - .saturating_add(T::DbWeight::get().reads(6 as u64)) - .saturating_add(T::DbWeight::get().writes(4 as u64)) + // Proof Size summary in bytes: + // Measured: `2106` + // Estimated: `6156` + // Minimum execution time: 91_552_000 picoseconds. + Weight::from_parts(92_683_000, 6156) + .saturating_add(T::DbWeight::get().reads(6_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) } - // Storage: Tokens Accounts (r:2 w:2) - // Proof: Tokens Accounts (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen) - // Storage: AssetRegistry Assets (r:1 w:0) - // Proof Skipped: AssetRegistry Assets (max_values: None, max_size: None, mode: Measured) - // Storage: System Account (r:1 w:1) - // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - // Storage: MultiTransactionPayment AccountCurrencyMap (r:1 w:0) - // Proof: MultiTransactionPayment AccountCurrencyMap (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) - // Storage: MultiTransactionPayment AcceptedCurrencies (r:1 w:0) - // Proof: MultiTransactionPayment AcceptedCurrencies (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) + /// Storage: `Tokens::Accounts` (r:2 w:2) + /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:1 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `MultiTransactionPayment::AccountCurrencyMap` (r:1 w:0) + /// Proof: `MultiTransactionPayment::AccountCurrencyMap` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `MultiTransactionPayment::AcceptedCurrencies` (r:1 w:0) + /// Proof: `MultiTransactionPayment::AcceptedCurrencies` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) fn transfer_keep_alive() -> Weight { - // Minimum execution time: 47_484 nanoseconds. - Weight::from_ref_time(48_063_000 as u64) - .saturating_add(T::DbWeight::get().reads(6 as u64)) - .saturating_add(T::DbWeight::get().writes(3 as u64)) + // Proof Size summary in bytes: + // Measured: `1966` + // Estimated: `6156` + // Minimum execution time: 72_439_000 picoseconds. + Weight::from_parts(72_911_000, 6156) + .saturating_add(T::DbWeight::get().reads(6_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } - // Storage: Tokens Accounts (r:2 w:2) - // Proof: Tokens Accounts (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen) - // Storage: AssetRegistry Assets (r:1 w:0) - // Proof Skipped: AssetRegistry Assets (max_values: None, max_size: None, mode: Measured) - // Storage: System Account (r:2 w:1) - // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - // Storage: MultiTransactionPayment AccountCurrencyMap (r:1 w:0) - // Proof: MultiTransactionPayment AccountCurrencyMap (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) - // Storage: MultiTransactionPayment AcceptedCurrencies (r:1 w:0) - // Proof: MultiTransactionPayment AcceptedCurrencies (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) + /// Storage: `Tokens::Accounts` (r:2 w:2) + /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:1 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `MultiTransactionPayment::AccountCurrencyMap` (r:1 w:0) + /// Proof: `MultiTransactionPayment::AccountCurrencyMap` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `MultiTransactionPayment::AcceptedCurrencies` (r:1 w:0) + /// Proof: `MultiTransactionPayment::AcceptedCurrencies` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) fn force_transfer() -> Weight { - // Minimum execution time: 49_337 nanoseconds. - Weight::from_ref_time(49_975_000 as u64) - .saturating_add(T::DbWeight::get().reads(7 as u64)) - .saturating_add(T::DbWeight::get().writes(3 as u64)) + // Proof Size summary in bytes: + // Measured: `2099` + // Estimated: `6196` + // Minimum execution time: 75_225_000 picoseconds. + Weight::from_parts(76_079_000, 6196) + .saturating_add(T::DbWeight::get().reads(7_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } - // Storage: Tokens Accounts (r:1 w:1) - // Proof: Tokens Accounts (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen) - // Storage: AssetRegistry Assets (r:1 w:0) - // Proof Skipped: AssetRegistry Assets (max_values: None, max_size: None, mode: Measured) - // Storage: Tokens TotalIssuance (r:1 w:1) - // Proof: Tokens TotalIssuance (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) - // Storage: System Account (r:1 w:1) - // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - // Storage: MultiTransactionPayment AccountCurrencyMap (r:1 w:0) - // Proof: MultiTransactionPayment AccountCurrencyMap (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) - // Storage: MultiTransactionPayment AcceptedCurrencies (r:1 w:0) - // Proof: MultiTransactionPayment AcceptedCurrencies (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) + /// Storage: `Tokens::Accounts` (r:1 w:1) + /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:1 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `Tokens::TotalIssuance` (r:1 w:1) + /// Proof: `Tokens::TotalIssuance` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `MultiTransactionPayment::AccountCurrencyMap` (r:1 w:0) + /// Proof: `MultiTransactionPayment::AccountCurrencyMap` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `MultiTransactionPayment::AcceptedCurrencies` (r:1 w:0) + /// Proof: `MultiTransactionPayment::AcceptedCurrencies` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) fn set_balance() -> Weight { - // Minimum execution time: 43_668 nanoseconds. - Weight::from_ref_time(44_590_000 as u64) - .saturating_add(T::DbWeight::get().reads(6 as u64)) - .saturating_add(T::DbWeight::get().writes(3 as u64)) + // Proof Size summary in bytes: + // Measured: `1897` + // Estimated: `3593` + // Minimum execution time: 64_677_000 picoseconds. + Weight::from_parts(65_382_000, 3593) + .saturating_add(T::DbWeight::get().reads(6_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } } diff --git a/runtime/basilisk/src/weights/transaction_pause.rs b/runtime/basilisk/src/weights/transaction_pause.rs index cc0dfeb589c..2925a268914 100644 --- a/runtime/basilisk/src/weights/transaction_pause.rs +++ b/runtime/basilisk/src/weights/transaction_pause.rs @@ -15,25 +15,27 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_transaction_pause +//! Autogenerated weights for `pallet_transaction_pause` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-01, STEPS: 5, REPEAT: 20, LOW RANGE: [], HIGH RANGE: [] -//! EXECUTION: None, WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! DATE: 2023-12-06, STEPS: `10`, REPEAT: `30`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: // target/release/basilisk // benchmark // pallet -// --pallet=pallet-transaction-pause // --chain=dev +// --steps=10 +// --repeat=30 +// --wasm-execution=compiled +// --heap-pages=4096 +// --template=.maintain/pallet-weight-template-no-back.hbs +// --pallet=pallet-transaction-pause +// --output=weights-1.1.0/transaction_pause.rs // --extrinsic=* -// --steps=5 -// --repeat=20 -// --output -// transaction_pause.rs -// --template -// .maintain/pallet-weight-template-no-back.hbs #![allow(unused_parens)] #![allow(unused_imports)] @@ -50,20 +52,26 @@ use pallet_transaction_pause::weights::WeightInfo; pub struct BasiliskWeight(PhantomData); impl WeightInfo for BasiliskWeight { - // Storage: TransactionPause PausedTransactions (r:1 w:1) - // Proof Skipped: TransactionPause PausedTransactions (max_values: None, max_size: None, mode: Measured) + /// Storage: `TransactionPause::PausedTransactions` (r:1 w:1) + /// Proof: `TransactionPause::PausedTransactions` (`max_values`: None, `max_size`: Some(90), added: 2565, mode: `MaxEncodedLen`) fn pause_transaction() -> Weight { - // Minimum execution time: 7_829 nanoseconds. - Weight::from_ref_time(8_312_000 as u64) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Size summary in bytes: + // Measured: `147` + // Estimated: `3555` + // Minimum execution time: 16_518_000 picoseconds. + Weight::from_parts(17_068_000, 3555) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } - // Storage: TransactionPause PausedTransactions (r:1 w:1) - // Proof Skipped: TransactionPause PausedTransactions (max_values: None, max_size: None, mode: Measured) + /// Storage: `TransactionPause::PausedTransactions` (r:1 w:1) + /// Proof: `TransactionPause::PausedTransactions` (`max_values`: None, `max_size`: Some(90), added: 2565, mode: `MaxEncodedLen`) fn unpause_transaction() -> Weight { - // Minimum execution time: 9_161 nanoseconds. - Weight::from_ref_time(9_447_000 as u64) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Size summary in bytes: + // Measured: `198` + // Estimated: `3555` + // Minimum execution time: 18_239_000 picoseconds. + Weight::from_parts(18_522_000, 3555) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } } diff --git a/runtime/basilisk/src/weights/treasury.rs b/runtime/basilisk/src/weights/treasury.rs index cb41d27e7b3..5da71744110 100644 --- a/runtime/basilisk/src/weights/treasury.rs +++ b/runtime/basilisk/src/weights/treasury.rs @@ -15,25 +15,27 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_treasury +//! Autogenerated weights for `pallet_treasury` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-01, STEPS: 5, REPEAT: 20, LOW RANGE: [], HIGH RANGE: [] -//! EXECUTION: None, WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! DATE: 2023-12-06, STEPS: `10`, REPEAT: `30`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: // target/release/basilisk // benchmark // pallet -// --pallet=pallet-treasury // --chain=dev +// --steps=10 +// --repeat=30 +// --wasm-execution=compiled +// --heap-pages=4096 +// --template=.maintain/pallet-weight-template-no-back.hbs +// --pallet=pallet-treasury +// --output=weights-1.1.0/treasury.rs // --extrinsic=* -// --steps=5 -// --repeat=20 -// --output -// treasury.rs -// --template -// .maintain/pallet-weight-template-no-back.hbs #![allow(unused_parens)] #![allow(unused_imports)] @@ -51,67 +53,88 @@ pub struct BasiliskWeight(PhantomData); impl WeightInfo for BasiliskWeight { fn spend() -> Weight { - // Minimum execution time: 57 nanoseconds. - Weight::from_ref_time(70_000 as u64) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 386_000 picoseconds. + Weight::from_parts(414_000, 0) } - // Storage: Treasury ProposalCount (r:1 w:1) - // Proof: Treasury ProposalCount (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - // Storage: Treasury Proposals (r:0 w:1) - // Proof: Treasury Proposals (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen) + /// Storage: `Treasury::ProposalCount` (r:1 w:1) + /// Proof: `Treasury::ProposalCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Treasury::Proposals` (r:0 w:1) + /// Proof: `Treasury::Proposals` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) fn propose_spend() -> Weight { - // Minimum execution time: 16_004 nanoseconds. - Weight::from_ref_time(16_358_000 as u64) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) + // Proof Size summary in bytes: + // Measured: `210` + // Estimated: `1489` + // Minimum execution time: 37_957_000 picoseconds. + Weight::from_parts(38_297_000, 1489) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } - // Storage: Treasury Proposals (r:1 w:1) - // Proof: Treasury Proposals (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen) - // Storage: System Account (r:1 w:1) - // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Treasury::Proposals` (r:1 w:1) + /// Proof: `Treasury::Proposals` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn reject_proposal() -> Weight { - // Minimum execution time: 21_853 nanoseconds. - Weight::from_ref_time(22_820_000 as u64) - .saturating_add(T::DbWeight::get().reads(2 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) + // Proof Size summary in bytes: + // Measured: `368` + // Estimated: `3593` + // Minimum execution time: 55_324_000 picoseconds. + Weight::from_parts(55_652_000, 3593) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } - // Storage: Treasury Proposals (r:1 w:0) - // Proof: Treasury Proposals (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen) - // Storage: Treasury Approvals (r:1 w:1) - // Proof: Treasury Approvals (max_values: Some(1), max_size: Some(402), added: 897, mode: MaxEncodedLen) + /// Storage: `Treasury::Proposals` (r:1 w:0) + /// Proof: `Treasury::Proposals` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Storage: `Treasury::Approvals` (r:1 w:1) + /// Proof: `Treasury::Approvals` (`max_values`: Some(1), `max_size`: Some(402), added: 897, mode: `MaxEncodedLen`) /// The range of component `p` is `[0, 99]`. fn approve_proposal(p: u32) -> Weight { - // Minimum execution time: 8_428 nanoseconds. - Weight::from_ref_time(10_215_802 as u64) // Standard Error: 5_445 - .saturating_add(Weight::from_ref_time(40_062 as u64).saturating_mul(p as u64)) - .saturating_add(T::DbWeight::get().reads(2 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Size summary in bytes: + // Measured: `571 + p * (7 ±0)` + // Estimated: `3573` + // Minimum execution time: 14_071_000 picoseconds. + Weight::from_parts(17_014_032, 3573) + // Standard Error: 2_942 + .saturating_add(Weight::from_parts(35_852, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } - // Storage: Treasury Approvals (r:1 w:1) - // Proof: Treasury Approvals (max_values: Some(1), max_size: Some(402), added: 897, mode: MaxEncodedLen) + /// Storage: `Treasury::Approvals` (r:1 w:1) + /// Proof: `Treasury::Approvals` (`max_values`: Some(1), `max_size`: Some(402), added: 897, mode: `MaxEncodedLen`) fn remove_approval() -> Weight { - // Minimum execution time: 6_749 nanoseconds. - Weight::from_ref_time(6_979_000 as u64) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Size summary in bytes: + // Measured: `194` + // Estimated: `1887` + // Minimum execution time: 10_612_000 picoseconds. + Weight::from_parts(10_968_000, 1887) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } - // Storage: Treasury Deactivated (r:1 w:1) - // Proof: Treasury Deactivated (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) - // Storage: Balances InactiveIssuance (r:1 w:1) - // Proof: Balances InactiveIssuance (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) - // Storage: Treasury Approvals (r:1 w:1) - // Proof: Treasury Approvals (max_values: Some(1), max_size: Some(402), added: 897, mode: MaxEncodedLen) - // Storage: Treasury Proposals (r:100 w:100) - // Proof: Treasury Proposals (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen) - // Storage: System Account (r:200 w:200) - // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Treasury::Deactivated` (r:1 w:1) + /// Proof: `Treasury::Deactivated` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `Balances::InactiveIssuance` (r:1 w:1) + /// Proof: `Balances::InactiveIssuance` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `Treasury::Approvals` (r:1 w:1) + /// Proof: `Treasury::Approvals` (`max_values`: Some(1), `max_size`: Some(402), added: 897, mode: `MaxEncodedLen`) + /// Storage: `Treasury::Proposals` (r:100 w:100) + /// Proof: `Treasury::Proposals` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:200 w:200) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) /// The range of component `p` is `[0, 100]`. fn on_initialize_proposals(p: u32) -> Weight { - // Minimum execution time: 15_011 nanoseconds. - Weight::from_ref_time(17_185_760 as u64) // Standard Error: 18_518 - .saturating_add(Weight::from_ref_time(17_277_918 as u64).saturating_mul(p as u64)) - .saturating_add(T::DbWeight::get().reads(3 as u64)) - .saturating_add(T::DbWeight::get().reads((3 as u64).saturating_mul(p as u64))) - .saturating_add(T::DbWeight::get().writes(3 as u64)) - .saturating_add(T::DbWeight::get().writes((3 as u64).saturating_mul(p as u64))) + // Proof Size summary in bytes: + // Measured: `43 + p * (250 ±0)` + // Estimated: `1887 + p * (5206 ±0)` + // Minimum execution time: 37_755_000 picoseconds. + Weight::from_parts(42_881_231, 1887) + // Standard Error: 38_744 + .saturating_add(Weight::from_parts(51_567_452, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().reads((3_u64).saturating_mul(p.into()))) + .saturating_add(T::DbWeight::get().writes(3_u64)) + .saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(p.into()))) + .saturating_add(Weight::from_parts(0, 5206).saturating_mul(p.into())) } } diff --git a/runtime/basilisk/src/weights/utility.rs b/runtime/basilisk/src/weights/utility.rs index 65ec2b35ccd..f2485d2f988 100644 --- a/runtime/basilisk/src/weights/utility.rs +++ b/runtime/basilisk/src/weights/utility.rs @@ -15,25 +15,27 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_utility +//! Autogenerated weights for `pallet_utility` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-01, STEPS: 5, REPEAT: 20, LOW RANGE: [], HIGH RANGE: [] -//! EXECUTION: None, WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! DATE: 2023-12-06, STEPS: `10`, REPEAT: `30`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: // target/release/basilisk // benchmark // pallet -// --pallet=pallet-utility // --chain=dev +// --steps=10 +// --repeat=30 +// --wasm-execution=compiled +// --heap-pages=4096 +// --template=.maintain/pallet-weight-template-no-back.hbs +// --pallet=pallet-utility +// --output=weights-1.1.0/utility.rs // --extrinsic=* -// --steps=5 -// --repeat=20 -// --output -// utility.rs -// --template -// .maintain/pallet-weight-template-no-back.hbs #![allow(unused_parens)] #![allow(unused_imports)] @@ -52,28 +54,46 @@ pub struct BasiliskWeight(PhantomData); impl WeightInfo for BasiliskWeight { /// The range of component `c` is `[0, 1000]`. fn batch(c: u32) -> Weight { - // Minimum execution time: 4_082 nanoseconds. - Weight::from_ref_time(25_336_600 as u64) // Standard Error: 10_544 - .saturating_add(Weight::from_ref_time(1_904_658 as u64).saturating_mul(c as u64)) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 10_682_000 picoseconds. + Weight::from_parts(11_477_983, 0) + // Standard Error: 8_381 + .saturating_add(Weight::from_parts(6_924_986, 0).saturating_mul(c.into())) } fn as_derivative() -> Weight { - // Minimum execution time: 3_059 nanoseconds. - Weight::from_ref_time(3_239_000 as u64) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 8_012_000 picoseconds. + Weight::from_parts(8_236_000, 0) } /// The range of component `c` is `[0, 1000]`. fn batch_all(c: u32) -> Weight { - // Minimum execution time: 4_104 nanoseconds. - Weight::from_ref_time(5_430_080 as u64) // Standard Error: 3_514 - .saturating_add(Weight::from_ref_time(1_960_391 as u64).saturating_mul(c as u64)) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 10_691_000 picoseconds. + Weight::from_parts(17_408_249, 0) + // Standard Error: 5_637 + .saturating_add(Weight::from_parts(7_299_736, 0).saturating_mul(c.into())) } fn dispatch_as() -> Weight { - // Minimum execution time: 5_083 nanoseconds. - Weight::from_ref_time(5_299_000 as u64) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 13_764_000 picoseconds. + Weight::from_parts(14_038_000, 0) } /// The range of component `c` is `[0, 1000]`. fn force_batch(c: u32) -> Weight { - // Minimum execution time: 3_953 nanoseconds. - Weight::from_ref_time(596_620 as u64) // Standard Error: 3_802 - .saturating_add(Weight::from_ref_time(1_932_954 as u64).saturating_mul(c as u64)) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 10_754_000 picoseconds. + Weight::from_parts(8_816_518, 0) + // Standard Error: 4_938 + .saturating_add(Weight::from_parts(6_883_918, 0).saturating_mul(c.into())) } } diff --git a/runtime/basilisk/src/weights/vesting.rs b/runtime/basilisk/src/weights/vesting.rs index 84f32229b3f..e2511268bf7 100644 --- a/runtime/basilisk/src/weights/vesting.rs +++ b/runtime/basilisk/src/weights/vesting.rs @@ -15,25 +15,27 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for orml_vesting +//! Autogenerated weights for `orml_vesting` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-01, STEPS: 5, REPEAT: 20, LOW RANGE: [], HIGH RANGE: [] -//! EXECUTION: None, WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! DATE: 2023-12-06, STEPS: `10`, REPEAT: `30`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: // target/release/basilisk // benchmark // pallet -// --pallet=orml-vesting // --chain=dev +// --steps=10 +// --repeat=30 +// --wasm-execution=compiled +// --heap-pages=4096 +// --template=.maintain/pallet-weight-template-no-back.hbs +// --pallet=orml-vesting +// --output=weights-1.1.0/vesting.rs // --extrinsic=* -// --steps=5 -// --repeat=20 -// --output -// vesting.rs -// --template -// .maintain/pallet-weight-template-no-back.hbs #![allow(unused_parens)] #![allow(unused_imports)] @@ -50,42 +52,59 @@ use orml_vesting::WeightInfo; pub struct BasiliskWeight(PhantomData); impl WeightInfo for BasiliskWeight { - // Storage: Vesting VestingSchedules (r:1 w:1) - // Proof: Vesting VestingSchedules (max_values: None, max_size: Some(469), added: 2944, mode: MaxEncodedLen) - // Storage: System Account (r:2 w:2) - // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - // Storage: Balances Locks (r:1 w:1) - // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) + /// Storage: `Vesting::VestingSchedules` (r:1 w:1) + /// Proof: `Vesting::VestingSchedules` (`max_values`: None, `max_size`: Some(469), added: 2944, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) fn vested_transfer() -> Weight { - // Minimum execution time: 45_615 nanoseconds. - Weight::from_ref_time(46_574_000 as u64) - .saturating_add(T::DbWeight::get().reads(4 as u64)) - .saturating_add(T::DbWeight::get().writes(4 as u64)) + // Proof Size summary in bytes: + // Measured: `1699` + // Estimated: `6196` + // Minimum execution time: 126_454_000 picoseconds. + Weight::from_parts(127_586_000, 6196) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) } - // Storage: Vesting VestingSchedules (r:1 w:1) - // Proof: Vesting VestingSchedules (max_values: None, max_size: Some(469), added: 2944, mode: MaxEncodedLen) - // Storage: Balances Locks (r:1 w:1) - // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) + /// Storage: `Vesting::VestingSchedules` (r:1 w:1) + /// Proof: `Vesting::VestingSchedules` (`max_values`: None, `max_size`: Some(469), added: 2944, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) /// The range of component `i` is `[1, 15]`. fn claim(i: u32) -> Weight { - // Minimum execution time: 37_873 nanoseconds. - Weight::from_ref_time(38_786_783 as u64) // Standard Error: 9_805 - .saturating_add(Weight::from_ref_time(83_184 as u64).saturating_mul(i as u64)) - .saturating_add(T::DbWeight::get().reads(2 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) + // Proof Size summary in bytes: + // Measured: `1840 + i * (18 ±0)` + // Estimated: `4764` + // Minimum execution time: 70_242_000 picoseconds. + Weight::from_parts(72_046_048, 4764) + // Standard Error: 8_526 + .saturating_add(Weight::from_parts(113_690, 0).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } - // Storage: System Account (r:1 w:1) - // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - // Storage: Balances Locks (r:1 w:1) - // Proof: Balances Locks (max_values: None, max_size: Some(1299), added: 3774, mode: MaxEncodedLen) - // Storage: Vesting VestingSchedules (r:0 w:1) - // Proof: Vesting VestingSchedules (max_values: None, max_size: Some(469), added: 2944, mode: MaxEncodedLen) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Balances::Locks` (r:1 w:1) + /// Proof: `Balances::Locks` (`max_values`: None, `max_size`: Some(1299), added: 3774, mode: `MaxEncodedLen`) + /// Storage: `Balances::Freezes` (r:1 w:0) + /// Proof: `Balances::Freezes` (`max_values`: None, `max_size`: Some(49), added: 2524, mode: `MaxEncodedLen`) + /// Storage: `Vesting::VestingSchedules` (r:0 w:1) + /// Proof: `Vesting::VestingSchedules` (`max_values`: None, `max_size`: Some(469), added: 2944, mode: `MaxEncodedLen`) /// The range of component `i` is `[1, 15]`. fn update_vesting_schedules(i: u32) -> Weight { - // Minimum execution time: 28_006 nanoseconds. - Weight::from_ref_time(28_815_764 as u64) // Standard Error: 7_802 - .saturating_add(Weight::from_ref_time(95_130 as u64).saturating_mul(i as u64)) - .saturating_add(T::DbWeight::get().reads(2 as u64)) - .saturating_add(T::DbWeight::get().writes(3 as u64)) + // Proof Size summary in bytes: + // Measured: `1492` + // Estimated: `4764` + // Minimum execution time: 60_347_000 picoseconds. + Weight::from_parts(61_015_266, 4764) + // Standard Error: 3_669 + .saturating_add(Weight::from_parts(96_340, 0).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } } diff --git a/runtime/basilisk/src/weights/xcm.rs b/runtime/basilisk/src/weights/xcm.rs index ae5498507cb..22613b8ee0a 100644 --- a/runtime/basilisk/src/weights/xcm.rs +++ b/runtime/basilisk/src/weights/xcm.rs @@ -15,25 +15,27 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_xcm +//! Autogenerated weights for `pallet_xcm` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-01, STEPS: 5, REPEAT: 20, LOW RANGE: [], HIGH RANGE: [] -//! EXECUTION: None, WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! DATE: 2023-12-06, STEPS: `10`, REPEAT: `30`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: // target/release/basilisk // benchmark // pallet -// --pallet=pallet-xcm // --chain=dev +// --steps=10 +// --repeat=30 +// --wasm-execution=compiled +// --heap-pages=4096 +// --template=.maintain/pallet-weight-template-no-back.hbs +// --pallet=pallet-xcm +// --output=weights-1.1.0/xcm.rs // --extrinsic=* -// --steps=5 -// --repeat=20 -// --output -// xcm.rs -// --template -// .maintain/pallet-weight-template-no-back.hbs #![allow(unused_parens)] #![allow(unused_imports)] @@ -50,162 +52,216 @@ use pallet_xcm::WeightInfo; pub struct BasiliskWeight(PhantomData); impl WeightInfo for BasiliskWeight { - // Storage: PolkadotXcm SupportedVersion (r:1 w:0) - // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) - // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) - // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) - // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) - // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) - // Storage: ParachainSystem HostConfiguration (r:1 w:0) - // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) - // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn send() -> Weight { - // Minimum execution time: 17_707 nanoseconds. - Weight::from_ref_time(18_429_000 as u64) - .saturating_add(T::DbWeight::get().reads(5 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) + // Proof Size summary in bytes: + // Measured: `145` + // Estimated: `3610` + // Minimum execution time: 39_075_000 picoseconds. + Weight::from_parts(39_562_000, 3610) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } - // Storage: Benchmark Override (r:0 w:0) - // Proof Skipped: Benchmark Override (max_values: None, max_size: None, mode: Measured) + /// Storage: `Benchmark::Override` (r:0 w:0) + /// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) fn teleport_assets() -> Weight { - // Minimum execution time: 18_446_744_073_709_551 nanoseconds. - Weight::from_ref_time(18_446_744_073_709_551_000 as u64) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 18_446_744_073_709_551_000 picoseconds. + Weight::from_parts(18_446_744_073_709_551_000, 0) } - // Storage: ParachainInfo ParachainId (r:1 w:0) - // Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) + /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) fn reserve_transfer_assets() -> Weight { - // Minimum execution time: 12_747 nanoseconds. - Weight::from_ref_time(13_188_000 as u64).saturating_add(T::DbWeight::get().reads(1 as u64)) + // Proof Size summary in bytes: + // Measured: `69` + // Estimated: `1489` + // Minimum execution time: 32_094_000 picoseconds. + Weight::from_parts(32_796_000, 1489).saturating_add(T::DbWeight::get().reads(1_u64)) } fn execute() -> Weight { - // Minimum execution time: 5_205 nanoseconds. - Weight::from_ref_time(5_338_000 as u64) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 13_914_000 picoseconds. + Weight::from_parts(14_172_000, 0) } - // Storage: PolkadotXcm SupportedVersion (r:0 w:1) - // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::SupportedVersion` (r:0 w:1) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) fn force_xcm_version() -> Weight { - // Minimum execution time: 5_677 nanoseconds. - Weight::from_ref_time(5_857_000 as u64).saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 14_572_000 picoseconds. + Weight::from_parts(14_969_000, 0).saturating_add(T::DbWeight::get().writes(1_u64)) } - // Storage: PolkadotXcm SafeXcmVersion (r:0 w:1) - // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:0 w:1) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn force_default_xcm_version() -> Weight { - // Minimum execution time: 1_786 nanoseconds. - Weight::from_ref_time(1_915_000 as u64).saturating_add(T::DbWeight::get().writes(1 as u64)) - } - // Storage: PolkadotXcm VersionNotifiers (r:1 w:1) - // Proof Skipped: PolkadotXcm VersionNotifiers (max_values: None, max_size: None, mode: Measured) - // Storage: PolkadotXcm QueryCounter (r:1 w:1) - // Proof Skipped: PolkadotXcm QueryCounter (max_values: Some(1), max_size: None, mode: Measured) - // Storage: PolkadotXcm SupportedVersion (r:1 w:0) - // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) - // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) - // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) - // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) - // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) - // Storage: ParachainSystem HostConfiguration (r:1 w:0) - // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) - // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) - // Storage: PolkadotXcm Queries (r:0 w:1) - // Proof Skipped: PolkadotXcm Queries (max_values: None, max_size: None, mode: Measured) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 5_151_000 picoseconds. + Weight::from_parts(5_322_000, 0).saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `PolkadotXcm::VersionNotifiers` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1) + /// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::Queries` (r:0 w:1) + /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) fn force_subscribe_version_notify() -> Weight { - // Minimum execution time: 22_986 nanoseconds. - Weight::from_ref_time(23_583_000 as u64) - .saturating_add(T::DbWeight::get().reads(7 as u64)) - .saturating_add(T::DbWeight::get().writes(5 as u64)) - } - // Storage: PolkadotXcm VersionNotifiers (r:1 w:1) - // Proof Skipped: PolkadotXcm VersionNotifiers (max_values: None, max_size: None, mode: Measured) - // Storage: PolkadotXcm SupportedVersion (r:1 w:0) - // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) - // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) - // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) - // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) - // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) - // Storage: ParachainSystem HostConfiguration (r:1 w:0) - // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) - // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) - // Storage: PolkadotXcm Queries (r:0 w:1) - // Proof Skipped: PolkadotXcm Queries (max_values: None, max_size: None, mode: Measured) + // Proof Size summary in bytes: + // Measured: `145` + // Estimated: `3610` + // Minimum execution time: 45_415_000 picoseconds. + Weight::from_parts(45_936_000, 3610) + .saturating_add(T::DbWeight::get().reads(7_u64)) + .saturating_add(T::DbWeight::get().writes(5_u64)) + } + /// Storage: `PolkadotXcm::VersionNotifiers` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::Queries` (r:0 w:1) + /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) fn force_unsubscribe_version_notify() -> Weight { - // Minimum execution time: 27_669 nanoseconds. - Weight::from_ref_time(28_290_000 as u64) - .saturating_add(T::DbWeight::get().reads(6 as u64)) - .saturating_add(T::DbWeight::get().writes(4 as u64)) + // Proof Size summary in bytes: + // Measured: `328` + // Estimated: `3793` + // Minimum execution time: 46_012_000 picoseconds. + Weight::from_parts(46_403_000, 3793) + .saturating_add(T::DbWeight::get().reads(6_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) } - // Storage: PolkadotXcm SupportedVersion (r:4 w:2) - // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::XcmExecutionSuspended` (r:0 w:1) + /// Proof: `PolkadotXcm::XcmExecutionSuspended` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn force_suspension() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 5_159_000 picoseconds. + Weight::from_parts(5_314_000, 0).saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `PolkadotXcm::SupportedVersion` (r:4 w:2) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) fn migrate_supported_version() -> Weight { - // Minimum execution time: 16_265 nanoseconds. - Weight::from_ref_time(17_001_000 as u64) - .saturating_add(T::DbWeight::get().reads(4 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) + // Proof Size summary in bytes: + // Measured: `167` + // Estimated: `11057` + // Minimum execution time: 24_185_000 picoseconds. + Weight::from_parts(24_797_000, 11057) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } - // Storage: PolkadotXcm VersionNotifiers (r:4 w:2) - // Proof Skipped: PolkadotXcm VersionNotifiers (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::VersionNotifiers` (r:4 w:2) + /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) fn migrate_version_notifiers() -> Weight { - // Minimum execution time: 16_608 nanoseconds. - Weight::from_ref_time(17_024_000 as u64) - .saturating_add(T::DbWeight::get().reads(4 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) + // Proof Size summary in bytes: + // Measured: `171` + // Estimated: `11061` + // Minimum execution time: 24_210_000 picoseconds. + Weight::from_parts(24_818_000, 11061) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) } - // Storage: PolkadotXcm VersionNotifyTargets (r:5 w:0) - // Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:0) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) fn already_notified_target() -> Weight { - // Minimum execution time: 19_984 nanoseconds. - Weight::from_ref_time(20_480_000 as u64).saturating_add(T::DbWeight::get().reads(5 as u64)) - } - // Storage: PolkadotXcm VersionNotifyTargets (r:2 w:1) - // Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) - // Storage: PolkadotXcm SupportedVersion (r:1 w:0) - // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) - // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) - // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) - // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) - // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) - // Storage: ParachainSystem HostConfiguration (r:1 w:0) - // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) - // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + // Proof Size summary in bytes: + // Measured: `178` + // Estimated: `13543` + // Minimum execution time: 25_280_000 picoseconds. + Weight::from_parts(25_704_000, 13543).saturating_add(T::DbWeight::get().reads(5_u64)) + } + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:2 w:1) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn notify_current_targets() -> Weight { - // Minimum execution time: 25_037 nanoseconds. - Weight::from_ref_time(25_651_000 as u64) - .saturating_add(T::DbWeight::get().reads(7 as u64)) - .saturating_add(T::DbWeight::get().writes(3 as u64)) + // Proof Size summary in bytes: + // Measured: `212` + // Estimated: `6152` + // Minimum execution time: 41_585_000 picoseconds. + Weight::from_parts(42_032_000, 6152) + .saturating_add(T::DbWeight::get().reads(7_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } - // Storage: PolkadotXcm VersionNotifyTargets (r:3 w:0) - // Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:3 w:0) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) fn notify_target_migration_fail() -> Weight { - // Minimum execution time: 8_072 nanoseconds. - Weight::from_ref_time(8_298_000 as u64).saturating_add(T::DbWeight::get().reads(3 as u64)) + // Proof Size summary in bytes: + // Measured: `172` + // Estimated: `8587` + // Minimum execution time: 13_594_000 picoseconds. + Weight::from_parts(13_919_000, 8587).saturating_add(T::DbWeight::get().reads(3_u64)) } - // Storage: PolkadotXcm VersionNotifyTargets (r:4 w:2) - // Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) fn migrate_version_notify_targets() -> Weight { - // Minimum execution time: 17_316 nanoseconds. - Weight::from_ref_time(17_739_000 as u64) - .saturating_add(T::DbWeight::get().reads(4 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) - } - // Storage: PolkadotXcm VersionNotifyTargets (r:4 w:2) - // Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) - // Storage: PolkadotXcm SupportedVersion (r:1 w:0) - // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) - // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) - // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) - // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) - // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) - // Storage: ParachainSystem HostConfiguration (r:1 w:0) - // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) - // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + // Proof Size summary in bytes: + // Measured: `178` + // Estimated: `11068` + // Minimum execution time: 25_110_000 picoseconds. + Weight::from_parts(25_562_000, 11068) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2) + /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) + /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) + /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn migrate_and_notify_old_targets() -> Weight { - // Minimum execution time: 28_326 nanoseconds. - Weight::from_ref_time(28_905_000 as u64) - .saturating_add(T::DbWeight::get().reads(9 as u64)) - .saturating_add(T::DbWeight::get().writes(4 as u64)) + // Proof Size summary in bytes: + // Measured: `254` + // Estimated: `11144` + // Minimum execution time: 51_873_000 picoseconds. + Weight::from_parts(52_527_000, 11144) + .saturating_add(T::DbWeight::get().reads(9_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) } } diff --git a/runtime/basilisk/src/weights/xcmp_queue.rs b/runtime/basilisk/src/weights/xcmp_queue.rs index 8f6af37080a..d7a7740c2c4 100644 --- a/runtime/basilisk/src/weights/xcmp_queue.rs +++ b/runtime/basilisk/src/weights/xcmp_queue.rs @@ -15,11 +15,13 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for cumulus_pallet_xcmp_queue +//! Autogenerated weights for `cumulus_pallet_xcmp_queue` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-07-24, STEPS: 10, REPEAT: 30, LOW RANGE: [], HIGH RANGE: [] -//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! DATE: 2023-12-06, STEPS: `10`, REPEAT: `30`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: // target/release/basilisk @@ -28,12 +30,11 @@ // --chain=dev // --steps=10 // --repeat=30 -// --execution=wasm // --wasm-execution=compiled // --heap-pages=4096 // --template=.maintain/pallet-weight-template-no-back.hbs // --pallet=cumulus-pallet-xcmp-queue -// --output=xcmp_queue.rs +// --output=weights-1.1.0/xcmp_queue.rs // --extrinsic=* #![allow(unused_parens)] @@ -51,44 +52,104 @@ use cumulus_pallet_xcmp_queue::weights::WeightInfo; pub struct BasiliskWeight(PhantomData); impl WeightInfo for BasiliskWeight { - // Storage: XcmpQueue QueueConfig (r:1 w:1) - // Proof Skipped: XcmpQueue QueueConfig (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `XcmpQueue::QueueConfig` (r:1 w:1) + /// Proof: `XcmpQueue::QueueConfig` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn set_config_with_u32() -> Weight { - // Minimum execution time: 8_406 nanoseconds. - Weight::from_ref_time(8_709_000 as u64) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Size summary in bytes: + // Measured: `109` + // Estimated: `1594` + // Minimum execution time: 8_755_000 picoseconds. + Weight::from_parts(8_941_000, 1594) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } - // Storage: XcmpQueue QueueConfig (r:1 w:1) - // Proof Skipped: XcmpQueue QueueConfig (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: `XcmpQueue::QueueConfig` (r:1 w:1) + /// Proof: `XcmpQueue::QueueConfig` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn set_config_with_weight() -> Weight { - // Minimum execution time: 8_605 nanoseconds. - Weight::from_ref_time(8_861_000 as u64) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Size summary in bytes: + // Measured: `109` + // Estimated: `1594` + // Minimum execution time: 8_896_000 picoseconds. + Weight::from_parts(9_059_000, 1594) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } - // Storage: XcmpQueue QueueConfig (r:1 w:0) - // Proof Skipped: XcmpQueue QueueConfig (max_values: Some(1), max_size: None, mode: Measured) - // Storage: XcmpQueue DeferredXcmMessages (r:1 w:1) - // Proof Skipped: XcmpQueue DeferredXcmMessages (max_values: None, max_size: None, mode: Measured) - // Storage: XcmpQueue CounterForOverweight (r:1 w:1) - // Proof: XcmpQueue CounterForOverweight (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - // Storage: XcmpQueue OverweightCount (r:1 w:1) - // Proof Skipped: XcmpQueue OverweightCount (max_values: Some(1), max_size: None, mode: Measured) - // Storage: XcmpQueue Overweight (r:100 w:100) - // Proof Skipped: XcmpQueue Overweight (max_values: None, max_size: None, mode: Measured) - fn service_deferred() -> Weight { - // Minimum execution time: 192_930_456 nanoseconds. - Weight::from_ref_time(193_470_028_000 as u64) - .saturating_add(T::DbWeight::get().reads(104 as u64)) - .saturating_add(T::DbWeight::get().writes(103 as u64)) + /// Storage: `XcmpQueue::QueueConfig` (r:1 w:0) + /// Proof: `XcmpQueue::QueueConfig` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `XcmpQueue::QueueSuspended` (r:1 w:0) + /// Proof: `XcmpQueue::QueueSuspended` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `XcmpQueue::DeferredQueueSuspended` (r:1 w:0) + /// Proof: `XcmpQueue::DeferredQueueSuspended` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `XcmpQueue::DeferredIndices` (r:1 w:1) + /// Proof: `XcmpQueue::DeferredIndices` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `XcmpQueue::DeferredMessageBuckets` (r:3 w:3) + /// Proof: `XcmpQueue::DeferredMessageBuckets` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `XcmpQueue::CounterForOverweight` (r:1 w:1) + /// Proof: `XcmpQueue::CounterForOverweight` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `XcmpQueue::OverweightCount` (r:1 w:1) + /// Proof: `XcmpQueue::OverweightCount` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `XcmpQueue::Overweight` (r:60 w:60) + /// Proof: `XcmpQueue::Overweight` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `b` is `[1, 3]`. + fn service_deferred(b: u32) -> Weight { + // Proof Size summary in bytes: + // Measured: `6242 + b * (324357 ±0)` + // Estimated: `9707 + b * (373857 ±0)` + // Minimum execution time: 33_142_672_000 picoseconds. + Weight::from_parts(33_268_386_000, 9707) + // Standard Error: 602_125_184 + .saturating_add(Weight::from_parts(15_702_864_393, 0).saturating_mul(b.into())) + .saturating_add(T::DbWeight::get().reads(6_u64)) + .saturating_add(T::DbWeight::get().reads((21_u64).saturating_mul(b.into()))) + .saturating_add(T::DbWeight::get().writes(3_u64)) + .saturating_add(T::DbWeight::get().writes((21_u64).saturating_mul(b.into()))) + .saturating_add(Weight::from_parts(0, 373857).saturating_mul(b.into())) } - // Storage: XcmpQueue DeferredXcmMessages (r:1 w:1) - // Proof Skipped: XcmpQueue DeferredXcmMessages (max_values: None, max_size: None, mode: Measured) - fn discard_deferred() -> Weight { - // Minimum execution time: 125_025_318 nanoseconds. - Weight::from_ref_time(125_304_870_000 as u64) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + /// Storage: `XcmpQueue::DeferredMessageBuckets` (r:1 w:1) + /// Proof: `XcmpQueue::DeferredMessageBuckets` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `m` is `[1, 20]`. + fn discard_deferred_bucket(m: u32) -> Weight { + // Proof Size summary in bytes: + // Measured: `219 + m * (16216 ±0)` + // Estimated: `3683 + m * (16216 ±0)` + // Minimum execution time: 1_281_948_000 picoseconds. + Weight::from_parts(243_099_051, 3683) + // Standard Error: 419_944 + .saturating_add(Weight::from_parts(1_090_047_884, 0).saturating_mul(m.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + .saturating_add(Weight::from_parts(0, 16216).saturating_mul(m.into())) + } + /// Storage: `XcmpQueue::DeferredMessageBuckets` (r:1 w:1) + /// Proof: `XcmpQueue::DeferredMessageBuckets` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `m` is `[1, 20]`. + fn discard_deferred_individual(m: u32) -> Weight { + // Proof Size summary in bytes: + // Measured: `219 + m * (16216 ±0)` + // Estimated: `3683 + m * (16216 ±0)` + // Minimum execution time: 1_341_620_000 picoseconds. + Weight::from_parts(105_527_197, 3683) + // Standard Error: 366_172 + .saturating_add(Weight::from_parts(1_214_179_345, 0).saturating_mul(m.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + .saturating_add(Weight::from_parts(0, 16216).saturating_mul(m.into())) + } + /// Storage: `XcmpQueue::DeferredIndices` (r:1 w:1) + /// Proof: `XcmpQueue::DeferredIndices` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `XcmpQueue::DeferredMessageBuckets` (r:1 w:1) + /// Proof: `XcmpQueue::DeferredMessageBuckets` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// The range of component `m` is `[1, 20]`. + fn try_place_in_deferred_queue(m: u32) -> Weight { + // Proof Size summary in bytes: + // Measured: `0 + m * (16216 ±0)` + // Estimated: `9691 + m * (15020 ±55)` + // Minimum execution time: 107_001_000 picoseconds. + Weight::from_parts(123_947_871, 9691) + // Standard Error: 202_249 + .saturating_add(Weight::from_parts(6_781_886, 0).saturating_mul(m.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + .saturating_add(Weight::from_parts(0, 15020).saturating_mul(m.into())) } } diff --git a/runtime/basilisk/src/weights/xyk.rs b/runtime/basilisk/src/weights/xyk.rs index 1c11448be92..0793385c1e9 100644 --- a/runtime/basilisk/src/weights/xyk.rs +++ b/runtime/basilisk/src/weights/xyk.rs @@ -15,25 +15,27 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_xyk +//! Autogenerated weights for `pallet_xyk` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-01, STEPS: 5, REPEAT: 20, LOW RANGE: [], HIGH RANGE: [] -//! EXECUTION: None, WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! DATE: 2023-12-06, STEPS: `10`, REPEAT: `30`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: // target/release/basilisk // benchmark // pallet -// --pallet=pallet-xyk // --chain=dev +// --steps=10 +// --repeat=30 +// --wasm-execution=compiled +// --heap-pages=4096 +// --template=.maintain/pallet-weight-template-no-back.hbs +// --pallet=pallet-xyk +// --output=weights-1.1.0/xyk.rs // --extrinsic=* -// --steps=5 -// --repeat=20 -// --output -// xyk.rs -// --template -// .maintain/pallet-weight-template-no-back.hbs #![allow(unused_parens)] #![allow(unused_imports)] @@ -50,102 +52,179 @@ use pallet_xyk::weights::WeightInfo; pub struct BasiliskWeight(PhantomData); impl WeightInfo for BasiliskWeight { - // Storage: LBP PoolData (r:1 w:0) - // Proof Skipped: LBP PoolData (max_values: None, max_size: None, mode: Measured) - // Storage: XYK ShareToken (r:1 w:1) - // Proof: XYK ShareToken (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) - // Storage: Tokens Accounts (r:5 w:5) - // Proof: Tokens Accounts (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen) - // Storage: AssetRegistry AssetIds (r:1 w:1) - // Proof Skipped: AssetRegistry AssetIds (max_values: None, max_size: None, mode: Measured) - // Storage: AssetRegistry NextAssetId (r:1 w:1) - // Proof Skipped: AssetRegistry NextAssetId (max_values: Some(1), max_size: None, mode: Measured) - // Storage: AssetRegistry Assets (r:2 w:1) - // Proof Skipped: AssetRegistry Assets (max_values: None, max_size: None, mode: Measured) - // Storage: System Account (r:2 w:2) - // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - // Storage: MultiTransactionPayment AccountCurrencyMap (r:2 w:1) - // Proof: MultiTransactionPayment AccountCurrencyMap (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) - // Storage: MultiTransactionPayment AcceptedCurrencies (r:1 w:0) - // Proof: MultiTransactionPayment AcceptedCurrencies (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) - // Storage: Tokens TotalIssuance (r:1 w:1) - // Proof: Tokens TotalIssuance (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) - // Storage: Duster AccountBlacklist (r:0 w:1) - // Proof Skipped: Duster AccountBlacklist (max_values: None, max_size: None, mode: Measured) - // Storage: XYK TotalLiquidity (r:0 w:1) - // Proof: XYK TotalLiquidity (max_values: None, max_size: Some(64), added: 2539, mode: MaxEncodedLen) - // Storage: XYK PoolAssets (r:0 w:1) - // Proof: XYK PoolAssets (max_values: None, max_size: Some(56), added: 2531, mode: MaxEncodedLen) + /// Storage: `LBP::PoolData` (r:1 w:0) + /// Proof: `LBP::PoolData` (`max_values`: None, `max_size`: Some(163), added: 2638, mode: `MaxEncodedLen`) + /// Storage: `XYK::ShareToken` (r:1 w:1) + /// Proof: `XYK::ShareToken` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `Tokens::Accounts` (r:5 w:5) + /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::AssetIds` (r:1 w:1) + /// Proof: `AssetRegistry::AssetIds` (`max_values`: None, `max_size`: Some(53), added: 2528, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::NextAssetId` (r:1 w:1) + /// Proof: `AssetRegistry::NextAssetId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:2 w:1) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `MultiTransactionPayment::AccountCurrencyMap` (r:2 w:1) + /// Proof: `MultiTransactionPayment::AccountCurrencyMap` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `MultiTransactionPayment::AcceptedCurrencies` (r:1 w:0) + /// Proof: `MultiTransactionPayment::AcceptedCurrencies` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) + /// Storage: `Tokens::TotalIssuance` (r:1 w:1) + /// Proof: `Tokens::TotalIssuance` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) + /// Storage: `Duster::AccountBlacklist` (r:0 w:1) + /// Proof: `Duster::AccountBlacklist` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `XYK::TotalLiquidity` (r:0 w:1) + /// Proof: `XYK::TotalLiquidity` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`) + /// Storage: `XYK::PoolAssets` (r:0 w:1) + /// Proof: `XYK::PoolAssets` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) fn create_pool() -> Weight { - // Minimum execution time: 95_546 nanoseconds. - Weight::from_ref_time(96_295_000 as u64) - .saturating_add(T::DbWeight::get().reads(17 as u64)) - .saturating_add(T::DbWeight::get().writes(16 as u64)) + // Proof Size summary in bytes: + // Measured: `1166` + // Estimated: `13905` + // Minimum execution time: 203_748_000 picoseconds. + Weight::from_parts(204_681_000, 13905) + .saturating_add(T::DbWeight::get().reads(17_u64)) + .saturating_add(T::DbWeight::get().writes(16_u64)) } - // Storage: XYK ShareToken (r:1 w:0) - // Proof: XYK ShareToken (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) - // Storage: Tokens Accounts (r:5 w:5) - // Proof: Tokens Accounts (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen) - // Storage: XYK TotalLiquidity (r:1 w:1) - // Proof: XYK TotalLiquidity (max_values: None, max_size: Some(64), added: 2539, mode: MaxEncodedLen) - // Storage: AssetRegistry Assets (r:3 w:0) - // Proof Skipped: AssetRegistry Assets (max_values: None, max_size: None, mode: Measured) - // Storage: System Account (r:1 w:1) - // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - // Storage: Tokens TotalIssuance (r:1 w:1) - // Proof: Tokens TotalIssuance (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) - // Storage: MultiTransactionPayment AccountCurrencyMap (r:1 w:0) - // Proof: MultiTransactionPayment AccountCurrencyMap (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Storage: `XYK::ShareToken` (r:1 w:0) + /// Proof: `XYK::ShareToken` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `Tokens::Accounts` (r:5 w:5) + /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Storage: `XYK::TotalLiquidity` (r:1 w:1) + /// Proof: `XYK::TotalLiquidity` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:3 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Tokens::TotalIssuance` (r:1 w:1) + /// Proof: `Tokens::TotalIssuance` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) + /// Storage: `MultiTransactionPayment::AccountCurrencyMap` (r:1 w:0) + /// Proof: `MultiTransactionPayment::AccountCurrencyMap` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `EmaOracle::Accumulator` (r:1 w:1) + /// Proof: `EmaOracle::Accumulator` (`max_values`: Some(1), `max_size`: Some(4441), added: 4936, mode: `MaxEncodedLen`) fn add_liquidity() -> Weight { - // Minimum execution time: 85_059 nanoseconds. - Weight::from_ref_time(86_161_000 as u64) - .saturating_add(T::DbWeight::get().reads(13 as u64)) - .saturating_add(T::DbWeight::get().writes(8 as u64)) + // Proof Size summary in bytes: + // Measured: `1731` + // Estimated: `13905` + // Minimum execution time: 175_371_000 picoseconds. + Weight::from_parts(176_317_000, 13905) + .saturating_add(T::DbWeight::get().reads(14_u64)) + .saturating_add(T::DbWeight::get().writes(9_u64)) } - // Storage: XYK ShareToken (r:1 w:0) - // Proof: XYK ShareToken (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) - // Storage: XYK TotalLiquidity (r:1 w:1) - // Proof: XYK TotalLiquidity (max_values: None, max_size: Some(64), added: 2539, mode: MaxEncodedLen) - // Storage: Tokens Accounts (r:5 w:5) - // Proof: Tokens Accounts (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen) - // Storage: AssetRegistry Assets (r:3 w:0) - // Proof Skipped: AssetRegistry Assets (max_values: None, max_size: None, mode: Measured) - // Storage: System Account (r:1 w:0) - // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - // Storage: Tokens TotalIssuance (r:1 w:1) - // Proof: Tokens TotalIssuance (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) + /// Storage: `XYK::ShareToken` (r:1 w:0) + /// Proof: `XYK::ShareToken` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `XYK::TotalLiquidity` (r:1 w:1) + /// Proof: `XYK::TotalLiquidity` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`) + /// Storage: `Tokens::Accounts` (r:5 w:5) + /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:3 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:0) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Tokens::TotalIssuance` (r:1 w:1) + /// Proof: `Tokens::TotalIssuance` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) + /// Storage: `EmaOracle::Accumulator` (r:1 w:1) + /// Proof: `EmaOracle::Accumulator` (`max_values`: Some(1), `max_size`: Some(4441), added: 4936, mode: `MaxEncodedLen`) fn remove_liquidity() -> Weight { - // Minimum execution time: 78_848 nanoseconds. - Weight::from_ref_time(79_720_000 as u64) - .saturating_add(T::DbWeight::get().reads(12 as u64)) - .saturating_add(T::DbWeight::get().writes(7 as u64)) + // Proof Size summary in bytes: + // Measured: `1715` + // Estimated: `13905` + // Minimum execution time: 166_551_000 picoseconds. + Weight::from_parts(168_056_000, 13905) + .saturating_add(T::DbWeight::get().reads(13_u64)) + .saturating_add(T::DbWeight::get().writes(8_u64)) } - // Storage: XYK ShareToken (r:1 w:0) - // Proof: XYK ShareToken (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) - // Storage: Tokens Accounts (r:4 w:4) - // Proof: Tokens Accounts (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen) - // Storage: AssetRegistry Assets (r:2 w:0) - // Proof Skipped: AssetRegistry Assets (max_values: None, max_size: None, mode: Measured) - // Storage: System Account (r:2 w:0) - // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `XYK::ShareToken` (r:1 w:0) + /// Proof: `XYK::ShareToken` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `Tokens::Accounts` (r:4 w:4) + /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:2 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:0) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `EmaOracle::Accumulator` (r:1 w:1) + /// Proof: `EmaOracle::Accumulator` (`max_values`: Some(1), `max_size`: Some(4441), added: 4936, mode: `MaxEncodedLen`) fn sell() -> Weight { - // Minimum execution time: 62_381 nanoseconds. - Weight::from_ref_time(62_961_000 as u64) - .saturating_add(T::DbWeight::get().reads(9 as u64)) - .saturating_add(T::DbWeight::get().writes(4 as u64)) + // Proof Size summary in bytes: + // Measured: `1420` + // Estimated: `11322` + // Minimum execution time: 124_550_000 picoseconds. + Weight::from_parts(125_458_000, 11322) + .saturating_add(T::DbWeight::get().reads(10_u64)) + .saturating_add(T::DbWeight::get().writes(5_u64)) } - // Storage: XYK ShareToken (r:1 w:0) - // Proof: XYK ShareToken (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) - // Storage: Tokens Accounts (r:4 w:4) - // Proof: Tokens Accounts (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen) - // Storage: AssetRegistry Assets (r:2 w:0) - // Proof Skipped: AssetRegistry Assets (max_values: None, max_size: None, mode: Measured) - // Storage: System Account (r:2 w:0) - // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `XYK::ShareToken` (r:1 w:0) + /// Proof: `XYK::ShareToken` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `Tokens::Accounts` (r:4 w:4) + /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:2 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:0) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `EmaOracle::Accumulator` (r:1 w:1) + /// Proof: `EmaOracle::Accumulator` (`max_values`: Some(1), `max_size`: Some(4441), added: 4936, mode: `MaxEncodedLen`) fn buy() -> Weight { - // Minimum execution time: 61_990 nanoseconds. - Weight::from_ref_time(63_177_000 as u64) - .saturating_add(T::DbWeight::get().reads(9 as u64)) - .saturating_add(T::DbWeight::get().writes(4 as u64)) + // Proof Size summary in bytes: + // Measured: `1420` + // Estimated: `11322` + // Minimum execution time: 123_553_000 picoseconds. + Weight::from_parts(124_848_000, 11322) + .saturating_add(T::DbWeight::get().reads(10_u64)) + .saturating_add(T::DbWeight::get().writes(5_u64)) + } + /// Storage: `XYK::ShareToken` (r:1 w:0) + /// Proof: `XYK::ShareToken` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `Tokens::Accounts` (r:4 w:4) + /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:2 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:0) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `EmaOracle::Accumulator` (r:1 w:1) + /// Proof: `EmaOracle::Accumulator` (`max_values`: Some(1), `max_size`: Some(4441), added: 4936, mode: `MaxEncodedLen`) + /// The range of component `c` is `[1, 2]`. + /// The range of component `e` is `[0, 1]`. + fn router_execution_sell(c: u32, e: u32) -> Weight { + // Proof Size summary in bytes: + // Measured: `648 + e * (772 ±0)` + // Estimated: `6156 + e * (5166 ±213_489_293_787_578_112)` + // Minimum execution time: 21_419_000 picoseconds. + Weight::from_parts(5_368_826, 6156) + // Standard Error: 43_472 + .saturating_add(Weight::from_parts(8_257_461, 0).saturating_mul(c.into())) + // Standard Error: 43_472 + .saturating_add(Weight::from_parts(111_328_550, 0).saturating_mul(e.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().reads((7_u64).saturating_mul(e.into()))) + .saturating_add(T::DbWeight::get().writes((5_u64).saturating_mul(e.into()))) + .saturating_add(Weight::from_parts(0, 5166).saturating_mul(e.into())) + } + /// Storage: `XYK::ShareToken` (r:1 w:0) + /// Proof: `XYK::ShareToken` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `Tokens::Accounts` (r:4 w:4) + /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:2 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:0) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `EmaOracle::Accumulator` (r:1 w:1) + /// Proof: `EmaOracle::Accumulator` (`max_values`: Some(1), `max_size`: Some(4441), added: 4936, mode: `MaxEncodedLen`) + /// The range of component `c` is `[1, 3]`. + /// The range of component `e` is `[0, 1]`. + fn router_execution_buy(c: u32, e: u32) -> Weight { + // Proof Size summary in bytes: + // Measured: `648 + e * (772 ±0)` + // Estimated: `6156 + e * (5166 ±0)` + // Minimum execution time: 28_991_000 picoseconds. + Weight::from_parts(6_265_074, 6156) + // Standard Error: 32_211 + .saturating_add(Weight::from_parts(7_766_482, 0).saturating_mul(c.into())) + // Standard Error: 54_650 + .saturating_add(Weight::from_parts(110_694_702, 0).saturating_mul(e.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().reads((7_u64).saturating_mul(e.into()))) + .saturating_add(T::DbWeight::get().writes((5_u64).saturating_mul(e.into()))) + .saturating_add(Weight::from_parts(0, 5166).saturating_mul(e.into())) } } diff --git a/runtime/basilisk/src/weights/xyk_liquidity_mining.rs b/runtime/basilisk/src/weights/xyk_liquidity_mining.rs index 013e02baaf6..761251e72f8 100644 --- a/runtime/basilisk/src/weights/xyk_liquidity_mining.rs +++ b/runtime/basilisk/src/weights/xyk_liquidity_mining.rs @@ -15,25 +15,27 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_xyk_liquidity_mining +//! Autogenerated weights for `pallet_xyk_liquidity_mining` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-06-01, STEPS: 5, REPEAT: 20, LOW RANGE: [], HIGH RANGE: [] -//! EXECUTION: None, WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 +//! DATE: 2023-12-06, STEPS: `10`, REPEAT: `30`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bench-bot`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: // target/release/basilisk // benchmark // pallet -// --pallet=pallet-xyk-liquidity-mining // --chain=dev +// --steps=10 +// --repeat=30 +// --wasm-execution=compiled +// --heap-pages=4096 +// --template=.maintain/pallet-weight-template-no-back.hbs +// --pallet=pallet-xyk-liquidity-mining +// --output=weights-1.1.0/xyk_liquidity_mining.rs // --extrinsic=* -// --steps=5 -// --repeat=20 -// --output -// xyk_liquidity_mining.rs -// --template -// .maintain/pallet-weight-template-no-back.hbs #![allow(unused_parens)] #![allow(unused_imports)] @@ -50,256 +52,292 @@ use pallet_xyk_liquidity_mining::weights::WeightInfo; pub struct BasiliskWeight(PhantomData); impl WeightInfo for BasiliskWeight { - // Storage: AssetRegistry Assets (r:1 w:0) - // Proof Skipped: AssetRegistry Assets (max_values: None, max_size: None, mode: Measured) - // Storage: System Account (r:2 w:2) - // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - // Storage: XYKWarehouseLM FarmSequencer (r:1 w:1) - // Proof: XYKWarehouseLM FarmSequencer (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - // Storage: Duster AccountBlacklist (r:0 w:1) - // Proof Skipped: Duster AccountBlacklist (max_values: None, max_size: None, mode: Measured) - // Storage: XYKWarehouseLM GlobalFarm (r:0 w:1) - // Proof: XYKWarehouseLM GlobalFarm (max_values: None, max_size: Some(205), added: 2680, mode: MaxEncodedLen) + /// Storage: `AssetRegistry::Assets` (r:1 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::FarmSequencer` (r:1 w:1) + /// Proof: `XYKWarehouseLM::FarmSequencer` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Duster::AccountBlacklist` (r:0 w:1) + /// Proof: `Duster::AccountBlacklist` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::GlobalFarm` (r:0 w:1) + /// Proof: `XYKWarehouseLM::GlobalFarm` (`max_values`: None, `max_size`: Some(205), added: 2680, mode: `MaxEncodedLen`) fn create_global_farm() -> Weight { - // Minimum execution time: 33_689 nanoseconds. - Weight::from_ref_time(34_154_000 as u64) - .saturating_add(T::DbWeight::get().reads(4 as u64)) - .saturating_add(T::DbWeight::get().writes(5 as u64)) + // Proof Size summary in bytes: + // Measured: `473` + // Estimated: `6196` + // Minimum execution time: 96_296_000 picoseconds. + Weight::from_parts(97_159_000, 6196) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(5_u64)) } - // Storage: XYKWarehouseLM GlobalFarm (r:1 w:1) - // Proof: XYKWarehouseLM GlobalFarm (max_values: None, max_size: Some(205), added: 2680, mode: MaxEncodedLen) - // Storage: AssetRegistry Assets (r:1 w:0) - // Proof Skipped: AssetRegistry Assets (max_values: None, max_size: None, mode: Measured) - // Storage: System Account (r:2 w:2) - // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `XYKWarehouseLM::GlobalFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::GlobalFarm` (`max_values`: None, `max_size`: Some(205), added: 2680, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:1 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn update_global_farm() -> Weight { - // Minimum execution time: 39_585 nanoseconds. - Weight::from_ref_time(40_429_000 as u64) - .saturating_add(T::DbWeight::get().reads(4 as u64)) - .saturating_add(T::DbWeight::get().writes(3 as u64)) + // Proof Size summary in bytes: + // Measured: `879` + // Estimated: `6196` + // Minimum execution time: 100_686_000 picoseconds. + Weight::from_parts(101_525_000, 6196) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } - // Storage: XYKWarehouseLM GlobalFarm (r:1 w:1) - // Proof: XYKWarehouseLM GlobalFarm (max_values: None, max_size: Some(205), added: 2680, mode: MaxEncodedLen) - // Storage: System Account (r:2 w:2) - // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - // Storage: Duster AccountBlacklist (r:1 w:1) - // Proof Skipped: Duster AccountBlacklist (max_values: None, max_size: None, mode: Measured) + /// Storage: `XYKWarehouseLM::GlobalFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::GlobalFarm` (`max_values`: None, `max_size`: Some(205), added: 2680, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Duster::AccountBlacklist` (r:1 w:1) + /// Proof: `Duster::AccountBlacklist` (`max_values`: None, `max_size`: Some(48), added: 2523, mode: `MaxEncodedLen`) fn terminate_global_farm() -> Weight { - // Minimum execution time: 37_575 nanoseconds. - Weight::from_ref_time(38_117_000 as u64) - .saturating_add(T::DbWeight::get().reads(4 as u64)) - .saturating_add(T::DbWeight::get().writes(4 as u64)) + // Proof Size summary in bytes: + // Measured: `1002` + // Estimated: `6196` + // Minimum execution time: 97_204_000 picoseconds. + Weight::from_parts(97_998_000, 6196) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) } - // Storage: XYK ShareToken (r:1 w:0) - // Proof: XYK ShareToken (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) - // Storage: XYKWarehouseLM GlobalFarm (r:1 w:1) - // Proof: XYKWarehouseLM GlobalFarm (max_values: None, max_size: Some(205), added: 2680, mode: MaxEncodedLen) - // Storage: XYKWarehouseLM ActiveYieldFarm (r:1 w:1) - // Proof: XYKWarehouseLM ActiveYieldFarm (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen) - // Storage: AssetRegistry Assets (r:1 w:0) - // Proof Skipped: AssetRegistry Assets (max_values: None, max_size: None, mode: Measured) - // Storage: System Account (r:2 w:2) - // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - // Storage: XYKWarehouseLM FarmSequencer (r:1 w:1) - // Proof: XYKWarehouseLM FarmSequencer (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - // Storage: XYKWarehouseLM YieldFarm (r:0 w:1) - // Proof: XYKWarehouseLM YieldFarm (max_values: None, max_size: Some(226), added: 2701, mode: MaxEncodedLen) + /// Storage: `XYK::ShareToken` (r:1 w:0) + /// Proof: `XYK::ShareToken` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::GlobalFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::GlobalFarm` (`max_values`: None, `max_size`: Some(205), added: 2680, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::ActiveYieldFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::ActiveYieldFarm` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:1 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::FarmSequencer` (r:1 w:1) + /// Proof: `XYKWarehouseLM::FarmSequencer` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::YieldFarm` (r:0 w:1) + /// Proof: `XYKWarehouseLM::YieldFarm` (`max_values`: None, `max_size`: Some(226), added: 2701, mode: `MaxEncodedLen`) fn create_yield_farm() -> Weight { - // Minimum execution time: 54_800 nanoseconds. - Weight::from_ref_time(55_273_000 as u64) - .saturating_add(T::DbWeight::get().reads(7 as u64)) - .saturating_add(T::DbWeight::get().writes(6 as u64)) + // Proof Size summary in bytes: + // Measured: `1213` + // Estimated: `6196` + // Minimum execution time: 125_043_000 picoseconds. + Weight::from_parts(126_608_000, 6196) + .saturating_add(T::DbWeight::get().reads(7_u64)) + .saturating_add(T::DbWeight::get().writes(6_u64)) } - // Storage: XYK ShareToken (r:1 w:0) - // Proof: XYK ShareToken (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) - // Storage: XYKWarehouseLM ActiveYieldFarm (r:1 w:0) - // Proof: XYKWarehouseLM ActiveYieldFarm (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen) - // Storage: XYKWarehouseLM YieldFarm (r:1 w:1) - // Proof: XYKWarehouseLM YieldFarm (max_values: None, max_size: Some(226), added: 2701, mode: MaxEncodedLen) - // Storage: XYKWarehouseLM GlobalFarm (r:1 w:1) - // Proof: XYKWarehouseLM GlobalFarm (max_values: None, max_size: Some(205), added: 2680, mode: MaxEncodedLen) - // Storage: AssetRegistry Assets (r:1 w:0) - // Proof Skipped: AssetRegistry Assets (max_values: None, max_size: None, mode: Measured) - // Storage: System Account (r:2 w:2) - // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `XYK::ShareToken` (r:1 w:0) + /// Proof: `XYK::ShareToken` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::ActiveYieldFarm` (r:1 w:0) + /// Proof: `XYKWarehouseLM::ActiveYieldFarm` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::YieldFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::YieldFarm` (`max_values`: None, `max_size`: Some(226), added: 2701, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::GlobalFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::GlobalFarm` (`max_values`: None, `max_size`: Some(205), added: 2680, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:1 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn update_yield_farm() -> Weight { - // Minimum execution time: 58_041 nanoseconds. - Weight::from_ref_time(58_900_000 as u64) - .saturating_add(T::DbWeight::get().reads(7 as u64)) - .saturating_add(T::DbWeight::get().writes(4 as u64)) + // Proof Size summary in bytes: + // Measured: `1361` + // Estimated: `6196` + // Minimum execution time: 132_512_000 picoseconds. + Weight::from_parts(133_771_000, 6196) + .saturating_add(T::DbWeight::get().reads(7_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) } - // Storage: XYKWarehouseLM ActiveYieldFarm (r:1 w:1) - // Proof: XYKWarehouseLM ActiveYieldFarm (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen) - // Storage: XYKWarehouseLM YieldFarm (r:1 w:1) - // Proof: XYKWarehouseLM YieldFarm (max_values: None, max_size: Some(226), added: 2701, mode: MaxEncodedLen) - // Storage: XYKWarehouseLM GlobalFarm (r:1 w:1) - // Proof: XYKWarehouseLM GlobalFarm (max_values: None, max_size: Some(205), added: 2680, mode: MaxEncodedLen) - // Storage: AssetRegistry Assets (r:1 w:0) - // Proof Skipped: AssetRegistry Assets (max_values: None, max_size: None, mode: Measured) - // Storage: System Account (r:2 w:2) - // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `XYKWarehouseLM::ActiveYieldFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::ActiveYieldFarm` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::YieldFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::YieldFarm` (`max_values`: None, `max_size`: Some(226), added: 2701, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::GlobalFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::GlobalFarm` (`max_values`: None, `max_size`: Some(205), added: 2680, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:1 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn stop_yield_farm() -> Weight { - // Minimum execution time: 54_077 nanoseconds. - Weight::from_ref_time(54_763_000 as u64) - .saturating_add(T::DbWeight::get().reads(6 as u64)) - .saturating_add(T::DbWeight::get().writes(5 as u64)) + // Proof Size summary in bytes: + // Measured: `1195` + // Estimated: `6196` + // Minimum execution time: 127_486_000 picoseconds. + Weight::from_parts(128_704_000, 6196) + .saturating_add(T::DbWeight::get().reads(6_u64)) + .saturating_add(T::DbWeight::get().writes(5_u64)) } - // Storage: XYKWarehouseLM ActiveYieldFarm (r:1 w:0) - // Proof: XYKWarehouseLM ActiveYieldFarm (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen) - // Storage: XYKWarehouseLM GlobalFarm (r:1 w:1) - // Proof: XYKWarehouseLM GlobalFarm (max_values: None, max_size: Some(205), added: 2680, mode: MaxEncodedLen) - // Storage: XYKWarehouseLM YieldFarm (r:1 w:1) - // Proof: XYKWarehouseLM YieldFarm (max_values: None, max_size: Some(226), added: 2701, mode: MaxEncodedLen) - // Storage: System Account (r:2 w:2) - // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `XYKWarehouseLM::ActiveYieldFarm` (r:1 w:0) + /// Proof: `XYKWarehouseLM::ActiveYieldFarm` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::GlobalFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::GlobalFarm` (`max_values`: None, `max_size`: Some(205), added: 2680, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::YieldFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::YieldFarm` (`max_values`: None, `max_size`: Some(226), added: 2701, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn terminate_yield_farm() -> Weight { - // Minimum execution time: 38_375 nanoseconds. - Weight::from_ref_time(39_596_000 as u64) - .saturating_add(T::DbWeight::get().reads(5 as u64)) - .saturating_add(T::DbWeight::get().writes(4 as u64)) + // Proof Size summary in bytes: + // Measured: `904` + // Estimated: `6196` + // Minimum execution time: 102_124_000 picoseconds. + Weight::from_parts(102_690_000, 6196) + .saturating_add(T::DbWeight::get().reads(5_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) } - // Storage: XYK ShareToken (r:1 w:0) - // Proof: XYK ShareToken (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) - // Storage: Tokens Accounts (r:3 w:2) - // Proof: Tokens Accounts (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen) - // Storage: XYKWarehouseLM YieldFarm (r:1 w:1) - // Proof: XYKWarehouseLM YieldFarm (max_values: None, max_size: Some(226), added: 2701, mode: MaxEncodedLen) - // Storage: XYKWarehouseLM GlobalFarm (r:1 w:1) - // Proof: XYKWarehouseLM GlobalFarm (max_values: None, max_size: Some(205), added: 2680, mode: MaxEncodedLen) - // Storage: AssetRegistry Assets (r:2 w:0) - // Proof Skipped: AssetRegistry Assets (max_values: None, max_size: None, mode: Measured) - // Storage: System Account (r:4 w:3) - // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - // Storage: XYK PoolAssets (r:1 w:0) - // Proof: XYK PoolAssets (max_values: None, max_size: Some(56), added: 2531, mode: MaxEncodedLen) - // Storage: XYK TotalLiquidity (r:1 w:0) - // Proof: XYK TotalLiquidity (max_values: None, max_size: Some(64), added: 2539, mode: MaxEncodedLen) - // Storage: XYKWarehouseLM DepositSequencer (r:1 w:1) - // Proof: XYKWarehouseLM DepositSequencer (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) - // Storage: MultiTransactionPayment AccountCurrencyMap (r:1 w:0) - // Proof: MultiTransactionPayment AccountCurrencyMap (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) - // Storage: NFT Collections (r:1 w:0) - // Proof: NFT Collections (max_values: None, max_size: Some(99), added: 2574, mode: MaxEncodedLen) - // Storage: Uniques Asset (r:1 w:1) - // Proof: Uniques Asset (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) - // Storage: Uniques Class (r:1 w:1) - // Proof: Uniques Class (max_values: None, max_size: Some(190), added: 2665, mode: MaxEncodedLen) - // Storage: Uniques CollectionMaxSupply (r:1 w:0) - // Proof: Uniques CollectionMaxSupply (max_values: None, max_size: Some(36), added: 2511, mode: MaxEncodedLen) - // Storage: AssetRegistry NextAssetId (r:1 w:0) - // Proof Skipped: AssetRegistry NextAssetId (max_values: Some(1), max_size: None, mode: Measured) - // Storage: AssetRegistry LocationAssets (r:1 w:0) - // Proof Skipped: AssetRegistry LocationAssets (max_values: None, max_size: None, mode: Measured) - // Storage: Uniques Account (r:0 w:1) - // Proof: Uniques Account (max_values: None, max_size: Some(112), added: 2587, mode: MaxEncodedLen) - // Storage: NFT Items (r:0 w:1) - // Proof: NFT Items (max_values: None, max_size: Some(122), added: 2597, mode: MaxEncodedLen) - // Storage: XYKWarehouseLM Deposit (r:0 w:1) - // Proof: XYKWarehouseLM Deposit (max_values: None, max_size: Some(413), added: 2888, mode: MaxEncodedLen) + /// Storage: `XYK::ShareToken` (r:1 w:0) + /// Proof: `XYK::ShareToken` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `Tokens::Accounts` (r:3 w:2) + /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::YieldFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::YieldFarm` (`max_values`: None, `max_size`: Some(226), added: 2701, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::GlobalFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::GlobalFarm` (`max_values`: None, `max_size`: Some(205), added: 2680, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:2 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:4 w:3) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `XYK::PoolAssets` (r:1 w:0) + /// Proof: `XYK::PoolAssets` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) + /// Storage: `XYK::TotalLiquidity` (r:1 w:0) + /// Proof: `XYK::TotalLiquidity` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::DepositSequencer` (r:1 w:1) + /// Proof: `XYKWarehouseLM::DepositSequencer` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`) + /// Storage: `MultiTransactionPayment::AccountCurrencyMap` (r:1 w:0) + /// Proof: `MultiTransactionPayment::AccountCurrencyMap` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `NFT::Collections` (r:1 w:0) + /// Proof: `NFT::Collections` (`max_values`: None, `max_size`: Some(99), added: 2574, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Asset` (r:1 w:1) + /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Class` (r:1 w:1) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(190), added: 2665, mode: `MaxEncodedLen`) + /// Storage: `Uniques::CollectionMaxSupply` (r:1 w:0) + /// Proof: `Uniques::CollectionMaxSupply` (`max_values`: None, `max_size`: Some(36), added: 2511, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::NextAssetId` (r:1 w:0) + /// Proof: `AssetRegistry::NextAssetId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::LocationAssets` (r:1 w:0) + /// Proof: `AssetRegistry::LocationAssets` (`max_values`: None, `max_size`: Some(622), added: 3097, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Account` (r:0 w:1) + /// Proof: `Uniques::Account` (`max_values`: None, `max_size`: Some(112), added: 2587, mode: `MaxEncodedLen`) + /// Storage: `NFT::Items` (r:0 w:1) + /// Proof: `NFT::Items` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::Deposit` (r:0 w:1) + /// Proof: `XYKWarehouseLM::Deposit` (`max_values`: None, `max_size`: Some(413), added: 2888, mode: `MaxEncodedLen`) fn deposit_shares() -> Weight { - // Minimum execution time: 128_864 nanoseconds. - Weight::from_ref_time(130_192_000 as u64) - .saturating_add(T::DbWeight::get().reads(22 as u64)) - .saturating_add(T::DbWeight::get().writes(13 as u64)) + // Proof Size summary in bytes: + // Measured: `3236` + // Estimated: `11402` + // Minimum execution time: 262_054_000 picoseconds. + Weight::from_parts(265_093_000, 11402) + .saturating_add(T::DbWeight::get().reads(22_u64)) + .saturating_add(T::DbWeight::get().writes(13_u64)) } - // Storage: Uniques Asset (r:1 w:0) - // Proof: Uniques Asset (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) - // Storage: XYK ShareToken (r:1 w:0) - // Proof: XYK ShareToken (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) - // Storage: XYKWarehouseLM Deposit (r:1 w:1) - // Proof: XYKWarehouseLM Deposit (max_values: None, max_size: Some(413), added: 2888, mode: MaxEncodedLen) - // Storage: XYKWarehouseLM YieldFarm (r:1 w:1) - // Proof: XYKWarehouseLM YieldFarm (max_values: None, max_size: Some(226), added: 2701, mode: MaxEncodedLen) - // Storage: XYKWarehouseLM GlobalFarm (r:1 w:1) - // Proof: XYKWarehouseLM GlobalFarm (max_values: None, max_size: Some(205), added: 2680, mode: MaxEncodedLen) - // Storage: XYK PoolAssets (r:1 w:0) - // Proof: XYK PoolAssets (max_values: None, max_size: Some(56), added: 2531, mode: MaxEncodedLen) - // Storage: XYK TotalLiquidity (r:1 w:0) - // Proof: XYK TotalLiquidity (max_values: None, max_size: Some(64), added: 2539, mode: MaxEncodedLen) - // Storage: System Account (r:1 w:0) - // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - // Storage: Tokens Accounts (r:1 w:0) - // Proof: Tokens Accounts (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen) + /// Storage: `Uniques::Asset` (r:1 w:0) + /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) + /// Storage: `XYK::ShareToken` (r:1 w:0) + /// Proof: `XYK::ShareToken` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::Deposit` (r:1 w:1) + /// Proof: `XYKWarehouseLM::Deposit` (`max_values`: None, `max_size`: Some(413), added: 2888, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::YieldFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::YieldFarm` (`max_values`: None, `max_size`: Some(226), added: 2701, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::GlobalFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::GlobalFarm` (`max_values`: None, `max_size`: Some(205), added: 2680, mode: `MaxEncodedLen`) + /// Storage: `XYK::PoolAssets` (r:1 w:0) + /// Proof: `XYK::PoolAssets` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) + /// Storage: `XYK::TotalLiquidity` (r:1 w:0) + /// Proof: `XYK::TotalLiquidity` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:1 w:0) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `Tokens::Accounts` (r:1 w:0) + /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) fn redeposit_shares() -> Weight { - // Minimum execution time: 54_376 nanoseconds. - Weight::from_ref_time(55_063_000 as u64) - .saturating_add(T::DbWeight::get().reads(9 as u64)) - .saturating_add(T::DbWeight::get().writes(3 as u64)) + // Proof Size summary in bytes: + // Measured: `2363` + // Estimated: `3878` + // Minimum execution time: 82_532_000 picoseconds. + Weight::from_parts(83_433_000, 3878) + .saturating_add(T::DbWeight::get().reads(9_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } - // Storage: Uniques Asset (r:1 w:0) - // Proof: Uniques Asset (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) - // Storage: XYKWarehouseLM Deposit (r:1 w:1) - // Proof: XYKWarehouseLM Deposit (max_values: None, max_size: Some(413), added: 2888, mode: MaxEncodedLen) - // Storage: XYKWarehouseLM YieldFarm (r:1 w:1) - // Proof: XYKWarehouseLM YieldFarm (max_values: None, max_size: Some(226), added: 2701, mode: MaxEncodedLen) - // Storage: XYKWarehouseLM GlobalFarm (r:1 w:1) - // Proof: XYKWarehouseLM GlobalFarm (max_values: None, max_size: Some(205), added: 2680, mode: MaxEncodedLen) - // Storage: AssetRegistry Assets (r:1 w:0) - // Proof Skipped: AssetRegistry Assets (max_values: None, max_size: None, mode: Measured) - // Storage: System Account (r:3 w:3) - // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `Uniques::Asset` (r:1 w:0) + /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::Deposit` (r:1 w:1) + /// Proof: `XYKWarehouseLM::Deposit` (`max_values`: None, `max_size`: Some(413), added: 2888, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::YieldFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::YieldFarm` (`max_values`: None, `max_size`: Some(226), added: 2701, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::GlobalFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::GlobalFarm` (`max_values`: None, `max_size`: Some(205), added: 2680, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:1 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:3 w:3) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn claim_rewards() -> Weight { - // Minimum execution time: 69_588 nanoseconds. - Weight::from_ref_time(70_392_000 as u64) - .saturating_add(T::DbWeight::get().reads(8 as u64)) - .saturating_add(T::DbWeight::get().writes(6 as u64)) + // Proof Size summary in bytes: + // Measured: `2097` + // Estimated: `8799` + // Minimum execution time: 181_069_000 picoseconds. + Weight::from_parts(182_671_000, 8799) + .saturating_add(T::DbWeight::get().reads(8_u64)) + .saturating_add(T::DbWeight::get().writes(6_u64)) } - // Storage: Uniques Asset (r:1 w:1) - // Proof: Uniques Asset (max_values: None, max_size: Some(146), added: 2621, mode: MaxEncodedLen) - // Storage: XYK ShareToken (r:1 w:0) - // Proof: XYK ShareToken (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) - // Storage: XYKWarehouseLM Deposit (r:1 w:1) - // Proof: XYKWarehouseLM Deposit (max_values: None, max_size: Some(413), added: 2888, mode: MaxEncodedLen) - // Storage: XYKWarehouseLM YieldFarm (r:1 w:1) - // Proof: XYKWarehouseLM YieldFarm (max_values: None, max_size: Some(226), added: 2701, mode: MaxEncodedLen) - // Storage: XYKWarehouseLM GlobalFarm (r:1 w:1) - // Proof: XYKWarehouseLM GlobalFarm (max_values: None, max_size: Some(205), added: 2680, mode: MaxEncodedLen) - // Storage: AssetRegistry Assets (r:2 w:0) - // Proof Skipped: AssetRegistry Assets (max_values: None, max_size: None, mode: Measured) - // Storage: System Account (r:4 w:4) - // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) - // Storage: XYK PoolAssets (r:1 w:0) - // Proof: XYK PoolAssets (max_values: None, max_size: Some(56), added: 2531, mode: MaxEncodedLen) - // Storage: Tokens Accounts (r:2 w:2) - // Proof: Tokens Accounts (max_values: None, max_size: Some(108), added: 2583, mode: MaxEncodedLen) - // Storage: MultiTransactionPayment AccountCurrencyMap (r:1 w:1) - // Proof: MultiTransactionPayment AccountCurrencyMap (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) - // Storage: MultiTransactionPayment AcceptedCurrencies (r:1 w:0) - // Proof: MultiTransactionPayment AcceptedCurrencies (max_values: None, max_size: Some(28), added: 2503, mode: MaxEncodedLen) - // Storage: Uniques Class (r:1 w:1) - // Proof: Uniques Class (max_values: None, max_size: Some(190), added: 2665, mode: MaxEncodedLen) - // Storage: AssetRegistry NextAssetId (r:1 w:0) - // Proof Skipped: AssetRegistry NextAssetId (max_values: Some(1), max_size: None, mode: Measured) - // Storage: AssetRegistry LocationAssets (r:1 w:0) - // Proof Skipped: AssetRegistry LocationAssets (max_values: None, max_size: None, mode: Measured) - // Storage: Uniques Account (r:0 w:1) - // Proof: Uniques Account (max_values: None, max_size: Some(112), added: 2587, mode: MaxEncodedLen) - // Storage: Uniques ItemPriceOf (r:0 w:1) - // Proof: Uniques ItemPriceOf (max_values: None, max_size: Some(113), added: 2588, mode: MaxEncodedLen) - // Storage: NFT Items (r:0 w:1) - // Proof: NFT Items (max_values: None, max_size: Some(122), added: 2597, mode: MaxEncodedLen) + /// Storage: `Uniques::Asset` (r:1 w:1) + /// Proof: `Uniques::Asset` (`max_values`: None, `max_size`: Some(146), added: 2621, mode: `MaxEncodedLen`) + /// Storage: `XYK::ShareToken` (r:1 w:0) + /// Proof: `XYK::ShareToken` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::Deposit` (r:1 w:1) + /// Proof: `XYKWarehouseLM::Deposit` (`max_values`: None, `max_size`: Some(413), added: 2888, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::YieldFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::YieldFarm` (`max_values`: None, `max_size`: Some(226), added: 2701, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::GlobalFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::GlobalFarm` (`max_values`: None, `max_size`: Some(205), added: 2680, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:2 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:4 w:4) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + /// Storage: `XYK::PoolAssets` (r:1 w:0) + /// Proof: `XYK::PoolAssets` (`max_values`: None, `max_size`: Some(56), added: 2531, mode: `MaxEncodedLen`) + /// Storage: `Tokens::Accounts` (r:2 w:2) + /// Proof: `Tokens::Accounts` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) + /// Storage: `MultiTransactionPayment::AccountCurrencyMap` (r:1 w:1) + /// Proof: `MultiTransactionPayment::AccountCurrencyMap` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `MultiTransactionPayment::AcceptedCurrencies` (r:1 w:0) + /// Proof: `MultiTransactionPayment::AcceptedCurrencies` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Class` (r:1 w:1) + /// Proof: `Uniques::Class` (`max_values`: None, `max_size`: Some(190), added: 2665, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::NextAssetId` (r:1 w:0) + /// Proof: `AssetRegistry::NextAssetId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::LocationAssets` (r:1 w:0) + /// Proof: `AssetRegistry::LocationAssets` (`max_values`: None, `max_size`: Some(622), added: 3097, mode: `MaxEncodedLen`) + /// Storage: `Uniques::Account` (r:0 w:1) + /// Proof: `Uniques::Account` (`max_values`: None, `max_size`: Some(112), added: 2587, mode: `MaxEncodedLen`) + /// Storage: `Uniques::ItemPriceOf` (r:0 w:1) + /// Proof: `Uniques::ItemPriceOf` (`max_values`: None, `max_size`: Some(113), added: 2588, mode: `MaxEncodedLen`) + /// Storage: `NFT::Items` (r:0 w:1) + /// Proof: `NFT::Items` (`max_values`: None, `max_size`: Some(122), added: 2597, mode: `MaxEncodedLen`) fn withdraw_shares() -> Weight { - // Minimum execution time: 149_927 nanoseconds. - Weight::from_ref_time(150_907_000 as u64) - .saturating_add(T::DbWeight::get().reads(19 as u64)) - .saturating_add(T::DbWeight::get().writes(15 as u64)) + // Proof Size summary in bytes: + // Measured: `2928` + // Estimated: `11402` + // Minimum execution time: 388_459_000 picoseconds. + Weight::from_parts(391_305_000, 11402) + .saturating_add(T::DbWeight::get().reads(19_u64)) + .saturating_add(T::DbWeight::get().writes(15_u64)) } - // Storage: XYK ShareToken (r:1 w:0) - // Proof: XYK ShareToken (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) - // Storage: XYKWarehouseLM ActiveYieldFarm (r:1 w:1) - // Proof: XYKWarehouseLM ActiveYieldFarm (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen) - // Storage: XYKWarehouseLM YieldFarm (r:1 w:1) - // Proof: XYKWarehouseLM YieldFarm (max_values: None, max_size: Some(226), added: 2701, mode: MaxEncodedLen) - // Storage: XYKWarehouseLM GlobalFarm (r:1 w:1) - // Proof: XYKWarehouseLM GlobalFarm (max_values: None, max_size: Some(205), added: 2680, mode: MaxEncodedLen) - // Storage: AssetRegistry Assets (r:1 w:0) - // Proof Skipped: AssetRegistry Assets (max_values: None, max_size: None, mode: Measured) - // Storage: System Account (r:2 w:2) - // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: `XYK::ShareToken` (r:1 w:0) + /// Proof: `XYK::ShareToken` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::ActiveYieldFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::ActiveYieldFarm` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::YieldFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::YieldFarm` (`max_values`: None, `max_size`: Some(226), added: 2701, mode: `MaxEncodedLen`) + /// Storage: `XYKWarehouseLM::GlobalFarm` (r:1 w:1) + /// Proof: `XYKWarehouseLM::GlobalFarm` (`max_values`: None, `max_size`: Some(205), added: 2680, mode: `MaxEncodedLen`) + /// Storage: `AssetRegistry::Assets` (r:1 w:0) + /// Proof: `AssetRegistry::Assets` (`max_values`: None, `max_size`: Some(87), added: 2562, mode: `MaxEncodedLen`) + /// Storage: `System::Account` (r:2 w:2) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) fn resume_yield_farm() -> Weight { - // Minimum execution time: 56_874 nanoseconds. - Weight::from_ref_time(57_658_000 as u64) - .saturating_add(T::DbWeight::get().reads(7 as u64)) - .saturating_add(T::DbWeight::get().writes(5 as u64)) + // Proof Size summary in bytes: + // Measured: `1469` + // Estimated: `6196` + // Minimum execution time: 127_081_000 picoseconds. + Weight::from_parts(128_240_000, 6196) + .saturating_add(T::DbWeight::get().reads(7_u64)) + .saturating_add(T::DbWeight::get().writes(5_u64)) } } diff --git a/runtime/basilisk/src/xcm.rs b/runtime/basilisk/src/xcm.rs index f8288963002..96a1459909c 100644 --- a/runtime/basilisk/src/xcm.rs +++ b/runtime/basilisk/src/xcm.rs @@ -36,9 +36,8 @@ use orml_traits::{location::AbsoluteReserveProvider, parameter_type_with_key}; pub use orml_xcm_support::{DepositToAlternative, IsNativeConcrete, MultiCurrencyAdapter, MultiNativeAsset}; use pallet_transaction_multi_payment::DepositAll; use pallet_xcm::XcmPassthrough; -use polkadot_parachain::primitives::RelayChainBlockNumber; -use polkadot_parachain::primitives::Sibling; -use polkadot_xcm::v3::{prelude::*, Error, MultiLocation, Weight as XcmWeight}; +use polkadot_parachain::primitives::{RelayChainBlockNumber, Sibling}; +use polkadot_xcm::v3::{prelude::*, MultiLocation, Weight as XcmWeight}; use primitives::AssetId; use scale_info::TypeInfo; use xcm_builder::{ @@ -47,7 +46,7 @@ use xcm_builder::{ SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, WithComputedOrigin, }; -use xcm_executor::{traits::WeightTrader, Assets, Config, XcmExecutor}; +use xcm_executor::{Config, XcmExecutor}; #[derive(Debug, Default, Encode, Decode, Clone, PartialEq, Eq, TypeInfo, MaxEncodedLen)] pub struct AssetLocation(pub MultiLocation); @@ -106,29 +105,17 @@ pub type XcmOriginToCallOrigin = ( // Xcm origins can be represented natively under the Xcm pallet's Xcm origin. XcmPassthrough, // Derives signed AccountId32 origins for Tinkernet multisigs. - invarch_xcm_builder::DeriveOriginFromTinkernetMultisig, + orml_xcm_builder_kusama::TinkernetMultisigAsNativeOrigin, ); parameter_types! { /// The amount of weight an XCM operation takes. This is a safe overestimate. - pub const BaseXcmWeight: XcmWeight = XcmWeight::from_ref_time(100_000_000); + pub const BaseXcmWeight: XcmWeight = XcmWeight::from_parts(100_000_000, 0); pub const MaxInstructions: u32 = 100; pub const MaxAssetsForTransfer: usize = 2; pub UniversalLocation: InteriorMultiLocation = X2(GlobalConsensus(RelayNetwork::get()), Parachain(ParachainInfo::parachain_id().into())); } -pub struct TradePassthrough(); -impl WeightTrader for TradePassthrough { - fn new() -> Self { - Self() - } - - fn buy_weight(&mut self, _weight: Weight, payment: Assets) -> Result { - // Just let it through for now - Ok(payment) - } -} - pub struct XcmConfig; impl Config for XcmConfig { type RuntimeCall = RuntimeCall; @@ -159,7 +146,7 @@ impl Config for XcmConfig { type ResponseHandler = PolkadotXcm; type AssetTrap = PolkadotXcm; type AssetLocker = (); - type AssetExchanger = XcmAssetExchanger; + type AssetExchanger = XcmAssetExchanger; type AssetClaims = PolkadotXcm; type SubscriptionService = PolkadotXcm; type PalletInstancesInfo = AllPalletsWithSystem; @@ -169,6 +156,7 @@ impl Config for XcmConfig { type UniversalAliases = Nothing; type CallDispatcher = RuntimeCall; type SafeCallFilter = SafeCallFilter; + type Aliasers = Nothing; } impl cumulus_pallet_xcm::Config for Runtime { @@ -176,6 +164,12 @@ impl cumulus_pallet_xcm::Config for Runtime { type XcmExecutor = XcmExecutor; } +parameter_types! { + pub const MaxDeferredMessages: u32 = 20; + pub const MaxDeferredBuckets: u32 = 1_000; + pub const MaxBucketsProcessed: u32 = 3; +} + impl cumulus_pallet_xcmp_queue::Config for Runtime { type RuntimeEvent = RuntimeEvent; type XcmExecutor = XcmExecutor; @@ -187,7 +181,9 @@ impl cumulus_pallet_xcmp_queue::Config for Runtime { type PriceForSiblingDelivery = (); type WeightInfo = weights::xcmp_queue::BasiliskWeight; type ExecuteDeferredOrigin = EnsureRoot; - type MaxDeferredMessages = ConstU32<100>; + type MaxDeferredMessages = MaxDeferredMessages; + type MaxDeferredBuckets = MaxDeferredBuckets; + type MaxBucketsProcessed = MaxBucketsProcessed; type RelayChainBlockNumberProvider = RelayChainBlockNumberProvider; type XcmDeferFilter = XcmRateLimiter; } @@ -268,10 +264,30 @@ impl pallet_xcm::Config for Runtime { type WeightInfo = weights::xcm::BasiliskWeight; #[cfg(feature = "runtime-benchmarks")] type ReachableDest = ReachableDest; + type AdminOrigin = SuperMajorityTechCommitteeOrRoot; + type MaxRemoteLockConsumers = ConstU32<0>; + type RemoteLockConsumerIdentifier = (); } +#[test] +fn defer_duration_configuration() { + use sp_runtime::{traits::One, FixedPointNumber, FixedU128}; + /// Calculate the configuration value for the defer duration based on the desired defer duration and + /// the threshold percentage when to start deferring. + /// - `defer_by`: the desired defer duration when reaching the rate limit + /// - `a``: the fraction of the rate limit where we start deferring, e.g. 0.9 + fn defer_duration(defer_by: u32, a: FixedU128) -> u32 { + assert!(a < FixedU128::one()); + // defer_by * a / (1 - a) + (FixedU128::one() / (FixedU128::one() - a)).saturating_mul_int(a.saturating_mul_int(defer_by)) + } + assert_eq!( + defer_duration(600 * 4, FixedU128::from_rational(9, 10)), + DeferDuration::get() + ); +} parameter_types! { - pub DeferDuration: RelayChainBlockNumber = 100; // 10 min + pub DeferDuration: RelayChainBlockNumber = 600 * 36; // 36 hours pub MaxDeferDuration: RelayChainBlockNumber = 600 * 24 * 10; // 10 days } @@ -365,7 +381,7 @@ pub type LocationToAccountId = ( // Straight up local `AccountId32` origins just alias directly to `AccountId`. AccountId32Aliases, // Mapping Tinkernet multisig to the correctly derived AccountId32. - invarch_xcm_builder::TinkernetMultisigAsAccountId, + orml_xcm_builder_kusama::TinkernetMultisigAsAccountId, ); parameter_types! { diff --git a/rust-toolchain b/rust-toolchain index 45d3fb304bb..4657c24c6ec 100644 --- a/rust-toolchain +++ b/rust-toolchain @@ -1,5 +1,5 @@ [toolchain] -channel = "nightly-2022-11-15" +channel = "nightly-2023-05-22" components = [ "rustfmt", "clippy" ] targets = [ "wasm32-unknown-unknown" ] profile = "minimal" diff --git a/scripts/wait-for-inclusion/index.js b/scripts/wait-for-inclusion/index.js deleted file mode 100644 index 485ae47b0ad..00000000000 --- a/scripts/wait-for-inclusion/index.js +++ /dev/null @@ -1,56 +0,0 @@ -const { ApiPromise, WsProvider } = require('@polkadot/api'); - -let api; -const id = process.argv[2]; -let header = null; -async function checkParaHead() { - let head = (await api.query.paras.heads(id)).toHex(); - if (header === null) { - header = head; - console.log(`parachain ${id} registered`) - return; - } - if (header !== head) { - console.log(`parachain ${id} block included`); - process.exit(); - } -} - -async function main() { - const provider = new WsProvider('ws://127.0.0.1:9944'); - - api = await ApiPromise.create({ provider }); - - const [chain,, nodeVersion] = await Promise.all([ - api.rpc.system.chain(), - api.rpc.system.name(), - api.rpc.system.version() - ]); - - console.log(`connected to relay chain ${chain} ${nodeVersion}`); - console.log(`waiting for parachain ${id} block`); - - let count = 0; - await api.rpc.chain.subscribeNewHeads(async header => { - console.log(`relay chain #${header.number}`); - await checkParaHead(); - if (++count === 50) { - if (header === null) { - console.log(`parachain ${id} not registered`); - } else { - console.log(`parachain ${id} block not included in 50 relay blocks`); - } - process.exit(1); - } - }); -} - -main().catch(console.error); - -setTimeout(() => { - if (header == null) { - console.log(`parachain ${id} not registered in 60 sec`); - process.exit(1); - } -}, 60000) - diff --git a/scripts/wait-for-inclusion/package-lock.json b/scripts/wait-for-inclusion/package-lock.json deleted file mode 100644 index 361d7363500..00000000000 --- a/scripts/wait-for-inclusion/package-lock.json +++ /dev/null @@ -1,11956 +0,0 @@ -{ - "name": "wait-for-inclusion", - "version": "1.0.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "wait-for-inclusion", - "version": "1.0.0", - "license": "Apache-2.0", - "dependencies": { - "@polkadot/api": "^6.3.1", - "npm-run-all": "^4.1.5", - "polkadot-launch": "^2.1.0", - "wait-on": "^6.0.0" - } - }, - "../../../polkadot-launch": { - "version": "2.1.0", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@polkadot/api": "^6.10.3", - "@polkadot/keyring": "^8.0.5", - "@polkadot/types": "^6.10.3", - "@polkadot/util": "^8.0.5", - "@polkadot/util-crypto": "^8.0.5", - "@types/chai": "^4.2.22", - "@types/mocha": "^9.0.0", - "chai": "^4.3.4", - "ethers": "^5.4.7", - "filter-console": "^0.1.1", - "libp2p-crypto": "^0.20.0", - "mocha": "^9.1.2", - "peer-id": "^0.15.3", - "tcp-port-used": "^1.0.2", - "ts-node": "^10.3.0", - "web3": "^1.6.0", - "web3-core": "^1.6.0", - "web3-eth": "^1.6.0", - "yargs": "^15.4.1" - }, - "bin": { - "polkadot-launch": "dist/cli.js" - }, - "devDependencies": { - "@types/node": "^16.4.12", - "@types/tcp-port-used": "^1.0.0", - "prettier": "^2.4.1", - "typescript": "^4.1.5" - } - }, - "node_modules/@babel/runtime": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.7.tgz", - "integrity": "sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ==", - "dependencies": { - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@cspotcode/source-map-consumer": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz", - "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==", - "engines": { - "node": ">= 12" - } - }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz", - "integrity": "sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==", - "dependencies": { - "@cspotcode/source-map-consumer": "0.8.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@ethereumjs/common": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.0.tgz", - "integrity": "sha512-Cq2qS0FTu6O2VU1sgg+WyU9Ps0M6j/BEMHN+hRaECXCV/r0aI78u4N6p52QW/BDVhwWZpCdrvG8X7NJdzlpNUA==", - "dependencies": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.3" - } - }, - "node_modules/@ethereumjs/tx": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.4.0.tgz", - "integrity": "sha512-WWUwg1PdjHKZZxPPo274ZuPsJCWV3SqATrEKQP1n2DrVYVP1aZIYpo/mFaA0BDoE0tIQmBeimRCEA0Lgil+yYw==", - "dependencies": { - "@ethereumjs/common": "^2.6.0", - "ethereumjs-util": "^7.1.3" - } - }, - "node_modules/@ethersproject/abi": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.5.0.tgz", - "integrity": "sha512-loW7I4AohP5KycATvc0MgujU6JyCHPqHdeoo9z3Nr9xEiNioxa65ccdm1+fsoJhkuhdRtfcL8cfyGamz2AxZ5w==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/address": "^5.5.0", - "@ethersproject/bignumber": "^5.5.0", - "@ethersproject/bytes": "^5.5.0", - "@ethersproject/constants": "^5.5.0", - "@ethersproject/hash": "^5.5.0", - "@ethersproject/keccak256": "^5.5.0", - "@ethersproject/logger": "^5.5.0", - "@ethersproject/properties": "^5.5.0", - "@ethersproject/strings": "^5.5.0" - } - }, - "node_modules/@ethersproject/abstract-provider": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.5.1.tgz", - "integrity": "sha512-m+MA/ful6eKbxpr99xUYeRvLkfnlqzrF8SZ46d/xFB1A7ZVknYc/sXJG0RcufF52Qn2jeFj1hhcoQ7IXjNKUqg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.5.0", - "@ethersproject/bytes": "^5.5.0", - "@ethersproject/logger": "^5.5.0", - "@ethersproject/networks": "^5.5.0", - "@ethersproject/properties": "^5.5.0", - "@ethersproject/transactions": "^5.5.0", - "@ethersproject/web": "^5.5.0" - } - }, - "node_modules/@ethersproject/abstract-signer": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.5.0.tgz", - "integrity": "sha512-lj//7r250MXVLKI7sVarXAbZXbv9P50lgmJQGr2/is82EwEb8r7HrxsmMqAjTsztMYy7ohrIhGMIml+Gx4D3mA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-provider": "^5.5.0", - "@ethersproject/bignumber": "^5.5.0", - "@ethersproject/bytes": "^5.5.0", - "@ethersproject/logger": "^5.5.0", - "@ethersproject/properties": "^5.5.0" - } - }, - "node_modules/@ethersproject/address": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.5.0.tgz", - "integrity": "sha512-l4Nj0eWlTUh6ro5IbPTgbpT4wRbdH5l8CQf7icF7sb/SI3Nhd9Y9HzhonTSTi6CefI0necIw7LJqQPopPLZyWw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.5.0", - "@ethersproject/bytes": "^5.5.0", - "@ethersproject/keccak256": "^5.5.0", - "@ethersproject/logger": "^5.5.0", - "@ethersproject/rlp": "^5.5.0" - } - }, - "node_modules/@ethersproject/base64": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.5.0.tgz", - "integrity": "sha512-tdayUKhU1ljrlHzEWbStXazDpsx4eg1dBXUSI6+mHlYklOXoXF6lZvw8tnD6oVaWfnMxAgRSKROg3cVKtCcppA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.5.0" - } - }, - "node_modules/@ethersproject/basex": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.5.0.tgz", - "integrity": "sha512-ZIodwhHpVJ0Y3hUCfUucmxKsWQA5TMnavp5j/UOuDdzZWzJlRmuOjcTMIGgHCYuZmHt36BfiSyQPSRskPxbfaQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.5.0", - "@ethersproject/properties": "^5.5.0" - } - }, - "node_modules/@ethersproject/bignumber": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.5.0.tgz", - "integrity": "sha512-6Xytlwvy6Rn3U3gKEc1vP7nR92frHkv6wtVr95LFR3jREXiCPzdWxKQ1cx4JGQBXxcguAwjA8murlYN2TSiEbg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.5.0", - "@ethersproject/logger": "^5.5.0", - "bn.js": "^4.11.9" - } - }, - "node_modules/@ethersproject/bytes": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.5.0.tgz", - "integrity": "sha512-ABvc7BHWhZU9PNM/tANm/Qx4ostPGadAuQzWTr3doklZOhDlmcBqclrQe/ZXUIj3K8wC28oYeuRa+A37tX9kog==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/logger": "^5.5.0" - } - }, - "node_modules/@ethersproject/constants": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.5.0.tgz", - "integrity": "sha512-2MsRRVChkvMWR+GyMGY4N1sAX9Mt3J9KykCsgUFd/1mwS0UH1qw+Bv9k1UJb3X3YJYFco9H20pjSlOIfCG5HYQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.5.0" - } - }, - "node_modules/@ethersproject/contracts": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.5.0.tgz", - "integrity": "sha512-2viY7NzyvJkh+Ug17v7g3/IJC8HqZBDcOjYARZLdzRxrfGlRgmYgl6xPRKVbEzy1dWKw/iv7chDcS83pg6cLxg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abi": "^5.5.0", - "@ethersproject/abstract-provider": "^5.5.0", - "@ethersproject/abstract-signer": "^5.5.0", - "@ethersproject/address": "^5.5.0", - "@ethersproject/bignumber": "^5.5.0", - "@ethersproject/bytes": "^5.5.0", - "@ethersproject/constants": "^5.5.0", - "@ethersproject/logger": "^5.5.0", - "@ethersproject/properties": "^5.5.0", - "@ethersproject/transactions": "^5.5.0" - } - }, - "node_modules/@ethersproject/hash": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.5.0.tgz", - "integrity": "sha512-dnGVpK1WtBjmnp3mUT0PlU2MpapnwWI0PibldQEq1408tQBAbZpPidkWoVVuNMOl/lISO3+4hXZWCL3YV7qzfg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-signer": "^5.5.0", - "@ethersproject/address": "^5.5.0", - "@ethersproject/bignumber": "^5.5.0", - "@ethersproject/bytes": "^5.5.0", - "@ethersproject/keccak256": "^5.5.0", - "@ethersproject/logger": "^5.5.0", - "@ethersproject/properties": "^5.5.0", - "@ethersproject/strings": "^5.5.0" - } - }, - "node_modules/@ethersproject/hdnode": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.5.0.tgz", - "integrity": "sha512-mcSOo9zeUg1L0CoJH7zmxwUG5ggQHU1UrRf8jyTYy6HxdZV+r0PBoL1bxr+JHIPXRzS6u/UW4mEn43y0tmyF8Q==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-signer": "^5.5.0", - "@ethersproject/basex": "^5.5.0", - "@ethersproject/bignumber": "^5.5.0", - "@ethersproject/bytes": "^5.5.0", - "@ethersproject/logger": "^5.5.0", - "@ethersproject/pbkdf2": "^5.5.0", - "@ethersproject/properties": "^5.5.0", - "@ethersproject/sha2": "^5.5.0", - "@ethersproject/signing-key": "^5.5.0", - "@ethersproject/strings": "^5.5.0", - "@ethersproject/transactions": "^5.5.0", - "@ethersproject/wordlists": "^5.5.0" - } - }, - "node_modules/@ethersproject/json-wallets": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.5.0.tgz", - "integrity": "sha512-9lA21XQnCdcS72xlBn1jfQdj2A1VUxZzOzi9UkNdnokNKke/9Ya2xA9aIK1SC3PQyBDLt4C+dfps7ULpkvKikQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-signer": "^5.5.0", - "@ethersproject/address": "^5.5.0", - "@ethersproject/bytes": "^5.5.0", - "@ethersproject/hdnode": "^5.5.0", - "@ethersproject/keccak256": "^5.5.0", - "@ethersproject/logger": "^5.5.0", - "@ethersproject/pbkdf2": "^5.5.0", - "@ethersproject/properties": "^5.5.0", - "@ethersproject/random": "^5.5.0", - "@ethersproject/strings": "^5.5.0", - "@ethersproject/transactions": "^5.5.0", - "aes-js": "3.0.0", - "scrypt-js": "3.0.1" - } - }, - "node_modules/@ethersproject/keccak256": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.5.0.tgz", - "integrity": "sha512-5VoFCTjo2rYbBe1l2f4mccaRFN/4VQEYFwwn04aJV2h7qf4ZvI2wFxUE1XOX+snbwCLRzIeikOqtAoPwMza9kg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.5.0", - "js-sha3": "0.8.0" - } - }, - "node_modules/@ethersproject/logger": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.5.0.tgz", - "integrity": "sha512-rIY/6WPm7T8n3qS2vuHTUBPdXHl+rGxWxW5okDfo9J4Z0+gRRZT0msvUdIJkE4/HS29GUMziwGaaKO2bWONBrg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ] - }, - "node_modules/@ethersproject/networks": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.5.2.tgz", - "integrity": "sha512-NEqPxbGBfy6O3x4ZTISb90SjEDkWYDUbEeIFhJly0F7sZjoQMnj5KYzMSkMkLKZ+1fGpx00EDpHQCy6PrDupkQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/logger": "^5.5.0" - } - }, - "node_modules/@ethersproject/pbkdf2": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.5.0.tgz", - "integrity": "sha512-SaDvQFvXPnz1QGpzr6/HToLifftSXGoXrbpZ6BvoZhmx4bNLHrxDe8MZisuecyOziP1aVEwzC2Hasj+86TgWVg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.5.0", - "@ethersproject/sha2": "^5.5.0" - } - }, - "node_modules/@ethersproject/properties": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.5.0.tgz", - "integrity": "sha512-l3zRQg3JkD8EL3CPjNK5g7kMx4qSwiR60/uk5IVjd3oq1MZR5qUg40CNOoEJoX5wc3DyY5bt9EbMk86C7x0DNA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/logger": "^5.5.0" - } - }, - "node_modules/@ethersproject/providers": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.5.2.tgz", - "integrity": "sha512-hkbx7x/MKcRjyrO4StKXCzCpWer6s97xnm34xkfPiarhtEUVAN4TBBpamM+z66WcTt7H5B53YwbRj1n7i8pZoQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-provider": "^5.5.0", - "@ethersproject/abstract-signer": "^5.5.0", - "@ethersproject/address": "^5.5.0", - "@ethersproject/basex": "^5.5.0", - "@ethersproject/bignumber": "^5.5.0", - "@ethersproject/bytes": "^5.5.0", - "@ethersproject/constants": "^5.5.0", - "@ethersproject/hash": "^5.5.0", - "@ethersproject/logger": "^5.5.0", - "@ethersproject/networks": "^5.5.0", - "@ethersproject/properties": "^5.5.0", - "@ethersproject/random": "^5.5.0", - "@ethersproject/rlp": "^5.5.0", - "@ethersproject/sha2": "^5.5.0", - "@ethersproject/strings": "^5.5.0", - "@ethersproject/transactions": "^5.5.0", - "@ethersproject/web": "^5.5.0", - "bech32": "1.1.4", - "ws": "7.4.6" - } - }, - "node_modules/@ethersproject/random": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.5.1.tgz", - "integrity": "sha512-YaU2dQ7DuhL5Au7KbcQLHxcRHfgyNgvFV4sQOo0HrtW3Zkrc9ctWNz8wXQ4uCSfSDsqX2vcjhroxU5RQRV0nqA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.5.0", - "@ethersproject/logger": "^5.5.0" - } - }, - "node_modules/@ethersproject/rlp": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.5.0.tgz", - "integrity": "sha512-hLv8XaQ8PTI9g2RHoQGf/WSxBfTB/NudRacbzdxmst5VHAqd1sMibWG7SENzT5Dj3yZ3kJYx+WiRYEcQTAkcYA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.5.0", - "@ethersproject/logger": "^5.5.0" - } - }, - "node_modules/@ethersproject/sha2": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.5.0.tgz", - "integrity": "sha512-B5UBoglbCiHamRVPLA110J+2uqsifpZaTmid2/7W5rbtYVz6gus6/hSDieIU/6gaKIDcOj12WnOdiymEUHIAOA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.5.0", - "@ethersproject/logger": "^5.5.0", - "hash.js": "1.1.7" - } - }, - "node_modules/@ethersproject/signing-key": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.5.0.tgz", - "integrity": "sha512-5VmseH7qjtNmDdZBswavhotYbWB0bOwKIlOTSlX14rKn5c11QmJwGt4GHeo7NrL/Ycl7uo9AHvEqs5xZgFBTng==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.5.0", - "@ethersproject/logger": "^5.5.0", - "@ethersproject/properties": "^5.5.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.7" - } - }, - "node_modules/@ethersproject/solidity": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.5.0.tgz", - "integrity": "sha512-9NgZs9LhGMj6aCtHXhtmFQ4AN4sth5HuFXVvAQtzmm0jpSCNOTGtrHZJAeYTh7MBjRR8brylWZxBZR9zDStXbw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.5.0", - "@ethersproject/bytes": "^5.5.0", - "@ethersproject/keccak256": "^5.5.0", - "@ethersproject/logger": "^5.5.0", - "@ethersproject/sha2": "^5.5.0", - "@ethersproject/strings": "^5.5.0" - } - }, - "node_modules/@ethersproject/strings": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.5.0.tgz", - "integrity": "sha512-9fy3TtF5LrX/wTrBaT8FGE6TDJyVjOvXynXJz5MT5azq+E6D92zuKNx7i29sWW2FjVOaWjAsiZ1ZWznuduTIIQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.5.0", - "@ethersproject/constants": "^5.5.0", - "@ethersproject/logger": "^5.5.0" - } - }, - "node_modules/@ethersproject/transactions": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.5.0.tgz", - "integrity": "sha512-9RZYSKX26KfzEd/1eqvv8pLauCKzDTub0Ko4LfIgaERvRuwyaNV78mJs7cpIgZaDl6RJui4o49lHwwCM0526zA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/address": "^5.5.0", - "@ethersproject/bignumber": "^5.5.0", - "@ethersproject/bytes": "^5.5.0", - "@ethersproject/constants": "^5.5.0", - "@ethersproject/keccak256": "^5.5.0", - "@ethersproject/logger": "^5.5.0", - "@ethersproject/properties": "^5.5.0", - "@ethersproject/rlp": "^5.5.0", - "@ethersproject/signing-key": "^5.5.0" - } - }, - "node_modules/@ethersproject/units": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.5.0.tgz", - "integrity": "sha512-7+DpjiZk4v6wrikj+TCyWWa9dXLNU73tSTa7n0TSJDxkYbV3Yf1eRh9ToMLlZtuctNYu9RDNNy2USq3AdqSbag==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.5.0", - "@ethersproject/constants": "^5.5.0", - "@ethersproject/logger": "^5.5.0" - } - }, - "node_modules/@ethersproject/wallet": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.5.0.tgz", - "integrity": "sha512-Mlu13hIctSYaZmUOo7r2PhNSd8eaMPVXe1wxrz4w4FCE4tDYBywDH+bAR1Xz2ADyXGwqYMwstzTrtUVIsKDO0Q==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-provider": "^5.5.0", - "@ethersproject/abstract-signer": "^5.5.0", - "@ethersproject/address": "^5.5.0", - "@ethersproject/bignumber": "^5.5.0", - "@ethersproject/bytes": "^5.5.0", - "@ethersproject/hash": "^5.5.0", - "@ethersproject/hdnode": "^5.5.0", - "@ethersproject/json-wallets": "^5.5.0", - "@ethersproject/keccak256": "^5.5.0", - "@ethersproject/logger": "^5.5.0", - "@ethersproject/properties": "^5.5.0", - "@ethersproject/random": "^5.5.0", - "@ethersproject/signing-key": "^5.5.0", - "@ethersproject/transactions": "^5.5.0", - "@ethersproject/wordlists": "^5.5.0" - } - }, - "node_modules/@ethersproject/web": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.5.1.tgz", - "integrity": "sha512-olvLvc1CB12sREc1ROPSHTdFCdvMh0J5GSJYiQg2D0hdD4QmJDy8QYDb1CvoqD/bF1c++aeKv2sR5uduuG9dQg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/base64": "^5.5.0", - "@ethersproject/bytes": "^5.5.0", - "@ethersproject/logger": "^5.5.0", - "@ethersproject/properties": "^5.5.0", - "@ethersproject/strings": "^5.5.0" - } - }, - "node_modules/@ethersproject/wordlists": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.5.0.tgz", - "integrity": "sha512-bL0UTReWDiaQJJYOC9sh/XcRu/9i2jMrzf8VLRmPKx58ckSlOJiohODkECCO50dtLZHcGU6MLXQ4OOrgBwP77Q==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.5.0", - "@ethersproject/hash": "^5.5.0", - "@ethersproject/logger": "^5.5.0", - "@ethersproject/properties": "^5.5.0", - "@ethersproject/strings": "^5.5.0" - } - }, - "node_modules/@hapi/hoek": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.1.tgz", - "integrity": "sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw==" - }, - "node_modules/@hapi/topo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", - "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", - "dependencies": { - "@hapi/hoek": "^9.0.0" - } - }, - "node_modules/@noble/hashes": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-0.4.5.tgz", - "integrity": "sha512-oK/2b9gHb1CfiFwpPHQs010WgROn4ioilT7TFwxMVwuDaXEJP3QPhyedYbOpgM4JDBgT9n5gaispBQlkaAgT6g==" - }, - "node_modules/@noble/secp256k1": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.4.0.tgz", - "integrity": "sha512-cYpUbQ2uitPgf5QuQnpi8Nu+ZmQjSDunFKw6vvxaOSkbMUhCf4K723WLUuuK1K/sf6H/dvqKbmEAeop5i3qTJg==" - }, - "node_modules/@polkadot/api": { - "version": "6.12.1", - "resolved": "https://registry.npmjs.org/@polkadot/api/-/api-6.12.1.tgz", - "integrity": "sha512-RVdTiA2WaEvproM3i6E9TKS1bfXpPd9Ly9lUG/kVLaspjKoIot9DJUDTl97TJ+7xr8LXGbXqm448Ud0hsEBV8Q==", - "dependencies": { - "@babel/runtime": "^7.16.3", - "@polkadot/api-derive": "6.12.1", - "@polkadot/keyring": "^8.1.2", - "@polkadot/rpc-core": "6.12.1", - "@polkadot/rpc-provider": "6.12.1", - "@polkadot/types": "6.12.1", - "@polkadot/types-known": "6.12.1", - "@polkadot/util": "^8.1.2", - "@polkadot/util-crypto": "^8.1.2", - "eventemitter3": "^4.0.7", - "rxjs": "^7.4.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@polkadot/api-derive": { - "version": "6.12.1", - "resolved": "https://registry.npmjs.org/@polkadot/api-derive/-/api-derive-6.12.1.tgz", - "integrity": "sha512-5LOVlG5EBCT+ytY6aHmQ4RdEWZovZQqRoc6DLd5BLhkR7BFTHKSkLQW+89so8jd0zEtmSXBVPPnsrXS8joM35Q==", - "dependencies": { - "@babel/runtime": "^7.16.3", - "@polkadot/api": "6.12.1", - "@polkadot/rpc-core": "6.12.1", - "@polkadot/types": "6.12.1", - "@polkadot/util": "^8.1.2", - "@polkadot/util-crypto": "^8.1.2", - "rxjs": "^7.4.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@polkadot/keyring": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/@polkadot/keyring/-/keyring-8.2.2.tgz", - "integrity": "sha512-GK8puQVtQJ67sVyq0WIWHPeRXfIcqz2ztgRHnGP4JEptS9NSFByQNq1EEpQnEUZwXu9CQfHz90eiLZc1BpC8lQ==", - "dependencies": { - "@babel/runtime": "^7.16.5", - "@polkadot/util": "8.2.2", - "@polkadot/util-crypto": "8.2.2" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "@polkadot/util": "8.2.2", - "@polkadot/util-crypto": "8.2.2" - } - }, - "node_modules/@polkadot/networks": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/@polkadot/networks/-/networks-8.2.2.tgz", - "integrity": "sha512-PshHrf5wBXib63l03YISnHMf5/fS1/Jv2rEN58EgYy9VK87HBXjT7qQ1Ea/d1cFI2EmfEDvhFsP+u3i6AlejQQ==", - "dependencies": { - "@babel/runtime": "^7.16.5" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@polkadot/rpc-core": { - "version": "6.12.1", - "resolved": "https://registry.npmjs.org/@polkadot/rpc-core/-/rpc-core-6.12.1.tgz", - "integrity": "sha512-Hb08D9zho3SB1UNlUCmG5q0gdgbOx25JKGLDfSYpD/wtD0Y1Sf2X5cfgtMoSYE3USWiRdCu4BxQkXTiRjPjzJg==", - "dependencies": { - "@babel/runtime": "^7.16.3", - "@polkadot/rpc-provider": "6.12.1", - "@polkadot/types": "6.12.1", - "@polkadot/util": "^8.1.2", - "rxjs": "^7.4.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@polkadot/rpc-provider": { - "version": "6.12.1", - "resolved": "https://registry.npmjs.org/@polkadot/rpc-provider/-/rpc-provider-6.12.1.tgz", - "integrity": "sha512-uUHD3fLTOeZYWJoc6DQlhz+MJR33rVelasV+OxFY2nSD9MSNXRwQh+9UKDQBnyxw5B4BZ2QaEGfucDeavXmVDw==", - "dependencies": { - "@babel/runtime": "^7.16.3", - "@polkadot/types": "6.12.1", - "@polkadot/util": "^8.1.2", - "@polkadot/util-crypto": "^8.1.2", - "@polkadot/x-fetch": "^8.1.2", - "@polkadot/x-global": "^8.1.2", - "@polkadot/x-ws": "^8.1.2", - "eventemitter3": "^4.0.7" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@polkadot/types": { - "version": "6.12.1", - "resolved": "https://registry.npmjs.org/@polkadot/types/-/types-6.12.1.tgz", - "integrity": "sha512-O37cAGUL0xiXTuO3ySweVh0OuFUD6asrd0TfuzGsEp3jAISWdElEHV5QDiftWq8J9Vf8BMgTcP2QLFbmSusxqA==", - "dependencies": { - "@babel/runtime": "^7.16.3", - "@polkadot/types-known": "6.12.1", - "@polkadot/util": "^8.1.2", - "@polkadot/util-crypto": "^8.1.2", - "rxjs": "^7.4.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@polkadot/types-known": { - "version": "6.12.1", - "resolved": "https://registry.npmjs.org/@polkadot/types-known/-/types-known-6.12.1.tgz", - "integrity": "sha512-Z8bHpPQy+mqUm0uR1tai6ra0bQIoPmgRcGFYUM+rJtW1kx/6kZLh10HAICjLpPeA1cwLRzaxHRDqH5MCU6OgXw==", - "dependencies": { - "@babel/runtime": "^7.16.3", - "@polkadot/networks": "^8.1.2", - "@polkadot/types": "6.12.1", - "@polkadot/util": "^8.1.2" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@polkadot/util": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-8.2.2.tgz", - "integrity": "sha512-tiHe0rcQvofd3vUVCRmvfULAv9yBG7s/huv1ZLVY/JGT1JBDonc1HWU3Vdb5MvWpx2R+HHv19ORHyD/LiROE9A==", - "dependencies": { - "@babel/runtime": "^7.16.5", - "@polkadot/x-bigint": "8.2.2", - "@polkadot/x-global": "8.2.2", - "@polkadot/x-textdecoder": "8.2.2", - "@polkadot/x-textencoder": "8.2.2", - "@types/bn.js": "^4.11.6", - "bn.js": "^4.12.0", - "ip-regex": "^4.3.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@polkadot/util-crypto": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/@polkadot/util-crypto/-/util-crypto-8.2.2.tgz", - "integrity": "sha512-bKFE6j1q2Dnz1o1QFvhX2QzkMLi9QHU4a5T7+El5J7OsOxGqssMAVHAmB+YoAuSLqPSQBmZa9CN23IiuJnfsbw==", - "dependencies": { - "@babel/runtime": "^7.16.5", - "@noble/hashes": "^0.4.5", - "@noble/secp256k1": "^1.3.4", - "@polkadot/networks": "8.2.2", - "@polkadot/util": "8.2.2", - "@polkadot/wasm-crypto": "^4.5.1", - "@polkadot/x-bigint": "8.2.2", - "@polkadot/x-randomvalues": "8.2.2", - "ed2curve": "^0.3.0", - "micro-base": "^0.10.0", - "tweetnacl": "^1.0.3" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "@polkadot/util": "8.2.2" - } - }, - "node_modules/@polkadot/wasm-crypto": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto/-/wasm-crypto-4.5.1.tgz", - "integrity": "sha512-Cr21ais3Kq3aedIHZ3J1tjgeD/+K8FCiwEawr0oRywNBSJR8wyuZMePs4swR/6xm8wbBkpqoBVHz/UQHqqQJmA==", - "dependencies": { - "@babel/runtime": "^7.16.3", - "@polkadot/wasm-crypto-asmjs": "^4.5.1", - "@polkadot/wasm-crypto-wasm": "^4.5.1" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "@polkadot/util": "*", - "@polkadot/x-randomvalues": "*" - } - }, - "node_modules/@polkadot/wasm-crypto-asmjs": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-asmjs/-/wasm-crypto-asmjs-4.5.1.tgz", - "integrity": "sha512-DOdRiWhxVvmqTvp+E9z1j+Yr0zDOGsDvqnT/eNw0Dl1FVUOImsEa7FKns/urASmcxCVEE1jtUWSnij29jrORMQ==", - "dependencies": { - "@babel/runtime": "^7.16.3" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@polkadot/wasm-crypto-wasm": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-wasm/-/wasm-crypto-wasm-4.5.1.tgz", - "integrity": "sha512-hPwke85HxpgG/RAlwdCE8u5w7bThvWg399mlB+XjogXMxOUWBZSgq2XYbgzROUXx27inK9nStF4Pnc4zJnqs9A==", - "dependencies": { - "@babel/runtime": "^7.16.3" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@polkadot/x-bigint": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-8.2.2.tgz", - "integrity": "sha512-fX3o3FhfQNxdpA5PV4L9PrjjSKG2ZmfFOfv3TrKwsDNtZMktDDcpmW3up53LJ53FszB/WHH6WwKsehmcqAYDIw==", - "dependencies": { - "@babel/runtime": "^7.16.5", - "@polkadot/x-global": "8.2.2" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@polkadot/x-fetch": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/@polkadot/x-fetch/-/x-fetch-8.2.2.tgz", - "integrity": "sha512-ou8d1Ccf7lt7mssr64ixXYIWOZ4I4ED5sYBeFZg7BJB+MsZnuDOVvuMlItQWh01phMCOxtHWowmh+gOI4w5IWA==", - "dependencies": { - "@babel/runtime": "^7.16.5", - "@polkadot/x-global": "8.2.2", - "@types/node-fetch": "^2.5.12", - "node-fetch": "^2.6.6" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@polkadot/x-global": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-8.2.2.tgz", - "integrity": "sha512-eTJ6edgoIKzjfdYN3Y6ZuJUGRAAc8Uc5X8r4/1QmhOy427QbfRKRL/cbcLat1XbyM52aplOvZf31KXTAkMREdQ==", - "dependencies": { - "@babel/runtime": "^7.16.5" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@polkadot/x-randomvalues": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/@polkadot/x-randomvalues/-/x-randomvalues-8.2.2.tgz", - "integrity": "sha512-v3dx0xvWHd5t6e41Fte63WFX/t1Fu9ug3tOr/QE6yMFrDSeDW9TzFJKklakc0tXryqW0cL4qZzUdSvguGC2TPA==", - "dependencies": { - "@babel/runtime": "^7.16.5", - "@polkadot/x-global": "8.2.2" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@polkadot/x-textdecoder": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-8.2.2.tgz", - "integrity": "sha512-HQ/pSl4FREnxK0V7nvEdTwI08Erh6KPLwHZ0rSfUJKVDZ+NwfeW4BW/8xCEJOQIRB948Dqerl0XjEn4xCA+OPg==", - "dependencies": { - "@babel/runtime": "^7.16.5", - "@polkadot/x-global": "8.2.2" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@polkadot/x-textencoder": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-8.2.2.tgz", - "integrity": "sha512-ZAOwYi/y1wRYb3WoWZMDfYPrmbPSasog2uknt8p9u2WELrrfj4zF/fRnSuMjLUNtvJuKSzj4LUCKHwTY+peSrQ==", - "dependencies": { - "@babel/runtime": "^7.16.5", - "@polkadot/x-global": "8.2.2" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@polkadot/x-ws": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/@polkadot/x-ws/-/x-ws-8.2.2.tgz", - "integrity": "sha512-qsHzmtoFXIN59qKSkycxQ3GGyzUMlvhl+d7yU1NMaoOudJGfniTbIcDFPtee27Ydamb1DwBvkRbKw5IO8Domdg==", - "dependencies": { - "@babel/runtime": "^7.16.5", - "@polkadot/x-global": "8.2.2", - "@types/websocket": "^1.0.4", - "websocket": "^1.0.34" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" - }, - "node_modules/@sideway/address": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.3.tgz", - "integrity": "sha512-8ncEUtmnTsMmL7z1YPB47kPUq7LpKWJNFPsRzHiIajGC5uXlWGn+AmkYPcHNl8S4tcEGx+cnORnNYaw2wvL+LQ==", - "dependencies": { - "@hapi/hoek": "^9.0.0" - } - }, - "node_modules/@sideway/formula": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz", - "integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==" - }, - "node_modules/@sideway/pinpoint": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" - }, - "node_modules/@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "dependencies": { - "defer-to-connect": "^1.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@tsconfig/node10": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", - "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==" - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", - "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==" - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", - "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==" - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", - "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==" - }, - "node_modules/@types/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/chai": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.0.tgz", - "integrity": "sha512-/ceqdqeRraGolFTcfoXNiqjyQhZzbINDngeoAq9GoHa8PPK1yNzTaxWjA6BFWp5Ua9JpXEMSS4s5i9tS0hOJtw==" - }, - "node_modules/@types/long": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", - "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" - }, - "node_modules/@types/mocha": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-9.0.0.tgz", - "integrity": "sha512-scN0hAWyLVAvLR9AyW7HoFF5sJZglyBsbPuHO4fv7JRvfmPBMfp1ozWqOf/e4wwPNxezBZXRfWzMb6iFLgEVRA==" - }, - "node_modules/@types/node": { - "version": "17.0.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.8.tgz", - "integrity": "sha512-YofkM6fGv4gDJq78g4j0mMuGMkZVxZDgtU0JRdx6FgiJDG+0fY0GKVolOV8WqVmEhLCXkQRjwDdKyPxJp/uucg==" - }, - "node_modules/@types/node-fetch": { - "version": "2.5.12", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.12.tgz", - "integrity": "sha512-MKgC4dlq4kKNa/mYrwpKfzQMB5X3ee5U6fSprkKpToBqBmX4nFZL9cW5jl6sWn+xpRJ7ypWh2yyqqr8UUCstSw==", - "dependencies": { - "@types/node": "*", - "form-data": "^3.0.0" - } - }, - "node_modules/@types/pbkdf2": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", - "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/websocket": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@types/websocket/-/websocket-1.0.4.tgz", - "integrity": "sha512-qn1LkcFEKK8RPp459jkjzsfpbsx36BBt3oC3pITYtkoBw/aVX+EZFa5j3ThCRTNpLFvIMr5dSTD4RaMdilIOpA==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@ungap/promise-all-settled": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", - "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==" - }, - "node_modules/accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "dependencies": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/aes-js": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", - "integrity": "sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0=" - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "node_modules/asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "engines": { - "node": "*" - } - }, - "node_modules/async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" - }, - "node_modules/axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "dependencies": { - "follow-redirects": "^1.14.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "node_modules/bcrypt-pbkdf/node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - }, - "node_modules/bech32": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", - "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" - }, - "node_modules/bignumber.js": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz", - "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==", - "engines": { - "node": "*" - } - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dependencies": { - "file-uri-to-path": "1.0.0" - } - }, - "node_modules/blakejs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.1.tgz", - "integrity": "sha512-bLG6PHOCZJKNshTjGRBvET0vTciwQE6zFKOKKXPDJfwFBd4Ac0yBfPZqcGvGJap50l7ktvlpFqc2jGVaUgbJgg==" - }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, - "node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/body-parser": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.1.tgz", - "integrity": "sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA==", - "dependencies": { - "bytes": "3.1.1", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.8.1", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.9.6", - "raw-body": "2.4.2", - "type-is": "~1.6.18" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" - }, - "node_modules/browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" - }, - "node_modules/browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "node_modules/browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "dependencies": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "node_modules/browserify-rsa/node_modules/bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" - }, - "node_modules/browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "dependencies": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "node_modules/browserify-sign/node_modules/bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" - }, - "node_modules/bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", - "dependencies": { - "base-x": "^3.0.2" - } - }, - "node_modules/bs58check": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", - "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", - "dependencies": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-to-arraybuffer": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz", - "integrity": "sha1-YGSkD6dutDxyOrqe+PbhIW0QURo=" - }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" - }, - "node_modules/bufferutil": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.6.tgz", - "integrity": "sha512-jduaYOYtnio4aIAyc6UbvPCVcgq7nYpVnucyxr6eCYg/Woad9Hf/oxxBRDnGGjPfjUm6j5O/uBWhIu4iLebFaw==", - "hasInstallScript": true, - "dependencies": { - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=6.14.2" - } - }, - "node_modules/bytes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", - "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cacheable-request/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "node_modules/chai": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz", - "integrity": "sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==", - "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^3.0.1", - "get-func-name": "^2.0.0", - "pathval": "^1.1.1", - "type-detect": "^4.0.5" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", - "engines": { - "node": "*" - } - }, - "node_modules/chokidar": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", - "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" - }, - "node_modules/cids": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz", - "integrity": "sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "buffer": "^5.5.0", - "class-is": "^1.1.0", - "multibase": "~0.6.0", - "multicodec": "^1.0.0", - "multihashes": "~0.4.15" - }, - "engines": { - "node": ">=4.0.0", - "npm": ">=3.0.0" - } - }, - "node_modules/cids/node_modules/multicodec": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz", - "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "buffer": "^5.6.0", - "varint": "^5.0.0" - } - }, - "node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/class-is": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz", - "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==" - }, - "node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dependencies": { - "mimic-response": "^1.0.0" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-hash": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/content-hash/-/content-hash-2.5.2.tgz", - "integrity": "sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw==", - "dependencies": { - "cids": "^0.7.1", - "multicodec": "^0.5.5", - "multihashes": "^0.4.15" - } - }, - "node_modules/content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "node_modules/cookiejar": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.3.tgz", - "integrity": "sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ==" - }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "node_modules/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/crc-32": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz", - "integrity": "sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==", - "dependencies": { - "exit-on-epipe": "~1.0.1", - "printj": "~1.1.0" - }, - "bin": { - "crc32": "bin/crc32.njs" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "node_modules/create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "node_modules/create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" - }, - "node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - }, - "engines": { - "node": "*" - } - }, - "node_modules/d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/debug/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dependencies": { - "mimic-response": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/deep-eql": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", - "dependencies": { - "type-detect": "^4.0.0" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" - }, - "node_modules/defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" - }, - "node_modules/define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dependencies": { - "object-keys": "^1.0.12" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "node_modules/diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "node_modules/dom-walk": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", - "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" - }, - "node_modules/duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" - }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/ed2curve": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/ed2curve/-/ed2curve-0.3.0.tgz", - "integrity": "sha512-8w2fmmq3hv9rCrcI7g9hms2pMunQr1JINfcjwR9tAyZqhtyaMN991lF/ZfHfr5tzZQ8c7y7aBgZbjfbd0fjFwQ==", - "dependencies": { - "tweetnacl": "1.x.x" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "node_modules/elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/err-code": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", - "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-abstract": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", - "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", - "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.1", - "is-string": "^1.0.7", - "is-weakref": "^1.0.1", - "object-inspect": "^1.11.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es5-ext": { - "version": "0.10.53", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", - "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", - "dependencies": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.3", - "next-tick": "~1.0.0" - } - }, - "node_modules/es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/eth-ens-namehash": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz", - "integrity": "sha1-IprEbsqG1S4MmR58sq74P/D2i88=", - "dependencies": { - "idna-uts46-hx": "^2.3.1", - "js-sha3": "^0.5.7" - } - }, - "node_modules/eth-ens-namehash/node_modules/js-sha3": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=" - }, - "node_modules/eth-lib": { - "version": "0.1.29", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz", - "integrity": "sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==", - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "nano-json-stream-parser": "^0.1.2", - "servify": "^0.1.12", - "ws": "^3.0.0", - "xhr-request-promise": "^0.1.2" - } - }, - "node_modules/eth-lib/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/eth-lib/node_modules/ws": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", - "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", - "dependencies": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" - } - }, - "node_modules/ethereum-bloom-filters": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz", - "integrity": "sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA==", - "dependencies": { - "js-sha3": "^0.8.0" - } - }, - "node_modules/ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", - "dependencies": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" - } - }, - "node_modules/ethereumjs-util": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.3.tgz", - "integrity": "sha512-y+82tEbyASO0K0X1/SRhbJJoAlfcvq8JbrG4a5cjrOks7HS/36efU/0j2flxCPOUM++HFahk33kr/ZxyC4vNuw==", - "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/ethereumjs-util/node_modules/@types/bn.js": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", - "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/ethereumjs-util/node_modules/bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" - }, - "node_modules/ethers": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.5.3.tgz", - "integrity": "sha512-fTT4WT8/hTe/BLwRUtl7I5zlpF3XC3P/Xwqxc5AIP2HGlH15qpmjs0Ou78az93b1rLITzXLFxoNX63B8ZbUd7g==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abi": "5.5.0", - "@ethersproject/abstract-provider": "5.5.1", - "@ethersproject/abstract-signer": "5.5.0", - "@ethersproject/address": "5.5.0", - "@ethersproject/base64": "5.5.0", - "@ethersproject/basex": "5.5.0", - "@ethersproject/bignumber": "5.5.0", - "@ethersproject/bytes": "5.5.0", - "@ethersproject/constants": "5.5.0", - "@ethersproject/contracts": "5.5.0", - "@ethersproject/hash": "5.5.0", - "@ethersproject/hdnode": "5.5.0", - "@ethersproject/json-wallets": "5.5.0", - "@ethersproject/keccak256": "5.5.0", - "@ethersproject/logger": "5.5.0", - "@ethersproject/networks": "5.5.2", - "@ethersproject/pbkdf2": "5.5.0", - "@ethersproject/properties": "5.5.0", - "@ethersproject/providers": "5.5.2", - "@ethersproject/random": "5.5.1", - "@ethersproject/rlp": "5.5.0", - "@ethersproject/sha2": "5.5.0", - "@ethersproject/signing-key": "5.5.0", - "@ethersproject/solidity": "5.5.0", - "@ethersproject/strings": "5.5.0", - "@ethersproject/transactions": "5.5.0", - "@ethersproject/units": "5.5.0", - "@ethersproject/wallet": "5.5.0", - "@ethersproject/web": "5.5.1", - "@ethersproject/wordlists": "5.5.0" - } - }, - "node_modules/ethjs-unit": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", - "integrity": "sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk=", - "dependencies": { - "bn.js": "4.11.6", - "number-to-bn": "1.7.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/ethjs-unit/node_modules/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/exit-on-epipe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz", - "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/express": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.2.tgz", - "integrity": "sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg==", - "dependencies": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.4.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.9.6", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.17.2", - "serve-static": "1.14.2", - "setprototypeof": "1.2.0", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/ext": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.6.0.tgz", - "integrity": "sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==", - "dependencies": { - "type": "^2.5.0" - } - }, - "node_modules/ext/node_modules/type": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz", - "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==" - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "engines": [ - "node >=0.6.0" - ] - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "node_modules/file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/filter-console": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/filter-console/-/filter-console-0.1.1.tgz", - "integrity": "sha512-zrXoV1Uaz52DqPs+qEwNJWJFAWZpYJ47UNmpN9q4j+/EYsz85uV0DC9k8tRND5kYmoVzL0W+Y75q4Rg8sRJCdg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "bin": { - "flat": "cli.js" - } - }, - "node_modules/follow-redirects": { - "version": "1.14.7", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.7.tgz", - "integrity": "sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" - }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "engines": { - "node": "*" - } - }, - "node_modules/form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-extra": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "node_modules/fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "dependencies": { - "minipass": "^2.6.0" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", - "engines": { - "node": "*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "node_modules/glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/global": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", - "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", - "dependencies": { - "min-document": "^2.19.0", - "process": "^0.11.10" - } - }, - "node_modules/got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "dependencies": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.9", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", - "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" - }, - "node_modules/growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "engines": { - "node": ">=4.x" - } - }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "engines": { - "node": ">=4" - } - }, - "node_modules/has-symbol-support-x": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", - "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==", - "engines": { - "node": "*" - } - }, - "node_modules/has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-to-string-tag-x": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", - "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", - "dependencies": { - "has-symbol-support-x": "^1.4.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "bin": { - "he": "bin/he" - } - }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" - }, - "node_modules/http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" - }, - "node_modules/http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/http-https": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz", - "integrity": "sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs=" - }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/idna-uts46-hx": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz", - "integrity": "sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==", - "dependencies": { - "punycode": "2.1.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/idna-uts46-hx/node_modules/punycode": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", - "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", - "engines": { - "node": ">=6" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "dependencies": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ip-regex": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", - "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", - "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", - "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" - }, - "node_modules/is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-hex-prefixed": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", - "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=", - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", - "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", - "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-retry-allowed": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", - "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", - "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.8.tgz", - "integrity": "sha512-HqH41TNZq2fgtGT8WHVFVJhBVGuY3AnP3Q36K8JKXUxSxRgk/d+7NjmwG2vo2mYmXK8UYZKu0qH8bVP5gEisjA==", - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.18.5", - "foreach": "^2.0.5", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-url": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", - "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==" - }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is2": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/is2/-/is2-2.0.7.tgz", - "integrity": "sha512-4vBQoURAXC6hnLFxD4VW7uc04XiwTTl/8ydYJxKvPwkWQrSjInkuM5VZVg6BGr1/natq69zDuvO9lGpLClJqvA==", - "dependencies": { - "deep-is": "^0.1.3", - "ip-regex": "^4.1.0", - "is-url": "^1.2.4" - }, - "engines": { - "node": ">=v0.10.0" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "node_modules/iso-random-stream": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/iso-random-stream/-/iso-random-stream-2.0.2.tgz", - "integrity": "sha512-yJvs+Nnelic1L2vH2JzWvvPQFA4r7kSTnpST/+LkAQjSz0hos2oqLD+qIVi9Qk38Hoe7mNDt3j0S27R58MVjLQ==", - "dependencies": { - "events": "^3.3.0", - "readable-stream": "^3.4.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "node_modules/isurl": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", - "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", - "dependencies": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/joi": { - "version": "17.5.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.5.0.tgz", - "integrity": "sha512-R7hR50COp7StzLnDi4ywOXHrBrgNXuUUfJWIR5lPY5Bm/pOD3jZaTwpluUXVLRWcoWZxkrHBBJ5hLxgnlehbdw==", - "dependencies": { - "@hapi/hoek": "^9.0.0", - "@hapi/topo": "^5.0.0", - "@sideway/address": "^4.1.3", - "@sideway/formula": "^3.0.0", - "@sideway/pinpoint": "^2.0.0" - } - }, - "node_modules/js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - }, - "node_modules/json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" - }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" - }, - "node_modules/json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/keccak": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz", - "integrity": "sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ==", - "hasInstallScript": true, - "dependencies": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/keypair": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/keypair/-/keypair-1.0.4.tgz", - "integrity": "sha512-zwhgOhhniaL7oxMgUMKKw5219PWWABMO+dgMnzJOQ2/5L3XJtTJGhW2PEXlxXj9zaccdReZJZ83+4NPhVfNVDg==" - }, - "node_modules/keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "dependencies": { - "json-buffer": "3.0.0" - } - }, - "node_modules/libp2p-crypto": { - "version": "0.20.0", - "resolved": "https://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.20.0.tgz", - "integrity": "sha512-WgIW9rYcWaO/5j2T6NW3R6Q46yvp2ZfFErqRMbi4/pOTL3T7+OROYpL/1iWVksWkXyurU/t2qFsIijWMxR5C4Q==", - "dependencies": { - "err-code": "^3.0.1", - "iso-random-stream": "^2.0.0", - "keypair": "^1.0.4", - "multiformats": "^9.4.5", - "noble-ed25519": "^1.2.6", - "noble-secp256k1": "^1.2.10", - "node-forge": "^0.10.0", - "pem-jwk": "^2.0.0", - "protobufjs": "^6.11.2", - "uint8arrays": "^3.0.0", - "ursa-optional": "^0.10.1" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-symbols/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/log-symbols/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/log-symbols/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/log-symbols/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/log-symbols/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "node_modules/lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" - }, - "node_modules/md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/memorystream": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", - "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=", - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/micro-base": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/micro-base/-/micro-base-0.10.2.tgz", - "integrity": "sha512-lqqJrT7lfJtDmmiQ4zRLZuIJBk96t0RAc5pCrrWpL9zDeH5i/SUL85mku9HqzTI/OCZ8EQ3aicbMW+eK5Nyu5w==" - }, - "node_modules/miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "dependencies": { - "mime-db": "1.51.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/min-document": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", - "dependencies": { - "dom-walk": "^0.1.0" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" - }, - "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" - }, - "node_modules/minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "dependencies": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "node_modules/minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "dependencies": { - "minipass": "^2.9.0" - } - }, - "node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/mkdirp-promise": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz", - "integrity": "sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE=", - "deprecated": "This package is broken and no longer maintained. 'mkdirp' itself supports promises now, please switch to that.", - "dependencies": { - "mkdirp": "*" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mocha": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.1.3.tgz", - "integrity": "sha512-Xcpl9FqXOAYqI3j79pEtHBBnQgVXIhpULjGQa7DVb0Po+VzmSIK9kanAiWLHoRR/dbZ2qpdPshuXr8l1VaHCzw==", - "dependencies": { - "@ungap/promise-all-settled": "1.1.2", - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.2", - "debug": "4.3.2", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.1.7", - "growl": "1.10.5", - "he": "1.2.0", - "js-yaml": "4.1.0", - "log-symbols": "4.1.0", - "minimatch": "3.0.4", - "ms": "2.1.3", - "nanoid": "3.1.25", - "serialize-javascript": "6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "which": "2.0.2", - "workerpool": "6.1.5", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mochajs" - } - }, - "node_modules/mocha/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/mocha/node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/mocha/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/mocha/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/mocha/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/mocha/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/mocha/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/mocha/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/mocha/node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/mocha/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mock-fs": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.14.0.tgz", - "integrity": "sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw==" - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/multibase": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.6.1.tgz", - "integrity": "sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - }, - "node_modules/multicodec": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-0.5.7.tgz", - "integrity": "sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "varint": "^5.0.0" - } - }, - "node_modules/multiformats": { - "version": "9.5.8", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.5.8.tgz", - "integrity": "sha512-GY154q1yPPdHX4ArXHE8Z1Mm9BxZcJetzEqfwQg/ongo91qIJDHJEio3zboHIKGEvBLrhVqKwlRuDqwa7+xECQ==" - }, - "node_modules/multihashes": { - "version": "0.4.21", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz", - "integrity": "sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==", - "dependencies": { - "buffer": "^5.5.0", - "multibase": "^0.7.0", - "varint": "^5.0.0" - } - }, - "node_modules/multihashes/node_modules/multibase": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz", - "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - }, - "node_modules/nan": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", - "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==" - }, - "node_modules/nano-json-stream-parser": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz", - "integrity": "sha1-DMj20OK2IrR5xA1JnEbWS3Vcb18=" - }, - "node_modules/nanoid": { - "version": "3.1.25", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.25.tgz", - "integrity": "sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" - }, - "node_modules/nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" - }, - "node_modules/noble-ed25519": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/noble-ed25519/-/noble-ed25519-1.2.6.tgz", - "integrity": "sha512-zfnWqg9FVMp8CnzUpAjbt1nDXpDjCvxYiCXdnW1mY8zQHw/6twUlkFm14VPdojVzc0kcd+i9zT79+26GcNbsuQ==", - "deprecated": "Switch to namespaced @noble/ed25519 for security and feature updates" - }, - "node_modules/noble-secp256k1": { - "version": "1.2.14", - "resolved": "https://registry.npmjs.org/noble-secp256k1/-/noble-secp256k1-1.2.14.tgz", - "integrity": "sha512-GSCXyoZBUaaPwVWdYncMEmzlSUjF9J/YeEHpklYJCyg8wPuJP3NzDx0BkiwArzINkdX2HJHvUJhL6vVWPOQQcg==", - "deprecated": "Switch to namespaced @noble/secp256k1 for security and feature updates" - }, - "node_modules/node-addon-api": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" - }, - "node_modules/node-fetch": { - "version": "2.6.6", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.6.tgz", - "integrity": "sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - } - }, - "node_modules/node-forge": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", - "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/node-gyp-build": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz", - "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==", - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/npm-run-all": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", - "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "chalk": "^2.4.1", - "cross-spawn": "^6.0.5", - "memorystream": "^0.3.1", - "minimatch": "^3.0.4", - "pidtree": "^0.3.0", - "read-pkg": "^3.0.0", - "shell-quote": "^1.6.1", - "string.prototype.padend": "^3.0.0" - }, - "bin": { - "npm-run-all": "bin/npm-run-all/index.js", - "run-p": "bin/run-p/index.js", - "run-s": "bin/run-s/index.js" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/number-to-bn": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", - "integrity": "sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA=", - "dependencies": { - "bn.js": "4.11.6", - "strip-hex-prefix": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/number-to-bn/node_modules/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" - }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "engines": { - "node": "*" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/oboe": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.5.tgz", - "integrity": "sha1-VVQoTFQ6ImbXo48X4HOCH73jk80=", - "dependencies": { - "http-https": "^1.0.0" - } - }, - "node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "engines": { - "node": ">=4" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-timeout": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", - "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", - "dependencies": { - "p-finally": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "dependencies": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/parse-headers": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.4.tgz", - "integrity": "sha512-psZ9iZoCNFLrgRjZ1d8mn0h9WRqJwFxM9q3x7iUjN/YT2OksthDJ5TiPCu2F38kS4zutqfW+YdVVkBZZx3/1aw==" - }, - "node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "engines": { - "node": ">=4" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "node_modules/path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dependencies": { - "pify": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", - "engines": { - "node": "*" - } - }, - "node_modules/pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/peer-id": { - "version": "0.15.4", - "resolved": "https://registry.npmjs.org/peer-id/-/peer-id-0.15.4.tgz", - "integrity": "sha512-MDoBIMZYwQIAHaZQUwsIcvoFgdbIl5GtZMwSkXpIYvc5v0TSDv+u8WsTKrKt2Vv28tHFFDJQdVzu3T4qTPzK+w==", - "dependencies": { - "class-is": "^1.1.0", - "libp2p-crypto": "^0.20.0", - "minimist": "^1.2.5", - "multiformats": "^9.4.5", - "protobufjs": "^6.10.2", - "uint8arrays": "^3.0.0" - }, - "bin": { - "peer-id": "src/bin.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/pem-jwk": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pem-jwk/-/pem-jwk-2.0.0.tgz", - "integrity": "sha512-rFxu7rVoHgQ5H9YsP50dDWf0rHjreVA2z0yPiWr5WdH/UHb29hKtF7h6l8vNd1cbYR1t0QL+JKhW55a2ZV4KtA==", - "dependencies": { - "asn1.js": "^5.0.1" - }, - "bin": { - "pem-jwk": "bin/pem-jwk.js" - }, - "engines": { - "node": ">=5.10.0" - } - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pidtree": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", - "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", - "bin": { - "pidtree": "bin/pidtree.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "engines": { - "node": ">=4" - } - }, - "node_modules/polkadot-launch": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/polkadot-launch/-/polkadot-launch-2.1.0.tgz", - "integrity": "sha512-f1QXjSIKIWclphTQQeSrp+bt+n6y674X0iPUWPLvFcjPkAX+WN0T9Dcl98xr/HVVxwOWhQmG8NCUUSEN66rESA==", - "dependencies": { - "@polkadot/api": "^6.10.3", - "@polkadot/keyring": "^8.0.5", - "@polkadot/types": "^6.10.3", - "@polkadot/util": "^8.0.5", - "@polkadot/util-crypto": "^8.0.5", - "@types/chai": "^4.2.22", - "@types/mocha": "^9.0.0", - "chai": "^4.3.4", - "ethers": "^5.4.7", - "filter-console": "^0.1.1", - "libp2p-crypto": "^0.20.0", - "mocha": "^9.1.2", - "peer-id": "^0.15.3", - "tcp-port-used": "^1.0.2", - "ts-node": "^10.3.0", - "web3": "^1.6.0", - "web3-core": "^1.6.0", - "web3-eth": "^1.6.0", - "yargs": "^15.4.1" - }, - "bin": { - "polkadot-launch": "dist/cli.js" - } - }, - "node_modules/prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "engines": { - "node": ">=4" - } - }, - "node_modules/printj": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz", - "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==", - "bin": { - "printj": "bin/printj.njs" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/protobufjs": { - "version": "6.11.2", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.2.tgz", - "integrity": "sha512-4BQJoPooKJl2G9j3XftkIXjoC9C0Av2NOrWmbLWT1vH32GcSUHjM0Arra6UfTsVyfMAuFzaLucXn1sadxJydAw==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - }, - "bin": { - "pbjs": "bin/pbjs", - "pbts": "bin/pbts" - } - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" - }, - "node_modules/public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/qs": { - "version": "6.9.6", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", - "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==", - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/query-string": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", - "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", - "dependencies": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz", - "integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==", - "dependencies": { - "bytes": "3.1.1", - "http-errors": "1.8.1", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "dependencies": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" - }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/request/node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/request/node_modules/qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" - }, - "node_modules/resolve": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.21.0.tgz", - "integrity": "sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA==", - "dependencies": { - "is-core-module": "^2.8.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "dependencies": { - "lowercase-keys": "^1.0.0" - } - }, - "node_modules/ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/rlp": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz", - "integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==", - "dependencies": { - "bn.js": "^5.2.0" - }, - "bin": { - "rlp": "bin/rlp" - } - }, - "node_modules/rlp/node_modules/bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" - }, - "node_modules/rxjs": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.1.tgz", - "integrity": "sha512-KExVEeZWxMZnZhUZtsJcFwz8IvPvgu4G2Z2QyqjZQzUGr32KDYuSxrEYO4w3tFFNbfLozcrKUTvTPi+E9ywJkQ==", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" - }, - "node_modules/secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", - "hasInstallScript": true, - "dependencies": { - "elliptic": "^6.5.4", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/send": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", - "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", - "dependencies": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "1.8.1", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/serve-static": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", - "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/servify": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz", - "integrity": "sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==", - "dependencies": { - "body-parser": "^1.16.0", - "cors": "^2.8.1", - "express": "^4.14.0", - "request": "^2.79.0", - "xhr": "^2.3.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shell-quote": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", - "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==" - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/simple-get": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.1.tgz", - "integrity": "sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==", - "dependencies": { - "decompress-response": "^3.3.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", - "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==" - }, - "node_modules/sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sshpk/node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - }, - "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string.prototype.padend": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.3.tgz", - "integrity": "sha512-jNIIeokznm8SD/TZISQsZKYu7RJyheFNt84DUPrh482GC8RVp2MKqm2O5oBRdGxbDQoXrhhWtPIWQOiy20svUg==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-hex-prefix": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", - "integrity": "sha1-DF8VX+8RUTczd96du1iNoFUA428=", - "dependencies": { - "is-hex-prefixed": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/swarm-js": { - "version": "0.1.40", - "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.40.tgz", - "integrity": "sha512-yqiOCEoA4/IShXkY3WKwP5PvZhmoOOD8clsKA7EEcRILMkTEYHCQ21HDCAcVpmIxZq4LyZvWeRJ6quIyHk1caA==", - "dependencies": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^7.1.0", - "mime-types": "^2.1.16", - "mkdirp-promise": "^5.0.1", - "mock-fs": "^4.1.0", - "setimmediate": "^1.0.5", - "tar": "^4.0.2", - "xhr-request": "^1.0.1" - } - }, - "node_modules/swarm-js/node_modules/get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "engines": { - "node": ">=4" - } - }, - "node_modules/swarm-js/node_modules/got": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", - "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", - "dependencies": { - "decompress-response": "^3.2.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-plain-obj": "^1.1.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "p-cancelable": "^0.3.0", - "p-timeout": "^1.1.1", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "url-parse-lax": "^1.0.0", - "url-to-options": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/swarm-js/node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/swarm-js/node_modules/p-cancelable": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", - "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/swarm-js/node_modules/prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/swarm-js/node_modules/url-parse-lax": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", - "dependencies": { - "prepend-http": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/tar": { - "version": "4.4.19", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", - "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", - "dependencies": { - "chownr": "^1.1.4", - "fs-minipass": "^1.2.7", - "minipass": "^2.9.0", - "minizlib": "^1.3.3", - "mkdirp": "^0.5.5", - "safe-buffer": "^5.2.1", - "yallist": "^3.1.1" - }, - "engines": { - "node": ">=4.5" - } - }, - "node_modules/tcp-port-used": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/tcp-port-used/-/tcp-port-used-1.0.2.tgz", - "integrity": "sha512-l7ar8lLUD3XS1V2lfoJlCBaeoaWo/2xfYt81hM7VlvR4RrMVFqfmzfhLVk40hAb368uitje5gPtBRL1m/DGvLA==", - "dependencies": { - "debug": "4.3.1", - "is2": "^2.0.6" - } - }, - "node_modules/tcp-port-used/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/tcp-port-used/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", - "engines": { - "node": ">=6" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - }, - "node_modules/ts-node": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.4.0.tgz", - "integrity": "sha512-g0FlPvvCXSIO1JDF6S232P5jPYqBkRL9qly81ZgAOSU7rwI0stphCgd2kLiCrU9DjQCrJMWEqcNSjQL02s6d8A==", - "dependencies": { - "@cspotcode/source-map-support": "0.7.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, - "node_modules/ts-node/node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tweetnacl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" - }, - "node_modules/type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "engines": { - "node": ">=4" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/typescript": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.4.tgz", - "integrity": "sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg==", - "peer": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/uint8arrays": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", - "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", - "dependencies": { - "multiformats": "^9.4.2" - } - }, - "node_modules/ultron": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", - "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" - }, - "node_modules/unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", - "dependencies": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "dependencies": { - "prepend-http": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/url-set-query": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz", - "integrity": "sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk=" - }, - "node_modules/url-to-options": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", - "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=", - "engines": { - "node": ">= 4" - } - }, - "node_modules/ursa-optional": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/ursa-optional/-/ursa-optional-0.10.2.tgz", - "integrity": "sha512-TKdwuLboBn7M34RcvVTuQyhvrA8gYKapuVdm0nBP0mnBc7oECOfUQZrY91cefL3/nm64ZyrejSRrhTVdX7NG/A==", - "hasInstallScript": true, - "dependencies": { - "bindings": "^1.5.0", - "nan": "^2.14.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/utf-8-validate": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.8.tgz", - "integrity": "sha512-k4dW/Qja1BYDl2qD4tOMB9PFVha/UJtxTc1cXYOe3WwA/2m0Yn4qB7wLMpJyLJ/7DR0XnTut3HsCSzDT4ZvKgA==", - "hasInstallScript": true, - "dependencies": { - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=6.14.2" - } - }, - "node_modules/utf8": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", - "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==" - }, - "node_modules/util": { - "version": "0.12.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz", - "integrity": "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==", - "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "safe-buffer": "^5.1.2", - "which-typed-array": "^1.1.2" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/varint": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "node_modules/wait-on": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-6.0.0.tgz", - "integrity": "sha512-tnUJr9p5r+bEYXPUdRseolmz5XqJTTj98JgOsfBn7Oz2dxfE2g3zw1jE+Mo8lopM3j3et/Mq1yW7kKX6qw7RVw==", - "dependencies": { - "axios": "^0.21.1", - "joi": "^17.4.0", - "lodash": "^4.17.21", - "minimist": "^1.2.5", - "rxjs": "^7.1.0" - }, - "bin": { - "wait-on": "bin/wait-on" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/web3": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.6.1.tgz", - "integrity": "sha512-c299lLiyb2/WOcxh7TinwvbATaMmrgNIeAzbLbmOKHI0LcwyfsB1eu2ReOIrfrCYDYRW2KAjYr7J7gHawqDNPQ==", - "hasInstallScript": true, - "dependencies": { - "web3-bzz": "1.6.1", - "web3-core": "1.6.1", - "web3-eth": "1.6.1", - "web3-eth-personal": "1.6.1", - "web3-net": "1.6.1", - "web3-shh": "1.6.1", - "web3-utils": "1.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-bzz": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.6.1.tgz", - "integrity": "sha512-JbnFNbRlwwHJZPtVuCxo7rC4U4OTg+mPsyhjgPQJJhS0a6Y54OgVWYk9UA/95HqbmTJwTtX329gJoSsseEfrng==", - "hasInstallScript": true, - "dependencies": { - "@types/node": "^12.12.6", - "got": "9.6.0", - "swarm-js": "^0.1.40" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-bzz/node_modules/@types/node": { - "version": "12.20.41", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.41.tgz", - "integrity": "sha512-f6xOqucbDirG7LOzedpvzjP3UTmHttRou3Mosx3vL9wr9AIQGhcPgVnqa8ihpZYnxyM1rxeNCvTyukPKZtq10Q==" - }, - "node_modules/web3-core": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.6.1.tgz", - "integrity": "sha512-m+b7UfYvU5cQUAh6NRfxRzH/5B3to1AdEQi1HIQt570cDWlObOOmoO9tY6iJnI5w4acxIO19LqjDMqEJGBYyRQ==", - "dependencies": { - "@types/bn.js": "^4.11.5", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.6.1", - "web3-core-method": "1.6.1", - "web3-core-requestmanager": "1.6.1", - "web3-utils": "1.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-helpers": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.6.1.tgz", - "integrity": "sha512-om2PZvK1uoWcgMq6JfcSx3241LEIVF6qi2JuHz2SLKiKEW5UsBUaVx0mNCmcZaiuYQCyOsLS3r33q5AdM+v8ng==", - "dependencies": { - "web3-eth-iban": "1.6.1", - "web3-utils": "1.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-method": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.6.1.tgz", - "integrity": "sha512-szH5KyIWIaULQDBdDvevQUCHV9lsExJ/oV0ePqK+w015D2SdMPMuhii0WB+HCePaksWO+rr/GAypvV9g2T3N+w==", - "dependencies": { - "@ethersproject/transactions": "^5.0.0-beta.135", - "web3-core-helpers": "1.6.1", - "web3-core-promievent": "1.6.1", - "web3-core-subscriptions": "1.6.1", - "web3-utils": "1.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-promievent": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.6.1.tgz", - "integrity": "sha512-byJ5s2MQxrWdXd27pWFmujfzsTZK4ik8rDgIV1RFDFc+rHZ2nZhq+VWk7t/Nkrj7EaVXncEgTdPEHc18nx+ocQ==", - "dependencies": { - "eventemitter3": "4.0.4" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-promievent/node_modules/eventemitter3": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", - "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==" - }, - "node_modules/web3-core-requestmanager": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.6.1.tgz", - "integrity": "sha512-4y7etYEUtkfflyYVBfN1oJtCbVFNhNX1omlEYzezhTnPj3/dT7n+dhUXcqvIhx9iKA13unGfpFge80XNFfcB8A==", - "dependencies": { - "util": "^0.12.0", - "web3-core-helpers": "1.6.1", - "web3-providers-http": "1.6.1", - "web3-providers-ipc": "1.6.1", - "web3-providers-ws": "1.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-subscriptions": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.6.1.tgz", - "integrity": "sha512-WZwxsYttIojyGQ5RqxuQcKg0IJdDCFpUe4EncS3QKZwxPqWzGmgyLwE0rm7tP+Ux1waJn5CUaaoSCBxWGSun1g==", - "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-subscriptions/node_modules/eventemitter3": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", - "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==" - }, - "node_modules/web3-core/node_modules/@types/node": { - "version": "12.20.41", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.41.tgz", - "integrity": "sha512-f6xOqucbDirG7LOzedpvzjP3UTmHttRou3Mosx3vL9wr9AIQGhcPgVnqa8ihpZYnxyM1rxeNCvTyukPKZtq10Q==" - }, - "node_modules/web3-eth": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.6.1.tgz", - "integrity": "sha512-kOV1ZgCKypSo5BQyltRArS7ZC3bRpIKAxSgzl7pUFinUb/MxfbM9KGeNxUXoCfTSErcCQJaDjcS6bSre5EMKuQ==", - "dependencies": { - "web3-core": "1.6.1", - "web3-core-helpers": "1.6.1", - "web3-core-method": "1.6.1", - "web3-core-subscriptions": "1.6.1", - "web3-eth-abi": "1.6.1", - "web3-eth-accounts": "1.6.1", - "web3-eth-contract": "1.6.1", - "web3-eth-ens": "1.6.1", - "web3-eth-iban": "1.6.1", - "web3-eth-personal": "1.6.1", - "web3-net": "1.6.1", - "web3-utils": "1.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-abi": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.6.1.tgz", - "integrity": "sha512-svhYrAlXP9XQtV7poWKydwDJq2CaNLMtmKydNXoOBLcQec6yGMP+v20pgrxF2H6wyTK+Qy0E3/5ciPOqC/VuoQ==", - "dependencies": { - "@ethersproject/abi": "5.0.7", - "web3-utils": "1.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-abi/node_modules/@ethersproject/abi": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.7.tgz", - "integrity": "sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw==", - "dependencies": { - "@ethersproject/address": "^5.0.4", - "@ethersproject/bignumber": "^5.0.7", - "@ethersproject/bytes": "^5.0.4", - "@ethersproject/constants": "^5.0.4", - "@ethersproject/hash": "^5.0.4", - "@ethersproject/keccak256": "^5.0.3", - "@ethersproject/logger": "^5.0.5", - "@ethersproject/properties": "^5.0.3", - "@ethersproject/strings": "^5.0.4" - } - }, - "node_modules/web3-eth-accounts": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.6.1.tgz", - "integrity": "sha512-rGn3jwnuOKwaQRu4SiShz0YAQ87aVDBKs4HO43+XTCI1q1Y1jn3NOsG3BW9ZHaOckev4+zEyxze/Bsh2oEk24w==", - "dependencies": { - "@ethereumjs/common": "^2.5.0", - "@ethereumjs/tx": "^3.3.2", - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.8", - "ethereumjs-util": "^7.0.10", - "scrypt-js": "^3.0.1", - "uuid": "3.3.2", - "web3-core": "1.6.1", - "web3-core-helpers": "1.6.1", - "web3-core-method": "1.6.1", - "web3-utils": "1.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-accounts/node_modules/eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "node_modules/web3-eth-contract": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.6.1.tgz", - "integrity": "sha512-GXqTe3mF6kpbOAakiNc7wtJ120/gpuKMTZjuGFKeeY8aobRLfbfgKzM9IpyqVZV2v5RLuGXDuurVN2KPgtu3hQ==", - "dependencies": { - "@types/bn.js": "^4.11.5", - "web3-core": "1.6.1", - "web3-core-helpers": "1.6.1", - "web3-core-method": "1.6.1", - "web3-core-promievent": "1.6.1", - "web3-core-subscriptions": "1.6.1", - "web3-eth-abi": "1.6.1", - "web3-utils": "1.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-ens": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.6.1.tgz", - "integrity": "sha512-ngprtbnoRgxg8s1wXt9nXpD3h1P+p7XnKXrp/8GdFI9uDmrbSQPRfzBw86jdZgOmy78hAnWmrHI6pBInmgi2qQ==", - "dependencies": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "web3-core": "1.6.1", - "web3-core-helpers": "1.6.1", - "web3-core-promievent": "1.6.1", - "web3-eth-abi": "1.6.1", - "web3-eth-contract": "1.6.1", - "web3-utils": "1.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-iban": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.6.1.tgz", - "integrity": "sha512-91H0jXZnWlOoXmc13O9NuQzcjThnWyAHyDn5Yf7u6mmKOhpJSGF/OHlkbpXt1Y4v2eJdEPaVFa+6i8aRyagE7Q==", - "dependencies": { - "bn.js": "^4.11.9", - "web3-utils": "1.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-personal": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.6.1.tgz", - "integrity": "sha512-ItsC89Ln02+irzJjK6ALcLrMZfbVUCqVbmb/ieDKJ+eLW3pNkBNwoUzaydh92d5NzxNZgNxuQWVdlFyYX2hkEw==", - "dependencies": { - "@types/node": "^12.12.6", - "web3-core": "1.6.1", - "web3-core-helpers": "1.6.1", - "web3-core-method": "1.6.1", - "web3-net": "1.6.1", - "web3-utils": "1.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-personal/node_modules/@types/node": { - "version": "12.20.41", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.41.tgz", - "integrity": "sha512-f6xOqucbDirG7LOzedpvzjP3UTmHttRou3Mosx3vL9wr9AIQGhcPgVnqa8ihpZYnxyM1rxeNCvTyukPKZtq10Q==" - }, - "node_modules/web3-net": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.6.1.tgz", - "integrity": "sha512-gpnqKEIwfUHh5ik7wsQFlCje1DfcmGv+Sk7LCh1hCqn++HEDQxJ/mZCrMo11ZZpZHCH7c87imdxTg96GJnRxDw==", - "dependencies": { - "web3-core": "1.6.1", - "web3-core-method": "1.6.1", - "web3-utils": "1.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-providers-http": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.6.1.tgz", - "integrity": "sha512-xBoKOJxu10+kO3ikamXmBfrWZ/xpQOGy0ocdp7Y81B17En5TXELwlmMXt1UlIgWiyYDhjq4OwlH/VODYqHXy3A==", - "dependencies": { - "web3-core-helpers": "1.6.1", - "xhr2-cookies": "1.1.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-providers-ipc": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.6.1.tgz", - "integrity": "sha512-anyoIZlpMzwEQI4lwylTzDrHsVp20v0QUtSTp2B5jInBinmQtyCE7vnbX20jEQ4j5uPwfJabKNtoJsk6a3O4WQ==", - "dependencies": { - "oboe": "2.1.5", - "web3-core-helpers": "1.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-providers-ws": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.6.1.tgz", - "integrity": "sha512-FWMEFYb4rYFYRgSFBf/O1Ex4p/YKSlN+JydCtdlJwRimd89qm95CTfs4xGjCskwvXMjV2sarH+f1NPwJXicYpg==", - "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.6.1", - "websocket": "^1.0.32" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-providers-ws/node_modules/eventemitter3": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", - "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==" - }, - "node_modules/web3-shh": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.6.1.tgz", - "integrity": "sha512-oP00HbAtybLCGlLOZUYXOdeB9xq88k2l0TtStvKBtmFqRt+zVk5TxEeuOnVPRxNhcA2Un8RUw6FtvgZlWStu9A==", - "hasInstallScript": true, - "dependencies": { - "web3-core": "1.6.1", - "web3-core-method": "1.6.1", - "web3-core-subscriptions": "1.6.1", - "web3-net": "1.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-utils": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.6.1.tgz", - "integrity": "sha512-RidGKv5kOkcerI6jQqDFDoTllQQqV+rPhTzZHhmbqtFObbYpU93uc+yG1LHivRTQhA6llIx67iudc/vzisgO+w==", - "dependencies": { - "bn.js": "^4.11.9", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - }, - "node_modules/websocket": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz", - "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==", - "dependencies": { - "bufferutil": "^4.0.1", - "debug": "^2.2.0", - "es5-ext": "^0.10.50", - "typedarray-to-buffer": "^3.1.5", - "utf-8-validate": "^5.0.2", - "yaeti": "^0.0.6" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/websocket/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/websocket/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" - }, - "node_modules/which-typed-array": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.7.tgz", - "integrity": "sha512-vjxaB4nfDqwKI0ws7wZpxIlde1XrLX5uB0ZjpfshgmapJMD7jJWhZI+yToJTqaFByF0eNBcYxbjmCzoRP7CfEw==", - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.18.5", - "foreach": "^2.0.5", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/workerpool": { - "version": "6.1.5", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.5.tgz", - "integrity": "sha512-XdKkCK0Zqc6w3iTxLckiuJ81tiD/o5rBE/m+nXpRCB+/Sq4DqkfXZ/x0jW02DG1tGsfUGXbTJyZDP+eu67haSw==" - }, - "node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "node_modules/ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xhr": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", - "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", - "dependencies": { - "global": "~4.4.0", - "is-function": "^1.0.1", - "parse-headers": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "node_modules/xhr-request": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz", - "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==", - "dependencies": { - "buffer-to-arraybuffer": "^0.0.5", - "object-assign": "^4.1.1", - "query-string": "^5.0.1", - "simple-get": "^2.7.0", - "timed-out": "^4.0.1", - "url-set-query": "^1.0.0", - "xhr": "^2.0.4" - } - }, - "node_modules/xhr-request-promise": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz", - "integrity": "sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==", - "dependencies": { - "xhr-request": "^1.1.0" - } - }, - "node_modules/xhr2-cookies": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz", - "integrity": "sha1-fXdEnQmZGX8VXLc7I99yUF7YnUg=", - "dependencies": { - "cookiejar": "^2.1.1" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" - }, - "node_modules/yaeti": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", - "integrity": "sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc=", - "engines": { - "node": ">=0.10.32" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - }, - "node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-unparser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", - "dependencies": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-unparser/node_modules/decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/yargs/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/yargs/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "engines": { - "node": ">=6" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - }, - "dependencies": { - "@babel/runtime": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.7.tgz", - "integrity": "sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ==", - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "@cspotcode/source-map-consumer": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz", - "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==" - }, - "@cspotcode/source-map-support": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz", - "integrity": "sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==", - "requires": { - "@cspotcode/source-map-consumer": "0.8.0" - } - }, - "@ethereumjs/common": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.0.tgz", - "integrity": "sha512-Cq2qS0FTu6O2VU1sgg+WyU9Ps0M6j/BEMHN+hRaECXCV/r0aI78u4N6p52QW/BDVhwWZpCdrvG8X7NJdzlpNUA==", - "requires": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.3" - } - }, - "@ethereumjs/tx": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.4.0.tgz", - "integrity": "sha512-WWUwg1PdjHKZZxPPo274ZuPsJCWV3SqATrEKQP1n2DrVYVP1aZIYpo/mFaA0BDoE0tIQmBeimRCEA0Lgil+yYw==", - "requires": { - "@ethereumjs/common": "^2.6.0", - "ethereumjs-util": "^7.1.3" - } - }, - "@ethersproject/abi": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.5.0.tgz", - "integrity": "sha512-loW7I4AohP5KycATvc0MgujU6JyCHPqHdeoo9z3Nr9xEiNioxa65ccdm1+fsoJhkuhdRtfcL8cfyGamz2AxZ5w==", - "requires": { - "@ethersproject/address": "^5.5.0", - "@ethersproject/bignumber": "^5.5.0", - "@ethersproject/bytes": "^5.5.0", - "@ethersproject/constants": "^5.5.0", - "@ethersproject/hash": "^5.5.0", - "@ethersproject/keccak256": "^5.5.0", - "@ethersproject/logger": "^5.5.0", - "@ethersproject/properties": "^5.5.0", - "@ethersproject/strings": "^5.5.0" - } - }, - "@ethersproject/abstract-provider": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.5.1.tgz", - "integrity": "sha512-m+MA/ful6eKbxpr99xUYeRvLkfnlqzrF8SZ46d/xFB1A7ZVknYc/sXJG0RcufF52Qn2jeFj1hhcoQ7IXjNKUqg==", - "requires": { - "@ethersproject/bignumber": "^5.5.0", - "@ethersproject/bytes": "^5.5.0", - "@ethersproject/logger": "^5.5.0", - "@ethersproject/networks": "^5.5.0", - "@ethersproject/properties": "^5.5.0", - "@ethersproject/transactions": "^5.5.0", - "@ethersproject/web": "^5.5.0" - } - }, - "@ethersproject/abstract-signer": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.5.0.tgz", - "integrity": "sha512-lj//7r250MXVLKI7sVarXAbZXbv9P50lgmJQGr2/is82EwEb8r7HrxsmMqAjTsztMYy7ohrIhGMIml+Gx4D3mA==", - "requires": { - "@ethersproject/abstract-provider": "^5.5.0", - "@ethersproject/bignumber": "^5.5.0", - "@ethersproject/bytes": "^5.5.0", - "@ethersproject/logger": "^5.5.0", - "@ethersproject/properties": "^5.5.0" - } - }, - "@ethersproject/address": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.5.0.tgz", - "integrity": "sha512-l4Nj0eWlTUh6ro5IbPTgbpT4wRbdH5l8CQf7icF7sb/SI3Nhd9Y9HzhonTSTi6CefI0necIw7LJqQPopPLZyWw==", - "requires": { - "@ethersproject/bignumber": "^5.5.0", - "@ethersproject/bytes": "^5.5.0", - "@ethersproject/keccak256": "^5.5.0", - "@ethersproject/logger": "^5.5.0", - "@ethersproject/rlp": "^5.5.0" - } - }, - "@ethersproject/base64": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.5.0.tgz", - "integrity": "sha512-tdayUKhU1ljrlHzEWbStXazDpsx4eg1dBXUSI6+mHlYklOXoXF6lZvw8tnD6oVaWfnMxAgRSKROg3cVKtCcppA==", - "requires": { - "@ethersproject/bytes": "^5.5.0" - } - }, - "@ethersproject/basex": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.5.0.tgz", - "integrity": "sha512-ZIodwhHpVJ0Y3hUCfUucmxKsWQA5TMnavp5j/UOuDdzZWzJlRmuOjcTMIGgHCYuZmHt36BfiSyQPSRskPxbfaQ==", - "requires": { - "@ethersproject/bytes": "^5.5.0", - "@ethersproject/properties": "^5.5.0" - } - }, - "@ethersproject/bignumber": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.5.0.tgz", - "integrity": "sha512-6Xytlwvy6Rn3U3gKEc1vP7nR92frHkv6wtVr95LFR3jREXiCPzdWxKQ1cx4JGQBXxcguAwjA8murlYN2TSiEbg==", - "requires": { - "@ethersproject/bytes": "^5.5.0", - "@ethersproject/logger": "^5.5.0", - "bn.js": "^4.11.9" - } - }, - "@ethersproject/bytes": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.5.0.tgz", - "integrity": "sha512-ABvc7BHWhZU9PNM/tANm/Qx4ostPGadAuQzWTr3doklZOhDlmcBqclrQe/ZXUIj3K8wC28oYeuRa+A37tX9kog==", - "requires": { - "@ethersproject/logger": "^5.5.0" - } - }, - "@ethersproject/constants": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.5.0.tgz", - "integrity": "sha512-2MsRRVChkvMWR+GyMGY4N1sAX9Mt3J9KykCsgUFd/1mwS0UH1qw+Bv9k1UJb3X3YJYFco9H20pjSlOIfCG5HYQ==", - "requires": { - "@ethersproject/bignumber": "^5.5.0" - } - }, - "@ethersproject/contracts": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.5.0.tgz", - "integrity": "sha512-2viY7NzyvJkh+Ug17v7g3/IJC8HqZBDcOjYARZLdzRxrfGlRgmYgl6xPRKVbEzy1dWKw/iv7chDcS83pg6cLxg==", - "requires": { - "@ethersproject/abi": "^5.5.0", - "@ethersproject/abstract-provider": "^5.5.0", - "@ethersproject/abstract-signer": "^5.5.0", - "@ethersproject/address": "^5.5.0", - "@ethersproject/bignumber": "^5.5.0", - "@ethersproject/bytes": "^5.5.0", - "@ethersproject/constants": "^5.5.0", - "@ethersproject/logger": "^5.5.0", - "@ethersproject/properties": "^5.5.0", - "@ethersproject/transactions": "^5.5.0" - } - }, - "@ethersproject/hash": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.5.0.tgz", - "integrity": "sha512-dnGVpK1WtBjmnp3mUT0PlU2MpapnwWI0PibldQEq1408tQBAbZpPidkWoVVuNMOl/lISO3+4hXZWCL3YV7qzfg==", - "requires": { - "@ethersproject/abstract-signer": "^5.5.0", - "@ethersproject/address": "^5.5.0", - "@ethersproject/bignumber": "^5.5.0", - "@ethersproject/bytes": "^5.5.0", - "@ethersproject/keccak256": "^5.5.0", - "@ethersproject/logger": "^5.5.0", - "@ethersproject/properties": "^5.5.0", - "@ethersproject/strings": "^5.5.0" - } - }, - "@ethersproject/hdnode": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.5.0.tgz", - "integrity": "sha512-mcSOo9zeUg1L0CoJH7zmxwUG5ggQHU1UrRf8jyTYy6HxdZV+r0PBoL1bxr+JHIPXRzS6u/UW4mEn43y0tmyF8Q==", - "requires": { - "@ethersproject/abstract-signer": "^5.5.0", - "@ethersproject/basex": "^5.5.0", - "@ethersproject/bignumber": "^5.5.0", - "@ethersproject/bytes": "^5.5.0", - "@ethersproject/logger": "^5.5.0", - "@ethersproject/pbkdf2": "^5.5.0", - "@ethersproject/properties": "^5.5.0", - "@ethersproject/sha2": "^5.5.0", - "@ethersproject/signing-key": "^5.5.0", - "@ethersproject/strings": "^5.5.0", - "@ethersproject/transactions": "^5.5.0", - "@ethersproject/wordlists": "^5.5.0" - } - }, - "@ethersproject/json-wallets": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.5.0.tgz", - "integrity": "sha512-9lA21XQnCdcS72xlBn1jfQdj2A1VUxZzOzi9UkNdnokNKke/9Ya2xA9aIK1SC3PQyBDLt4C+dfps7ULpkvKikQ==", - "requires": { - "@ethersproject/abstract-signer": "^5.5.0", - "@ethersproject/address": "^5.5.0", - "@ethersproject/bytes": "^5.5.0", - "@ethersproject/hdnode": "^5.5.0", - "@ethersproject/keccak256": "^5.5.0", - "@ethersproject/logger": "^5.5.0", - "@ethersproject/pbkdf2": "^5.5.0", - "@ethersproject/properties": "^5.5.0", - "@ethersproject/random": "^5.5.0", - "@ethersproject/strings": "^5.5.0", - "@ethersproject/transactions": "^5.5.0", - "aes-js": "3.0.0", - "scrypt-js": "3.0.1" - } - }, - "@ethersproject/keccak256": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.5.0.tgz", - "integrity": "sha512-5VoFCTjo2rYbBe1l2f4mccaRFN/4VQEYFwwn04aJV2h7qf4ZvI2wFxUE1XOX+snbwCLRzIeikOqtAoPwMza9kg==", - "requires": { - "@ethersproject/bytes": "^5.5.0", - "js-sha3": "0.8.0" - } - }, - "@ethersproject/logger": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.5.0.tgz", - "integrity": "sha512-rIY/6WPm7T8n3qS2vuHTUBPdXHl+rGxWxW5okDfo9J4Z0+gRRZT0msvUdIJkE4/HS29GUMziwGaaKO2bWONBrg==" - }, - "@ethersproject/networks": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.5.2.tgz", - "integrity": "sha512-NEqPxbGBfy6O3x4ZTISb90SjEDkWYDUbEeIFhJly0F7sZjoQMnj5KYzMSkMkLKZ+1fGpx00EDpHQCy6PrDupkQ==", - "requires": { - "@ethersproject/logger": "^5.5.0" - } - }, - "@ethersproject/pbkdf2": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.5.0.tgz", - "integrity": "sha512-SaDvQFvXPnz1QGpzr6/HToLifftSXGoXrbpZ6BvoZhmx4bNLHrxDe8MZisuecyOziP1aVEwzC2Hasj+86TgWVg==", - "requires": { - "@ethersproject/bytes": "^5.5.0", - "@ethersproject/sha2": "^5.5.0" - } - }, - "@ethersproject/properties": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.5.0.tgz", - "integrity": "sha512-l3zRQg3JkD8EL3CPjNK5g7kMx4qSwiR60/uk5IVjd3oq1MZR5qUg40CNOoEJoX5wc3DyY5bt9EbMk86C7x0DNA==", - "requires": { - "@ethersproject/logger": "^5.5.0" - } - }, - "@ethersproject/providers": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.5.2.tgz", - "integrity": "sha512-hkbx7x/MKcRjyrO4StKXCzCpWer6s97xnm34xkfPiarhtEUVAN4TBBpamM+z66WcTt7H5B53YwbRj1n7i8pZoQ==", - "requires": { - "@ethersproject/abstract-provider": "^5.5.0", - "@ethersproject/abstract-signer": "^5.5.0", - "@ethersproject/address": "^5.5.0", - "@ethersproject/basex": "^5.5.0", - "@ethersproject/bignumber": "^5.5.0", - "@ethersproject/bytes": "^5.5.0", - "@ethersproject/constants": "^5.5.0", - "@ethersproject/hash": "^5.5.0", - "@ethersproject/logger": "^5.5.0", - "@ethersproject/networks": "^5.5.0", - "@ethersproject/properties": "^5.5.0", - "@ethersproject/random": "^5.5.0", - "@ethersproject/rlp": "^5.5.0", - "@ethersproject/sha2": "^5.5.0", - "@ethersproject/strings": "^5.5.0", - "@ethersproject/transactions": "^5.5.0", - "@ethersproject/web": "^5.5.0", - "bech32": "1.1.4", - "ws": "7.4.6" - } - }, - "@ethersproject/random": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.5.1.tgz", - "integrity": "sha512-YaU2dQ7DuhL5Au7KbcQLHxcRHfgyNgvFV4sQOo0HrtW3Zkrc9ctWNz8wXQ4uCSfSDsqX2vcjhroxU5RQRV0nqA==", - "requires": { - "@ethersproject/bytes": "^5.5.0", - "@ethersproject/logger": "^5.5.0" - } - }, - "@ethersproject/rlp": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.5.0.tgz", - "integrity": "sha512-hLv8XaQ8PTI9g2RHoQGf/WSxBfTB/NudRacbzdxmst5VHAqd1sMibWG7SENzT5Dj3yZ3kJYx+WiRYEcQTAkcYA==", - "requires": { - "@ethersproject/bytes": "^5.5.0", - "@ethersproject/logger": "^5.5.0" - } - }, - "@ethersproject/sha2": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.5.0.tgz", - "integrity": "sha512-B5UBoglbCiHamRVPLA110J+2uqsifpZaTmid2/7W5rbtYVz6gus6/hSDieIU/6gaKIDcOj12WnOdiymEUHIAOA==", - "requires": { - "@ethersproject/bytes": "^5.5.0", - "@ethersproject/logger": "^5.5.0", - "hash.js": "1.1.7" - } - }, - "@ethersproject/signing-key": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.5.0.tgz", - "integrity": "sha512-5VmseH7qjtNmDdZBswavhotYbWB0bOwKIlOTSlX14rKn5c11QmJwGt4GHeo7NrL/Ycl7uo9AHvEqs5xZgFBTng==", - "requires": { - "@ethersproject/bytes": "^5.5.0", - "@ethersproject/logger": "^5.5.0", - "@ethersproject/properties": "^5.5.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.7" - } - }, - "@ethersproject/solidity": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.5.0.tgz", - "integrity": "sha512-9NgZs9LhGMj6aCtHXhtmFQ4AN4sth5HuFXVvAQtzmm0jpSCNOTGtrHZJAeYTh7MBjRR8brylWZxBZR9zDStXbw==", - "requires": { - "@ethersproject/bignumber": "^5.5.0", - "@ethersproject/bytes": "^5.5.0", - "@ethersproject/keccak256": "^5.5.0", - "@ethersproject/logger": "^5.5.0", - "@ethersproject/sha2": "^5.5.0", - "@ethersproject/strings": "^5.5.0" - } - }, - "@ethersproject/strings": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.5.0.tgz", - "integrity": "sha512-9fy3TtF5LrX/wTrBaT8FGE6TDJyVjOvXynXJz5MT5azq+E6D92zuKNx7i29sWW2FjVOaWjAsiZ1ZWznuduTIIQ==", - "requires": { - "@ethersproject/bytes": "^5.5.0", - "@ethersproject/constants": "^5.5.0", - "@ethersproject/logger": "^5.5.0" - } - }, - "@ethersproject/transactions": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.5.0.tgz", - "integrity": "sha512-9RZYSKX26KfzEd/1eqvv8pLauCKzDTub0Ko4LfIgaERvRuwyaNV78mJs7cpIgZaDl6RJui4o49lHwwCM0526zA==", - "requires": { - "@ethersproject/address": "^5.5.0", - "@ethersproject/bignumber": "^5.5.0", - "@ethersproject/bytes": "^5.5.0", - "@ethersproject/constants": "^5.5.0", - "@ethersproject/keccak256": "^5.5.0", - "@ethersproject/logger": "^5.5.0", - "@ethersproject/properties": "^5.5.0", - "@ethersproject/rlp": "^5.5.0", - "@ethersproject/signing-key": "^5.5.0" - } - }, - "@ethersproject/units": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.5.0.tgz", - "integrity": "sha512-7+DpjiZk4v6wrikj+TCyWWa9dXLNU73tSTa7n0TSJDxkYbV3Yf1eRh9ToMLlZtuctNYu9RDNNy2USq3AdqSbag==", - "requires": { - "@ethersproject/bignumber": "^5.5.0", - "@ethersproject/constants": "^5.5.0", - "@ethersproject/logger": "^5.5.0" - } - }, - "@ethersproject/wallet": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.5.0.tgz", - "integrity": "sha512-Mlu13hIctSYaZmUOo7r2PhNSd8eaMPVXe1wxrz4w4FCE4tDYBywDH+bAR1Xz2ADyXGwqYMwstzTrtUVIsKDO0Q==", - "requires": { - "@ethersproject/abstract-provider": "^5.5.0", - "@ethersproject/abstract-signer": "^5.5.0", - "@ethersproject/address": "^5.5.0", - "@ethersproject/bignumber": "^5.5.0", - "@ethersproject/bytes": "^5.5.0", - "@ethersproject/hash": "^5.5.0", - "@ethersproject/hdnode": "^5.5.0", - "@ethersproject/json-wallets": "^5.5.0", - "@ethersproject/keccak256": "^5.5.0", - "@ethersproject/logger": "^5.5.0", - "@ethersproject/properties": "^5.5.0", - "@ethersproject/random": "^5.5.0", - "@ethersproject/signing-key": "^5.5.0", - "@ethersproject/transactions": "^5.5.0", - "@ethersproject/wordlists": "^5.5.0" - } - }, - "@ethersproject/web": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.5.1.tgz", - "integrity": "sha512-olvLvc1CB12sREc1ROPSHTdFCdvMh0J5GSJYiQg2D0hdD4QmJDy8QYDb1CvoqD/bF1c++aeKv2sR5uduuG9dQg==", - "requires": { - "@ethersproject/base64": "^5.5.0", - "@ethersproject/bytes": "^5.5.0", - "@ethersproject/logger": "^5.5.0", - "@ethersproject/properties": "^5.5.0", - "@ethersproject/strings": "^5.5.0" - } - }, - "@ethersproject/wordlists": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.5.0.tgz", - "integrity": "sha512-bL0UTReWDiaQJJYOC9sh/XcRu/9i2jMrzf8VLRmPKx58ckSlOJiohODkECCO50dtLZHcGU6MLXQ4OOrgBwP77Q==", - "requires": { - "@ethersproject/bytes": "^5.5.0", - "@ethersproject/hash": "^5.5.0", - "@ethersproject/logger": "^5.5.0", - "@ethersproject/properties": "^5.5.0", - "@ethersproject/strings": "^5.5.0" - } - }, - "@hapi/hoek": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.1.tgz", - "integrity": "sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw==" - }, - "@hapi/topo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", - "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", - "requires": { - "@hapi/hoek": "^9.0.0" - } - }, - "@noble/hashes": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-0.4.5.tgz", - "integrity": "sha512-oK/2b9gHb1CfiFwpPHQs010WgROn4ioilT7TFwxMVwuDaXEJP3QPhyedYbOpgM4JDBgT9n5gaispBQlkaAgT6g==" - }, - "@noble/secp256k1": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.4.0.tgz", - "integrity": "sha512-cYpUbQ2uitPgf5QuQnpi8Nu+ZmQjSDunFKw6vvxaOSkbMUhCf4K723WLUuuK1K/sf6H/dvqKbmEAeop5i3qTJg==" - }, - "@polkadot/api": { - "version": "6.12.1", - "resolved": "https://registry.npmjs.org/@polkadot/api/-/api-6.12.1.tgz", - "integrity": "sha512-RVdTiA2WaEvproM3i6E9TKS1bfXpPd9Ly9lUG/kVLaspjKoIot9DJUDTl97TJ+7xr8LXGbXqm448Ud0hsEBV8Q==", - "requires": { - "@babel/runtime": "^7.16.3", - "@polkadot/api-derive": "6.12.1", - "@polkadot/keyring": "^8.1.2", - "@polkadot/rpc-core": "6.12.1", - "@polkadot/rpc-provider": "6.12.1", - "@polkadot/types": "6.12.1", - "@polkadot/types-known": "6.12.1", - "@polkadot/util": "^8.1.2", - "@polkadot/util-crypto": "^8.1.2", - "eventemitter3": "^4.0.7", - "rxjs": "^7.4.0" - } - }, - "@polkadot/api-derive": { - "version": "6.12.1", - "resolved": "https://registry.npmjs.org/@polkadot/api-derive/-/api-derive-6.12.1.tgz", - "integrity": "sha512-5LOVlG5EBCT+ytY6aHmQ4RdEWZovZQqRoc6DLd5BLhkR7BFTHKSkLQW+89so8jd0zEtmSXBVPPnsrXS8joM35Q==", - "requires": { - "@babel/runtime": "^7.16.3", - "@polkadot/api": "6.12.1", - "@polkadot/rpc-core": "6.12.1", - "@polkadot/types": "6.12.1", - "@polkadot/util": "^8.1.2", - "@polkadot/util-crypto": "^8.1.2", - "rxjs": "^7.4.0" - } - }, - "@polkadot/keyring": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/@polkadot/keyring/-/keyring-8.2.2.tgz", - "integrity": "sha512-GK8puQVtQJ67sVyq0WIWHPeRXfIcqz2ztgRHnGP4JEptS9NSFByQNq1EEpQnEUZwXu9CQfHz90eiLZc1BpC8lQ==", - "requires": { - "@babel/runtime": "^7.16.5", - "@polkadot/util": "8.2.2", - "@polkadot/util-crypto": "8.2.2" - } - }, - "@polkadot/networks": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/@polkadot/networks/-/networks-8.2.2.tgz", - "integrity": "sha512-PshHrf5wBXib63l03YISnHMf5/fS1/Jv2rEN58EgYy9VK87HBXjT7qQ1Ea/d1cFI2EmfEDvhFsP+u3i6AlejQQ==", - "requires": { - "@babel/runtime": "^7.16.5" - } - }, - "@polkadot/rpc-core": { - "version": "6.12.1", - "resolved": "https://registry.npmjs.org/@polkadot/rpc-core/-/rpc-core-6.12.1.tgz", - "integrity": "sha512-Hb08D9zho3SB1UNlUCmG5q0gdgbOx25JKGLDfSYpD/wtD0Y1Sf2X5cfgtMoSYE3USWiRdCu4BxQkXTiRjPjzJg==", - "requires": { - "@babel/runtime": "^7.16.3", - "@polkadot/rpc-provider": "6.12.1", - "@polkadot/types": "6.12.1", - "@polkadot/util": "^8.1.2", - "rxjs": "^7.4.0" - } - }, - "@polkadot/rpc-provider": { - "version": "6.12.1", - "resolved": "https://registry.npmjs.org/@polkadot/rpc-provider/-/rpc-provider-6.12.1.tgz", - "integrity": "sha512-uUHD3fLTOeZYWJoc6DQlhz+MJR33rVelasV+OxFY2nSD9MSNXRwQh+9UKDQBnyxw5B4BZ2QaEGfucDeavXmVDw==", - "requires": { - "@babel/runtime": "^7.16.3", - "@polkadot/types": "6.12.1", - "@polkadot/util": "^8.1.2", - "@polkadot/util-crypto": "^8.1.2", - "@polkadot/x-fetch": "^8.1.2", - "@polkadot/x-global": "^8.1.2", - "@polkadot/x-ws": "^8.1.2", - "eventemitter3": "^4.0.7" - } - }, - "@polkadot/types": { - "version": "6.12.1", - "resolved": "https://registry.npmjs.org/@polkadot/types/-/types-6.12.1.tgz", - "integrity": "sha512-O37cAGUL0xiXTuO3ySweVh0OuFUD6asrd0TfuzGsEp3jAISWdElEHV5QDiftWq8J9Vf8BMgTcP2QLFbmSusxqA==", - "requires": { - "@babel/runtime": "^7.16.3", - "@polkadot/types-known": "6.12.1", - "@polkadot/util": "^8.1.2", - "@polkadot/util-crypto": "^8.1.2", - "rxjs": "^7.4.0" - } - }, - "@polkadot/types-known": { - "version": "6.12.1", - "resolved": "https://registry.npmjs.org/@polkadot/types-known/-/types-known-6.12.1.tgz", - "integrity": "sha512-Z8bHpPQy+mqUm0uR1tai6ra0bQIoPmgRcGFYUM+rJtW1kx/6kZLh10HAICjLpPeA1cwLRzaxHRDqH5MCU6OgXw==", - "requires": { - "@babel/runtime": "^7.16.3", - "@polkadot/networks": "^8.1.2", - "@polkadot/types": "6.12.1", - "@polkadot/util": "^8.1.2" - } - }, - "@polkadot/util": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-8.2.2.tgz", - "integrity": "sha512-tiHe0rcQvofd3vUVCRmvfULAv9yBG7s/huv1ZLVY/JGT1JBDonc1HWU3Vdb5MvWpx2R+HHv19ORHyD/LiROE9A==", - "requires": { - "@babel/runtime": "^7.16.5", - "@polkadot/x-bigint": "8.2.2", - "@polkadot/x-global": "8.2.2", - "@polkadot/x-textdecoder": "8.2.2", - "@polkadot/x-textencoder": "8.2.2", - "@types/bn.js": "^4.11.6", - "bn.js": "^4.12.0", - "ip-regex": "^4.3.0" - } - }, - "@polkadot/util-crypto": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/@polkadot/util-crypto/-/util-crypto-8.2.2.tgz", - "integrity": "sha512-bKFE6j1q2Dnz1o1QFvhX2QzkMLi9QHU4a5T7+El5J7OsOxGqssMAVHAmB+YoAuSLqPSQBmZa9CN23IiuJnfsbw==", - "requires": { - "@babel/runtime": "^7.16.5", - "@noble/hashes": "^0.4.5", - "@noble/secp256k1": "^1.3.4", - "@polkadot/networks": "8.2.2", - "@polkadot/util": "8.2.2", - "@polkadot/wasm-crypto": "^4.5.1", - "@polkadot/x-bigint": "8.2.2", - "@polkadot/x-randomvalues": "8.2.2", - "ed2curve": "^0.3.0", - "micro-base": "^0.10.0", - "tweetnacl": "^1.0.3" - } - }, - "@polkadot/wasm-crypto": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto/-/wasm-crypto-4.5.1.tgz", - "integrity": "sha512-Cr21ais3Kq3aedIHZ3J1tjgeD/+K8FCiwEawr0oRywNBSJR8wyuZMePs4swR/6xm8wbBkpqoBVHz/UQHqqQJmA==", - "requires": { - "@babel/runtime": "^7.16.3", - "@polkadot/wasm-crypto-asmjs": "^4.5.1", - "@polkadot/wasm-crypto-wasm": "^4.5.1" - } - }, - "@polkadot/wasm-crypto-asmjs": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-asmjs/-/wasm-crypto-asmjs-4.5.1.tgz", - "integrity": "sha512-DOdRiWhxVvmqTvp+E9z1j+Yr0zDOGsDvqnT/eNw0Dl1FVUOImsEa7FKns/urASmcxCVEE1jtUWSnij29jrORMQ==", - "requires": { - "@babel/runtime": "^7.16.3" - } - }, - "@polkadot/wasm-crypto-wasm": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-wasm/-/wasm-crypto-wasm-4.5.1.tgz", - "integrity": "sha512-hPwke85HxpgG/RAlwdCE8u5w7bThvWg399mlB+XjogXMxOUWBZSgq2XYbgzROUXx27inK9nStF4Pnc4zJnqs9A==", - "requires": { - "@babel/runtime": "^7.16.3" - } - }, - "@polkadot/x-bigint": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-8.2.2.tgz", - "integrity": "sha512-fX3o3FhfQNxdpA5PV4L9PrjjSKG2ZmfFOfv3TrKwsDNtZMktDDcpmW3up53LJ53FszB/WHH6WwKsehmcqAYDIw==", - "requires": { - "@babel/runtime": "^7.16.5", - "@polkadot/x-global": "8.2.2" - } - }, - "@polkadot/x-fetch": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/@polkadot/x-fetch/-/x-fetch-8.2.2.tgz", - "integrity": "sha512-ou8d1Ccf7lt7mssr64ixXYIWOZ4I4ED5sYBeFZg7BJB+MsZnuDOVvuMlItQWh01phMCOxtHWowmh+gOI4w5IWA==", - "requires": { - "@babel/runtime": "^7.16.5", - "@polkadot/x-global": "8.2.2", - "@types/node-fetch": "^2.5.12", - "node-fetch": "^2.6.6" - } - }, - "@polkadot/x-global": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-8.2.2.tgz", - "integrity": "sha512-eTJ6edgoIKzjfdYN3Y6ZuJUGRAAc8Uc5X8r4/1QmhOy427QbfRKRL/cbcLat1XbyM52aplOvZf31KXTAkMREdQ==", - "requires": { - "@babel/runtime": "^7.16.5" - } - }, - "@polkadot/x-randomvalues": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/@polkadot/x-randomvalues/-/x-randomvalues-8.2.2.tgz", - "integrity": "sha512-v3dx0xvWHd5t6e41Fte63WFX/t1Fu9ug3tOr/QE6yMFrDSeDW9TzFJKklakc0tXryqW0cL4qZzUdSvguGC2TPA==", - "requires": { - "@babel/runtime": "^7.16.5", - "@polkadot/x-global": "8.2.2" - } - }, - "@polkadot/x-textdecoder": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-8.2.2.tgz", - "integrity": "sha512-HQ/pSl4FREnxK0V7nvEdTwI08Erh6KPLwHZ0rSfUJKVDZ+NwfeW4BW/8xCEJOQIRB948Dqerl0XjEn4xCA+OPg==", - "requires": { - "@babel/runtime": "^7.16.5", - "@polkadot/x-global": "8.2.2" - } - }, - "@polkadot/x-textencoder": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-8.2.2.tgz", - "integrity": "sha512-ZAOwYi/y1wRYb3WoWZMDfYPrmbPSasog2uknt8p9u2WELrrfj4zF/fRnSuMjLUNtvJuKSzj4LUCKHwTY+peSrQ==", - "requires": { - "@babel/runtime": "^7.16.5", - "@polkadot/x-global": "8.2.2" - } - }, - "@polkadot/x-ws": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/@polkadot/x-ws/-/x-ws-8.2.2.tgz", - "integrity": "sha512-qsHzmtoFXIN59qKSkycxQ3GGyzUMlvhl+d7yU1NMaoOudJGfniTbIcDFPtee27Ydamb1DwBvkRbKw5IO8Domdg==", - "requires": { - "@babel/runtime": "^7.16.5", - "@polkadot/x-global": "8.2.2", - "@types/websocket": "^1.0.4", - "websocket": "^1.0.34" - } - }, - "@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" - }, - "@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" - }, - "@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", - "requires": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" - }, - "@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" - }, - "@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" - }, - "@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" - }, - "@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" - }, - "@sideway/address": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.3.tgz", - "integrity": "sha512-8ncEUtmnTsMmL7z1YPB47kPUq7LpKWJNFPsRzHiIajGC5uXlWGn+AmkYPcHNl8S4tcEGx+cnORnNYaw2wvL+LQ==", - "requires": { - "@hapi/hoek": "^9.0.0" - } - }, - "@sideway/formula": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz", - "integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==" - }, - "@sideway/pinpoint": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" - }, - "@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" - }, - "@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "requires": { - "defer-to-connect": "^1.0.1" - } - }, - "@tsconfig/node10": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", - "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==" - }, - "@tsconfig/node12": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", - "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==" - }, - "@tsconfig/node14": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", - "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==" - }, - "@tsconfig/node16": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", - "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==" - }, - "@types/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", - "requires": { - "@types/node": "*" - } - }, - "@types/chai": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.0.tgz", - "integrity": "sha512-/ceqdqeRraGolFTcfoXNiqjyQhZzbINDngeoAq9GoHa8PPK1yNzTaxWjA6BFWp5Ua9JpXEMSS4s5i9tS0hOJtw==" - }, - "@types/long": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", - "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" - }, - "@types/mocha": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-9.0.0.tgz", - "integrity": "sha512-scN0hAWyLVAvLR9AyW7HoFF5sJZglyBsbPuHO4fv7JRvfmPBMfp1ozWqOf/e4wwPNxezBZXRfWzMb6iFLgEVRA==" - }, - "@types/node": { - "version": "17.0.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.8.tgz", - "integrity": "sha512-YofkM6fGv4gDJq78g4j0mMuGMkZVxZDgtU0JRdx6FgiJDG+0fY0GKVolOV8WqVmEhLCXkQRjwDdKyPxJp/uucg==" - }, - "@types/node-fetch": { - "version": "2.5.12", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.12.tgz", - "integrity": "sha512-MKgC4dlq4kKNa/mYrwpKfzQMB5X3ee5U6fSprkKpToBqBmX4nFZL9cW5jl6sWn+xpRJ7ypWh2yyqqr8UUCstSw==", - "requires": { - "@types/node": "*", - "form-data": "^3.0.0" - } - }, - "@types/pbkdf2": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", - "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", - "requires": { - "@types/node": "*" - } - }, - "@types/secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", - "requires": { - "@types/node": "*" - } - }, - "@types/websocket": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@types/websocket/-/websocket-1.0.4.tgz", - "integrity": "sha512-qn1LkcFEKK8RPp459jkjzsfpbsx36BBt3oC3pITYtkoBw/aVX+EZFa5j3ThCRTNpLFvIMr5dSTD4RaMdilIOpA==", - "requires": { - "@types/node": "*" - } - }, - "@ungap/promise-all-settled": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", - "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==" - }, - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - } - }, - "acorn": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==" - }, - "acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==" - }, - "aes-js": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", - "integrity": "sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0=" - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==" - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - }, - "assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==" - }, - "async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==" - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" - }, - "aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" - }, - "axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "requires": { - "follow-redirects": "^1.14.0" - } - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "requires": { - "tweetnacl": "^0.14.3" - }, - "dependencies": { - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - } - } - }, - "bech32": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", - "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" - }, - "bignumber.js": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz", - "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==" - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" - }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "blakejs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.1.tgz", - "integrity": "sha512-bLG6PHOCZJKNshTjGRBvET0vTciwQE6zFKOKKXPDJfwFBd4Ac0yBfPZqcGvGJap50l7ktvlpFqc2jGVaUgbJgg==" - }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "body-parser": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.1.tgz", - "integrity": "sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA==", - "requires": { - "bytes": "3.1.1", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.8.1", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.9.6", - "raw-body": "2.4.2", - "type-is": "~1.6.18" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "requires": { - "fill-range": "^7.0.1" - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" - }, - "browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "requires": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - }, - "dependencies": { - "bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" - } - } - }, - "browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" - } - } - }, - "bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", - "requires": { - "base-x": "^3.0.2" - } - }, - "bs58check": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", - "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", - "requires": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" - } - }, - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "buffer-to-arraybuffer": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz", - "integrity": "sha1-YGSkD6dutDxyOrqe+PbhIW0QURo=" - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" - }, - "bufferutil": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.6.tgz", - "integrity": "sha512-jduaYOYtnio4aIAyc6UbvPCVcgq7nYpVnucyxr6eCYg/Woad9Hf/oxxBRDnGGjPfjUm6j5O/uBWhIu4iLebFaw==", - "requires": { - "node-gyp-build": "^4.3.0" - } - }, - "bytes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", - "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==" - }, - "cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "requires": { - "pump": "^3.0.0" - } - }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" - } - } - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "chai": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz", - "integrity": "sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==", - "requires": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^3.0.1", - "get-func-name": "^2.0.0", - "pathval": "^1.1.1", - "type-detect": "^4.0.5" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=" - }, - "chokidar": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", - "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" - }, - "cids": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz", - "integrity": "sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==", - "requires": { - "buffer": "^5.5.0", - "class-is": "^1.1.0", - "multibase": "~0.6.0", - "multicodec": "^1.0.0", - "multihashes": "~0.4.15" - }, - "dependencies": { - "multicodec": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz", - "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==", - "requires": { - "buffer": "^5.6.0", - "varint": "^5.0.0" - } - } - } - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "class-is": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz", - "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==" - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "requires": { - "mimic-response": "^1.0.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "requires": { - "safe-buffer": "5.2.1" - } - }, - "content-hash": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/content-hash/-/content-hash-2.5.2.tgz", - "integrity": "sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw==", - "requires": { - "cids": "^0.7.1", - "multicodec": "^0.5.5", - "multihashes": "^0.4.15" - } - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" - }, - "cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==" - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "cookiejar": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.3.tgz", - "integrity": "sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ==" - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "requires": { - "object-assign": "^4", - "vary": "^1" - } - }, - "crc-32": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz", - "integrity": "sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==", - "requires": { - "exit-on-epipe": "~1.0.1", - "printj": "~1.1.0" - } - }, - "create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, - "d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "requires": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - }, - "dependencies": { - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" - }, - "decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "requires": { - "mimic-response": "^1.0.0" - } - }, - "deep-eql": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", - "requires": { - "type-detect": "^4.0.0" - } - }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" - }, - "defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "requires": { - "object-keys": "^1.0.12" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" - }, - "des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==" - }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "dom-walk": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", - "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" - }, - "duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "ed2curve": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/ed2curve/-/ed2curve-0.3.0.tgz", - "integrity": "sha512-8w2fmmq3hv9rCrcI7g9hms2pMunQr1JINfcjwR9tAyZqhtyaMN991lF/ZfHfr5tzZQ8c7y7aBgZbjfbd0fjFwQ==", - "requires": { - "tweetnacl": "1.x.x" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "requires": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "requires": { - "once": "^1.4.0" - } - }, - "err-code": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", - "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es-abstract": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", - "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.1", - "is-string": "^1.0.7", - "is-weakref": "^1.0.1", - "object-inspect": "^1.11.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es5-ext": { - "version": "0.10.53", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", - "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", - "requires": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.3", - "next-tick": "~1.0.0" - } - }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "requires": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" - }, - "eth-ens-namehash": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz", - "integrity": "sha1-IprEbsqG1S4MmR58sq74P/D2i88=", - "requires": { - "idna-uts46-hx": "^2.3.1", - "js-sha3": "^0.5.7" - }, - "dependencies": { - "js-sha3": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=" - } - } - }, - "eth-lib": { - "version": "0.1.29", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz", - "integrity": "sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==", - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "nano-json-stream-parser": "^0.1.2", - "servify": "^0.1.12", - "ws": "^3.0.0", - "xhr-request-promise": "^0.1.2" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "ws": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", - "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", - "requires": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" - } - } - } - }, - "ethereum-bloom-filters": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz", - "integrity": "sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA==", - "requires": { - "js-sha3": "^0.8.0" - } - }, - "ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", - "requires": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" - } - }, - "ethereumjs-util": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.3.tgz", - "integrity": "sha512-y+82tEbyASO0K0X1/SRhbJJoAlfcvq8JbrG4a5cjrOks7HS/36efU/0j2flxCPOUM++HFahk33kr/ZxyC4vNuw==", - "requires": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, - "dependencies": { - "@types/bn.js": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", - "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", - "requires": { - "@types/node": "*" - } - }, - "bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" - } - } - }, - "ethers": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.5.3.tgz", - "integrity": "sha512-fTT4WT8/hTe/BLwRUtl7I5zlpF3XC3P/Xwqxc5AIP2HGlH15qpmjs0Ou78az93b1rLITzXLFxoNX63B8ZbUd7g==", - "requires": { - "@ethersproject/abi": "5.5.0", - "@ethersproject/abstract-provider": "5.5.1", - "@ethersproject/abstract-signer": "5.5.0", - "@ethersproject/address": "5.5.0", - "@ethersproject/base64": "5.5.0", - "@ethersproject/basex": "5.5.0", - "@ethersproject/bignumber": "5.5.0", - "@ethersproject/bytes": "5.5.0", - "@ethersproject/constants": "5.5.0", - "@ethersproject/contracts": "5.5.0", - "@ethersproject/hash": "5.5.0", - "@ethersproject/hdnode": "5.5.0", - "@ethersproject/json-wallets": "5.5.0", - "@ethersproject/keccak256": "5.5.0", - "@ethersproject/logger": "5.5.0", - "@ethersproject/networks": "5.5.2", - "@ethersproject/pbkdf2": "5.5.0", - "@ethersproject/properties": "5.5.0", - "@ethersproject/providers": "5.5.2", - "@ethersproject/random": "5.5.1", - "@ethersproject/rlp": "5.5.0", - "@ethersproject/sha2": "5.5.0", - "@ethersproject/signing-key": "5.5.0", - "@ethersproject/solidity": "5.5.0", - "@ethersproject/strings": "5.5.0", - "@ethersproject/transactions": "5.5.0", - "@ethersproject/units": "5.5.0", - "@ethersproject/wallet": "5.5.0", - "@ethersproject/web": "5.5.1", - "@ethersproject/wordlists": "5.5.0" - } - }, - "ethjs-unit": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", - "integrity": "sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk=", - "requires": { - "bn.js": "4.11.6", - "number-to-bn": "1.7.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" - } - } - }, - "eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" - }, - "events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "exit-on-epipe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz", - "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==" - }, - "express": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.2.tgz", - "integrity": "sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg==", - "requires": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.4.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.9.6", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.17.2", - "serve-static": "1.14.2", - "setprototypeof": "1.2.0", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "ext": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.6.0.tgz", - "integrity": "sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==", - "requires": { - "type": "^2.5.0" - }, - "dependencies": { - "type": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz", - "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==" - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "filter-console": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/filter-console/-/filter-console-0.1.1.tgz", - "integrity": "sha512-zrXoV1Uaz52DqPs+qEwNJWJFAWZpYJ47UNmpN9q4j+/EYsz85uV0DC9k8tRND5kYmoVzL0W+Y75q4Rg8sRJCdg==" - }, - "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==" - }, - "follow-redirects": { - "version": "1.14.7", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.7.tgz", - "integrity": "sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ==" - }, - "foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" - }, - "form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" - }, - "fs-extra": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "requires": { - "minipass": "^2.6.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" - }, - "get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=" - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "requires": { - "pump": "^3.0.0" - } - }, - "get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "requires": { - "is-glob": "^4.0.1" - } - }, - "global": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", - "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", - "requires": { - "min-document": "^2.19.0", - "process": "^0.11.10" - } - }, - "got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "requires": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - } - }, - "graceful-fs": { - "version": "4.2.9", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", - "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" - }, - "growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==" - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" - }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "has-symbol-support-x": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", - "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==" - }, - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" - }, - "has-to-string-tag-x": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", - "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", - "requires": { - "has-symbol-support-x": "^1.4.1" - } - }, - "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "requires": { - "has-symbols": "^1.0.2" - } - }, - "hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" - }, - "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" - }, - "http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.1" - } - }, - "http-https": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz", - "integrity": "sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs=" - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "idna-uts46-hx": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz", - "integrity": "sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==", - "requires": { - "punycode": "2.1.0" - }, - "dependencies": { - "punycode": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", - "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=" - } - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "requires": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, - "ip-regex": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", - "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==" - }, - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" - }, - "is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, - "is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "requires": { - "has-bigints": "^1.0.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" - }, - "is-core-module": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", - "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", - "requires": { - "has": "^1.0.3" - } - }, - "is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "is-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", - "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" - }, - "is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-hex-prefixed": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", - "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=" - }, - "is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==" - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "is-number-object": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", - "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", - "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==" - }, - "is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==" - }, - "is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-retry-allowed": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", - "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==" - }, - "is-shared-array-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", - "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==" - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - }, - "is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-typed-array": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.8.tgz", - "integrity": "sha512-HqH41TNZq2fgtGT8WHVFVJhBVGuY3AnP3Q36K8JKXUxSxRgk/d+7NjmwG2vo2mYmXK8UYZKu0qH8bVP5gEisjA==", - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.18.5", - "foreach": "^2.0.5", - "has-tostringtag": "^1.0.0" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==" - }, - "is-url": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", - "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==" - }, - "is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "requires": { - "call-bind": "^1.0.2" - } - }, - "is2": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/is2/-/is2-2.0.7.tgz", - "integrity": "sha512-4vBQoURAXC6hnLFxD4VW7uc04XiwTTl/8ydYJxKvPwkWQrSjInkuM5VZVg6BGr1/natq69zDuvO9lGpLClJqvA==", - "requires": { - "deep-is": "^0.1.3", - "ip-regex": "^4.1.0", - "is-url": "^1.2.4" - } - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "iso-random-stream": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/iso-random-stream/-/iso-random-stream-2.0.2.tgz", - "integrity": "sha512-yJvs+Nnelic1L2vH2JzWvvPQFA4r7kSTnpST/+LkAQjSz0hos2oqLD+qIVi9Qk38Hoe7mNDt3j0S27R58MVjLQ==", - "requires": { - "events": "^3.3.0", - "readable-stream": "^3.4.0" - } - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "isurl": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", - "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", - "requires": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" - } - }, - "joi": { - "version": "17.5.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.5.0.tgz", - "integrity": "sha512-R7hR50COp7StzLnDi4ywOXHrBrgNXuUUfJWIR5lPY5Bm/pOD3jZaTwpluUXVLRWcoWZxkrHBBJ5hLxgnlehbdw==", - "requires": { - "@hapi/hoek": "^9.0.0", - "@hapi/topo": "^5.0.0", - "@sideway/address": "^4.1.3", - "@sideway/formula": "^3.0.0", - "@sideway/pinpoint": "^2.0.0" - } - }, - "js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "requires": { - "argparse": "^2.0.1" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - }, - "json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" - }, - "json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - } - }, - "keccak": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz", - "integrity": "sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ==", - "requires": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0", - "readable-stream": "^3.6.0" - } - }, - "keypair": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/keypair/-/keypair-1.0.4.tgz", - "integrity": "sha512-zwhgOhhniaL7oxMgUMKKw5219PWWABMO+dgMnzJOQ2/5L3XJtTJGhW2PEXlxXj9zaccdReZJZ83+4NPhVfNVDg==" - }, - "keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "requires": { - "json-buffer": "3.0.0" - } - }, - "libp2p-crypto": { - "version": "0.20.0", - "resolved": "https://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.20.0.tgz", - "integrity": "sha512-WgIW9rYcWaO/5j2T6NW3R6Q46yvp2ZfFErqRMbi4/pOTL3T7+OROYpL/1iWVksWkXyurU/t2qFsIijWMxR5C4Q==", - "requires": { - "err-code": "^3.0.1", - "iso-random-stream": "^2.0.0", - "keypair": "^1.0.4", - "multiformats": "^9.4.5", - "noble-ed25519": "^1.2.6", - "noble-secp256k1": "^1.2.10", - "node-forge": "^0.10.0", - "pem-jwk": "^2.0.0", - "protobufjs": "^6.11.2", - "uint8arrays": "^3.0.0", - "ursa-optional": "^0.10.1" - } - }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - } - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "requires": { - "p-locate": "^5.0.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "requires": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" - }, - "make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" - }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" - }, - "memorystream": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", - "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=" - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" - }, - "micro-base": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/micro-base/-/micro-base-0.10.2.tgz", - "integrity": "sha512-lqqJrT7lfJtDmmiQ4zRLZuIJBk96t0RAc5pCrrWpL9zDeH5i/SUL85mku9HqzTI/OCZ8EQ3aicbMW+eK5Nyu5w==" - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - }, - "mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==" - }, - "mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "requires": { - "mime-db": "1.51.0" - } - }, - "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" - }, - "min-document": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", - "requires": { - "dom-walk": "^0.1.0" - } - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" - }, - "minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "requires": { - "minipass": "^2.9.0" - } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "requires": { - "minimist": "^1.2.5" - } - }, - "mkdirp-promise": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz", - "integrity": "sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE=", - "requires": { - "mkdirp": "*" - } - }, - "mocha": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.1.3.tgz", - "integrity": "sha512-Xcpl9FqXOAYqI3j79pEtHBBnQgVXIhpULjGQa7DVb0Po+VzmSIK9kanAiWLHoRR/dbZ2qpdPshuXr8l1VaHCzw==", - "requires": { - "@ungap/promise-all-settled": "1.1.2", - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.2", - "debug": "4.3.2", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.1.7", - "growl": "1.10.5", - "he": "1.2.0", - "js-yaml": "4.1.0", - "log-symbols": "4.1.0", - "minimatch": "3.0.4", - "ms": "2.1.3", - "nanoid": "3.1.25", - "serialize-javascript": "6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "which": "2.0.2", - "workerpool": "6.1.5", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "requires": { - "isexe": "^2.0.0" - } - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - } - } - }, - "mock-fs": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.14.0.tgz", - "integrity": "sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw==" - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "multibase": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.6.1.tgz", - "integrity": "sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==", - "requires": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - }, - "multicodec": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-0.5.7.tgz", - "integrity": "sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA==", - "requires": { - "varint": "^5.0.0" - } - }, - "multiformats": { - "version": "9.5.8", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.5.8.tgz", - "integrity": "sha512-GY154q1yPPdHX4ArXHE8Z1Mm9BxZcJetzEqfwQg/ongo91qIJDHJEio3zboHIKGEvBLrhVqKwlRuDqwa7+xECQ==" - }, - "multihashes": { - "version": "0.4.21", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz", - "integrity": "sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==", - "requires": { - "buffer": "^5.5.0", - "multibase": "^0.7.0", - "varint": "^5.0.0" - }, - "dependencies": { - "multibase": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz", - "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==", - "requires": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - } - } - }, - "nan": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", - "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==" - }, - "nano-json-stream-parser": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz", - "integrity": "sha1-DMj20OK2IrR5xA1JnEbWS3Vcb18=" - }, - "nanoid": { - "version": "3.1.25", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.25.tgz", - "integrity": "sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==" - }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" - }, - "next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" - }, - "noble-ed25519": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/noble-ed25519/-/noble-ed25519-1.2.6.tgz", - "integrity": "sha512-zfnWqg9FVMp8CnzUpAjbt1nDXpDjCvxYiCXdnW1mY8zQHw/6twUlkFm14VPdojVzc0kcd+i9zT79+26GcNbsuQ==" - }, - "noble-secp256k1": { - "version": "1.2.14", - "resolved": "https://registry.npmjs.org/noble-secp256k1/-/noble-secp256k1-1.2.14.tgz", - "integrity": "sha512-GSCXyoZBUaaPwVWdYncMEmzlSUjF9J/YeEHpklYJCyg8wPuJP3NzDx0BkiwArzINkdX2HJHvUJhL6vVWPOQQcg==" - }, - "node-addon-api": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" - }, - "node-fetch": { - "version": "2.6.6", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.6.tgz", - "integrity": "sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA==", - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "node-forge": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", - "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==" - }, - "node-gyp-build": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz", - "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==" - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - }, - "normalize-url": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==" - }, - "npm-run-all": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", - "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", - "requires": { - "ansi-styles": "^3.2.1", - "chalk": "^2.4.1", - "cross-spawn": "^6.0.5", - "memorystream": "^0.3.1", - "minimatch": "^3.0.4", - "pidtree": "^0.3.0", - "read-pkg": "^3.0.0", - "shell-quote": "^1.6.1", - "string.prototype.padend": "^3.0.0" - } - }, - "number-to-bn": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", - "integrity": "sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA=", - "requires": { - "bn.js": "4.11.6", - "strip-hex-prefix": "1.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" - } - } - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==" - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "oboe": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.5.tgz", - "integrity": "sha1-VVQoTFQ6ImbXo48X4HOCH73jk80=", - "requires": { - "http-https": "^1.0.0" - } - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "requires": { - "ee-first": "1.1.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "requires": { - "p-limit": "^3.0.2" - } - }, - "p-timeout": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", - "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", - "requires": { - "p-finally": "^1.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" - }, - "parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "requires": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "parse-headers": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.4.tgz", - "integrity": "sha512-psZ9iZoCNFLrgRjZ1d8mn0h9WRqJwFxM9q3x7iUjN/YT2OksthDJ5TiPCu2F38kS4zutqfW+YdVVkBZZx3/1aw==" - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "requires": { - "pify": "^3.0.0" - } - }, - "pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==" - }, - "pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "peer-id": { - "version": "0.15.4", - "resolved": "https://registry.npmjs.org/peer-id/-/peer-id-0.15.4.tgz", - "integrity": "sha512-MDoBIMZYwQIAHaZQUwsIcvoFgdbIl5GtZMwSkXpIYvc5v0TSDv+u8WsTKrKt2Vv28tHFFDJQdVzu3T4qTPzK+w==", - "requires": { - "class-is": "^1.1.0", - "libp2p-crypto": "^0.20.0", - "minimist": "^1.2.5", - "multiformats": "^9.4.5", - "protobufjs": "^6.10.2", - "uint8arrays": "^3.0.0" - } - }, - "pem-jwk": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pem-jwk/-/pem-jwk-2.0.0.tgz", - "integrity": "sha512-rFxu7rVoHgQ5H9YsP50dDWf0rHjreVA2z0yPiWr5WdH/UHb29hKtF7h6l8vNd1cbYR1t0QL+JKhW55a2ZV4KtA==", - "requires": { - "asn1.js": "^5.0.1" - } - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" - }, - "pidtree": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", - "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==" - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - }, - "polkadot-launch": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/polkadot-launch/-/polkadot-launch-2.1.0.tgz", - "integrity": "sha512-f1QXjSIKIWclphTQQeSrp+bt+n6y674X0iPUWPLvFcjPkAX+WN0T9Dcl98xr/HVVxwOWhQmG8NCUUSEN66rESA==", - "requires": { - "@polkadot/api": "^6.10.3", - "@polkadot/keyring": "^8.0.5", - "@polkadot/types": "^6.10.3", - "@polkadot/util": "^8.0.5", - "@polkadot/util-crypto": "^8.0.5", - "@types/chai": "^4.2.22", - "@types/mocha": "^9.0.0", - "chai": "^4.3.4", - "ethers": "^5.4.7", - "filter-console": "^0.1.1", - "libp2p-crypto": "^0.20.0", - "mocha": "^9.1.2", - "peer-id": "^0.15.3", - "tcp-port-used": "^1.0.2", - "ts-node": "^10.3.0", - "web3": "^1.6.0", - "web3-core": "^1.6.0", - "web3-eth": "^1.6.0", - "yargs": "^15.4.1" - } - }, - "prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" - }, - "printj": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz", - "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==" - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" - }, - "protobufjs": { - "version": "6.11.2", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.2.tgz", - "integrity": "sha512-4BQJoPooKJl2G9j3XftkIXjoC9C0Av2NOrWmbLWT1vH32GcSUHjM0Arra6UfTsVyfMAuFzaLucXn1sadxJydAw==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - } - }, - "proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - } - }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "qs": { - "version": "6.9.6", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", - "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==" - }, - "query-string": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", - "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", - "requires": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - } - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" - }, - "raw-body": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz", - "integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==", - "requires": { - "bytes": "3.1.1", - "http-errors": "1.8.1", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - } - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "requires": { - "picomatch": "^2.2.1" - } - }, - "regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" - }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==" - } - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" - }, - "resolve": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.21.0.tgz", - "integrity": "sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA==", - "requires": { - "is-core-module": "^2.8.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "requires": { - "lowercase-keys": "^1.0.0" - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "rlp": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz", - "integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==", - "requires": { - "bn.js": "^5.2.0" - }, - "dependencies": { - "bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" - } - } - }, - "rxjs": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.1.tgz", - "integrity": "sha512-KExVEeZWxMZnZhUZtsJcFwz8IvPvgu4G2Z2QyqjZQzUGr32KDYuSxrEYO4w3tFFNbfLozcrKUTvTPi+E9ywJkQ==", - "requires": { - "tslib": "^2.1.0" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" - }, - "secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", - "requires": { - "elliptic": "^6.5.4", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, - "send": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", - "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", - "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "1.8.1", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - } - } - }, - "serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "requires": { - "randombytes": "^2.1.0" - } - }, - "serve-static": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", - "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.2" - } - }, - "servify": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz", - "integrity": "sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==", - "requires": { - "body-parser": "^1.16.0", - "cors": "^2.8.1", - "express": "^4.14.0", - "request": "^2.79.0", - "xhr": "^2.3.3" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" - }, - "shell-quote": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", - "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==" - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==" - }, - "simple-get": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.1.tgz", - "integrity": "sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==", - "requires": { - "decompress-response": "^3.3.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", - "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==" - }, - "sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "dependencies": { - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - } - } - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" - }, - "strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "string.prototype.padend": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.3.tgz", - "integrity": "sha512-jNIIeokznm8SD/TZISQsZKYu7RJyheFNt84DUPrh482GC8RVp2MKqm2O5oBRdGxbDQoXrhhWtPIWQOiy20svUg==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - } - }, - "string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" - }, - "strip-hex-prefix": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", - "integrity": "sha1-DF8VX+8RUTczd96du1iNoFUA428=", - "requires": { - "is-hex-prefixed": "1.0.0" - } - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" - }, - "swarm-js": { - "version": "0.1.40", - "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.40.tgz", - "integrity": "sha512-yqiOCEoA4/IShXkY3WKwP5PvZhmoOOD8clsKA7EEcRILMkTEYHCQ21HDCAcVpmIxZq4LyZvWeRJ6quIyHk1caA==", - "requires": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^7.1.0", - "mime-types": "^2.1.16", - "mkdirp-promise": "^5.0.1", - "mock-fs": "^4.1.0", - "setimmediate": "^1.0.5", - "tar": "^4.0.2", - "xhr-request": "^1.0.1" - }, - "dependencies": { - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" - }, - "got": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", - "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", - "requires": { - "decompress-response": "^3.2.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-plain-obj": "^1.1.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "p-cancelable": "^0.3.0", - "p-timeout": "^1.1.1", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "url-parse-lax": "^1.0.0", - "url-to-options": "^1.0.1" - } - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" - }, - "p-cancelable": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", - "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==" - }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" - }, - "url-parse-lax": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", - "requires": { - "prepend-http": "^1.0.1" - } - } - } - }, - "tar": { - "version": "4.4.19", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", - "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", - "requires": { - "chownr": "^1.1.4", - "fs-minipass": "^1.2.7", - "minipass": "^2.9.0", - "minizlib": "^1.3.3", - "mkdirp": "^0.5.5", - "safe-buffer": "^5.2.1", - "yallist": "^3.1.1" - } - }, - "tcp-port-used": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/tcp-port-used/-/tcp-port-used-1.0.2.tgz", - "integrity": "sha512-l7ar8lLUD3XS1V2lfoJlCBaeoaWo/2xfYt81hM7VlvR4RrMVFqfmzfhLVk40hAb368uitje5gPtBRL1m/DGvLA==", - "requires": { - "debug": "4.3.1", - "is2": "^2.0.6" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" - }, - "to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "requires": { - "is-number": "^7.0.0" - } - }, - "toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" - }, - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - }, - "ts-node": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.4.0.tgz", - "integrity": "sha512-g0FlPvvCXSIO1JDF6S232P5jPYqBkRL9qly81ZgAOSU7rwI0stphCgd2kLiCrU9DjQCrJMWEqcNSjQL02s6d8A==", - "requires": { - "@cspotcode/source-map-support": "0.7.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "yn": "3.1.1" - }, - "dependencies": { - "diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" - } - } - }, - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" - }, - "type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" - }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "requires": { - "is-typedarray": "^1.0.0" - } - }, - "typescript": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.4.tgz", - "integrity": "sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg==", - "peer": true - }, - "uint8arrays": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", - "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", - "requires": { - "multiformats": "^9.4.2" - } - }, - "ultron": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", - "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" - }, - "unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", - "requires": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "requires": { - "punycode": "^2.1.0" - } - }, - "url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "requires": { - "prepend-http": "^2.0.0" - } - }, - "url-set-query": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz", - "integrity": "sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk=" - }, - "url-to-options": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", - "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=" - }, - "ursa-optional": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/ursa-optional/-/ursa-optional-0.10.2.tgz", - "integrity": "sha512-TKdwuLboBn7M34RcvVTuQyhvrA8gYKapuVdm0nBP0mnBc7oECOfUQZrY91cefL3/nm64ZyrejSRrhTVdX7NG/A==", - "requires": { - "bindings": "^1.5.0", - "nan": "^2.14.2" - } - }, - "utf-8-validate": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.8.tgz", - "integrity": "sha512-k4dW/Qja1BYDl2qD4tOMB9PFVha/UJtxTc1cXYOe3WwA/2m0Yn4qB7wLMpJyLJ/7DR0XnTut3HsCSzDT4ZvKgA==", - "requires": { - "node-gyp-build": "^4.3.0" - } - }, - "utf8": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", - "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==" - }, - "util": { - "version": "0.12.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz", - "integrity": "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==", - "requires": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "safe-buffer": "^5.1.2", - "which-typed-array": "^1.1.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" - }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "varint": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "wait-on": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-6.0.0.tgz", - "integrity": "sha512-tnUJr9p5r+bEYXPUdRseolmz5XqJTTj98JgOsfBn7Oz2dxfE2g3zw1jE+Mo8lopM3j3et/Mq1yW7kKX6qw7RVw==", - "requires": { - "axios": "^0.21.1", - "joi": "^17.4.0", - "lodash": "^4.17.21", - "minimist": "^1.2.5", - "rxjs": "^7.1.0" - } - }, - "web3": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.6.1.tgz", - "integrity": "sha512-c299lLiyb2/WOcxh7TinwvbATaMmrgNIeAzbLbmOKHI0LcwyfsB1eu2ReOIrfrCYDYRW2KAjYr7J7gHawqDNPQ==", - "requires": { - "web3-bzz": "1.6.1", - "web3-core": "1.6.1", - "web3-eth": "1.6.1", - "web3-eth-personal": "1.6.1", - "web3-net": "1.6.1", - "web3-shh": "1.6.1", - "web3-utils": "1.6.1" - } - }, - "web3-bzz": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.6.1.tgz", - "integrity": "sha512-JbnFNbRlwwHJZPtVuCxo7rC4U4OTg+mPsyhjgPQJJhS0a6Y54OgVWYk9UA/95HqbmTJwTtX329gJoSsseEfrng==", - "requires": { - "@types/node": "^12.12.6", - "got": "9.6.0", - "swarm-js": "^0.1.40" - }, - "dependencies": { - "@types/node": { - "version": "12.20.41", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.41.tgz", - "integrity": "sha512-f6xOqucbDirG7LOzedpvzjP3UTmHttRou3Mosx3vL9wr9AIQGhcPgVnqa8ihpZYnxyM1rxeNCvTyukPKZtq10Q==" - } - } - }, - "web3-core": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.6.1.tgz", - "integrity": "sha512-m+b7UfYvU5cQUAh6NRfxRzH/5B3to1AdEQi1HIQt570cDWlObOOmoO9tY6iJnI5w4acxIO19LqjDMqEJGBYyRQ==", - "requires": { - "@types/bn.js": "^4.11.5", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.6.1", - "web3-core-method": "1.6.1", - "web3-core-requestmanager": "1.6.1", - "web3-utils": "1.6.1" - }, - "dependencies": { - "@types/node": { - "version": "12.20.41", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.41.tgz", - "integrity": "sha512-f6xOqucbDirG7LOzedpvzjP3UTmHttRou3Mosx3vL9wr9AIQGhcPgVnqa8ihpZYnxyM1rxeNCvTyukPKZtq10Q==" - } - } - }, - "web3-core-helpers": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.6.1.tgz", - "integrity": "sha512-om2PZvK1uoWcgMq6JfcSx3241LEIVF6qi2JuHz2SLKiKEW5UsBUaVx0mNCmcZaiuYQCyOsLS3r33q5AdM+v8ng==", - "requires": { - "web3-eth-iban": "1.6.1", - "web3-utils": "1.6.1" - } - }, - "web3-core-method": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.6.1.tgz", - "integrity": "sha512-szH5KyIWIaULQDBdDvevQUCHV9lsExJ/oV0ePqK+w015D2SdMPMuhii0WB+HCePaksWO+rr/GAypvV9g2T3N+w==", - "requires": { - "@ethersproject/transactions": "^5.0.0-beta.135", - "web3-core-helpers": "1.6.1", - "web3-core-promievent": "1.6.1", - "web3-core-subscriptions": "1.6.1", - "web3-utils": "1.6.1" - } - }, - "web3-core-promievent": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.6.1.tgz", - "integrity": "sha512-byJ5s2MQxrWdXd27pWFmujfzsTZK4ik8rDgIV1RFDFc+rHZ2nZhq+VWk7t/Nkrj7EaVXncEgTdPEHc18nx+ocQ==", - "requires": { - "eventemitter3": "4.0.4" - }, - "dependencies": { - "eventemitter3": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", - "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==" - } - } - }, - "web3-core-requestmanager": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.6.1.tgz", - "integrity": "sha512-4y7etYEUtkfflyYVBfN1oJtCbVFNhNX1omlEYzezhTnPj3/dT7n+dhUXcqvIhx9iKA13unGfpFge80XNFfcB8A==", - "requires": { - "util": "^0.12.0", - "web3-core-helpers": "1.6.1", - "web3-providers-http": "1.6.1", - "web3-providers-ipc": "1.6.1", - "web3-providers-ws": "1.6.1" - } - }, - "web3-core-subscriptions": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.6.1.tgz", - "integrity": "sha512-WZwxsYttIojyGQ5RqxuQcKg0IJdDCFpUe4EncS3QKZwxPqWzGmgyLwE0rm7tP+Ux1waJn5CUaaoSCBxWGSun1g==", - "requires": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.6.1" - }, - "dependencies": { - "eventemitter3": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", - "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==" - } - } - }, - "web3-eth": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.6.1.tgz", - "integrity": "sha512-kOV1ZgCKypSo5BQyltRArS7ZC3bRpIKAxSgzl7pUFinUb/MxfbM9KGeNxUXoCfTSErcCQJaDjcS6bSre5EMKuQ==", - "requires": { - "web3-core": "1.6.1", - "web3-core-helpers": "1.6.1", - "web3-core-method": "1.6.1", - "web3-core-subscriptions": "1.6.1", - "web3-eth-abi": "1.6.1", - "web3-eth-accounts": "1.6.1", - "web3-eth-contract": "1.6.1", - "web3-eth-ens": "1.6.1", - "web3-eth-iban": "1.6.1", - "web3-eth-personal": "1.6.1", - "web3-net": "1.6.1", - "web3-utils": "1.6.1" - } - }, - "web3-eth-abi": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.6.1.tgz", - "integrity": "sha512-svhYrAlXP9XQtV7poWKydwDJq2CaNLMtmKydNXoOBLcQec6yGMP+v20pgrxF2H6wyTK+Qy0E3/5ciPOqC/VuoQ==", - "requires": { - "@ethersproject/abi": "5.0.7", - "web3-utils": "1.6.1" - }, - "dependencies": { - "@ethersproject/abi": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.7.tgz", - "integrity": "sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw==", - "requires": { - "@ethersproject/address": "^5.0.4", - "@ethersproject/bignumber": "^5.0.7", - "@ethersproject/bytes": "^5.0.4", - "@ethersproject/constants": "^5.0.4", - "@ethersproject/hash": "^5.0.4", - "@ethersproject/keccak256": "^5.0.3", - "@ethersproject/logger": "^5.0.5", - "@ethersproject/properties": "^5.0.3", - "@ethersproject/strings": "^5.0.4" - } - } - } - }, - "web3-eth-accounts": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.6.1.tgz", - "integrity": "sha512-rGn3jwnuOKwaQRu4SiShz0YAQ87aVDBKs4HO43+XTCI1q1Y1jn3NOsG3BW9ZHaOckev4+zEyxze/Bsh2oEk24w==", - "requires": { - "@ethereumjs/common": "^2.5.0", - "@ethereumjs/tx": "^3.3.2", - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.8", - "ethereumjs-util": "^7.0.10", - "scrypt-js": "^3.0.1", - "uuid": "3.3.2", - "web3-core": "1.6.1", - "web3-core-helpers": "1.6.1", - "web3-core-method": "1.6.1", - "web3-utils": "1.6.1" - }, - "dependencies": { - "eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - } - } - }, - "web3-eth-contract": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.6.1.tgz", - "integrity": "sha512-GXqTe3mF6kpbOAakiNc7wtJ120/gpuKMTZjuGFKeeY8aobRLfbfgKzM9IpyqVZV2v5RLuGXDuurVN2KPgtu3hQ==", - "requires": { - "@types/bn.js": "^4.11.5", - "web3-core": "1.6.1", - "web3-core-helpers": "1.6.1", - "web3-core-method": "1.6.1", - "web3-core-promievent": "1.6.1", - "web3-core-subscriptions": "1.6.1", - "web3-eth-abi": "1.6.1", - "web3-utils": "1.6.1" - } - }, - "web3-eth-ens": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.6.1.tgz", - "integrity": "sha512-ngprtbnoRgxg8s1wXt9nXpD3h1P+p7XnKXrp/8GdFI9uDmrbSQPRfzBw86jdZgOmy78hAnWmrHI6pBInmgi2qQ==", - "requires": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "web3-core": "1.6.1", - "web3-core-helpers": "1.6.1", - "web3-core-promievent": "1.6.1", - "web3-eth-abi": "1.6.1", - "web3-eth-contract": "1.6.1", - "web3-utils": "1.6.1" - } - }, - "web3-eth-iban": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.6.1.tgz", - "integrity": "sha512-91H0jXZnWlOoXmc13O9NuQzcjThnWyAHyDn5Yf7u6mmKOhpJSGF/OHlkbpXt1Y4v2eJdEPaVFa+6i8aRyagE7Q==", - "requires": { - "bn.js": "^4.11.9", - "web3-utils": "1.6.1" - } - }, - "web3-eth-personal": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.6.1.tgz", - "integrity": "sha512-ItsC89Ln02+irzJjK6ALcLrMZfbVUCqVbmb/ieDKJ+eLW3pNkBNwoUzaydh92d5NzxNZgNxuQWVdlFyYX2hkEw==", - "requires": { - "@types/node": "^12.12.6", - "web3-core": "1.6.1", - "web3-core-helpers": "1.6.1", - "web3-core-method": "1.6.1", - "web3-net": "1.6.1", - "web3-utils": "1.6.1" - }, - "dependencies": { - "@types/node": { - "version": "12.20.41", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.41.tgz", - "integrity": "sha512-f6xOqucbDirG7LOzedpvzjP3UTmHttRou3Mosx3vL9wr9AIQGhcPgVnqa8ihpZYnxyM1rxeNCvTyukPKZtq10Q==" - } - } - }, - "web3-net": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.6.1.tgz", - "integrity": "sha512-gpnqKEIwfUHh5ik7wsQFlCje1DfcmGv+Sk7LCh1hCqn++HEDQxJ/mZCrMo11ZZpZHCH7c87imdxTg96GJnRxDw==", - "requires": { - "web3-core": "1.6.1", - "web3-core-method": "1.6.1", - "web3-utils": "1.6.1" - } - }, - "web3-providers-http": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.6.1.tgz", - "integrity": "sha512-xBoKOJxu10+kO3ikamXmBfrWZ/xpQOGy0ocdp7Y81B17En5TXELwlmMXt1UlIgWiyYDhjq4OwlH/VODYqHXy3A==", - "requires": { - "web3-core-helpers": "1.6.1", - "xhr2-cookies": "1.1.0" - } - }, - "web3-providers-ipc": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.6.1.tgz", - "integrity": "sha512-anyoIZlpMzwEQI4lwylTzDrHsVp20v0QUtSTp2B5jInBinmQtyCE7vnbX20jEQ4j5uPwfJabKNtoJsk6a3O4WQ==", - "requires": { - "oboe": "2.1.5", - "web3-core-helpers": "1.6.1" - } - }, - "web3-providers-ws": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.6.1.tgz", - "integrity": "sha512-FWMEFYb4rYFYRgSFBf/O1Ex4p/YKSlN+JydCtdlJwRimd89qm95CTfs4xGjCskwvXMjV2sarH+f1NPwJXicYpg==", - "requires": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.6.1", - "websocket": "^1.0.32" - }, - "dependencies": { - "eventemitter3": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", - "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==" - } - } - }, - "web3-shh": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.6.1.tgz", - "integrity": "sha512-oP00HbAtybLCGlLOZUYXOdeB9xq88k2l0TtStvKBtmFqRt+zVk5TxEeuOnVPRxNhcA2Un8RUw6FtvgZlWStu9A==", - "requires": { - "web3-core": "1.6.1", - "web3-core-method": "1.6.1", - "web3-core-subscriptions": "1.6.1", - "web3-net": "1.6.1" - } - }, - "web3-utils": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.6.1.tgz", - "integrity": "sha512-RidGKv5kOkcerI6jQqDFDoTllQQqV+rPhTzZHhmbqtFObbYpU93uc+yG1LHivRTQhA6llIx67iudc/vzisgO+w==", - "requires": { - "bn.js": "^4.11.9", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - } - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - }, - "websocket": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz", - "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==", - "requires": { - "bufferutil": "^4.0.1", - "debug": "^2.2.0", - "es5-ext": "^0.10.50", - "typedarray-to-buffer": "^3.1.5", - "utf-8-validate": "^5.0.2", - "yaeti": "^0.0.6" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "requires": { - "isexe": "^2.0.0" - } - }, - "which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" - }, - "which-typed-array": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.7.tgz", - "integrity": "sha512-vjxaB4nfDqwKI0ws7wZpxIlde1XrLX5uB0ZjpfshgmapJMD7jJWhZI+yToJTqaFByF0eNBcYxbjmCzoRP7CfEw==", - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.18.5", - "foreach": "^2.0.5", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.7" - } - }, - "workerpool": { - "version": "6.1.5", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.5.tgz", - "integrity": "sha512-XdKkCK0Zqc6w3iTxLckiuJ81tiD/o5rBE/m+nXpRCB+/Sq4DqkfXZ/x0jW02DG1tGsfUGXbTJyZDP+eu67haSw==" - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "requires": {} - }, - "xhr": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", - "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", - "requires": { - "global": "~4.4.0", - "is-function": "^1.0.1", - "parse-headers": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "xhr-request": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz", - "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==", - "requires": { - "buffer-to-arraybuffer": "^0.0.5", - "object-assign": "^4.1.1", - "query-string": "^5.0.1", - "simple-get": "^2.7.0", - "timed-out": "^4.0.1", - "url-set-query": "^1.0.0", - "xhr": "^2.0.4" - } - }, - "xhr-request-promise": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz", - "integrity": "sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==", - "requires": { - "xhr-request": "^1.1.0" - } - }, - "xhr2-cookies": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz", - "integrity": "sha1-fXdEnQmZGX8VXLc7I99yUF7YnUg=", - "requires": { - "cookiejar": "^2.1.1" - } - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" - }, - "yaeti": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", - "integrity": "sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc=" - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "requires": { - "p-limit": "^2.2.0" - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==" - }, - "yargs-unparser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", - "requires": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, - "dependencies": { - "decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==" - } - } - }, - "yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==" - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" - } - } -} diff --git a/scripts/wait-for-inclusion/package.json b/scripts/wait-for-inclusion/package.json deleted file mode 100644 index cc77ad912cd..00000000000 --- a/scripts/wait-for-inclusion/package.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "wait-for-inclusion", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - "chain": "polkadot-launch ../../rococo-local/config.json", - "test-inclusion": "node index.js 2090", - "start": "run-p -lr chain test-inclusion logs:parachain", - "logs:parachain": "wait-on 9988.log && tail -f -n 100000 9988.log" - }, - "author": "", - "license": "Apache-2.0", - "dependencies": { - "@polkadot/api": "^6.3.1", - "npm-run-all": "^4.1.5", - "polkadot-launch": "^2.1.0", - "wait-on": "^6.0.0" - } -}