From faa95812acca0c9159282ef96b676acc622d5a13 Mon Sep 17 00:00:00 2001 From: girazoki Date: Fri, 7 Feb 2025 10:08:35 +0100 Subject: [PATCH 01/13] install always protoc in tanssi-release (#855) --- .github/workflows/prepare-binary.yml | 4 ++++ .github/workflows/prepare-tanssi-relay-binary.yml | 4 ++++ .github/workflows/publish-binary-tannsi-relay.yml | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/.github/workflows/prepare-binary.yml b/.github/workflows/prepare-binary.yml index 8073dadd3..08fe5149b 100644 --- a/.github/workflows/prepare-binary.yml +++ b/.github/workflows/prepare-binary.yml @@ -25,6 +25,10 @@ jobs: ref: ${{ github.event.inputs.sha }} - name: Setup Rust toolchain run: rustup show + - name: Install protoc + run: | + sudo apt-get update + sudo apt-get install protobuf-compiler - name: Build Node run: cargo build --profile=production --all - name: Save parachain binary diff --git a/.github/workflows/prepare-tanssi-relay-binary.yml b/.github/workflows/prepare-tanssi-relay-binary.yml index ee7ac0be2..503b13168 100644 --- a/.github/workflows/prepare-tanssi-relay-binary.yml +++ b/.github/workflows/prepare-tanssi-relay-binary.yml @@ -25,6 +25,10 @@ jobs: ref: ${{ github.event.inputs.sha }} - name: Setup Rust toolchain run: rustup show + - name: Install protoc + run: | + sudo apt-get update + sudo apt-get install protobuf-compiler - name: Build Node run: cargo build --profile=production -p tanssi-relay - name: Save dancelight binary diff --git a/.github/workflows/publish-binary-tannsi-relay.yml b/.github/workflows/publish-binary-tannsi-relay.yml index a0f00275d..37c30c3ea 100644 --- a/.github/workflows/publish-binary-tannsi-relay.yml +++ b/.github/workflows/publish-binary-tannsi-relay.yml @@ -38,6 +38,10 @@ jobs: ref: ${{ github.event.inputs.to }} - name: Setup Rust toolchain run: rustup show + - name: Install protoc + run: | + sudo apt-get update + sudo apt-get install protobuf-compiler - name: Build Node run: cargo build --profile=production -p tanssi-relay - name: Save dancelight binary From bdd38306d51d7f07ede75cb48e851c01c332bc8e Mon Sep 17 00:00:00 2001 From: Tim B <79199034+timbrinded@users.noreply.github.com> Date: Fri, 7 Feb 2025 09:42:28 +0000 Subject: [PATCH 02/13] =?UTF-8?q?fix:=20=F0=9F=98=85=20Don't=20be=20hassle?= =?UTF-8?q?d=20by=20download=20confirmations=20(#852)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .prettierignore | 3 +- pnpm-lock.yaml | 3 + test/moonwall.config.json | 28 +++--- test/package.json | 1 + test/polkadotReleaseMapping.json | 7 ++ test/scripts/download-polkadot.sh | 17 +--- test/scripts/downloadPolkadot.ts | 146 ++++++++++++++++++++++++++++++ 7 files changed, 174 insertions(+), 31 deletions(-) create mode 100644 test/polkadotReleaseMapping.json create mode 100644 test/scripts/downloadPolkadot.ts diff --git a/.prettierignore b/.prettierignore index 39a05fcd8..f986a7299 100644 --- a/.prettierignore +++ b/.prettierignore @@ -22,4 +22,5 @@ tmp # Temporary Moonwall files **/contracts/out **/tmp/ -**/html/ \ No newline at end of file +**/html/ +**/downloadPolkadot.ts \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6e6359c3e..888527cae 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -180,6 +180,9 @@ importers: solc: specifier: 0.8.21 version: 0.8.21(debug@4.3.7) + toml: + specifier: ^3.0.0 + version: 3.0.0 tsx: specifier: 4.19.2 version: 4.19.2 diff --git a/test/moonwall.config.json b/test/moonwall.config.json index 6bc1f1ca2..65a3650a7 100644 --- a/test/moonwall.config.json +++ b/test/moonwall.config.json @@ -192,7 +192,7 @@ "testFileDir": ["suites/zombie_tanssi"], "runScripts": [ "build-spec-flashbox.sh", - "download-polkadot.sh", + "downloadPolkadot.ts", "compile-wasm.ts compile -b ../target/release/tanssi-node -o wasm -c specs/flashbox-1000.json", "compile-wasm.ts compile -b ../target/release/container-chain-simple-node -o wasm -c specs/template-container-2000.json", "compile-wasm.ts compile -b ../target/release/container-chain-frontier-node -o wasm -c specs/template-container-2001.json" @@ -251,7 +251,7 @@ "testFileDir": ["suites/zombie_tanssi"], "runScripts": [ "build-spec.sh", - "download-polkadot.sh", + "downloadPolkadot.ts", "compile-wasm.ts compile -b ../target/release/tanssi-node -o wasm -c specs/tanssi-1000.json", "compile-wasm.ts compile -b ../target/release/container-chain-simple-node -o wasm -c specs/template-container-2000.json", "compile-wasm.ts compile -b ../target/release/container-chain-frontier-node -o wasm -c specs/template-container-2001.json" @@ -309,7 +309,7 @@ "testFileDir": ["suites/zombie_tanssi_keep_db"], "runScripts": [ "build-spec-single-container.sh", - "download-polkadot.sh", + "downloadPolkadot.ts", "compile-wasm.ts compile -b ../target/release/tanssi-node -o wasm -c specs/single-container-tanssi-1000.json", "compile-wasm.ts compile -b ../target/release/container-chain-simple-node -o wasm -c specs/single-container-template-container-2000.json" ], @@ -346,7 +346,7 @@ "testFileDir": ["suites/zombie_tanssi_metrics"], "runScripts": [ "build-spec-single-container.sh", - "download-polkadot.sh", + "downloadPolkadot.ts", "compile-wasm.ts compile -b ../target/release/tanssi-node -o wasm -c specs/single-container-tanssi-1000.json", "compile-wasm.ts compile -b ../target/release/container-chain-simple-node -o wasm -c specs/single-container-template-container-2000.json" ], @@ -384,7 +384,7 @@ "testFileDir": ["suites/zombie_tanssi_one_node"], "runScripts": [ "build-spec-one-node.sh", - "download-polkadot.sh", + "downloadPolkadot.ts", "compile-wasm.ts compile -b ../target/release/tanssi-node -o wasm -c specs/one-node-tanssi-1000.json" ], "foundation": { @@ -416,7 +416,7 @@ "testFileDir": ["suites/zombie_tanssi_parathreads"], "runScripts": [ "build-spec-parathreads.sh", - "download-polkadot.sh", + "downloadPolkadot.ts", "compile-wasm.ts compile -b ../target/release/tanssi-node -o wasm -c specs/parathreads-tanssi-1000.json", "compile-wasm.ts compile -b ../target/release/container-chain-simple-node -o wasm -c specs/parathreads-template-container-2000.json", "compile-wasm.ts compile -b ../target/release/container-chain-frontier-node -o wasm -c specs/parathreads-template-container-2001.json" @@ -469,7 +469,7 @@ "testFileDir": ["suites/zombie_tanssi_rotation"], "runScripts": [ "build-spec.sh", - "download-polkadot.sh", + "downloadPolkadot.ts", "compile-wasm.ts compile -b ../target/release/tanssi-node -o wasm -c specs/tanssi-1000.json", "compile-wasm.ts compile -b ../target/release/container-chain-simple-node -o wasm -c specs/template-container-2000.json", "compile-wasm.ts compile -b ../target/release/container-chain-frontier-node -o wasm -c specs/template-container-2001.json" @@ -522,7 +522,7 @@ "testFileDir": ["suites/zombie_tanssi_warp_sync"], "runScripts": [ "build-spec-single-container.sh", - "download-polkadot.sh", + "downloadPolkadot.ts", "compile-wasm.ts compile -b ../target/release/tanssi-node -o wasm -c specs/single-container-tanssi-1000.json", "compile-wasm.ts compile -b ../target/release/container-chain-simple-node -o wasm -c specs/single-container-template-container-2000.json" ], @@ -557,7 +557,7 @@ { "name": "zombie_dancebox_upgrade", "testFileDir": ["suites/zombie_dancebox_upgrade"], - "runScripts": ["download-polkadot.sh"], + "runScripts": ["downloadPolkadot.ts"], "timeout": 600000, "foundation": { "rtUpgradePath": "../target/release/wbuild/dancebox-runtime/dancebox_runtime.compact.compressed.wasm", @@ -574,7 +574,7 @@ "runScripts": [ "download-latest-rt-binaries.sh", "build-spec-single-container.sh tmp container-chain-simple-node flashbox-local", - "download-polkadot.sh", + "downloadPolkadot.ts", "compile-wasm.ts compile -b tmp/tanssi-node -o wasm -c specs/single-container-tanssi-1000.json", "compile-wasm.ts compile -b tmp/container-chain-simple-node -o wasm -c specs/single-container-template-container-2000.json" ], @@ -638,7 +638,7 @@ "runScripts": [ "download-latest-rt-binaries.sh", "build-spec-single-container.sh tmp container-chain-simple-node flashbox-local", - "download-polkadot.sh", + "downloadPolkadot.ts", "download-latest-binaries.sh ../target/release", "compile-wasm.ts compile -b tmp/tanssi-node -o wasm -c specs/single-container-tanssi-1000.json", "compile-wasm.ts compile -b tmp/container-chain-simple-node -o wasm -c specs/single-container-template-container-2000.json" @@ -710,7 +710,7 @@ "runScripts": [ "download-latest-rt-binaries.sh", "build-spec-single-container.sh tmp container-chain-frontier-node flashbox-local", - "download-polkadot.sh", + "downloadPolkadot.ts", "compile-wasm.ts compile -b tmp/tanssi-node -o wasm -c specs/single-container-tanssi-1000.json", "compile-wasm.ts compile -b tmp/container-chain-frontier-node -o wasm -c specs/single-container-template-container-2000.json" ], @@ -750,7 +750,7 @@ "runScripts": [ "download-latest-rt-binaries.sh", "build-spec-single-container.sh tmp container-chain-frontier-node flashbox-local", - "download-polkadot.sh", + "downloadPolkadot.ts", "download-latest-binaries.sh ../target/release", "compile-wasm.ts compile -b tmp/tanssi-node -o wasm -c specs/single-container-tanssi-1000.json", "compile-wasm.ts compile -b tmp/container-chain-frontier-node -o wasm -c specs/single-container-template-container-2000.json" @@ -872,7 +872,7 @@ "testFileDir": ["suites/zombie_data_preservers"], "runScripts": [ "build-spec-data-preservers.sh", - "download-polkadot.sh", + "downloadPolkadot.ts", "compile-wasm.ts compile -b ../target/release/tanssi-node -o wasm -c specs/data-preservers-dancebox-1000.json", "compile-wasm.ts compile -b ../target/release/container-chain-simple-node -o wasm -c specs/data-preservers-container-2000.json", "compile-wasm.ts compile -b ../target/release/container-chain-frontier-node -o wasm -c specs/data-preservers-container-2001.json" diff --git a/test/package.json b/test/package.json index fc0af1763..3954e79be 100644 --- a/test/package.json +++ b/test/package.json @@ -57,6 +57,7 @@ "pnpm": "9.13.0", "prettier": "2.8.8", "solc": "0.8.21", + "toml": "^3.0.0", "tsx": "4.19.2", "typescript": "5.6.3", "viem": "2.21.45", diff --git a/test/polkadotReleaseMapping.json b/test/polkadotReleaseMapping.json new file mode 100644 index 000000000..7da21e745 --- /dev/null +++ b/test/polkadotReleaseMapping.json @@ -0,0 +1,7 @@ +{ + "stable2409": { + "polkadot": "599cb6b8a0f67098717315c6db33e28983873e6c94a4272c9d0a03dd06b70428", + "polkadot-prepare-worker": "4dc5964da9052faee01f0d727fda08ab573989ac6c81f597d21028e76ae22f9c", + "polkadot-execute-worker": "8932f0b07323a497470de2c7d8b9b7583af27de3836518fbf62047a68bc788f9" + } +} diff --git a/test/scripts/download-polkadot.sh b/test/scripts/download-polkadot.sh index 93a326084..598ac29f2 100755 --- a/test/scripts/download-polkadot.sh +++ b/test/scripts/download-polkadot.sh @@ -25,22 +25,7 @@ delete_if_not_binary tmp/polkadot-execute-worker delete_if_not_binary tmp/polkadot-prepare-worker if [[ -f tmp/polkadot && -f tmp/polkadot-execute-worker && -f tmp/polkadot-prepare-worker ]]; then - POLKADOT_VERSION=$(tmp/polkadot --version) - if [[ $POLKADOT_VERSION == *$polkadot_release* ]]; then - exit 0 - else - echo "Updating polkadot binary from $POLKADOT_VERSION to $polkadot_release" - - pnpm moonwall download polkadot $polkadot_release tmp - chmod +x tmp/polkadot - - pnpm moonwall download polkadot-execute-worker $polkadot_release tmp - chmod +x tmp/polkadot-execute-worker - - pnpm moonwall download polkadot-prepare-worker $polkadot_release tmp - chmod +x tmp/polkadot-prepare-worker - - fi + echo "Polkadot binary already found, skipping download ..." else echo "Polkadot binary not found, downloading $polkadot_release" pnpm moonwall download polkadot $polkadot_release tmp diff --git a/test/scripts/downloadPolkadot.ts b/test/scripts/downloadPolkadot.ts new file mode 100644 index 000000000..892112bcc --- /dev/null +++ b/test/scripts/downloadPolkadot.ts @@ -0,0 +1,146 @@ +/* eslint-disable */ +import jsonFile from "../polkadotReleaseMapping.json" with {type: "json"}; +import fs from "node:fs/promises"; +import fsSync from "node:fs" +import assert from "node:assert" +import { parse } from "toml" +import path from "node:path" +import { execSync } from "node:child_process" +import { createHash } from "node:crypto"; + +const CONFIG = { + FOLDER_NAME: 'tmp', + BINARIES: ['polkadot', 'polkadot-execute-worker', 'polkadot-prepare-worker'] as const, + CARGO_PATH: '../Cargo.toml', +} as const; + +async function main() { + + const polkadotVersionMappings: PolkadotVersionMapping = jsonFile + const fileContents = await fs.readFile(CONFIG.CARGO_PATH, "utf-8") + const cargoToml = parse(fileContents) as CargoToml; + const stableVersion = findPolkadotStableVersion(cargoToml.workspace.dependencies) + console.log(`🔎 Found polkadot-sdk version: ${stableVersion}`) + + for (const binName of CONFIG.BINARIES) { + const pathName = path.join(CONFIG.FOLDER_NAME, binName) + if (fsSync.existsSync(pathName)) { + const existingChecksum = getSha256(pathName) + console.log(`✏️ File already exists: ${mini(existingChecksum)}`); + + const savedChecksum = polkadotVersionMappings[stableVersion]?.[binName] + + if (!savedChecksum || savedChecksum !== existingChecksum) { + if (!savedChecksum) { + console.log(`⚠️ Saved checksum not found for ${binName}:${stableVersion}`) + } else { + console.log(`⚠️ File mismatch ${mini(existingChecksum)} vs ${mini(savedChecksum)}, downloading...`); + } + execSync(`pnpm moonwall download -d ${binName} ${stableVersion} ${CONFIG.FOLDER_NAME}`, { stdio: "inherit" }); + const sha256 = getSha256(pathName) + polkadotVersionMappings[stableVersion] = { + ...polkadotVersionMappings[stableVersion], + [binName]: sha256 + } + await fs.writeFile("polkadotReleaseMapping.json", JSON.stringify(polkadotVersionMappings, null, 2)) + } else { + console.log(`✅ Binary ${pathName} matches saved version`) + } + } else { + // New File flow + console.log("📥️ File does not exist, downloading..."); + execSync(`pnpm moonwall download ${binName} ${stableVersion} ${CONFIG.FOLDER_NAME}`, { stdio: "inherit" }); + const sha256 = getSha256(pathName) + console.log(`💾 Downloaded file: ${mini(sha256)}`); + polkadotVersionMappings[stableVersion] = { + ...polkadotVersionMappings[stableVersion], + [binName]: sha256 + } + await fs.writeFile("polkadotReleaseMapping.json", JSON.stringify(polkadotVersionMappings, null, 2)) + console.log("✅ Saved to version mapping ") + } + } +} + +main() + .then(() => console.log(`🎉 Finished verifying binaries: [${CONFIG.BINARIES.join(", ")}]`)) + .catch((err: unknown) => { + console.error("❌ Error:", err); + process.exit(1); + }); +/** +* Interfaces +**/ + +interface PolkadotVersionMapping { + [key: `stable${number}-${number}` | `stable${number}`]: DownloadHashes +} +interface CargoToml { + workspace: { + dependencies: Record; + }; +} + +interface DownloadHashes { + polkadot: string; + "polkadot-execute-worker": string; + "polkadot-prepare-worker": string; +} + +/** +* Functions +**/ +function extractStableVersion(branch: string): string | null { + const match = branch.match(/stable(\d+)/) + return match ? `stable${match[1]}` : null +} + +function findPolkadotStableVersion(dependencies: Record): string { + const polkadotDeps = Object.entries(dependencies).filter(([_, config]) => + typeof config === "object" && + config.git === "https://github.com/moondance-labs/polkadot-sdk" + ) + + let stableVersions: Array | Set = new Set( + polkadotDeps + .map(([_, config]) => extractStableVersion(config.branch)) + .filter((version): version is string => version !== null) + ) + + if (stableVersions.size === 0) { + throw new Error("No stable version found in polkadot-sdk dependencies") + } + + if (stableVersions.size > 1) { + stableVersions = Array.from(stableVersions).sort((a, b) => { + // Extract numbers and compare + const aMatch = a.match(/stable(\d+)(?:-(\d+))?/) + const bMatch = b.match(/stable(\d+)(?:-(\d+))?/) + + assert(aMatch, "this is already mapped, this should never happen") + assert(bMatch, "this is already mapped, this should never happen") + + const mainVersionDiff = Number.parseInt(bMatch[1]) - Number.parseInt(aMatch[1]) + if (mainVersionDiff !== 0) { + return mainVersionDiff + } + + const aSubVersion = aMatch[2] ? Number.parseInt(aMatch[2]) : 0 + const bSubVersion = bMatch[2] ? Number.parseInt(bMatch[2]) : 0 + return bSubVersion - aSubVersion + }) + console.error(`⚠️ Multiple stable versions found: ${Array.from(stableVersions).join(", ")}. Choosing: ${stableVersions[0]}`) + } + + return Array.from(stableVersions)[0] +} + + +const getSha256 = (filePath: string) => { + const fileBuffer = fsSync.readFileSync(filePath); + const hashSum = createHash("sha256"); + hashSum.update(fileBuffer); + return hashSum.digest("hex"); +} + +const mini = (hash: string) => `<${hash.slice(0, 4)}...${hash.slice(-4)}>` From fae9632a2bd68f049399b8712b2c2523aaf876bc Mon Sep 17 00:00:00 2001 From: nanocryk <6422796+nanocryk@users.noreply.github.com> Date: Fri, 7 Feb 2025 16:58:06 +0100 Subject: [PATCH 03/13] Don't send message to Ethereum with zero rewards (#847) Co-authored-by: girazoki --- .../dancelight/src/genesis_config_presets.rs | 1 + .../dancelight/src/tests/common/mod.rs | 45 +++++- .../src/tests/external_validators_tests.rs | 51 ++++--- .../inbound_queue_tests/integration_tests.rs | 16 +- .../runtime/dancelight/src/tests/slashes.rs | 27 +++- .../external-validators-rewards/src/lib.rs | 141 ++++++++++-------- .../external-validators-rewards/src/mock.rs | 6 +- .../external-validators-rewards/src/tests.rs | 98 +++++++++++- pallets/external-validators/src/lib.rs | 7 + pallets/external-validators/src/mock.rs | 1 + tools/iforgor/tanssi.toml | 12 +- 11 files changed, 305 insertions(+), 100 deletions(-) diff --git a/chains/orchestrator-relays/runtime/dancelight/src/genesis_config_presets.rs b/chains/orchestrator-relays/runtime/dancelight/src/genesis_config_presets.rs index 93cd42754..5b2f513a7 100644 --- a/chains/orchestrator-relays/runtime/dancelight/src/genesis_config_presets.rs +++ b/chains/orchestrator-relays/runtime/dancelight/src/genesis_config_presets.rs @@ -437,6 +437,7 @@ fn dancelight_testnet_genesis( x.stash.clone() }) .collect::>(), + ..Default::default() }, }) } diff --git a/chains/orchestrator-relays/runtime/dancelight/src/tests/common/mod.rs b/chains/orchestrator-relays/runtime/dancelight/src/tests/common/mod.rs index aa85fdb91..cc44c0f06 100644 --- a/chains/orchestrator-relays/runtime/dancelight/src/tests/common/mod.rs +++ b/chains/orchestrator-relays/runtime/dancelight/src/tests/common/mod.rs @@ -18,8 +18,8 @@ use { crate::{ - BlockProductionCost, CollatorAssignmentCost, ExternalValidatorSlashes, MessageQueue, - RuntimeCall, + Authorship, BlockProductionCost, CollatorAssignmentCost, ExternalValidatorSlashes, + MessageQueue, RuntimeCall, }, babe_primitives::{ digests::{PreDigest, SecondaryPlainPreDigest}, @@ -250,6 +250,7 @@ pub fn start_block() -> RunSummary { // Initialize the new block Babe::on_initialize(System::block_number()); + Authorship::on_initialize(System::block_number()); ContainerRegistrar::on_initialize(System::block_number()); ExternalValidatorSlashes::on_initialize(System::block_number()); Session::on_initialize(System::block_number()); @@ -280,6 +281,7 @@ pub fn end_block() { advance_block_state_machine(RunBlockState::End(block_number)); // Finalize the block Babe::on_finalize(System::block_number()); + Authorship::on_finalize(System::block_number()); Session::on_finalize(System::block_number()); Grandpa::on_finalize(System::block_number()); TransactionPayment::on_finalize(System::block_number()); @@ -335,6 +337,8 @@ pub struct ExtBuilder { balances: Vec<(AccountId, Balance)>, // [validator, amount] validators: Vec<(AccountId, Balance)>, + // [validator, amount] + external_validators: Vec<(AccountId, Balance)>, // [collator, amount] collators: Vec<(AccountId, Balance)>, // sudo key @@ -362,6 +366,7 @@ impl Default for ExtBuilder { (AccountId::from(ALICE), 210 * UNIT), (AccountId::from(BOB), 100 * UNIT), ], + external_validators: vec![], collators: Default::default(), sudo: Default::default(), para_ids: Default::default(), @@ -398,6 +403,11 @@ impl ExtBuilder { self } + pub fn with_external_validators(mut self, validators: Vec<(AccountId, Balance)>) -> Self { + self.external_validators = validators; + self + } + pub fn with_collators(mut self, collators: Vec<(AccountId, Balance)>) -> Self { self.collators = collators; self @@ -614,6 +624,32 @@ impl ExtBuilder { keys.extend(validator_keys) } + if !self.external_validators.is_empty() { + let validator_keys: Vec<_> = self + .external_validators + .clone() + .into_iter() + .map(|(account, _balance)| { + let authority_keys = + get_authority_keys_from_seed(&account.to_string(), self.keystore.as_ref()); + ( + account.clone(), + account, + crate::SessionKeys { + babe: authority_keys.babe.clone(), + grandpa: authority_keys.grandpa.clone(), + para_validator: authority_keys.para_validator.clone(), + para_assignment: authority_keys.para_assignment.clone(), + authority_discovery: authority_keys.authority_discovery.clone(), + beefy: authority_keys.beefy.clone(), + nimbus: authority_keys.nimbus.clone(), + }, + ) + }) + .collect(); + keys.extend(validator_keys) + } + if !self.collators.is_empty() { // We set invulnerables in pallet_invulnerables let invulnerables: Vec = self @@ -674,6 +710,11 @@ impl ExtBuilder { .iter() .map(|(account, _)| account.clone()) .collect(), + external_validators: self + .external_validators + .iter() + .map(|(account, _)| account.clone()) + .collect(), } .assimilate_storage(&mut t) .unwrap(); diff --git a/chains/orchestrator-relays/runtime/dancelight/src/tests/external_validators_tests.rs b/chains/orchestrator-relays/runtime/dancelight/src/tests/external_validators_tests.rs index b4d4ae11e..4deb7891b 100644 --- a/chains/orchestrator-relays/runtime/dancelight/src/tests/external_validators_tests.rs +++ b/chains/orchestrator-relays/runtime/dancelight/src/tests/external_validators_tests.rs @@ -713,6 +713,11 @@ fn external_validators_rewards_sends_message_on_era_end() { (AccountId::from(ALICE), 210_000 * UNIT), (AccountId::from(BOB), 100_000 * UNIT), ]) + .with_validators(vec![]) + .with_external_validators(vec![ + (AccountId::from(ALICE), 210 * UNIT), + (AccountId::from(BOB), 100 * UNIT), + ]) .build() .execute_with(|| { let token_location: VersionedLocation = Location::here().into(); @@ -829,18 +834,13 @@ fn external_validators_rewards_merkle_proofs() { vec![AccountId::from(CHARLIE), AccountId::from(DAVE)] ); - assert!( - pallet_external_validators_rewards::RewardPointsForEra::::iter().count() - == 0 - ); - // Reward all validators in era 1 crate::RewardValidators::reward_backing(vec![ValidatorIndex(0)]); crate::RewardValidators::reward_backing(vec![ValidatorIndex(1)]); - assert!( - pallet_external_validators_rewards::RewardPointsForEra::::iter().count() - == 1 + assert_eq!( + pallet_external_validators_rewards::RewardPointsForEra::::iter().count(), + 1 ); let (_era_index, era_rewards) = @@ -1048,8 +1048,6 @@ fn external_validators_whitelisted_never_rewarded() { #[test] fn external_validators_rewards_test_command_integrity() { - use {crate::ValidatorIndex, runtime_parachains::inclusion::RewardValidators}; - ExtBuilder::default() .with_balances(vec![ (AccountId::from(ALICE), 210_000 * UNIT), @@ -1139,18 +1137,10 @@ fn external_validators_rewards_test_command_integrity() { vec![AccountId::from(CHARLIE), AccountId::from(DAVE)] ); - assert!( - pallet_external_validators_rewards::RewardPointsForEra::::iter().count() - == 0 - ); - - // Reward Alice and Bob in era 1 - crate::RewardValidators::reward_backing(vec![ValidatorIndex(0)]); - crate::RewardValidators::reward_backing(vec![ValidatorIndex(1)]); - - assert!( - pallet_external_validators_rewards::RewardPointsForEra::::iter().count() - == 1 + // Validators are automatically rewarded. + assert_eq!( + pallet_external_validators_rewards::RewardPointsForEra::::iter().count(), + 1 ); let expected_inflation = @@ -1180,10 +1170,16 @@ fn external_validators_rewards_test_command_integrity() { .count(); let rewards_utils = ExternalValidatorsRewards::generate_era_rewards_utils(1, None); + + let blocks_per_session: u128 = Babe::current_epoch().duration.into(); + let points_per_block = 20; + let expected_total_points = + (sessions_per_era as u128) * blocks_per_session * points_per_block; + let expected_rewards_command = Command::ReportRewards { external_idx: 1u64, era_index: 1u32, - total_points: 40u128, + total_points: expected_total_points, tokens_inflated: expected_inflation, rewards_merkle_root: rewards_utils.unwrap().rewards_merkle_root, token_id, @@ -1209,6 +1205,15 @@ fn external_validators_rewards_are_minted_in_sovereign_account() { (AccountId::from(ALICE), 210_000 * UNIT), (AccountId::from(BOB), 100_000 * UNIT), ]) + .with_validators( + vec![] + ) + .with_external_validators( + vec![ + (AccountId::from(ALICE), 210 * UNIT), + (AccountId::from(BOB), 100 * UNIT), + ] + ) .build() .execute_with(|| { let token_location: VersionedLocation = Location::here() diff --git a/chains/orchestrator-relays/runtime/dancelight/src/tests/inbound_queue_tests/integration_tests.rs b/chains/orchestrator-relays/runtime/dancelight/src/tests/inbound_queue_tests/integration_tests.rs index 43fc94f28..790308ae9 100644 --- a/chains/orchestrator-relays/runtime/dancelight/src/tests/inbound_queue_tests/integration_tests.rs +++ b/chains/orchestrator-relays/runtime/dancelight/src/tests/inbound_queue_tests/integration_tests.rs @@ -14,7 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Tanssi. If not, see -use crate::tests::common::{mock_snowbridge_message_proof, ExtBuilder}; +use crate::tests::common::{mock_snowbridge_message_proof, ExtBuilder, ALICE, BOB, UNIT}; use crate::{AccountId, EthereumInboundQueue, ExternalValidators, Runtime}; use alloy_sol_types::SolEvent; use frame_system::pallet_prelude::OriginFor; @@ -33,7 +33,16 @@ use tp_bridge::symbiotic_message_processor::{ #[test] fn test_inbound_queue_message_passing() { - ExtBuilder::default().build().execute_with(|| { + ExtBuilder::default() + .with_validators( + vec![] + ) + .with_external_validators( + vec![ + (AccountId::from(ALICE), 210 * UNIT), + (AccountId::from(BOB), 100 * UNIT), + ] + ).build().execute_with(|| { let current_nonce = 1; snowbridge_pallet_system::Channels::::set(PRIMARY_GOVERNANCE_CHANNEL, Some(Channel { @@ -59,8 +68,6 @@ fn test_inbound_queue_message_passing() { proof: dummy_proof.clone(), }), Err(DispatchError::Other("No handler for message found"))); - assert_eq!(ExternalValidators::validators(), ExternalValidators::whitelisted_validators()); - let payload_validators = vec![ AccountKeyring::Charlie.to_account_id(), AccountKeyring::Ferdie.to_account_id(), @@ -91,7 +98,6 @@ fn test_inbound_queue_message_passing() { proof: dummy_proof.clone(), }), Ok(())); - let expected_validators = [ExternalValidators::whitelisted_validators(), payload_validators].concat(); assert_eq!(ExternalValidators::validators(), expected_validators); }); diff --git a/chains/orchestrator-relays/runtime/dancelight/src/tests/slashes.rs b/chains/orchestrator-relays/runtime/dancelight/src/tests/slashes.rs index fa920191a..3298bc4b1 100644 --- a/chains/orchestrator-relays/runtime/dancelight/src/tests/slashes.rs +++ b/chains/orchestrator-relays/runtime/dancelight/src/tests/slashes.rs @@ -407,6 +407,11 @@ fn test_slashes_are_sent_to_ethereum() { (AccountId::from(CHARLIE), 100_000 * UNIT), (AccountId::from(DAVE), 100_000 * UNIT), ]) + .with_validators(vec![]) + .with_external_validators(vec![ + (AccountId::from(ALICE), 210 * UNIT), + (AccountId::from(BOB), 100 * UNIT), + ]) .build() .execute_with(|| { let token_location: VersionedLocation = Location::here().into(); @@ -422,10 +427,6 @@ fn test_slashes_are_sent_to_ethereum() { )); run_to_block(2); - assert_ok!(ExternalValidators::remove_whitelisted( - RuntimeOrigin::root(), - AccountId::from(ALICE) - )); inject_babe_slash(&AccountId::from(ALICE).to_string()); @@ -552,6 +553,15 @@ fn test_slashes_are_sent_to_ethereum_accumulatedly() { (AccountId::from(CHARLIE), 100_000 * UNIT), (AccountId::from(DAVE), 100_000 * UNIT), ]) + .with_validators( + vec![] + ) + .with_external_validators( + vec![ + (AccountId::from(ALICE), 210 * UNIT), + (AccountId::from(BOB), 100 * UNIT), + ] + ) .build() .execute_with(|| { let token_location: VersionedLocation = Location::here() @@ -683,6 +693,15 @@ fn test_slashes_are_sent_to_ethereum_accumulate_until_next_era() { (AccountId::from(CHARLIE), 100_000 * UNIT), (AccountId::from(DAVE), 100_000 * UNIT), ]) + .with_validators( + vec![] + ) + .with_external_validators( + vec![ + (AccountId::from(ALICE), 210 * UNIT), + (AccountId::from(BOB), 100 * UNIT), + ] + ) .build() .execute_with(|| { let token_location: VersionedLocation = Location::here() diff --git a/pallets/external-validators-rewards/src/lib.rs b/pallets/external-validators-rewards/src/lib.rs index 7952f83b7..c41baeb42 100644 --- a/pallets/external-validators-rewards/src/lib.rs +++ b/pallets/external-validators-rewards/src/lib.rs @@ -43,7 +43,7 @@ use { snowbridge_core::{ChannelId, TokenId}, snowbridge_outbound_queue_merkle_tree::{merkle_proof, merkle_root, verify_proof, MerkleProof}, sp_core::H256, - sp_runtime::traits::{Hash, MaybeEquivalence}, + sp_runtime::traits::{Hash, MaybeEquivalence, Zero}, sp_staking::SessionIndex, sp_std::collections::btree_set::BTreeSet, sp_std::vec, @@ -268,73 +268,92 @@ pub mod pallet { impl tp_traits::OnEraEnd for Pallet { fn on_era_end(era_index: EraIndex) { + // Will send a ReportRewards message to Ethereum unless: + // - the reward token is misconfigured + // - the tokens inflation is 0 (misconfigured inflation) + // - the total points is 0 (no rewards to distribute) + // - it fails to mint the tokens in the Ethereum Sovereign Account + // - the generated message doesn't pass validation + let token_location = T::TokenLocationReanchored::get(); let token_id = T::TokenIdFromLocation::convert_back(&token_location); - if let Some(token_id) = token_id { - if let Some(utils) = Self::generate_era_rewards_utils(era_index, None) { - let tokens_inflated = T::EraInflationProvider::get(); - - let ethereum_sovereign_account = T::RewardsEthereumSovereignAccount::get(); - if let Err(err) = - T::Currency::mint_into(ðereum_sovereign_account, tokens_inflated.into()) - { - log::error!(target: "ext_validators_rewards", "Failed to mint inflation into Ethereum Soverein Account: {err:?}"); - log::error!(target: "ext_validators_rewards", "Not sending message since there are no rewards to distribute"); - return; - } + let Some(token_id) = token_id else { + log::error!(target: "ext_validators_rewards", "no token id found for location {:?}", token_location); + return; + }; - let command = Command::ReportRewards { - external_idx: T::ExternalIndexProvider::get_external_index(), - era_index, - total_points: utils.total_points, - tokens_inflated, - rewards_merkle_root: utils.rewards_merkle_root, - token_id, - }; - - let channel_id: ChannelId = snowbridge_core::PRIMARY_GOVERNANCE_CHANNEL; - - let outbound_message = Message { - id: None, - channel_id, - command: command.clone(), - }; - - // Validate and deliver the message - match T::ValidateMessage::validate(&outbound_message) { - Ok((ticket, _fee)) => { - let message_id = ticket.message_id(); - if let Err(err) = T::OutboundQueue::deliver(ticket) { - log::error!(target: "ext_validators_rewards", "OutboundQueue delivery of message failed. {err:?}"); - } else { - Self::deposit_event(Event::RewardsMessageSent { - message_id, - rewards_command: command, - }); - } - } - Err(err) => { - log::error!(target: "ext_validators_rewards", "OutboundQueue validation of message failed. {err:?}"); - } - } + let Some(utils) = Self::generate_era_rewards_utils(era_index, None) else { + // Unreachable, this should never happen as we are sending + // None as the second param in Self::generate_era_rewards_utils. + log::error!( + target: "ext_validators_rewards", + "Outbound message not sent for era {:?}!", + era_index + ); + return; + }; - frame_system::Pallet::::register_extra_weight_unchecked( - T::WeightInfo::on_era_end(), - DispatchClass::Mandatory, - ); - } else { - // Unreachable, this should never happen as we are sending - // None as the second param in Self::generate_era_rewards_utils. - log::error!( - target: "ext_validators_rewards", - "Outbound message not sent for era {:?}!", - era_index - ); + let tokens_inflated = T::EraInflationProvider::get(); + + if tokens_inflated.is_zero() { + log::error!(target: "ext_validators_rewards", "Not sending message because tokens_inflated is 0"); + return; + } + + if utils.total_points.is_zero() { + log::error!(target: "ext_validators_rewards", "Not sending message because total_points is 0"); + return; + } + + let ethereum_sovereign_account = T::RewardsEthereumSovereignAccount::get(); + if let Err(err) = + T::Currency::mint_into(ðereum_sovereign_account, tokens_inflated.into()) + { + log::error!(target: "ext_validators_rewards", "Failed to mint inflation into Ethereum Soverein Account: {err:?}"); + log::error!(target: "ext_validators_rewards", "Not sending message since there are no rewards to distribute"); + return; + } + + let command = Command::ReportRewards { + external_idx: T::ExternalIndexProvider::get_external_index(), + era_index, + total_points: utils.total_points, + tokens_inflated, + rewards_merkle_root: utils.rewards_merkle_root, + token_id, + }; + + let channel_id: ChannelId = snowbridge_core::PRIMARY_GOVERNANCE_CHANNEL; + + let outbound_message = Message { + id: None, + channel_id, + command: command.clone(), + }; + + // Validate and deliver the message + match T::ValidateMessage::validate(&outbound_message) { + Ok((ticket, _fee)) => { + let message_id = ticket.message_id(); + if let Err(err) = T::OutboundQueue::deliver(ticket) { + log::error!(target: "ext_validators_rewards", "OutboundQueue delivery of message failed. {err:?}"); + } else { + Self::deposit_event(Event::RewardsMessageSent { + message_id, + rewards_command: command, + }); + } + } + Err(err) => { + log::error!(target: "ext_validators_rewards", "OutboundQueue validation of message failed. {err:?}"); } - } else { - log::debug!(target: "ext_validators_rewards", "no token id found for location {:?}", token_location); } + + frame_system::Pallet::::register_extra_weight_unchecked( + T::WeightInfo::on_era_end(), + DispatchClass::Mandatory, + ); } } } diff --git a/pallets/external-validators-rewards/src/mock.rs b/pallets/external-validators-rewards/src/mock.rs index 174ce8284..6aeefe9e6 100644 --- a/pallets/external-validators-rewards/src/mock.rs +++ b/pallets/external-validators-rewards/src/mock.rs @@ -17,7 +17,7 @@ use { crate as pallet_external_validators_rewards, frame_support::{ parameter_types, - traits::{ConstU128, ConstU32, ConstU64}, + traits::{ConstU32, ConstU64}, }, pallet_balances::AccountData, snowbridge_core::{ @@ -156,6 +156,7 @@ parameter_types! { pub const RewardsEthereumSovereignAccount: u64 = 0xffffffffffffffff; pub RewardTokenLocation: Location = Location::here(); + pub EraInflationProvider: u128 = Mock::mock().era_inflation.unwrap_or(42); } impl pallet_external_validators_rewards::Config for Test { @@ -164,7 +165,7 @@ impl pallet_external_validators_rewards::Config for Test { type HistoryDepth = ConstU32<10>; type BackingPoints = ConstU32<20>; type DisputeStatementPoints = ConstU32<20>; - type EraInflationProvider = ConstU128<42>; + type EraInflationProvider = EraInflationProvider; type ExternalIndexProvider = TimestampProvider; type GetWhitelistedValidators = (); type Hashing = Keccak256; @@ -191,6 +192,7 @@ pub mod mock_data { #[derive(Clone, Default, Encode, Decode, sp_core::RuntimeDebug, scale_info::TypeInfo)] pub struct Mocks { pub active_era: Option, + pub era_inflation: Option, } #[pallet::config] diff --git a/pallets/external-validators-rewards/src/tests.rs b/pallets/external-validators-rewards/src/tests.rs index 77e367d99..d97639aab 100644 --- a/pallets/external-validators-rewards/src/tests.rs +++ b/pallets/external-validators-rewards/src/tests.rs @@ -16,7 +16,6 @@ use { crate::{self as pallet_external_validators_rewards, mock::*}, - frame_support::traits::Get, sp_core::H256, sp_std::collections::btree_map::BTreeMap, tp_bridge::Command, @@ -175,3 +174,100 @@ fn test_on_era_end_without_proper_token() { ); }) } + +#[test] +fn test_on_era_end_with_zero_inflation() { + new_test_ext().execute_with(|| { + run_to_block(1); + + Mock::mutate(|mock| { + mock.active_era = Some(ActiveEraInfo { + index: 1, + start: None, + }); + mock.era_inflation = Some(0); + }); + let points = vec![10u32, 30u32, 50u32]; + let total_points: u32 = points.iter().cloned().sum(); + let accounts = vec![1u64, 3u64, 5u64]; + let accounts_points: Vec<(u64, crate::RewardPoints)> = accounts + .iter() + .cloned() + .zip(points.iter().cloned()) + .collect(); + ExternalValidatorsRewards::reward_by_ids(accounts_points); + ExternalValidatorsRewards::on_era_end(1); + + let rewards_utils = ExternalValidatorsRewards::generate_era_rewards_utils(1, None); + let expected_command = Command::ReportRewards { + external_idx: 31000u64, + era_index: 1u32, + total_points: total_points as u128, + tokens_inflated: + ::EraInflationProvider::get(), // test inflation value used in mock + rewards_merkle_root: rewards_utils.unwrap().rewards_merkle_root, + token_id: H256::repeat_byte(0x01), + }; + + let events = System::events(); + let expected_not_thrown_event = + RuntimeEvent::ExternalValidatorsRewards(crate::Event::RewardsMessageSent { + message_id: Default::default(), + rewards_command: expected_command, + }); + assert!( + !events + .iter() + .any(|record| record.event == expected_not_thrown_event), + "event should not have been thrown", + ); + }) +} + +#[test] +fn test_on_era_end_with_zero_points() { + new_test_ext().execute_with(|| { + run_to_block(1); + + Mock::mutate(|mock| { + mock.active_era = Some(ActiveEraInfo { + index: 1, + start: None, + }); + }); + let points = vec![0u32, 0u32, 0u32]; + let total_points: u32 = points.iter().cloned().sum(); + let accounts = vec![1u64, 3u64, 5u64]; + let accounts_points: Vec<(u64, crate::RewardPoints)> = accounts + .iter() + .cloned() + .zip(points.iter().cloned()) + .collect(); + ExternalValidatorsRewards::reward_by_ids(accounts_points); + ExternalValidatorsRewards::on_era_end(1); + + let rewards_utils = ExternalValidatorsRewards::generate_era_rewards_utils(1, None); + let expected_command = Command::ReportRewards { + external_idx: 31000u64, + era_index: 1u32, + total_points: total_points as u128, + tokens_inflated: + ::EraInflationProvider::get(), // test inflation value used in mock + rewards_merkle_root: rewards_utils.unwrap().rewards_merkle_root, + token_id: H256::repeat_byte(0x01), + }; + + let events = System::events(); + let expected_not_thrown_event = + RuntimeEvent::ExternalValidatorsRewards(crate::Event::RewardsMessageSent { + message_id: Default::default(), + rewards_command: expected_command, + }); + assert!( + !events + .iter() + .any(|record| record.event == expected_not_thrown_event), + "event should not have been thrown", + ); + }) +} diff --git a/pallets/external-validators/src/lib.rs b/pallets/external-validators/src/lib.rs index 5ad7e59c3..541a722b0 100644 --- a/pallets/external-validators/src/lib.rs +++ b/pallets/external-validators/src/lib.rs @@ -214,6 +214,7 @@ pub mod pallet { pub struct GenesisConfig { pub skip_external_validators: bool, pub whitelisted_validators: Vec, + pub external_validators: Vec, } #[pallet::genesis_build] @@ -236,10 +237,16 @@ pub mod pallet { ) .expect("genesis validators are more than T::MaxWhitelistedValidators"); + let bounded_external_validators = BoundedVec::<_, T::MaxExternalValidators>::try_from( + self.external_validators.clone(), + ) + .expect("genesis external validators are more than T::MaxExternalValidators"); + >::put(self.skip_external_validators); >::put(&bounded_validators); >::put(&bounded_validators); >::put(&bounded_validators); + >::put(&bounded_external_validators); } } diff --git a/pallets/external-validators/src/mock.rs b/pallets/external-validators/src/mock.rs index c3eea772b..39b3622fc 100644 --- a/pallets/external-validators/src/mock.rs +++ b/pallets/external-validators/src/mock.rs @@ -298,6 +298,7 @@ pub fn new_test_ext() -> sp_io::TestExternalities { pallet_external_validators::GenesisConfig:: { skip_external_validators: false, whitelisted_validators, + ..Default::default() } .assimilate_storage(&mut t) .unwrap(); diff --git a/tools/iforgor/tanssi.toml b/tools/iforgor/tanssi.toml index 7d0f14caa..e91164d1f 100644 --- a/tools/iforgor/tanssi.toml +++ b/tools/iforgor/tanssi.toml @@ -58,9 +58,17 @@ cargo test --release --all --features fast-runtime name = "[Tanssi] Cargo Test Crate" only_in_dir = "**/tanssi" script = """ -cargo test --release -p $1 --features runtime-benchmarks +cargo test --release -p $1 --features=fast-runtime $2 """ -args = ["Which crate to test"] +args = ["Which crate to test", "Tests filter"] + +[[entries]] +name = "[Tanssi] Cargo Test Crate (with benchmarks)" +only_in_dir = "**/tanssi" +script = """ +cargo test --release -p $1 --features=fast-runtime,benchmarks $2 +""" +args = ["Which crate to test", "Tests filter"] ## Build From 4ba208fa00ba968af4edbdf4c94b5a174f043f2b Mon Sep 17 00:00:00 2001 From: tmpolaczyk <44604217+tmpolaczyk@users.noreply.github.com> Date: Fri, 7 Feb 2025 17:00:42 +0100 Subject: [PATCH 04/13] Disable automatic rebase in dependabot.yml (#856) --- .github/dependabot.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 60251d8f6..83d87e764 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -7,6 +7,7 @@ updates: # Check for updates once a month schedule: interval: "monthly" + rebase-strategy: "disabled" labels: - "ci" - "not-breaking" From 29489561a41c15948a562ce124e023bce311f314 Mon Sep 17 00:00:00 2001 From: tmpolaczyk <44604217+tmpolaczyk@users.noreply.github.com> Date: Mon, 10 Feb 2025 12:22:30 +0100 Subject: [PATCH 05/13] Add balance transfer to zombie upgrade tests (#854) Co-authored-by: girazoki --- .../test_zombie_dancebox_upgrade.ts | 42 ++++++++++++++++-- .../test_zombie_dancelight_upgrade.ts | 42 ++++++++++++++++-- .../test_zombie_simple_template_upgrade.ts | 44 +++++++++++++++++-- 3 files changed, 118 insertions(+), 10 deletions(-) diff --git a/test/suites/zombie_dancebox_upgrade/test_zombie_dancebox_upgrade.ts b/test/suites/zombie_dancebox_upgrade/test_zombie_dancebox_upgrade.ts index a86bad47f..0aad44606 100644 --- a/test/suites/zombie_dancebox_upgrade/test_zombie_dancebox_upgrade.ts +++ b/test/suites/zombie_dancebox_upgrade/test_zombie_dancebox_upgrade.ts @@ -1,5 +1,5 @@ import { MoonwallContext, beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { KeyringPair } from "@moonwall/util"; +import { KeyringPair, generateKeyringPair } from "@moonwall/util"; import { ApiPromise, Keyring } from "@polkadot/api"; import fs from "node:fs"; @@ -55,13 +55,15 @@ describeSuite({ return; } else { log("Runtime not upgraded, proceeding with test"); - log("Current runtime hash: " + rtHex.slice(0, 10) + "..." + rtHex.slice(-10)); - log("New runtime hash: " + codeString.slice(0, 10) + "..." + codeString.slice(-10)); + log("Current runtime spec version:", rtBefore); + log("Current runtime bytes: " + rtHex.slice(0, 10) + "..." + rtHex.slice(-10)); + log("New runtime bytes: " + codeString.slice(0, 10) + "..." + codeString.slice(-10)); } await context.upgradeRuntime({ from: alice, logger: log }); await context.waitBlock(2); const rtafter = paraApi.consts.system.version.specVersion.toNumber(); + log("New runtime spec version:", rtafter); if (rtBefore === rtafter) { throw new Error("Runtime upgrade failed"); } @@ -70,5 +72,39 @@ describeSuite({ expect(blockNumberAfter, "Block number did not increase").to.be.greaterThan(blockNumberBefore); }, }); + + it({ + id: "T03", + title: "Can send balance transfers", + timeout: 600000, + test: async function () { + const randomAccount = generateKeyringPair("sr25519"); + + let tries = 0; + const balanceBefore = (await paraApi.query.system.account(randomAccount.address)).data.free.toBigInt(); + + /// It might happen that by accident we hit a session change + /// A block in which a session change occurs cannot hold any tx + /// Chopsticks does not have the notion of tx pool either, so we need to retry + /// Therefore we just retry at most MAX_BALANCE_TRANSFER_TRIES + const MAX_BALANCE_TRANSFER_TRIES = 5; + while (tries < MAX_BALANCE_TRANSFER_TRIES) { + const txHash = await paraApi.tx.balances + .transferAllowDeath(randomAccount.address, 1_000_000_000) + .signAndSend(alice); + await context.waitBlock(1); + + const block = await paraApi.rpc.chain.getBlock(); + const includedTxHashes = block.block.extrinsics.map((x) => x.hash.toString()); + if (includedTxHashes.includes(txHash.toString())) { + break; + } + tries++; + } + + const balanceAfter = (await paraApi.query.system.account(randomAccount.address)).data.free.toBigInt(); + expect(balanceBefore < balanceAfter).to.be.true; + }, + }); }, }); diff --git a/test/suites/zombie_dancelight_upgrade/test_zombie_dancelight_upgrade.ts b/test/suites/zombie_dancelight_upgrade/test_zombie_dancelight_upgrade.ts index a42c08ca3..f1604d314 100644 --- a/test/suites/zombie_dancelight_upgrade/test_zombie_dancelight_upgrade.ts +++ b/test/suites/zombie_dancelight_upgrade/test_zombie_dancelight_upgrade.ts @@ -1,5 +1,5 @@ import { MoonwallContext, beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { KeyringPair } from "@moonwall/util"; +import { generateKeyringPair, KeyringPair } from "@moonwall/util"; import { ApiPromise, Keyring } from "@polkadot/api"; import fs from "node:fs"; @@ -50,13 +50,15 @@ describeSuite({ return; } else { log("Runtime not upgraded, proceeding with test"); - log("Current runtime hash: " + rtHex.slice(0, 10) + "..." + rtHex.slice(-10)); - log("New runtime hash: " + codeString.slice(0, 10) + "..." + codeString.slice(-10)); + log("Current runtime spec version:", rtBefore); + log("Current runtime bytes: " + rtHex.slice(0, 10) + "..." + rtHex.slice(-10)); + log("New runtime bytes: " + codeString.slice(0, 10) + "..." + codeString.slice(-10)); } await context.upgradeRuntime({ from: alice, logger: log }); await context.waitBlock(2); const rtafter = relayApi.consts.system.version.specVersion.toNumber(); + log("New runtime spec version:", rtafter); if (rtBefore === rtafter) { throw new Error("Runtime upgrade failed"); } @@ -65,5 +67,39 @@ describeSuite({ expect(blockNumberAfter, "Block number did not increase").to.be.greaterThan(blockNumberBefore); }, }); + + it({ + id: "T03", + title: "Can send balance transfers", + timeout: 600000, + test: async function () { + const randomAccount = generateKeyringPair("sr25519"); + + let tries = 0; + const balanceBefore = (await relayApi.query.system.account(randomAccount.address)).data.free.toBigInt(); + + /// It might happen that by accident we hit a session change + /// A block in which a session change occurs cannot hold any tx + /// Chopsticks does not have the notion of tx pool either, so we need to retry + /// Therefore we just retry at most MAX_BALANCE_TRANSFER_TRIES + const MAX_BALANCE_TRANSFER_TRIES = 5; + while (tries < MAX_BALANCE_TRANSFER_TRIES) { + const txHash = await relayApi.tx.balances + .transferAllowDeath(randomAccount.address, 1_000_000_000) + .signAndSend(alice); + await context.waitBlock(1); + + const block = await relayApi.rpc.chain.getBlock(); + const includedTxHashes = block.block.extrinsics.map((x) => x.hash.toString()); + if (includedTxHashes.includes(txHash.toString())) { + break; + } + tries++; + } + + const balanceAfter = (await relayApi.query.system.account(randomAccount.address)).data.free.toBigInt(); + expect(balanceBefore < balanceAfter).to.be.true; + }, + }); }, }); diff --git a/test/suites/zombie_simple_template_upgrade/test_zombie_simple_template_upgrade.ts b/test/suites/zombie_simple_template_upgrade/test_zombie_simple_template_upgrade.ts index a314b31e7..bb42e401a 100644 --- a/test/suites/zombie_simple_template_upgrade/test_zombie_simple_template_upgrade.ts +++ b/test/suites/zombie_simple_template_upgrade/test_zombie_simple_template_upgrade.ts @@ -1,5 +1,5 @@ import { MoonwallContext, beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { KeyringPair } from "@moonwall/util"; +import { generateKeyringPair, KeyringPair } from "@moonwall/util"; import { ApiPromise, Keyring } from "@polkadot/api"; import { alith } from "@moonwall/util"; @@ -42,23 +42,25 @@ describeSuite({ const blockNumberBefore = (await paraApi.rpc.chain.getBlock()).block.header.number.toNumber(); const currentCode = await paraApi.rpc.state.getStorage(":code"); const codeString = currentCode.toString(); - const rtBefore = paraApi.consts.system.version.specVersion.toNumber(); const wasm = fs.readFileSync((await MoonwallContext.getContext()).rtUpgradePath); const rtHex = `0x${wasm.toString("hex")}`; + const rtBefore = paraApi.consts.system.version.specVersion.toNumber(); if (rtHex === codeString) { log("Runtime already upgraded, skipping test"); return; } else { log("Runtime not upgraded, proceeding with test"); - log("Current runtime hash: " + rtHex.slice(0, 10) + "..." + rtHex.slice(-10)); - log("New runtime hash: " + codeString.slice(0, 10) + "..." + codeString.slice(-10)); + log("Current runtime spec version:", rtBefore); + log("Current runtime bytes: " + rtHex.slice(0, 10) + "..." + rtHex.slice(-10)); + log("New runtime bytes: " + codeString.slice(0, 10) + "..." + codeString.slice(-10)); } await context.upgradeRuntime({ from: alice_or_alith, logger: log }); await context.waitBlock(2); const rtafter = paraApi.consts.system.version.specVersion.toNumber(); + log("New runtime spec version:", rtafter); if (rtBefore === rtafter) { throw new Error("Runtime upgrade failed"); } @@ -67,5 +69,39 @@ describeSuite({ expect(blockNumberAfter, "Block number did not increase").to.be.greaterThan(blockNumberBefore); }, }); + + it({ + id: "T03", + title: "Can send balance transfers", + timeout: 600000, + test: async function () { + const randomAccount = generateKeyringPair("sr25519"); + + let tries = 0; + const balanceBefore = (await paraApi.query.system.account(randomAccount.address)).data.free.toBigInt(); + + /// It might happen that by accident we hit a session change + /// A block in which a session change occurs cannot hold any tx + /// Chopsticks does not have the notion of tx pool either, so we need to retry + /// Therefore we just retry at most MAX_BALANCE_TRANSFER_TRIES + const MAX_BALANCE_TRANSFER_TRIES = 5; + while (tries < MAX_BALANCE_TRANSFER_TRIES) { + const txHash = await paraApi.tx.balances + .transferAllowDeath(randomAccount.address, 1_000_000_000) + .signAndSend(alice_or_alith); + await context.waitBlock(1); + + const block = await paraApi.rpc.chain.getBlock(); + const includedTxHashes = block.block.extrinsics.map((x) => x.hash.toString()); + if (includedTxHashes.includes(txHash.toString())) { + break; + } + tries++; + } + + const balanceAfter = (await paraApi.query.system.account(randomAccount.address)).data.free.toBigInt(); + expect(balanceBefore < balanceAfter).to.be.true; + }, + }); }, }); From c981458bb3c20485d1d19f395184c7eadacfa1bf Mon Sep 17 00:00:00 2001 From: nanocryk <6422796+nanocryk@users.noreply.github.com> Date: Mon, 10 Feb 2025 13:51:56 +0100 Subject: [PATCH 06/13] Remove default WeightInfo if possible (#865) --- .../runtime/dancelight/src/lib.rs | 21 +- .../runtime/dancelight/src/weights/mod.rs | 4 + .../src/weights/pallet_beefy_mmr.rs | 92 ++++++++ .../src/weights/pallet_configuration.rs | 74 +++++++ .../dancelight/src/weights/pallet_mmr.rs | 88 ++++++++ .../weights/pallet_multiblock_migrations.rs | 200 ++++++++++++++++++ 6 files changed, 475 insertions(+), 4 deletions(-) create mode 100644 chains/orchestrator-relays/runtime/dancelight/src/weights/pallet_beefy_mmr.rs create mode 100644 chains/orchestrator-relays/runtime/dancelight/src/weights/pallet_configuration.rs create mode 100644 chains/orchestrator-relays/runtime/dancelight/src/weights/pallet_mmr.rs create mode 100644 chains/orchestrator-relays/runtime/dancelight/src/weights/pallet_multiblock_migrations.rs diff --git a/chains/orchestrator-relays/runtime/dancelight/src/lib.rs b/chains/orchestrator-relays/runtime/dancelight/src/lib.rs index 67268b1bb..6a6398b35 100644 --- a/chains/orchestrator-relays/runtime/dancelight/src/lib.rs +++ b/chains/orchestrator-relays/runtime/dancelight/src/lib.rs @@ -467,6 +467,7 @@ impl pallet_babe::Config for Runtime { // session module is the trigger type EpochChangeTrigger = pallet_babe::ExternalTrigger; type DisabledValidators = Session; + // Not benchmarked in Kusama type WeightInfo = (); type MaxAuthorities = MaxAuthorities; type MaxNominators = ConstU32<0>; @@ -570,6 +571,10 @@ impl pallet_session::Config for Runtime { type SessionManager = pallet_session::historical::NoteHistoricalRoot; type SessionHandler = ::KeyTypeIdProviders; type Keys = SessionKeys; + // TODO: Current benchmarking code for pallet_session requires that the runtime + // uses pallet_staking, which we don't use. We need to make a PR to Substrate to + // allow decoupling the benchmark from other pallets. + // See https://github.com/paritytech/polkadot-sdk/blob/0845044454c005b577eab7afaea18583bd7e3dd3/substrate/frame/session/benchmarking/src/inner.rs#L38 type WeightInfo = (); } @@ -682,6 +687,7 @@ parameter_types! { impl pallet_grandpa::Config for Runtime { type RuntimeEvent = RuntimeEvent; + // Not benchmarked in Kusama, benchmarking code also don't match WeightInfo trait. type WeightInfo = (); type MaxAuthorities = MaxAuthorities; type MaxNominators = ConstU32<0>; @@ -1292,6 +1298,8 @@ impl pallet_beefy::Config for Runtime { type MaxNominators = ConstU32<0>; type MaxSetIdSessionEntries = BeefySetIdSessionEntries; type OnNewValidatorSet = BeefyMmrLeaf; + // There are currently no benchmarks for pallet_beefy. + // https://github.com/paritytech/polkadot-sdk/tree/master/substrate/frame/beefy/src type WeightInfo = (); type KeyOwnerProof = >::Proof; type EquivocationReportSystem = @@ -1313,7 +1321,7 @@ impl pallet_mmr::Config for Runtime { const INDEXING_PREFIX: &'static [u8] = mmr::INDEXING_PREFIX; type Hashing = Keccak256; type OnNewRoot = pallet_beefy_mmr::DepositBeefyDigest; - type WeightInfo = (); + type WeightInfo = weights::pallet_mmr::SubstrateWeight; type LeafData = pallet_beefy_mmr::Pallet; type BlockHashProvider = pallet_mmr::DefaultBlockHashProvider; #[cfg(feature = "runtime-benchmarks")] @@ -1359,7 +1367,7 @@ impl pallet_beefy_mmr::Config for Runtime { type BeefyAuthorityToMerkleLeaf = pallet_beefy_mmr::BeefyEcdsaToEthereum; type LeafExtra = LeafExtraData; type BeefyDataProvider = LeafExtraDataProvider; - type WeightInfo = (); + type WeightInfo = weights::pallet_beefy_mmr::SubstrateWeight; } impl paras_sudo_wrapper::Config for Runtime {} @@ -1541,7 +1549,7 @@ impl pallet_configuration::Config for Runtime { type SessionIndex = SessionIndex; type CurrentSessionIndex = CurrentSessionIndexGetter; type ForceEmptyOrchestrator = ConstBool; - type WeightInfo = (); + type WeightInfo = weights::pallet_configuration::SubstrateWeight; } impl pallet_migrations::Config for Runtime { @@ -1566,7 +1574,7 @@ impl pallet_multiblock_migrations::Config for Runtime { type MigrationStatusHandler = (); type FailedMigrationHandler = frame_support::migrations::FreezeChainOnFailedMigration; type MaxServiceWeight = MbmServiceWeight; - type WeightInfo = (); + type WeightInfo = weights::pallet_multiblock_migrations::SubstrateWeight; } pub const FIXED_BLOCK_PRODUCTION_COST: u128 = 1 * MICROUNITS; @@ -2303,6 +2311,10 @@ mod benches { [pallet_asset_rate, AssetRate] [pallet_whitelist, Whitelist] [pallet_services_payment, ServicesPayment] + [pallet_mmr, Mmr] + [pallet_beefy_mmr, BeefyMmrLeaf] + [pallet_multiblock_migrations, MultiBlockMigrations] + // Tanssi [pallet_author_noting, AuthorNoting] [pallet_registrar, ContainerRegistrar] @@ -2313,6 +2325,7 @@ mod benches { [pallet_invulnerables, TanssiInvulnerables] [pallet_data_preservers, DataPreservers] [pallet_pooled_staking, PooledStaking] + [pallet_configuration, CollatorConfiguration] // XCM [pallet_xcm, PalletXcmExtrinsicsBenchmark::] diff --git a/chains/orchestrator-relays/runtime/dancelight/src/weights/mod.rs b/chains/orchestrator-relays/runtime/dancelight/src/weights/mod.rs index 7cf05dadf..dfd483e1e 100644 --- a/chains/orchestrator-relays/runtime/dancelight/src/weights/mod.rs +++ b/chains/orchestrator-relays/runtime/dancelight/src/weights/mod.rs @@ -18,7 +18,9 @@ pub mod frame_system; pub mod pallet_asset_rate; pub mod pallet_author_noting; pub mod pallet_balances; +pub mod pallet_beefy_mmr; pub mod pallet_collator_assignment; +pub mod pallet_configuration; pub mod pallet_conviction_voting; pub mod pallet_data_preservers; pub mod pallet_external_validator_slashes; @@ -27,6 +29,8 @@ pub mod pallet_external_validators_rewards; pub mod pallet_identity; pub mod pallet_invulnerables; pub mod pallet_message_queue; +pub mod pallet_mmr; +pub mod pallet_multiblock_migrations; pub mod pallet_multisig; pub mod pallet_parameters; pub mod pallet_pooled_staking; diff --git a/chains/orchestrator-relays/runtime/dancelight/src/weights/pallet_beefy_mmr.rs b/chains/orchestrator-relays/runtime/dancelight/src/weights/pallet_beefy_mmr.rs new file mode 100644 index 000000000..292af5427 --- /dev/null +++ b/chains/orchestrator-relays/runtime/dancelight/src/weights/pallet_beefy_mmr.rs @@ -0,0 +1,92 @@ +// Copyright (C) Moondance Labs Ltd. +// This file is part of Tanssi. + +// Tanssi is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Tanssi is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Tanssi. If not, see + + +//! Autogenerated weights for pallet_beefy_mmr +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0 +//! DATE: 2025-02-07, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `pop-os`, CPU: `12th Gen Intel(R) Core(TM) i7-1260P` +//! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("dancelight-dev"), DB CACHE: 1024 + +// Executed Command: +// target/release/tanssi-relay +// benchmark +// pallet +// --execution=wasm +// --wasm-execution=compiled +// --pallet +// pallet_beefy_mmr +// --extrinsic +// * +// --chain=dancelight-dev +// --steps +// 2 +// --repeat +// 2 +// --template=benchmarking/frame-weight-runtime-template.hbs +// --json-file +// raw.json +// --output +// tmp/dancelight_weights/pallet_beefy_mmr.rs + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; +use sp_std::marker::PhantomData; + +/// Weights for pallet_beefy_mmr using the Substrate node and recommended hardware. +pub struct SubstrateWeight(PhantomData); +impl pallet_beefy_mmr::WeightInfo for SubstrateWeight { + /// Storage: `System::BlockHash` (r:1 w:0) + /// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + fn extract_validation_context() -> Weight { + // Proof Size summary in bytes: + // Measured: `92` + // Estimated: `3509` + // Minimum execution time: 7_643_000 picoseconds. + Weight::from_parts(8_243_000, 3509) + .saturating_add(T::DbWeight::get().reads(1_u64)) + } + /// Storage: `Mmr::Nodes` (r:1 w:0) + /// Proof: `Mmr::Nodes` (`max_values`: None, `max_size`: Some(40), added: 2515, mode: `MaxEncodedLen`) + fn read_peak() -> Weight { + // Proof Size summary in bytes: + // Measured: `254` + // Estimated: `3505` + // Minimum execution time: 5_980_000 picoseconds. + Weight::from_parts(6_080_000, 3505) + .saturating_add(T::DbWeight::get().reads(1_u64)) + } + /// Storage: `Mmr::RootHash` (r:1 w:0) + /// Proof: `Mmr::RootHash` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `Mmr::NumberOfLeaves` (r:1 w:0) + /// Proof: `Mmr::NumberOfLeaves` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) + /// The range of component `n` is `[2, 512]`. + fn n_items_proof_is_non_canonical(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `246` + // Estimated: `1517` + // Minimum execution time: 15_086_000 picoseconds. + Weight::from_parts(12_589_666, 1517) + // Standard Error: 42_062 + .saturating_add(Weight::from_parts(1_281_166, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(2_u64)) + } +} \ No newline at end of file diff --git a/chains/orchestrator-relays/runtime/dancelight/src/weights/pallet_configuration.rs b/chains/orchestrator-relays/runtime/dancelight/src/weights/pallet_configuration.rs new file mode 100644 index 000000000..2d44513e7 --- /dev/null +++ b/chains/orchestrator-relays/runtime/dancelight/src/weights/pallet_configuration.rs @@ -0,0 +1,74 @@ +// Copyright (C) Moondance Labs Ltd. +// This file is part of Tanssi. + +// Tanssi is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Tanssi is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Tanssi. If not, see + + +//! Autogenerated weights for pallet_configuration +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0 +//! DATE: 2025-02-10, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `pop-os`, CPU: `12th Gen Intel(R) Core(TM) i7-1260P` +//! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("dancelight-dev"), DB CACHE: 1024 + +// Executed Command: +// target/release/tanssi-relay +// benchmark +// pallet +// --execution=wasm +// --wasm-execution=compiled +// --pallet +// pallet_configuration +// --extrinsic +// * +// --chain=dancelight-dev +// --steps +// 2 +// --repeat +// 2 +// --template=benchmarking/frame-weight-runtime-template.hbs +// --json-file +// raw.json +// --output +// tmp/dancelight_weights/pallet_configuration.rs + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; +use sp_std::marker::PhantomData; + +/// Weights for pallet_configuration using the Substrate node and recommended hardware. +pub struct SubstrateWeight(PhantomData); +impl pallet_configuration::WeightInfo for SubstrateWeight { + /// Storage: `CollatorConfiguration::PendingConfigs` (r:1 w:1) + /// Proof: `CollatorConfiguration::PendingConfigs` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `CollatorConfiguration::ActiveConfig` (r:1 w:0) + /// Proof: `CollatorConfiguration::ActiveConfig` (`max_values`: Some(1), `max_size`: Some(52), added: 547, mode: `MaxEncodedLen`) + /// Storage: `CollatorConfiguration::BypassConsistencyCheck` (r:1 w:0) + /// Proof: `CollatorConfiguration::BypassConsistencyCheck` (`max_values`: Some(1), `max_size`: Some(1), added: 496, mode: `MaxEncodedLen`) + /// Storage: `Session::CurrentIndex` (r:1 w:0) + /// Proof: `Session::CurrentIndex` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn set_config_with_u32() -> Weight { + // Proof Size summary in bytes: + // Measured: `883` + // Estimated: `2368` + // Minimum execution time: 19_433_000 picoseconds. + Weight::from_parts(22_416_000, 2368) + .saturating_add(T::DbWeight::get().reads(4_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } +} \ No newline at end of file diff --git a/chains/orchestrator-relays/runtime/dancelight/src/weights/pallet_mmr.rs b/chains/orchestrator-relays/runtime/dancelight/src/weights/pallet_mmr.rs new file mode 100644 index 000000000..854fe08ea --- /dev/null +++ b/chains/orchestrator-relays/runtime/dancelight/src/weights/pallet_mmr.rs @@ -0,0 +1,88 @@ +// Copyright (C) Moondance Labs Ltd. +// This file is part of Tanssi. + +// Tanssi is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Tanssi is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Tanssi. If not, see + + +//! Autogenerated weights for pallet_mmr +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0 +//! DATE: 2025-02-07, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `pop-os`, CPU: `12th Gen Intel(R) Core(TM) i7-1260P` +//! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("dancelight-dev"), DB CACHE: 1024 + +// Executed Command: +// target/release/tanssi-relay +// benchmark +// pallet +// --execution=wasm +// --wasm-execution=compiled +// --pallet +// pallet_mmr +// --extrinsic +// * +// --chain=dancelight-dev +// --steps +// 2 +// --repeat +// 2 +// --template=benchmarking/frame-weight-runtime-template.hbs +// --json-file +// raw.json +// --output +// tmp/dancelight_weights/pallet_mmr.rs + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; +use sp_std::marker::PhantomData; + +/// Weights for pallet_mmr using the Substrate node and recommended hardware. +pub struct SubstrateWeight(PhantomData); +impl pallet_mmr::WeightInfo for SubstrateWeight { + /// Storage: `Mmr::NumberOfLeaves` (r:1 w:1) + /// Proof: `Mmr::NumberOfLeaves` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) + /// Storage: `System::ParentHash` (r:1 w:0) + /// Proof: `System::ParentHash` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `Paras::Parachains` (r:1 w:0) + /// Proof: `Paras::Parachains` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `OutboundMessageCommitmentRecorder::RecordedCommitment` (r:1 w:0) + /// Proof: `OutboundMessageCommitmentRecorder::RecordedCommitment` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `BeefyMmrLeaf::BeefyNextAuthorities` (r:1 w:0) + /// Proof: `BeefyMmrLeaf::BeefyNextAuthorities` (`max_values`: Some(1), `max_size`: Some(44), added: 539, mode: `MaxEncodedLen`) + /// Storage: `Mmr::Nodes` (r:8 w:4) + /// Proof: `Mmr::Nodes` (`max_values`: None, `max_size`: Some(40), added: 2515, mode: `MaxEncodedLen`) + /// Storage: `Mmr::UseLocalStorage` (r:1 w:0) + /// Proof: `Mmr::UseLocalStorage` (`max_values`: Some(1), `max_size`: Some(1), added: 496, mode: `MaxEncodedLen`) + /// Storage: `System::Digest` (r:1 w:1) + /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Mmr::RootHash` (r:0 w:1) + /// Proof: `Mmr::RootHash` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// The range of component `x` is `[1, 1000]`. + fn on_initialize(x: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `347 + x * (39 ±0)` + // Estimated: `1833 + x * (39 ±0)` + // Minimum execution time: 26_038_000 picoseconds. + Weight::from_parts(27_790_287, 1833) + // Standard Error: 2_013 + .saturating_add(Weight::from_parts(79_212, 0).saturating_mul(x.into())) + .saturating_add(T::DbWeight::get().reads(7_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) + .saturating_add(Weight::from_parts(0, 39).saturating_mul(x.into())) + } +} \ No newline at end of file diff --git a/chains/orchestrator-relays/runtime/dancelight/src/weights/pallet_multiblock_migrations.rs b/chains/orchestrator-relays/runtime/dancelight/src/weights/pallet_multiblock_migrations.rs new file mode 100644 index 000000000..91a93181d --- /dev/null +++ b/chains/orchestrator-relays/runtime/dancelight/src/weights/pallet_multiblock_migrations.rs @@ -0,0 +1,200 @@ +// Copyright (C) Moondance Labs Ltd. +// This file is part of Tanssi. + +// Tanssi is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Tanssi is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Tanssi. If not, see + + +//! Autogenerated weights for pallet_multiblock_migrations +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0 +//! DATE: 2025-02-07, STEPS: `2`, REPEAT: `2`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `pop-os`, CPU: `12th Gen Intel(R) Core(TM) i7-1260P` +//! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("dancelight-dev"), DB CACHE: 1024 + +// Executed Command: +// target/release/tanssi-relay +// benchmark +// pallet +// --execution=wasm +// --wasm-execution=compiled +// --pallet +// pallet_multiblock_migrations +// --extrinsic +// * +// --chain=dancelight-dev +// --steps +// 2 +// --repeat +// 2 +// --template=benchmarking/frame-weight-runtime-template.hbs +// --json-file +// raw.json +// --output +// tmp/dancelight_weights/pallet_multiblock_migrations.rs + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; +use sp_std::marker::PhantomData; + +/// Weights for pallet_multiblock_migrations using the Substrate node and recommended hardware. +pub struct SubstrateWeight(PhantomData); +impl pallet_multiblock_migrations::WeightInfo for SubstrateWeight { + /// Storage: `MultiBlockMigrations::Cursor` (r:1 w:1) + /// Proof: `MultiBlockMigrations::Cursor` (`max_values`: Some(1), `max_size`: Some(65550), added: 66045, mode: `MaxEncodedLen`) + /// Storage: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) + /// Proof: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) + fn onboard_new_mbms() -> Weight { + // Proof Size summary in bytes: + // Measured: `100` + // Estimated: `67035` + // Minimum execution time: 8_463_000 picoseconds. + Weight::from_parts(10_641_000, 67035) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `MultiBlockMigrations::Cursor` (r:1 w:0) + /// Proof: `MultiBlockMigrations::Cursor` (`max_values`: Some(1), `max_size`: Some(65550), added: 66045, mode: `MaxEncodedLen`) + fn progress_mbms_none() -> Weight { + // Proof Size summary in bytes: + // Measured: `4` + // Estimated: `67035` + // Minimum execution time: 2_015_000 picoseconds. + Weight::from_parts(3_123_000, 67035) + .saturating_add(T::DbWeight::get().reads(1_u64)) + } + /// Storage: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) + /// Proof: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) + /// Storage: `MultiBlockMigrations::Cursor` (r:0 w:1) + /// Proof: `MultiBlockMigrations::Cursor` (`max_values`: Some(1), `max_size`: Some(65550), added: 66045, mode: `MaxEncodedLen`) + fn exec_migration_completed() -> Weight { + // Proof Size summary in bytes: + // Measured: `96` + // Estimated: `3561` + // Minimum execution time: 6_502_000 picoseconds. + Weight::from_parts(7_241_000, 3561) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) + /// Proof: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) + /// Storage: `MultiBlockMigrations::Historic` (r:1 w:0) + /// Proof: `MultiBlockMigrations::Historic` (`max_values`: None, `max_size`: Some(266), added: 2741, mode: `MaxEncodedLen`) + fn exec_migration_skipped_historic() -> Weight { + // Proof Size summary in bytes: + // Measured: `154` + // Estimated: `3731` + // Minimum execution time: 11_145_000 picoseconds. + Weight::from_parts(11_802_000, 3731) + .saturating_add(T::DbWeight::get().reads(2_u64)) + } + /// Storage: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) + /// Proof: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) + /// Storage: `MultiBlockMigrations::Historic` (r:1 w:0) + /// Proof: `MultiBlockMigrations::Historic` (`max_values`: None, `max_size`: Some(266), added: 2741, mode: `MaxEncodedLen`) + fn exec_migration_advance() -> Weight { + // Proof Size summary in bytes: + // Measured: `100` + // Estimated: `3731` + // Minimum execution time: 10_505_000 picoseconds. + Weight::from_parts(13_921_000, 3731) + .saturating_add(T::DbWeight::get().reads(2_u64)) + } + /// Storage: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) + /// Proof: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) + /// Storage: `MultiBlockMigrations::Historic` (r:1 w:1) + /// Proof: `MultiBlockMigrations::Historic` (`max_values`: None, `max_size`: Some(266), added: 2741, mode: `MaxEncodedLen`) + fn exec_migration_complete() -> Weight { + // Proof Size summary in bytes: + // Measured: `100` + // Estimated: `3731` + // Minimum execution time: 12_461_000 picoseconds. + Weight::from_parts(15_000_000, 3731) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) + /// Proof: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) + /// Storage: `MultiBlockMigrations::Historic` (r:1 w:0) + /// Proof: `MultiBlockMigrations::Historic` (`max_values`: None, `max_size`: Some(266), added: 2741, mode: `MaxEncodedLen`) + /// Storage: `MultiBlockMigrations::Cursor` (r:0 w:1) + /// Proof: `MultiBlockMigrations::Cursor` (`max_values`: Some(1), `max_size`: Some(65550), added: 66045, mode: `MaxEncodedLen`) + fn exec_migration_fail() -> Weight { + // Proof Size summary in bytes: + // Measured: `100` + // Estimated: `3731` + // Minimum execution time: 12_912_000 picoseconds. + Weight::from_parts(15_853_000, 3731) + .saturating_add(T::DbWeight::get().reads(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + fn on_init_loop() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 185_000 picoseconds. + Weight::from_parts(194_000, 0) + } + /// Storage: `MultiBlockMigrations::Cursor` (r:0 w:1) + /// Proof: `MultiBlockMigrations::Cursor` (`max_values`: Some(1), `max_size`: Some(65550), added: 66045, mode: `MaxEncodedLen`) + fn force_set_cursor() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_978_000 picoseconds. + Weight::from_parts(5_761_000, 0) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `MultiBlockMigrations::Cursor` (r:0 w:1) + /// Proof: `MultiBlockMigrations::Cursor` (`max_values`: Some(1), `max_size`: Some(65550), added: 66045, mode: `MaxEncodedLen`) + fn force_set_active_cursor() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_328_000 picoseconds. + Weight::from_parts(5_973_000, 0) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `MultiBlockMigrations::Cursor` (r:1 w:0) + /// Proof: `MultiBlockMigrations::Cursor` (`max_values`: Some(1), `max_size`: Some(65550), added: 66045, mode: `MaxEncodedLen`) + /// Storage: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) + /// Proof: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0) + fn force_onboard_mbms() -> Weight { + // Proof Size summary in bytes: + // Measured: `76` + // Estimated: `67035` + // Minimum execution time: 6_122_000 picoseconds. + Weight::from_parts(9_781_000, 67035) + .saturating_add(T::DbWeight::get().reads(2_u64)) + } + /// Storage: `MultiBlockMigrations::Historic` (r:256 w:256) + /// Proof: `MultiBlockMigrations::Historic` (`max_values`: None, `max_size`: Some(266), added: 2741, mode: `MaxEncodedLen`) + /// The range of component `n` is `[0, 256]`. + fn clear_historic(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `1034 + n * (269 ±0)` + // Estimated: `3731 + n * (2730 ±0)` + // Minimum execution time: 21_830_000 picoseconds. + Weight::from_parts(26_025_000, 3731) + // Standard Error: 347_090 + .saturating_add(Weight::from_parts(1_540_582, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) + .saturating_add(Weight::from_parts(0, 2730).saturating_mul(n.into())) + } +} \ No newline at end of file From 7d3d9854eb92b7dcf2e8ded11e1ef32047966d5a Mon Sep 17 00:00:00 2001 From: Aleksandar Brayanov Date: Mon, 10 Feb 2025 19:16:22 +0000 Subject: [PATCH 07/13] Bump node and runtime versions to 0.12.0 and 1200 (#853) Signed-off-by: Aleksandar Brayanov --- Cargo.lock | 10 +++++----- chains/container-chains/nodes/frontier/Cargo.toml | 2 +- chains/container-chains/nodes/simple/Cargo.toml | 2 +- .../runtime-templates/frontier/src/lib.rs | 2 +- .../runtime-templates/simple/src/lib.rs | 2 +- chains/orchestrator-paras/node/Cargo.toml | 2 +- chains/orchestrator-paras/runtime/dancebox/src/lib.rs | 2 +- chains/orchestrator-paras/runtime/flashbox/src/lib.rs | 2 +- .../node/tanssi-relay-service/Cargo.toml | 2 +- .../orchestrator-relays/node/tanssi-relay/Cargo.toml | 2 +- .../orchestrator-relays/runtime/dancelight/src/lib.rs | 2 +- 11 files changed, 15 insertions(+), 15 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 871208c7f..58e720f3e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1932,7 +1932,7 @@ checksum = "cd7e35aee659887cbfb97aaf227ac12cad1a9d7c71e55ff3376839ed4e282d08" [[package]] name = "container-chain-frontier-node" -version = "0.11.0" +version = "0.12.0" dependencies = [ "async-io 1.13.0", "async-trait", @@ -2030,7 +2030,7 @@ dependencies = [ [[package]] name = "container-chain-simple-node" -version = "0.11.0" +version = "0.12.0" dependencies = [ "async-io 1.13.0", "async-trait", @@ -17855,7 +17855,7 @@ dependencies = [ [[package]] name = "tanssi-node" -version = "0.11.0" +version = "0.12.0" dependencies = [ "async-io 1.13.0", "async-trait", @@ -17957,7 +17957,7 @@ dependencies = [ [[package]] name = "tanssi-relay" -version = "0.11.0" +version = "0.12.0" dependencies = [ "color-eyre", "polkadot-core-primitives", @@ -18017,7 +18017,7 @@ dependencies = [ [[package]] name = "tanssi-relay-service" -version = "0.11.0" +version = "0.12.0" dependencies = [ "assert_matches", "async-io 1.13.0", diff --git a/chains/container-chains/nodes/frontier/Cargo.toml b/chains/container-chains/nodes/frontier/Cargo.toml index 42d9f624e..0d5a3437e 100644 --- a/chains/container-chains/nodes/frontier/Cargo.toml +++ b/chains/container-chains/nodes/frontier/Cargo.toml @@ -5,7 +5,7 @@ build = "build.rs" description = "Frontier container chain template node" edition = "2021" license = "GPL-3.0-only" -version = "0.11.0" +version = "0.12.0" [lints] workspace = true diff --git a/chains/container-chains/nodes/simple/Cargo.toml b/chains/container-chains/nodes/simple/Cargo.toml index 81d83ecfa..f51c24aa3 100644 --- a/chains/container-chains/nodes/simple/Cargo.toml +++ b/chains/container-chains/nodes/simple/Cargo.toml @@ -5,7 +5,7 @@ build = "build.rs" description = "Simple container-chain template node" edition = "2021" license = "GPL-3.0-only" -version = "0.11.0" +version = "0.12.0" [lints] workspace = true diff --git a/chains/container-chains/runtime-templates/frontier/src/lib.rs b/chains/container-chains/runtime-templates/frontier/src/lib.rs index 44edb011d..ccf6cbfbb 100644 --- a/chains/container-chains/runtime-templates/frontier/src/lib.rs +++ b/chains/container-chains/runtime-templates/frontier/src/lib.rs @@ -332,7 +332,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("frontier-template"), impl_name: create_runtime_str!("frontier-template"), authoring_version: 1, - spec_version: 1100, + spec_version: 1200, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 1, diff --git a/chains/container-chains/runtime-templates/simple/src/lib.rs b/chains/container-chains/runtime-templates/simple/src/lib.rs index 013c09844..a737372e0 100644 --- a/chains/container-chains/runtime-templates/simple/src/lib.rs +++ b/chains/container-chains/runtime-templates/simple/src/lib.rs @@ -225,7 +225,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("container-chain-template"), impl_name: create_runtime_str!("container-chain-template"), authoring_version: 1, - spec_version: 1100, + spec_version: 1200, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 1, diff --git a/chains/orchestrator-paras/node/Cargo.toml b/chains/orchestrator-paras/node/Cargo.toml index 20e8930a4..1aa04e149 100644 --- a/chains/orchestrator-paras/node/Cargo.toml +++ b/chains/orchestrator-paras/node/Cargo.toml @@ -5,7 +5,7 @@ build = "build.rs" description = "Tanssi node implementation" edition = "2021" license = "GPL-3.0-only" -version = "0.11.0" +version = "0.12.0" [lints] workspace = true diff --git a/chains/orchestrator-paras/runtime/dancebox/src/lib.rs b/chains/orchestrator-paras/runtime/dancebox/src/lib.rs index 80217ec8c..1e3cc8430 100644 --- a/chains/orchestrator-paras/runtime/dancebox/src/lib.rs +++ b/chains/orchestrator-paras/runtime/dancebox/src/lib.rs @@ -252,7 +252,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("dancebox"), impl_name: create_runtime_str!("dancebox"), authoring_version: 1, - spec_version: 1100, + spec_version: 1200, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 1, diff --git a/chains/orchestrator-paras/runtime/flashbox/src/lib.rs b/chains/orchestrator-paras/runtime/flashbox/src/lib.rs index 17678bd29..b5250bd66 100644 --- a/chains/orchestrator-paras/runtime/flashbox/src/lib.rs +++ b/chains/orchestrator-paras/runtime/flashbox/src/lib.rs @@ -228,7 +228,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("flashbox"), impl_name: create_runtime_str!("flashbox"), authoring_version: 1, - spec_version: 1100, + spec_version: 1200, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 1, diff --git a/chains/orchestrator-relays/node/tanssi-relay-service/Cargo.toml b/chains/orchestrator-relays/node/tanssi-relay-service/Cargo.toml index c066b3d17..939ab719a 100644 --- a/chains/orchestrator-relays/node/tanssi-relay-service/Cargo.toml +++ b/chains/orchestrator-relays/node/tanssi-relay-service/Cargo.toml @@ -4,7 +4,7 @@ authors = { workspace = true } description = "Utils to tie different Tanssi components together and allow instantiation of a node." edition = "2021" license = "GPL-3.0-only" -version = "0.11.0" +version = "0.12.0" [lints] workspace = true diff --git a/chains/orchestrator-relays/node/tanssi-relay/Cargo.toml b/chains/orchestrator-relays/node/tanssi-relay/Cargo.toml index c9ed536e1..5e3420e80 100644 --- a/chains/orchestrator-relays/node/tanssi-relay/Cargo.toml +++ b/chains/orchestrator-relays/node/tanssi-relay/Cargo.toml @@ -5,7 +5,7 @@ description = "Implementation of a `https://tanssi.network` node in Rust based o edition = "2021" license = "GPL-3.0-only" readme = "README.md" -version = "0.11.0" +version = "0.12.0" [[bin]] name = "tanssi-relay" diff --git a/chains/orchestrator-relays/runtime/dancelight/src/lib.rs b/chains/orchestrator-relays/runtime/dancelight/src/lib.rs index 6a6398b35..8459a7d48 100644 --- a/chains/orchestrator-relays/runtime/dancelight/src/lib.rs +++ b/chains/orchestrator-relays/runtime/dancelight/src/lib.rs @@ -193,7 +193,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("dancelight"), impl_name: create_runtime_str!("tanssi-dancelight-v2.0"), authoring_version: 0, - spec_version: 1100, + spec_version: 1200, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 26, From 7b48f2af580008fe887d79fd2b9b6d8c77b85edd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Agust=C3=ADn=20Rodriguez?= Date: Mon, 10 Feb 2025 20:12:11 -0300 Subject: [PATCH 08/13] Fix type in BABE smoke test (#868) --- test/suites/smoke-test-dancelight/test-babe.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/suites/smoke-test-dancelight/test-babe.ts b/test/suites/smoke-test-dancelight/test-babe.ts index 15c8552c7..9ed9e965a 100644 --- a/test/suites/smoke-test-dancelight/test-babe.ts +++ b/test/suites/smoke-test-dancelight/test-babe.ts @@ -156,7 +156,7 @@ describeSuite({ expect(sealLogs.length).to.eq(1); const sealLog = api.registry.createType( - "PolkadotPrimitivesV7ValidatorAppSignature", + "PolkadotPrimitivesV8ValidatorAppSignature", sealLogs[0].asSeal[1].toHex() ); From 8ca46b81c8778e82a11c2d7bffdcd67461279c54 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 11 Feb 2025 10:56:54 +0000 Subject: [PATCH 09/13] Bump docker/build-push-action from 5 to 6 (#864) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: girazoki --- .github/workflows/docker-runtime-draft.yml | 2 +- .github/workflows/prepare-binary.yml | 2 +- .github/workflows/prepare-tanssi-relay-binary.yml | 2 +- .github/workflows/release.yml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/docker-runtime-draft.yml b/.github/workflows/docker-runtime-draft.yml index 8eb576984..a2e075f25 100644 --- a/.github/workflows/docker-runtime-draft.yml +++ b/.github/workflows/docker-runtime-draft.yml @@ -93,7 +93,7 @@ jobs: password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and push id: docker_build - uses: docker/build-push-action@v5 + uses: docker/build-push-action@v6 with: context: . file: ./docker/${{matrix.image}}.Dockerfile diff --git a/.github/workflows/prepare-binary.yml b/.github/workflows/prepare-binary.yml index 08fe5149b..22cc97aa3 100644 --- a/.github/workflows/prepare-binary.yml +++ b/.github/workflows/prepare-binary.yml @@ -91,7 +91,7 @@ jobs: password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and push id: docker_build - uses: docker/build-push-action@v5 + uses: docker/build-push-action@v6 with: context: . file: ./docker/${{matrix.image}}.Dockerfile diff --git a/.github/workflows/prepare-tanssi-relay-binary.yml b/.github/workflows/prepare-tanssi-relay-binary.yml index 503b13168..b78fbb082 100644 --- a/.github/workflows/prepare-tanssi-relay-binary.yml +++ b/.github/workflows/prepare-tanssi-relay-binary.yml @@ -91,7 +91,7 @@ jobs: password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and push id: docker_build - uses: docker/build-push-action@v5 + uses: docker/build-push-action@v6 with: context: . file: ./docker/${{matrix.image}}.Dockerfile diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 580a0e617..00e574067 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1001,7 +1001,7 @@ jobs: password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and push id: docker_build - uses: docker/build-push-action@v5 + uses: docker/build-push-action@v6 with: context: . file: ./docker/${{matrix.image}}.Dockerfile From 09e16626304db49e4245294eb8c87651d05808e2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 11 Feb 2025 10:57:03 +0000 Subject: [PATCH 10/13] Bump docker/login-action from 2.2.0 to 3.3.0 (#863) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: girazoki --- .github/workflows/docker-runtime-draft.yml | 2 +- .github/workflows/prepare-binary.yml | 4 ++-- .github/workflows/prepare-tanssi-relay-binary.yml | 4 ++-- .github/workflows/publish-docker-runtime-containers.yml | 2 +- .github/workflows/publish-docker-runtime-tanssi.yml | 2 +- .github/workflows/publish-docker-tannsi-relay.yml | 2 +- .github/workflows/publish-docker.yml | 2 +- .github/workflows/publish-runtime.yml | 2 +- .github/workflows/release.yml | 2 +- 9 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/docker-runtime-draft.yml b/.github/workflows/docker-runtime-draft.yml index a2e075f25..bf32b322c 100644 --- a/.github/workflows/docker-runtime-draft.yml +++ b/.github/workflows/docker-runtime-draft.yml @@ -87,7 +87,7 @@ jobs: driver-opts: | image=moby/buildkit:master - name: Login to DockerHub - uses: docker/login-action@v3 + uses: docker/login-action@v3.3.0 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} diff --git a/.github/workflows/prepare-binary.yml b/.github/workflows/prepare-binary.yml index 22cc97aa3..62a36cde4 100644 --- a/.github/workflows/prepare-binary.yml +++ b/.github/workflows/prepare-binary.yml @@ -85,7 +85,7 @@ jobs: driver-opts: | image=moby/buildkit:master - name: Login to DockerHub - uses: docker/login-action@v3 + uses: docker/login-action@v3.3.0 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} @@ -108,7 +108,7 @@ jobs: org.opencontainers.image.licenses=${{ github.event.repository.license.spdx_id }} - name: Login to DockerHub - uses: docker/login-action@v3 + uses: docker/login-action@v3.3.0 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} diff --git a/.github/workflows/prepare-tanssi-relay-binary.yml b/.github/workflows/prepare-tanssi-relay-binary.yml index b78fbb082..33738f0ba 100644 --- a/.github/workflows/prepare-tanssi-relay-binary.yml +++ b/.github/workflows/prepare-tanssi-relay-binary.yml @@ -85,7 +85,7 @@ jobs: driver-opts: | image=moby/buildkit:master - name: Login to DockerHub - uses: docker/login-action@v3 + uses: docker/login-action@v3.3.0 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} @@ -108,7 +108,7 @@ jobs: org.opencontainers.image.licenses=${{ github.event.repository.license.spdx_id }} - name: Login to DockerHub - uses: docker/login-action@v3 + uses: docker/login-action@v3.3.0 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} diff --git a/.github/workflows/publish-docker-runtime-containers.yml b/.github/workflows/publish-docker-runtime-containers.yml index a81d9d0da..d77faeeb7 100644 --- a/.github/workflows/publish-docker-runtime-containers.yml +++ b/.github/workflows/publish-docker-runtime-containers.yml @@ -19,7 +19,7 @@ jobs: with: fetch-depth: 0 - name: Login to DockerHub - uses: docker/login-action@v2.2.0 + uses: docker/login-action@v3.3.0 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} diff --git a/.github/workflows/publish-docker-runtime-tanssi.yml b/.github/workflows/publish-docker-runtime-tanssi.yml index 0ab5eb8ef..94562db39 100644 --- a/.github/workflows/publish-docker-runtime-tanssi.yml +++ b/.github/workflows/publish-docker-runtime-tanssi.yml @@ -16,7 +16,7 @@ jobs: with: fetch-depth: 0 - name: Login to DockerHub - uses: docker/login-action@v2.2.0 + uses: docker/login-action@v3.3.0 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} diff --git a/.github/workflows/publish-docker-tannsi-relay.yml b/.github/workflows/publish-docker-tannsi-relay.yml index aee02e287..6437c9c6f 100644 --- a/.github/workflows/publish-docker-tannsi-relay.yml +++ b/.github/workflows/publish-docker-tannsi-relay.yml @@ -23,7 +23,7 @@ jobs: with: fetch-depth: 0 - name: Login to DockerHub - uses: docker/login-action@v2.2.0 + uses: docker/login-action@v3.3.0 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} diff --git a/.github/workflows/publish-docker.yml b/.github/workflows/publish-docker.yml index 8d058c3bb..7fe7a21f7 100644 --- a/.github/workflows/publish-docker.yml +++ b/.github/workflows/publish-docker.yml @@ -25,7 +25,7 @@ jobs: with: fetch-depth: 0 - name: Login to DockerHub - uses: docker/login-action@v2.2.0 + uses: docker/login-action@v3.3.0 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} diff --git a/.github/workflows/publish-runtime.yml b/.github/workflows/publish-runtime.yml index b3824428a..6b578aa02 100644 --- a/.github/workflows/publish-runtime.yml +++ b/.github/workflows/publish-runtime.yml @@ -98,7 +98,7 @@ jobs: with: ref: ${{ github.event.inputs.to }} - name: Login to DockerHub - uses: docker/login-action@v2.2.0 + uses: docker/login-action@v3.3.0 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 00e574067..4897f3253 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -995,7 +995,7 @@ jobs: driver-opts: | image=moby/buildkit:master - name: Login to DockerHub - uses: docker/login-action@v3 + uses: docker/login-action@v3.3.0 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} From 97068f10c449f4a6d2320c7486246a0b5e6881b5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 11 Feb 2025 14:02:25 +0100 Subject: [PATCH 11/13] Bump mozilla-actions/sccache-action from 0.0.4 to 0.0.7 (#860) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: girazoki --- .github/workflows/release.yml | 4 ++-- .github/workflows/run-zombienet-tests.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 4897f3253..272dd9f47 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -238,7 +238,7 @@ jobs: with: ref: ${{ needs.set-tags.outputs.git_ref }} - name: Run sccache-cache - uses: mozilla-actions/sccache-action@v0.0.4 + uses: mozilla-actions/sccache-action@v0.0.7 - name: Setup Variables shell: bash run: | @@ -384,7 +384,7 @@ jobs: with: ref: ${{ needs.set-tags.outputs.git_ref }} - name: Run sccache-cache - uses: mozilla-actions/sccache-action@v0.0.4 + uses: mozilla-actions/sccache-action@v0.0.7 - name: Setup Variables shell: bash run: | diff --git a/.github/workflows/run-zombienet-tests.yml b/.github/workflows/run-zombienet-tests.yml index 484d59ccf..61765a1fb 100644 --- a/.github/workflows/run-zombienet-tests.yml +++ b/.github/workflows/run-zombienet-tests.yml @@ -85,7 +85,7 @@ jobs: with: ref: ${{ needs.set-tags.outputs.git_ref }} - name: Run sccache-cache - uses: mozilla-actions/sccache-action@v0.0.4 + uses: mozilla-actions/sccache-action@v0.0.7 - name: Setup Variables shell: bash run: | From f4955570e5bb64b2ced9096d036778b859ef6fb6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 11 Feb 2025 14:02:39 +0100 Subject: [PATCH 12/13] Bump LouisBrunner/checks-action from 1.1.1 to 2.0.0 (#861) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: girazoki --- .github/workflows/e2e-test-bridge.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/e2e-test-bridge.yml b/.github/workflows/e2e-test-bridge.yml index 5790fd105..471bcf7e9 100644 --- a/.github/workflows/e2e-test-bridge.yml +++ b/.github/workflows/e2e-test-bridge.yml @@ -43,7 +43,7 @@ jobs: uses: ./.github/workflow-templates/bridge-e2e - name: Commit Action Status - uses: LouisBrunner/checks-action@v1.1.1 + uses: LouisBrunner/checks-action@v2.0.0 with: sha: ${{ steps.sharef.outputs.sha }} token: ${{ secrets.GITHUB_TOKEN }} From b282f0483e696d8021c76475aabcf848c23e52d9 Mon Sep 17 00:00:00 2001 From: Tim B <79199034+timbrinded@users.noreply.github.com> Date: Tue, 11 Feb 2025 17:55:48 +0000 Subject: [PATCH 13/13] =?UTF-8?q?refactor:=20=E2=99=BB=EF=B8=8F=20Update?= =?UTF-8?q?=20repo=20to=20use=20biome=20(#844)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Mario Sánchez García Co-authored-by: girazoki --- .github/workflows/release.yml | 2 - .gitignore | 8 +- .prettierignore | 26 - .prettierrc | 7 - biome.jsonc | 63 + package.json | 66 +- pnpm-lock.yaml | 3951 +++++++---------- test/.eslintrc.cjs | 35 - test/helpers/assets.ts | 8 +- test/helpers/contracts.ts | 4 +- test/helpers/eth-transactions.ts | 18 +- test/helpers/xcm.ts | 4 +- test/moonwall.config.json | 8 +- test/package.json | 35 +- .../ts-scripts/src/generateContractInfo.ts | 4 +- test/scripts/compile-wasm.ts | 10 +- test/scripts/deriveTestIds.ts | 12 +- test/scripts/downloadChainSpec.ts | 10 +- test/scripts/downloadPolkadot.ts | 227 +- test/scripts/modify-plain-specs.ts | 15 +- test/scripts/pre-build-contracts.ts | 42 +- test/scripts/registerPara.ts | 10 +- test/scripts/sudoRegisterPara.ts | 60 +- test/scripts/sudoStarlightRegisterPara.ts | 64 +- test/scripts/utils/network.ts | 2 +- test/scripts/zombienetRestart.ts | 36 +- .../proxy/test-proxy-balances.ts | 24 +- .../test-maintenance/test-maintenance-mode.ts | 34 +- .../tx-pause/test_maintenance_mode.ts | 20 +- .../tx-pause/test_pause.ts | 20 +- .../test_fee_balance_transfer.ts | 22 +- .../pallet-multisig/test_pallet_multisig.ts | 14 +- .../common-all/proxy/test-proxy-cancel.ts | 38 +- .../common-all/proxy/test-proxy-pure.ts | 26 +- test/suites/common-all/proxy/test-proxy.ts | 40 +- test/suites/common-all/test_basic.ts | 13 +- .../test-custom-policy.ts | 22 +- .../test-default-policy.ts | 18 +- .../test_author_slot_prediction.ts | 14 +- .../fees/test_fee_burning.ts | 10 +- .../test_invulnerable_rewards.ts | 12 +- .../issuance-rewards/test_issuance.ts | 6 +- ...t-active-config-collators-per-container.ts | 12 +- .../test-active-config-max-collators.ts | 12 +- ...ctive-config-max-orchestrator-collators.ts | 12 +- ...ctive-config-min-orchestrator-collators.ts | 12 +- .../test-active-config-origin.ts | 10 +- .../test-active-config-target-fullness.ts | 12 +- .../test_pallet_data_preservers.ts | 28 +- .../pallet-identity/test_pallet_identity.ts | 26 +- .../pallet-treasury/test_pallet_treasury.ts | 8 +- .../registrar/test_registrar_deregister.ts | 12 +- .../registrar/test_registrar_para_manager.ts | 8 +- .../registrar/test_registrar_pause.ts | 12 +- .../registrar/test_registrar_proxy.ts | 14 +- .../registrar/test_registrar_register.ts | 12 +- .../registrar/test_utils_rpc.ts | 8 +- .../test_pallet_storage_roots.ts | 8 +- .../test_services_payment_block_credits.ts | 30 +- .../test_services_payment_collator_credits.ts | 38 +- .../test_services_payment_collator_tip.ts | 14 +- .../test_services_payment_rpc.ts | 4 +- .../stream-payment/test_stream_payment.ts | 18 +- .../stream-payment/test_stream_payment_rpc.ts | 29 +- .../pallet-treasury/test_pallet_treasury.ts | 14 +- ...ce_payment_removes_tank_money_and_burns.ts | 20 +- ..._payment_removes_tank_money_and_refunds.ts | 26 +- ...yment_block_credit_buying_free_combined.ts | 18 +- ...nt_collator_credit_buying_free_combined.ts | 18 +- .../test_services_payment_no_free_credits.ts | 30 +- .../test-maintenance-dmp-queue.ts | 20 +- .../test-maintenance-mode-xcm.ts | 18 +- .../test-maintenance-xcm-queue.ts | 22 +- .../test_dmp_token_reception.ts | 20 +- .../test_dmp_token_reception_appendix.ts | 18 +- .../test_dmp_token_reception_appendix_2.ts | 18 +- .../test_dmp_token_reception_error_handler.ts | 18 +- ...est_dmp_token_reception_error_handler_2.ts | 20 +- .../test_dmp_token_reception_teleport.ts | 18 +- .../test_hrmp_token_reception.ts | 18 +- .../test_hrmp_token_reception_2.ts | 18 +- .../xcm/test-mock-dmp-transact.ts | 26 +- .../xcm/test-mock-hrmp-transact.ts | 34 +- .../xcm/test-reserve-transfer-horizontal.ts | 20 +- .../xcm/test-reserve-transfer-upward.ts | 20 +- .../xcm/test-xcm-dry-run-api.ts | 20 +- .../xcm/test-xcm-location-to-address.ts | 6 +- .../xcm/test-xcm-payment-api.ts | 14 +- .../xcm/test-xcm-send-horizontal.ts | 18 +- .../xcm/test-xcm-send-upward.ts | 18 +- .../dancebox-specs/test-block-creation.ts | 2 +- .../test-balance/test-balance-existential.ts | 18 +- .../test-contract-deploy-filter.ts | 10 +- .../test-eth-asset-address-creation.ts | 6 +- .../test-eth-block/test-eth-block-pending.ts | 8 +- .../test-eth-fee/test-eth-fee-history.ts | 40 +- .../test-eth-fee/test-eth-paysFee.ts | 14 +- .../test-eth-pool/test-eth-pool-discard.ts | 4 +- .../test-eth-pool/test-eth-pool-resubmit.ts | 12 +- .../test-eth-rpc/test-eth-rpc-constants.ts | 10 +- .../test-eth-rpc/test-eth-rpc-index.ts | 6 +- .../test-eth-rpc-log-filtering.ts | 16 +- .../test-eth-tx/test-eth-tx-nonce.ts | 14 +- .../test-evm/test-evm-maintenance-mode.ts | 10 +- .../test-evm/test-evm-rpc-block-author.ts | 4 +- .../test-evm/test-evm-transfer-origints.ts | 8 +- .../test-frnt-rpc/test-frnt-rpc.ts | 22 +- .../test-orchestrator-para-id.ts | 6 +- .../test-pov/test-evm-over-pov.ts | 14 +- .../test-pov/test-evm-over-pov2.ts | 10 +- .../test-pov/test-precompile-over-pov.ts | 20 +- .../test-pov/test-precompile-over-pov2.ts | 12 +- .../test-precompile-assets-erc20-1.ts | 26 +- .../test-precompile-assets-erc20-2.ts | 10 +- .../test-precompile-assets-erc20-3.ts | 8 +- .../test-precompile-assets-erc20-4.ts | 8 +- .../test-precompile-assets-erc20-5.ts | 8 +- .../test-precompile-assets-erc20-6.ts | 8 +- .../test-precompile-assets-erc20-7.ts | 8 +- .../test-precompile-assets-erc20-low-level.ts | 20 +- .../test-precompiles/test-precompile-batch.ts | 20 +- .../test-precompile-call-permit.ts | 42 +- .../test-precompiles/test-precompile-erc20.ts | 46 +- .../test-precompile-pallet-xcm.ts | 22 +- .../test-precompiles/test-precompile-proxy.ts | 104 +- .../test-precompile-smart-contract-call.ts | 16 +- .../test-precompile-xcm-utils.ts | 60 +- .../test_set_latest_authorities_data.ts | 8 +- .../test_author_slot_prediction.ts | 14 +- .../balances/test_balances.ts | 10 +- .../beefy/test-beefy-digests.ts | 14 +- .../beefy/test-double-voting-proofs.ts | 28 +- .../beefy/test-future-voting-proofs.ts | 28 +- .../beefy/test-set-new-genesis.ts | 8 +- .../chain-spec/test_chain_spec.ts | 10 +- .../test-collator-assignment.ts | 16 +- .../test-configurable-priority.ts | 118 +- .../test-eth-ciient-initial-checkpoint.ts | 19 +- ...pdate-for-next-period-without-committee.ts | 20 +- ...st-eth-ciient-submit-update-same-period.ts | 19 +- ...be-done-without-injecting-new-committee.ts | 19 +- ...date-next-period-with-proper-committees.ts | 17 +- .../test-rewards-runtime-api.ts | 11 +- ...st_external_validator_reward_candidates.ts | 9 +- .../test_external_validator_rewards.ts | 16 +- .../test-external-validators.ts | 6 +- .../inflation-rewards/test-rewards.ts | 14 +- ...t-active-config-collators-per-container.ts | 12 +- .../test-active-config-max-collators.ts | 12 +- ...ctive-config-max-orchestrator-collators.ts | 12 +- ...ctive-config-min-orchestrator-collators.ts | 12 +- .../test-active-config-origin.ts | 10 +- .../test-active-config-target-fullness.ts | 12 +- .../test_pallet_data_preservers.ts | 28 +- .../pallet-identity/test_pallet_identity.ts | 26 +- .../test_paras_candidate_inherent.ts | 6 +- .../proxy/test-proxy-registrar.ts | 40 +- .../proxy/test-proxy-validator-management.ts | 12 +- .../proxy/test-session-keys-management.ts | 16 +- .../registrar/test_registrars.ts | 16 +- .../test_services_payment_block_credits.ts | 30 +- .../test_services_payment_collator_credits.ts | 22 +- .../test_services_payment_collator_tip.ts | 8 +- ...t_slashes_are_acummulated_across_blocks.ts | 18 +- ...est_slashes_are_acummulated_across_eras.ts | 8 +- ...lashes_are_confirmed_after_defer_period.ts | 18 +- ...hes_are_not_applicable_to_invulnerables.ts | 8 +- ...lashes_are_removed_after_bonding_period.ts | 8 +- .../slashes/test_slashes_babe.ts | 8 +- .../slashes/test_slashes_can_be_cancelled.ts | 8 +- .../slashes/test_slashes_eth.ts | 52 +- .../slashes/test_slashes_grandpa.ts | 8 +- .../staking/test_staking_join.ts | 20 +- .../staking/test_staking_rewards_balanced.ts | 14 +- .../test_staking_rewards_non_balanced.ts | 14 +- .../staking/test_staking_session.ts | 14 +- .../staking/test_staking_swap.ts | 20 +- .../xcm/test-reserve-transfer-downwards.ts | 16 +- .../xcm/test-xcm-send-downward.ts | 16 +- .../xcm/test-xcm-send-upward.ts | 14 +- .../test_balances_consumers.ts | 8 +- .../test-collator-assignment.ts | 18 +- .../test-collator-fullness.ts | 18 +- .../test-full-rotation-mode-parathreads.ts | 20 +- .../test-full-rotation-mode.ts | 20 +- .../proxy/test-session-keys-management.ts | 16 +- .../test_deregister_with_relay_proof.ts | 17 +- .../test_register_with_relay_proof.ts | 22 +- .../test_registrar_register_parathread.ts | 14 +- .../test_remove_session_key_invulnerables.ts | 20 +- .../test_remove_session_key_staking.ts | 25 +- .../session-keys/test_session_keys.ts | 18 +- .../test_session_keys_assignment.ts | 18 +- .../dev-tanssi/staking/test_staking_join.ts | 20 +- .../staking/test_staking_rewards_balanced.ts | 10 +- .../test_staking_rewards_non_balanced.ts | 10 +- .../staking/test_staking_session.ts | 14 +- .../dev-tanssi/staking/test_staking_swap.ts | 20 +- .../weights/test_on_session_change_weight.ts | 10 +- .../test_set_latest_author_data_weight.ts | 8 +- .../xcm-core-buyer/test_xcm_core_buyer.ts | 28 +- .../test-upgrade-chain.ts | 8 +- .../test-upgrade-chain.ts | 10 +- .../test-block-finalized.ts | 4 +- .../test-collator-number-consistency.ts | 26 +- .../test-consistency-services-payment.ts | 28 +- .../test-data-preservers.ts | 80 +- .../smoke-test-common-all/test-proxy.ts | 24 +- .../test-supply-variance.ts | 6 +- .../test-authority-consistency-assignation.ts | 19 +- .../test-block-author-logs.ts | 24 +- .../test-configuration-consistency.ts | 36 +- .../test-inflation-rewards.ts | 16 +- .../test-relay-storage-roots-consistency.ts | 10 +- .../test-invulnerables-priority.ts | 8 +- .../test-randomness-consistency.ts | 16 +- .../test-staking-consistency.ts | 10 +- .../test-staking-session-keys.ts | 8 +- .../smoke-test-dancebox/test-treasury.ts | 14 +- .../test-authority-consistency-assignation.ts | 12 +- .../suites/smoke-test-dancelight/test-babe.ts | 31 +- .../test-beefy-mmr-digests.ts | 10 +- .../test-configuration-consistency.ts | 18 +- .../test-external-validators-rewards.ts | 6 +- .../test-inflation-rewards.ts | 12 +- .../test-para-inclusion.ts | 18 +- ...st-validators-match-external-validators.ts | 12 +- .../test_zombie_dancebox_upgrade.ts | 26 +- .../test_zombie_dancelight_upgrade.ts | 26 +- .../test_zombie_data_preservers.ts | 54 +- .../test_zombie_simple_template_offchain.ts | 10 +- .../test_zombie_simple_template_upgrade.ts | 29 +- .../zombie_tanssi/test_zombie_tanssi.ts | 65 +- .../test_zombie_tanssi_keep_db.ts | 69 +- .../test_zombie_tanssi_metrics.ts | 24 +- .../test_zombie_tanssi_one_node.ts | 41 +- .../test_zombie_tanssi_parathreads.ts | 50 +- .../test_zombie_tanssi_relay.ts | 165 +- .../test_zombie_tanssi_relay_eth_bridge.ts | 66 +- .../test_zombie_tanssi_relay_unneeded_para.ts | 44 +- .../test_zombie_tanssi_rotation.ts | 84 +- .../test_zombie_tanssi_warp_sync.ts | 52 +- test/util/author.ts | 6 +- test/util/block.ts | 95 +- test/util/ethereum-contracts.ts | 14 +- test/util/ethereum.ts | 89 +- test/util/genesis_data.ts | 4 +- test/util/invulnerables.ts | 4 +- test/util/keys.ts | 2 +- test/util/payment.ts | 29 +- test/util/relayInterface.ts | 9 +- test/util/slashes.ts | 8 +- test/util/xcm.ts | 77 +- tools/github/generate-runtimes-body.ts | 2 +- typescript-api/package.json | 27 +- typescript-api/scripts/generate-types.ts | 20 +- typescript-api/scripts/runtime-upgrade.ts | 18 +- .../dancebox/interfaces/augment-api-consts.ts | 493 +- .../dancebox/interfaces/augment-api-errors.ts | 969 ++-- .../dancebox/interfaces/augment-api-events.ts | 973 ++-- .../dancebox/interfaces/augment-api-query.ts | 957 ++-- .../dancebox/interfaces/augment-api-rpc.ts | 558 ++- .../interfaces/augment-api-runtime.ts | 174 +- .../src/dancebox/interfaces/augment-api-tx.ts | 1645 ++++--- .../src/dancebox/interfaces/lookup.ts | 1249 ++++-- typescript-api/src/dancebox/tsconfig.json | 22 +- .../interfaces/augment-api-consts.ts | 685 ++- .../interfaces/augment-api-errors.ts | 1690 +++++-- .../interfaces/augment-api-events.ts | 1273 ++++-- .../interfaces/augment-api-query.ts | 1713 ++++--- .../dancelight/interfaces/augment-api-rpc.ts | 558 ++- .../interfaces/augment-api-runtime.ts | 362 +- .../dancelight/interfaces/augment-api-tx.ts | 2364 ++++++---- .../src/dancelight/interfaces/lookup.ts | 2031 ++++++--- typescript-api/src/dancelight/tsconfig.json | 22 +- .../flashbox/interfaces/augment-api-consts.ts | 320 +- .../flashbox/interfaces/augment-api-errors.ts | 620 ++- .../flashbox/interfaces/augment-api-events.ts | 554 ++- .../flashbox/interfaces/augment-api-query.ts | 688 +-- .../flashbox/interfaces/augment-api-rpc.ts | 558 ++- .../interfaces/augment-api-runtime.ts | 140 +- .../src/flashbox/interfaces/augment-api-tx.ts | 923 ++-- .../src/flashbox/interfaces/lookup.ts | 745 +++- typescript-api/src/flashbox/tsconfig.json | 22 +- 284 files changed, 19589 insertions(+), 12271 deletions(-) delete mode 100644 .prettierignore delete mode 100644 .prettierrc create mode 100644 biome.jsonc delete mode 100644 test/.eslintrc.cjs diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 272dd9f47..bff7fef6d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -197,7 +197,6 @@ jobs: cache: "pnpm" - name: "Formatting check" run: | - cd test pnpm install pnpm run fmt @@ -220,7 +219,6 @@ jobs: cache: "pnpm" - name: "Linting check" run: | - cd test pnpm install pnpm run lint diff --git a/.gitignore b/.gitignore index 748bf2f0f..093bebdd1 100644 --- a/.gitignore +++ b/.gitignore @@ -16,4 +16,10 @@ # Temporary files **/tmp -raw.json \ No newline at end of file +raw.json + +# IDE files +**/.zed/ +**/.vscode/ +**/.idea/ +.cursor \ No newline at end of file diff --git a/.prettierignore b/.prettierignore deleted file mode 100644 index f986a7299..000000000 --- a/.prettierignore +++ /dev/null @@ -1,26 +0,0 @@ -# MacOS thing -**/.DS_Store - -# Rust directories -**/target -**/scripts/tmp - -# Typescript directories -**/node_modules -**/.yarn -test/tsconfig.json - -# Test data -tmp - -# Spec/Wasm build directory -**/build/ - -# Dist folders should not be formatted -*/dist/ - -# Temporary Moonwall files -**/contracts/out -**/tmp/ -**/html/ -**/downloadPolkadot.ts \ No newline at end of file diff --git a/.prettierrc b/.prettierrc deleted file mode 100644 index 0c6c83cef..000000000 --- a/.prettierrc +++ /dev/null @@ -1,7 +0,0 @@ -{ - "printWidth": 120, - "tabWidth": 4, - "useTabs": false, - "semi": true, - "trailingComma": "es5" -} diff --git a/biome.jsonc b/biome.jsonc new file mode 100644 index 000000000..6eddee6d7 --- /dev/null +++ b/biome.jsonc @@ -0,0 +1,63 @@ +{ + "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json", + "vcs": { + "enabled": false, + "clientKind": "git", + "useIgnoreFile": false, + }, + "files": { + "ignoreUnknown": false, + "ignore": [ + "**/html/**", + "**/build/**", + "**/target/**", + "**/scripts/tmp/**", + "**/node_modules/**", + "**/.yarn/**", + "test/tsconfig.json", + "tmp", + "**/contracts/out", + "**/tmp/", + "**/html/" + ] + }, + "formatter": { + "enabled": true, + "indentStyle": "space", + "lineWidth": 120, + "indentWidth": 4, + }, + "organizeImports": { + "enabled": true, + }, + "linter": { + "enabled": true, + "rules": { + "recommended": true, + "suspicious": { + "noAsyncPromiseExecutor": "off", + "noExplicitAny": "off", + "noShadowRestrictedNames": "off", + }, + "complexity": { + "noForEach": "off", + }, + }, + "ignore": [], + }, + "javascript": { + "formatter": { + "quoteStyle": "double", + "semicolons": "always", + "trailingCommas": "es5", + }, + }, + "json": { + "formatter": { + "enabled": false, + }, + "linter": { + "enabled": false, + }, + }, +} diff --git a/package.json b/package.json index 7927ad9eb..a1b8ada13 100644 --- a/package.json +++ b/package.json @@ -11,51 +11,55 @@ "scripts": { "clean-all": "rm -rf node_modules && pnpm -r clean", "build": "pnpm -r build", + "fmt": "pnpm -r fmt", + "fmt:fix": "pnpm -r fmt:fix", + "lint": "pnpm -r lint", + "lint:fix": "pnpm -r lint:fix", "postinstall": "pnpm build" }, "dependencies": { - "@polkadot/api": "15.4.1", - "@polkadot/api-augment": "15.4.1", - "@polkadot/api-base": "15.4.1", - "@polkadot/api-derive": "15.4.1", - "@polkadot/rpc-augment": "15.4.1", - "@polkadot/rpc-core": "15.4.1", - "@polkadot/rpc-provider": "15.4.1", - "@polkadot/typegen": "15.4.1", - "@polkadot/types": "15.4.1", - "@polkadot/types-augment": "15.4.1", - "@polkadot/types-codec": "15.4.1", - "@polkadot/types-create": "15.4.1", - "@polkadot/types-known": "15.4.1", - "@polkadot/types-support": "15.4.1", + "@polkadot/api": "15.5.1", + "@polkadot/api-base": "15.5.1", + "@polkadot/api-derive": "15.5.1", "@polkadot/keyring": "13.3.1", + "@polkadot/rpc-augment": "15.5.1", + "@polkadot/rpc-core": "15.5.1", + "@polkadot/rpc-provider": "15.5.1", + "@polkadot/typegen": "15.5.1", + "@polkadot/types": "15.5.1", + "@polkadot/types-augment": "15.5.1", + "@polkadot/types-codec": "15.5.1", + "@polkadot/types-create": "15.5.1", + "@polkadot/types-known": "15.5.1", + "@polkadot/types-support": "15.5.1", "@polkadot/util": "13.3.1", "@polkadot/util-crypto": "13.3.1" - }, "devDependencies": { - "@types/node": "22.10.5" + "@biomejs/biome": "1.9.4", + "@types/node": "22.12.0", + "tsx": "4.19.2", + "typescript": "5.5.4" }, "pnpm": { "overrides": { - "@polkadot/api": "15.4.1", - "@polkadot/api-augment": "15.4.1", - "@polkadot/api-base": "15.4.1", - "@polkadot/api-derive": "15.4.1", - "@polkadot/rpc-augment": "15.4.1", - "@polkadot/rpc-core": "15.4.1", - "@polkadot/rpc-provider": "15.4.1", - "@polkadot/typegen": "15.4.1", - "@polkadot/types": "15.4.1", - "@polkadot/types-augment": "15.4.1", - "@polkadot/types-codec": "15.4.1", - "@polkadot/types-create": "15.4.1", - "@polkadot/types-known": "15.4.1", - "@polkadot/types-support": "15.4.1", + "@polkadot/api": "15.5.1", + "@polkadot/api-base": "15.5.1", + "@polkadot/api-derive": "15.5.1", + "@polkadot/rpc-augment": "15.5.1", + "@polkadot/rpc-core": "15.5.1", + "@polkadot/rpc-provider": "15.5.1", + "@polkadot/typegen": "15.5.1", + "@polkadot/types": "15.5.1", + "@polkadot/types-augment": "15.5.1", + "@polkadot/types-codec": "15.5.1", + "@polkadot/types-create": "15.5.1", + "@polkadot/types-known": "15.5.1", + "@polkadot/types-support": "15.5.1", "@polkadot/keyring": "13.3.1", "@polkadot/util": "13.3.1", "@polkadot/util-crypto": "13.3.1", - "inquirer": "9.2.16" + "typescript": "5.5.4" } }, "keywords": [], diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 888527cae..f444270bf 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,74 +5,70 @@ settings: excludeLinksFromLockfile: false overrides: - '@polkadot/api': 15.4.1 - '@polkadot/api-augment': 15.4.1 - '@polkadot/api-base': 15.4.1 - '@polkadot/api-derive': 15.4.1 - '@polkadot/rpc-augment': 15.4.1 - '@polkadot/rpc-core': 15.4.1 - '@polkadot/rpc-provider': 15.4.1 - '@polkadot/typegen': 15.4.1 - '@polkadot/types': 15.4.1 - '@polkadot/types-augment': 15.4.1 - '@polkadot/types-codec': 15.4.1 - '@polkadot/types-create': 15.4.1 - '@polkadot/types-known': 15.4.1 - '@polkadot/types-support': 15.4.1 + '@polkadot/api': 15.5.1 + '@polkadot/api-base': 15.5.1 + '@polkadot/api-derive': 15.5.1 + '@polkadot/rpc-augment': 15.5.1 + '@polkadot/rpc-core': 15.5.1 + '@polkadot/rpc-provider': 15.5.1 + '@polkadot/typegen': 15.5.1 + '@polkadot/types': 15.5.1 + '@polkadot/types-augment': 15.5.1 + '@polkadot/types-codec': 15.5.1 + '@polkadot/types-create': 15.5.1 + '@polkadot/types-known': 15.5.1 + '@polkadot/types-support': 15.5.1 '@polkadot/keyring': 13.3.1 '@polkadot/util': 13.3.1 '@polkadot/util-crypto': 13.3.1 - inquirer: 9.2.16 + typescript: 5.5.4 importers: .: dependencies: '@polkadot/api': - specifier: 15.4.1 - version: 15.4.1 - '@polkadot/api-augment': - specifier: 15.4.1 - version: 15.4.1 + specifier: 15.5.1 + version: 15.5.1 '@polkadot/api-base': - specifier: 15.4.1 - version: 15.4.1 + specifier: 15.5.1 + version: 15.5.1 '@polkadot/api-derive': - specifier: 15.4.1 - version: 15.4.1 + specifier: 15.5.1 + version: 15.5.1 '@polkadot/keyring': specifier: 13.3.1 version: 13.3.1(@polkadot/util-crypto@13.3.1(@polkadot/util@13.3.1))(@polkadot/util@13.3.1) '@polkadot/rpc-augment': - specifier: 15.4.1 - version: 15.4.1 + specifier: 15.5.1 + version: 15.5.1 '@polkadot/rpc-core': - specifier: 15.4.1 - version: 15.4.1 + specifier: 15.5.1 + version: 15.5.1 '@polkadot/rpc-provider': - specifier: 15.4.1 - version: 15.4.1 + specifier: 15.5.1 + version: 15.5.1 '@polkadot/typegen': - specifier: 15.4.1 - version: 15.4.1 + specifier: 15.5.1 + version: 15.5.1 '@polkadot/types': - specifier: 15.4.1 - version: 15.4.1 + specifier: 15.5.1 + version: 15.5.1 '@polkadot/types-augment': - specifier: 15.4.1 - version: 15.4.1 + specifier: 15.5.1 + version: 15.5.1 '@polkadot/types-codec': - specifier: 15.4.1 - version: 15.4.1 + specifier: 15.5.1 + version: 15.5.1 '@polkadot/types-create': - specifier: 15.4.1 - version: 15.4.1 + specifier: 15.5.1 + version: 15.5.1 '@polkadot/types-known': - specifier: 15.4.1 - version: 15.4.1 + specifier: 15.5.1 + version: 15.5.1 '@polkadot/types-support': - specifier: 15.4.1 - version: 15.4.1 + specifier: 15.5.1 + version: 15.5.1 '@polkadot/util': specifier: 13.3.1 version: 13.3.1 @@ -80,27 +76,36 @@ importers: specifier: 13.3.1 version: 13.3.1(@polkadot/util@13.3.1) devDependencies: + '@biomejs/biome': + specifier: 1.9.4 + version: 1.9.4 '@types/node': - specifier: 22.10.5 - version: 22.10.5 + specifier: 22.12.0 + version: 22.12.0 + tsx: + specifier: 4.19.2 + version: 4.19.2 + typescript: + specifier: 5.5.4 + version: 5.5.4 test: dependencies: + '@inquirer/prompts': + specifier: 7.3.1 + version: 7.3.1(@types/node@22.10.5) '@polkadot/api': - specifier: 15.4.1 - version: 15.4.1 - '@polkadot/api-augment': - specifier: 15.4.1 - version: 15.4.1 + specifier: 15.5.1 + version: 15.5.1 '@polkadot/keyring': specifier: 13.3.1 version: 13.3.1(@polkadot/util-crypto@13.3.1(@polkadot/util@13.3.1))(@polkadot/util@13.3.1) '@polkadot/types': - specifier: 15.4.1 - version: 15.4.1 + specifier: 15.5.1 + version: 15.5.1 '@polkadot/types-codec': - specifier: 15.4.1 - version: 15.4.1 + specifier: 15.5.1 + version: 15.5.1 '@polkadot/util': specifier: 13.3.1 version: 13.3.1 @@ -110,25 +115,22 @@ importers: '@zombienet/orchestrator': specifier: 0.0.97 version: 0.0.97(@polkadot/util@13.3.1)(@types/node@22.10.5)(chokidar@3.6.0) - inquirer: - specifier: 9.2.16 - version: 9.2.16 ps-node: specifier: 0.1.6 version: 0.1.6 devDependencies: '@acala-network/chopsticks': - specifier: 1.0.1 - version: 1.0.1(debug@4.3.7)(ts-node@10.9.2(@types/node@22.10.5)(typescript@5.6.3)) + specifier: 1.0.2 + version: 1.0.2(debug@4.3.7)(ts-node@10.9.2(@types/node@22.10.5)(typescript@5.5.4)) '@moonbeam-network/api-augment': - specifier: 0.3200.3 - version: 0.3200.3 + specifier: 0.3401.2 + version: 0.3401.2(postcss@8.4.49)(yaml@2.7.0) '@moonwall/cli': - specifier: 5.9.1 - version: 5.9.1(@types/node@22.10.5)(chokidar@3.6.0)(encoding@0.1.13)(jsdom@23.2.0)(postcss@8.4.49)(rxjs@7.8.1)(ts-node@10.9.2(@types/node@22.10.5)(typescript@5.6.3))(tsx@4.19.2)(typescript@5.6.3)(zod@3.23.8) + specifier: 5.10.0 + version: 5.10.0(@types/node@22.10.5)(chokidar@3.6.0)(encoding@0.1.13)(jsdom@23.2.0)(postcss@8.4.49)(rxjs@7.8.1)(ts-node@10.9.2(@types/node@22.10.5)(typescript@5.5.4))(tsx@4.19.2)(typescript@5.5.4)(zod@3.24.1) '@moonwall/util': - specifier: 5.9.1 - version: 5.9.1(@types/node@22.10.5)(@vitest/ui@2.1.5)(chokidar@3.6.0)(encoding@0.1.13)(jsdom@23.2.0)(postcss@8.4.49)(rxjs@7.8.1)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.4.5)(zod@3.23.8) + specifier: 5.10.0 + version: 5.10.0(@types/node@22.10.5)(@vitest/ui@2.1.5)(chokidar@3.6.0)(encoding@0.1.13)(jsdom@23.2.0)(postcss@8.4.49)(rxjs@7.8.1)(tsx@4.19.2)(typescript@5.5.4)(yaml@2.7.0)(zod@3.24.1) '@polkadot/wasm-crypto': specifier: ^7.4.1 version: 7.4.1(@polkadot/util@13.3.1)(@polkadot/x-randomvalues@13.3.1(@polkadot/util@13.3.1)(@polkadot/wasm-util@7.4.1(@polkadot/util@13.3.1))) @@ -138,21 +140,24 @@ importers: '@types/debug': specifier: 4.1.12 version: 4.1.12 + '@types/json-bigint': + specifier: 1.0.4 + version: 1.0.4 '@types/node': specifier: '*' version: 22.10.5 - '@typescript-eslint/eslint-plugin': - specifier: 6.15.0 - version: 6.15.0(@typescript-eslint/parser@6.15.0(eslint@8.56.0)(typescript@5.6.3))(eslint@8.56.0)(typescript@5.6.3) - '@typescript-eslint/parser': - specifier: 6.15.0 - version: 6.15.0(eslint@8.56.0)(typescript@5.6.3) + '@types/ps-node': + specifier: 0.1.3 + version: 0.1.3 + '@types/yargs': + specifier: ^17.0.33 + version: 17.0.33 '@vitest/ui': specifier: 2.1.5 version: 2.1.5(vitest@2.1.5) '@zombienet/utils': specifier: 0.0.25 - version: 0.0.25(@types/node@22.10.5)(chokidar@3.6.0)(typescript@5.6.3) + version: 0.0.25(@types/node@22.10.5)(chokidar@3.6.0)(typescript@5.5.4) bottleneck: specifier: 2.19.5 version: 2.19.5 @@ -162,9 +167,6 @@ importers: debug: specifier: 4.3.7 version: 4.3.7(supports-color@8.1.1) - eslint: - specifier: 8.56.0 - version: 8.56.0 ethers: specifier: ^6.13.4 version: 6.13.4 @@ -174,9 +176,6 @@ importers: pnpm: specifier: 9.13.0 version: 9.13.0 - prettier: - specifier: 2.8.8 - version: 2.8.8 solc: specifier: 0.8.21 version: 0.8.21(debug@4.3.7) @@ -184,20 +183,20 @@ importers: specifier: ^3.0.0 version: 3.0.0 tsx: - specifier: 4.19.2 + specifier: '*' version: 4.19.2 typescript: - specifier: 5.6.3 - version: 5.6.3 + specifier: 5.5.4 + version: 5.5.4 viem: - specifier: 2.21.45 - version: 2.21.45(typescript@5.6.3)(zod@3.23.8) + specifier: 2.22.21 + version: 2.22.21(typescript@5.5.4)(zod@3.24.1) vitest: specifier: 2.1.5 version: 2.1.5(@types/node@22.10.5)(@vitest/ui@2.1.5)(jsdom@23.2.0) web3: specifier: 4.15.0 - version: 4.15.0(encoding@0.1.13)(typescript@5.6.3)(zod@3.23.8) + version: 4.15.0(encoding@0.1.13)(typescript@5.5.4)(zod@3.24.1) web3-providers-ws: specifier: 4.0.8 version: 4.0.8 @@ -208,47 +207,44 @@ importers: typescript-api: dependencies: '@polkadot/api': - specifier: 15.4.1 - version: 15.4.1 - '@polkadot/api-augment': - specifier: 15.4.1 - version: 15.4.1 + specifier: 15.5.1 + version: 15.5.1 '@polkadot/api-base': - specifier: 15.4.1 - version: 15.4.1 + specifier: 15.5.1 + version: 15.5.1 '@polkadot/api-derive': - specifier: 15.4.1 - version: 15.4.1 + specifier: 15.5.1 + version: 15.5.1 '@polkadot/rpc-augment': - specifier: 15.4.1 - version: 15.4.1 + specifier: 15.5.1 + version: 15.5.1 '@polkadot/rpc-core': - specifier: 15.4.1 - version: 15.4.1 + specifier: 15.5.1 + version: 15.5.1 '@polkadot/rpc-provider': - specifier: 15.4.1 - version: 15.4.1 + specifier: 15.5.1 + version: 15.5.1 '@polkadot/typegen': - specifier: 15.4.1 - version: 15.4.1 + specifier: 15.5.1 + version: 15.5.1 '@polkadot/types': - specifier: 15.4.1 - version: 15.4.1 + specifier: 15.5.1 + version: 15.5.1 '@polkadot/types-augment': - specifier: 15.4.1 - version: 15.4.1 + specifier: 15.5.1 + version: 15.5.1 '@polkadot/types-codec': - specifier: 15.4.1 - version: 15.4.1 + specifier: 15.5.1 + version: 15.5.1 '@polkadot/types-create': - specifier: 15.4.1 - version: 15.4.1 + specifier: 15.5.1 + version: 15.5.1 '@polkadot/types-known': - specifier: 15.4.1 - version: 15.4.1 + specifier: 15.5.1 + version: 15.5.1 '@polkadot/types-support': - specifier: 15.4.1 - version: 15.4.1 + specifier: 15.5.1 + version: 15.5.1 devDependencies: '@types/node': specifier: '*' @@ -256,35 +252,29 @@ importers: chalk: specifier: ^5.4.1 version: 5.4.1 - prettier: - specifier: ^3.4.2 - version: 3.4.2 - prettier-plugin-jsdoc: - specifier: ^1.3.2 - version: 1.3.2(prettier@3.4.2) - rimraf: - specifier: ^6.0.1 - version: 6.0.1 tsx: - specifier: ^4.19.2 + specifier: '*' version: 4.19.2 typescript: - specifier: ^5.7.2 - version: 5.7.2 + specifier: 5.5.4 + version: 5.5.4 packages: - '@acala-network/chopsticks-core@1.0.1': - resolution: {integrity: sha512-7HE38P090PNWiRVRItVBCWt92K3bIz0S0v+0M21Hz8waTlWavilGgN6Jsua1ZndydRgZl0Y3/rLPgqVHzoNDzA==} + '@acala-network/chopsticks-core@1.0.2': + resolution: {integrity: sha512-j45pTfgamgI7YjJHI943GFoj15kjciIP0nAVfX1CVMXwNA5YewLY8t8SCoyKhnPvS9OskdVtC54jWjjJRttC+w==} + engines: {node: '>=v20'} - '@acala-network/chopsticks-db@1.0.1': - resolution: {integrity: sha512-opkTTB8mjjaeo7NmBrCJr/g1e9o4CRZ0u3LJNAxHGsSC19Yp5t41caVBhgks6K9rhrm1C4GboQKA5aDYyUie8g==} + '@acala-network/chopsticks-db@1.0.2': + resolution: {integrity: sha512-ky94awHwhK6uHsPLRqryIhhriBWK9RQDXHplybU+icdMq9C9aAYMmejQsF2T7lAC8LwFoe3mI0tDYRMDK0zhJA==} + engines: {node: '>=v20'} - '@acala-network/chopsticks-executor@1.0.1': - resolution: {integrity: sha512-aJjFhhG+KQU7C/VlJSRXzPQ4B+j0xJRtYk5oJUSY5Dxo6tnVRAEzQbxcB8dhBobDJH5Q/+5aQbyY0CLIUcACSg==} + '@acala-network/chopsticks-executor@1.0.2': + resolution: {integrity: sha512-I0fie9j9pcnQMO89Ix5ZoLwWRcsUj7L2ba1b4UeJB0JwVibcJcCwSmAMefmcceDZPEkwvWya1ukv0gy/AY93Lw==} - '@acala-network/chopsticks@1.0.1': - resolution: {integrity: sha512-kY5BmOwF6/+VO2uh5NSdIb3qIoCKinZbKDiGCiITld0qQaBTnfHa8kmabaAvTmd/sNjHDW03v5cVXOxHm0668A==} + '@acala-network/chopsticks@1.0.2': + resolution: {integrity: sha512-3CqyGAv2/G0yMiZrX+zZgBvyIFpxAtgm2gJGj/OZK2oVXcQBVXxUkQW5FQEoN9eftVIfMfzC+YlZN4t/TxkhoA==} + engines: {node: '>=v20'} hasBin: true '@adraffy/ens-normalize@1.10.1': @@ -308,6 +298,62 @@ packages: resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} engines: {node: '>=6.9.0'} + '@balena/dockerignore@1.0.2': + resolution: {integrity: sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q==} + + '@biomejs/biome@1.9.4': + resolution: {integrity: sha512-1rkd7G70+o9KkTn5KLmDYXihGoTaIGO9PIIN2ZB7UJxFrWw04CZHPYiMRjYsaDvVV7hP1dYNRLxSANLaBFGpog==} + engines: {node: '>=14.21.3'} + hasBin: true + + '@biomejs/cli-darwin-arm64@1.9.4': + resolution: {integrity: sha512-bFBsPWrNvkdKrNCYeAp+xo2HecOGPAy9WyNyB/jKnnedgzl4W4Hb9ZMzYNbf8dMCGmUdSavlYHiR01QaYR58cw==} + engines: {node: '>=14.21.3'} + cpu: [arm64] + os: [darwin] + + '@biomejs/cli-darwin-x64@1.9.4': + resolution: {integrity: sha512-ngYBh/+bEedqkSevPVhLP4QfVPCpb+4BBe2p7Xs32dBgs7rh9nY2AIYUL6BgLw1JVXV8GlpKmb/hNiuIxfPfZg==} + engines: {node: '>=14.21.3'} + cpu: [x64] + os: [darwin] + + '@biomejs/cli-linux-arm64-musl@1.9.4': + resolution: {integrity: sha512-v665Ct9WCRjGa8+kTr0CzApU0+XXtRgwmzIf1SeKSGAv+2scAlW6JR5PMFo6FzqqZ64Po79cKODKf3/AAmECqA==} + engines: {node: '>=14.21.3'} + cpu: [arm64] + os: [linux] + + '@biomejs/cli-linux-arm64@1.9.4': + resolution: {integrity: sha512-fJIW0+LYujdjUgJJuwesP4EjIBl/N/TcOX3IvIHJQNsAqvV2CHIogsmA94BPG6jZATS4Hi+xv4SkBBQSt1N4/g==} + engines: {node: '>=14.21.3'} + cpu: [arm64] + os: [linux] + + '@biomejs/cli-linux-x64-musl@1.9.4': + resolution: {integrity: sha512-gEhi/jSBhZ2m6wjV530Yy8+fNqG8PAinM3oV7CyO+6c3CEh16Eizm21uHVsyVBEB6RIM8JHIl6AGYCv6Q6Q9Tg==} + engines: {node: '>=14.21.3'} + cpu: [x64] + os: [linux] + + '@biomejs/cli-linux-x64@1.9.4': + resolution: {integrity: sha512-lRCJv/Vi3Vlwmbd6K+oQ0KhLHMAysN8lXoCI7XeHlxaajk06u7G+UsFSO01NAs5iYuWKmVZjmiOzJ0OJmGsMwg==} + engines: {node: '>=14.21.3'} + cpu: [x64] + os: [linux] + + '@biomejs/cli-win32-arm64@1.9.4': + resolution: {integrity: sha512-tlbhLk+WXZmgwoIKwHIHEBZUwxml7bRJgk0X2sPyNR3S93cdRq6XulAZRQJ17FYGGzWne0fgrXBKpl7l4M87Hg==} + engines: {node: '>=14.21.3'} + cpu: [arm64] + os: [win32] + + '@biomejs/cli-win32-x64@1.9.4': + resolution: {integrity: sha512-8Y5wMhVIPaWe6jw2H+KlEm4wP/f7EW3810ZLmDlrEEy5KvBsb9ECEfu/kMWD484ijfQ8+nIi0giMgu9g1UAuuA==} + engines: {node: '>=14.21.3'} + cpu: [x64] + os: [win32] + '@colors/colors@1.5.0': resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} engines: {node: '>=0.1.90'} @@ -333,8 +379,8 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.24.0': - resolution: {integrity: sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==} + '@esbuild/aix-ppc64@0.24.2': + resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] @@ -351,8 +397,8 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.24.0': - resolution: {integrity: sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==} + '@esbuild/android-arm64@0.24.2': + resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==} engines: {node: '>=18'} cpu: [arm64] os: [android] @@ -369,8 +415,8 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-arm@0.24.0': - resolution: {integrity: sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==} + '@esbuild/android-arm@0.24.2': + resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==} engines: {node: '>=18'} cpu: [arm] os: [android] @@ -387,8 +433,8 @@ packages: cpu: [x64] os: [android] - '@esbuild/android-x64@0.24.0': - resolution: {integrity: sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==} + '@esbuild/android-x64@0.24.2': + resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==} engines: {node: '>=18'} cpu: [x64] os: [android] @@ -405,8 +451,8 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.24.0': - resolution: {integrity: sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==} + '@esbuild/darwin-arm64@0.24.2': + resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] @@ -423,8 +469,8 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.24.0': - resolution: {integrity: sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==} + '@esbuild/darwin-x64@0.24.2': + resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==} engines: {node: '>=18'} cpu: [x64] os: [darwin] @@ -441,8 +487,8 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.24.0': - resolution: {integrity: sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==} + '@esbuild/freebsd-arm64@0.24.2': + resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] @@ -459,8 +505,8 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.24.0': - resolution: {integrity: sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==} + '@esbuild/freebsd-x64@0.24.2': + resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] @@ -477,8 +523,8 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.24.0': - resolution: {integrity: sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==} + '@esbuild/linux-arm64@0.24.2': + resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==} engines: {node: '>=18'} cpu: [arm64] os: [linux] @@ -495,8 +541,8 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.24.0': - resolution: {integrity: sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==} + '@esbuild/linux-arm@0.24.2': + resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==} engines: {node: '>=18'} cpu: [arm] os: [linux] @@ -513,8 +559,8 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.24.0': - resolution: {integrity: sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==} + '@esbuild/linux-ia32@0.24.2': + resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==} engines: {node: '>=18'} cpu: [ia32] os: [linux] @@ -531,8 +577,8 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.24.0': - resolution: {integrity: sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==} + '@esbuild/linux-loong64@0.24.2': + resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==} engines: {node: '>=18'} cpu: [loong64] os: [linux] @@ -549,8 +595,8 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.24.0': - resolution: {integrity: sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==} + '@esbuild/linux-mips64el@0.24.2': + resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] @@ -567,8 +613,8 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.24.0': - resolution: {integrity: sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==} + '@esbuild/linux-ppc64@0.24.2': + resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] @@ -585,8 +631,8 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.24.0': - resolution: {integrity: sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==} + '@esbuild/linux-riscv64@0.24.2': + resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] @@ -603,8 +649,8 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.24.0': - resolution: {integrity: sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==} + '@esbuild/linux-s390x@0.24.2': + resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==} engines: {node: '>=18'} cpu: [s390x] os: [linux] @@ -621,12 +667,18 @@ packages: cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.24.0': - resolution: {integrity: sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==} + '@esbuild/linux-x64@0.24.2': + resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==} engines: {node: '>=18'} cpu: [x64] os: [linux] + '@esbuild/netbsd-arm64@0.24.2': + resolution: {integrity: sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + '@esbuild/netbsd-x64@0.21.5': resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} engines: {node: '>=12'} @@ -639,8 +691,8 @@ packages: cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.24.0': - resolution: {integrity: sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==} + '@esbuild/netbsd-x64@0.24.2': + resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] @@ -651,8 +703,8 @@ packages: cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-arm64@0.24.0': - resolution: {integrity: sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==} + '@esbuild/openbsd-arm64@0.24.2': + resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] @@ -669,8 +721,8 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.24.0': - resolution: {integrity: sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==} + '@esbuild/openbsd-x64@0.24.2': + resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] @@ -687,8 +739,8 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.24.0': - resolution: {integrity: sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==} + '@esbuild/sunos-x64@0.24.2': + resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==} engines: {node: '>=18'} cpu: [x64] os: [sunos] @@ -705,8 +757,8 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.24.0': - resolution: {integrity: sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==} + '@esbuild/win32-arm64@0.24.2': + resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==} engines: {node: '>=18'} cpu: [arm64] os: [win32] @@ -723,8 +775,8 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.24.0': - resolution: {integrity: sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==} + '@esbuild/win32-ia32@0.24.2': + resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==} engines: {node: '>=18'} cpu: [ia32] os: [win32] @@ -741,30 +793,12 @@ packages: cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.24.0': - resolution: {integrity: sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==} + '@esbuild/win32-x64@0.24.2': + resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==} engines: {node: '>=18'} cpu: [x64] os: [win32] - '@eslint-community/eslint-utils@4.4.1': - resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - - '@eslint-community/regexpp@4.12.1': - resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - - '@eslint/eslintrc@2.1.4': - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@eslint/js@8.56.0': - resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@ethereumjs/rlp@4.0.1': resolution: {integrity: sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==} engines: {node: '>=14'} @@ -778,105 +812,142 @@ packages: '@gar/promisify@1.1.3': resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} - '@humanwhocodes/config-array@0.11.14': - resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} - engines: {node: '>=10.10.0'} - deprecated: Use @eslint/config-array instead + '@grpc/grpc-js@1.12.5': + resolution: {integrity: sha512-d3iiHxdpg5+ZcJ6jnDSOT8Z0O0VMVGy34jAnYLUX8yd36b1qn8f1TwOA/Lc7TsOh03IkPJ38eGI5qD2EjNkoEA==} + engines: {node: '>=12.10.0'} - '@humanwhocodes/module-importer@1.0.1': - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} - - '@humanwhocodes/object-schema@2.0.3': - resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} - deprecated: Use @eslint/object-schema instead + '@grpc/proto-loader@0.7.13': + resolution: {integrity: sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==} + engines: {node: '>=6'} + hasBin: true - '@inquirer/checkbox@4.0.3': - resolution: {integrity: sha512-CEt9B4e8zFOGtc/LYeQx5m8nfqQeG/4oNNv0PUvXGG0mys+wR/WbJ3B4KfSQ4Fcr3AQfpiuFOi3fVvmPfvNbxw==} + '@inquirer/checkbox@4.1.1': + resolution: {integrity: sha512-os5kFd/52gZTl/W6xqMfhaKVJHQM8V/U1P8jcSaQJ/C4Qhdrf2jEXdA/HaxfQs9iiUA/0yzYhk5d3oRHTxGDDQ==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true - '@inquirer/confirm@5.1.0': - resolution: {integrity: sha512-osaBbIMEqVFjTX5exoqPXs6PilWQdjaLhGtMDXMXg/yxkHXNq43GlxGyTA35lK2HpzUgDN+Cjh/2AmqCN0QJpw==} + '@inquirer/confirm@5.1.5': + resolution: {integrity: sha512-ZB2Cz8KeMINUvoeDi7IrvghaVkYT2RB0Zb31EaLWOE87u276w4wnApv0SH2qWaJ3r0VSUa3BIuz7qAV2ZvsZlg==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true - '@inquirer/core@10.1.1': - resolution: {integrity: sha512-rmZVXy9iZvO3ZStEe/ayuuwIJ23LSF13aPMlLMTQARX6lGUBDHGV8UB5i9MRrfy0+mZwt5/9bdy8llszSD3NQA==} + '@inquirer/core@10.1.6': + resolution: {integrity: sha512-Bwh/Zk6URrHwZnSSzAZAKH7YgGYi0xICIBDFOqBQoXNNAzBHw/bgXgLmChfp+GyR3PnChcTbiCTZGC6YJNJkMA==} engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true - '@inquirer/editor@4.2.0': - resolution: {integrity: sha512-Z3LeGsD3WlItDqLxTPciZDbGtm0wrz7iJGS/uUxSiQxef33ZrBq7LhsXg30P7xrWz1kZX4iGzxxj5SKZmJ8W+w==} + '@inquirer/editor@4.2.6': + resolution: {integrity: sha512-l0smvr8g/KAVdXx4I92sFxZiaTG4kFc06cFZw+qqwTirwdUHMFLnouXBB9OafWhpO3cfEkEz2CdPoCmor3059A==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true - '@inquirer/expand@4.0.3': - resolution: {integrity: sha512-MDszqW4HYBpVMmAoy/FA9laLrgo899UAga0itEjsYrBthKieDZNc0e16gdn7N3cQ0DSf/6zsTBZMuDYDQU4ktg==} + '@inquirer/expand@4.0.8': + resolution: {integrity: sha512-k0ouAC6L+0Yoj/j0ys2bat0fYcyFVtItDB7h+pDFKaDDSFJey/C/YY1rmIOqkmFVZ5rZySeAQuS8zLcKkKRLmg==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true - '@inquirer/figures@1.0.8': - resolution: {integrity: sha512-tKd+jsmhq21AP1LhexC0pPwsCxEhGgAkg28byjJAd+xhmIs8LUX8JbUc3vBf3PhLxWiB5EvyBE5X7JSPAqMAqg==} + '@inquirer/figures@1.0.10': + resolution: {integrity: sha512-Ey6176gZmeqZuY/W/nZiUyvmb1/qInjcpiZjXWi6nON+nxJpD1bxtSoBxNliGISae32n6OwbY+TSXPZ1CfS4bw==} engines: {node: '>=18'} - '@inquirer/input@4.1.0': - resolution: {integrity: sha512-16B8A9hY741yGXzd8UJ9R8su/fuuyO2e+idd7oVLYjP23wKJ6ILRIIHcnXe8/6AoYgwRS2zp4PNsW/u/iZ24yg==} + '@inquirer/input@4.1.5': + resolution: {integrity: sha512-bB6wR5wBCz5zbIVBPnhp94BHv/G4eKbUEjlpCw676pI2chcvzTx1MuwZSCZ/fgNOdqDlAxkhQ4wagL8BI1D3Zg==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true - '@inquirer/number@3.0.3': - resolution: {integrity: sha512-HA/W4YV+5deKCehIutfGBzNxWH1nhvUC67O4fC9ufSijn72yrYnRmzvC61dwFvlXIG1fQaYWi+cqNE9PaB9n6Q==} + '@inquirer/number@3.0.8': + resolution: {integrity: sha512-CTKs+dT1gw8dILVWATn8Ugik1OHLkkfY82J+Musb57KpmF6EKyskv8zmMiEJPzOnLTZLo05X/QdMd8VH9oulXw==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true - '@inquirer/password@4.0.3': - resolution: {integrity: sha512-3qWjk6hS0iabG9xx0U1plwQLDBc/HA/hWzLFFatADpR6XfE62LqPr9GpFXBkLU0KQUaIXZ996bNG+2yUvocH8w==} + '@inquirer/password@4.0.8': + resolution: {integrity: sha512-MgA+Z7o3K1df2lGY649fyOBowHGfrKRz64dx3+b6c1w+h2W7AwBoOkHhhF/vfhbs5S4vsKNCuDzS3s9r5DpK1g==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true - '@inquirer/prompts@7.2.0': - resolution: {integrity: sha512-ZXYZ5oGVrb+hCzcglPeVerJ5SFwennmDOPfXq1WyeZIrPGySLbl4W6GaSsBFvu3WII36AOK5yB8RMIEEkBjf8w==} + '@inquirer/prompts@7.3.1': + resolution: {integrity: sha512-r1CiKuDV86BDpvj9DRFR+V+nIjsVBOsa2++dqdPqLYAef8kgHYvmQ8ySdP/ZeAIOWa27YGJZRkENdP3dK0H3gg==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true - '@inquirer/rawlist@4.0.3': - resolution: {integrity: sha512-5MhinSzfmOiZlRoPezfbJdfVCZikZs38ja3IOoWe7H1dxL0l3Z2jAUgbBldeyhhOkELdGvPlBfQaNbeLslib1w==} + '@inquirer/rawlist@4.0.8': + resolution: {integrity: sha512-hl7rvYW7Xl4un8uohQRUgO6uc2hpn7PKqfcGkCOWC0AA4waBxAv6MpGOFCEDrUaBCP+pXPVqp4LmnpWmn1E1+g==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true - '@inquirer/search@3.0.3': - resolution: {integrity: sha512-mQTCbdNolTGvGGVCJSI6afDwiSGTV+fMLPEIMDJgIV6L/s3+RYRpxt6t0DYnqMQmemnZ/Zq0vTIRwoHT1RgcTg==} + '@inquirer/search@3.0.8': + resolution: {integrity: sha512-ihSE9D3xQAupNg/aGDZaukqoUSXG2KfstWosVmFCG7jbMQPaj2ivxWtsB+CnYY/T4D6LX1GHKixwJLunNCffww==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true - '@inquirer/select@4.0.3': - resolution: {integrity: sha512-OZfKDtDE8+J54JYAFTUGZwvKNfC7W/gFCjDkcsO7HnTH/wljsZo9y/FJquOxMy++DY0+9l9o/MOZ8s5s1j5wmw==} + '@inquirer/select@4.0.8': + resolution: {integrity: sha512-Io2prxFyN2jOCcu4qJbVoilo19caiD3kqkD3WR0q3yDA5HUCo83v4LrRtg55ZwniYACW64z36eV7gyVbOfORjA==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true - '@inquirer/type@3.0.1': - resolution: {integrity: sha512-+ksJMIy92sOAiAccGpcKZUc3bYO07cADnscIxHBknEm3uNts3movSmBofc1908BNy5edKscxYeAdaX1NXkHS6A==} + '@inquirer/type@3.0.4': + resolution: {integrity: sha512-2MNFrDY8jkFYc9Il9DgLsHhMzuHnOYM1+CUYVWbzu9oT0hC7V7EcYvdCKeoll/Fcci04A+ERZ9wcc7cQ8lTkIA==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} - '@jridgewell/gen-mapping@0.3.5': - resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + '@jridgewell/gen-mapping@0.3.8': + resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} engines: {node: '>=6.0.0'} '@jridgewell/resolve-uri@3.1.2': @@ -896,25 +967,27 @@ packages: '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - '@ljharb/through@2.3.13': - resolution: {integrity: sha512-/gKJun8NNiWGZJkGzI/Ragc53cOdcLNdzjLaIa+GEjguQs0ulsurx8WN0jijdK9yPqDvziX995sMRLyLt1uZMQ==} - engines: {node: '>= 0.4'} + '@js-sdsl/ordered-map@4.4.2': + resolution: {integrity: sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==} - '@moonbeam-network/api-augment@0.3200.3': - resolution: {integrity: sha512-YXOPW30HTuLf2BUbfgDzlj6rEqXH789FPp4FxiB0EAEHBAK2ijfQpAe3qtdTWXXxdnt9rVdiwlUf2wJQWC4O/Q==} + '@moonbeam-network/api-augment@0.3401.2': + resolution: {integrity: sha512-PGCtqfm4uAeEwPmtffTi6hbXVvqYMa3xKQuLWv+1MfQlWDD1QhKuYmmkWhVWdN2dCWe1Kt7BM5moFLRnez0bGw==} engines: {node: '>=20.0.0'} - '@moonwall/cli@5.9.1': - resolution: {integrity: sha512-DjnHB61lr8qkIm+BqhBhGGyHdFrlKlntxOAvJCmoDfNlsMmXHvsaeU9E7KNYRHnXbklrHKMhQhXQ8LdFIfqDXA==} + '@moonbeam-network/types-bundle@1.0.2': + resolution: {integrity: sha512-qVyy8x2tEZQoUqqU0ILZhp4vLazl10kQwTk8mdUYkQ8Nd/6RncSe/xzfWkl6pUHmPfK5RZlNDDI8Jao3+2xsiw==} + + '@moonwall/cli@5.10.0': + resolution: {integrity: sha512-EC4Mj8uBS+fW2WjhTt33xa71FxDSxTx4Om7mVEgdN4LKUWDOgTLJUMiplFdsGDYcKzUujlfFT6HghA0vlPr+hQ==} engines: {node: '>=20', pnpm: '>=7'} hasBin: true - '@moonwall/types@5.9.1': - resolution: {integrity: sha512-1q72msaH3SbKcM0pdcqxnSEJVrrK7WO9lUsBObjuOu/an4zIzluELw65Hu3J6lfCvKg13ypUnJic7McX3mHdKw==} + '@moonwall/types@5.10.0': + resolution: {integrity: sha512-FUzU3ObhCijoKaTnRMjb7K+u+ZGX14O5j6TMzSj8FCm9ZUXGMZhwPKtvhehv8SEP2PuvTFZ9ZsdY3biAxq/9jg==} engines: {node: '>=20', pnpm: '>=7'} - '@moonwall/util@5.9.1': - resolution: {integrity: sha512-UlbwiX5ibywxLaCVwgNIcHOXoHh/nSHg+crtl+0f7suANJpCuQwm1WSUUMstaEliJ7FvNiGlwjozpU/NpBXWJA==} + '@moonwall/util@5.10.0': + resolution: {integrity: sha512-4A8HObrKcI0DTPNwQYPgephfQjWa1XtWBel1ReiwjwLJjkirqxexwpNxgB3h12+W5P9xjo2+3nB89ap9g61mzQ==} engines: {node: '>=20', pnpm: '>=7'} '@noble/curves@1.2.0': @@ -927,6 +1000,10 @@ packages: resolution: {integrity: sha512-TlaHRXDehJuRNR9TfZDNQ45mMEd5dwUwmicsafcIX4SsNiqnCHKjE/1alYPd/lDRVhxdhUAlv8uEhMCI5zjIJQ==} engines: {node: ^14.21.3 || >=16} + '@noble/curves@1.8.1': + resolution: {integrity: sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==} + engines: {node: ^14.21.3 || >=16} + '@noble/ed25519@1.7.3': resolution: {integrity: sha512-iR8GBkDt0Q3GyaVcIu7mSsVIqnFbkbRzGLWlvhwunacoLwt4J3swfKhfaM6rN6WY+TBGoYT1GtT1mIh2/jGbRQ==} @@ -942,21 +1019,13 @@ packages: resolution: {integrity: sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA==} engines: {node: ^14.21.3 || >=16} + '@noble/hashes@1.7.1': + resolution: {integrity: sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==} + engines: {node: ^14.21.3 || >=16} + '@noble/secp256k1@1.7.1': resolution: {integrity: sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==} - '@nodelib/fs.scandir@2.1.5': - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - - '@nodelib/fs.stat@2.0.5': - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - - '@nodelib/fs.walk@1.2.8': - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - '@npmcli/fs@1.1.1': resolution: {integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==} @@ -965,27 +1034,27 @@ packages: engines: {node: '>=10'} deprecated: This functionality has been moved to @npmcli/fs - '@octokit/auth-token@5.1.1': - resolution: {integrity: sha512-rh3G3wDO8J9wSjfI436JUKzHIxq8NaiL0tVeB2aXmG6p/9859aUOAjA9pmSPNGGZxfwmaJ9ozOJImuNVJdpvbA==} + '@octokit/auth-token@5.1.2': + resolution: {integrity: sha512-JcQDsBdg49Yky2w2ld20IHAlwr8d/d8N6NiOXbtuoPCqzbsiJgF633mVUw3x4mo0H5ypataQIX7SFu3yy44Mpw==} engines: {node: '>= 18'} - '@octokit/core@6.1.2': - resolution: {integrity: sha512-hEb7Ma4cGJGEUNOAVmyfdB/3WirWMg5hDuNFVejGEDFqupeOysLc2sG6HJxY2etBp5YQu5Wtxwi020jS9xlUwg==} + '@octokit/core@6.1.3': + resolution: {integrity: sha512-z+j7DixNnfpdToYsOutStDgeRzJSMnbj8T1C/oQjB6Aa+kRfNjs/Fn7W6c8bmlt6mfy3FkgeKBRnDjxQow5dow==} engines: {node: '>= 18'} - '@octokit/endpoint@10.1.1': - resolution: {integrity: sha512-JYjh5rMOwXMJyUpj028cu0Gbp7qe/ihxfJMLc8VZBMMqSwLgOxDI1911gV4Enl1QSavAQNJcwmwBF9M0VvLh6Q==} + '@octokit/endpoint@10.1.2': + resolution: {integrity: sha512-XybpFv9Ms4hX5OCHMZqyODYqGTZ3H6K6Vva+M9LR7ib/xr1y1ZnlChYv9H680y77Vd/i/k+thXApeRASBQkzhA==} engines: {node: '>= 18'} - '@octokit/graphql@8.1.1': - resolution: {integrity: sha512-ukiRmuHTi6ebQx/HFRCXKbDlOh/7xEV6QUXaE7MJEKGNAncGI/STSbOkl12qVXZrfZdpXctx5O9X1AIaebiDBg==} + '@octokit/graphql@8.2.0': + resolution: {integrity: sha512-gejfDywEml/45SqbWTWrhfwvLBrcGYhOn50sPOjIeVvH6i7D16/9xcFA8dAJNp2HMcd+g4vru41g4E2RBiZvfQ==} engines: {node: '>= 18'} - '@octokit/openapi-types@22.2.0': - resolution: {integrity: sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==} + '@octokit/openapi-types@23.0.1': + resolution: {integrity: sha512-izFjMJ1sir0jn0ldEKhZ7xegCTj/ObmEDlEfpFrx4k/JyZSMRHbO3/rBwgE7f3m2DHt+RrNGIVw4wSmwnm3t/g==} - '@octokit/plugin-paginate-rest@11.3.5': - resolution: {integrity: sha512-cgwIRtKrpwhLoBi0CUNuY83DPGRMaWVjqVI/bGKsLJ4PzyWZNaEmhHroI2xlrVXkk6nFv0IsZpOp+ZWSWUS2AQ==} + '@octokit/plugin-paginate-rest@11.4.0': + resolution: {integrity: sha512-ttpGck5AYWkwMkMazNCZMqxKqIq1fJBNxBfsFwwfyYKTf914jKkLF0POMS3YkPBwp5g1c2Y4L79gDz01GhSr1g==} engines: {node: '>= 18'} peerDependencies: '@octokit/core': '>=6' @@ -996,26 +1065,26 @@ packages: peerDependencies: '@octokit/core': '>=6' - '@octokit/plugin-rest-endpoint-methods@13.2.6': - resolution: {integrity: sha512-wMsdyHMjSfKjGINkdGKki06VEkgdEldIGstIEyGX0wbYHGByOwN/KiM+hAAlUwAtPkP3gvXtVQA9L3ITdV2tVw==} + '@octokit/plugin-rest-endpoint-methods@13.3.0': + resolution: {integrity: sha512-LUm44shlmkp/6VC+qQgHl3W5vzUP99ZM54zH6BuqkJK4DqfFLhegANd+fM4YRLapTvPm4049iG7F3haANKMYvQ==} engines: {node: '>= 18'} peerDependencies: '@octokit/core': '>=6' - '@octokit/request-error@6.1.5': - resolution: {integrity: sha512-IlBTfGX8Yn/oFPMwSfvugfncK2EwRLjzbrpifNaMY8o/HTEAFqCA1FZxjD9cWvSKBHgrIhc4CSBIzMxiLsbzFQ==} + '@octokit/request-error@6.1.6': + resolution: {integrity: sha512-pqnVKYo/at0NuOjinrgcQYpEbv4snvP3bKMRqHaD9kIsk9u1LCpb2smHZi8/qJfgeNqLo5hNW4Z7FezNdEo0xg==} engines: {node: '>= 18'} - '@octokit/request@9.1.3': - resolution: {integrity: sha512-V+TFhu5fdF3K58rs1pGUJIDH5RZLbZm5BI+MNF+6o/ssFNT4vWlCh/tVpF3NxGtP15HUxTTMUbsG5llAuU2CZA==} + '@octokit/request@9.2.0': + resolution: {integrity: sha512-kXLfcxhC4ozCnAXy2ff+cSxpcF0A1UqxjvYMqNuPIeOAzJbVWQ+dy5G2fTylofB/gTbObT8O6JORab+5XtA1Kw==} engines: {node: '>= 18'} - '@octokit/rest@21.0.2': - resolution: {integrity: sha512-+CiLisCoyWmYicH25y1cDfCrv41kRSvTq6pPWtRroRJzhsCZWZyCqGyI8foJT5LmScADSwRAnr/xo+eewL04wQ==} + '@octokit/rest@21.1.0': + resolution: {integrity: sha512-93iLxcKDJboUpmnUyeJ6cRIi7z7cqTZT1K7kRK4LobGxwTwpsa+2tQQbRQNGy7IFDEAmrtkf4F4wBj3D5rVlJQ==} engines: {node: '>= 18'} - '@octokit/types@13.6.1': - resolution: {integrity: sha512-PHZE9Z+kWXb23Ndik8MKPirBPziOc0D2/3KH1P+6jK5nGWe96kadZuE4jev2/Jq7FvIfTlT2Ltg8Fv2x1v0a5g==} + '@octokit/types@13.8.0': + resolution: {integrity: sha512-x7DjTIbEpEWXK99DMd01QfWy0hd5h4EN+Q7shkdKds3otGQP+oWE/y0A76i1OvH9fygo4ddvNf7ZvF0t78P98A==} '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} @@ -1036,21 +1105,21 @@ packages: '@polka/url@1.0.0-next.28': resolution: {integrity: sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==} - '@polkadot-api/cli@0.9.21': - resolution: {integrity: sha512-ZvuYRn9f2F8vrm0lPJP8NjbrVLkGpsiWbq0MFlUXhwfTUvkKWPu48rSPiN2SAYAD0p1rOevLus1FdGZL0J/fRw==} + '@polkadot-api/cli@0.9.18': + resolution: {integrity: sha512-biax8MLK8GO6/YTy0NfkCYB1HT5OEAeHr+9ITyv4klNvF/4uqj3gb0XODjCpFX0aCUp6q8aIFMDhUc7rN47AYg==} hasBin: true - '@polkadot-api/codegen@0.12.9': - resolution: {integrity: sha512-lxwKRJqKKmR0Fm9g2KU4KgMB5NeKvc1505iGY0nd/PistTzVIk4zsX3Ja9dPFSB4wMMZ9ykMbbamc3+t6jbkaw==} + '@polkadot-api/codegen@0.12.8': + resolution: {integrity: sha512-uFDi6EYUVyqccTbu8vUsLHMrMTSPh/0D5CwoHuz5rhNH559cdR1kBf/EInhI6AVlnzzUBMAatOc4y5c2bkR+QA==} - '@polkadot-api/ink-contracts@0.2.2': - resolution: {integrity: sha512-jbkrbZo8Yfe9UupmPuWIUdQz0a/Oxi6m1qPGEfXSmwML27FgWEmb+8IG9chLzJ59/z1oMWxgKHkK8BLLWnSLGg==} + '@polkadot-api/ink-contracts@0.2.1': + resolution: {integrity: sha512-K7iJv6lE2Z3npXdk12CGHKfQZ0CGN90mXqTNZd3wDli5BX7hGTzBDdZ34hpe537G7rG88SBYeLz7JJ3n+16CDg==} '@polkadot-api/json-rpc-provider-proxy@0.1.0': resolution: {integrity: sha512-8GSFE5+EF73MCuLQm8tjrbCqlgclcHBSRaswvXziJ0ZW7iw3UEMsKkkKvELayWyBuOPa2T5i1nj6gFOeIsqvrg==} - '@polkadot-api/json-rpc-provider-proxy@0.2.4': - resolution: {integrity: sha512-nuGoY9QpBAiRU7xmXN3nugFvPcnSu3IxTLm1OWcNTGlZ1LW5bvdQHz3JLk56+Jlyb3GJ971hqdg2DJsMXkKCOg==} + '@polkadot-api/json-rpc-provider-proxy@0.2.3': + resolution: {integrity: sha512-dukH94xmV2MUYNZZFhGhnaE1WIjVOPlNpcuzYQRdKYLj3zZJnkA6PHPNHiHd4N8XaCTjaDF3GcBTi6MZ0wtbhg==} '@polkadot-api/json-rpc-provider@0.0.1': resolution: {integrity: sha512-/SMC/l7foRjpykLTUTacIH05H3mr9ip8b5xxfwXlVezXrNVLp3Cv0GX6uItkKd+ZjzVPf3PFrDF2B2/HLSNESA==} @@ -1058,8 +1127,8 @@ packages: '@polkadot-api/json-rpc-provider@0.0.4': resolution: {integrity: sha512-9cDijLIxzHOBuq6yHqpqjJ9jBmXrctjc1OFqU+tQrS96adQze3mTIH6DTgfb/0LMrqxzxffz1HQGrIlEH00WrA==} - '@polkadot-api/known-chains@0.5.8': - resolution: {integrity: sha512-4UoxnqPeJ2viRykArIhUmYsgo2fc84mqC8o/qvmJ0w3r7qwO2/7NS2zpwMuricGtNvdNKyJRMGHAeJdrIfCB3A==} + '@polkadot-api/known-chains@0.5.6': + resolution: {integrity: sha512-DYxpIfhIvWpjjZ3Y7X6Aomfs1/IbDyU+8R2ijDd6e4OBJzGrSjoU1wq4MZktbCivDXVCSF+NfIQpaHB8roBmOQ==} '@polkadot-api/logs-provider@0.0.6': resolution: {integrity: sha512-4WgHlvy+xee1ADaaVf6+MlK/+jGMtsMgAzvbQOJZnP4PfQuagoTqaeayk8HYKxXGphogLlPbD06tANxcb+nvAg==} @@ -1067,11 +1136,11 @@ packages: '@polkadot-api/metadata-builders@0.3.2': resolution: {integrity: sha512-TKpfoT6vTb+513KDzMBTfCb/ORdgRnsS3TDFpOhAhZ08ikvK+hjHMt5plPiAX/OWkm1Wc9I3+K6W0hX5Ab7MVg==} - '@polkadot-api/metadata-builders@0.9.2': - resolution: {integrity: sha512-2vxtjMC5PvN+sTM6DPMopznNfTUJEe6G6CzMhtK19CASb2OeN9NoRpnxmpEagjndO98YPkyQtDv25sKGUVhgAA==} + '@polkadot-api/metadata-builders@0.9.1': + resolution: {integrity: sha512-yZPm9KKn7QydbjMQMzhKHekDuQSdSZXYdCyqGt74HSNz9DdJSdpFNwHv0p+vmp+9QDlVsKK7nbUTjYxLZT4vCA==} - '@polkadot-api/metadata-compatibility@0.1.12': - resolution: {integrity: sha512-zhRhsuzHb6klnRW/pMXb5YLKRtvmGw4sicV6jxKDIclpuOZ+QxMWFmqTGM1Vsea5qNX/Z9HrWvXOYxMlkcW7Pg==} + '@polkadot-api/metadata-compatibility@0.1.11': + resolution: {integrity: sha512-XHl3McfuPSKDAIviGbiuK0epwzcspmvsWSoBywv0l6+adCPw1IpNKKkoj7Wwx4836duD/y/47hQEmkgIbtNQ3A==} '@polkadot-api/observable-client@0.3.2': resolution: {integrity: sha512-HGgqWgEutVyOBXoGOPp4+IAq6CNdK/3MfQJmhCJb8YaJiaK4W6aRGrdQuQSTPHfERHCARt9BrOmEvTXAT257Ug==} @@ -1079,14 +1148,14 @@ packages: '@polkadot-api/substrate-client': 0.1.4 rxjs: '>=7.8.0' - '@polkadot-api/observable-client@0.6.3': - resolution: {integrity: sha512-DNau9rUmEMEnfDKxfoZrtL2oPCXdXuV6c0AvG8kNGviuknk5y7HzlU21rI3O486zqmLQE2ntPxQmT+yeYxW8DA==} + '@polkadot-api/observable-client@0.6.2': + resolution: {integrity: sha512-0GsJDg95FA8idC+epQTrwkLmWdDl6JdSGuAVmy70TE1dVXC8l6lmVWpSX2ltF8ENqA7oXy7DlDEP7FrbvjvHfg==} peerDependencies: '@polkadot-api/substrate-client': 0.3.0 rxjs: '>=7.8.0' - '@polkadot-api/pjs-signer@0.6.1': - resolution: {integrity: sha512-0GYUS0rVxB/Vju4YqX1/9CM1bVmscCSTgI2le5eeYFmz+MHMMPuLTXQyRSCa6nNH/0/L03xL9gmSzwwAVGDpKw==} + '@polkadot-api/pjs-signer@0.6.0': + resolution: {integrity: sha512-Dfji5Xbq820iKv5HTCWE1iDlXI/DtNYXTZOFLiL8banrSrcF5wvTq3QFknUv+q1TfwNYEZazT4eG3Dx/XAsosw==} '@polkadot-api/polkadot-sdk-compat@2.3.1': resolution: {integrity: sha512-rb8IWmPRhKWD9NG4zh2n4q0HlEAvq+Cv1CbD+8YxH0XAqIIiFA+ch5JeDCIxQYngkn/43B0Gs7Gtzh18yv2yoA==} @@ -1094,25 +1163,25 @@ packages: '@polkadot-api/polkadot-signer@0.1.6': resolution: {integrity: sha512-X7ghAa4r7doETtjAPTb50IpfGtrBmy3BJM5WCfNKa1saK04VFY9w+vDn+hwEcM4p0PcDHt66Ts74hzvHq54d9A==} - '@polkadot-api/signer@0.1.11': - resolution: {integrity: sha512-DVNB5fdB5vGjSgBbSqzZtaZ15pW/KJG5FARI9h1KgyDWdXhJo5pkGID/LuY5dQbdlnPbTkLhtDhZ2+4G2NWrzg==} + '@polkadot-api/signer@0.1.10': + resolution: {integrity: sha512-SW4aqfM0hxsZqjX/pHdCZmVdS9bAXKwRSKzcb8vT9AA5YAq3si/Rue5eGGw8gRVcHOr5TdTicMjjaFDfebDyfQ==} - '@polkadot-api/signers-common@0.1.2': - resolution: {integrity: sha512-JtJmU7v4/80mu05qI3F/BP44nT43VfmyLsr7NO4n5+txZ9sFMDXQQELtis/fQnZgzkps8wPOwagjkSdutTow5A==} + '@polkadot-api/signers-common@0.1.1': + resolution: {integrity: sha512-327dpMXr1lccrmG94MJqprkGGF5yZFYDBwl+YXl1ATeTDcaW1vzffCAPqx0vWytb2x3AWilJWyc3Q6xFUWzy4A==} - '@polkadot-api/sm-provider@0.1.7': - resolution: {integrity: sha512-BhNKVeIFZdawpPVadXszLl8IP4EDjcLHe/GchfRRFkvoNFuwS2nNv/npYIqCviXV+dd2R8VnEELxwScsf380Og==} + '@polkadot-api/sm-provider@0.1.6': + resolution: {integrity: sha512-+1lRIH6srYFpeFCN35GtFiw+H4Cs+6NmoJMDRdv9EOYg7I2LKmt97N8JNQ/3UVmnH5Rud0U+iaqnat5cJsv1wg==} peerDependencies: '@polkadot-api/smoldot': '>=0.3' - '@polkadot-api/smoldot@0.3.7': - resolution: {integrity: sha512-Fnrz0Xt8fli7LhHSOWbNraiXpLJWCwOglI+BgBWnYpsdHXSMU5TsYEw5oo9rkfI9zDeZsbtXvMTW3MqTeCLtQg==} + '@polkadot-api/smoldot@0.3.5': + resolution: {integrity: sha512-QiCkI3Z2bSc8yMXChi6dsN7bGB5q8i/a/LGuNEDmMECoLdyEmz7pRBMmi4fnvfbthb+5/c5w5kl/7VOBEJ83tA==} '@polkadot-api/substrate-bindings@0.6.0': resolution: {integrity: sha512-lGuhE74NA1/PqdN7fKFdE5C1gNYX357j1tWzdlPXI0kQ7h3kN0zfxNOpPUN7dIrPcOFZ6C0tRRVrBylXkI6xPw==} - '@polkadot-api/substrate-bindings@0.9.4': - resolution: {integrity: sha512-SUyetILwgUsodSk1qhNu0HflRBdq2VBCbqAqCBNaoCauE3/Q/G6k7xS+1nE6MTcpjZQex+TriJdDz/trLSvwsA==} + '@polkadot-api/substrate-bindings@0.9.3': + resolution: {integrity: sha512-ygaZo8+xssTdb6lj9mA8RTlanDfyd0iMex3aBFC1IzOSm08XUWdRpuSLRuerFCimLzKuz/oBOTKdqBFGb7ybUQ==} '@polkadot-api/substrate-client@0.1.4': resolution: {integrity: sha512-MljrPobN0ZWTpn++da9vOvt+Ex+NlqTlr/XT7zi9sqPtDJiQcYl+d29hFAgpaeTqbeQKZwz3WDE9xcEfLE8c5A==} @@ -1129,23 +1198,23 @@ packages: '@polkadot-api/wasm-executor@0.1.2': resolution: {integrity: sha512-a5wGenltB3EFPdf72u8ewi6HsUg2qubUAf3ekJprZf24lTK3+w8a/GUF/y6r08LJF35MALZ32SAtLqtVTIOGnQ==} - '@polkadot-api/ws-provider@0.3.6': - resolution: {integrity: sha512-D2+rvcDc9smt24qUKqFoCuKKNhyBVDQEtnsqHiUN/Ym8UGP+Acegac3b9VOig70EpCcRBoYeXY2gEog2ybx1Kg==} + '@polkadot-api/ws-provider@0.3.5': + resolution: {integrity: sha512-YZJpWhgCuBH9F5VMG85Em212iEHVz/SiyM0ruqxRvXl/L+LVeh0kJ3RHUHi4xgnb24OfBvfCUG4X2PtvfuCbwA==} - '@polkadot/api-augment@15.4.1': - resolution: {integrity: sha512-mq/m5eC5hzxzsYfbYoLxdqRgH3/hf60DYoVN1f8P7m798cHXE/8DjCSwgtb5QDiWfp+CifaI5O/PcgL8YNj6jw==} + '@polkadot/api-augment@15.5.1': + resolution: {integrity: sha512-ZDSiaBcy8OT8FWI5WWnVqdi4jWBcUpiAdSO3FdZarAN9Hp2sbaUSM5zt8NkLsFtnsQxgZXGzVCbxNojBj7XAlg==} engines: {node: '>=18'} - '@polkadot/api-base@15.4.1': - resolution: {integrity: sha512-7a0wsLPpnEDLXhPmaLds03XchCnj7oP7MbdoULVKzIjYDq0MjYasigAz0Vs/QR6O5qodZWmgS2gA+VG+Ga5OMA==} + '@polkadot/api-base@15.5.1': + resolution: {integrity: sha512-sTcTICj4UEmM9PnIjBFQvHQrZNnRfGA2IipHo6HjzmZ9JpX+9+zjqcq4xZP+4pfP7upKYCzgWN0Si/6BEpNGFw==} engines: {node: '>=18'} - '@polkadot/api-derive@15.4.1': - resolution: {integrity: sha512-0EFrp0kNNpDWqtuSKbNe8+V1iEz1cXAiL+G7UM0oWae/U2xpbi0zdCMeC7hstUoJS//py1vPnDo0nkVfrdhT/A==} + '@polkadot/api-derive@15.5.1': + resolution: {integrity: sha512-8NO/h/ieYy7c7NubvuK/zpxcwJBoqbB6x4o6LfXTkvsv+ePq7WcPw3W0+c6Qo+QZd+OgtrvfT9OzobfxfzKk6g==} engines: {node: '>=18'} - '@polkadot/api@15.4.1': - resolution: {integrity: sha512-o+5WmEt38rs+Enk2XTE5Mn3Vne+gbolvca7nl+hB/VOr5cK+ZAwhMfEt/ZFXzdAQOA9ePO91FLRsS48mimZ8PA==} + '@polkadot/api@15.5.1': + resolution: {integrity: sha512-vEKXcy8iq2f7UZ7pLiX0z2bXiMEJ6Qp/s2MZNWTixBPPWKKqdq7d98CIIPWmqDpQPhidsWMkzV4r3/GaNLccfQ==} engines: {node: '>=18'} '@polkadot/keyring@13.3.1': @@ -1159,45 +1228,45 @@ packages: resolution: {integrity: sha512-g/0OmCMUrbbW4RQ/xajTYd2SMJvFKY4kmMvpxtNN57hWQpY7c5oDXSz57jGH2uwvcBWeDfaNokcS+9hJL1RBcA==} engines: {node: '>=18'} - '@polkadot/rpc-augment@15.4.1': - resolution: {integrity: sha512-DiNSSK+UFkAnF0UtVWr6HSCDio74LWjVjLsh9csAKfqy8bXzTVshl8VjZR2G9nuW9YxoJjQREN8wEcM9F+kL3Q==} + '@polkadot/rpc-augment@15.5.1': + resolution: {integrity: sha512-BuaObrUNH3aXavAoQA4diy8VXUgUpABzsYYIUtlivioA4UHJkFYzCnEYNcQj41Dp3bZE78LC80sYyqFc0ZFJfQ==} engines: {node: '>=18'} - '@polkadot/rpc-core@15.4.1': - resolution: {integrity: sha512-llAtGpKQgtmsy5+320T0Dr8Lxse77eN0NVbpWr7cQo8R5If8YM9cAMNETMtrY1S9596aaLX/GrThp5Zvt6Z5Aw==} + '@polkadot/rpc-core@15.5.1': + resolution: {integrity: sha512-rtT7RFQMfRm9bLYgaK34EoTSqSqPzGcD5aKITGv4ZcGi7oRRrKuIq813II1UK7IH5GN7njLWzoeq+LC3JVxW3g==} engines: {node: '>=18'} - '@polkadot/rpc-provider@15.4.1': - resolution: {integrity: sha512-GOtU8fBczbpEa3U4nQxBvwCtYyP1fYbi6vWBnA/YiwQY6RWqMBY2Tfo9fw0MfYqZVpYvbUoaER4akTrtVvCoVA==} + '@polkadot/rpc-provider@15.5.1': + resolution: {integrity: sha512-hDKup24P+L4BtRgu1L4IZRpZlqPOyeK8ryIaiuPABd6ZseQUQ8Oz2OMf3uL2Q43Xc72+q2PP5ylJuxH+wlErDw==} engines: {node: '>=18'} - '@polkadot/typegen@15.4.1': - resolution: {integrity: sha512-4yGOBVxvbN1JwWPgL2R9fZ4N5zNF6eRn0+4leVqwqOS2MxjcNSAEkB1qB37g4ISLtVnvkxUQ//1EBqfZ53x1mw==} + '@polkadot/typegen@15.5.1': + resolution: {integrity: sha512-7pTx1z83TvlM5wGewbOScBT82jtcEN0Gmgjth1eDfxA2JWrZIEOYr/hzI61Gd1VloB7MXkd+r8NHnE/IDfd4Wg==} engines: {node: '>=18'} hasBin: true - '@polkadot/types-augment@15.4.1': - resolution: {integrity: sha512-40X4UVEHmJhNV+gYS79RY38rv3shFEGd9H8xTas91IgZtT12mRw1kH5vjLHk+nYTVAAR1ml3D3IStILAwzikgQ==} + '@polkadot/types-augment@15.5.1': + resolution: {integrity: sha512-sWO/4Loe7oJldmO/dbJeiTkO7sdEj6TZ6UnHcxpxCC97cPUrqHxcatsyoxrMn1RyLJ/tIlkQEgT25d/LwKbU7Q==} engines: {node: '>=18'} - '@polkadot/types-codec@15.4.1': - resolution: {integrity: sha512-LksB8JBdu8ysYWsRbE1U+cv8svUpSddalR6mg0pP0H/ngj58PWrRUWJBRw2LDw65B4Dw1AIJ0QrbigmCjCyz+A==} + '@polkadot/types-codec@15.5.1': + resolution: {integrity: sha512-aBI3x9Uv/g6TkVToQwIEuXn9NsRT6oMrlQt9WYN4bWElHayeiKpdEQa3sdSpA48g+X5q4CoWDI7etaj8cV9obw==} engines: {node: '>=18'} - '@polkadot/types-create@15.4.1': - resolution: {integrity: sha512-NP1YGsLdGii0FNAKeKHNxpvLZCusEugs+g21vHHmdtFLC08ngU7pNJGERteo6vDNr5JDejzVbB+i94Y9RzKC0Q==} + '@polkadot/types-create@15.5.1': + resolution: {integrity: sha512-qb8lDmWIZeOiw2INIKGFDM6dtMn08kU5WaIfjpIPDBAM+htqhhGNirxIvSwKIY15YuAUqapk4EXelZLnDxHJ8g==} engines: {node: '>=18'} - '@polkadot/types-known@15.4.1': - resolution: {integrity: sha512-LF9estF7y7sXHQ7tA9QoVzAmtkglJdcqMbj70H70V+CBZjiyAgd84PvBtQ6mcIywJ54iCyBBLbhlqcbH/zgUdw==} + '@polkadot/types-known@15.5.1': + resolution: {integrity: sha512-4FXoN22h9pgEfWf+p23+77PzQGfZPC4oMjLYKB5tJ6z1Wn/QkoaNlidBf/swTaYRTE5KnXU4BHdEyR1N+336sw==} engines: {node: '>=18'} - '@polkadot/types-support@15.4.1': - resolution: {integrity: sha512-BeMi+780cP0jb4HTwovjcNt/Yf/lgKkXGlfu/gZhLb6eu7Sz3VzAxI8z2WdMWE/NiXMEHeC0YpwOowhRS2tEVA==} + '@polkadot/types-support@15.5.1': + resolution: {integrity: sha512-EGju43gZszvWQVgmwUQitimdLRL06TJ26ate9HNsTdz2EOhPp9yuYolLwk6qIwBitpF0qup0H6FgiohhIBrc7g==} engines: {node: '>=18'} - '@polkadot/types@15.4.1': - resolution: {integrity: sha512-5Oh6iwdtXg9/CN55c2IzNx90/ALK1DlP/OswN9vERp6rqZttAEGTQgSiYFHP0+7WhDB8H6v8jVutHadqv7lhMg==} + '@polkadot/types@15.5.1': + resolution: {integrity: sha512-1kpF4xaYvokuXaNt37PESXCIrYWlrNQWQwfopQz1RPVHGKcLioMZ8cc49nYSPjpvRriDSVmE/zhy16uBWANHOw==} engines: {node: '>=18'} '@polkadot/util-crypto@13.3.1': @@ -1315,105 +1384,203 @@ packages: cpu: [arm] os: [android] + '@rollup/rollup-android-arm-eabi@4.34.2': + resolution: {integrity: sha512-6Fyg9yQbwJR+ykVdT9sid1oc2ewejS6h4wzQltmJfSW53N60G/ah9pngXGANdy9/aaE/TcUFpWosdm7JXS1WTQ==} + cpu: [arm] + os: [android] + '@rollup/rollup-android-arm64@4.26.0': resolution: {integrity: sha512-YJa5Gy8mEZgz5JquFruhJODMq3lTHWLm1fOy+HIANquLzfIOzE9RA5ie3JjCdVb9r46qfAQY/l947V0zfGJ0OQ==} cpu: [arm64] os: [android] + '@rollup/rollup-android-arm64@4.34.2': + resolution: {integrity: sha512-K5GfWe+vtQ3kyEbihrimM38UgX57UqHp+oME7X/EX9Im6suwZfa7Hsr8AtzbJvukTpwMGs+4s29YMSO3rwWtsw==} + cpu: [arm64] + os: [android] + '@rollup/rollup-darwin-arm64@4.26.0': resolution: {integrity: sha512-ErTASs8YKbqTBoPLp/kA1B1Um5YSom8QAc4rKhg7b9tyyVqDBlQxy7Bf2wW7yIlPGPg2UODDQcbkTlruPzDosw==} cpu: [arm64] os: [darwin] + '@rollup/rollup-darwin-arm64@4.34.2': + resolution: {integrity: sha512-PSN58XG/V/tzqDb9kDGutUruycgylMlUE59f40ny6QIRNsTEIZsrNQTJKUN2keMMSmlzgunMFqyaGLmly39sug==} + cpu: [arm64] + os: [darwin] + '@rollup/rollup-darwin-x64@4.26.0': resolution: {integrity: sha512-wbgkYDHcdWW+NqP2mnf2NOuEbOLzDblalrOWcPyY6+BRbVhliavon15UploG7PpBRQ2bZJnbmh8o3yLoBvDIHA==} cpu: [x64] os: [darwin] + '@rollup/rollup-darwin-x64@4.34.2': + resolution: {integrity: sha512-gQhK788rQJm9pzmXyfBB84VHViDERhAhzGafw+E5mUpnGKuxZGkMVDa3wgDFKT6ukLC5V7QTifzsUKdNVxp5qQ==} + cpu: [x64] + os: [darwin] + '@rollup/rollup-freebsd-arm64@4.26.0': resolution: {integrity: sha512-Y9vpjfp9CDkAG4q/uwuhZk96LP11fBz/bYdyg9oaHYhtGZp7NrbkQrj/66DYMMP2Yo/QPAsVHkV891KyO52fhg==} cpu: [arm64] os: [freebsd] + '@rollup/rollup-freebsd-arm64@4.34.2': + resolution: {integrity: sha512-eiaHgQwGPpxLC3+zTAcdKl4VsBl3r0AiJOd1Um/ArEzAjN/dbPK1nROHrVkdnoE6p7Svvn04w3f/jEZSTVHunA==} + cpu: [arm64] + os: [freebsd] + '@rollup/rollup-freebsd-x64@4.26.0': resolution: {integrity: sha512-A/jvfCZ55EYPsqeaAt/yDAG4q5tt1ZboWMHEvKAH9Zl92DWvMIbnZe/f/eOXze65aJaaKbL+YeM0Hz4kLQvdwg==} cpu: [x64] os: [freebsd] + '@rollup/rollup-freebsd-x64@4.34.2': + resolution: {integrity: sha512-lhdiwQ+jf8pewYOTG4bag0Qd68Jn1v2gO1i0mTuiD+Qkt5vNfHVK/jrT7uVvycV8ZchlzXp5HDVmhpzjC6mh0g==} + cpu: [x64] + os: [freebsd] + '@rollup/rollup-linux-arm-gnueabihf@4.26.0': resolution: {integrity: sha512-paHF1bMXKDuizaMODm2bBTjRiHxESWiIyIdMugKeLnjuS1TCS54MF5+Y5Dx8Ui/1RBPVRE09i5OUlaLnv8OGnA==} cpu: [arm] os: [linux] + '@rollup/rollup-linux-arm-gnueabihf@4.34.2': + resolution: {integrity: sha512-lfqTpWjSvbgQP1vqGTXdv+/kxIznKXZlI109WkIFPbud41bjigjNmOAAKoazmRGx+k9e3rtIdbq2pQZPV1pMig==} + cpu: [arm] + os: [linux] + '@rollup/rollup-linux-arm-musleabihf@4.26.0': resolution: {integrity: sha512-cwxiHZU1GAs+TMxvgPfUDtVZjdBdTsQwVnNlzRXC5QzIJ6nhfB4I1ahKoe9yPmoaA/Vhf7m9dB1chGPpDRdGXg==} cpu: [arm] os: [linux] + '@rollup/rollup-linux-arm-musleabihf@4.34.2': + resolution: {integrity: sha512-RGjqULqIurqqv+NJTyuPgdZhka8ImMLB32YwUle2BPTDqDoXNgwFjdjQC59FbSk08z0IqlRJjrJ0AvDQ5W5lpw==} + cpu: [arm] + os: [linux] + '@rollup/rollup-linux-arm64-gnu@4.26.0': resolution: {integrity: sha512-4daeEUQutGRCW/9zEo8JtdAgtJ1q2g5oHaoQaZbMSKaIWKDQwQ3Yx0/3jJNmpzrsScIPtx/V+1AfibLisb3AMQ==} cpu: [arm64] os: [linux] + '@rollup/rollup-linux-arm64-gnu@4.34.2': + resolution: {integrity: sha512-ZvkPiheyXtXlFqHpsdgscx+tZ7hoR59vOettvArinEspq5fxSDSgfF+L5wqqJ9R4t+n53nyn0sKxeXlik7AY9Q==} + cpu: [arm64] + os: [linux] + '@rollup/rollup-linux-arm64-musl@4.26.0': resolution: {integrity: sha512-eGkX7zzkNxvvS05ROzJ/cO/AKqNvR/7t1jA3VZDi2vRniLKwAWxUr85fH3NsvtxU5vnUUKFHKh8flIBdlo2b3Q==} cpu: [arm64] os: [linux] + '@rollup/rollup-linux-arm64-musl@4.34.2': + resolution: {integrity: sha512-UlFk+E46TZEoxD9ufLKDBzfSG7Ki03fo6hsNRRRHF+KuvNZ5vd1RRVQm8YZlGsjcJG8R252XFK0xNPay+4WV7w==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-loongarch64-gnu@4.34.2': + resolution: {integrity: sha512-hJhfsD9ykx59jZuuoQgYT1GEcNNi3RCoEmbo5OGfG8RlHOiVS7iVNev9rhLKh7UBYq409f4uEw0cclTXx8nh8Q==} + cpu: [loong64] + os: [linux] + '@rollup/rollup-linux-powerpc64le-gnu@4.26.0': resolution: {integrity: sha512-Odp/lgHbW/mAqw/pU21goo5ruWsytP7/HCC/liOt0zcGG0llYWKrd10k9Fj0pdj3prQ63N5yQLCLiE7HTX+MYw==} cpu: [ppc64] os: [linux] + '@rollup/rollup-linux-powerpc64le-gnu@4.34.2': + resolution: {integrity: sha512-g/O5IpgtrQqPegvqopvmdCF9vneLE7eqYfdPWW8yjPS8f63DNam3U4ARL1PNNB64XHZDHKpvO2Giftf43puB8Q==} + cpu: [ppc64] + os: [linux] + '@rollup/rollup-linux-riscv64-gnu@4.26.0': resolution: {integrity: sha512-MBR2ZhCTzUgVD0OJdTzNeF4+zsVogIR1U/FsyuFerwcqjZGvg2nYe24SAHp8O5sN8ZkRVbHwlYeHqcSQ8tcYew==} cpu: [riscv64] os: [linux] + '@rollup/rollup-linux-riscv64-gnu@4.34.2': + resolution: {integrity: sha512-bSQijDC96M6PuooOuXHpvXUYiIwsnDmqGU8+br2U7iPoykNi9JtMUpN7K6xml29e0evK0/g0D1qbAUzWZFHY5Q==} + cpu: [riscv64] + os: [linux] + '@rollup/rollup-linux-s390x-gnu@4.26.0': resolution: {integrity: sha512-YYcg8MkbN17fMbRMZuxwmxWqsmQufh3ZJFxFGoHjrE7bv0X+T6l3glcdzd7IKLiwhT+PZOJCblpnNlz1/C3kGQ==} cpu: [s390x] os: [linux] + '@rollup/rollup-linux-s390x-gnu@4.34.2': + resolution: {integrity: sha512-49TtdeVAsdRuiUHXPrFVucaP4SivazetGUVH8CIxVsNsaPHV4PFkpLmH9LeqU/R4Nbgky9lzX5Xe1NrzLyraVA==} + cpu: [s390x] + os: [linux] + '@rollup/rollup-linux-x64-gnu@4.26.0': resolution: {integrity: sha512-ZuwpfjCwjPkAOxpjAEjabg6LRSfL7cAJb6gSQGZYjGhadlzKKywDkCUnJ+KEfrNY1jH5EEoSIKLCb572jSiglA==} cpu: [x64] os: [linux] + '@rollup/rollup-linux-x64-gnu@4.34.2': + resolution: {integrity: sha512-j+jFdfOycLIQ7FWKka9Zd3qvsIyugg5LeZuHF6kFlXo6MSOc6R1w37YUVy8VpAKd81LMWGi5g9J25P09M0SSIw==} + cpu: [x64] + os: [linux] + '@rollup/rollup-linux-x64-musl@4.26.0': resolution: {integrity: sha512-+HJD2lFS86qkeF8kNu0kALtifMpPCZU80HvwztIKnYwym3KnA1os6nsX4BGSTLtS2QVAGG1P3guRgsYyMA0Yhg==} cpu: [x64] os: [linux] + '@rollup/rollup-linux-x64-musl@4.34.2': + resolution: {integrity: sha512-aDPHyM/D2SpXfSNCVWCxyHmOqN9qb7SWkY1+vaXqMNMXslZYnwh9V/UCudl6psyG0v6Ukj7pXanIpfZwCOEMUg==} + cpu: [x64] + os: [linux] + '@rollup/rollup-win32-arm64-msvc@4.26.0': resolution: {integrity: sha512-WUQzVFWPSw2uJzX4j6YEbMAiLbs0BUysgysh8s817doAYhR5ybqTI1wtKARQKo6cGop3pHnrUJPFCsXdoFaimQ==} cpu: [arm64] os: [win32] + '@rollup/rollup-win32-arm64-msvc@4.34.2': + resolution: {integrity: sha512-LQRkCyUBnAo7r8dbEdtNU08EKLCJMgAk2oP5H3R7BnUlKLqgR3dUjrLBVirmc1RK6U6qhtDw29Dimeer8d5hzQ==} + cpu: [arm64] + os: [win32] + '@rollup/rollup-win32-ia32-msvc@4.26.0': resolution: {integrity: sha512-D4CxkazFKBfN1akAIY6ieyOqzoOoBV1OICxgUblWxff/pSjCA2khXlASUx7mK6W1oP4McqhgcCsu6QaLj3WMWg==} cpu: [ia32] os: [win32] + '@rollup/rollup-win32-ia32-msvc@4.34.2': + resolution: {integrity: sha512-wt8OhpQUi6JuPFkm1wbVi1BByeag87LDFzeKSXzIdGcX4bMLqORTtKxLoCbV57BHYNSUSOKlSL4BYYUghainYA==} + cpu: [ia32] + os: [win32] + '@rollup/rollup-win32-x64-msvc@4.26.0': resolution: {integrity: sha512-2x8MO1rm4PGEP0xWbubJW5RtbNLk3puzAMaLQd3B3JHVw4KcHlmXcO+Wewx9zCoo7EUFiMlu/aZbCJ7VjMzAag==} cpu: [x64] os: [win32] + '@rollup/rollup-win32-x64-msvc@4.34.2': + resolution: {integrity: sha512-rUrqINax0TvrPBXrFKg0YbQx18NpPN3NNrgmaao9xRNbTwek7lOXObhx8tQy8gelmQ/gLaGy1WptpU2eKJZImg==} + cpu: [x64] + os: [win32] + '@scure/base@1.1.9': resolution: {integrity: sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==} + '@scure/base@1.2.4': + resolution: {integrity: sha512-5Yy9czTO47mqz+/J8GM6GIId4umdCk1wc1q8rKERQulIoc8VP9pzDcghv10Tl2E7R96ZUx/PhND3ESYUQX8NuQ==} + '@scure/bip32@1.4.0': resolution: {integrity: sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==} - '@scure/bip32@1.5.0': - resolution: {integrity: sha512-8EnFYkqEQdnkuGBVpCzKxyIwDCBLDVj3oiX0EKUFre/tOjL/Hqba1D6n/8RcmaQy4f95qQFrO2A8Sr6ybh4NRw==} + '@scure/bip32@1.6.2': + resolution: {integrity: sha512-t96EPDMbtGgtb7onKKqxRLfE5g05k7uHnHRM2xdE6BP/ZmxaLtPek4J4KfVn/90IQNrU1IOAqMgiDtUdtbe3nw==} '@scure/bip39@1.3.0': resolution: {integrity: sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==} - '@scure/bip39@1.4.0': - resolution: {integrity: sha512-BEEm6p8IueV/ZTfQLp/0vhw4NPnT9oWf5+28nvmeUICjP99f4vr2d+qc7AVGDDtwRep6ifR43Yed9ERVmiITzw==} + '@scure/bip39@1.5.4': + resolution: {integrity: sha512-TFM4ni0vKvCfBpohoh+/lY05i9gRbSwXWngAsF4CABQxoaOHijxuaZ2R6cStDQ5CHtHO9aGJTr4ksVJASRRyMA==} '@sec-ant/readable-stream@0.4.1': resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} @@ -1468,24 +1635,21 @@ packages: '@types/estree@1.0.6': resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} - '@types/json-schema@7.0.15': - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + '@types/json-bigint@1.0.4': + resolution: {integrity: sha512-ydHooXLbOmxBbubnA7Eh+RpBzuaIiQjh8WGJYQB50JFGFrdxW7JzVlyEV7fAXw0T2sqJ1ysTneJbiyNLqZRAag==} '@types/long@4.0.2': resolution: {integrity: sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==} - '@types/mdast@3.0.15': - resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==} - - '@types/mdast@4.0.4': - resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} - '@types/ms@0.7.34': resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} '@types/node@22.10.5': resolution: {integrity: sha512-F8Q+SeGimwOo86fiovQh8qiXfFEh2/ocYv7tU5pJ3EXMSSxk1Joj5wefpFK2fHTf/N6HKGSxIDBT9f3gCxXPkQ==} + '@types/node@22.12.0': + resolution: {integrity: sha512-Fll2FZ1riMjNmlmJOdAyY5pUbkftXslB5DgEzlIuNaiWhXd00FhWxVC/r4yV/4wBb9JfImTu+jiSvXTkJ7F/gA==} + '@types/node@22.7.5': resolution: {integrity: sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==} @@ -1495,84 +1659,23 @@ packages: '@types/prop-types@15.7.14': resolution: {integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==} - '@types/react@18.3.14': - resolution: {integrity: sha512-NzahNKvjNhVjuPBQ+2G7WlxstQ+47kXZNHlUvFakDViuIEfGY926GqhMueQFZ7woG+sPiQKlF36XfrIUVSUfFg==} + '@types/ps-node@0.1.3': + resolution: {integrity: sha512-9lJ7dWmWsdZnh/QMwX11+T+Se8Q1dk4LJqUwAEMsl7riiYmvmSl/Hfr7FlfJawD2+eb12A1hYAmu1J89k2PVdQ==} - '@types/semver@7.5.8': - resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} + '@types/react@18.3.12': + resolution: {integrity: sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==} '@types/tmp@0.2.6': resolution: {integrity: sha512-chhaNf2oKHlRkDGt+tiKE2Z5aJ6qalm7Z9rlLdBwmOiAAf09YQvvoLXjWK4HWPF1xU/fqvMgfNfpVoBscA/tKA==} - '@types/unist@2.0.11': - resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} - - '@types/unist@3.0.3': - resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} - '@types/ws@8.5.3': resolution: {integrity: sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==} - '@typescript-eslint/eslint-plugin@6.15.0': - resolution: {integrity: sha512-j5qoikQqPccq9QoBAupOP+CBu8BaJ8BLjaXSioDISeTZkVO3ig7oSIKh3H+rEpee7xCXtWwSB4KIL5l6hWZzpg==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/parser@6.15.0': - resolution: {integrity: sha512-MkgKNnsjC6QwcMdlNAel24jjkEO/0hQaMDLqP4S9zq5HBAUJNQB6y+3DwLjX7b3l2b37eNAxMPLwb3/kh8VKdA==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/scope-manager@6.15.0': - resolution: {integrity: sha512-+BdvxYBltqrmgCNu4Li+fGDIkW9n//NrruzG9X1vBzaNK+ExVXPoGB71kneaVw/Jp+4rH/vaMAGC6JfMbHstVg==} - engines: {node: ^16.0.0 || >=18.0.0} - - '@typescript-eslint/type-utils@6.15.0': - resolution: {integrity: sha512-CnmHKTfX6450Bo49hPg2OkIm/D/TVYV7jO1MCfPYGwf6x3GO0VU8YMO5AYMn+u3X05lRRxA4fWCz87GFQV6yVQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/types@6.15.0': - resolution: {integrity: sha512-yXjbt//E4T/ee8Ia1b5mGlbNj9fB9lJP4jqLbZualwpP2BCQ5is6BcWwxpIsY4XKAhmdv3hrW92GdtJbatC6dQ==} - engines: {node: ^16.0.0 || >=18.0.0} - - '@typescript-eslint/typescript-estree@6.15.0': - resolution: {integrity: sha512-7mVZJN7Hd15OmGuWrp2T9UvqR2Ecg+1j/Bp1jXUEY2GZKV6FXlOIoqVDmLpBiEiq3katvj/2n2mR0SDwtloCew==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/utils@6.15.0': - resolution: {integrity: sha512-eF82p0Wrrlt8fQSRL0bGXzK5nWPRV2dYQZdajcfzOD9+cQz9O7ugifrJxclB+xVOvWvagXfqS4Es7vpLP4augw==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - - '@typescript-eslint/visitor-keys@6.15.0': - resolution: {integrity: sha512-1zvtdC1a9h5Tb5jU9x3ADNXO9yjP8rXlaoChu0DQX40vf5ACVpYIVIZhIMZ6d5sDXH7vq4dsZBT1fEGj8D2n2w==} - engines: {node: ^16.0.0 || >=18.0.0} + '@types/yargs-parser@21.0.3': + resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} - '@ungap/structured-clone@1.2.0': - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + '@types/yargs@17.0.33': + resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} '@vitest/expect@2.1.5': resolution: {integrity: sha512-nZSBTW1XIdpZvEJyoP/Sy8fUg0b8od7ZpGDkTUcfJ7wz/VoZAFzFfLyxVxGFhUjJzhYqSbIpfMtl/+k/dpWa3Q==} @@ -1612,10 +1715,18 @@ packages: resolution: {integrity: sha512-rBID1rFq8JV0mOnksvXADk5QRjfp1ZES0nQUBBLYjY/un7Le60wbSuQCUi7/Zxm8qUSfeH7CE0U5aTXDfdBVGw==} engines: {node: '>=18'} + '@zombienet/orchestrator@0.0.98': + resolution: {integrity: sha512-oWWtoePJ1q5VuDBzg8fbW0D5bcXQ0ysYUsU79Y7OTzFfi8d2i/Vs3xX2cGR27iP31BFbHlfpxJ2g9WhlDvd7og==} + engines: {node: '>=18'} + '@zombienet/utils@0.0.25': resolution: {integrity: sha512-VS+tWmdZ8ozRkA1Lgb/Si9iISgJz8AEQpPnlnlIg3lfVHYFqAD7M5DpiFv24AAEBSraokVhUv9E9E1uE4d4f0w==} engines: {node: '>=18'} + '@zombienet/utils@0.0.26': + resolution: {integrity: sha512-LlFtaRV3CGBXDsbbETRZfjMbIAJrl/88eKTQ7Sr0FkWG0pg5GrIn6tLmnv6HUaCzP2IW1fn0JpBNxtw4+SArJA==} + engines: {node: '>=18'} + JSONStream@1.3.5: resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} hasBin: true @@ -1629,16 +1740,16 @@ packages: abitype@0.7.1: resolution: {integrity: sha512-VBkRHTDZf9Myaek/dO3yMmOzB/y2s3Zo6nVU7yaw1G+TvCHAjwaJzNGN9yo4K5D8bU/VZXKP1EJpRhFr862PlQ==} peerDependencies: - typescript: '>=4.9.4' + typescript: 5.5.4 zod: ^3 >=3.19.1 peerDependenciesMeta: zod: optional: true - abitype@1.0.6: - resolution: {integrity: sha512-MMSqYh4+C/aVqI2RQaWqbvI4Kxo5cQV40WQ4QFtDnNzCkqChm8MuENhElmynZlO0qUy/ObkEUaXtKqYnx1Kp3A==} + abitype@1.0.8: + resolution: {integrity: sha512-ZeiI6h3GnW06uYDLx0etQtX/p8E24UaHHBj57RSjK7YBFe7iuVn07EDpOeP451D06sF27VOz9JJPlIKJmXgkEg==} peerDependencies: - typescript: '>=5.0.4' + typescript: 5.5.4 zod: ^3 >=3.22.0 peerDependenciesMeta: typescript: @@ -1646,15 +1757,6 @@ packages: zod: optional: true - abort-controller@3.0.0: - resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} - engines: {node: '>=6.5'} - - acorn-jsx@5.3.2: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - acorn-walk@8.3.3: resolution: {integrity: sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==} engines: {node: '>=0.4.0'} @@ -1664,11 +1766,6 @@ packages: engines: {node: '>=0.4.0'} hasBin: true - acorn@8.14.0: - resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} - engines: {node: '>=0.4.0'} - hasBin: true - aes-js@4.0.0-beta.5: resolution: {integrity: sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==} @@ -1680,17 +1777,14 @@ packages: resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} engines: {node: '>= 14'} - agentkeepalive@4.5.0: - resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} + agentkeepalive@4.6.0: + resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==} engines: {node: '>= 8.0.0'} aggregate-error@3.1.0: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} engines: {node: '>=8'} - ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - ansi-colors@4.1.3: resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} engines: {node: '>=6'} @@ -1744,13 +1838,12 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - asap@2.0.6: resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} + asn1@0.2.6: + resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} + assertion-error@1.1.0: resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} @@ -1773,8 +1866,8 @@ packages: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} - axios@1.7.7: - resolution: {integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==} + axios@1.7.9: + resolution: {integrity: sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==} balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} @@ -1782,6 +1875,9 @@ packages: base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + bcrypt-pbkdf@1.0.2: + resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} + before-after-hook@3.0.2: resolution: {integrity: sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A==} @@ -1795,9 +1891,6 @@ packages: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} - binary-searching@2.0.5: - resolution: {integrity: sha512-v4N2l3RxL+m4zDxyxz3Ne2aTmiPn8ZUpKFpdPtO+ItW1NcTCXA7JeHG5GMBSvoKSkQZ9ycS+EouDVxYB9ufKWA==} - bindings@1.5.0: resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} @@ -1833,8 +1926,12 @@ packages: buffer@6.0.3: resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} - bundle-require@5.0.0: - resolution: {integrity: sha512-GuziW3fSSmopcx4KRymQEJVbZUfqlCqcq7dvs6TYwKRZiegK/2buMxQTPs6MGlNv50wms1699qYO54R8XfRX4w==} + buildcheck@0.0.6: + resolution: {integrity: sha512-8f9ZJCUXyT1M35Jx7MkBgmBMo3oHTTBIPLiY9xyL0pl3T5RwcPEY8cUHr5LBNfu/fk6c2T4DJZuVM/8ZZT2D2A==} + engines: {node: '>=10.0.0'} + + bundle-require@5.1.0: + resolution: {integrity: sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} peerDependencies: esbuild: '>=0.18' @@ -1851,10 +1948,6 @@ packages: resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} engines: {node: '>= 0.4'} - callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} - camelcase@6.3.0: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} @@ -1888,9 +1981,6 @@ packages: resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - character-entities@2.0.2: - resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} - chardet@0.7.0: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} @@ -1905,8 +1995,8 @@ packages: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} - chokidar@4.0.1: - resolution: {integrity: sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==} + chokidar@4.0.3: + resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} engines: {node: '>= 14.16.0'} chownr@1.1.4: @@ -1930,10 +2020,6 @@ packages: resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} engines: {node: '>=10'} - cli-cursor@3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} - engines: {node: '>=8'} - cli-cursor@4.0.0: resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -1974,10 +2060,6 @@ packages: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} - clone@1.0.4: - resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} - engines: {node: '>=0.8'} - code-excerpt@4.0.0: resolution: {integrity: sha512-xxodCmBen3iy2i0WtAK8FlFNrRzjUqjRsMfho58xT/wvZU1YTM3fCnRjcy1gJPMepaRlgm/0e6w8SpWHpn3/cA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -2026,10 +2108,6 @@ packages: resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} engines: {node: '>= 12'} - comment-parser@1.4.1: - resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==} - engines: {node: '>= 12.0.0'} - concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} @@ -2039,8 +2117,8 @@ packages: connected-domain@1.0.0: resolution: {integrity: sha512-lHlohUiJxlpunvDag2Y0pO20bnvarMjnrdciZeuJUqRwrf/5JHNhdpiPIr5GQ8IkqrFj5TDMQwcCjblGo1oeuA==} - consola@3.2.3: - resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} + consola@3.4.0: + resolution: {integrity: sha512-EiPU8G6dQG0GFHNR8ljnZFki/8a+cQwEQ+7wpxdChl02Q8HXlwEZWD5lqAF8vC2sEC3Tehr8hy7vErz88LHyUA==} engines: {node: ^14.18.0 || >=16.10.0} console-control-strings@1.1.0: @@ -2050,6 +2128,10 @@ packages: resolution: {integrity: sha512-rcQ1bsQO9799wq24uE5AM2tAILy4gXGIK/njFWcVQkGNZ96edlpY+A7bjwvzjYvLDyzmG1MmMLZhpcsb+klNMQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + cpu-features@0.0.10: + resolution: {integrity: sha512-9IkYqtX3YHPCzoVg1Py+o9057a3i0fp7S530UWokCSaFVTc7CwXPRiOjRjBQQ18ZCNafx78YfnG+HALxtVmOGA==} + engines: {node: '>=10.0.0'} + crc-32@1.2.2: resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} engines: {node: '>=0.8'} @@ -2065,6 +2147,10 @@ packages: resolution: {integrity: sha512-ZVJrKKYunU38/76t0RMOulHOnUcbU9GbpWKAOZ0mhjr7CX6FVrH+4FrAapSOekrgFQ3f/8gwMEuIft0aKq6Hug==} engines: {node: '>= 8'} + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + css-tree@2.3.1: resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} @@ -2099,6 +2185,15 @@ packages: supports-color: optional: true + debug@4.4.0: + resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + decamelize@4.0.0: resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} engines: {node: '>=10'} @@ -2106,9 +2201,6 @@ packages: decimal.js@10.4.3: resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} - decode-named-character-reference@1.0.2: - resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} - decompress-response@6.0.0: resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} engines: {node: '>=10'} @@ -2125,16 +2217,10 @@ packages: resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} engines: {node: '>=4.0.0'} - deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - - deepmerge-ts@7.1.3: - resolution: {integrity: sha512-qCSH6I0INPxd9Y1VtAiLpnYvz5O//6rCfJXKk0z66Up9/VOSr+1yS8XSKA5IWRxjocFGlzPyaZYe+jxq7OOLtQ==} + deepmerge-ts@7.1.4: + resolution: {integrity: sha512-fxqo6nHGQ9zOVgI4KXqtWXJR/yCLtC7aXIVq+6jc8tHPFUxlFmuUcm2kC4vztQ+LJxQ3gER/XAWearGYQ8niGA==} engines: {node: '>=16.0.0'} - defaults@1.0.4: - resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} - define-data-property@1.1.4: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} @@ -2154,10 +2240,6 @@ packages: delegates@1.0.0: resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} - dequal@2.0.3: - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} - engines: {node: '>=6'} - detect-indent@7.0.1: resolution: {integrity: sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==} engines: {node: '>=12.20'} @@ -2169,9 +2251,6 @@ packages: detect-node@2.1.0: resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} - devlop@1.1.0: - resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} - diff-match-patch@1.0.5: resolution: {integrity: sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==} @@ -2183,18 +2262,22 @@ packages: resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} engines: {node: '>=0.3.1'} - dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} + docker-modem@5.0.6: + resolution: {integrity: sha512-ens7BiayssQz/uAxGzH8zGXCtiV24rRWXdjNha5V4zSOcxmAZsfGVm/PPFbwQdqEkDnhG+SyR9E3zSHUbOKXBQ==} + engines: {node: '>= 8.0'} - doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} + dockerode@4.0.4: + resolution: {integrity: sha512-6GYP/EdzEY50HaOxTVTJ2p+mB5xDHTMJhS+UoGrVyS6VC+iQRh7kZ4FRpUYq6nziby7hPqWhOrFFUFTMUZJJ5w==} + engines: {node: '>= 8.0'} dotenv@16.4.5: resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} engines: {node: '>=12'} + dotenv@16.4.7: + resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==} + engines: {node: '>=12'} + eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} @@ -2242,8 +2325,8 @@ packages: es-module-lexer@1.5.4: resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} - es-toolkit@1.29.0: - resolution: {integrity: sha512-GjTll+E6APcfAQA09D89HdT8Qn2Yb+TeDSDBTMcxAo+V+w1amAtCI15LJu4YPH/UCPoSo/F47Gr1LIM0TE0lZA==} + es-toolkit@1.32.0: + resolution: {integrity: sha512-ZfSfHP1l6ubgW/B/FRtqb9bYdMvI6jizbOSfbwwJNcOQ1QE6TFsC3jpQkZ900uUPSR3t3SU5Ds7UWKnYz+uP8Q==} es6-error@4.1.1: resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} @@ -2258,8 +2341,8 @@ packages: engines: {node: '>=18'} hasBin: true - esbuild@0.24.0: - resolution: {integrity: sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==} + esbuild@0.24.2: + resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==} engines: {node: '>=18'} hasBin: true @@ -2267,10 +2350,6 @@ packages: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} - escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - escape-string-regexp@2.0.0: resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} engines: {node: '>=8'} @@ -2279,43 +2358,9 @@ packages: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} - eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint@8.56.0: - resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. - hasBin: true - - espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - esquery@1.6.0: - resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} - engines: {node: '>=0.10'} - - esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} - - estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} - estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} - esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} - ethereum-cryptography@2.2.1: resolution: {integrity: sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg==} @@ -2323,10 +2368,6 @@ packages: resolution: {integrity: sha512-21YtnZVg4/zKkCQPjrDj38B1r4nQvTZLopUGMLQ1ePU2zV/joCfDC3t3iKQjWRzjjjbzR+mdAIoikeBRNkdllA==} engines: {node: '>=14.0.0'} - event-target-shim@5.0.1: - resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} - engines: {node: '>=6'} - eventemitter3@5.0.1: resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} @@ -2354,22 +2395,12 @@ packages: resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} engines: {node: '>=4'} + fast-content-type-parse@2.0.1: + resolution: {integrity: sha512-nGqtvLrj5w0naR6tDPfB4cUmYCqouzyQiz6C5y/LtcDllJdrcc6WaWW6iXyIIOErTa/XRybj28aasdn4LkVk6Q==} + fast-copy@3.0.2: resolution: {integrity: sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ==} - fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - - fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} - engines: {node: '>=8.6.0'} - - fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - - fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - fast-redact@3.5.0: resolution: {integrity: sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==} engines: {node: '>=6'} @@ -2377,9 +2408,6 @@ packages: fast-safe-stringify@2.1.1: resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} - fastq@1.17.1: - resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} - fdir@6.4.2: resolution: {integrity: sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==} peerDependencies: @@ -2395,18 +2423,10 @@ packages: fflate@0.8.2: resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==} - figures@3.2.0: - resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} - engines: {node: '>=8'} - figures@6.1.0: resolution: {integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==} engines: {node: '>=18'} - file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} - file-uri-to-path@1.0.0: resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} @@ -2418,10 +2438,6 @@ packages: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} - flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} - flat@5.0.2: resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} hasBin: true @@ -2460,6 +2476,10 @@ packages: resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} engines: {node: '>=14.14'} + fs-extra@11.3.0: + resolution: {integrity: sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==} + engines: {node: '>=14.14'} + fs-minipass@2.1.0: resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} engines: {node: '>= 8'} @@ -2520,19 +2540,10 @@ packages: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} - glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} - glob@10.4.5: resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} hasBin: true - glob@11.0.0: - resolution: {integrity: sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==} - engines: {node: 20 || >=22} - hasBin: true - glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported @@ -2546,30 +2557,23 @@ packages: resolution: {integrity: sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==} engines: {node: '>=10.0'} - globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} - globalthis@1.0.4: resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} - globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} - gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} + graceful-fs@4.2.10: resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - handlebars@4.7.8: resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} engines: {node: '>=0.4.7'} @@ -2657,20 +2661,12 @@ packages: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} - idb@8.0.0: - resolution: {integrity: sha512-l//qvlAKGmQO31Qn7xdzagVPPaHTxXx199MhrAFuVBTPqydcPYBWjkrbv4Y0ktB+GmWOiwHl237UUOrLmQxLvw==} + idb@8.0.2: + resolution: {integrity: sha512-CX70rYhx7GDDQzwwQMDwF6kDRQi5vVs6khHUumDrMecBylKkwvZ8HWvKV08AGb7VbpoGCWUQ4aHzNDgoUiOIUg==} ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - ignore@5.3.2: - resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} - engines: {node: '>= 4'} - - import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} - imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} @@ -2713,10 +2709,6 @@ packages: react-devtools-core: optional: true - inquirer@9.2.16: - resolution: {integrity: sha512-qzgbB+yNjgSzk2omeqMDtO9IgJet/UL67luT1MaaggRpGK73DBQct5Q4pipwFQcIKK1GbMODYd4UfsRCkSP1DA==} - engines: {node: '>=18'} - ip-address@9.0.5: resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} engines: {node: '>= 12'} @@ -2777,10 +2769,6 @@ packages: engines: {node: '>=18'} hasBin: true - is-interactive@1.0.0: - resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} - engines: {node: '>=8'} - is-interactive@2.0.0: resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} engines: {node: '>=12'} @@ -2796,10 +2784,6 @@ packages: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} - is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} - is-plain-obj@2.1.0: resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} engines: {node: '>=8'} @@ -2855,10 +2839,6 @@ packages: jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} - jackspeak@4.0.1: - resolution: {integrity: sha512-cub8rahkh0Q/bw1+GxP7aeSe29hHHn2V4m29nnDlvCdlgU+3UGxkZp7Z53jLUdpX3jdTO0nJZUDl3xvbWc2Xog==} - engines: {node: 20 || >=22} - joycon@3.1.1: resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} engines: {node: '>=10'} @@ -2888,15 +2868,6 @@ packages: json-bigint@1.0.0: resolution: {integrity: sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==} - json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - - json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - - json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - json-stringify-safe@5.0.1: resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} @@ -2916,21 +2887,10 @@ packages: resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} engines: {'0': node >= 0.2.0} - keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - kind-of@3.2.2: resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} engines: {node: '>=0.10.0'} - kleur@4.1.5: - resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} - engines: {node: '>=6'} - - levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} - libp2p-crypto@0.21.2: resolution: {integrity: sha512-EXFrhSpiHtJ+/L8xXDvQNK5VjUMG51u878jzZcaT5XhuN/zFg6PWJFnl/qB2Y2j7eMWnvCRP7Kp+ua2H36cG4g==} engines: {node: '>=12.0.0'} @@ -2950,8 +2910,8 @@ packages: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} - lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + lodash.camelcase@4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} lodash.sortby@4.7.0: resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} @@ -2970,6 +2930,9 @@ packages: long@4.0.0: resolution: {integrity: sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==} + long@5.2.4: + resolution: {integrity: sha512-qtzLbJE8hq7VabR3mISmVGtoXP8KGc2Z/AT8OuqlYD7JTR3oqrgwdjnk07wpj1twXxYmgDXgoKVWUG/fReSzHg==} + loose-envify@1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true @@ -3005,18 +2968,6 @@ packages: resolution: {integrity: sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==} engines: {node: '>=10'} - mdast-util-from-markdown@1.3.1: - resolution: {integrity: sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==} - - mdast-util-from-markdown@2.0.1: - resolution: {integrity: sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==} - - mdast-util-to-string@3.2.0: - resolution: {integrity: sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==} - - mdast-util-to-string@4.0.0: - resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} - mdn-data@2.0.30: resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} @@ -3027,140 +2978,6 @@ packages: merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - - micromark-core-commonmark@1.1.0: - resolution: {integrity: sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==} - - micromark-core-commonmark@2.0.1: - resolution: {integrity: sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==} - - micromark-factory-destination@1.1.0: - resolution: {integrity: sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==} - - micromark-factory-destination@2.0.0: - resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==} - - micromark-factory-label@1.1.0: - resolution: {integrity: sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==} - - micromark-factory-label@2.0.0: - resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==} - - micromark-factory-space@1.1.0: - resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==} - - micromark-factory-space@2.0.0: - resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==} - - micromark-factory-title@1.1.0: - resolution: {integrity: sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==} - - micromark-factory-title@2.0.0: - resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==} - - micromark-factory-whitespace@1.1.0: - resolution: {integrity: sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==} - - micromark-factory-whitespace@2.0.0: - resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==} - - micromark-util-character@1.2.0: - resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==} - - micromark-util-character@2.1.0: - resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==} - - micromark-util-chunked@1.1.0: - resolution: {integrity: sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==} - - micromark-util-chunked@2.0.0: - resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==} - - micromark-util-classify-character@1.1.0: - resolution: {integrity: sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==} - - micromark-util-classify-character@2.0.0: - resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==} - - micromark-util-combine-extensions@1.1.0: - resolution: {integrity: sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==} - - micromark-util-combine-extensions@2.0.0: - resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==} - - micromark-util-decode-numeric-character-reference@1.1.0: - resolution: {integrity: sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==} - - micromark-util-decode-numeric-character-reference@2.0.1: - resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==} - - micromark-util-decode-string@1.1.0: - resolution: {integrity: sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==} - - micromark-util-decode-string@2.0.0: - resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==} - - micromark-util-encode@1.1.0: - resolution: {integrity: sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==} - - micromark-util-encode@2.0.0: - resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} - - micromark-util-html-tag-name@1.2.0: - resolution: {integrity: sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==} - - micromark-util-html-tag-name@2.0.0: - resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==} - - micromark-util-normalize-identifier@1.1.0: - resolution: {integrity: sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==} - - micromark-util-normalize-identifier@2.0.0: - resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==} - - micromark-util-resolve-all@1.1.0: - resolution: {integrity: sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==} - - micromark-util-resolve-all@2.0.0: - resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==} - - micromark-util-sanitize-uri@1.2.0: - resolution: {integrity: sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==} - - micromark-util-sanitize-uri@2.0.0: - resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==} - - micromark-util-subtokenize@1.1.0: - resolution: {integrity: sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==} - - micromark-util-subtokenize@2.0.1: - resolution: {integrity: sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==} - - micromark-util-symbol@1.1.0: - resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==} - - micromark-util-symbol@2.0.0: - resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==} - - micromark-util-types@1.1.0: - resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==} - - micromark-util-types@2.0.0: - resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} - - micromark@3.2.0: - resolution: {integrity: sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==} - - micromark@4.0.0: - resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} - - micromatch@4.0.8: - resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} - engines: {node: '>=8.6'} - mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} @@ -3262,10 +3079,6 @@ packages: resolution: {integrity: sha512-qxBgB7Qa2sEQgHFjj0dSigq7fX4k6Saisd5Nelwp2q8mlbAFh5dHV9JTTlF8viYJLSSWgMCZFUom8PJcMNBoJw==} engines: {node: '>= 8'} - mri@1.2.0: - resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} - engines: {node: '>=4'} - mrmime@2.0.0: resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} engines: {node: '>=10'} @@ -3276,10 +3089,6 @@ packages: multiformats@9.9.0: resolution: {integrity: sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==} - mute-stream@1.0.0: - resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - mute-stream@2.0.0: resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} engines: {node: ^18.17.0 || >=20.5.0} @@ -3287,13 +3096,16 @@ packages: mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + nan@2.22.0: + resolution: {integrity: sha512-nbajikzWTMwsW+eSsNm3QwlOs7het9gGJU5dDZzRTQGk03vyBOauxgI4VakDzE0PtsGTmXPsXTbbjVhRwR5mpw==} + nanoid@3.3.7: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - napi-build-utils@1.0.2: - resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} + napi-build-utils@2.0.0: + resolution: {integrity: sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==} napi-maybe-compressed-blob-darwin-arm64@0.0.11: resolution: {integrity: sha512-hZ9ye4z8iMDVPEnx9A/Ag6k7xHX/BcK5Lntw/VANBUm9ioLSuRvHTALG4XaqVDGXo4U2NFDwSLRDyhFPYvqckQ==} @@ -3323,9 +3135,6 @@ packages: resolution: {integrity: sha512-1dj4ET34TfEes0+josVLvwpJe337Jk6txd3XUjVmVs3budSo2eEjvN6pX4myYE1pS4x/k2Av57n/ypRl2u++AQ==} engines: {node: '>= 10'} - natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - negotiator@0.6.4: resolution: {integrity: sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==} engines: {node: '>= 0.6'} @@ -3337,8 +3146,8 @@ packages: resolution: {integrity: sha512-o2zOYiCpzRqSzPj0Zt/dQ/DqZeYoaQ7TUonc/xUPjCGl9WeHpNbxgVvOquXYAaJzI0M9BXV3HTzG0p8IUAbBTQ==} engines: {node: '>= 10.13'} - node-abi@3.71.0: - resolution: {integrity: sha512-SZ40vRiy/+wRTf21hxkkEjPJZpARzUMVcJoQse2EF8qkUWbbO2z7vd5oA/H6bVH6SZQ5STGcu0KRDS7biNRfxw==} + node-abi@3.74.0: + resolution: {integrity: sha512-c5XK0MjkGBrQPGYG24GBADZud0NCbznxNx0ZkS+ebUTrmV1qTDxPxSL8zEAPURXSbLRWVexxmP4986BziahL5w==} engines: {node: '>=10'} node-addon-api@7.1.1: @@ -3429,26 +3238,18 @@ packages: resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} engines: {node: '>=18'} - optionator@0.9.4: - resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} - engines: {node: '>= 0.8.0'} - - ora@5.4.1: - resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} - engines: {node: '>=10'} - - ora@8.1.1: - resolution: {integrity: sha512-YWielGi1XzG1UTvOaCFaNgEnuhZVMSHYkW/FQ7UX8O26PtlpdM84c0f7wLPlkvx2RfiQmnzd61d/MGxmpQeJPw==} + ora@8.2.0: + resolution: {integrity: sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==} engines: {node: '>=18'} os-tmpdir@1.0.2: resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} engines: {node: '>=0.10.0'} - ox@0.1.2: - resolution: {integrity: sha512-ak/8K0Rtphg9vnRJlbOdaX9R7cmxD2MiSthjWGaQdMk3D7hrAlDoM+6Lxn7hN52Za3vrXfZ7enfke/5WjolDww==} + ox@0.6.7: + resolution: {integrity: sha512-17Gk/eFsFRAZ80p5eKqv89a57uXjd3NgIf1CaXojATPBuujVc/fQSVhBeAU9JCRB+k7J50WQAyWTxK19T9GgbA==} peerDependencies: - typescript: '>=5.4.0' + typescript: 5.5.4 peerDependenciesMeta: typescript: optional: true @@ -3465,16 +3266,9 @@ packages: resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} engines: {node: '>=10'} - package-json-from-dist@1.0.0: - resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} - package-json-from-dist@1.0.1: resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} - parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} - parse-json@8.1.0: resolution: {integrity: sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==} engines: {node: '>=18'} @@ -3519,14 +3313,6 @@ packages: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} - path-scurry@2.0.0: - resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} - engines: {node: 20 || >=22} - - path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - pathe@1.1.2: resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} @@ -3555,15 +3341,15 @@ packages: pino-abstract-transport@2.0.0: resolution: {integrity: sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==} - pino-pretty@11.3.0: - resolution: {integrity: sha512-oXwn7ICywaZPHmu3epHGU2oJX4nPmKvHvB/bwrJHlGcbEWaVcotkpyVHMKLKmiVryWYByNp0jpgAcXpFJDXJzA==} + pino-pretty@13.0.0: + resolution: {integrity: sha512-cQBBIVG3YajgoUjo1FdKVRX6t9XPxwB9lcNJVD5GCnNM4Y6T12YYx8c6zEejxQsU0wrg9TwmDulcE9LR7qcJqA==} hasBin: true pino-std-serializers@7.0.0: resolution: {integrity: sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==} - pino@9.5.0: - resolution: {integrity: sha512-xSEmD4pLnV54t0NOUN16yCl7RIB1c5UUOse5HSyEXtBp+FgFQyPeDutc+Q2ZO7/22vImV7VfEjH/1zV2QuqvYw==} + pino@9.6.0: + resolution: {integrity: sha512-i85pKRCt4qMjZ1+L7sy2Ag4t1atFcdbEt76+7iRJn1g2BvsnRMGu9p8pivl9fs63M2kF/A0OacFZhTub+m/qMg==} hasBin: true pirates@4.0.6: @@ -3575,8 +3361,8 @@ packages: engines: {node: '>=18.12'} hasBin: true - polkadot-api@1.7.7: - resolution: {integrity: sha512-W6YmA4LhPVv2xhp5dKHM/lZp0fclpaKvspR0h+TBANNdUpBp5aAxq6qdkPAZ4sWTC6Rfi+j5PZZP88oQweOHWg==} + polkadot-api@1.7.4: + resolution: {integrity: sha512-4O9ThkdrW0HGTSfhSyj8HXyC70OKZ6rgfLFkpS9hqV8PfzUShnYy2GqU7YJJ14MGqRTAF6EdKftKzV2g+j09Ow==} hasBin: true peerDependencies: rxjs: '>=7.8.0' @@ -3607,47 +3393,17 @@ packages: resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} engines: {node: ^10 || ^12 || >=14} - prebuild-install@7.1.2: - resolution: {integrity: sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==} + prebuild-install@7.1.3: + resolution: {integrity: sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==} engines: {node: '>=10'} hasBin: true - prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} - - prettier-plugin-jsdoc@0.3.38: - resolution: {integrity: sha512-h81ZV/nFk5gr3fzWMWzWoz/M/8FneAZxscT7DVSy+5jMIuWYnBFZfSswVKYZyTaZ5r6+6k4hpFTDWhRp85C1tg==} - engines: {node: '>=12.0.0'} - peerDependencies: - prettier: '>=2.1.2' - - prettier-plugin-jsdoc@1.3.2: - resolution: {integrity: sha512-LNi9eq0TjyZn/PUNf/SYQxxUvGg5FLK4alEbi3i/S+2JbMyTu790c/puFueXzx09KP44oWCJ+TaHRyM/a0rKJQ==} - engines: {node: '>=14.13.1 || >=16.0.0'} - peerDependencies: - prettier: ^3.0.0 - - prettier@2.8.8: - resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} - engines: {node: '>=10.13.0'} - hasBin: true - - prettier@3.4.2: - resolution: {integrity: sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==} - engines: {node: '>=14'} - hasBin: true - pretty-ms@9.2.0: resolution: {integrity: sha512-4yf0QO/sllf/1zbZWYnvWw3NxCQwLXKzIj0G849LSufP15BXKM0rbD2Z3wVnkMfjdn/CB0Dpp444gYAACdsplg==} engines: {node: '>=18'} - process-warning@4.0.0: - resolution: {integrity: sha512-/MyYDxttz7DfGMMHiysAsFE4qF+pQYAA8ziO/3NcRVrQ5fSk+Mns4QZA/oRPFzvcqNoVJXQNWNAsdwBXLUkQKw==} - - process@0.11.10: - resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} - engines: {node: '>= 0.6.0'} + process-warning@4.0.1: + resolution: {integrity: sha512-3c2LzQ3rY9d0hc1emcsHhfT9Jwz0cChib/QN89oME2R451w5fy3f0afAhERFZAwrbDU43wk12d0ORBpDVME50Q==} promise-inflight@1.0.1: resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} @@ -3672,6 +3428,10 @@ packages: resolution: {integrity: sha512-5kQWPaJHi1WoCpjTGszzQ32PG2F4+wRY6BmAT4Vfw56Q2FZ4YZzK20xUYQH4YkfehY1e6QSICrJquM6xXZNcrw==} hasBin: true + protobufjs@7.4.0: + resolution: {integrity: sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==} + engines: {node: '>=12.0.0'} + proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} @@ -3691,9 +3451,6 @@ packages: querystringify@2.2.0: resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} - queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - quick-format-unescaped@4.0.4: resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} @@ -3722,17 +3479,13 @@ packages: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} - readable-stream@4.5.2: - resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} - readdirp@4.0.2: - resolution: {integrity: sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==} - engines: {node: '>= 14.16.0'} + readdirp@4.1.1: + resolution: {integrity: sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==} + engines: {node: '>= 14.18.0'} real-require@0.2.0: resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==} @@ -3752,10 +3505,6 @@ packages: requires-port@1.0.0: resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} - resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - resolve-from@5.0.0: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} @@ -3763,10 +3512,6 @@ packages: resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - restore-cursor@3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} - engines: {node: '>=8'} - restore-cursor@4.0.0: resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -3779,20 +3524,11 @@ packages: resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} engines: {node: '>= 4'} - reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rimraf@6.0.1: - resolution: {integrity: sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==} - engines: {node: 20 || >=22} - hasBin: true - rlp@3.0.0: resolution: {integrity: sha512-PD6U2PGk6Vq2spfgiWZdomLvRGDreBLxi5jv5M8EpRo3pU6VEm31KO+HFxE18Q3vgqfDrQ9pZA3FP95rkijNKw==} hasBin: true @@ -3806,26 +3542,20 @@ packages: engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true + rollup@4.34.2: + resolution: {integrity: sha512-sBDUoxZEaqLu9QeNalL8v3jw6WjPku4wfZGyTU7l7m1oC+rpRihXc/n/H+4148ZkGz5Xli8CHMns//fFGKvpIQ==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + rrweb-cssom@0.6.0: resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==} rrweb-cssom@0.7.1: resolution: {integrity: sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==} - run-async@3.0.0: - resolution: {integrity: sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==} - engines: {node: '>=0.12.0'} - - run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - rxjs@7.8.1: resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} - sade@1.8.1: - resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} - engines: {node: '>=6'} - safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} @@ -3856,8 +3586,8 @@ packages: resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} hasBin: true - semver@7.6.3: - resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + semver@7.7.1: + resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==} engines: {node: '>=10'} hasBin: true @@ -3910,10 +3640,6 @@ packages: resolution: {integrity: sha512-BPwJGUeDaDCHihkORDchNyyTvWFhcusy1XMmhEVTQTwGeybFbp8YEmB+njbPnth1FibULBSBVwCQni25XlCUDg==} engines: {node: '>=18'} - slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - slice-ansi@5.0.0: resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} engines: {node: '>=12'} @@ -3929,8 +3655,8 @@ packages: smoldot@2.0.26: resolution: {integrity: sha512-F+qYmH4z2s2FK+CxGj8moYcd1ekSIKH8ywkdqlOz88Dat35iB1DIYL11aILN46YSGMzQW/lbJNS307zBSDN5Ig==} - smoldot@2.0.33: - resolution: {integrity: sha512-EnGqFb2oJSYjR04WsvL4tZNPrkdSiScBk3yQUhvWwJqpJ2bBu8Sq/hQgyVB20J1NxJ6FL0cgldjnGJmH1iQCTg==} + smoldot@2.0.31: + resolution: {integrity: sha512-nkPbjTb1G0hGji0/GwJELIehkXGIDh/X8PK/p3RjnklvUj4NrbdNuKx3K+PFATgbL7dfhSSYoFFdJ7Ql0T7zWQ==} socks-proxy-agent@6.2.1: resolution: {integrity: sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==} @@ -3973,8 +3699,11 @@ packages: spdx-expression-parse@3.0.1: resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} - spdx-license-ids@3.0.20: - resolution: {integrity: sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==} + spdx-license-ids@3.0.21: + resolution: {integrity: sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==} + + split-ca@1.0.1: + resolution: {integrity: sha512-Q5thBSxp5t8WPTTJQS59LrGqOZqOsrhDGDVm8azCqIBjSBd7nd9o2PM+mDulQQkh8h//4U6hFZnc/mul8t5pWQ==} split2@4.2.0: resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} @@ -3986,6 +3715,10 @@ packages: sqlite3@5.1.7: resolution: {integrity: sha512-GGIyOiFaG+TUra3JIfkI/zGP8yZYLPQ0pl1bH+ODjiX57sPhrLU5sQJn1y9bDKZUFYkX1crlrPfSYt0BKKdkog==} + ssh2@1.16.0: + resolution: {integrity: sha512-r1X4KsBGedJqo7h8F5c4Ybpcr5RjyP+aWIG007uBPRjmdQWfEiVLzSK71Zji1B9sKxwaCvD8y8cwSkYrlLiRRg==} + engines: {node: '>=10.16.0'} + ssri@8.0.1: resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==} engines: {node: '>= 8'} @@ -4062,8 +3795,11 @@ packages: table-parser@0.1.3: resolution: {integrity: sha512-LCYeuvqqoPII3lzzYaXKbC3Forb+d2u4bNwhk/9FlivuGRxPE28YEWAYcujeSlLLDlMfvy29+WPybFJZFiKMYg==} - tar-fs@2.1.1: - resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} + tar-fs@2.0.1: + resolution: {integrity: sha512-6tzWDMeroL87uF/+lin46k+Q+46rAJ0SyPGz7OW7wTgblI273hsBqk2C1j0/xNadNLKDTUL9BukSjB7cwgmlPA==} + + tar-fs@2.1.2: + resolution: {integrity: sha512-EsaAXwxmx8UB7FRKqeozqEPop69DXcmYwTQwXvyAPF352HJsPdkVhvTaDPYqfNgruveJIJy3TA2l+2zj8LJIJA==} tar-stream@2.2.0: resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} @@ -4073,9 +3809,6 @@ packages: resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} engines: {node: '>=10'} - text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - thenify-all@1.6.0: resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} engines: {node: '>=0.8'} @@ -4098,6 +3831,9 @@ packages: tinyexec@0.3.1: resolution: {integrity: sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==} + tinyexec@0.3.2: + resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} + tinyglobby@0.2.10: resolution: {integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==} engines: {node: '>=12.0.0'} @@ -4154,12 +3890,6 @@ packages: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true - ts-api-utils@1.4.0: - resolution: {integrity: sha512-032cPxaEKwM+GT3vA5JXNzIaizx388rhsSW79vGRNGXfRRAdEAn2mvk36PvK5HnOchyWZ7afLEXqYCvPCrzuzQ==} - engines: {node: '>=16'} - peerDependencies: - typescript: '>=4.2.0' - ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} @@ -4170,7 +3900,7 @@ packages: '@swc/core': '>=1.2.50' '@swc/wasm': '>=1.2.50' '@types/node': '*' - typescript: '>=2.7' + typescript: 5.5.4 peerDependenciesMeta: '@swc/core': optional: true @@ -4181,7 +3911,7 @@ packages: resolution: {integrity: sha512-ycET2d75EgcX7y8EmG4KiZkLAwUzbY4xRhA6NU0uVbHkY4ZjrAAuzTMxXI85kOwATqPnBI5C/7y7rlpY0xdqHA==} engines: {node: '>=12'} peerDependencies: - typescript: '>=4' + typescript: 5.5.4 tslib@2.7.0: resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} @@ -4189,15 +3919,15 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - tsup@8.3.5: - resolution: {integrity: sha512-Tunf6r6m6tnZsG9GYWndg0z8dEV7fD733VBFzFJ5Vcm1FtlXB8xBD/rtrBi2a3YKEV7hHtxiZtW5EAVADoe1pA==} + tsup@8.3.6: + resolution: {integrity: sha512-XkVtlDV/58S9Ye0JxUUTcrQk4S+EqlOHKzg6Roa62rdjL1nGWNUstG0xgI4vanHdfIpjP448J8vlN0oK6XOJ5g==} engines: {node: '>=18'} hasBin: true peerDependencies: '@microsoft/api-extractor': ^7.36.0 '@swc/core': ^1 postcss: ^8.4.12 - typescript: '>=4.5.0' + typescript: 5.5.4 peerDependenciesMeta: '@microsoft/api-extractor': optional: true @@ -4216,9 +3946,8 @@ packages: tunnel-agent@0.6.0: resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} - type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} + tweetnacl@0.14.5: + resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} type-detect@4.1.0: resolution: {integrity: sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==} @@ -4228,16 +3957,12 @@ packages: resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} engines: {node: '>=10'} - type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - type-fest@0.21.3: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} - type-fest@4.30.0: - resolution: {integrity: sha512-G6zXWS1dLj6eagy6sVhOMQiLtJdxQBHIA9Z6HFUNLOlr6MFOgzV8wvmidtPONfPtEUv0uZsy77XJNzTAfwPDaA==} + type-fest@4.33.0: + resolution: {integrity: sha512-s6zVrxuyKbbAsSAD5ZPTB77q4YIdRctkTbJ2/Dqlinwz+8ooH2gd+YA7VA6Pa93KML9GockVvoxjZ2vHP+mu8g==} engines: {node: '>=16'} typeorm@0.3.20: @@ -4298,13 +4023,8 @@ packages: typeorm-aurora-data-api-driver: optional: true - typescript@5.6.3: - resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} - engines: {node: '>=14.17'} - hasBin: true - - typescript@5.7.2: - resolution: {integrity: sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==} + typescript@5.5.4: + resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} engines: {node: '>=14.17'} hasBin: true @@ -4336,12 +4056,6 @@ packages: unique-slug@2.0.2: resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==} - unist-util-stringify-position@3.0.3: - resolution: {integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==} - - unist-util-stringify-position@4.0.0: - resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} - universal-user-agent@7.0.2: resolution: {integrity: sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q==} @@ -4353,9 +4067,6 @@ packages: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} - uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - url-parse@1.5.10: resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} @@ -4365,13 +4076,12 @@ packages: util@0.12.5: resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} - uuid@9.0.1: - resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + uuid@10.0.0: + resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==} hasBin: true - uvu@0.5.6: - resolution: {integrity: sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==} - engines: {node: '>=8'} + uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} hasBin: true v8-compile-cache-lib@3.0.1: @@ -4380,10 +4090,10 @@ packages: validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} - viem@2.21.45: - resolution: {integrity: sha512-I+On/IiaObQdhDKWU5Rurh6nf3G7reVkAODG5ECIfjsrGQ3EPJnxirUPT4FNV6bWER5iphoG62/TidwuTSOA1A==} + viem@2.22.21: + resolution: {integrity: sha512-CujapStF+F3VP+bKBQOGFk5YHyJKZOY2TGvD1e04CAm8VrtLo3sfTydYW2Rri6LMktqp6ilGB9GvSiZczxvOBQ==} peerDependencies: - typescript: '>=5.0.4' + typescript: 5.5.4 peerDependenciesMeta: typescript: optional: true @@ -4453,9 +4163,6 @@ packages: resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} engines: {node: '>=18'} - wcwidth@1.0.1: - resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} - web-streams-polyfill@3.3.3: resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} engines: {node: '>= 8'} @@ -4468,6 +4175,10 @@ packages: resolution: {integrity: sha512-j5JkAKCtuVMbY3F5PYXBqg1vWrtF4jcyyMY1rlw8a4PV67AkqlepjGgpzWJZd56Mt+TvHy6DA1F/3Id8LatDSQ==} engines: {node: '>=14', npm: '>=6.12.0'} + web3-errors@1.3.1: + resolution: {integrity: sha512-w3NMJujH+ZSW4ltIZZKtdbkbyQEvBzyp3JRn59Ckli0Nz4VMsVq8aF1bLWM7A2kuQ+yVEm3ySeNU+7mSRwx7RQ==} + engines: {node: '>=14', npm: '>=6.12.0'} + web3-eth-abi@4.4.0: resolution: {integrity: sha512-RQzt9W93OgFBwOdNGcc9ulCyYt4zmRAMkKGbEdp3wcN4vmwTlRhh21+akj2ND4bg3C3RUiP4yprYgDEyN0/Fmg==} engines: {node: '>=14', npm: '>=6.12.0'} @@ -4508,6 +4219,10 @@ packages: resolution: {integrity: sha512-YbNqY4zUvIaK2MHr1lQFE53/8t/ejHtJchrWn9zVbFMGXlTsOAbNoIoZWROrg1v+hCBvT2c9z8xt7e/+uz5p1g==} engines: {node: '>=14', npm: '>=6.12.0'} + web3-providers-ws@4.0.7: + resolution: {integrity: sha512-n4Dal9/rQWjS7d6LjyEPM2R458V8blRm0eLJupDEJOOIBhGYlxw5/4FthZZ/cqB7y/sLVi7K09DdYx2MeRtU5w==} + engines: {node: '>=14', npm: '>=6.12.0'} + web3-providers-ws@4.0.8: resolution: {integrity: sha512-goJdgata7v4pyzHRsg9fSegUG4gVnHZSHODhNnn6J93ykHkBI1nz4fjlGpcQLUMi4jAMz6SHl9Ibzs2jj9xqPw==} engines: {node: '>=14', npm: '>=6.12.0'} @@ -4520,6 +4235,10 @@ packages: resolution: {integrity: sha512-aeFPYgvHjsf2yQi3CSQA9Ie4xnmO7VmNkY098rA7AWvhgyjVgIWlrVgZjUn55FXtthbiiTRm/CLriv99UeOfGQ==} engines: {node: '>=14', npm: '>=6.12.0'} + web3-types@1.10.0: + resolution: {integrity: sha512-0IXoaAFtFc8Yin7cCdQfB9ZmjafrbP6BO0f0KT/khMhXKUpoJ6yShrVhiNpyRBo8QQjuOagsWzwSK2H49I7sbw==} + engines: {node: '>=14', npm: '>=6.12.0'} + web3-types@1.9.0: resolution: {integrity: sha512-I520KBPoXqEaM/ybj6xHD1E3gRb8/WdudLQaRBvJNQSSfHuPW9P2sD59mbhm6dsKtnje+T90dIxSyzVVFlEdlg==} engines: {node: '>=14', npm: '>=6.12.0'} @@ -4528,6 +4247,10 @@ packages: resolution: {integrity: sha512-bEFpYEBMf6ER78Uvj2mdsCbaLGLK9kABOsa3TtXOEEhuaMy/RK0KlRkKoZ2vmf/p3hB8e1q5erknZ6Hy7AVp7A==} engines: {node: '>=14', npm: '>=6.12.0'} + web3-utils@4.3.3: + resolution: {integrity: sha512-kZUeCwaQm+RNc2Bf1V3BYbF29lQQKz28L0y+FA4G0lS8IxtJVGi5SeDTUkpwqqkdHHC7JcapPDnyyzJ1lfWlOw==} + engines: {node: '>=14', npm: '>=6.12.0'} + web3-validator@2.0.6: resolution: {integrity: sha512-qn9id0/l1bWmvH4XfnG/JtGKKwut2Vokl6YXP5Kfg424npysmtRLe9DgiNBM9Op7QL/aSiaA0TVXibuIuWcizg==} engines: {node: '>=14', npm: '>=6.12.0'} @@ -4536,9 +4259,6 @@ packages: resolution: {integrity: sha512-0QWDWE4gDWldXb4KWq++K8m/A9zsR0LpJLtVT39/b4OjfdW0d4mE0qAUd3UocxuKTh1eG5pOCfumbGS5l6p1qg==} engines: {node: '>=14.0.0', npm: '>=6.12.0'} - webauthn-p256@0.0.10: - resolution: {integrity: sha512-EeYD+gmIT80YkSIDb2iWq0lq2zbHo1CxHlQTeJ+KkCILWpVy3zASH3ByD4bopzfk0uCwXxLqKGLqp2W4O28VFA==} - webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} @@ -4593,10 +4313,6 @@ packages: engines: {node: '>= 0.10.0'} hasBin: true - word-wrap@1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} - engines: {node: '>=0.10.0'} - wordwrap@1.0.0: resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} @@ -4672,13 +4388,13 @@ packages: yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - yaml@2.4.5: - resolution: {integrity: sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==} + yaml@2.6.0: + resolution: {integrity: sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ==} engines: {node: '>= 14'} hasBin: true - yaml@2.6.0: - resolution: {integrity: sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ==} + yaml@2.7.0: + resolution: {integrity: sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==} engines: {node: '>= 14'} hasBin: true @@ -4721,40 +4437,40 @@ packages: yoga-wasm-web@0.3.3: resolution: {integrity: sha512-N+d4UJSJbt/R3wqY7Coqs5pcV0aUj2j9IaQ3rNj9bVCLld8tTGKRa2USARjnvZJWVx1NDmQev8EknoczaOQDOA==} - zod@3.23.8: - resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} + zod@3.24.1: + resolution: {integrity: sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==} snapshots: - '@acala-network/chopsticks-core@1.0.1': + '@acala-network/chopsticks-core@1.0.2': dependencies: - '@acala-network/chopsticks-executor': 1.0.1 - '@polkadot/rpc-provider': 15.4.1 - '@polkadot/types': 15.4.1 - '@polkadot/types-codec': 15.4.1 - '@polkadot/types-known': 15.4.1 + '@acala-network/chopsticks-executor': 1.0.2 + '@polkadot/rpc-provider': 15.5.1 + '@polkadot/types': 15.5.1 + '@polkadot/types-codec': 15.5.1 + '@polkadot/types-known': 15.5.1 '@polkadot/util': 13.3.1 '@polkadot/util-crypto': 13.3.1(@polkadot/util@13.3.1) comlink: 4.4.2 eventemitter3: 5.0.1 lodash: 4.17.21 lru-cache: 11.0.2 - pino: 9.5.0 - pino-pretty: 11.3.0 + pino: 9.6.0 + pino-pretty: 13.0.0 rxjs: 7.8.1 - zod: 3.23.8 + zod: 3.24.1 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - '@acala-network/chopsticks-db@1.0.1(ts-node@10.9.2(@types/node@22.10.5)(typescript@5.6.3))': + '@acala-network/chopsticks-db@1.0.2(ts-node@10.9.2(@types/node@22.10.5)(typescript@5.5.4))': dependencies: - '@acala-network/chopsticks-core': 1.0.1 + '@acala-network/chopsticks-core': 1.0.2 '@polkadot/util': 13.3.1 - idb: 8.0.0 + idb: 8.0.2 sqlite3: 5.1.7 - typeorm: 0.3.20(sqlite3@5.1.7)(ts-node@10.9.2(@types/node@22.10.5)(typescript@5.6.3)) + typeorm: 0.3.20(sqlite3@5.1.7)(ts-node@10.9.2(@types/node@22.10.5)(typescript@5.5.4)) transitivePeerDependencies: - '@google-cloud/spanner' - '@sap/hana-client' @@ -4777,32 +4493,76 @@ snapshots: - typeorm-aurora-data-api-driver - utf-8-validate - '@acala-network/chopsticks-executor@1.0.1': + '@acala-network/chopsticks-executor@1.0.2': dependencies: '@polkadot/util': 13.3.1 '@polkadot/wasm-util': 7.4.1(@polkadot/util@13.3.1) - '@acala-network/chopsticks@1.0.1(debug@4.3.7)(ts-node@10.9.2(@types/node@22.10.5)(typescript@5.6.3))': + '@acala-network/chopsticks@1.0.2(debug@4.3.7)(ts-node@10.9.2(@types/node@22.10.5)(typescript@5.5.4))': dependencies: - '@acala-network/chopsticks-core': 1.0.1 - '@acala-network/chopsticks-db': 1.0.1(ts-node@10.9.2(@types/node@22.10.5)(typescript@5.6.3)) + '@acala-network/chopsticks-core': 1.0.2 + '@acala-network/chopsticks-db': 1.0.2(ts-node@10.9.2(@types/node@22.10.5)(typescript@5.5.4)) '@pnpm/npm-conf': 2.3.1 - '@polkadot/api': 15.4.1 - '@polkadot/api-augment': 15.4.1 - '@polkadot/rpc-provider': 15.4.1 - '@polkadot/types': 15.4.1 + '@polkadot/api': 15.5.1 + '@polkadot/api-augment': 15.5.1 + '@polkadot/rpc-provider': 15.5.1 + '@polkadot/types': 15.5.1 '@polkadot/util': 13.3.1 '@polkadot/util-crypto': 13.3.1(@polkadot/util@13.3.1) - axios: 1.7.7(debug@4.3.7) + axios: 1.7.9(debug@4.3.7) comlink: 4.4.2 - dotenv: 16.4.5 + dotenv: 16.4.7 + global-agent: 3.0.0 + js-yaml: 4.1.0 + jsondiffpatch: 0.5.0 + lodash: 4.17.21 + ws: 8.18.0 + yargs: 17.7.2 + zod: 3.24.1 + transitivePeerDependencies: + - '@google-cloud/spanner' + - '@sap/hana-client' + - better-sqlite3 + - bluebird + - bufferutil + - debug + - hdb-pool + - ioredis + - mongodb + - mssql + - mysql2 + - oracledb + - pg + - pg-native + - pg-query-stream + - redis + - sql.js + - supports-color + - ts-node + - typeorm-aurora-data-api-driver + - utf-8-validate + + '@acala-network/chopsticks@1.0.2(debug@4.4.0)(ts-node@10.9.2(@types/node@22.10.5)(typescript@5.5.4))': + dependencies: + '@acala-network/chopsticks-core': 1.0.2 + '@acala-network/chopsticks-db': 1.0.2(ts-node@10.9.2(@types/node@22.10.5)(typescript@5.5.4)) + '@pnpm/npm-conf': 2.3.1 + '@polkadot/api': 15.5.1 + '@polkadot/api-augment': 15.5.1 + '@polkadot/rpc-provider': 15.5.1 + '@polkadot/types': 15.5.1 + '@polkadot/util': 13.3.1 + '@polkadot/util-crypto': 13.3.1(@polkadot/util@13.3.1) + axios: 1.7.9(debug@4.4.0) + comlink: 4.4.2 + dotenv: 16.4.7 global-agent: 3.0.0 js-yaml: 4.1.0 jsondiffpatch: 0.5.0 lodash: 4.17.21 ws: 8.18.0 yargs: 17.7.2 - zod: 3.23.8 + zod: 3.24.1 transitivePeerDependencies: - '@google-cloud/spanner' - '@sap/hana-client' @@ -4849,6 +4609,43 @@ snapshots: '@babel/helper-validator-identifier@7.25.9': {} + '@balena/dockerignore@1.0.2': {} + + '@biomejs/biome@1.9.4': + optionalDependencies: + '@biomejs/cli-darwin-arm64': 1.9.4 + '@biomejs/cli-darwin-x64': 1.9.4 + '@biomejs/cli-linux-arm64': 1.9.4 + '@biomejs/cli-linux-arm64-musl': 1.9.4 + '@biomejs/cli-linux-x64': 1.9.4 + '@biomejs/cli-linux-x64-musl': 1.9.4 + '@biomejs/cli-win32-arm64': 1.9.4 + '@biomejs/cli-win32-x64': 1.9.4 + + '@biomejs/cli-darwin-arm64@1.9.4': + optional: true + + '@biomejs/cli-darwin-x64@1.9.4': + optional: true + + '@biomejs/cli-linux-arm64-musl@1.9.4': + optional: true + + '@biomejs/cli-linux-arm64@1.9.4': + optional: true + + '@biomejs/cli-linux-x64-musl@1.9.4': + optional: true + + '@biomejs/cli-linux-x64@1.9.4': + optional: true + + '@biomejs/cli-win32-arm64@1.9.4': + optional: true + + '@biomejs/cli-win32-x64@1.9.4': + optional: true + '@colors/colors@1.5.0': optional: true @@ -4866,7 +4663,7 @@ snapshots: '@esbuild/aix-ppc64@0.23.1': optional: true - '@esbuild/aix-ppc64@0.24.0': + '@esbuild/aix-ppc64@0.24.2': optional: true '@esbuild/android-arm64@0.21.5': @@ -4875,7 +4672,7 @@ snapshots: '@esbuild/android-arm64@0.23.1': optional: true - '@esbuild/android-arm64@0.24.0': + '@esbuild/android-arm64@0.24.2': optional: true '@esbuild/android-arm@0.21.5': @@ -4884,7 +4681,7 @@ snapshots: '@esbuild/android-arm@0.23.1': optional: true - '@esbuild/android-arm@0.24.0': + '@esbuild/android-arm@0.24.2': optional: true '@esbuild/android-x64@0.21.5': @@ -4893,7 +4690,7 @@ snapshots: '@esbuild/android-x64@0.23.1': optional: true - '@esbuild/android-x64@0.24.0': + '@esbuild/android-x64@0.24.2': optional: true '@esbuild/darwin-arm64@0.21.5': @@ -4902,7 +4699,7 @@ snapshots: '@esbuild/darwin-arm64@0.23.1': optional: true - '@esbuild/darwin-arm64@0.24.0': + '@esbuild/darwin-arm64@0.24.2': optional: true '@esbuild/darwin-x64@0.21.5': @@ -4911,7 +4708,7 @@ snapshots: '@esbuild/darwin-x64@0.23.1': optional: true - '@esbuild/darwin-x64@0.24.0': + '@esbuild/darwin-x64@0.24.2': optional: true '@esbuild/freebsd-arm64@0.21.5': @@ -4920,7 +4717,7 @@ snapshots: '@esbuild/freebsd-arm64@0.23.1': optional: true - '@esbuild/freebsd-arm64@0.24.0': + '@esbuild/freebsd-arm64@0.24.2': optional: true '@esbuild/freebsd-x64@0.21.5': @@ -4929,7 +4726,7 @@ snapshots: '@esbuild/freebsd-x64@0.23.1': optional: true - '@esbuild/freebsd-x64@0.24.0': + '@esbuild/freebsd-x64@0.24.2': optional: true '@esbuild/linux-arm64@0.21.5': @@ -4938,7 +4735,7 @@ snapshots: '@esbuild/linux-arm64@0.23.1': optional: true - '@esbuild/linux-arm64@0.24.0': + '@esbuild/linux-arm64@0.24.2': optional: true '@esbuild/linux-arm@0.21.5': @@ -4947,7 +4744,7 @@ snapshots: '@esbuild/linux-arm@0.23.1': optional: true - '@esbuild/linux-arm@0.24.0': + '@esbuild/linux-arm@0.24.2': optional: true '@esbuild/linux-ia32@0.21.5': @@ -4956,7 +4753,7 @@ snapshots: '@esbuild/linux-ia32@0.23.1': optional: true - '@esbuild/linux-ia32@0.24.0': + '@esbuild/linux-ia32@0.24.2': optional: true '@esbuild/linux-loong64@0.21.5': @@ -4965,7 +4762,7 @@ snapshots: '@esbuild/linux-loong64@0.23.1': optional: true - '@esbuild/linux-loong64@0.24.0': + '@esbuild/linux-loong64@0.24.2': optional: true '@esbuild/linux-mips64el@0.21.5': @@ -4974,7 +4771,7 @@ snapshots: '@esbuild/linux-mips64el@0.23.1': optional: true - '@esbuild/linux-mips64el@0.24.0': + '@esbuild/linux-mips64el@0.24.2': optional: true '@esbuild/linux-ppc64@0.21.5': @@ -4983,7 +4780,7 @@ snapshots: '@esbuild/linux-ppc64@0.23.1': optional: true - '@esbuild/linux-ppc64@0.24.0': + '@esbuild/linux-ppc64@0.24.2': optional: true '@esbuild/linux-riscv64@0.21.5': @@ -4992,7 +4789,7 @@ snapshots: '@esbuild/linux-riscv64@0.23.1': optional: true - '@esbuild/linux-riscv64@0.24.0': + '@esbuild/linux-riscv64@0.24.2': optional: true '@esbuild/linux-s390x@0.21.5': @@ -5001,7 +4798,7 @@ snapshots: '@esbuild/linux-s390x@0.23.1': optional: true - '@esbuild/linux-s390x@0.24.0': + '@esbuild/linux-s390x@0.24.2': optional: true '@esbuild/linux-x64@0.21.5': @@ -5010,7 +4807,10 @@ snapshots: '@esbuild/linux-x64@0.23.1': optional: true - '@esbuild/linux-x64@0.24.0': + '@esbuild/linux-x64@0.24.2': + optional: true + + '@esbuild/netbsd-arm64@0.24.2': optional: true '@esbuild/netbsd-x64@0.21.5': @@ -5019,13 +4819,13 @@ snapshots: '@esbuild/netbsd-x64@0.23.1': optional: true - '@esbuild/netbsd-x64@0.24.0': + '@esbuild/netbsd-x64@0.24.2': optional: true '@esbuild/openbsd-arm64@0.23.1': optional: true - '@esbuild/openbsd-arm64@0.24.0': + '@esbuild/openbsd-arm64@0.24.2': optional: true '@esbuild/openbsd-x64@0.21.5': @@ -5034,7 +4834,7 @@ snapshots: '@esbuild/openbsd-x64@0.23.1': optional: true - '@esbuild/openbsd-x64@0.24.0': + '@esbuild/openbsd-x64@0.24.2': optional: true '@esbuild/sunos-x64@0.21.5': @@ -5043,7 +4843,7 @@ snapshots: '@esbuild/sunos-x64@0.23.1': optional: true - '@esbuild/sunos-x64@0.24.0': + '@esbuild/sunos-x64@0.24.2': optional: true '@esbuild/win32-arm64@0.21.5': @@ -5052,7 +4852,7 @@ snapshots: '@esbuild/win32-arm64@0.23.1': optional: true - '@esbuild/win32-arm64@0.24.0': + '@esbuild/win32-arm64@0.24.2': optional: true '@esbuild/win32-ia32@0.21.5': @@ -5061,7 +4861,7 @@ snapshots: '@esbuild/win32-ia32@0.23.1': optional: true - '@esbuild/win32-ia32@0.24.0': + '@esbuild/win32-ia32@0.24.2': optional: true '@esbuild/win32-x64@0.21.5': @@ -5070,32 +4870,9 @@ snapshots: '@esbuild/win32-x64@0.23.1': optional: true - '@esbuild/win32-x64@0.24.0': + '@esbuild/win32-x64@0.24.2': optional: true - '@eslint-community/eslint-utils@4.4.1(eslint@8.56.0)': - dependencies: - eslint: 8.56.0 - eslint-visitor-keys: 3.4.3 - - '@eslint-community/regexpp@4.12.1': {} - - '@eslint/eslintrc@2.1.4': - dependencies: - ajv: 6.12.6 - debug: 4.3.7(supports-color@8.1.1) - espree: 9.6.1 - globals: 13.24.0 - ignore: 5.3.2 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - - '@eslint/js@8.56.0': {} - '@ethereumjs/rlp@4.0.1': {} '@ethereumjs/rlp@5.0.2': {} @@ -5103,122 +4880,132 @@ snapshots: '@gar/promisify@1.1.3': optional: true - '@humanwhocodes/config-array@0.11.14': + '@grpc/grpc-js@1.12.5': dependencies: - '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.7(supports-color@8.1.1) - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - - '@humanwhocodes/module-importer@1.0.1': {} + '@grpc/proto-loader': 0.7.13 + '@js-sdsl/ordered-map': 4.4.2 - '@humanwhocodes/object-schema@2.0.3': {} + '@grpc/proto-loader@0.7.13': + dependencies: + lodash.camelcase: 4.3.0 + long: 5.2.4 + protobufjs: 7.4.0 + yargs: 17.7.2 - '@inquirer/checkbox@4.0.3(@types/node@22.10.5)': + '@inquirer/checkbox@4.1.1(@types/node@22.10.5)': dependencies: - '@inquirer/core': 10.1.1(@types/node@22.10.5) - '@inquirer/figures': 1.0.8 - '@inquirer/type': 3.0.1(@types/node@22.10.5) - '@types/node': 22.10.5 + '@inquirer/core': 10.1.6(@types/node@22.10.5) + '@inquirer/figures': 1.0.10 + '@inquirer/type': 3.0.4(@types/node@22.10.5) ansi-escapes: 4.3.2 yoctocolors-cjs: 2.1.2 + optionalDependencies: + '@types/node': 22.10.5 - '@inquirer/confirm@5.1.0(@types/node@22.10.5)': + '@inquirer/confirm@5.1.5(@types/node@22.10.5)': dependencies: - '@inquirer/core': 10.1.1(@types/node@22.10.5) - '@inquirer/type': 3.0.1(@types/node@22.10.5) + '@inquirer/core': 10.1.6(@types/node@22.10.5) + '@inquirer/type': 3.0.4(@types/node@22.10.5) + optionalDependencies: '@types/node': 22.10.5 - '@inquirer/core@10.1.1(@types/node@22.10.5)': + '@inquirer/core@10.1.6(@types/node@22.10.5)': dependencies: - '@inquirer/figures': 1.0.8 - '@inquirer/type': 3.0.1(@types/node@22.10.5) + '@inquirer/figures': 1.0.10 + '@inquirer/type': 3.0.4(@types/node@22.10.5) ansi-escapes: 4.3.2 cli-width: 4.1.0 mute-stream: 2.0.0 signal-exit: 4.1.0 - strip-ansi: 6.0.1 wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.2 - transitivePeerDependencies: - - '@types/node' + optionalDependencies: + '@types/node': 22.10.5 - '@inquirer/editor@4.2.0(@types/node@22.10.5)': + '@inquirer/editor@4.2.6(@types/node@22.10.5)': dependencies: - '@inquirer/core': 10.1.1(@types/node@22.10.5) - '@inquirer/type': 3.0.1(@types/node@22.10.5) - '@types/node': 22.10.5 + '@inquirer/core': 10.1.6(@types/node@22.10.5) + '@inquirer/type': 3.0.4(@types/node@22.10.5) external-editor: 3.1.0 + optionalDependencies: + '@types/node': 22.10.5 - '@inquirer/expand@4.0.3(@types/node@22.10.5)': + '@inquirer/expand@4.0.8(@types/node@22.10.5)': dependencies: - '@inquirer/core': 10.1.1(@types/node@22.10.5) - '@inquirer/type': 3.0.1(@types/node@22.10.5) - '@types/node': 22.10.5 + '@inquirer/core': 10.1.6(@types/node@22.10.5) + '@inquirer/type': 3.0.4(@types/node@22.10.5) yoctocolors-cjs: 2.1.2 + optionalDependencies: + '@types/node': 22.10.5 - '@inquirer/figures@1.0.8': {} + '@inquirer/figures@1.0.10': {} - '@inquirer/input@4.1.0(@types/node@22.10.5)': + '@inquirer/input@4.1.5(@types/node@22.10.5)': dependencies: - '@inquirer/core': 10.1.1(@types/node@22.10.5) - '@inquirer/type': 3.0.1(@types/node@22.10.5) + '@inquirer/core': 10.1.6(@types/node@22.10.5) + '@inquirer/type': 3.0.4(@types/node@22.10.5) + optionalDependencies: '@types/node': 22.10.5 - '@inquirer/number@3.0.3(@types/node@22.10.5)': + '@inquirer/number@3.0.8(@types/node@22.10.5)': dependencies: - '@inquirer/core': 10.1.1(@types/node@22.10.5) - '@inquirer/type': 3.0.1(@types/node@22.10.5) + '@inquirer/core': 10.1.6(@types/node@22.10.5) + '@inquirer/type': 3.0.4(@types/node@22.10.5) + optionalDependencies: '@types/node': 22.10.5 - '@inquirer/password@4.0.3(@types/node@22.10.5)': + '@inquirer/password@4.0.8(@types/node@22.10.5)': dependencies: - '@inquirer/core': 10.1.1(@types/node@22.10.5) - '@inquirer/type': 3.0.1(@types/node@22.10.5) - '@types/node': 22.10.5 + '@inquirer/core': 10.1.6(@types/node@22.10.5) + '@inquirer/type': 3.0.4(@types/node@22.10.5) ansi-escapes: 4.3.2 + optionalDependencies: + '@types/node': 22.10.5 - '@inquirer/prompts@7.2.0(@types/node@22.10.5)': - dependencies: - '@inquirer/checkbox': 4.0.3(@types/node@22.10.5) - '@inquirer/confirm': 5.1.0(@types/node@22.10.5) - '@inquirer/editor': 4.2.0(@types/node@22.10.5) - '@inquirer/expand': 4.0.3(@types/node@22.10.5) - '@inquirer/input': 4.1.0(@types/node@22.10.5) - '@inquirer/number': 3.0.3(@types/node@22.10.5) - '@inquirer/password': 4.0.3(@types/node@22.10.5) - '@inquirer/rawlist': 4.0.3(@types/node@22.10.5) - '@inquirer/search': 3.0.3(@types/node@22.10.5) - '@inquirer/select': 4.0.3(@types/node@22.10.5) + '@inquirer/prompts@7.3.1(@types/node@22.10.5)': + dependencies: + '@inquirer/checkbox': 4.1.1(@types/node@22.10.5) + '@inquirer/confirm': 5.1.5(@types/node@22.10.5) + '@inquirer/editor': 4.2.6(@types/node@22.10.5) + '@inquirer/expand': 4.0.8(@types/node@22.10.5) + '@inquirer/input': 4.1.5(@types/node@22.10.5) + '@inquirer/number': 3.0.8(@types/node@22.10.5) + '@inquirer/password': 4.0.8(@types/node@22.10.5) + '@inquirer/rawlist': 4.0.8(@types/node@22.10.5) + '@inquirer/search': 3.0.8(@types/node@22.10.5) + '@inquirer/select': 4.0.8(@types/node@22.10.5) + optionalDependencies: '@types/node': 22.10.5 - '@inquirer/rawlist@4.0.3(@types/node@22.10.5)': + '@inquirer/rawlist@4.0.8(@types/node@22.10.5)': dependencies: - '@inquirer/core': 10.1.1(@types/node@22.10.5) - '@inquirer/type': 3.0.1(@types/node@22.10.5) - '@types/node': 22.10.5 + '@inquirer/core': 10.1.6(@types/node@22.10.5) + '@inquirer/type': 3.0.4(@types/node@22.10.5) yoctocolors-cjs: 2.1.2 + optionalDependencies: + '@types/node': 22.10.5 - '@inquirer/search@3.0.3(@types/node@22.10.5)': + '@inquirer/search@3.0.8(@types/node@22.10.5)': dependencies: - '@inquirer/core': 10.1.1(@types/node@22.10.5) - '@inquirer/figures': 1.0.8 - '@inquirer/type': 3.0.1(@types/node@22.10.5) - '@types/node': 22.10.5 + '@inquirer/core': 10.1.6(@types/node@22.10.5) + '@inquirer/figures': 1.0.10 + '@inquirer/type': 3.0.4(@types/node@22.10.5) yoctocolors-cjs: 2.1.2 + optionalDependencies: + '@types/node': 22.10.5 - '@inquirer/select@4.0.3(@types/node@22.10.5)': + '@inquirer/select@4.0.8(@types/node@22.10.5)': dependencies: - '@inquirer/core': 10.1.1(@types/node@22.10.5) - '@inquirer/figures': 1.0.8 - '@inquirer/type': 3.0.1(@types/node@22.10.5) - '@types/node': 22.10.5 + '@inquirer/core': 10.1.6(@types/node@22.10.5) + '@inquirer/figures': 1.0.10 + '@inquirer/type': 3.0.4(@types/node@22.10.5) ansi-escapes: 4.3.2 yoctocolors-cjs: 2.1.2 + optionalDependencies: + '@types/node': 22.10.5 - '@inquirer/type@3.0.1(@types/node@22.10.5)': - dependencies: + '@inquirer/type@3.0.4(@types/node@22.10.5)': + optionalDependencies: '@types/node': 22.10.5 '@isaacs/cliui@8.0.2': @@ -5230,7 +5017,7 @@ snapshots: wrap-ansi: 8.1.0 wrap-ansi-cjs: wrap-ansi@7.0.0 - '@jridgewell/gen-mapping@0.3.5': + '@jridgewell/gen-mapping@0.3.8': dependencies: '@jridgewell/set-array': 1.2.1 '@jridgewell/sourcemap-codec': 1.5.0 @@ -5252,72 +5039,99 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 - '@ljharb/through@2.3.13': - dependencies: - call-bind: 1.0.7 + '@js-sdsl/ordered-map@4.4.2': {} - '@moonbeam-network/api-augment@0.3200.3': + '@moonbeam-network/api-augment@0.3401.2(postcss@8.4.49)(yaml@2.7.0)': dependencies: - '@polkadot/api': 15.4.1 - '@polkadot/api-base': 15.4.1 - '@polkadot/rpc-core': 15.4.1 - '@polkadot/typegen': 15.4.1 - '@polkadot/types': 15.4.1 - '@polkadot/types-codec': 15.4.1 + '@biomejs/biome': 1.9.4 + '@moonbeam-network/types-bundle': 1.0.2(postcss@8.4.49)(tsx@4.19.2)(yaml@2.7.0) + '@polkadot/api': 15.5.1 + '@polkadot/api-base': 15.5.1 + '@polkadot/rpc-core': 15.5.1 + '@polkadot/typegen': 15.5.1 + '@polkadot/types': 15.5.1 + '@polkadot/types-codec': 15.5.1 '@types/node': 22.10.5 - prettier: 2.8.8 - prettier-plugin-jsdoc: 0.3.38(prettier@2.8.8) + tsup: 8.3.6(postcss@8.4.49)(tsx@4.19.2)(typescript@5.5.4)(yaml@2.7.0) tsx: 4.19.2 - typescript: 5.6.3 + typescript: 5.5.4 transitivePeerDependencies: + - '@microsoft/api-extractor' + - '@swc/core' - bufferutil + - jiti + - postcss + - supports-color + - utf-8-validate + - yaml + + '@moonbeam-network/types-bundle@1.0.2(postcss@8.4.49)(tsx@4.19.2)(yaml@2.7.0)': + dependencies: + '@biomejs/biome': 1.9.4 + '@polkadot/api': 15.5.1 + '@polkadot/api-base': 15.5.1 + '@polkadot/rpc-core': 15.5.1 + '@polkadot/typegen': 15.5.1 + '@polkadot/types': 15.5.1 + '@polkadot/types-codec': 15.5.1 + tsup: 8.3.6(postcss@8.4.49)(tsx@4.19.2)(typescript@5.5.4)(yaml@2.7.0) + typescript: 5.5.4 + transitivePeerDependencies: + - '@microsoft/api-extractor' + - '@swc/core' + - bufferutil + - jiti + - postcss - supports-color + - tsx - utf-8-validate + - yaml - '@moonwall/cli@5.9.1(@types/node@22.10.5)(chokidar@3.6.0)(encoding@0.1.13)(jsdom@23.2.0)(postcss@8.4.49)(rxjs@7.8.1)(ts-node@10.9.2(@types/node@22.10.5)(typescript@5.6.3))(tsx@4.19.2)(typescript@5.6.3)(zod@3.23.8)': + '@moonwall/cli@5.10.0(@types/node@22.10.5)(chokidar@3.6.0)(encoding@0.1.13)(jsdom@23.2.0)(postcss@8.4.49)(rxjs@7.8.1)(ts-node@10.9.2(@types/node@22.10.5)(typescript@5.5.4))(tsx@4.19.2)(typescript@5.5.4)(zod@3.24.1)': dependencies: - '@acala-network/chopsticks': 1.0.1(debug@4.3.7)(ts-node@10.9.2(@types/node@22.10.5)(typescript@5.6.3)) - '@inquirer/prompts': 7.2.0(@types/node@22.10.5) - '@moonbeam-network/api-augment': 0.3200.3 - '@moonwall/types': 5.9.1(@vitest/ui@2.1.5)(chokidar@3.6.0)(encoding@0.1.13)(jsdom@23.2.0)(postcss@8.4.49)(rxjs@7.8.1)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.4.5)(zod@3.23.8) - '@moonwall/util': 5.9.1(@types/node@22.10.5)(@vitest/ui@2.1.5)(chokidar@3.6.0)(encoding@0.1.13)(jsdom@23.2.0)(postcss@8.4.49)(rxjs@7.8.1)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.4.5)(zod@3.23.8) - '@octokit/rest': 21.0.2 - '@polkadot/api': 15.4.1 - '@polkadot/api-derive': 15.4.1 + '@acala-network/chopsticks': 1.0.2(debug@4.4.0)(ts-node@10.9.2(@types/node@22.10.5)(typescript@5.5.4)) + '@inquirer/prompts': 7.3.1(@types/node@22.10.5) + '@moonbeam-network/api-augment': 0.3401.2(postcss@8.4.49)(yaml@2.7.0) + '@moonwall/types': 5.10.0(@vitest/ui@2.1.5)(chokidar@3.6.0)(encoding@0.1.13)(jsdom@23.2.0)(postcss@8.4.49)(rxjs@7.8.1)(tsx@4.19.2)(typescript@5.5.4)(yaml@2.7.0)(zod@3.24.1) + '@moonwall/util': 5.10.0(@types/node@22.10.5)(@vitest/ui@2.1.5)(chokidar@3.6.0)(encoding@0.1.13)(jsdom@23.2.0)(postcss@8.4.49)(rxjs@7.8.1)(tsx@4.19.2)(typescript@5.5.4)(yaml@2.7.0)(zod@3.24.1) + '@octokit/rest': 21.1.0 + '@polkadot/api': 15.5.1 + '@polkadot/api-derive': 15.5.1 '@polkadot/keyring': 13.3.1(@polkadot/util-crypto@13.3.1(@polkadot/util@13.3.1))(@polkadot/util@13.3.1) - '@polkadot/types': 15.4.1 - '@polkadot/types-codec': 15.4.1 + '@polkadot/types': 15.5.1 + '@polkadot/types-codec': 15.5.1 '@polkadot/util': 13.3.1 '@polkadot/util-crypto': 13.3.1(@polkadot/util@13.3.1) - '@types/react': 18.3.14 + '@types/react': 18.3.12 '@types/tmp': 0.2.6 '@vitest/ui': 2.1.5(vitest@2.1.5) - '@zombienet/orchestrator': 0.0.97(@polkadot/util@13.3.1)(@types/node@22.10.5)(chokidar@3.6.0) - '@zombienet/utils': 0.0.25(@types/node@22.10.5)(chokidar@3.6.0)(typescript@5.6.3) + '@zombienet/orchestrator': 0.0.98(@polkadot/util@13.3.1)(@types/node@22.10.5)(chokidar@3.6.0) + '@zombienet/utils': 0.0.25(@types/node@22.10.5)(chokidar@3.6.0)(typescript@5.5.4) bottleneck: 2.19.5 cfonts: 3.3.0 chalk: 5.3.0 clear: 0.1.0 cli-progress: 3.12.0 colors: 1.4.0 - debug: 4.3.7(supports-color@8.1.1) - dotenv: 16.4.5 + debug: 4.4.0 + dockerode: 4.0.4 + dotenv: 16.4.7 ethers: 6.13.4 get-port: 7.1.0 - ink: 5.1.0(@types/react@18.3.14)(react@18.3.1) + ink: 5.1.0(@types/react@18.3.12)(react@18.3.1) jsonc-parser: 3.3.1 - minimatch: 9.0.5 - polkadot-api: 1.7.7(postcss@8.4.49)(rxjs@7.8.1)(tsx@4.19.2)(yaml@2.4.5) + minimatch: 10.0.1 + polkadot-api: 1.7.4(postcss@8.4.49)(rxjs@7.8.1)(tsx@4.19.2)(yaml@2.7.0) react: 18.3.1 - semver: 7.6.3 + semver: 7.7.1 tiny-invariant: 1.3.3 tmp: 0.2.3 - viem: 2.21.45(typescript@5.6.3)(zod@3.23.8) + viem: 2.22.21(typescript@5.5.4)(zod@3.24.1) vitest: 2.1.5(@types/node@22.10.5)(@vitest/ui@2.1.5)(jsdom@23.2.0) - web3: 4.15.0(encoding@0.1.13)(typescript@5.6.3)(zod@3.23.8) - web3-providers-ws: 4.0.8 + web3: 4.15.0(encoding@0.1.13)(typescript@5.5.4)(zod@3.24.1) + web3-providers-ws: 4.0.7 ws: 8.18.0 - yaml: 2.4.5 + yaml: 2.7.0 yargs: 17.7.2 transitivePeerDependencies: - '@edge-runtime/vm' @@ -5367,23 +5181,23 @@ snapshots: - utf-8-validate - zod - '@moonwall/types@5.9.1(@vitest/ui@2.1.5)(chokidar@3.6.0)(encoding@0.1.13)(jsdom@23.2.0)(postcss@8.4.49)(rxjs@7.8.1)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.4.5)(zod@3.23.8)': + '@moonwall/types@5.10.0(@vitest/ui@2.1.5)(chokidar@3.6.0)(encoding@0.1.13)(jsdom@23.2.0)(postcss@8.4.49)(rxjs@7.8.1)(tsx@4.19.2)(typescript@5.5.4)(yaml@2.7.0)(zod@3.24.1)': dependencies: - '@polkadot/api': 15.4.1 - '@polkadot/api-base': 15.4.1 + '@polkadot/api': 15.5.1 + '@polkadot/api-base': 15.5.1 '@polkadot/keyring': 13.3.1(@polkadot/util-crypto@13.3.1(@polkadot/util@13.3.1))(@polkadot/util@13.3.1) - '@polkadot/types': 15.4.1 + '@polkadot/types': 15.5.1 '@polkadot/util': 13.3.1 '@polkadot/util-crypto': 13.3.1(@polkadot/util@13.3.1) '@types/node': 22.10.5 - '@zombienet/utils': 0.0.25(@types/node@22.10.5)(chokidar@3.6.0)(typescript@5.6.3) + '@zombienet/utils': 0.0.25(@types/node@22.10.5)(chokidar@3.6.0)(typescript@5.5.4) bottleneck: 2.19.5 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0 ethers: 6.13.4 - polkadot-api: 1.7.7(postcss@8.4.49)(rxjs@7.8.1)(tsx@4.19.2)(yaml@2.4.5) - viem: 2.21.45(typescript@5.6.3)(zod@3.23.8) + polkadot-api: 1.7.4(postcss@8.4.49)(rxjs@7.8.1)(tsx@4.19.2)(yaml@2.7.0) + viem: 2.22.21(typescript@5.5.4)(zod@3.24.1) vitest: 2.1.5(@types/node@22.10.5)(@vitest/ui@2.1.5)(jsdom@23.2.0) - web3: 4.15.0(encoding@0.1.13)(typescript@5.6.3)(zod@3.23.8) + web3: 4.15.0(encoding@0.1.13)(typescript@5.5.4)(zod@3.24.1) transitivePeerDependencies: - '@edge-runtime/vm' - '@microsoft/api-extractor' @@ -5414,32 +5228,31 @@ snapshots: - yaml - zod - '@moonwall/util@5.9.1(@types/node@22.10.5)(@vitest/ui@2.1.5)(chokidar@3.6.0)(encoding@0.1.13)(jsdom@23.2.0)(postcss@8.4.49)(rxjs@7.8.1)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.4.5)(zod@3.23.8)': + '@moonwall/util@5.10.0(@types/node@22.10.5)(@vitest/ui@2.1.5)(chokidar@3.6.0)(encoding@0.1.13)(jsdom@23.2.0)(postcss@8.4.49)(rxjs@7.8.1)(tsx@4.19.2)(typescript@5.5.4)(yaml@2.7.0)(zod@3.24.1)': dependencies: - '@inquirer/prompts': 7.2.0(@types/node@22.10.5) - '@moonbeam-network/api-augment': 0.3200.3 - '@moonwall/types': 5.9.1(@vitest/ui@2.1.5)(chokidar@3.6.0)(encoding@0.1.13)(jsdom@23.2.0)(postcss@8.4.49)(rxjs@7.8.1)(tsx@4.19.2)(typescript@5.6.3)(yaml@2.4.5)(zod@3.23.8) - '@polkadot/api': 15.4.1 - '@polkadot/api-derive': 15.4.1 + '@inquirer/prompts': 7.3.1(@types/node@22.10.5) + '@moonbeam-network/api-augment': 0.3401.2(postcss@8.4.49)(yaml@2.7.0) + '@moonwall/types': 5.10.0(@vitest/ui@2.1.5)(chokidar@3.6.0)(encoding@0.1.13)(jsdom@23.2.0)(postcss@8.4.49)(rxjs@7.8.1)(tsx@4.19.2)(typescript@5.5.4)(yaml@2.7.0)(zod@3.24.1) + '@polkadot/api': 15.5.1 + '@polkadot/api-derive': 15.5.1 '@polkadot/keyring': 13.3.1(@polkadot/util-crypto@13.3.1(@polkadot/util@13.3.1))(@polkadot/util@13.3.1) - '@polkadot/rpc-provider': 15.4.1 - '@polkadot/types': 15.4.1 - '@polkadot/types-codec': 15.4.1 + '@polkadot/rpc-provider': 15.5.1 + '@polkadot/types': 15.5.1 + '@polkadot/types-codec': 15.5.1 '@polkadot/util': 13.3.1 '@polkadot/util-crypto': 13.3.1(@polkadot/util@13.3.1) bottleneck: 2.19.5 chalk: 5.3.0 clear: 0.1.0 - cli-progress: 3.12.0 colors: 1.4.0 debug: 4.3.7(supports-color@8.1.1) dotenv: 16.4.5 ethers: 6.13.4 rlp: 3.0.0 - semver: 7.6.3 - viem: 2.21.45(typescript@5.6.3)(zod@3.23.8) + semver: 7.7.1 + viem: 2.22.21(typescript@5.5.4)(zod@3.24.1) vitest: 2.1.5(@types/node@22.10.5)(@vitest/ui@2.1.5)(jsdom@23.2.0) - web3: 4.15.0(encoding@0.1.13)(typescript@5.6.3)(zod@3.23.8) + web3: 4.15.0(encoding@0.1.13)(typescript@5.5.4)(zod@3.24.1) ws: 8.18.0 yargs: 17.7.2 transitivePeerDependencies: @@ -5485,6 +5298,10 @@ snapshots: dependencies: '@noble/hashes': 1.5.0 + '@noble/curves@1.8.1': + dependencies: + '@noble/hashes': 1.7.1 + '@noble/ed25519@1.7.3': {} '@noble/hashes@1.3.2': {} @@ -5493,24 +5310,14 @@ snapshots: '@noble/hashes@1.5.0': {} - '@noble/secp256k1@1.7.1': {} - - '@nodelib/fs.scandir@2.1.5': - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 + '@noble/hashes@1.7.1': {} - '@nodelib/fs.stat@2.0.5': {} - - '@nodelib/fs.walk@1.2.8': - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.17.1 + '@noble/secp256k1@1.7.1': {} '@npmcli/fs@1.1.1': dependencies: '@gar/promisify': 1.1.3 - semver: 7.6.3 + semver: 7.7.1 optional: true '@npmcli/move-file@1.1.2': @@ -5519,66 +5326,67 @@ snapshots: rimraf: 3.0.2 optional: true - '@octokit/auth-token@5.1.1': {} + '@octokit/auth-token@5.1.2': {} - '@octokit/core@6.1.2': + '@octokit/core@6.1.3': dependencies: - '@octokit/auth-token': 5.1.1 - '@octokit/graphql': 8.1.1 - '@octokit/request': 9.1.3 - '@octokit/request-error': 6.1.5 - '@octokit/types': 13.6.1 + '@octokit/auth-token': 5.1.2 + '@octokit/graphql': 8.2.0 + '@octokit/request': 9.2.0 + '@octokit/request-error': 6.1.6 + '@octokit/types': 13.8.0 before-after-hook: 3.0.2 universal-user-agent: 7.0.2 - '@octokit/endpoint@10.1.1': + '@octokit/endpoint@10.1.2': dependencies: - '@octokit/types': 13.6.1 + '@octokit/types': 13.8.0 universal-user-agent: 7.0.2 - '@octokit/graphql@8.1.1': + '@octokit/graphql@8.2.0': dependencies: - '@octokit/request': 9.1.3 - '@octokit/types': 13.6.1 + '@octokit/request': 9.2.0 + '@octokit/types': 13.8.0 universal-user-agent: 7.0.2 - '@octokit/openapi-types@22.2.0': {} + '@octokit/openapi-types@23.0.1': {} - '@octokit/plugin-paginate-rest@11.3.5(@octokit/core@6.1.2)': + '@octokit/plugin-paginate-rest@11.4.0(@octokit/core@6.1.3)': dependencies: - '@octokit/core': 6.1.2 - '@octokit/types': 13.6.1 + '@octokit/core': 6.1.3 + '@octokit/types': 13.8.0 - '@octokit/plugin-request-log@5.3.1(@octokit/core@6.1.2)': + '@octokit/plugin-request-log@5.3.1(@octokit/core@6.1.3)': dependencies: - '@octokit/core': 6.1.2 + '@octokit/core': 6.1.3 - '@octokit/plugin-rest-endpoint-methods@13.2.6(@octokit/core@6.1.2)': + '@octokit/plugin-rest-endpoint-methods@13.3.0(@octokit/core@6.1.3)': dependencies: - '@octokit/core': 6.1.2 - '@octokit/types': 13.6.1 + '@octokit/core': 6.1.3 + '@octokit/types': 13.8.0 - '@octokit/request-error@6.1.5': + '@octokit/request-error@6.1.6': dependencies: - '@octokit/types': 13.6.1 + '@octokit/types': 13.8.0 - '@octokit/request@9.1.3': + '@octokit/request@9.2.0': dependencies: - '@octokit/endpoint': 10.1.1 - '@octokit/request-error': 6.1.5 - '@octokit/types': 13.6.1 + '@octokit/endpoint': 10.1.2 + '@octokit/request-error': 6.1.6 + '@octokit/types': 13.8.0 + fast-content-type-parse: 2.0.1 universal-user-agent: 7.0.2 - '@octokit/rest@21.0.2': + '@octokit/rest@21.1.0': dependencies: - '@octokit/core': 6.1.2 - '@octokit/plugin-paginate-rest': 11.3.5(@octokit/core@6.1.2) - '@octokit/plugin-request-log': 5.3.1(@octokit/core@6.1.2) - '@octokit/plugin-rest-endpoint-methods': 13.2.6(@octokit/core@6.1.2) + '@octokit/core': 6.1.3 + '@octokit/plugin-paginate-rest': 11.4.0(@octokit/core@6.1.3) + '@octokit/plugin-request-log': 5.3.1(@octokit/core@6.1.3) + '@octokit/plugin-rest-endpoint-methods': 13.3.0(@octokit/core@6.1.3) - '@octokit/types@13.6.1': + '@octokit/types@13.8.0': dependencies: - '@octokit/openapi-types': 22.2.0 + '@octokit/openapi-types': 23.0.1 '@pkgjs/parseargs@0.11.0': optional: true @@ -5597,33 +5405,33 @@ snapshots: '@polka/url@1.0.0-next.28': {} - '@polkadot-api/cli@0.9.21(postcss@8.4.49)(tsx@4.19.2)(yaml@2.4.5)': + '@polkadot-api/cli@0.9.18(postcss@8.4.49)(tsx@4.19.2)(yaml@2.7.0)': dependencies: '@commander-js/extra-typings': 12.1.0(commander@12.1.0) - '@polkadot-api/codegen': 0.12.9 - '@polkadot-api/ink-contracts': 0.2.2 + '@polkadot-api/codegen': 0.12.8 + '@polkadot-api/ink-contracts': 0.2.1 '@polkadot-api/json-rpc-provider': 0.0.4 - '@polkadot-api/known-chains': 0.5.8 - '@polkadot-api/metadata-compatibility': 0.1.12 - '@polkadot-api/observable-client': 0.6.3(@polkadot-api/substrate-client@0.3.0)(rxjs@7.8.1) + '@polkadot-api/known-chains': 0.5.6 + '@polkadot-api/metadata-compatibility': 0.1.11 + '@polkadot-api/observable-client': 0.6.2(@polkadot-api/substrate-client@0.3.0)(rxjs@7.8.1) '@polkadot-api/polkadot-sdk-compat': 2.3.1 - '@polkadot-api/sm-provider': 0.1.7(@polkadot-api/smoldot@0.3.7) - '@polkadot-api/smoldot': 0.3.7 - '@polkadot-api/substrate-bindings': 0.9.4 + '@polkadot-api/sm-provider': 0.1.6(@polkadot-api/smoldot@0.3.5) + '@polkadot-api/smoldot': 0.3.5 + '@polkadot-api/substrate-bindings': 0.9.3 '@polkadot-api/substrate-client': 0.3.0 '@polkadot-api/utils': 0.1.2 '@polkadot-api/wasm-executor': 0.1.2 - '@polkadot-api/ws-provider': 0.3.6 + '@polkadot-api/ws-provider': 0.3.5 '@types/node': 22.10.5 commander: 12.1.0 execa: 9.5.2 fs.promises.exists: 1.1.4 - ora: 8.1.1 + ora: 8.2.0 read-pkg: 9.0.1 rxjs: 7.8.1 - tsc-prog: 2.3.0(typescript@5.7.2) - tsup: 8.3.5(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.2)(yaml@2.4.5) - typescript: 5.7.2 + tsc-prog: 2.3.0(typescript@5.5.4) + tsup: 8.3.6(postcss@8.4.49)(tsx@4.19.2)(typescript@5.5.4)(yaml@2.7.0) + typescript: 5.5.4 write-package: 7.1.0 transitivePeerDependencies: - '@microsoft/api-extractor' @@ -5636,32 +5444,32 @@ snapshots: - utf-8-validate - yaml - '@polkadot-api/codegen@0.12.9': + '@polkadot-api/codegen@0.12.8': dependencies: - '@polkadot-api/ink-contracts': 0.2.2 - '@polkadot-api/metadata-builders': 0.9.2 - '@polkadot-api/metadata-compatibility': 0.1.12 - '@polkadot-api/substrate-bindings': 0.9.4 + '@polkadot-api/ink-contracts': 0.2.1 + '@polkadot-api/metadata-builders': 0.9.1 + '@polkadot-api/metadata-compatibility': 0.1.11 + '@polkadot-api/substrate-bindings': 0.9.3 '@polkadot-api/utils': 0.1.2 - '@polkadot-api/ink-contracts@0.2.2': + '@polkadot-api/ink-contracts@0.2.1': dependencies: - '@polkadot-api/metadata-builders': 0.9.2 - '@polkadot-api/substrate-bindings': 0.9.4 + '@polkadot-api/metadata-builders': 0.9.1 + '@polkadot-api/substrate-bindings': 0.9.3 '@polkadot-api/utils': 0.1.2 scale-ts: 1.6.1 '@polkadot-api/json-rpc-provider-proxy@0.1.0': optional: true - '@polkadot-api/json-rpc-provider-proxy@0.2.4': {} + '@polkadot-api/json-rpc-provider-proxy@0.2.3': {} '@polkadot-api/json-rpc-provider@0.0.1': optional: true '@polkadot-api/json-rpc-provider@0.0.4': {} - '@polkadot-api/known-chains@0.5.8': {} + '@polkadot-api/known-chains@0.5.6': {} '@polkadot-api/logs-provider@0.0.6': dependencies: @@ -5673,15 +5481,15 @@ snapshots: '@polkadot-api/utils': 0.1.0 optional: true - '@polkadot-api/metadata-builders@0.9.2': + '@polkadot-api/metadata-builders@0.9.1': dependencies: - '@polkadot-api/substrate-bindings': 0.9.4 + '@polkadot-api/substrate-bindings': 0.9.3 '@polkadot-api/utils': 0.1.2 - '@polkadot-api/metadata-compatibility@0.1.12': + '@polkadot-api/metadata-compatibility@0.1.11': dependencies: - '@polkadot-api/metadata-builders': 0.9.2 - '@polkadot-api/substrate-bindings': 0.9.4 + '@polkadot-api/metadata-builders': 0.9.1 + '@polkadot-api/substrate-bindings': 0.9.3 '@polkadot-api/observable-client@0.3.2(@polkadot-api/substrate-client@0.1.4)(rxjs@7.8.1)': dependencies: @@ -5692,20 +5500,20 @@ snapshots: rxjs: 7.8.1 optional: true - '@polkadot-api/observable-client@0.6.3(@polkadot-api/substrate-client@0.3.0)(rxjs@7.8.1)': + '@polkadot-api/observable-client@0.6.2(@polkadot-api/substrate-client@0.3.0)(rxjs@7.8.1)': dependencies: - '@polkadot-api/metadata-builders': 0.9.2 - '@polkadot-api/substrate-bindings': 0.9.4 + '@polkadot-api/metadata-builders': 0.9.1 + '@polkadot-api/substrate-bindings': 0.9.3 '@polkadot-api/substrate-client': 0.3.0 '@polkadot-api/utils': 0.1.2 rxjs: 7.8.1 - '@polkadot-api/pjs-signer@0.6.1': + '@polkadot-api/pjs-signer@0.6.0': dependencies: - '@polkadot-api/metadata-builders': 0.9.2 + '@polkadot-api/metadata-builders': 0.9.1 '@polkadot-api/polkadot-signer': 0.1.6 - '@polkadot-api/signers-common': 0.1.2 - '@polkadot-api/substrate-bindings': 0.9.4 + '@polkadot-api/signers-common': 0.1.1 + '@polkadot-api/substrate-bindings': 0.9.3 '@polkadot-api/utils': 0.1.2 '@polkadot-api/polkadot-sdk-compat@2.3.1': @@ -5714,48 +5522,48 @@ snapshots: '@polkadot-api/polkadot-signer@0.1.6': {} - '@polkadot-api/signer@0.1.11': + '@polkadot-api/signer@0.1.10': dependencies: - '@noble/hashes': 1.5.0 + '@noble/hashes': 1.7.1 '@polkadot-api/polkadot-signer': 0.1.6 - '@polkadot-api/signers-common': 0.1.2 - '@polkadot-api/substrate-bindings': 0.9.4 + '@polkadot-api/signers-common': 0.1.1 + '@polkadot-api/substrate-bindings': 0.9.3 '@polkadot-api/utils': 0.1.2 - '@polkadot-api/signers-common@0.1.2': + '@polkadot-api/signers-common@0.1.1': dependencies: - '@polkadot-api/metadata-builders': 0.9.2 + '@polkadot-api/metadata-builders': 0.9.1 '@polkadot-api/polkadot-signer': 0.1.6 - '@polkadot-api/substrate-bindings': 0.9.4 + '@polkadot-api/substrate-bindings': 0.9.3 '@polkadot-api/utils': 0.1.2 - '@polkadot-api/sm-provider@0.1.7(@polkadot-api/smoldot@0.3.7)': + '@polkadot-api/sm-provider@0.1.6(@polkadot-api/smoldot@0.3.5)': dependencies: '@polkadot-api/json-rpc-provider': 0.0.4 - '@polkadot-api/json-rpc-provider-proxy': 0.2.4 - '@polkadot-api/smoldot': 0.3.7 + '@polkadot-api/json-rpc-provider-proxy': 0.2.3 + '@polkadot-api/smoldot': 0.3.5 - '@polkadot-api/smoldot@0.3.7': + '@polkadot-api/smoldot@0.3.5': dependencies: '@types/node': 22.10.5 - smoldot: 2.0.33 + smoldot: 2.0.31 transitivePeerDependencies: - bufferutil - utf-8-validate '@polkadot-api/substrate-bindings@0.6.0': dependencies: - '@noble/hashes': 1.5.0 + '@noble/hashes': 1.7.1 '@polkadot-api/utils': 0.1.0 - '@scure/base': 1.1.9 + '@scure/base': 1.2.4 scale-ts: 1.6.1 optional: true - '@polkadot-api/substrate-bindings@0.9.4': + '@polkadot-api/substrate-bindings@0.9.3': dependencies: - '@noble/hashes': 1.5.0 + '@noble/hashes': 1.7.1 '@polkadot-api/utils': 0.1.2 - '@scure/base': 1.1.9 + '@scure/base': 1.2.4 scale-ts: 1.6.1 '@polkadot-api/substrate-client@0.1.4': @@ -5776,22 +5584,22 @@ snapshots: '@polkadot-api/wasm-executor@0.1.2': {} - '@polkadot-api/ws-provider@0.3.6': + '@polkadot-api/ws-provider@0.3.5': dependencies: '@polkadot-api/json-rpc-provider': 0.0.4 - '@polkadot-api/json-rpc-provider-proxy': 0.2.4 + '@polkadot-api/json-rpc-provider-proxy': 0.2.3 ws: 8.18.0 transitivePeerDependencies: - bufferutil - utf-8-validate - '@polkadot/api-augment@15.4.1': + '@polkadot/api-augment@15.5.1': dependencies: - '@polkadot/api-base': 15.4.1 - '@polkadot/rpc-augment': 15.4.1 - '@polkadot/types': 15.4.1 - '@polkadot/types-augment': 15.4.1 - '@polkadot/types-codec': 15.4.1 + '@polkadot/api-base': 15.5.1 + '@polkadot/rpc-augment': 15.5.1 + '@polkadot/types': 15.5.1 + '@polkadot/types-augment': 15.5.1 + '@polkadot/types-codec': 15.5.1 '@polkadot/util': 13.3.1 tslib: 2.8.1 transitivePeerDependencies: @@ -5799,10 +5607,10 @@ snapshots: - supports-color - utf-8-validate - '@polkadot/api-base@15.4.1': + '@polkadot/api-base@15.5.1': dependencies: - '@polkadot/rpc-core': 15.4.1 - '@polkadot/types': 15.4.1 + '@polkadot/rpc-core': 15.5.1 + '@polkadot/types': 15.5.1 '@polkadot/util': 13.3.1 rxjs: 7.8.1 tslib: 2.8.1 @@ -5811,14 +5619,14 @@ snapshots: - supports-color - utf-8-validate - '@polkadot/api-derive@15.4.1': + '@polkadot/api-derive@15.5.1': dependencies: - '@polkadot/api': 15.4.1 - '@polkadot/api-augment': 15.4.1 - '@polkadot/api-base': 15.4.1 - '@polkadot/rpc-core': 15.4.1 - '@polkadot/types': 15.4.1 - '@polkadot/types-codec': 15.4.1 + '@polkadot/api': 15.5.1 + '@polkadot/api-augment': 15.5.1 + '@polkadot/api-base': 15.5.1 + '@polkadot/rpc-core': 15.5.1 + '@polkadot/types': 15.5.1 + '@polkadot/types-codec': 15.5.1 '@polkadot/util': 13.3.1 '@polkadot/util-crypto': 13.3.1(@polkadot/util@13.3.1) rxjs: 7.8.1 @@ -5828,20 +5636,20 @@ snapshots: - supports-color - utf-8-validate - '@polkadot/api@15.4.1': + '@polkadot/api@15.5.1': dependencies: - '@polkadot/api-augment': 15.4.1 - '@polkadot/api-base': 15.4.1 - '@polkadot/api-derive': 15.4.1 + '@polkadot/api-augment': 15.5.1 + '@polkadot/api-base': 15.5.1 + '@polkadot/api-derive': 15.5.1 '@polkadot/keyring': 13.3.1(@polkadot/util-crypto@13.3.1(@polkadot/util@13.3.1))(@polkadot/util@13.3.1) - '@polkadot/rpc-augment': 15.4.1 - '@polkadot/rpc-core': 15.4.1 - '@polkadot/rpc-provider': 15.4.1 - '@polkadot/types': 15.4.1 - '@polkadot/types-augment': 15.4.1 - '@polkadot/types-codec': 15.4.1 - '@polkadot/types-create': 15.4.1 - '@polkadot/types-known': 15.4.1 + '@polkadot/rpc-augment': 15.5.1 + '@polkadot/rpc-core': 15.5.1 + '@polkadot/rpc-provider': 15.5.1 + '@polkadot/types': 15.5.1 + '@polkadot/types-augment': 15.5.1 + '@polkadot/types-codec': 15.5.1 + '@polkadot/types-create': 15.5.1 + '@polkadot/types-known': 15.5.1 '@polkadot/util': 13.3.1 '@polkadot/util-crypto': 13.3.1(@polkadot/util@13.3.1) eventemitter3: 5.0.1 @@ -5864,11 +5672,11 @@ snapshots: '@substrate/ss58-registry': 1.51.0 tslib: 2.8.1 - '@polkadot/rpc-augment@15.4.1': + '@polkadot/rpc-augment@15.5.1': dependencies: - '@polkadot/rpc-core': 15.4.1 - '@polkadot/types': 15.4.1 - '@polkadot/types-codec': 15.4.1 + '@polkadot/rpc-core': 15.5.1 + '@polkadot/types': 15.5.1 + '@polkadot/types-codec': 15.5.1 '@polkadot/util': 13.3.1 tslib: 2.8.1 transitivePeerDependencies: @@ -5876,11 +5684,11 @@ snapshots: - supports-color - utf-8-validate - '@polkadot/rpc-core@15.4.1': + '@polkadot/rpc-core@15.5.1': dependencies: - '@polkadot/rpc-augment': 15.4.1 - '@polkadot/rpc-provider': 15.4.1 - '@polkadot/types': 15.4.1 + '@polkadot/rpc-augment': 15.5.1 + '@polkadot/rpc-provider': 15.5.1 + '@polkadot/types': 15.5.1 '@polkadot/util': 13.3.1 rxjs: 7.8.1 tslib: 2.8.1 @@ -5889,11 +5697,11 @@ snapshots: - supports-color - utf-8-validate - '@polkadot/rpc-provider@15.4.1': + '@polkadot/rpc-provider@15.5.1': dependencies: '@polkadot/keyring': 13.3.1(@polkadot/util-crypto@13.3.1(@polkadot/util@13.3.1))(@polkadot/util@13.3.1) - '@polkadot/types': 15.4.1 - '@polkadot/types-support': 15.4.1 + '@polkadot/types': 15.5.1 + '@polkadot/types-support': 15.5.1 '@polkadot/util': 13.3.1 '@polkadot/util-crypto': 13.3.1(@polkadot/util@13.3.1) '@polkadot/x-fetch': 13.3.1 @@ -5910,17 +5718,17 @@ snapshots: - supports-color - utf-8-validate - '@polkadot/typegen@15.4.1': - dependencies: - '@polkadot/api': 15.4.1 - '@polkadot/api-augment': 15.4.1 - '@polkadot/rpc-augment': 15.4.1 - '@polkadot/rpc-provider': 15.4.1 - '@polkadot/types': 15.4.1 - '@polkadot/types-augment': 15.4.1 - '@polkadot/types-codec': 15.4.1 - '@polkadot/types-create': 15.4.1 - '@polkadot/types-support': 15.4.1 + '@polkadot/typegen@15.5.1': + dependencies: + '@polkadot/api': 15.5.1 + '@polkadot/api-augment': 15.5.1 + '@polkadot/rpc-augment': 15.5.1 + '@polkadot/rpc-provider': 15.5.1 + '@polkadot/types': 15.5.1 + '@polkadot/types-augment': 15.5.1 + '@polkadot/types-codec': 15.5.1 + '@polkadot/types-create': 15.5.1 + '@polkadot/types-support': 15.5.1 '@polkadot/util': 13.3.1 '@polkadot/util-crypto': 13.3.1(@polkadot/util@13.3.1) '@polkadot/x-ws': 13.3.1 @@ -5932,45 +5740,45 @@ snapshots: - supports-color - utf-8-validate - '@polkadot/types-augment@15.4.1': + '@polkadot/types-augment@15.5.1': dependencies: - '@polkadot/types': 15.4.1 - '@polkadot/types-codec': 15.4.1 + '@polkadot/types': 15.5.1 + '@polkadot/types-codec': 15.5.1 '@polkadot/util': 13.3.1 tslib: 2.8.1 - '@polkadot/types-codec@15.4.1': + '@polkadot/types-codec@15.5.1': dependencies: '@polkadot/util': 13.3.1 '@polkadot/x-bigint': 13.3.1 tslib: 2.8.1 - '@polkadot/types-create@15.4.1': + '@polkadot/types-create@15.5.1': dependencies: - '@polkadot/types-codec': 15.4.1 + '@polkadot/types-codec': 15.5.1 '@polkadot/util': 13.3.1 tslib: 2.8.1 - '@polkadot/types-known@15.4.1': + '@polkadot/types-known@15.5.1': dependencies: '@polkadot/networks': 13.3.1 - '@polkadot/types': 15.4.1 - '@polkadot/types-codec': 15.4.1 - '@polkadot/types-create': 15.4.1 + '@polkadot/types': 15.5.1 + '@polkadot/types-codec': 15.5.1 + '@polkadot/types-create': 15.5.1 '@polkadot/util': 13.3.1 tslib: 2.8.1 - '@polkadot/types-support@15.4.1': + '@polkadot/types-support@15.5.1': dependencies: '@polkadot/util': 13.3.1 tslib: 2.8.1 - '@polkadot/types@15.4.1': + '@polkadot/types@15.5.1': dependencies: '@polkadot/keyring': 13.3.1(@polkadot/util-crypto@13.3.1(@polkadot/util@13.3.1))(@polkadot/util@13.3.1) - '@polkadot/types-augment': 15.4.1 - '@polkadot/types-codec': 15.4.1 - '@polkadot/types-create': 15.4.1 + '@polkadot/types-augment': 15.5.1 + '@polkadot/types-codec': 15.5.1 + '@polkadot/types-create': 15.5.1 '@polkadot/util': 13.3.1 '@polkadot/util-crypto': 13.3.1(@polkadot/util@13.3.1) rxjs: 7.8.1 @@ -6110,80 +5918,139 @@ snapshots: '@rollup/rollup-android-arm-eabi@4.26.0': optional: true + '@rollup/rollup-android-arm-eabi@4.34.2': + optional: true + '@rollup/rollup-android-arm64@4.26.0': optional: true + '@rollup/rollup-android-arm64@4.34.2': + optional: true + '@rollup/rollup-darwin-arm64@4.26.0': optional: true + '@rollup/rollup-darwin-arm64@4.34.2': + optional: true + '@rollup/rollup-darwin-x64@4.26.0': optional: true + '@rollup/rollup-darwin-x64@4.34.2': + optional: true + '@rollup/rollup-freebsd-arm64@4.26.0': optional: true + '@rollup/rollup-freebsd-arm64@4.34.2': + optional: true + '@rollup/rollup-freebsd-x64@4.26.0': optional: true + '@rollup/rollup-freebsd-x64@4.34.2': + optional: true + '@rollup/rollup-linux-arm-gnueabihf@4.26.0': optional: true + '@rollup/rollup-linux-arm-gnueabihf@4.34.2': + optional: true + '@rollup/rollup-linux-arm-musleabihf@4.26.0': optional: true + '@rollup/rollup-linux-arm-musleabihf@4.34.2': + optional: true + '@rollup/rollup-linux-arm64-gnu@4.26.0': optional: true + '@rollup/rollup-linux-arm64-gnu@4.34.2': + optional: true + '@rollup/rollup-linux-arm64-musl@4.26.0': optional: true + '@rollup/rollup-linux-arm64-musl@4.34.2': + optional: true + + '@rollup/rollup-linux-loongarch64-gnu@4.34.2': + optional: true + '@rollup/rollup-linux-powerpc64le-gnu@4.26.0': optional: true + '@rollup/rollup-linux-powerpc64le-gnu@4.34.2': + optional: true + '@rollup/rollup-linux-riscv64-gnu@4.26.0': optional: true + '@rollup/rollup-linux-riscv64-gnu@4.34.2': + optional: true + '@rollup/rollup-linux-s390x-gnu@4.26.0': optional: true + '@rollup/rollup-linux-s390x-gnu@4.34.2': + optional: true + '@rollup/rollup-linux-x64-gnu@4.26.0': optional: true + '@rollup/rollup-linux-x64-gnu@4.34.2': + optional: true + '@rollup/rollup-linux-x64-musl@4.26.0': optional: true + '@rollup/rollup-linux-x64-musl@4.34.2': + optional: true + '@rollup/rollup-win32-arm64-msvc@4.26.0': optional: true + '@rollup/rollup-win32-arm64-msvc@4.34.2': + optional: true + '@rollup/rollup-win32-ia32-msvc@4.26.0': optional: true + '@rollup/rollup-win32-ia32-msvc@4.34.2': + optional: true + '@rollup/rollup-win32-x64-msvc@4.26.0': optional: true + '@rollup/rollup-win32-x64-msvc@4.34.2': + optional: true + '@scure/base@1.1.9': {} + '@scure/base@1.2.4': {} + '@scure/bip32@1.4.0': dependencies: '@noble/curves': 1.4.2 '@noble/hashes': 1.4.0 '@scure/base': 1.1.9 - '@scure/bip32@1.5.0': + '@scure/bip32@1.6.2': dependencies: - '@noble/curves': 1.6.0 - '@noble/hashes': 1.5.0 - '@scure/base': 1.1.9 + '@noble/curves': 1.8.1 + '@noble/hashes': 1.7.1 + '@scure/base': 1.2.4 '@scure/bip39@1.3.0': dependencies: '@noble/hashes': 1.4.0 '@scure/base': 1.1.9 - '@scure/bip39@1.4.0': + '@scure/bip39@1.5.4': dependencies: - '@noble/hashes': 1.5.0 - '@scure/base': 1.1.9 + '@noble/hashes': 1.7.1 + '@scure/base': 1.2.4 '@sec-ant/readable-stream@0.4.1': {} @@ -6235,7 +6102,7 @@ snapshots: '@types/bn.js@5.1.6': dependencies: - '@types/node': 22.10.5 + '@types/node': 22.12.0 '@types/debug@4.1.12': dependencies: @@ -6243,24 +6110,20 @@ snapshots: '@types/estree@1.0.6': {} - '@types/json-schema@7.0.15': {} + '@types/json-bigint@1.0.4': {} '@types/long@4.0.2': {} - '@types/mdast@3.0.15': - dependencies: - '@types/unist': 2.0.11 - - '@types/mdast@4.0.4': - dependencies: - '@types/unist': 3.0.3 - '@types/ms@0.7.34': {} '@types/node@22.10.5': dependencies: undici-types: 6.20.0 + '@types/node@22.12.0': + dependencies: + undici-types: 6.20.0 + '@types/node@22.7.5': dependencies: undici-types: 6.19.8 @@ -6269,109 +6132,24 @@ snapshots: '@types/prop-types@15.7.14': {} - '@types/react@18.3.14': + '@types/ps-node@0.1.3': {} + + '@types/react@18.3.12': dependencies: '@types/prop-types': 15.7.14 csstype: 3.1.3 - '@types/semver@7.5.8': {} - '@types/tmp@0.2.6': {} - '@types/unist@2.0.11': {} - - '@types/unist@3.0.3': {} - '@types/ws@8.5.3': dependencies: - '@types/node': 22.10.5 + '@types/node': 22.12.0 - '@typescript-eslint/eslint-plugin@6.15.0(@typescript-eslint/parser@6.15.0(eslint@8.56.0)(typescript@5.6.3))(eslint@8.56.0)(typescript@5.6.3)': - dependencies: - '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 6.15.0(eslint@8.56.0)(typescript@5.6.3) - '@typescript-eslint/scope-manager': 6.15.0 - '@typescript-eslint/type-utils': 6.15.0(eslint@8.56.0)(typescript@5.6.3) - '@typescript-eslint/utils': 6.15.0(eslint@8.56.0)(typescript@5.6.3) - '@typescript-eslint/visitor-keys': 6.15.0 - debug: 4.3.7(supports-color@8.1.1) - eslint: 8.56.0 - graphemer: 1.4.0 - ignore: 5.3.2 - natural-compare: 1.4.0 - semver: 7.6.3 - ts-api-utils: 1.4.0(typescript@5.6.3) - optionalDependencies: - typescript: 5.6.3 - transitivePeerDependencies: - - supports-color + '@types/yargs-parser@21.0.3': {} - '@typescript-eslint/parser@6.15.0(eslint@8.56.0)(typescript@5.6.3)': + '@types/yargs@17.0.33': dependencies: - '@typescript-eslint/scope-manager': 6.15.0 - '@typescript-eslint/types': 6.15.0 - '@typescript-eslint/typescript-estree': 6.15.0(typescript@5.6.3) - '@typescript-eslint/visitor-keys': 6.15.0 - debug: 4.3.7(supports-color@8.1.1) - eslint: 8.56.0 - optionalDependencies: - typescript: 5.6.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/scope-manager@6.15.0': - dependencies: - '@typescript-eslint/types': 6.15.0 - '@typescript-eslint/visitor-keys': 6.15.0 - - '@typescript-eslint/type-utils@6.15.0(eslint@8.56.0)(typescript@5.6.3)': - dependencies: - '@typescript-eslint/typescript-estree': 6.15.0(typescript@5.6.3) - '@typescript-eslint/utils': 6.15.0(eslint@8.56.0)(typescript@5.6.3) - debug: 4.3.7(supports-color@8.1.1) - eslint: 8.56.0 - ts-api-utils: 1.4.0(typescript@5.6.3) - optionalDependencies: - typescript: 5.6.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/types@6.15.0': {} - - '@typescript-eslint/typescript-estree@6.15.0(typescript@5.6.3)': - dependencies: - '@typescript-eslint/types': 6.15.0 - '@typescript-eslint/visitor-keys': 6.15.0 - debug: 4.3.7(supports-color@8.1.1) - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.6.3 - ts-api-utils: 1.4.0(typescript@5.6.3) - optionalDependencies: - typescript: 5.6.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/utils@6.15.0(eslint@8.56.0)(typescript@5.6.3)': - dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@8.56.0) - '@types/json-schema': 7.0.15 - '@types/semver': 7.5.8 - '@typescript-eslint/scope-manager': 6.15.0 - '@typescript-eslint/types': 6.15.0 - '@typescript-eslint/typescript-estree': 6.15.0(typescript@5.6.3) - eslint: 8.56.0 - semver: 7.6.3 - transitivePeerDependencies: - - supports-color - - typescript - - '@typescript-eslint/visitor-keys@6.15.0': - dependencies: - '@typescript-eslint/types': 6.15.0 - eslint-visitor-keys: 3.4.3 - - '@ungap/structured-clone@1.2.0': {} + '@types/yargs-parser': 21.0.3 '@vitest/expect@2.1.5': dependencies: @@ -6426,10 +6204,10 @@ snapshots: '@zombienet/orchestrator@0.0.97(@polkadot/util@13.3.1)(@types/node@22.10.5)(chokidar@3.6.0)': dependencies: - '@polkadot/api': 15.4.1 + '@polkadot/api': 15.5.1 '@polkadot/keyring': 13.3.1(@polkadot/util-crypto@13.3.1(@polkadot/util@13.3.1))(@polkadot/util@13.3.1) '@polkadot/util-crypto': 13.3.1(@polkadot/util@13.3.1) - '@zombienet/utils': 0.0.25(@types/node@22.10.5)(chokidar@3.6.0)(typescript@5.6.3) + '@zombienet/utils': 0.0.25(@types/node@22.10.5)(chokidar@3.6.0)(typescript@5.5.4) JSONStream: 1.3.5 chai: 4.5.0 debug: 4.3.7(supports-color@8.1.1) @@ -6443,7 +6221,7 @@ snapshots: napi-maybe-compressed-blob: 0.0.11 peer-id: 0.16.0 tmp-promise: 3.0.3 - typescript: 5.6.3 + typescript: 5.5.4 yaml: 2.6.0 transitivePeerDependencies: - '@polkadot/util' @@ -6456,14 +6234,62 @@ snapshots: - supports-color - utf-8-validate - '@zombienet/utils@0.0.25(@types/node@22.10.5)(chokidar@3.6.0)(typescript@5.6.3)': + '@zombienet/orchestrator@0.0.98(@polkadot/util@13.3.1)(@types/node@22.10.5)(chokidar@3.6.0)': + dependencies: + '@polkadot/api': 15.5.1 + '@polkadot/keyring': 13.3.1(@polkadot/util-crypto@13.3.1(@polkadot/util@13.3.1))(@polkadot/util@13.3.1) + '@polkadot/util-crypto': 13.3.1(@polkadot/util@13.3.1) + '@zombienet/utils': 0.0.26(@types/node@22.10.5)(chokidar@3.6.0)(typescript@5.5.4) + JSONStream: 1.3.5 + chai: 4.5.0 + debug: 4.4.0 + execa: 5.1.1 + fs-extra: 11.3.0 + jsdom: 23.2.0 + json-bigint: 1.0.0 + libp2p-crypto: 0.21.2 + minimatch: 9.0.5 + mocha: 10.8.2 + napi-maybe-compressed-blob: 0.0.11 + peer-id: 0.16.0 + tmp-promise: 3.0.3 + typescript: 5.5.4 + yaml: 2.7.0 + transitivePeerDependencies: + - '@polkadot/util' + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - bufferutil + - canvas + - chokidar + - supports-color + - utf-8-validate + + '@zombienet/utils@0.0.25(@types/node@22.10.5)(chokidar@3.6.0)(typescript@5.5.4)': dependencies: cli-table3: 0.6.5 debug: 4.3.7(supports-color@8.1.1) mocha: 10.7.3 nunjucks: 3.2.4(chokidar@3.6.0) toml: 3.0.0 - ts-node: 10.9.2(@types/node@22.10.5)(typescript@5.6.3) + ts-node: 10.9.2(@types/node@22.10.5)(typescript@5.5.4) + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - chokidar + - supports-color + - typescript + + '@zombienet/utils@0.0.26(@types/node@22.10.5)(chokidar@3.6.0)(typescript@5.5.4)': + dependencies: + cli-table3: 0.6.5 + debug: 4.4.0 + mocha: 10.8.2 + nunjucks: 3.2.4(chokidar@3.6.0) + toml: 3.0.0 + ts-node: 10.9.2(@types/node@22.10.5)(typescript@5.5.4) transitivePeerDependencies: - '@swc/core' - '@swc/wasm' @@ -6482,24 +6308,16 @@ snapshots: abbrev@1.1.1: optional: true - abitype@0.7.1(typescript@5.6.3)(zod@3.23.8): + abitype@0.7.1(typescript@5.5.4)(zod@3.24.1): dependencies: - typescript: 5.6.3 + typescript: 5.5.4 optionalDependencies: - zod: 3.23.8 + zod: 3.24.1 - abitype@1.0.6(typescript@5.6.3)(zod@3.23.8): + abitype@1.0.8(typescript@5.5.4)(zod@3.24.1): optionalDependencies: - typescript: 5.6.3 - zod: 3.23.8 - - abort-controller@3.0.0: - dependencies: - event-target-shim: 5.0.1 - - acorn-jsx@5.3.2(acorn@8.14.0): - dependencies: - acorn: 8.14.0 + typescript: 5.5.4 + zod: 3.24.1 acorn-walk@8.3.3: dependencies: @@ -6507,8 +6325,6 @@ snapshots: acorn@8.12.1: {} - acorn@8.14.0: {} - aes-js@4.0.0-beta.5: {} agent-base@6.0.2: @@ -6524,7 +6340,7 @@ snapshots: transitivePeerDependencies: - supports-color - agentkeepalive@4.5.0: + agentkeepalive@4.6.0: dependencies: humanize-ms: 1.2.1 optional: true @@ -6535,13 +6351,6 @@ snapshots: indent-string: 4.0.0 optional: true - ajv@6.12.6: - dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 - ansi-colors@4.1.3: {} ansi-escapes@4.3.2: @@ -6584,10 +6393,12 @@ snapshots: argparse@2.0.1: {} - array-union@2.1.0: {} - asap@2.0.6: {} + asn1@0.2.6: + dependencies: + safer-buffer: 2.1.2 + assertion-error@1.1.0: {} assertion-error@2.0.1: {} @@ -6602,7 +6413,7 @@ snapshots: dependencies: possible-typed-array-names: 1.0.0 - axios@1.7.7(debug@4.3.7): + axios@1.7.9(debug@4.3.7): dependencies: follow-redirects: 1.15.9(debug@4.3.7) form-data: 4.0.1 @@ -6610,10 +6421,22 @@ snapshots: transitivePeerDependencies: - debug + axios@1.7.9(debug@4.4.0): + dependencies: + follow-redirects: 1.15.9(debug@4.4.0) + form-data: 4.0.1 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + balanced-match@1.0.2: {} base64-js@1.5.1: {} + bcrypt-pbkdf@1.0.2: + dependencies: + tweetnacl: 0.14.5 + before-after-hook@3.0.2: {} bidi-js@1.0.3: @@ -6624,8 +6447,6 @@ snapshots: binary-extensions@2.3.0: {} - binary-searching@2.0.5: {} - bindings@1.5.0: dependencies: file-uri-to-path: 1.0.0 @@ -6646,6 +6467,7 @@ snapshots: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 + optional: true brace-expansion@2.0.1: dependencies: @@ -6667,9 +6489,12 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 - bundle-require@5.0.0(esbuild@0.24.0): + buildcheck@0.0.6: + optional: true + + bundle-require@5.1.0(esbuild@0.24.2): dependencies: - esbuild: 0.24.0 + esbuild: 0.24.2 load-tsconfig: 0.2.5 cac@6.7.14: {} @@ -6706,8 +6531,6 @@ snapshots: get-intrinsic: 1.2.4 set-function-length: 1.2.2 - callsites@3.1.0: {} - camelcase@6.3.0: {} cfonts@3.3.0: @@ -6747,8 +6570,6 @@ snapshots: chalk@5.4.1: {} - character-entities@2.0.2: {} - chardet@0.7.0: {} check-error@1.0.3: @@ -6769,9 +6590,9 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - chokidar@4.0.1: + chokidar@4.0.3: dependencies: - readdirp: 4.0.2 + readdirp: 4.1.1 chownr@1.1.4: {} @@ -6786,10 +6607,6 @@ snapshots: cli-boxes@3.0.0: {} - cli-cursor@3.1.0: - dependencies: - restore-cursor: 3.1.0 - cli-cursor@4.0.0: dependencies: restore-cursor: 4.0.0 @@ -6838,8 +6655,6 @@ snapshots: strip-ansi: 6.0.1 wrap-ansi: 7.0.0 - clone@1.0.4: {} - code-excerpt@4.0.0: dependencies: convert-to-spaces: 2.0.1 @@ -6873,9 +6688,8 @@ snapshots: commander@8.3.0: {} - comment-parser@1.4.1: {} - - concat-map@0.0.1: {} + concat-map@0.0.1: + optional: true config-chain@1.1.13: dependencies: @@ -6884,13 +6698,19 @@ snapshots: connected-domain@1.0.0: {} - consola@3.2.3: {} + consola@3.4.0: {} console-control-strings@1.1.0: optional: true convert-to-spaces@2.0.1: {} + cpu-features@0.0.10: + dependencies: + buildcheck: 0.0.6 + nan: 2.22.0 + optional: true + crc-32@1.2.2: {} create-require@1.1.1: {} @@ -6907,6 +6727,12 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + css-tree@2.3.1: dependencies: mdn-data: 2.0.30 @@ -6935,14 +6761,14 @@ snapshots: optionalDependencies: supports-color: 8.1.1 + debug@4.4.0: + dependencies: + ms: 2.1.3 + decamelize@4.0.0: {} decimal.js@10.4.3: {} - decode-named-character-reference@1.0.2: - dependencies: - character-entities: 2.0.2 - decompress-response@6.0.0: dependencies: mimic-response: 3.1.0 @@ -6955,13 +6781,7 @@ snapshots: deep-extend@0.6.0: {} - deep-is@0.1.4: {} - - deepmerge-ts@7.1.3: {} - - defaults@1.0.4: - dependencies: - clone: 1.0.4 + deepmerge-ts@7.1.4: {} define-data-property@1.1.4: dependencies: @@ -6984,34 +6804,43 @@ snapshots: delegates@1.0.0: optional: true - dequal@2.0.3: {} - detect-indent@7.0.1: {} detect-libc@2.0.3: {} detect-node@2.1.0: {} - devlop@1.1.0: - dependencies: - dequal: 2.0.3 - diff-match-patch@1.0.5: {} diff@4.0.2: {} diff@5.2.0: {} - dir-glob@3.0.1: + docker-modem@5.0.6: dependencies: - path-type: 4.0.0 + debug: 4.4.0 + readable-stream: 3.6.2 + split-ca: 1.0.1 + ssh2: 1.16.0 + transitivePeerDependencies: + - supports-color - doctrine@3.0.0: + dockerode@4.0.4: dependencies: - esutils: 2.0.3 + '@balena/dockerignore': 1.0.2 + '@grpc/grpc-js': 1.12.5 + '@grpc/proto-loader': 0.7.13 + docker-modem: 5.0.6 + protobufjs: 7.4.0 + tar-fs: 2.0.1 + uuid: 10.0.0 + transitivePeerDependencies: + - supports-color dotenv@16.4.5: {} + dotenv@16.4.7: {} + eastasianwidth@0.2.0: {} emoji-regex@10.4.0: {} @@ -7049,7 +6878,7 @@ snapshots: es-module-lexer@1.5.4: {} - es-toolkit@1.29.0: {} + es-toolkit@1.32.0: {} es6-error@4.1.1: {} @@ -7106,113 +6935,44 @@ snapshots: '@esbuild/win32-ia32': 0.23.1 '@esbuild/win32-x64': 0.23.1 - esbuild@0.24.0: + esbuild@0.24.2: optionalDependencies: - '@esbuild/aix-ppc64': 0.24.0 - '@esbuild/android-arm': 0.24.0 - '@esbuild/android-arm64': 0.24.0 - '@esbuild/android-x64': 0.24.0 - '@esbuild/darwin-arm64': 0.24.0 - '@esbuild/darwin-x64': 0.24.0 - '@esbuild/freebsd-arm64': 0.24.0 - '@esbuild/freebsd-x64': 0.24.0 - '@esbuild/linux-arm': 0.24.0 - '@esbuild/linux-arm64': 0.24.0 - '@esbuild/linux-ia32': 0.24.0 - '@esbuild/linux-loong64': 0.24.0 - '@esbuild/linux-mips64el': 0.24.0 - '@esbuild/linux-ppc64': 0.24.0 - '@esbuild/linux-riscv64': 0.24.0 - '@esbuild/linux-s390x': 0.24.0 - '@esbuild/linux-x64': 0.24.0 - '@esbuild/netbsd-x64': 0.24.0 - '@esbuild/openbsd-arm64': 0.24.0 - '@esbuild/openbsd-x64': 0.24.0 - '@esbuild/sunos-x64': 0.24.0 - '@esbuild/win32-arm64': 0.24.0 - '@esbuild/win32-ia32': 0.24.0 - '@esbuild/win32-x64': 0.24.0 + '@esbuild/aix-ppc64': 0.24.2 + '@esbuild/android-arm': 0.24.2 + '@esbuild/android-arm64': 0.24.2 + '@esbuild/android-x64': 0.24.2 + '@esbuild/darwin-arm64': 0.24.2 + '@esbuild/darwin-x64': 0.24.2 + '@esbuild/freebsd-arm64': 0.24.2 + '@esbuild/freebsd-x64': 0.24.2 + '@esbuild/linux-arm': 0.24.2 + '@esbuild/linux-arm64': 0.24.2 + '@esbuild/linux-ia32': 0.24.2 + '@esbuild/linux-loong64': 0.24.2 + '@esbuild/linux-mips64el': 0.24.2 + '@esbuild/linux-ppc64': 0.24.2 + '@esbuild/linux-riscv64': 0.24.2 + '@esbuild/linux-s390x': 0.24.2 + '@esbuild/linux-x64': 0.24.2 + '@esbuild/netbsd-arm64': 0.24.2 + '@esbuild/netbsd-x64': 0.24.2 + '@esbuild/openbsd-arm64': 0.24.2 + '@esbuild/openbsd-x64': 0.24.2 + '@esbuild/sunos-x64': 0.24.2 + '@esbuild/win32-arm64': 0.24.2 + '@esbuild/win32-ia32': 0.24.2 + '@esbuild/win32-x64': 0.24.2 escalade@3.2.0: {} - escape-string-regexp@1.0.5: {} - escape-string-regexp@2.0.0: {} escape-string-regexp@4.0.0: {} - eslint-scope@7.2.2: - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - - eslint-visitor-keys@3.4.3: {} - - eslint@8.56.0: - dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@8.56.0) - '@eslint-community/regexpp': 4.12.1 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.56.0 - '@humanwhocodes/config-array': 0.11.14 - '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.2.0 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.5 - debug: 4.3.7(supports-color@8.1.1) - doctrine: 3.0.0 - escape-string-regexp: 4.0.0 - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 - esquery: 1.6.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - find-up: 5.0.0 - glob-parent: 6.0.2 - globals: 13.24.0 - graphemer: 1.4.0 - ignore: 5.3.2 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - is-path-inside: 3.0.3 - js-yaml: 4.1.0 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.4 - strip-ansi: 6.0.1 - text-table: 0.2.0 - transitivePeerDependencies: - - supports-color - - espree@9.6.1: - dependencies: - acorn: 8.14.0 - acorn-jsx: 5.3.2(acorn@8.14.0) - eslint-visitor-keys: 3.4.3 - - esquery@1.6.0: - dependencies: - estraverse: 5.3.0 - - esrecurse@4.3.0: - dependencies: - estraverse: 5.3.0 - - estraverse@5.3.0: {} - estree-walker@3.0.3: dependencies: '@types/estree': 1.0.6 - esutils@2.0.3: {} - ethereum-cryptography@2.2.1: dependencies: '@noble/curves': 1.4.2 @@ -7233,8 +6993,6 @@ snapshots: - bufferutil - utf-8-validate - event-target-shim@5.0.1: {} - eventemitter3@5.0.1: {} events@3.3.0: {} @@ -7254,7 +7012,7 @@ snapshots: execa@9.5.2: dependencies: '@sindresorhus/merge-streams': 4.0.0 - cross-spawn: 7.0.5 + cross-spawn: 7.0.6 figures: 6.1.0 get-stream: 9.0.1 human-signals: 8.0.0 @@ -7276,30 +7034,14 @@ snapshots: iconv-lite: 0.4.24 tmp: 0.0.33 - fast-copy@3.0.2: {} - - fast-deep-equal@3.1.3: {} + fast-content-type-parse@2.0.1: {} - fast-glob@3.3.2: - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.8 - - fast-json-stable-stringify@2.1.0: {} - - fast-levenshtein@2.0.6: {} + fast-copy@3.0.2: {} fast-redact@3.5.0: {} fast-safe-stringify@2.1.1: {} - fastq@1.17.1: - dependencies: - reusify: 1.0.4 - fdir@6.4.2(picomatch@4.0.2): optionalDependencies: picomatch: 4.0.2 @@ -7311,18 +7053,10 @@ snapshots: fflate@0.8.2: {} - figures@3.2.0: - dependencies: - escape-string-regexp: 1.0.5 - figures@6.1.0: dependencies: is-unicode-supported: 2.1.0 - file-entry-cache@6.0.1: - dependencies: - flat-cache: 3.2.0 - file-uri-to-path@1.0.0: {} fill-range@7.1.1: @@ -7334,12 +7068,6 @@ snapshots: locate-path: 6.0.0 path-exists: 4.0.0 - flat-cache@3.2.0: - dependencies: - flatted: 3.3.1 - keyv: 4.5.4 - rimraf: 3.0.2 - flat@5.0.2: {} flatted@3.3.1: {} @@ -7348,13 +7076,17 @@ snapshots: optionalDependencies: debug: 4.3.7(supports-color@8.1.1) + follow-redirects@1.15.9(debug@4.4.0): + optionalDependencies: + debug: 4.4.0 + for-each@0.3.3: dependencies: is-callable: 1.2.7 foreground-child@3.3.0: dependencies: - cross-spawn: 7.0.5 + cross-spawn: 7.0.6 signal-exit: 4.1.0 form-data@4.0.1: @@ -7375,6 +7107,12 @@ snapshots: jsonfile: 6.1.0 universalify: 2.0.1 + fs-extra@11.3.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + fs-minipass@2.1.0: dependencies: minipass: 3.3.6 @@ -7433,10 +7171,6 @@ snapshots: dependencies: is-glob: 4.0.3 - glob-parent@6.0.2: - dependencies: - is-glob: 4.0.3 - glob@10.4.5: dependencies: foreground-child: 3.3.0 @@ -7446,15 +7180,6 @@ snapshots: package-json-from-dist: 1.0.1 path-scurry: 1.11.1 - glob@11.0.0: - dependencies: - foreground-child: 3.3.0 - jackspeak: 4.0.1 - minimatch: 10.0.1 - minipass: 7.1.2 - package-json-from-dist: 1.0.0 - path-scurry: 2.0.0 - glob@7.2.3: dependencies: fs.realpath: 1.0.0 @@ -7463,6 +7188,7 @@ snapshots: minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 + optional: true glob@8.1.0: dependencies: @@ -7478,37 +7204,24 @@ snapshots: es6-error: 4.1.1 matcher: 3.0.0 roarr: 2.15.4 - semver: 7.6.3 + semver: 7.7.1 serialize-error: 7.0.1 - globals@13.24.0: - dependencies: - type-fest: 0.20.2 - globalthis@1.0.4: dependencies: define-properties: 1.2.1 - gopd: 1.0.1 - - globby@11.1.0: - dependencies: - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.3.2 - ignore: 5.3.2 - merge2: 1.4.1 - slash: 3.0.0 + gopd: 1.2.0 gopd@1.0.1: dependencies: get-intrinsic: 1.2.4 + gopd@1.2.0: {} + graceful-fs@4.2.10: {} graceful-fs@4.2.11: {} - graphemer@1.4.0: {} - handlebars@4.7.8: dependencies: minimist: 1.2.8 @@ -7604,17 +7317,10 @@ snapshots: dependencies: safer-buffer: 2.1.2 - idb@8.0.0: {} + idb@8.0.2: {} ieee754@1.2.1: {} - ignore@5.3.2: {} - - import-fresh@3.3.0: - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 - imurmurhash@0.1.4: {} indent-string@4.0.0: @@ -7636,18 +7342,18 @@ snapshots: ini@1.3.8: {} - ink@5.1.0(@types/react@18.3.14)(react@18.3.1): + ink@5.1.0(@types/react@18.3.12)(react@18.3.1): dependencies: '@alcalzone/ansi-tokenize': 0.1.3 ansi-escapes: 7.0.0 ansi-styles: 6.2.1 auto-bind: 5.0.1 - chalk: 5.4.1 + chalk: 5.3.0 cli-boxes: 3.0.0 cli-cursor: 4.0.0 cli-truncate: 4.0.0 code-excerpt: 4.0.0 - es-toolkit: 1.29.0 + es-toolkit: 1.32.0 indent-string: 5.0.0 is-in-ci: 1.0.0 patch-console: 2.0.0 @@ -7658,34 +7364,16 @@ snapshots: slice-ansi: 7.1.0 stack-utils: 2.0.6 string-width: 7.2.0 - type-fest: 4.30.0 + type-fest: 4.33.0 widest-line: 5.0.0 wrap-ansi: 9.0.0 ws: 8.18.0 yoga-wasm-web: 0.3.3 optionalDependencies: - '@types/react': 18.3.14 + '@types/react': 18.3.12 transitivePeerDependencies: - - bufferutil - - utf-8-validate - - inquirer@9.2.16: - dependencies: - '@ljharb/through': 2.3.13 - ansi-escapes: 4.3.2 - chalk: 5.3.0 - cli-cursor: 3.1.0 - cli-width: 4.1.0 - external-editor: 3.1.0 - figures: 3.2.0 - lodash: 4.17.21 - mute-stream: 1.0.0 - ora: 5.4.1 - run-async: 3.0.0 - rxjs: 7.8.1 - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 6.2.0 + - bufferutil + - utf-8-validate ip-address@9.0.5: dependencies: @@ -7739,8 +7427,6 @@ snapshots: is-in-ci@1.0.0: {} - is-interactive@1.0.0: {} - is-interactive@2.0.0: {} is-lambda@1.0.1: @@ -7752,8 +7438,6 @@ snapshots: is-number@7.0.0: {} - is-path-inside@3.0.3: {} - is-plain-obj@2.1.0: {} is-plain-obj@4.1.0: {} @@ -7795,12 +7479,6 @@ snapshots: optionalDependencies: '@pkgjs/parseargs': 0.11.0 - jackspeak@4.0.1: - dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 - joycon@3.1.1: {} js-sha3@0.8.0: {} @@ -7846,12 +7524,6 @@ snapshots: dependencies: bignumber.js: 9.1.2 - json-buffer@3.0.1: {} - - json-schema-traverse@0.4.1: {} - - json-stable-stringify-without-jsonify@1.0.1: {} - json-stringify-safe@5.0.1: {} jsonc-parser@3.3.1: {} @@ -7869,21 +7541,10 @@ snapshots: jsonparse@1.3.1: {} - keyv@4.5.4: - dependencies: - json-buffer: 3.0.1 - kind-of@3.2.2: dependencies: is-buffer: 1.1.6 - kleur@4.1.5: {} - - levn@0.4.1: - dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 - libp2p-crypto@0.21.2: dependencies: '@noble/ed25519': 1.7.3 @@ -7905,7 +7566,7 @@ snapshots: dependencies: p-locate: 5.0.0 - lodash.merge@4.6.2: {} + lodash.camelcase@4.3.0: {} lodash.sortby@4.7.0: {} @@ -7918,11 +7579,13 @@ snapshots: log-symbols@6.0.0: dependencies: - chalk: 5.4.1 + chalk: 5.3.0 is-unicode-supported: 1.3.0 long@4.0.0: {} + long@5.2.4: {} + loose-envify@1.4.0: dependencies: js-tokens: 4.0.0 @@ -7950,7 +7613,7 @@ snapshots: make-fetch-happen@9.1.0: dependencies: - agentkeepalive: 4.5.0 + agentkeepalive: 4.6.0 cacache: 15.3.0 http-cache-semantics: 4.1.1 http-proxy-agent: 4.0.1 @@ -7975,327 +7638,12 @@ snapshots: dependencies: escape-string-regexp: 4.0.0 - mdast-util-from-markdown@1.3.1: - dependencies: - '@types/mdast': 3.0.15 - '@types/unist': 2.0.11 - decode-named-character-reference: 1.0.2 - mdast-util-to-string: 3.2.0 - micromark: 3.2.0 - micromark-util-decode-numeric-character-reference: 1.1.0 - micromark-util-decode-string: 1.1.0 - micromark-util-normalize-identifier: 1.1.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - unist-util-stringify-position: 3.0.3 - uvu: 0.5.6 - transitivePeerDependencies: - - supports-color - - mdast-util-from-markdown@2.0.1: - dependencies: - '@types/mdast': 4.0.4 - '@types/unist': 3.0.3 - decode-named-character-reference: 1.0.2 - devlop: 1.1.0 - mdast-util-to-string: 4.0.0 - micromark: 4.0.0 - micromark-util-decode-numeric-character-reference: 2.0.1 - micromark-util-decode-string: 2.0.0 - micromark-util-normalize-identifier: 2.0.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - unist-util-stringify-position: 4.0.0 - transitivePeerDependencies: - - supports-color - - mdast-util-to-string@3.2.0: - dependencies: - '@types/mdast': 3.0.15 - - mdast-util-to-string@4.0.0: - dependencies: - '@types/mdast': 4.0.4 - mdn-data@2.0.30: {} memorystream@0.3.1: {} merge-stream@2.0.0: {} - merge2@1.4.1: {} - - micromark-core-commonmark@1.1.0: - dependencies: - decode-named-character-reference: 1.0.2 - micromark-factory-destination: 1.1.0 - micromark-factory-label: 1.1.0 - micromark-factory-space: 1.1.0 - micromark-factory-title: 1.1.0 - micromark-factory-whitespace: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-chunked: 1.1.0 - micromark-util-classify-character: 1.1.0 - micromark-util-html-tag-name: 1.2.0 - micromark-util-normalize-identifier: 1.1.0 - micromark-util-resolve-all: 1.1.0 - micromark-util-subtokenize: 1.1.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 - - micromark-core-commonmark@2.0.1: - dependencies: - decode-named-character-reference: 1.0.2 - devlop: 1.1.0 - micromark-factory-destination: 2.0.0 - micromark-factory-label: 2.0.0 - micromark-factory-space: 2.0.0 - micromark-factory-title: 2.0.0 - micromark-factory-whitespace: 2.0.0 - micromark-util-character: 2.1.0 - micromark-util-chunked: 2.0.0 - micromark-util-classify-character: 2.0.0 - micromark-util-html-tag-name: 2.0.0 - micromark-util-normalize-identifier: 2.0.0 - micromark-util-resolve-all: 2.0.0 - micromark-util-subtokenize: 2.0.1 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - - micromark-factory-destination@1.1.0: - dependencies: - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - - micromark-factory-destination@2.0.0: - dependencies: - micromark-util-character: 2.1.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - - micromark-factory-label@1.1.0: - dependencies: - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 - - micromark-factory-label@2.0.0: - dependencies: - devlop: 1.1.0 - micromark-util-character: 2.1.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - - micromark-factory-space@1.1.0: - dependencies: - micromark-util-character: 1.2.0 - micromark-util-types: 1.1.0 - - micromark-factory-space@2.0.0: - dependencies: - micromark-util-character: 2.1.0 - micromark-util-types: 2.0.0 - - micromark-factory-title@1.1.0: - dependencies: - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - - micromark-factory-title@2.0.0: - dependencies: - micromark-factory-space: 2.0.0 - micromark-util-character: 2.1.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - - micromark-factory-whitespace@1.1.0: - dependencies: - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - - micromark-factory-whitespace@2.0.0: - dependencies: - micromark-factory-space: 2.0.0 - micromark-util-character: 2.1.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - - micromark-util-character@1.2.0: - dependencies: - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - - micromark-util-character@2.1.0: - dependencies: - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - - micromark-util-chunked@1.1.0: - dependencies: - micromark-util-symbol: 1.1.0 - - micromark-util-chunked@2.0.0: - dependencies: - micromark-util-symbol: 2.0.0 - - micromark-util-classify-character@1.1.0: - dependencies: - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - - micromark-util-classify-character@2.0.0: - dependencies: - micromark-util-character: 2.1.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - - micromark-util-combine-extensions@1.1.0: - dependencies: - micromark-util-chunked: 1.1.0 - micromark-util-types: 1.1.0 - - micromark-util-combine-extensions@2.0.0: - dependencies: - micromark-util-chunked: 2.0.0 - micromark-util-types: 2.0.0 - - micromark-util-decode-numeric-character-reference@1.1.0: - dependencies: - micromark-util-symbol: 1.1.0 - - micromark-util-decode-numeric-character-reference@2.0.1: - dependencies: - micromark-util-symbol: 2.0.0 - - micromark-util-decode-string@1.1.0: - dependencies: - decode-named-character-reference: 1.0.2 - micromark-util-character: 1.2.0 - micromark-util-decode-numeric-character-reference: 1.1.0 - micromark-util-symbol: 1.1.0 - - micromark-util-decode-string@2.0.0: - dependencies: - decode-named-character-reference: 1.0.2 - micromark-util-character: 2.1.0 - micromark-util-decode-numeric-character-reference: 2.0.1 - micromark-util-symbol: 2.0.0 - - micromark-util-encode@1.1.0: {} - - micromark-util-encode@2.0.0: {} - - micromark-util-html-tag-name@1.2.0: {} - - micromark-util-html-tag-name@2.0.0: {} - - micromark-util-normalize-identifier@1.1.0: - dependencies: - micromark-util-symbol: 1.1.0 - - micromark-util-normalize-identifier@2.0.0: - dependencies: - micromark-util-symbol: 2.0.0 - - micromark-util-resolve-all@1.1.0: - dependencies: - micromark-util-types: 1.1.0 - - micromark-util-resolve-all@2.0.0: - dependencies: - micromark-util-types: 2.0.0 - - micromark-util-sanitize-uri@1.2.0: - dependencies: - micromark-util-character: 1.2.0 - micromark-util-encode: 1.1.0 - micromark-util-symbol: 1.1.0 - - micromark-util-sanitize-uri@2.0.0: - dependencies: - micromark-util-character: 2.1.0 - micromark-util-encode: 2.0.0 - micromark-util-symbol: 2.0.0 - - micromark-util-subtokenize@1.1.0: - dependencies: - micromark-util-chunked: 1.1.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 - - micromark-util-subtokenize@2.0.1: - dependencies: - devlop: 1.1.0 - micromark-util-chunked: 2.0.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - - micromark-util-symbol@1.1.0: {} - - micromark-util-symbol@2.0.0: {} - - micromark-util-types@1.1.0: {} - - micromark-util-types@2.0.0: {} - - micromark@3.2.0: - dependencies: - '@types/debug': 4.1.12 - debug: 4.3.7(supports-color@8.1.1) - decode-named-character-reference: 1.0.2 - micromark-core-commonmark: 1.1.0 - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-chunked: 1.1.0 - micromark-util-combine-extensions: 1.1.0 - micromark-util-decode-numeric-character-reference: 1.1.0 - micromark-util-encode: 1.1.0 - micromark-util-normalize-identifier: 1.1.0 - micromark-util-resolve-all: 1.1.0 - micromark-util-sanitize-uri: 1.2.0 - micromark-util-subtokenize: 1.1.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 - transitivePeerDependencies: - - supports-color - - micromark@4.0.0: - dependencies: - '@types/debug': 4.1.12 - debug: 4.3.7(supports-color@8.1.1) - decode-named-character-reference: 1.0.2 - devlop: 1.1.0 - micromark-core-commonmark: 2.0.1 - micromark-factory-space: 2.0.0 - micromark-util-character: 2.1.0 - micromark-util-chunked: 2.0.0 - micromark-util-combine-extensions: 2.0.0 - micromark-util-decode-numeric-character-reference: 2.0.1 - micromark-util-encode: 2.0.0 - micromark-util-normalize-identifier: 2.0.0 - micromark-util-resolve-all: 2.0.0 - micromark-util-sanitize-uri: 2.0.0 - micromark-util-subtokenize: 2.0.1 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - transitivePeerDependencies: - - supports-color - - micromatch@4.0.8: - dependencies: - braces: 3.0.3 - picomatch: 2.3.1 - mime-db@1.52.0: {} mime-types@2.1.35: @@ -8315,6 +7663,7 @@ snapshots: minimatch@3.1.2: dependencies: brace-expansion: 1.1.11 + optional: true minimatch@5.1.6: dependencies: @@ -8422,16 +7771,12 @@ snapshots: mock-socket@9.3.1: {} - mri@1.2.0: {} - mrmime@2.0.0: {} ms@2.1.3: {} multiformats@9.9.0: {} - mute-stream@1.0.0: {} - mute-stream@2.0.0: {} mz@2.7.0: @@ -8440,9 +7785,12 @@ snapshots: object-assign: 4.1.1 thenify-all: 1.6.0 + nan@2.22.0: + optional: true + nanoid@3.3.7: {} - napi-build-utils@1.0.2: {} + napi-build-utils@2.0.0: {} napi-maybe-compressed-blob-darwin-arm64@0.0.11: optional: true @@ -8463,8 +7811,6 @@ snapshots: napi-maybe-compressed-blob-linux-arm64-gnu: 0.0.11 napi-maybe-compressed-blob-linux-x64-gnu: 0.0.11 - natural-compare@1.4.0: {} - negotiator@0.6.4: optional: true @@ -8472,15 +7818,15 @@ snapshots: nock@13.5.6: dependencies: - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.0 json-stringify-safe: 5.0.1 propagate: 2.0.1 transitivePeerDependencies: - supports-color - node-abi@3.71.0: + node-abi@3.74.0: dependencies: - semver: 7.6.3 + semver: 7.7.1 node-addon-api@7.1.1: {} @@ -8509,7 +7855,7 @@ snapshots: nopt: 5.0.0 npmlog: 6.0.2 rimraf: 3.0.2 - semver: 7.6.3 + semver: 7.7.1 tar: 6.2.1 which: 2.0.2 transitivePeerDependencies: @@ -8525,7 +7871,7 @@ snapshots: normalize-package-data@6.0.2: dependencies: hosted-git-info: 7.0.2 - semver: 7.6.3 + semver: 7.7.1 validate-npm-package-license: 3.0.4 normalize-path@3.0.0: {} @@ -8573,30 +7919,9 @@ snapshots: dependencies: mimic-function: 5.0.1 - optionator@0.9.4: - dependencies: - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.4.1 - prelude-ls: 1.2.1 - type-check: 0.4.0 - word-wrap: 1.2.5 - - ora@5.4.1: - dependencies: - bl: 4.1.0 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-spinners: 2.9.2 - is-interactive: 1.0.0 - is-unicode-supported: 0.1.0 - log-symbols: 4.1.0 - strip-ansi: 6.0.1 - wcwidth: 1.0.1 - - ora@8.1.1: + ora@8.2.0: dependencies: - chalk: 5.4.1 + chalk: 5.3.0 cli-cursor: 5.0.0 cli-spinners: 2.9.2 is-interactive: 2.0.0 @@ -8608,17 +7933,17 @@ snapshots: os-tmpdir@1.0.2: {} - ox@0.1.2(typescript@5.6.3)(zod@3.23.8): + ox@0.6.7(typescript@5.5.4)(zod@3.24.1): dependencies: '@adraffy/ens-normalize': 1.11.0 - '@noble/curves': 1.6.0 - '@noble/hashes': 1.5.0 - '@scure/bip32': 1.5.0 - '@scure/bip39': 1.4.0 - abitype: 1.0.6(typescript@5.6.3)(zod@3.23.8) + '@noble/curves': 1.8.1 + '@noble/hashes': 1.7.1 + '@scure/bip32': 1.6.2 + '@scure/bip39': 1.5.4 + abitype: 1.0.8(typescript@5.5.4)(zod@3.24.1) eventemitter3: 5.0.1 optionalDependencies: - typescript: 5.6.3 + typescript: 5.5.4 transitivePeerDependencies: - zod @@ -8635,19 +7960,13 @@ snapshots: aggregate-error: 3.1.0 optional: true - package-json-from-dist@1.0.0: {} - package-json-from-dist@1.0.1: {} - parent-module@1.0.1: - dependencies: - callsites: 3.1.0 - parse-json@8.1.0: dependencies: '@babel/code-frame': 7.26.2 index-to-position: 0.1.2 - type-fest: 4.30.0 + type-fest: 4.33.0 parse-ms@4.0.0: {} @@ -8667,7 +7986,8 @@ snapshots: path-exists@4.0.0: {} - path-is-absolute@1.0.1: {} + path-is-absolute@1.0.1: + optional: true path-key@3.1.1: {} @@ -8678,13 +7998,6 @@ snapshots: lru-cache: 10.4.3 minipass: 7.1.2 - path-scurry@2.0.0: - dependencies: - lru-cache: 11.0.2 - minipass: 7.1.2 - - path-type@4.0.0: {} - pathe@1.1.2: {} pathval@1.1.1: {} @@ -8709,7 +8022,7 @@ snapshots: dependencies: split2: 4.2.0 - pino-pretty@11.3.0: + pino-pretty@13.0.0: dependencies: colorette: 2.0.20 dateformat: 4.6.3 @@ -8721,21 +8034,20 @@ snapshots: on-exit-leak-free: 2.1.2 pino-abstract-transport: 2.0.0 pump: 3.0.2 - readable-stream: 4.5.2 secure-json-parse: 2.7.0 sonic-boom: 4.2.0 strip-json-comments: 3.1.1 pino-std-serializers@7.0.0: {} - pino@9.5.0: + pino@9.6.0: dependencies: atomic-sleep: 1.0.0 fast-redact: 3.5.0 on-exit-leak-free: 2.1.2 pino-abstract-transport: 2.0.0 pino-std-serializers: 7.0.0 - process-warning: 4.0.0 + process-warning: 4.0.1 quick-format-unescaped: 4.0.4 real-require: 0.2.0 safe-stable-stringify: 2.5.0 @@ -8746,26 +8058,26 @@ snapshots: pnpm@9.13.0: {} - polkadot-api@1.7.7(postcss@8.4.49)(rxjs@7.8.1)(tsx@4.19.2)(yaml@2.4.5): + polkadot-api@1.7.4(postcss@8.4.49)(rxjs@7.8.1)(tsx@4.19.2)(yaml@2.7.0): dependencies: - '@polkadot-api/cli': 0.9.21(postcss@8.4.49)(tsx@4.19.2)(yaml@2.4.5) - '@polkadot-api/ink-contracts': 0.2.2 + '@polkadot-api/cli': 0.9.18(postcss@8.4.49)(tsx@4.19.2)(yaml@2.7.0) + '@polkadot-api/ink-contracts': 0.2.1 '@polkadot-api/json-rpc-provider': 0.0.4 - '@polkadot-api/known-chains': 0.5.8 + '@polkadot-api/known-chains': 0.5.6 '@polkadot-api/logs-provider': 0.0.6 - '@polkadot-api/metadata-builders': 0.9.2 - '@polkadot-api/metadata-compatibility': 0.1.12 - '@polkadot-api/observable-client': 0.6.3(@polkadot-api/substrate-client@0.3.0)(rxjs@7.8.1) - '@polkadot-api/pjs-signer': 0.6.1 + '@polkadot-api/metadata-builders': 0.9.1 + '@polkadot-api/metadata-compatibility': 0.1.11 + '@polkadot-api/observable-client': 0.6.2(@polkadot-api/substrate-client@0.3.0)(rxjs@7.8.1) + '@polkadot-api/pjs-signer': 0.6.0 '@polkadot-api/polkadot-sdk-compat': 2.3.1 '@polkadot-api/polkadot-signer': 0.1.6 - '@polkadot-api/signer': 0.1.11 - '@polkadot-api/sm-provider': 0.1.7(@polkadot-api/smoldot@0.3.7) - '@polkadot-api/smoldot': 0.3.7 - '@polkadot-api/substrate-bindings': 0.9.4 + '@polkadot-api/signer': 0.1.10 + '@polkadot-api/sm-provider': 0.1.6(@polkadot-api/smoldot@0.3.5) + '@polkadot-api/smoldot': 0.3.5 + '@polkadot-api/substrate-bindings': 0.9.3 '@polkadot-api/substrate-client': 0.3.0 '@polkadot-api/utils': 0.1.2 - '@polkadot-api/ws-provider': 0.3.6 + '@polkadot-api/ws-provider': 0.3.5 rxjs: 7.8.1 transitivePeerDependencies: - '@microsoft/api-extractor' @@ -8780,13 +8092,13 @@ snapshots: possible-typed-array-names@1.0.0: {} - postcss-load-config@6.0.1(postcss@8.4.49)(tsx@4.19.2)(yaml@2.4.5): + postcss-load-config@6.0.1(postcss@8.4.49)(tsx@4.19.2)(yaml@2.7.0): dependencies: lilconfig: 3.1.3 optionalDependencies: postcss: 8.4.49 tsx: 4.19.2 - yaml: 2.4.5 + yaml: 2.7.0 postcss@8.4.49: dependencies: @@ -8794,52 +8106,26 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 - prebuild-install@7.1.2: + prebuild-install@7.1.3: dependencies: detect-libc: 2.0.3 expand-template: 2.0.3 github-from-package: 0.0.0 minimist: 1.2.8 mkdirp-classic: 0.5.3 - napi-build-utils: 1.0.2 - node-abi: 3.71.0 + napi-build-utils: 2.0.0 + node-abi: 3.74.0 pump: 3.0.2 rc: 1.2.8 simple-get: 4.0.1 - tar-fs: 2.1.1 + tar-fs: 2.1.2 tunnel-agent: 0.6.0 - prelude-ls@1.2.1: {} - - prettier-plugin-jsdoc@0.3.38(prettier@2.8.8): - dependencies: - binary-searching: 2.0.5 - comment-parser: 1.4.1 - mdast-util-from-markdown: 1.3.1 - prettier: 2.8.8 - transitivePeerDependencies: - - supports-color - - prettier-plugin-jsdoc@1.3.2(prettier@3.4.2): - dependencies: - binary-searching: 2.0.5 - comment-parser: 1.4.1 - mdast-util-from-markdown: 2.0.1 - prettier: 3.4.2 - transitivePeerDependencies: - - supports-color - - prettier@2.8.8: {} - - prettier@3.4.2: {} - pretty-ms@9.2.0: dependencies: parse-ms: 4.0.0 - process-warning@4.0.0: {} - - process@0.11.10: {} + process-warning@4.0.1: {} promise-inflight@1.0.1: optional: true @@ -8867,9 +8153,24 @@ snapshots: '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 '@types/long': 4.0.2 - '@types/node': 22.10.5 + '@types/node': 22.12.0 long: 4.0.0 + protobufjs@7.4.0: + 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/node': 22.10.5 + long: 5.2.4 + proxy-from-env@1.1.0: {} ps-node@0.1.6: @@ -8889,8 +8190,6 @@ snapshots: querystringify@2.2.0: {} - queue-microtask@1.2.3: {} - quick-format-unescaped@4.0.4: {} randombytes@2.1.0: @@ -8919,7 +8218,7 @@ snapshots: '@types/normalize-package-data': 2.4.4 normalize-package-data: 6.0.2 parse-json: 8.1.0 - type-fest: 4.30.0 + type-fest: 4.33.0 unicorn-magic: 0.1.0 readable-stream@3.6.2: @@ -8928,19 +8227,11 @@ snapshots: string_decoder: 1.3.0 util-deprecate: 1.0.2 - readable-stream@4.5.2: - dependencies: - abort-controller: 3.0.0 - buffer: 6.0.3 - events: 3.3.0 - process: 0.11.10 - string_decoder: 1.3.0 - readdirp@3.6.0: dependencies: picomatch: 2.3.1 - readdirp@4.0.2: {} + readdirp@4.1.1: {} real-require@0.2.0: {} @@ -8952,17 +8243,10 @@ snapshots: requires-port@1.0.0: {} - resolve-from@4.0.0: {} - resolve-from@5.0.0: {} resolve-pkg-maps@1.0.0: {} - restore-cursor@3.1.0: - dependencies: - onetime: 5.1.2 - signal-exit: 3.0.7 - restore-cursor@4.0.0: dependencies: onetime: 5.1.2 @@ -8976,16 +8260,10 @@ snapshots: retry@0.12.0: optional: true - reusify@1.0.4: {} - rimraf@3.0.2: dependencies: glob: 7.2.3 - - rimraf@6.0.1: - dependencies: - glob: 11.0.0 - package-json-from-dist: 1.0.0 + optional: true rlp@3.0.0: {} @@ -9022,24 +8300,39 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.26.0 fsevents: 2.3.3 + rollup@4.34.2: + dependencies: + '@types/estree': 1.0.6 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.34.2 + '@rollup/rollup-android-arm64': 4.34.2 + '@rollup/rollup-darwin-arm64': 4.34.2 + '@rollup/rollup-darwin-x64': 4.34.2 + '@rollup/rollup-freebsd-arm64': 4.34.2 + '@rollup/rollup-freebsd-x64': 4.34.2 + '@rollup/rollup-linux-arm-gnueabihf': 4.34.2 + '@rollup/rollup-linux-arm-musleabihf': 4.34.2 + '@rollup/rollup-linux-arm64-gnu': 4.34.2 + '@rollup/rollup-linux-arm64-musl': 4.34.2 + '@rollup/rollup-linux-loongarch64-gnu': 4.34.2 + '@rollup/rollup-linux-powerpc64le-gnu': 4.34.2 + '@rollup/rollup-linux-riscv64-gnu': 4.34.2 + '@rollup/rollup-linux-s390x-gnu': 4.34.2 + '@rollup/rollup-linux-x64-gnu': 4.34.2 + '@rollup/rollup-linux-x64-musl': 4.34.2 + '@rollup/rollup-win32-arm64-msvc': 4.34.2 + '@rollup/rollup-win32-ia32-msvc': 4.34.2 + '@rollup/rollup-win32-x64-msvc': 4.34.2 + fsevents: 2.3.3 + rrweb-cssom@0.6.0: {} rrweb-cssom@0.7.1: {} - run-async@3.0.0: {} - - run-parallel@1.2.0: - dependencies: - queue-microtask: 1.2.3 - rxjs@7.8.1: dependencies: tslib: 2.8.1 - sade@1.8.1: - dependencies: - mri: 1.2.0 - safe-buffer@5.2.1: {} safe-stable-stringify@2.5.0: {} @@ -9062,7 +8355,7 @@ snapshots: semver@5.7.2: {} - semver@7.6.3: {} + semver@7.7.1: {} serialize-error@7.0.1: dependencies: @@ -9117,8 +8410,6 @@ snapshots: mrmime: 2.0.0 totalist: 3.0.1 - slash@3.0.0: {} - slice-ansi@5.0.0: dependencies: ansi-styles: 6.2.1 @@ -9140,7 +8431,7 @@ snapshots: - utf-8-validate optional: true - smoldot@2.0.33: + smoldot@2.0.31: dependencies: ws: 8.18.0 transitivePeerDependencies: @@ -9193,16 +8484,18 @@ snapshots: spdx-correct@3.2.0: dependencies: spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.20 + spdx-license-ids: 3.0.21 spdx-exceptions@2.5.0: {} spdx-expression-parse@3.0.1: dependencies: spdx-exceptions: 2.5.0 - spdx-license-ids: 3.0.20 + spdx-license-ids: 3.0.21 - spdx-license-ids@3.0.20: {} + spdx-license-ids@3.0.21: {} + + split-ca@1.0.1: {} split2@4.2.0: {} @@ -9212,7 +8505,7 @@ snapshots: dependencies: bindings: 1.5.0 node-addon-api: 7.1.1 - prebuild-install: 7.1.2 + prebuild-install: 7.1.3 tar: 6.2.1 optionalDependencies: node-gyp: 8.4.1 @@ -9220,6 +8513,14 @@ snapshots: - bluebird - supports-color + ssh2@1.16.0: + dependencies: + asn1: 0.2.6 + bcrypt-pbkdf: 1.0.2 + optionalDependencies: + cpu-features: 0.0.10 + nan: 2.22.0 + ssri@8.0.1: dependencies: minipass: 3.3.6 @@ -9275,7 +8576,7 @@ snapshots: sucrase@3.35.0: dependencies: - '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/gen-mapping': 0.3.8 commander: 4.1.1 glob: 10.4.5 lines-and-columns: 1.2.4 @@ -9297,7 +8598,14 @@ snapshots: dependencies: connected-domain: 1.0.0 - tar-fs@2.1.1: + tar-fs@2.0.1: + dependencies: + chownr: 1.1.4 + mkdirp-classic: 0.5.3 + pump: 3.0.2 + tar-stream: 2.2.0 + + tar-fs@2.1.2: dependencies: chownr: 1.1.4 mkdirp-classic: 0.5.3 @@ -9321,8 +8629,6 @@ snapshots: mkdirp: 1.0.4 yallist: 4.0.0 - text-table@0.2.0: {} - thenify-all@1.6.0: dependencies: thenify: 3.3.1 @@ -9343,6 +8649,8 @@ snapshots: tinyexec@0.3.1: {} + tinyexec@0.3.2: {} + tinyglobby@0.2.10: dependencies: fdir: 6.4.2(picomatch@4.0.2) @@ -9391,13 +8699,9 @@ snapshots: tree-kill@1.2.2: {} - ts-api-utils@1.4.0(typescript@5.6.3): - dependencies: - typescript: 5.6.3 - ts-interface-checker@0.1.13: {} - ts-node@10.9.2(@types/node@22.10.5)(typescript@5.6.3): + ts-node@10.9.2(@types/node@22.10.5)(typescript@5.5.4): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 @@ -9411,39 +8715,39 @@ snapshots: create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.6.3 + typescript: 5.5.4 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 - tsc-prog@2.3.0(typescript@5.7.2): + tsc-prog@2.3.0(typescript@5.5.4): dependencies: - typescript: 5.7.2 + typescript: 5.5.4 tslib@2.7.0: {} tslib@2.8.1: {} - tsup@8.3.5(postcss@8.4.49)(tsx@4.19.2)(typescript@5.7.2)(yaml@2.4.5): + tsup@8.3.6(postcss@8.4.49)(tsx@4.19.2)(typescript@5.5.4)(yaml@2.7.0): dependencies: - bundle-require: 5.0.0(esbuild@0.24.0) + bundle-require: 5.1.0(esbuild@0.24.2) cac: 6.7.14 - chokidar: 4.0.1 - consola: 3.2.3 + chokidar: 4.0.3 + consola: 3.4.0 debug: 4.3.7(supports-color@8.1.1) - esbuild: 0.24.0 + esbuild: 0.24.2 joycon: 3.1.1 picocolors: 1.1.1 - postcss-load-config: 6.0.1(postcss@8.4.49)(tsx@4.19.2)(yaml@2.4.5) + postcss-load-config: 6.0.1(postcss@8.4.49)(tsx@4.19.2)(yaml@2.7.0) resolve-from: 5.0.0 - rollup: 4.26.0 + rollup: 4.34.2 source-map: 0.8.0-beta.0 sucrase: 3.35.0 - tinyexec: 0.3.1 + tinyexec: 0.3.2 tinyglobby: 0.2.10 tree-kill: 1.2.2 optionalDependencies: postcss: 8.4.49 - typescript: 5.7.2 + typescript: 5.5.4 transitivePeerDependencies: - jiti - supports-color @@ -9461,21 +8765,17 @@ snapshots: dependencies: safe-buffer: 5.2.1 - type-check@0.4.0: - dependencies: - prelude-ls: 1.2.1 + tweetnacl@0.14.5: {} type-detect@4.1.0: {} type-fest@0.13.1: {} - type-fest@0.20.2: {} - type-fest@0.21.3: {} - type-fest@4.30.0: {} + type-fest@4.33.0: {} - typeorm@0.3.20(sqlite3@5.1.7)(ts-node@10.9.2(@types/node@22.10.5)(typescript@5.6.3)): + typeorm@0.3.20(sqlite3@5.1.7)(ts-node@10.9.2(@types/node@22.10.5)(typescript@5.5.4)): dependencies: '@sqltools/formatter': 1.2.5 app-root-path: 3.1.0 @@ -9484,7 +8784,7 @@ snapshots: cli-highlight: 2.1.11 dayjs: 1.11.13 debug: 4.3.7(supports-color@8.1.1) - dotenv: 16.4.5 + dotenv: 16.4.7 glob: 10.4.5 mkdirp: 2.1.6 reflect-metadata: 0.2.2 @@ -9494,13 +8794,11 @@ snapshots: yargs: 17.7.2 optionalDependencies: sqlite3: 5.1.7 - ts-node: 10.9.2(@types/node@22.10.5)(typescript@5.6.3) + ts-node: 10.9.2(@types/node@22.10.5)(typescript@5.5.4) transitivePeerDependencies: - supports-color - typescript@5.6.3: {} - - typescript@5.7.2: {} + typescript@5.5.4: {} uglify-js@3.19.3: optional: true @@ -9527,24 +8825,12 @@ snapshots: imurmurhash: 0.1.4 optional: true - unist-util-stringify-position@3.0.3: - dependencies: - '@types/unist': 2.0.11 - - unist-util-stringify-position@4.0.0: - dependencies: - '@types/unist': 3.0.3 - universal-user-agent@7.0.2: {} universalify@0.2.0: {} universalify@2.0.1: {} - uri-js@4.4.1: - dependencies: - punycode: 2.3.1 - url-parse@1.5.10: dependencies: querystringify: 2.2.0 @@ -9560,14 +8846,9 @@ snapshots: is-typed-array: 1.1.13 which-typed-array: 1.1.15 - uuid@9.0.1: {} + uuid@10.0.0: {} - uvu@0.5.6: - dependencies: - dequal: 2.0.3 - diff: 5.2.0 - kleur: 4.1.5 - sade: 1.8.1 + uuid@9.0.1: {} v8-compile-cache-lib@3.0.1: {} @@ -9576,19 +8857,18 @@ snapshots: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 - viem@2.21.45(typescript@5.6.3)(zod@3.23.8): + viem@2.22.21(typescript@5.5.4)(zod@3.24.1): dependencies: - '@noble/curves': 1.6.0 - '@noble/hashes': 1.5.0 - '@scure/bip32': 1.5.0 - '@scure/bip39': 1.4.0 - abitype: 1.0.6(typescript@5.6.3)(zod@3.23.8) + '@noble/curves': 1.8.1 + '@noble/hashes': 1.7.1 + '@scure/bip32': 1.6.2 + '@scure/bip39': 1.5.4 + abitype: 1.0.8(typescript@5.5.4)(zod@3.24.1) isows: 1.0.6(ws@8.18.0) - ox: 0.1.2(typescript@5.6.3)(zod@3.23.8) - webauthn-p256: 0.0.10 + ox: 0.6.7(typescript@5.5.4)(zod@3.24.1) ws: 8.18.0 optionalDependencies: - typescript: 5.6.3 + typescript: 5.5.4 transitivePeerDependencies: - bufferutil - utf-8-validate @@ -9662,10 +8942,6 @@ snapshots: dependencies: xml-name-validator: 5.0.0 - wcwidth@1.0.1: - dependencies: - defaults: 1.0.4 - web-streams-polyfill@3.3.3: {} web3-core@4.7.0(encoding@0.1.13): @@ -9689,9 +8965,13 @@ snapshots: dependencies: web3-types: 1.9.0 - web3-eth-abi@4.4.0(typescript@5.6.3)(zod@3.23.8): + web3-errors@1.3.1: + dependencies: + web3-types: 1.10.0 + + web3-eth-abi@4.4.0(typescript@5.5.4)(zod@3.24.1): dependencies: - abitype: 0.7.1(typescript@5.6.3)(zod@3.23.8) + abitype: 0.7.1(typescript@5.5.4)(zod@3.24.1) web3-errors: 1.3.0 web3-types: 1.9.0 web3-utils: 4.3.2 @@ -9710,13 +8990,13 @@ snapshots: web3-utils: 4.3.2 web3-validator: 2.0.6 - web3-eth-contract@4.7.1(encoding@0.1.13)(typescript@5.6.3)(zod@3.23.8): + web3-eth-contract@4.7.1(encoding@0.1.13)(typescript@5.5.4)(zod@3.24.1): dependencies: '@ethereumjs/rlp': 5.0.2 web3-core: 4.7.0(encoding@0.1.13) web3-errors: 1.3.0 - web3-eth: 4.11.0(encoding@0.1.13)(typescript@5.6.3)(zod@3.23.8) - web3-eth-abi: 4.4.0(typescript@5.6.3)(zod@3.23.8) + web3-eth: 4.11.0(encoding@0.1.13)(typescript@5.5.4)(zod@3.24.1) + web3-eth-abi: 4.4.0(typescript@5.5.4)(zod@3.24.1) web3-types: 1.9.0 web3-utils: 4.3.2 web3-validator: 2.0.6 @@ -9727,13 +9007,13 @@ snapshots: - utf-8-validate - zod - web3-eth-ens@4.4.0(encoding@0.1.13)(typescript@5.6.3)(zod@3.23.8): + web3-eth-ens@4.4.0(encoding@0.1.13)(typescript@5.5.4)(zod@3.24.1): dependencies: '@adraffy/ens-normalize': 1.11.0 web3-core: 4.7.0(encoding@0.1.13) web3-errors: 1.3.0 - web3-eth: 4.11.0(encoding@0.1.13)(typescript@5.6.3)(zod@3.23.8) - web3-eth-contract: 4.7.1(encoding@0.1.13)(typescript@5.6.3)(zod@3.23.8) + web3-eth: 4.11.0(encoding@0.1.13)(typescript@5.5.4)(zod@3.24.1) + web3-eth-contract: 4.7.1(encoding@0.1.13)(typescript@5.5.4)(zod@3.24.1) web3-net: 4.1.0(encoding@0.1.13) web3-types: 1.9.0 web3-utils: 4.3.2 @@ -9752,10 +9032,10 @@ snapshots: web3-utils: 4.3.2 web3-validator: 2.0.6 - web3-eth-personal@4.1.0(encoding@0.1.13)(typescript@5.6.3)(zod@3.23.8): + web3-eth-personal@4.1.0(encoding@0.1.13)(typescript@5.5.4)(zod@3.24.1): dependencies: web3-core: 4.7.0(encoding@0.1.13) - web3-eth: 4.11.0(encoding@0.1.13)(typescript@5.6.3)(zod@3.23.8) + web3-eth: 4.11.0(encoding@0.1.13)(typescript@5.5.4)(zod@3.24.1) web3-rpc-methods: 1.3.0(encoding@0.1.13) web3-types: 1.9.0 web3-utils: 4.3.2 @@ -9767,12 +9047,12 @@ snapshots: - utf-8-validate - zod - web3-eth@4.11.0(encoding@0.1.13)(typescript@5.6.3)(zod@3.23.8): + web3-eth@4.11.0(encoding@0.1.13)(typescript@5.5.4)(zod@3.24.1): dependencies: setimmediate: 1.0.5 web3-core: 4.7.0(encoding@0.1.13) web3-errors: 1.3.0 - web3-eth-abi: 4.4.0(typescript@5.6.3)(zod@3.23.8) + web3-eth-abi: 4.4.0(typescript@5.5.4)(zod@3.24.1) web3-eth-accounts: 4.3.0 web3-net: 4.1.0(encoding@0.1.13) web3-providers-ws: 4.0.8 @@ -9814,6 +9094,18 @@ snapshots: web3-utils: 4.3.2 optional: true + web3-providers-ws@4.0.7: + dependencies: + '@types/ws': 8.5.3 + isomorphic-ws: 5.0.0(ws@8.18.0) + web3-errors: 1.3.1 + web3-types: 1.10.0 + web3-utils: 4.3.3 + ws: 8.18.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + web3-providers-ws@4.0.8: dependencies: '@types/ws': 8.5.3 @@ -9849,6 +9141,8 @@ snapshots: - encoding - utf-8-validate + web3-types@1.10.0: {} + web3-types@1.9.0: {} web3-utils@4.3.2: @@ -9859,25 +9153,33 @@ snapshots: web3-types: 1.9.0 web3-validator: 2.0.6 + web3-utils@4.3.3: + dependencies: + ethereum-cryptography: 2.2.1 + eventemitter3: 5.0.1 + web3-errors: 1.3.1 + web3-types: 1.10.0 + web3-validator: 2.0.6 + web3-validator@2.0.6: dependencies: ethereum-cryptography: 2.2.1 util: 0.12.5 web3-errors: 1.3.0 web3-types: 1.9.0 - zod: 3.23.8 + zod: 3.24.1 - web3@4.15.0(encoding@0.1.13)(typescript@5.6.3)(zod@3.23.8): + web3@4.15.0(encoding@0.1.13)(typescript@5.5.4)(zod@3.24.1): dependencies: web3-core: 4.7.0(encoding@0.1.13) web3-errors: 1.3.0 - web3-eth: 4.11.0(encoding@0.1.13)(typescript@5.6.3)(zod@3.23.8) - web3-eth-abi: 4.4.0(typescript@5.6.3)(zod@3.23.8) + web3-eth: 4.11.0(encoding@0.1.13)(typescript@5.5.4)(zod@3.24.1) + web3-eth-abi: 4.4.0(typescript@5.5.4)(zod@3.24.1) web3-eth-accounts: 4.3.0 - web3-eth-contract: 4.7.1(encoding@0.1.13)(typescript@5.6.3)(zod@3.23.8) - web3-eth-ens: 4.4.0(encoding@0.1.13)(typescript@5.6.3)(zod@3.23.8) + web3-eth-contract: 4.7.1(encoding@0.1.13)(typescript@5.5.4)(zod@3.24.1) + web3-eth-ens: 4.4.0(encoding@0.1.13)(typescript@5.5.4)(zod@3.24.1) web3-eth-iban: 4.0.7 - web3-eth-personal: 4.1.0(encoding@0.1.13)(typescript@5.6.3)(zod@3.23.8) + web3-eth-personal: 4.1.0(encoding@0.1.13)(typescript@5.5.4)(zod@3.24.1) web3-net: 4.1.0(encoding@0.1.13) web3-providers-http: 4.2.0(encoding@0.1.13) web3-providers-ws: 4.0.8 @@ -9893,11 +9195,6 @@ snapshots: - utf-8-validate - zod - webauthn-p256@0.0.10: - dependencies: - '@noble/curves': 1.6.0 - '@noble/hashes': 1.5.0 - webidl-conversions@3.0.1: {} webidl-conversions@4.0.2: {} @@ -9957,8 +9254,6 @@ snapshots: define-property: 1.0.0 is-number: 3.0.0 - word-wrap@1.2.5: {} - wordwrap@1.0.0: {} workerpool@6.5.1: {} @@ -10003,10 +9298,10 @@ snapshots: write-package@7.1.0: dependencies: - deepmerge-ts: 7.1.3 + deepmerge-ts: 7.1.4 read-pkg: 9.0.1 sort-keys: 5.1.0 - type-fest: 4.30.0 + type-fest: 4.33.0 write-json-file: 6.0.0 ws@8.17.1: {} @@ -10021,10 +9316,10 @@ snapshots: yallist@4.0.0: {} - yaml@2.4.5: {} - yaml@2.6.0: {} + yaml@2.7.0: {} + yargs-parser@20.2.9: {} yargs-parser@21.1.1: {} @@ -10066,4 +9361,4 @@ snapshots: yoga-wasm-web@0.3.3: {} - zod@3.23.8: {} + zod@3.24.1: {} diff --git a/test/.eslintrc.cjs b/test/.eslintrc.cjs deleted file mode 100644 index e3d6aabf4..000000000 --- a/test/.eslintrc.cjs +++ /dev/null @@ -1,35 +0,0 @@ -module.exports = { - "env": { - "es2021": true, - "node": true - }, - "extends": [ - "eslint:recommended", - "plugin:@typescript-eslint/recommended" - ], - "overrides": [ - - { - "env": { - "node": true - }, - "files": [ - ".eslintrc.{js,cjs}" - ], - "parserOptions": { - "sourceType": "script" - } - } - ], - "parser": "@typescript-eslint/parser", - "parserOptions": { - "ecmaVersion": "latest", - "sourceType": "module" - }, - "plugins": [ - "@typescript-eslint" - ], - "rules": { - "@typescript-eslint/no-explicit-any": "off", - } -} diff --git a/test/helpers/assets.ts b/test/helpers/assets.ts index 54262ebec..f40b90bae 100644 --- a/test/helpers/assets.ts +++ b/test/helpers/assets.ts @@ -1,6 +1,6 @@ -import { u16 } from "@polkadot/types"; -import { DevModeContext } from "@moonwall/cli"; -import { KeyringPair } from "@polkadot/keyring/types"; +import type { u16 } from "@polkadot/types"; +import type { DevModeContext } from "@moonwall/cli"; +import type { KeyringPair } from "@polkadot/keyring/types"; import type { AccountId20 } from "@polkadot/types/interfaces/runtime"; export const DUMMY_REVERT_BYTECODE = "0x60006000fd"; @@ -69,7 +69,7 @@ export async function mockAssetCreation( ); const evmCodeAssetKey = api.query.evm.accountCodes.key( - "0xfFfFFFffFffFFFFffFFfFfffFfFFFFFfffFF" + assetId.toHex().slice(2) + `0xfFfFFFffFffFFFFffFFfFfffFfFFFFFfffFF${assetId.toHex().slice(2)}` ); await context.createBlock( diff --git a/test/helpers/contracts.ts b/test/helpers/contracts.ts index 56c98f8f2..a835e51d4 100644 --- a/test/helpers/contracts.ts +++ b/test/helpers/contracts.ts @@ -1,4 +1,4 @@ -import { DevModeContext } from "@moonwall/cli"; +import type { DevModeContext } from "@moonwall/cli"; import { ALITH_ADDRESS, alith } from "@moonwall/util"; export interface HeavyContract { @@ -28,7 +28,7 @@ export const deployHeavyContracts = async (context: DevModeContext, first = 6000 // Check which contracts are already deployed for (const contract of contracts) { - contract.deployed = (await context.polkadotJs().rpc.state.getStorage(contract.key))!.toString().length > 10; + contract.deployed = (await context.polkadotJs().rpc.state.getStorage(contract.key))?.toString().length > 10; } // Create the contract code (24kb of zeros) diff --git a/test/helpers/eth-transactions.ts b/test/helpers/eth-transactions.ts index d7a8f1150..1582245a8 100644 --- a/test/helpers/eth-transactions.ts +++ b/test/helpers/eth-transactions.ts @@ -1,7 +1,7 @@ import "@moonbeam-network/api-augment"; import { expect } from "@moonwall/cli"; -import { EventRecord } from "@polkadot/types/interfaces"; -import { +import type { EventRecord } from "@polkadot/types/interfaces"; +import type { EvmCoreErrorExitError, EvmCoreErrorExitFatal, EvmCoreErrorExitReason, @@ -20,18 +20,18 @@ export function expectEVMResult( resultType: Type, reason?: T[Type] ) { - expect(events, `Missing events, probably failed execution`).to.be.length.at.least(1); + expect(events, "Missing events, probably failed execution").to.be.length.at.least(1); const ethereumResult = events.find( - ({ event: { section, method } }) => section == "ethereum" && method == "Executed" - )!.event.data[3] as EvmCoreErrorExitReason; + ({ event: { section, method } }) => section === "ethereum" && method === "Executed" + )?.event.data[3] as EvmCoreErrorExitReason; const foundReason = ethereumResult.isError ? ethereumResult.asError.type : ethereumResult.isFatal - ? ethereumResult.asFatal.type - : ethereumResult.isRevert - ? ethereumResult.asRevert.type - : ethereumResult.asSucceed.type; + ? ethereumResult.asFatal.type + : ethereumResult.isRevert + ? ethereumResult.asRevert.type + : ethereumResult.asSucceed.type; expect(ethereumResult.type, `Invalid EVM Execution - (${ethereumResult.type}.${foundReason})`).to.equal(resultType); if (reason) { diff --git a/test/helpers/xcm.ts b/test/helpers/xcm.ts index 84059872d..4908d50ce 100644 --- a/test/helpers/xcm.ts +++ b/test/helpers/xcm.ts @@ -1,10 +1,10 @@ -import { DevModeContext } from "@moonwall/cli"; +import type { DevModeContext } from "@moonwall/cli"; import { u8aToHex } from "@polkadot/util"; export function descendOriginFromAddress20( context: DevModeContext, address: `0x${string}` = "0x0101010101010101010101010101010101010101", - paraId: number = 1 + paraId = 1 ) { const toHash = new Uint8Array([ ...new TextEncoder().encode("SiblingChain"), diff --git a/test/moonwall.config.json b/test/moonwall.config.json index 65a3650a7..88ece5371 100644 --- a/test/moonwall.config.json +++ b/test/moonwall.config.json @@ -921,7 +921,7 @@ "foundation": { "type": "read_only" }, - "reporters": ["html"], + "reporters": ["basic","html"], "connections": [ { "name": "para", @@ -940,7 +940,7 @@ "foundation": { "type": "read_only" }, - "reporters": ["html"], + "reporters": ["basic","html"], "connections": [ { "name": "para", @@ -955,7 +955,7 @@ "foundation": { "type": "read_only" }, - "reporters": ["html"], + "reporters": ["basic","html"], "connections": [ { "name": "para", @@ -970,7 +970,7 @@ "foundation": { "type": "read_only" }, - "reporters": ["html"], + "reporters": ["basic","html"], "connections": [ { "name": "para", diff --git a/test/package.json b/test/package.json index 3954e79be..e746110e4 100644 --- a/test/package.json +++ b/test/package.json @@ -6,13 +6,14 @@ "main": "index.js", "type": "module", "scripts": { + "clean": "rm -rf node_modules tmp", "start": "moonwall", - "fmt": "prettier --check --ignore-path ../.prettierignore '**/*.(yml|js|ts)'", - "fmt:fix": "prettier --write --ignore-path ../.prettierignore '**/*.(yml|js|ts|json)'", - "lint": "eslint --ext .ts,.js .", - "lint:fix": "eslint --fix --ext .ts,.js .", + "fmt": "biome format .", + "fmt:fix": "biome format --write .", + "lint": "biome lint .", + "lint:fix": "biome lint --write .", "build-spec": "./scripts/build-spec.sh", - "pre-build-contracts": "tsx tools/pre-build-contracts.ts && pnpm prettier --write ./helpers/compiled/", + "pre-build-contracts": "tsx tools/pre-build-contracts.ts", "download-chain-spec": "tsx scripts/downloadChainSpec.ts", "register-para": "tsx scripts/registerPara.ts", "generate-test-ids": "tsx scripts/deriveTestIds.ts process suites", @@ -24,43 +25,41 @@ "author": "", "license": "ISC", "dependencies": { + "@inquirer/prompts": "7.3.1", "@polkadot/api": "*", - "@polkadot/api-augment": "*", "@polkadot/keyring": "*", "@polkadot/types": "*", "@polkadot/types-codec": "*", "@polkadot/util": "*", "@polkadot/util-crypto": "*", "@zombienet/orchestrator": "0.0.97", - "inquirer": "9.2.16", "ps-node": "0.1.6" }, "devDependencies": { - "@acala-network/chopsticks": "1.0.1", - "@moonbeam-network/api-augment": "0.3200.3", - "@moonwall/cli": "5.9.1", - "@moonwall/util": "5.9.1", + "@acala-network/chopsticks": "1.0.2", + "@moonbeam-network/api-augment": "0.3401.2", + "@moonwall/cli": "5.10.0", + "@moonwall/util": "5.10.0", "@polkadot/wasm-crypto": "^7.4.1", "@tanssi/api-augment": "workspace:*", "@types/debug": "4.1.12", + "@types/json-bigint": "1.0.4", "@types/node": "*", - "@typescript-eslint/eslint-plugin": "6.15.0", - "@typescript-eslint/parser": "6.15.0", + "@types/ps-node": "0.1.3", + "@types/yargs": "^17.0.33", "@vitest/ui": "2.1.5", "@zombienet/utils": "0.0.25", "bottleneck": "2.19.5", "chalk": "5.3.0", "debug": "4.3.7", - "eslint": "8.56.0", "ethers": "^6.13.4", "json-bigint": "1.0.0", "pnpm": "9.13.0", - "prettier": "2.8.8", "solc": "0.8.21", + "tsx": "*", + "typescript": "*", + "viem": "2.22.21", "toml": "^3.0.0", - "tsx": "4.19.2", - "typescript": "5.6.3", - "viem": "2.21.45", "vitest": "2.1.5", "web3": "4.15.0", "web3-providers-ws": "4.0.8", diff --git a/test/scripts/bridge/ts-scripts/src/generateContractInfo.ts b/test/scripts/bridge/ts-scripts/src/generateContractInfo.ts index a746f4419..1b9e84633 100644 --- a/test/scripts/bridge/ts-scripts/src/generateContractInfo.ts +++ b/test/scripts/bridge/ts-scripts/src/generateContractInfo.ts @@ -6,7 +6,7 @@ const run = async () => { const basedir = process.env.contract_dir || "../contracts"; const DeployInfoFile = path.join(basedir, "broadcast", process.env.deploy_script, `${NetworkId}/run-latest.json`); const BuildInfoDir = path.join(basedir, "./out"); - const DestFile = process.argv.length >= 3 ? process.argv[2] : process.env["output_dir"] + "/contracts.json"; + const DestFile = process.argv.length >= 3 ? process.argv[2] : `${process.env.output_dir}/contracts.json`; type Contract = { [key: string]: ContractInfo; }; @@ -22,7 +22,7 @@ const run = async () => { if (contractName) { const contractInfo: ContractInfo = { address: transaction.contractAddress }; const contractBuildingInfo = JSON.parse( - fs.readFileSync(path.join(BuildInfoDir, contractName + ".sol", contractName + ".json"), "utf8") + fs.readFileSync(path.join(BuildInfoDir, `${contractName}.sol`, `${contractName}.json`), "utf8") ); contractInfo.abi = contractBuildingInfo.abi; contracts[contractName] = contractInfo; diff --git a/test/scripts/compile-wasm.ts b/test/scripts/compile-wasm.ts index 164e98819..e77a8daaa 100644 --- a/test/scripts/compile-wasm.ts +++ b/test/scripts/compile-wasm.ts @@ -1,6 +1,6 @@ -import fs from "fs/promises"; -import path from "path"; -import child_process from "child_process"; +import fs from "node:fs/promises"; +import path from "node:path"; +import child_process from "node:child_process"; import yargs from "yargs"; import { hideBin } from "yargs/helpers"; @@ -57,7 +57,7 @@ async function spawn(cmd: string) { errData += chunk.toString(); }); - spawned.on("close", function (code) { + spawned.on("close", (code) => { if (code && code > 0) { return reject(new Error(errData)); } @@ -65,7 +65,7 @@ async function spawn(cmd: string) { resolve(outData); }); - spawned.on("error", function (err) { + spawned.on("error", (err) => { reject(err); }); }); diff --git a/test/scripts/deriveTestIds.ts b/test/scripts/deriveTestIds.ts index c28c40c90..1b88b7f54 100644 --- a/test/scripts/deriveTestIds.ts +++ b/test/scripts/deriveTestIds.ts @@ -13,8 +13,8 @@ * 1. Files with special characters or spaces. * 2. Files in a case-insensitive lexicographical order. */ -import fs from "fs"; -import path from "path"; +import fs from "node:fs"; +import path from "node:path"; import yargs from "yargs"; import { hideBin } from "yargs/helpers"; @@ -22,7 +22,7 @@ yargs(hideBin(process.argv)) .usage("Usage: $0") .version("2.0.0") .command( - `process `, + "process ", "Changes the testsuite IDs based on positional order in the directory tree.", (yargs) => { return yargs.positional("rootDir", { @@ -64,7 +64,7 @@ function generatePrefix(directory: string, usedPrefixes: Set): string { const charCode = prefix.charCodeAt(1); if (charCode >= 90) { // If it's Z, wrap around to A - prefix = String.fromCharCode(prefix.charCodeAt(0) + 1) + "A"; + prefix = `${String.fromCharCode(prefix.charCodeAt(0) + 1)}A`; } else { prefix = prefix[0] + String.fromCharCode(charCode + 1); } @@ -93,13 +93,13 @@ function generateId(directory: string, rootDir: string, prefix: string): void { const fullPath = path.join(directory, item); if (fs.statSync(fullPath).isDirectory()) { - const subDirPrefix = ("0" + subDirCount).slice(-2); + const subDirPrefix = `0${subDirCount}`.slice(-2); generateId(fullPath, rootDir, prefix + subDirPrefix); subDirCount++; } else { const fileContent = fs.readFileSync(fullPath, "utf-8"); if (fileContent.includes("describeSuite")) { - const newId = prefix + ("0" + fileCount).slice(-2); + const newId = prefix + `0${fileCount}`.slice(-2); const updatedContent = fileContent.replace( /(describeSuite\s*?\(\s*?\{\s*?id\s*?:\s*?['"])[^'"]+(['"])/, `$1${newId}$2` diff --git a/test/scripts/downloadChainSpec.ts b/test/scripts/downloadChainSpec.ts index 538c9cdd0..d76c63865 100644 --- a/test/scripts/downloadChainSpec.ts +++ b/test/scripts/downloadChainSpec.ts @@ -1,4 +1,4 @@ -import fs from "fs/promises"; +import fs from "node:fs/promises"; import yargs from "yargs"; import { hideBin } from "yargs/helpers"; import jsonBg from "json-bigint"; @@ -12,7 +12,7 @@ yargs(hideBin(process.argv)) .usage("Usage: $0") .version("1.0.0") .command( - `*`, + "*", "Creates a chainSpec.json file based on on-chain data for a container chain", (yargs) => { return yargs @@ -44,10 +44,10 @@ yargs(hideBin(process.argv)) process.stdout.write(`Reading on-chain genesis data for parachain ${argv.paraId} ...`); const encoded = (await api.query.registrar.paraGenesisData(argv.paraId)) as any; if (encoded.isNone) { - process.stdout.write(`❌ parachain not registered\n`); + process.stdout.write("❌ parachain not registered\n"); return; } - process.stdout.write(`Done ✅\n`); + process.stdout.write("Done ✅\n"); const onChainGenesisData = await api.createType( "DpContainerChainGenesisDataContainerChainGenesisData", encoded.unwrap() @@ -65,7 +65,7 @@ yargs(hideBin(process.argv)) }); process.stdout.write(`Writing to: ${argv.output} ...`); await fs.writeFile(argv.output, convertExponentials(JSONbig.stringify(rawSpec, null, 3))); - process.stdout.write(`Done ✅\n`); + process.stdout.write("Done ✅\n"); } finally { await api.disconnect(); } diff --git a/test/scripts/downloadPolkadot.ts b/test/scripts/downloadPolkadot.ts index 892112bcc..a0823b2c5 100644 --- a/test/scripts/downloadPolkadot.ts +++ b/test/scripts/downloadPolkadot.ts @@ -1,146 +1,147 @@ /* eslint-disable */ -import jsonFile from "../polkadotReleaseMapping.json" with {type: "json"}; +import jsonFile from "../polkadotReleaseMapping.json" with { type: "json" }; import fs from "node:fs/promises"; -import fsSync from "node:fs" -import assert from "node:assert" -import { parse } from "toml" -import path from "node:path" -import { execSync } from "node:child_process" +import fsSync from "node:fs"; +import assert from "node:assert"; +import { parse } from "toml"; +import path from "node:path"; +import { execSync } from "node:child_process"; import { createHash } from "node:crypto"; const CONFIG = { - FOLDER_NAME: 'tmp', - BINARIES: ['polkadot', 'polkadot-execute-worker', 'polkadot-prepare-worker'] as const, - CARGO_PATH: '../Cargo.toml', + FOLDER_NAME: "tmp", + BINARIES: ["polkadot", "polkadot-execute-worker", "polkadot-prepare-worker"] as const, + CARGO_PATH: "../Cargo.toml", } as const; async function main() { - - const polkadotVersionMappings: PolkadotVersionMapping = jsonFile - const fileContents = await fs.readFile(CONFIG.CARGO_PATH, "utf-8") - const cargoToml = parse(fileContents) as CargoToml; - const stableVersion = findPolkadotStableVersion(cargoToml.workspace.dependencies) - console.log(`🔎 Found polkadot-sdk version: ${stableVersion}`) - - for (const binName of CONFIG.BINARIES) { - const pathName = path.join(CONFIG.FOLDER_NAME, binName) - if (fsSync.existsSync(pathName)) { - const existingChecksum = getSha256(pathName) - console.log(`✏️ File already exists: ${mini(existingChecksum)}`); - - const savedChecksum = polkadotVersionMappings[stableVersion]?.[binName] - - if (!savedChecksum || savedChecksum !== existingChecksum) { - if (!savedChecksum) { - console.log(`⚠️ Saved checksum not found for ${binName}:${stableVersion}`) + const polkadotVersionMappings: PolkadotVersionMapping = jsonFile; + const fileContents = await fs.readFile(CONFIG.CARGO_PATH, "utf-8"); + const cargoToml = parse(fileContents) as CargoToml; + const stableVersion = findPolkadotStableVersion(cargoToml.workspace.dependencies); + console.log(`🔎 Found polkadot-sdk version: ${stableVersion}`); + + for (const binName of CONFIG.BINARIES) { + const pathName = path.join(CONFIG.FOLDER_NAME, binName); + if (fsSync.existsSync(pathName)) { + const existingChecksum = getSha256(pathName); + console.log(`✏️ File already exists: ${mini(existingChecksum)}`); + + const savedChecksum = polkadotVersionMappings[stableVersion]?.[binName]; + + if (!savedChecksum || savedChecksum !== existingChecksum) { + if (!savedChecksum) { + console.log(`⚠️ Saved checksum not found for ${binName}:${stableVersion}`); + } else { + console.log(`⚠️ File mismatch ${mini(existingChecksum)} vs ${mini(savedChecksum)}, downloading...`); + } + execSync(`pnpm moonwall download -d ${binName} ${stableVersion} ${CONFIG.FOLDER_NAME}`, { + stdio: "inherit", + }); + const sha256 = getSha256(pathName); + polkadotVersionMappings[stableVersion] = { + ...polkadotVersionMappings[stableVersion], + [binName]: sha256, + }; + await fs.writeFile("polkadotReleaseMapping.json", JSON.stringify(polkadotVersionMappings, null, 2)); + } else { + console.log(`✅ Binary ${pathName} matches saved version`); + } } else { - console.log(`⚠️ File mismatch ${mini(existingChecksum)} vs ${mini(savedChecksum)}, downloading...`); - } - execSync(`pnpm moonwall download -d ${binName} ${stableVersion} ${CONFIG.FOLDER_NAME}`, { stdio: "inherit" }); - const sha256 = getSha256(pathName) - polkadotVersionMappings[stableVersion] = { - ...polkadotVersionMappings[stableVersion], - [binName]: sha256 + // New File flow + console.log("📥️ File does not exist, downloading..."); + execSync(`pnpm moonwall download ${binName} ${stableVersion} ${CONFIG.FOLDER_NAME}`, { stdio: "inherit" }); + const sha256 = getSha256(pathName); + console.log(`💾 Downloaded file: ${mini(sha256)}`); + polkadotVersionMappings[stableVersion] = { + ...polkadotVersionMappings[stableVersion], + [binName]: sha256, + }; + await fs.writeFile("polkadotReleaseMapping.json", JSON.stringify(polkadotVersionMappings, null, 2)); + console.log("✅ Saved to version mapping "); } - await fs.writeFile("polkadotReleaseMapping.json", JSON.stringify(polkadotVersionMappings, null, 2)) - } else { - console.log(`✅ Binary ${pathName} matches saved version`) - } - } else { - // New File flow - console.log("📥️ File does not exist, downloading..."); - execSync(`pnpm moonwall download ${binName} ${stableVersion} ${CONFIG.FOLDER_NAME}`, { stdio: "inherit" }); - const sha256 = getSha256(pathName) - console.log(`💾 Downloaded file: ${mini(sha256)}`); - polkadotVersionMappings[stableVersion] = { - ...polkadotVersionMappings[stableVersion], - [binName]: sha256 - } - await fs.writeFile("polkadotReleaseMapping.json", JSON.stringify(polkadotVersionMappings, null, 2)) - console.log("✅ Saved to version mapping ") } - } } main() - .then(() => console.log(`🎉 Finished verifying binaries: [${CONFIG.BINARIES.join(", ")}]`)) - .catch((err: unknown) => { - console.error("❌ Error:", err); - process.exit(1); - }); + .then(() => console.log(`🎉 Finished verifying binaries: [${CONFIG.BINARIES.join(", ")}]`)) + .catch((err: unknown) => { + console.error("❌ Error:", err); + process.exit(1); + }); /** -* Interfaces -**/ + * Interfaces + **/ interface PolkadotVersionMapping { - [key: `stable${number}-${number}` | `stable${number}`]: DownloadHashes + [key: `stable${number}-${number}` | `stable${number}`]: DownloadHashes; } interface CargoToml { - workspace: { - dependencies: Record; - }; + workspace: { + dependencies: Record; + }; } interface DownloadHashes { - polkadot: string; - "polkadot-execute-worker": string; - "polkadot-prepare-worker": string; + polkadot: string; + "polkadot-execute-worker": string; + "polkadot-prepare-worker": string; } /** -* Functions -**/ + * Functions + **/ function extractStableVersion(branch: string): string | null { - const match = branch.match(/stable(\d+)/) - return match ? `stable${match[1]}` : null + const match = branch.match(/stable(\d+)/); + return match ? `stable${match[1]}` : null; } function findPolkadotStableVersion(dependencies: Record): string { - const polkadotDeps = Object.entries(dependencies).filter(([_, config]) => - typeof config === "object" && - config.git === "https://github.com/moondance-labs/polkadot-sdk" - ) - - let stableVersions: Array | Set = new Set( - polkadotDeps - .map(([_, config]) => extractStableVersion(config.branch)) - .filter((version): version is string => version !== null) - ) - - if (stableVersions.size === 0) { - throw new Error("No stable version found in polkadot-sdk dependencies") - } - - if (stableVersions.size > 1) { - stableVersions = Array.from(stableVersions).sort((a, b) => { - // Extract numbers and compare - const aMatch = a.match(/stable(\d+)(?:-(\d+))?/) - const bMatch = b.match(/stable(\d+)(?:-(\d+))?/) - - assert(aMatch, "this is already mapped, this should never happen") - assert(bMatch, "this is already mapped, this should never happen") - - const mainVersionDiff = Number.parseInt(bMatch[1]) - Number.parseInt(aMatch[1]) - if (mainVersionDiff !== 0) { - return mainVersionDiff - } - - const aSubVersion = aMatch[2] ? Number.parseInt(aMatch[2]) : 0 - const bSubVersion = bMatch[2] ? Number.parseInt(bMatch[2]) : 0 - return bSubVersion - aSubVersion - }) - console.error(`⚠️ Multiple stable versions found: ${Array.from(stableVersions).join(", ")}. Choosing: ${stableVersions[0]}`) - } - - return Array.from(stableVersions)[0] -} + const polkadotDeps = Object.entries(dependencies).filter( + ([_, config]) => typeof config === "object" && config.git === "https://github.com/moondance-labs/polkadot-sdk" + ); + + let stableVersions: Array | Set = new Set( + polkadotDeps + .map(([_, config]) => extractStableVersion(config.branch)) + .filter((version): version is string => version !== null) + ); + + if (stableVersions.size === 0) { + throw new Error("No stable version found in polkadot-sdk dependencies"); + } + if (stableVersions.size > 1) { + stableVersions = Array.from(stableVersions).sort((a, b) => { + // Extract numbers and compare + const aMatch = a.match(/stable(\d+)(?:-(\d+))?/); + const bMatch = b.match(/stable(\d+)(?:-(\d+))?/); + + assert(aMatch, "this is already mapped, this should never happen"); + assert(bMatch, "this is already mapped, this should never happen"); + + const mainVersionDiff = Number.parseInt(bMatch[1]) - Number.parseInt(aMatch[1]); + if (mainVersionDiff !== 0) { + return mainVersionDiff; + } + + const aSubVersion = aMatch[2] ? Number.parseInt(aMatch[2]) : 0; + const bSubVersion = bMatch[2] ? Number.parseInt(bMatch[2]) : 0; + return bSubVersion - aSubVersion; + }); + console.error( + `⚠️ Multiple stable versions found: ${Array.from(stableVersions).join(", ")}. Choosing: ${stableVersions[0]}` + ); + } -const getSha256 = (filePath: string) => { - const fileBuffer = fsSync.readFileSync(filePath); - const hashSum = createHash("sha256"); - hashSum.update(fileBuffer); - return hashSum.digest("hex"); + return Array.from(stableVersions)[0]; } -const mini = (hash: string) => `<${hash.slice(0, 4)}...${hash.slice(-4)}>` +const getSha256 = (filePath: string) => { + const fileBuffer = fsSync.readFileSync(filePath); + const hashSum = createHash("sha256"); + hashSum.update(fileBuffer); + return hashSum.digest("hex"); +}; + +const mini = (hash: string) => `<${hash.slice(0, 4)}...${hash.slice(-4)}>`; diff --git a/test/scripts/modify-plain-specs.ts b/test/scripts/modify-plain-specs.ts index efee58690..45ab746f6 100644 --- a/test/scripts/modify-plain-specs.ts +++ b/test/scripts/modify-plain-specs.ts @@ -1,8 +1,9 @@ -import fs from "fs/promises"; +import fs from "node:fs/promises"; import yargs from "yargs"; import { hideBin } from "yargs/helpers"; import { convertExponentials } from "@zombienet/utils"; import jsonBg from "json-bigint"; +import assert from "node:assert"; const JSONbig = jsonBg({ useNativeBigInt: true }); const ALICE_ADDRESS = "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY"; @@ -10,7 +11,7 @@ yargs(hideBin(process.argv)) .usage("Usage: $0") .version("2.0.0") .command( - `process `, + "process ", "Overwrites a plainSpec with Alice modifications", (yargs) => { return yargs @@ -25,15 +26,17 @@ yargs(hideBin(process.argv)) }, async (argv) => { process.stdout.write(`Reading from: ${argv.inputPath} ...`); - const plainSpec = JSONbig.parse((await fs.readFile(argv.inputPath!)).toString()); - process.stdout.write(`Done ✅\n`); + assert(argv.inputPath, "inputPath is required"); + assert(argv.outputPath, "outputPath is required"); + const plainSpec = JSONbig.parse((await fs.readFile(argv.inputPath)).toString()); + process.stdout.write("Done ✅\n"); plainSpec.bootNodes = []; plainSpec.genesis.runtimeGenesis.config.invulnerables.invulnerables = [ALICE_ADDRESS]; process.stdout.write(`Writing to: ${argv.outputPath} ...`); - await fs.writeFile(argv.outputPath!, convertExponentials(JSONbig.stringify(plainSpec, null, 3))); - process.stdout.write(`Done ✅\n`); + await fs.writeFile(argv.outputPath, convertExponentials(JSONbig.stringify(plainSpec, null, 3))); + process.stdout.write("Done ✅\n"); } ) .parse(); diff --git a/test/scripts/pre-build-contracts.ts b/test/scripts/pre-build-contracts.ts index 74f011b68..07215a936 100644 --- a/test/scripts/pre-build-contracts.ts +++ b/test/scripts/pre-build-contracts.ts @@ -1,10 +1,10 @@ import solc from "solc"; import chalk from "chalk"; -import fs from "fs/promises"; -import path from "path"; -import { Compiled } from "../util/ethereum-contracts"; -import { fileURLToPath } from "url"; -import { dirname } from "path"; +import fs from "node:fs/promises"; +import path from "node:path"; +import type { Compiled } from "../util/ethereum-contracts"; +import { fileURLToPath } from "node:url"; +import { dirname } from "node:path"; const sourceByReference = {} as { [ref: string]: string }; const countByReference = {} as { [ref: string]: number }; @@ -24,8 +24,7 @@ const getImports = (fileRef: string) => (dependency: string) => { return { contents: sourceByReference[localRef] }; } base = path.dirname(base); - if (base == ".") { - continue; + if (base === ".") { } } return { error: "Source not found" }; @@ -60,14 +59,17 @@ function compileSolidity(fileRef: string, contractContent: string): { [name: str if (!result.contracts) { throw result; } - return Object.keys(result.contracts[filename]).reduce((p, contractName) => { - p[contractName] = { - byteCode: "0x" + result.contracts[filename][contractName].evm.bytecode.object, - contract: result.contracts[filename][contractName], - sourceCode: contractContent, - }; - return p; - }, {} as { [name: string]: Compiled }); + return Object.keys(result.contracts[filename]).reduce( + (p, contractName) => { + p[contractName] = { + byteCode: `0x${result.contracts[filename][contractName].evm.bytecode.object}`, + contract: result.contracts[filename][contractName], + sourceCode: contractContent, + }; + return p; + }, + {} as { [name: string]: Compiled } + ); } // Shouldn't be run concurrently with the same 'name' @@ -85,9 +87,7 @@ async function compile(fileRef: string, destPath: string): Promise<{ [name: stri if (refByContract[dest]) { console.warn( chalk.red( - `Contract ${contractName} already exist from ` + - `${refByContract[dest]}. ` + - `Erasing previous version` + `Contract ${contractName} already exist from ${refByContract[dest]}. Erasing previous version` ) ); } @@ -122,7 +122,7 @@ const main = async () => { const contractSourcePaths = [ { filepath: - args.length > 0 && args[0] != "undefined" ? args[0] : path.join(__dirname, "../contracts/solidity"), + args.length > 0 && args[0] !== "undefined" ? args[0] : path.join(__dirname, "../contracts/solidity"), importPath: "", // Reference in contracts are local compile: true, }, @@ -150,9 +150,9 @@ const main = async () => { } catch (e) { console.log(`Failed to compile: ${ref}`); if (e.errors) { - e.errors.forEach((error) => { + for (const error of e.errors) { console.log(error.formattedMessage); - }); + } } else { console.log(e); } diff --git a/test/scripts/registerPara.ts b/test/scripts/registerPara.ts index e487dd2b2..a93a2453a 100644 --- a/test/scripts/registerPara.ts +++ b/test/scripts/registerPara.ts @@ -1,5 +1,5 @@ import { Keyring } from "@polkadot/api"; -import fs from "fs/promises"; +import fs from "node:fs/promises"; import jsonBg from "json-bigint"; import yargs from "yargs"; import { hideBin } from "yargs/helpers"; @@ -11,7 +11,7 @@ yargs(hideBin(process.argv)) .usage("Usage: $0") .version("1.0.0") .command( - `*`, + "*", "Registers a parachain", (yargs) => { return yargs @@ -35,7 +35,7 @@ yargs(hideBin(process.argv)) try { process.stdout.write(`Reading chainSpec from: ${argv.chain}\n`); - const rawSpec = JSONbig.parse(await fs.readFile(argv.chain!, "utf8")); + const rawSpec = JSONbig.parse(await fs.readFile(argv.chain, "utf8")); if (rawSpec.bootNodes?.length) { process.stdout.write( @@ -50,11 +50,11 @@ yargs(hideBin(process.argv)) const containerChainGenesisData = chainSpecToContainerChainGenesisData(api, rawSpec); const tx = api.tx.registrar.register(rawSpec.para_id, containerChainGenesisData); - process.stdout.write(`Sending transaction... `); + process.stdout.write("Sending transaction... "); const txHash = await tx.signAndSend(account); process.stdout.write(`${txHash.toHex()}\n`); // TODO: this will always print Done, even if the extrinsic has failed - process.stdout.write(`Done ✅\n`); + process.stdout.write("Done ✅\n"); } finally { await api.disconnect(); } diff --git a/test/scripts/sudoRegisterPara.ts b/test/scripts/sudoRegisterPara.ts index 957e7d861..447c66dfe 100644 --- a/test/scripts/sudoRegisterPara.ts +++ b/test/scripts/sudoRegisterPara.ts @@ -1,17 +1,19 @@ +import "@tanssi/api-augment"; import { Keyring } from "@polkadot/api"; -import fs from "fs/promises"; +import fs from "node:fs/promises"; import jsonBg from "json-bigint"; import yargs from "yargs"; import { hideBin } from "yargs/helpers"; import { chainSpecToContainerChainGenesisData } from "../util/genesis_data"; import { NETWORK_YARGS_OPTIONS, getApiFor } from "./utils/network"; +import type { TpTraitsSlotFrequency } from "@polkadot/types/lookup"; const JSONbig = jsonBg({ useNativeBigInt: true }); yargs(hideBin(process.argv)) .usage("Usage: $0") .version("1.0.0") .command( - `register`, + "register", "Registers a parachain, adds bootnodes, and sets it valid for collating", (yargs) => { return yargs @@ -40,19 +42,19 @@ yargs(hideBin(process.argv)) try { process.stdout.write(`Reading chainSpec from: ${argv.chain}\n`); - const rawSpec = JSONbig.parse(await fs.readFile(argv.chain!, "utf8")); + const rawSpec = JSONbig.parse(await fs.readFile(argv.chain, "utf8")); const privKey = argv["account-priv-key"]; const account = keyring.addFromUri(privKey); const containerChainGenesisData = chainSpecToContainerChainGenesisData(api, rawSpec); - const txs = []; - let tx1; + const txs: any[] = []; + let tx1: any; if (argv.parathread) { const slotFreq = api.createType("TpTraitsSlotFrequency", { min: 1, max: 1, - }); + }) as TpTraitsSlotFrequency; tx1 = api.tx.registrar.registerParathread( rawSpec.para_id, slotFreq, @@ -64,7 +66,7 @@ yargs(hideBin(process.argv)) } txs.push(tx1); if (rawSpec.bootNodes?.length) { - let profileId = await api.query.dataPreservers.nextProfileId(); + let profileId = (await api.query.dataPreservers.nextProfileId()).toNumber(); for (const bootnode of rawSpec.bootNodes) { const profileTx = api.tx.dataPreservers.createProfile({ url: bootnode, @@ -83,25 +85,25 @@ yargs(hideBin(process.argv)) const tx3s = api.tx.sudo.sudo(tx3); txs.push(tx3s); - if (txs.length == 2) { - process.stdout.write(`Sending register transaction (register + markValidForCollating)... `); + if (txs.length === 2) { + process.stdout.write("Sending register transaction (register + markValidForCollating)... "); } else { process.stdout.write( - `Sending register transaction (register + createProfile + startAssignment + markValidForCollating)... ` + "Sending register transaction (register + createProfile + startAssignment + markValidForCollating)... " ); } const txBatch = api.tx.utility.batchAll(txs); const txHash = await txBatch.signAndSend(account); process.stdout.write(`${txHash.toHex()}\n`); // TODO: this will always print Done, even if the extrinsic has failed - process.stdout.write(`Done ✅\n`); + process.stdout.write("Done ✅\n"); } finally { await api.disconnect(); } } ) .command( - `markValidForCollating`, + "markValidForCollating", "Marks a registered parachain as valid, allowing collators to start collating", (yargs) => { return yargs @@ -129,18 +131,18 @@ yargs(hideBin(process.argv)) let tx = api.tx.registrar.markValidForCollating(argv.paraId); tx = api.tx.sudo.sudo(tx); - process.stdout.write(`Sending transaction... `); + process.stdout.write("Sending transaction... "); const txHash = await tx.signAndSend(account); process.stdout.write(`${txHash.toHex()}\n`); // TODO: this will always print Done, even if the extrinsic has failed - process.stdout.write(`Done ✅\n`); + process.stdout.write("Done ✅\n"); } finally { await api.disconnect(); } } ) .command( - `setBootNodes`, + "setBootNodes", "Set bootnodes for a container chain", (yargs) => { return yargs @@ -174,15 +176,15 @@ yargs(hideBin(process.argv)) const privKey = argv["account-priv-key"]; const account = keyring.addFromUri(privKey); - let bootnodes = []; + let bootnodes: (string | number)[] = []; if (!argv.bootnode) { argv.bootnode = []; } bootnodes = [...bootnodes, ...argv.bootnode]; - const txs = []; + const txs: any[] = []; - let profileId = await api.query.dataPreservers.nextProfileId(); + let profileId = (await api.query.dataPreservers.nextProfileId()).toNumber(); for (const bootnode of bootnodes) { const profileTx = api.tx.dataPreservers.createProfile({ url: bootnode, @@ -201,28 +203,28 @@ yargs(hideBin(process.argv)) // Check if not already valid, and only in that case call markValidForCollating const notValidParas = (await api.query.registrar.pendingVerification()) as any; if (notValidParas.toJSON().includes(argv.paraId)) { - process.stdout.write(`Will set container chain valid for collating\n`); + process.stdout.write("Will set container chain valid for collating\n"); const tx2 = api.tx.registrar.markValidForCollating(argv.paraId); - tx2s = api.tx.sudo.sudo(tx2); + const tx2s = api.tx.sudo.sudo(tx2); txs.push(tx2s); } else { // ParaId already valid, or not registered at all - process.stdout.write(`Not setting container chain valid for collating\n`); + process.stdout.write("Not setting container chain valid for collating\n"); } } const batchTx = api.tx.utility.batchAll(txs); - process.stdout.write(`Sending transaction... `); + process.stdout.write("Sending transaction... "); const txHash = await batchTx.signAndSend(account); process.stdout.write(`${txHash.toHex()}\n`); // TODO: this will always print Done, even if the extrinsic has failed - process.stdout.write(`Done ✅\n`); + process.stdout.write("Done ✅\n"); } finally { await api.disconnect(); } } ) .command( - `deregister`, + "deregister", "Deregister a container chain", (yargs) => { return yargs @@ -250,18 +252,18 @@ yargs(hideBin(process.argv)) let tx = api.tx.registrar.deregister(argv.paraId); tx = api.tx.sudo.sudo(tx); - process.stdout.write(`Sending transaction... `); + process.stdout.write("Sending transaction... "); const txHash = await tx.signAndSend(account); process.stdout.write(`${txHash.toHex()}\n`); // TODO: this will always print Done, even if the extrinsic has failed - process.stdout.write(`Done ✅\n`); + process.stdout.write("Done ✅\n"); } finally { await api.disconnect(); } } ) .command( - `pauseContainerChain`, + "pauseContainerChain", "Pause a container-chain from collating, without modifying its boot nodes nor its parachain config", (yargs) => { return yargs @@ -289,11 +291,11 @@ yargs(hideBin(process.argv)) let tx = api.tx.registrar.pauseContainerChain(argv.paraId); tx = api.tx.sudo.sudo(tx); - process.stdout.write(`Sending transaction... `); + process.stdout.write("Sending transaction... "); const txHash = await tx.signAndSend(account); process.stdout.write(`${txHash.toHex()}\n`); // TODO: this will always print Done, even if the extrinsic has failed - process.stdout.write(`Done ✅\n`); + process.stdout.write("Done ✅\n"); } finally { await api.disconnect(); } diff --git a/test/scripts/sudoStarlightRegisterPara.ts b/test/scripts/sudoStarlightRegisterPara.ts index f7268433f..9e1e27448 100644 --- a/test/scripts/sudoStarlightRegisterPara.ts +++ b/test/scripts/sudoStarlightRegisterPara.ts @@ -1,17 +1,20 @@ import { Keyring } from "@polkadot/api"; -import fs from "fs/promises"; +import fs from "node:fs/promises"; import jsonBg from "json-bigint"; import yargs from "yargs"; import { hideBin } from "yargs/helpers"; import { chainSpecToContainerChainGenesisData } from "../util/genesis_data"; import { NETWORK_YARGS_OPTIONS, getApiFor } from "./utils/network"; +import type { SubmittableExtrinsic } from "@polkadot/api/types"; +import type { U64 } from "@polkadot/types"; +import assert from "node:assert"; const JSONbig = jsonBg({ useNativeBigInt: true }); yargs(hideBin(process.argv)) .usage("Usage: $0") .version("1.0.0") .command( - `register`, + "register", "Registers a parachain, adds bootnodes, and marks the validation code as trusted. Does not mark the para as validForCollating", (yargs) => { return yargs @@ -44,16 +47,19 @@ yargs(hideBin(process.argv)) try { process.stdout.write(`Reading chainSpec from: ${argv.chain}\n`); - const rawSpec = JSONbig.parse(await fs.readFile(argv.chain!, "utf8")); + assert(argv.chain, "chain is required"); + assert(typeof argv.genesisState === "string", "genesisState is required"); + const rawSpec = JSONbig.parse(await fs.readFile(argv.chain, "utf8")); const genesisCode = rawSpec.genesis.raw.top["0x3a636f6465"]; - const headData = await fs.readFile(argv.genesisState!, "utf8"); + const headData = await fs.readFile(argv.genesisState, "utf8"); const privKey = argv["account-priv-key"]; + assert(privKey, "account-priv-key is required"); const account = keyring.addFromUri(privKey); const containerChainGenesisData = chainSpecToContainerChainGenesisData(api, rawSpec); - const txs = []; - let tx1; + const txs: SubmittableExtrinsic<"promise">[] = []; + let tx1: any; if (argv.parathread) { const slotFreq = api.createType("TpTraitsSlotFrequency", { min: 1, @@ -70,7 +76,7 @@ yargs(hideBin(process.argv)) } txs.push(tx1); if (rawSpec.bootNodes?.length) { - let profileId = await api.query.dataPreservers.nextProfileId(); + let profileId = ((await api.query.dataPreservers.nextProfileId()) as U64).toNumber(); for (const bootnode of rawSpec.bootNodes) { const profileTx = api.tx.dataPreservers.createProfile({ url: bootnode, @@ -92,25 +98,25 @@ yargs(hideBin(process.argv)) const tx3s = api.tx.sudo.sudo(tx3); txs.push(tx3s); - if (txs.length == 2) { - process.stdout.write(`Sending register transaction (register + addTrustedValidationCode)... `); + if (txs.length === 2) { + process.stdout.write("Sending register transaction (register + addTrustedValidationCode)... "); } else { process.stdout.write( - `Sending register transaction (register + createProfile + startAssignment + addTrustedValidationCode)... ` + "Sending register transaction (register + createProfile + startAssignment + addTrustedValidationCode)... " ); } const txBatch = api.tx.utility.batchAll(txs); const txHash = await txBatch.signAndSend(account); process.stdout.write(`${txHash.toHex()}\n`); // TODO: this will always print Done, even if the extrinsic has failed - process.stdout.write(`Done ✅\n`); + process.stdout.write("Done ✅\n"); } finally { await api.disconnect(); } } ) .command( - `markValidForCollating`, + "markValidForCollating", "Marks a registered parachain as valid, allowing collators to start collating", (yargs) => { return yargs @@ -138,18 +144,18 @@ yargs(hideBin(process.argv)) let tx = api.tx.containerRegistrar.markValidForCollating(argv.paraId); tx = api.tx.sudo.sudo(tx); - process.stdout.write(`Sending transaction... `); + process.stdout.write("Sending transaction... "); const txHash = await tx.signAndSend(account); process.stdout.write(`${txHash.toHex()}\n`); // TODO: this will always print Done, even if the extrinsic has failed - process.stdout.write(`Done ✅\n`); + process.stdout.write("Done ✅\n"); } finally { await api.disconnect(); } } ) .command( - `setBootNodes`, + "setBootNodes", "Set bootnodes for a container chain", (yargs) => { return yargs @@ -183,15 +189,15 @@ yargs(hideBin(process.argv)) const privKey = argv["account-priv-key"]; const account = keyring.addFromUri(privKey); - let bootnodes = []; + let bootnodes: (string | number)[] = []; if (!argv.bootnode) { argv.bootnode = []; } bootnodes = [...bootnodes, ...argv.bootnode]; - const txs = []; + const txs: SubmittableExtrinsic<"promise">[] = []; - let profileId = await api.query.dataPreservers.nextProfileId(); + let profileId = ((await api.query.dataPreservers.nextProfileId()) as U64).toNumber(); for (const bootnode of bootnodes) { const profileTx = api.tx.dataPreservers.createProfile({ url: bootnode, @@ -210,28 +216,28 @@ yargs(hideBin(process.argv)) // Check if not already valid, and only in that case call markValidForCollating const notValidParas = (await api.query.containerRegistrar.pendingVerification()) as any; if (notValidParas.toJSON().includes(argv.paraId)) { - process.stdout.write(`Will set container chain valid for collating\n`); + process.stdout.write("Will set container chain valid for collating\n"); const tx2 = api.tx.containerRegistrar.markValidForCollating(argv.paraId); - tx2s = api.tx.sudo.sudo(tx2); + const tx2s = api.tx.sudo.sudo(tx2); txs.push(tx2s); } else { // ParaId already valid, or not registered at all - process.stdout.write(`Not setting container chain valid for collating\n`); + process.stdout.write("Not setting container chain valid for collating\n"); } } const batchTx = api.tx.utility.batchAll(txs); - process.stdout.write(`Sending transaction... `); + process.stdout.write("Sending transaction... "); const txHash = await batchTx.signAndSend(account); process.stdout.write(`${txHash.toHex()}\n`); // TODO: this will always print Done, even if the extrinsic has failed - process.stdout.write(`Done ✅\n`); + process.stdout.write("Done ✅\n"); } finally { await api.disconnect(); } } ) .command( - `deregister`, + "deregister", "Deregister a container chain", (yargs) => { return yargs @@ -259,18 +265,18 @@ yargs(hideBin(process.argv)) let tx = api.tx.containerRegistrar.deregister(argv.paraId); tx = api.tx.sudo.sudo(tx); - process.stdout.write(`Sending transaction... `); + process.stdout.write("Sending transaction... "); const txHash = await tx.signAndSend(account); process.stdout.write(`${txHash.toHex()}\n`); // TODO: this will always print Done, even if the extrinsic has failed - process.stdout.write(`Done ✅\n`); + process.stdout.write("Done ✅\n"); } finally { await api.disconnect(); } } ) .command( - `pauseContainerChain`, + "pauseContainerChain", "Pause a container-chain from collating, without modifying its boot nodes nor its parachain config", (yargs) => { return yargs @@ -298,11 +304,11 @@ yargs(hideBin(process.argv)) let tx = api.tx.containerRegistrar.pauseContainerChain(argv.paraId); tx = api.tx.sudo.sudo(tx); - process.stdout.write(`Sending transaction... `); + process.stdout.write("Sending transaction... "); const txHash = await tx.signAndSend(account); process.stdout.write(`${txHash.toHex()}\n`); // TODO: this will always print Done, even if the extrinsic has failed - process.stdout.write(`Done ✅\n`); + process.stdout.write("Done ✅\n"); } finally { await api.disconnect(); } diff --git a/test/scripts/utils/network.ts b/test/scripts/utils/network.ts index d3f828ae4..01574d4e3 100644 --- a/test/scripts/utils/network.ts +++ b/test/scripts/utils/network.ts @@ -1,4 +1,4 @@ -import { Options } from "yargs"; +import type { Options } from "yargs"; import { ApiPromise, WsProvider } from "@polkadot/api"; export type NetworkOptions = { diff --git a/test/scripts/zombienetRestart.ts b/test/scripts/zombienetRestart.ts index 4d3ca025b..cfce098de 100644 --- a/test/scripts/zombienetRestart.ts +++ b/test/scripts/zombienetRestart.ts @@ -1,9 +1,9 @@ import * as ps from "ps-node"; -import { exec, spawn, execSync } from "child_process"; -import { readFileSync, writeFileSync, readlinkSync, unlinkSync } from "fs"; +import { exec, spawn, execSync } from "node:child_process"; +import { readFileSync, writeFileSync, readlinkSync, unlinkSync } from "node:fs"; import yargs from "yargs"; import { hideBin } from "yargs/helpers"; -import inquirer from "inquirer"; +import { select } from "@inquirer/prompts"; const getEnvVariables = (pid: number) => { const envData = readFileSync(`/proc/${pid}/environ`).toString(); @@ -80,23 +80,19 @@ yargs(hideBin(process.argv)) process.exit(1); } - const { selectedPid } = await inquirer.prompt([ - { - type: "list", - name: "selectedPid", - message: "Select a process to restart:", - choices: processes, - pageSize: 15, // Increase this number as needed - }, - ]); - - pid = Number(selectedPid); + const result = await select({ + message: "Select a process to restart:", + choices: processes, + pageSize: 15, // Increase this number as needed + }); + + pid = Number.parseInt(result); } // Get process details by PID ps.lookup({ pid: pid }, (err, resultList) => { if (err) { - throw new Error(err); + throw err; } const processInfo = resultList[0]; @@ -145,15 +141,15 @@ yargs(hideBin(process.argv)) env: Object.fromEntries(envVariables.map((e) => e.split("=", 2))), }); - ["SIGINT", "SIGTERM"].forEach((signal) => { + for (const signal of ["SIGINT", "SIGTERM"]) { process.on(signal, () => { console.log("zombienetRestart: got ", signal); if (child) { - child.kill(signal); + child.kill(signal as NodeJS.Signals); } process.exit(); }); - }); + } }, argv["wait-ms"]); }); } else { @@ -171,9 +167,9 @@ yargs(hideBin(process.argv)) const processes = await fetchProcesses(); if (processes.length) { console.log("Matching Processes:"); - processes.forEach((process) => { + for (const process of processes) { console.log(process.name); - }); + } } else { console.log("No matching processes found."); } diff --git a/test/suites/common-all-parachain/proxy/test-proxy-balances.ts b/test/suites/common-all-parachain/proxy/test-proxy-balances.ts index b45bdba73..e13a4ad96 100644 --- a/test/suites/common-all-parachain/proxy/test-proxy-balances.ts +++ b/test/suites/common-all-parachain/proxy/test-proxy-balances.ts @@ -1,11 +1,11 @@ -import "@polkadot/api-augment"; +import "@tanssi/api-augment"; import { beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { KeyringPair } from "@moonwall/util"; -import { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; import { initializeCustomCreateBlock } from "../../../util/block"; describeSuite({ - id: "CAP0101", + id: "CO0301", title: "Proxy test suite - ProxyType::Balances", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -26,7 +26,7 @@ describeSuite({ it({ id: "E01", title: "No proxies at genesis", - test: async function () { + test: async () => { await context.createBlock(); const proxies = await polkadotJs.query.proxy.proxies(alice.address); expect(proxies.toJSON()[0]).to.deep.equal([]); @@ -36,7 +36,7 @@ describeSuite({ it({ id: "E02", title: "Add proxy Balances", - test: async function () { + test: async () => { const delegate = charlie.address; const balances = ["frontier-template", "container-chain-template"].includes(chain) ? 4 : 5; const delay = 0; @@ -45,7 +45,7 @@ describeSuite({ const events = await polkadotJs.query.system.events(); const ev1 = events.filter((a) => { - return a.event.method == "ProxyAdded"; + return a.event.method === "ProxyAdded"; }); expect(ev1.length).to.be.equal(1); @@ -63,7 +63,7 @@ describeSuite({ it({ id: "E03", title: "Delegate account can call balance.transfer", - test: async function () { + test: async () => { await context.createBlock(); const tx = polkadotJs.tx.proxy.proxy( @@ -74,7 +74,7 @@ describeSuite({ await context.createBlock([await tx.signAsync(charlie)]); const events = await polkadotJs.query.system.events(); const ev1 = events.filter((a) => { - return a.event.method == "ProxyExecuted"; + return a.event.method === "ProxyExecuted"; }); expect(ev1.length).to.be.equal(1); expect(ev1[0].event.data[0].toString()).to.be.eq("Ok"); @@ -84,7 +84,7 @@ describeSuite({ it({ id: "E04", title: "Delegate account cannot call system.remark", - test: async function () { + test: async () => { await context.createBlock(); const tx = polkadotJs.tx.proxy.proxy( @@ -95,13 +95,13 @@ describeSuite({ await context.createBlock([await tx.signAsync(charlie)]); const events = await polkadotJs.query.system.events(); const ev1 = events.filter((a) => { - return a.event.method == "ProxyExecuted"; + return a.event.method === "ProxyExecuted"; }); expect(ev1.length).to.be.equal(1); expect(ev1[0].event.data[0].toString()).to.not.be.eq("Ok"); const ev2 = events.filter((a) => { - return a.event.method == "Remarked"; + return a.event.method === "Remarked"; }); expect(ev2.length).to.be.equal(0); }, diff --git a/test/suites/common-all-parachain/test-maintenance/test-maintenance-mode.ts b/test/suites/common-all-parachain/test-maintenance/test-maintenance-mode.ts index 651220a1d..c0615d657 100644 --- a/test/suites/common-all-parachain/test-maintenance/test-maintenance-mode.ts +++ b/test/suites/common-all-parachain/test-maintenance/test-maintenance-mode.ts @@ -1,11 +1,11 @@ -import "@polkadot/api-augment"; +import "@tanssi/api-augment"; import { beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { KeyringPair } from "@moonwall/util"; -import { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; import { initializeCustomCreateBlock } from "../../../util/block"; describeSuite({ - id: "CAP0201", + id: "CO0101", title: "Maintenance mode test suite", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -26,7 +26,7 @@ describeSuite({ it({ id: "E01", title: "No maintenance mode at genesis", - test: async function () { + test: async () => { await context.createBlock(); const enabled = (await polkadotJs.query.maintenanceMode.maintenanceMode()).toJSON(); expect(enabled).to.be.false; @@ -36,7 +36,7 @@ describeSuite({ it({ id: "E02", title: "Signed origin cannot enable maintenance mode", - test: async function () { + test: async () => { await context.createBlock(); const tx = polkadotJs.tx.maintenanceMode.enterMaintenanceMode(); @@ -44,7 +44,7 @@ describeSuite({ const events = await polkadotJs.query.system.events(); const ev1 = events.filter((a) => { - return a.event.method == "ExtrinsicFailed"; + return a.event.method === "ExtrinsicFailed"; }); expect(ev1.length).to.be.equal(1); @@ -56,7 +56,7 @@ describeSuite({ it({ id: "E03", title: "Root origin can enable maintenance mode", - test: async function () { + test: async () => { await context.createBlock(); await context.createBlock(); @@ -65,7 +65,7 @@ describeSuite({ const events = await polkadotJs.query.system.events(); const ev1 = events.filter((a) => { - return a.event.method == "EnteredMaintenanceMode"; + return a.event.method === "EnteredMaintenanceMode"; }); expect(ev1.length).to.be.equal(1); @@ -77,7 +77,7 @@ describeSuite({ it({ id: "E04", title: "No transfers allowed in maintenance mode", - test: async function () { + test: async () => { await context.createBlock(); const enabled = (await polkadotJs.query.maintenanceMode.maintenanceMode()).toJSON(); @@ -87,7 +87,7 @@ describeSuite({ const tx = polkadotJs.tx.balances.transferAllowDeath(bob.address, 1000); - if (chain == "frontier-template") { + if (chain === "frontier-template") { expect(await context.createBlock([await tx.signAsync(alice)]).catch((e) => e.toString())).to.equal( "RpcError: 1010: Invalid Transaction: Transaction call is not expected" ); @@ -104,7 +104,7 @@ describeSuite({ it({ id: "E05", title: "Transfer with sudo allowed in maintenance mode", - test: async function () { + test: async () => { await context.createBlock(); await context.createBlock(); @@ -126,7 +126,7 @@ describeSuite({ it({ id: "E06", title: "Signed origin cannot disable maintenance mode", - test: async function () { + test: async () => { await context.createBlock(); await context.createBlock(); @@ -135,7 +135,7 @@ describeSuite({ const events = await polkadotJs.query.system.events(); const ev1 = events.filter((a) => { - return a.event.method == "ExtrinsicFailed"; + return a.event.method === "ExtrinsicFailed"; }); expect(ev1.length).to.be.equal(1); @@ -147,7 +147,7 @@ describeSuite({ it({ id: "E07", title: "Root origin can disable maintenance mode", - test: async function () { + test: async () => { await context.createBlock(); const tx = polkadotJs.tx.maintenanceMode.resumeNormalOperation(); @@ -155,7 +155,7 @@ describeSuite({ const events = await polkadotJs.query.system.events(); const ev1 = events.filter((a) => { - return a.event.method == "NormalOperationResumed"; + return a.event.method === "NormalOperationResumed"; }); expect(ev1.length).to.be.equal(1); @@ -167,7 +167,7 @@ describeSuite({ it({ id: "E08", title: "Transfers allowed again after disabling maintenance mode", - test: async function () { + test: async () => { await context.createBlock(); const enabled = (await polkadotJs.query.maintenanceMode.maintenanceMode()).toJSON(); diff --git a/test/suites/common-all-parachain/tx-pause/test_maintenance_mode.ts b/test/suites/common-all-parachain/tx-pause/test_maintenance_mode.ts index 9755f991f..23e83a106 100644 --- a/test/suites/common-all-parachain/tx-pause/test_maintenance_mode.ts +++ b/test/suites/common-all-parachain/tx-pause/test_maintenance_mode.ts @@ -1,13 +1,13 @@ import "@tanssi/api-augment"; import { beforeAll, describeSuite, expect } from "@moonwall/cli"; import { DANCE } from "util/constants"; -import { ApiPromise } from "@polkadot/api"; -import { KeyringPair } from "@moonwall/util"; -import { Result } from "@polkadot/types-codec"; -import { SpRuntimeDispatchError } from "@polkadot/types/lookup"; +import type { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; +import type { Result } from "@polkadot/types-codec"; +import type { SpRuntimeDispatchError } from "@polkadot/types/lookup"; describeSuite({ - id: "CAP0301", + id: "CO0201", title: "Pausing is compatible with maintenance mode", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -16,7 +16,7 @@ describeSuite({ let bob: KeyringPair; let chain: string; - beforeAll(async function () { + beforeAll(async () => { polkadotJs = context.polkadotJs(); alice = context.keyring.alice; bob = context.keyring.bob; @@ -26,7 +26,7 @@ describeSuite({ it({ id: "E01", title: "a paused tx should still fail during maintenance mode", - test: async function () { + test: async () => { // Pause Balances.transfer_allow_death const { result } = await context.createBlock( polkadotJs.tx.sudo @@ -49,7 +49,7 @@ describeSuite({ const signedTx = polkadotJs.tx.balances.transferAllowDeath(bob.address, DANCE).signAsync(alice); // transfer_allow_death should fail - if (chain == "frontier-template") { + if (chain === "frontier-template") { expect(await context.createBlock(signedTx).catch((e) => e.toString())).to.equal( "RpcError: 1010: Invalid Transaction: Transaction call is not expected" ); @@ -65,7 +65,7 @@ describeSuite({ it({ id: "E02", title: "a paused tx should still fail after maintenance mode", - test: async function () { + test: async () => { // Disable maintenance mode await context.createBlock( polkadotJs.tx.sudo.sudo(polkadotJs.tx.maintenanceMode.resumeNormalOperation()).signAsync(alice) @@ -77,7 +77,7 @@ describeSuite({ const signedTx = polkadotJs.tx.balances.transferAllowDeath(bob.address, DANCE).signAsync(alice); // transfer_allow_death should fail - if (chain == "frontier-template") { + if (chain === "frontier-template") { expect(await context.createBlock(signedTx).catch((e) => e.toString())).to.equal( "RpcError: 1010: Invalid Transaction: Transaction call is not expected" ); diff --git a/test/suites/common-all-parachain/tx-pause/test_pause.ts b/test/suites/common-all-parachain/tx-pause/test_pause.ts index 31c9fb4f7..bf7f69773 100644 --- a/test/suites/common-all-parachain/tx-pause/test_pause.ts +++ b/test/suites/common-all-parachain/tx-pause/test_pause.ts @@ -1,13 +1,13 @@ import "@tanssi/api-augment"; import { beforeAll, describeSuite, expect } from "@moonwall/cli"; import { DANCE } from "util/constants"; -import { ApiPromise } from "@polkadot/api"; -import { KeyringPair } from "@moonwall/util"; -import { Result } from "@polkadot/types-codec"; -import { SpRuntimeDispatchError } from "@polkadot/types/lookup"; +import type { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; +import type { Result } from "@polkadot/types-codec"; +import type { SpRuntimeDispatchError } from "@polkadot/types/lookup"; describeSuite({ - id: "CAP0302", + id: "CO0202", title: "Txs can be paused and unpaused", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -16,7 +16,7 @@ describeSuite({ let bob: KeyringPair; let chain: string; - beforeAll(async function () { + beforeAll(async () => { polkadotJs = context.polkadotJs(); alice = context.keyring.alice; bob = context.keyring.bob; @@ -26,7 +26,7 @@ describeSuite({ it({ id: "E01", title: "transfer should fail after pausing it", - test: async function () { + test: async () => { await context.createBlock(); // Pause Balances.transfer_allow_death const { result } = await context.createBlock( @@ -44,7 +44,7 @@ describeSuite({ const signedTx = polkadotJs.tx.balances.transferAllowDeath(bob.address, DANCE).signAsync(alice); // transfer_allow_death should fail - if (chain == "frontier-template") { + if (chain === "frontier-template") { expect(await context.createBlock(signedTx).catch((e) => e.toString())).to.equal( "RpcError: 1010: Invalid Transaction: Transaction call is not expected" ); @@ -60,7 +60,7 @@ describeSuite({ it({ id: "E02", title: "transfer should succeed after unpausing it", - test: async function () { + test: async () => { // Unpause Balances.transferAllowDeath const { result } = await context.createBlock( polkadotJs.tx.sudo @@ -86,7 +86,7 @@ describeSuite({ it({ id: "E03", title: "sudo shoudn't be affected by a pause", - test: async function () { + test: async () => { await context.createBlock(); // Pause Balances.transfer diff --git a/test/suites/common-all/fee_balance_transfer/test_fee_balance_transfer.ts b/test/suites/common-all/fee_balance_transfer/test_fee_balance_transfer.ts index d47e380a1..463a6589d 100644 --- a/test/suites/common-all/fee_balance_transfer/test_fee_balance_transfer.ts +++ b/test/suites/common-all/fee_balance_transfer/test_fee_balance_transfer.ts @@ -1,12 +1,12 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { KeyringPair, filterAndApply } from "@moonwall/util"; -import { ApiPromise } from "@polkadot/api"; +import { type KeyringPair, filterAndApply } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; import { extractWeight } from "@moonwall/util"; import { extractFeeAuthor, filterRewardFromOrchestrator } from "util/block"; describeSuite({ - id: "CA0101", + id: "C0101", title: "Fee test suite", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -17,7 +17,7 @@ describeSuite({ // Difference between the refTime estimated using paymentInfo and the actual refTime reported inside a block // https://github.com/paritytech/substrate/blob/5e49f6e44820affccaf517fd22af564f4b495d40/frame/support/src/weights/extrinsic_weights.rs#L56 - let baseWeight; + let baseWeight: bigint; beforeAll(async () => { alice = context.keyring.alice; @@ -31,7 +31,7 @@ describeSuite({ it({ id: "E01", title: "Fee of balances.transfer can be estimated using paymentInfo", - test: async function () { + test: async () => { const balanceBefore = (await polkadotJs.query.system.account(alice.address)).data.free.toBigInt(); const tx = polkadotJs.tx.balances.transferAllowDeath(bob.address, 200_000); // Estimate fee of balances.transfer using paymentInfo API, before sending transaction @@ -69,8 +69,8 @@ describeSuite({ const expectedbasePlusWeightFee = context.isEthereumChain ? expectedBaseFee + 1600000000000n : isRelay - ? expectedBaseFee + 5800000n - : expectedBaseFee + 1600000n; + ? expectedBaseFee + 5800000n + : expectedBaseFee + 1600000n; expect( basePlusWeightFee >= (expectedbasePlusWeightFee * 90n) / 100n && @@ -97,7 +97,7 @@ describeSuite({ it({ id: "E02", title: "Fee of balances.transfer can be estimated using transactionPaymentApi.queryFeeDetails", - test: async function () { + test: async () => { const balanceBefore = (await polkadotJs.query.system.account(alice.address)).data.free.toBigInt(); const tx = polkadotJs.tx.balances.transferAllowDeath(bob.address, 200_000); const signedTx = await tx.signAsync(alice); @@ -156,7 +156,7 @@ describeSuite({ it({ id: "E03", title: "Fee of balances.transfer does increase after 100 full blocks due to slow adjusting multiplier", - test: async function () { + test: async () => { const fillAmount = 600_000_000; // equal to 60% Perbill const previousfeeMultiplier = ( @@ -235,7 +235,7 @@ describeSuite({ it({ id: "E04", title: "Proof size does not affect fee", - test: async function () { + test: async () => { const refTime = 298945000n; const proofSize = 3593n; const fee1 = ( @@ -259,7 +259,7 @@ describeSuite({ it({ id: "E05", title: "Base refTime pays base fee", - test: async function () { + test: async () => { const fee = ( await polkadotJs.call.transactionPaymentApi.queryWeightToFee({ refTime: baseWeight, diff --git a/test/suites/common-all/pallet-multisig/test_pallet_multisig.ts b/test/suites/common-all/pallet-multisig/test_pallet_multisig.ts index 1370f5dc6..365897d08 100644 --- a/test/suites/common-all/pallet-multisig/test_pallet_multisig.ts +++ b/test/suites/common-all/pallet-multisig/test_pallet_multisig.ts @@ -1,13 +1,13 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; -import { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; import { blake2AsHex, createKeyMulti } from "@polkadot/util-crypto"; import { u8aToHex } from "@polkadot/util"; import { alith, charleth, baltathar, dorothy } from "@moonwall/util"; describeSuite({ - id: "CA0201", + id: "C0201", title: "Multisig pallet test suite", foundationMethods: "dev", @@ -50,7 +50,7 @@ describeSuite({ // The multisig is created let records = await polkadotJs.query.system.events(); let eventCount = records.filter((a) => { - return a.event.method == "NewMultisig"; + return a.event.method === "NewMultisig"; }); expect(eventCount.length).to.be.equal(1); @@ -70,7 +70,7 @@ describeSuite({ // Multisig is cancelled records = await polkadotJs.query.system.events(); eventCount = records.filter((a) => { - return a.event.method == "MultisigCancelled"; + return a.event.method === "MultisigCancelled"; }); expect(eventCount.length).to.be.equal(1); }, @@ -79,7 +79,7 @@ describeSuite({ it({ id: "E02", title: "Approves a multisig operation", - test: async function () { + test: async () => { //Multisig creation const otherSignatories = [dave_or_baltathar.address, bob_or_dorothy.address]; await context.createBlock( @@ -114,7 +114,7 @@ describeSuite({ // Multisig call is approved const records = await polkadotJs.query.system.events(); const eventCount = records.filter((a) => { - return a.event.method == "MultisigApproval"; + return a.event.method === "MultisigApproval"; }); expect(eventCount.length).to.be.equal(1); }, diff --git a/test/suites/common-all/proxy/test-proxy-cancel.ts b/test/suites/common-all/proxy/test-proxy-cancel.ts index ca6f1ea18..0b00b54ba 100644 --- a/test/suites/common-all/proxy/test-proxy-cancel.ts +++ b/test/suites/common-all/proxy/test-proxy-cancel.ts @@ -1,11 +1,11 @@ -import "@polkadot/api-augment"; +import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { KeyringPair } from "@moonwall/util"; -import { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; import { initializeCustomCreateBlock } from "../../../util/block"; describeSuite({ - id: "CA0301", + id: "C0301", title: "Proxy test suite - ProxyType::CancelProxy", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -29,7 +29,7 @@ describeSuite({ it({ id: "E01", title: "No proxies at genesis", - test: async function () { + test: async () => { await context.createBlock(); const proxies = await polkadotJs.query.proxy.proxies(alice.address); expect(proxies.toJSON()[0]).to.deep.equal([]); @@ -39,7 +39,7 @@ describeSuite({ it({ id: "E02", title: "Add proxy Any", - test: async function () { + test: async () => { await context.createBlock(); const delegate = bob.address; @@ -49,7 +49,7 @@ describeSuite({ const events = await polkadotJs.query.system.events(); const ev1 = events.filter((a) => { - return a.event.method == "ProxyAdded"; + return a.event.method === "ProxyAdded"; }); expect(ev1.length).to.be.equal(1); @@ -67,7 +67,7 @@ describeSuite({ it({ id: "E03", title: "Add proxy CancelProxy", - test: async function () { + test: async () => { const delegate = charlie.address; const cancelProxy = ["frontier-template", "container-chain-template"].includes(chain) ? 3 : 4; const delay = 0; @@ -76,7 +76,7 @@ describeSuite({ const events = await polkadotJs.query.system.events(); const ev1 = events.filter((a) => { - return a.event.method == "ProxyAdded"; + return a.event.method === "ProxyAdded"; }); expect(ev1.length).to.be.equal(1); @@ -99,7 +99,7 @@ describeSuite({ it({ id: "E04", title: "Delegate account can call proxy.rejectAnnouncement", - test: async function () { + test: async () => { await context.createBlock(); // Bob announces a transfer call @@ -109,7 +109,7 @@ describeSuite({ await context.createBlock([await tx1.signAsync(bob)]); let events = await polkadotJs.query.system.events(); const ev1 = events.filter((a) => { - return a.event.method == "Announced"; + return a.event.method === "Announced"; }); expect(ev1.length).to.be.equal(1); @@ -122,7 +122,7 @@ describeSuite({ await context.createBlock([await tx2.signAsync(charlie)]); events = await polkadotJs.query.system.events(); const ev2 = events.filter((a) => { - return a.event.method == "ProxyExecuted"; + return a.event.method === "ProxyExecuted"; }); expect(ev2.length).to.be.equal(1); expect(ev2[0].event.data[0].toString()).to.be.eq("Ok"); @@ -139,7 +139,7 @@ describeSuite({ events = await polkadotJs.query.system.events(); const ev3 = events.filter((a) => { - return a.event.method == "ExtrinsicFailed"; + return a.event.method === "ExtrinsicFailed"; }); expect(ev3.length).to.be.equal(1); }, @@ -148,7 +148,7 @@ describeSuite({ it({ id: "E05", title: "Unauthorized account cannot reject announcement", - test: async function () { + test: async () => { // Bob announces a transfer call const balanceCall = polkadotJs.tx.balances.transferAllowDeath(bob.address, 200_000); const callHash = balanceCall.method.hash.toString(); @@ -156,7 +156,7 @@ describeSuite({ await context.createBlock([await tx1.signAsync(bob)]); let events = await polkadotJs.query.system.events(); const ev1 = events.filter((a) => { - return a.event.method == "Announced"; + return a.event.method === "Announced"; }); expect(ev1.length).to.be.equal(1); @@ -169,7 +169,7 @@ describeSuite({ await context.createBlock([await tx2.signAsync(dave)]); events = await polkadotJs.query.system.events(); const ev2 = events.filter((a) => { - return a.event.method == "ExtrinsicFailed"; + return a.event.method === "ExtrinsicFailed"; }); expect(ev2.length).to.be.equal(1); @@ -185,7 +185,7 @@ describeSuite({ events = await polkadotJs.query.system.events(); const ev3 = events.filter((a) => { - return a.event.method == "ProxyExecuted"; + return a.event.method === "ProxyExecuted"; }); expect(ev3.length).to.be.equal(1); expect(ev3[0].event.data[0].toString()).to.be.eq("Ok"); @@ -195,7 +195,7 @@ describeSuite({ it({ id: "E06", title: "Delegate account cannot call balance.transfer", - test: async function () { + test: async () => { if (!chain.includes("light")) { await context.createBlock(); } @@ -209,7 +209,7 @@ describeSuite({ const events = await polkadotJs.query.system.events(); const ev1 = events.filter((a) => { - return a.event.method == "ProxyExecuted"; + return a.event.method === "ProxyExecuted"; }); expect(ev1.length).to.be.equal(1); expect(ev1[0].event.data[0].toString()).to.not.be.eq("Ok"); diff --git a/test/suites/common-all/proxy/test-proxy-pure.ts b/test/suites/common-all/proxy/test-proxy-pure.ts index 86b8dc9b6..1a6690df9 100644 --- a/test/suites/common-all/proxy/test-proxy-pure.ts +++ b/test/suites/common-all/proxy/test-proxy-pure.ts @@ -1,18 +1,18 @@ -import "@polkadot/api-augment"; +import "@tanssi/api-augment"; import { beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { KeyringPair } from "@moonwall/util"; -import { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; import { initializeCustomCreateBlock } from "../../../util/block"; describeSuite({ - id: "CA0302", + id: "C0302", title: "Proxy test suite - create_pure", foundationMethods: "dev", testCases: ({ it, context }) => { let polkadotJs: ApiPromise; let alice: KeyringPair; let charlie: KeyringPair; - let proxyAddress; + let proxyAddress: string; beforeAll(() => { initializeCustomCreateBlock(context); @@ -25,7 +25,7 @@ describeSuite({ it({ id: "E01", title: "No proxies at genesis", - test: async function () { + test: async () => { await context.createBlock(); const proxies = await polkadotJs.query.proxy.proxies(alice.address); expect(proxies.toJSON()[0]).to.deep.equal([]); @@ -35,7 +35,7 @@ describeSuite({ it({ id: "E02", title: "Add pure proxy", - test: async function () { + test: async () => { const delay = 0; const index = 0; const tx = polkadotJs.tx.proxy.createPure("Any", delay, index); @@ -43,7 +43,7 @@ describeSuite({ const events = await polkadotJs.query.system.events(); const ev1 = events.filter((a) => { - return a.event.method == "PureCreated"; + return a.event.method === "PureCreated"; }); expect(ev1.length).to.be.equal(1); proxyAddress = ev1[0].event.toJSON().data[0]; @@ -53,7 +53,7 @@ describeSuite({ it({ id: "E03", title: "Pure proxy account can call balance.transfer", - test: async function () { + test: async () => { await context.createBlock(); // Send some initial balance to pure proxy account @@ -70,7 +70,7 @@ describeSuite({ await context.createBlock([await tx.signAsync(alice)]); const events = await polkadotJs.query.system.events(); const ev1 = events.filter((a) => { - return a.event.method == "ProxyExecuted"; + return a.event.method === "ProxyExecuted"; }); expect(ev1.length).to.be.equal(1); expect(ev1[0].event.data[0].toString()).to.be.eq("Ok"); @@ -80,7 +80,7 @@ describeSuite({ it({ id: "E04", title: "Pure proxy account can call system.remark", - test: async function () { + test: async () => { await context.createBlock(); const tx = polkadotJs.tx.proxy.proxy( @@ -91,13 +91,13 @@ describeSuite({ await context.createBlock([await tx.signAsync(alice)]); const events = await polkadotJs.query.system.events(); const ev1 = events.filter((a) => { - return a.event.method == "ProxyExecuted"; + return a.event.method === "ProxyExecuted"; }); expect(ev1.length).to.be.equal(1); expect(ev1[0].event.data[0].toString()).to.be.eq("Ok"); const ev2 = events.filter((a) => { - return a.event.method == "Remarked"; + return a.event.method === "Remarked"; }); expect(ev2.length).to.be.equal(1); }, diff --git a/test/suites/common-all/proxy/test-proxy.ts b/test/suites/common-all/proxy/test-proxy.ts index 0205e88e3..122dff4c9 100644 --- a/test/suites/common-all/proxy/test-proxy.ts +++ b/test/suites/common-all/proxy/test-proxy.ts @@ -1,11 +1,11 @@ -import "@polkadot/api-augment"; +import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { KeyringPair } from "@moonwall/util"; -import { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; import { initializeCustomCreateBlock, extractFeeAuthor, filterRewardFromContainer } from "../../../util/block"; describeSuite({ - id: "CA0303", + id: "C0303", title: "Proxy test suite", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -31,7 +31,7 @@ describeSuite({ it({ id: "E01", title: "No proxies at genesis", - test: async function () { + test: async () => { await context.createBlock(); const proxies = await polkadotJs.query.proxy.proxies(alice.address); expect(proxies.toJSON()[0]).to.deep.equal([]); @@ -41,7 +41,7 @@ describeSuite({ it({ id: "E02", title: "Add proxy", - test: async function () { + test: async () => { await context.createBlock(); const delegate = bob.address; @@ -50,7 +50,7 @@ describeSuite({ const events = await polkadotJs.query.system.events(); const ev1 = events.filter((a) => { - return a.event.method == "ProxyAdded"; + return a.event.method === "ProxyAdded"; }); expect(ev1.length).to.be.equal(1); @@ -68,7 +68,7 @@ describeSuite({ it({ id: "E03", title: "Delegate account can call proxy.proxy", - test: async function () { + test: async () => { const balanceBefore = (await polkadotJs.query.system.account(bob.address)).data.free.toBigInt(); const tx = polkadotJs.tx.proxy.proxy( alice.address, @@ -79,7 +79,7 @@ describeSuite({ const events = await polkadotJs.query.system.events(); const ev1 = events.filter((a) => { - return a.event.method == "ProxyExecuted"; + return a.event.method === "ProxyExecuted"; }); expect(ev1.length).to.be.equal(1); expect(ev1[0].event.data[0].toString()).to.be.eq("Ok"); @@ -96,7 +96,7 @@ describeSuite({ it({ id: "E04", title: "Unauthorized account cannot call proxy.proxy", - test: async function () { + test: async () => { await context.createBlock(); const balanceBefore = (await polkadotJs.query.system.account(charlie.address)).data.free.toBigInt(); @@ -108,7 +108,7 @@ describeSuite({ await context.createBlock([await tx.signAsync(charlie)]); const events = await polkadotJs.query.system.events(); const ev1 = events.filter((a) => { - return a.event.method == "ExtrinsicFailed"; + return a.event.method === "ExtrinsicFailed"; }); expect(ev1.length).to.be.equal(1); @@ -126,7 +126,7 @@ describeSuite({ it({ id: "E05", title: "Can add multiple proxy types to the same delegator", - test: async function () { + test: async () => { await context.createBlock(); const delegate = dave.address; @@ -135,9 +135,9 @@ describeSuite({ // All proxy types that do not allow balance transfer // Frontier chains -> NonTransfer = 1, Governance = 2, CancelProxy = 3 // Other chains -> NonTransfer = 1, Governance = 2, Staking = 3, CancelProxy = 4 - const proxyTypes = chain == "frontier-template" ? [1, 2, 3] : [1, 2, 3, 4]; + const proxyTypes = chain === "frontier-template" ? [1, 2, 3] : [1, 2, 3, 4]; const nonce = - chain == "frontier-template" + chain === "frontier-template" ? (await polkadotJs.query.system.account(alice.address)).nonce : await polkadotJs.rpc.system.accountNextIndex(alice.publicKey); @@ -149,7 +149,7 @@ describeSuite({ const events = await polkadotJs.query.system.events(); const ev1 = events.filter((a) => { - return a.event.method == "ProxyAdded"; + return a.event.method === "ProxyAdded"; }); expect(ev1.length).to.be.equal(proxyTypes.length); @@ -161,7 +161,7 @@ describeSuite({ it({ id: "E06", title: "Account with no balance proxy cannot call balances.transfer", - test: async function () { + test: async () => { // Dave has multiple proxy types, but none of them allows to call balances.transfer const balanceBefore = (await polkadotJs.query.system.account(dave.address)).data.free.toBigInt(); const tx = polkadotJs.tx.proxy.proxy( @@ -173,7 +173,7 @@ describeSuite({ const events = await polkadotJs.query.system.events(); const ev1 = events.filter((a) => { - return a.event.method == "ProxyExecuted"; + return a.event.method === "ProxyExecuted"; }); expect(ev1.length).to.be.equal(1); expect(ev1[0].event.data[0].toString()).to.not.be.eq("Ok"); @@ -189,7 +189,7 @@ describeSuite({ it({ id: "E07", title: "Account with non transfer proxy can call system.remark", - test: async function () { + test: async () => { // relay session change blocks happen at 1, 11, 21.. // parachain at 0, 10, 20.. if (!chain.includes("light")) { @@ -205,13 +205,13 @@ describeSuite({ const events = await polkadotJs.query.system.events(); const ev1 = events.filter((a) => { - return a.event.method == "ProxyExecuted"; + return a.event.method === "ProxyExecuted"; }); expect(ev1.length).to.be.equal(1); expect(ev1[0].event.data[0].toString()).to.be.eq("Ok"); const ev2 = events.filter((a) => { - return a.event.method == "Remarked"; + return a.event.method === "Remarked"; }); expect(ev2.length).to.be.equal(1); }, diff --git a/test/suites/common-all/test_basic.ts b/test/suites/common-all/test_basic.ts index 03b9af793..5ad8c4297 100644 --- a/test/suites/common-all/test_basic.ts +++ b/test/suites/common-all/test_basic.ts @@ -1,10 +1,9 @@ -import "@polkadot/api-augment"; import { beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { KeyringPair } from "@moonwall/util"; -import { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; describeSuite({ - id: "CA0001", + id: "C01", title: "Dev test suite", foundationMethods: "dev", testCases: ({ it, context, log }) => { @@ -22,7 +21,7 @@ describeSuite({ it({ id: "E01", title: "Checking that launched node can create blocks", - test: async function () { + test: async () => { const block = (await polkadotJs.rpc.chain.getBlock()).block.header.number.toNumber(); await context.createBlock(); @@ -36,7 +35,7 @@ describeSuite({ id: "E02", title: "Checking that substrate txns possible", timeout: 20000, - test: async function () { + test: async () => { const balanceBefore = (await polkadotJs.query.system.account(bob.address)).data.free; await polkadotJs.tx.balances.transferAllowDeath(bob.address, 1000).signAndSend(alice); @@ -51,7 +50,7 @@ describeSuite({ it({ id: "E03", title: "Checking that sudo can be used", - test: async function () { + test: async () => { await context.createBlock(); const tx = polkadotJs.tx.rootTesting.fillBlock(60 * 10 ** 7); await polkadotJs.tx.sudo.sudo(tx).signAndSend(alice); diff --git a/test/suites/common-container-chains/test-pallet-xcm-executor-utils/test-custom-policy.ts b/test/suites/common-container-chains/test-pallet-xcm-executor-utils/test-custom-policy.ts index e91dfd8e5..4c5a9da2e 100644 --- a/test/suites/common-container-chains/test-pallet-xcm-executor-utils/test-custom-policy.ts +++ b/test/suites/common-container-chains/test-pallet-xcm-executor-utils/test-custom-policy.ts @@ -1,26 +1,26 @@ import { beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { KeyringPair, alith } from "@moonwall/util"; -import { ApiPromise, Keyring } from "@polkadot/api"; +import { type KeyringPair, alith } from "@moonwall/util"; +import { type ApiPromise, Keyring } from "@polkadot/api"; import { u8aToHex } from "@polkadot/util"; -import { RawXcmMessage, XcmFragment, injectDmpMessageAndSeal } from "../../../util/xcm.ts"; +import { type RawXcmMessage, XcmFragment, injectDmpMessageAndSeal } from "../../../util/xcm.ts"; import { RELAY_SOURCE_LOCATION, RELAY_SOURCE_LOCATION_2 } from "../../../util/constants.ts"; describeSuite({ - id: "CC0101", + id: "COM0101", title: "XcmExecutorUtils - Custom policies", foundationMethods: "dev", testCases: ({ context, it }) => { let polkadotJs: ApiPromise; let alice: KeyringPair; let chain: string; - let transferredBalance; + let transferredBalance: bigint; - beforeAll(async function () { + beforeAll(async () => { polkadotJs = context.polkadotJs(); chain = polkadotJs.consts.system.version.specName.toString(); alice = - chain == "frontier-template" + chain === "frontier-template" ? alith : new Keyring({ type: "sr25519" }).addFromUri("//Alice", { name: "Alice default", @@ -45,8 +45,8 @@ describeSuite({ true, 1 ), - polkadotJs.tx.assetRate.create(1, 2_000_000_000_000_000_000n), - polkadotJs.tx.assetRate.create(2, 2_000_000_000_000_000_000n), + polkadotJs.tx.assetRate.create("1", 2_000_000_000_000_000_000n), + polkadotJs.tx.assetRate.create("2", 2_000_000_000_000_000_000n), // Set custom policy for parent origin to only allowing grandparent asset polkadotJs.tx.xcmExecutorUtils.setReservePolicy( // Origin @@ -75,7 +75,7 @@ describeSuite({ it({ id: "T01", title: "Should accept grandparent asset from parent", - test: async function () { + test: async () => { // Send grandparent native asset const xcmMessage = new XcmFragment({ assets: [ @@ -115,7 +115,7 @@ describeSuite({ it({ id: "T02", title: "Should reject parent native asset from parent", - test: async function () { + test: async () => { // Send grandparent native asset const xcmMessage = new XcmFragment({ assets: [ diff --git a/test/suites/common-container-chains/test-pallet-xcm-executor-utils/test-default-policy.ts b/test/suites/common-container-chains/test-pallet-xcm-executor-utils/test-default-policy.ts index 6b64616dd..7ed23d8c5 100644 --- a/test/suites/common-container-chains/test-pallet-xcm-executor-utils/test-default-policy.ts +++ b/test/suites/common-container-chains/test-pallet-xcm-executor-utils/test-default-policy.ts @@ -1,27 +1,27 @@ import { beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { KeyringPair, alith } from "@moonwall/util"; -import { ApiPromise, Keyring } from "@polkadot/api"; +import { type KeyringPair, alith } from "@moonwall/util"; +import { type ApiPromise, Keyring } from "@polkadot/api"; import { u8aToHex } from "@polkadot/util"; -import { RawXcmMessage, XcmFragment, injectDmpMessageAndSeal } from "../../../util/xcm.ts"; +import { type RawXcmMessage, XcmFragment, injectDmpMessageAndSeal } from "../../../util/xcm.ts"; import { RELAY_SOURCE_LOCATION, RELAY_SOURCE_LOCATION_2 } from "../../../util/constants.ts"; // This assumes that the XcmExecutorUtils ReserveDefaultTrustPolicy set in the runtime is AllNative describeSuite({ - id: "DC0102", + id: "COM0102", title: "XcmExecutorUtils - Default policies", foundationMethods: "dev", testCases: ({ context, it }) => { let polkadotJs: ApiPromise; let alice: KeyringPair; let chain: string; - let transferredBalance; + let transferredBalance: bigint; - beforeAll(async function () { + beforeAll(async () => { polkadotJs = context.polkadotJs(); chain = polkadotJs.consts.system.version.specName.toString(); alice = - chain == "frontier-template" + chain === "frontier-template" ? alith : new Keyring({ type: "sr25519" }).addFromUri("//Alice", { name: "Alice default", @@ -32,7 +32,7 @@ describeSuite({ it({ id: "T01", title: "Should allow native asset from parent", - test: async function () { + test: async () => { // Register parent asset await context.createBlock( await polkadotJs.tx.sudo @@ -93,7 +93,7 @@ describeSuite({ it({ id: "T02", title: "Should reject grandparent asset from parent", - test: async function () { + test: async () => { // Register grandparent asset await context.createBlock( await polkadotJs.tx.sudo diff --git a/test/suites/common-tanssi-parachain/author-slot-prediction/test_author_slot_prediction.ts b/test/suites/common-tanssi-parachain/author-slot-prediction/test_author_slot_prediction.ts index bc0ef336e..1284a9af8 100644 --- a/test/suites/common-tanssi-parachain/author-slot-prediction/test_author_slot_prediction.ts +++ b/test/suites/common-tanssi-parachain/author-slot-prediction/test_author_slot_prediction.ts @@ -1,12 +1,12 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { KeyringPair } from "@moonwall/util"; -import { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; import { jumpSessions } from "../../../util/block"; import { u8aToHex, stringToHex } from "@polkadot/util"; describeSuite({ - id: "CTP0101", + id: "COMMO0101", title: "Session keys assignment test suite", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -25,7 +25,7 @@ describeSuite({ it({ id: "E01", title: "Checking that authority assignment is correct on genesis", - test: async function () { + test: async () => { // for session 0 const assignment0 = (await polkadotJs.query.authorityAssignment.collatorContainerChain(0)) .unwrap() @@ -56,7 +56,7 @@ describeSuite({ it({ id: "E02", title: "Checking session key changes are reflected at the session length boundary block", - test: async function () { + test: async () => { const newKey = await polkadotJs.rpc.author.rotateKeys(); await polkadotJs.tx.session.setKeys(newKey, []).signAndSend(alice); @@ -64,7 +64,7 @@ describeSuite({ // Check key is reflected in next key // But its not yet in queued const queuedKeys = await polkadotJs.query.session.queuedKeys(); - const result = queuedKeys.filter((keyItem) => keyItem[1].nimbus == newKey); + const result = queuedKeys.filter((keyItem) => keyItem[1].nimbus === newKey); expect(result).is.empty; const nextKey = await polkadotJs.query.session.nextKeys(alice.address); expect(u8aToHex(nextKey.unwrap().nimbus)).to.be.eq(u8aToHex(newKey)); @@ -77,7 +77,7 @@ describeSuite({ // The change should have been applied, and now both nimbus and authorityMapping should reflect const digests = (await polkadotJs.query.system.digest()).logs; const filtered = digests.filter( - (log) => log.isPreRuntime === true && log.asPreRuntime[0].toHex() == stringToHex("nmbs") + (log) => log.isPreRuntime === true && log.asPreRuntime[0].toHex() === stringToHex("nmbs") ); expect(filtered[0].asPreRuntime[1].toHex()).to.be.eq(u8aToHex(nextKey.unwrap().nimbus)); diff --git a/test/suites/common-tanssi-parachain/fees/test_fee_burning.ts b/test/suites/common-tanssi-parachain/fees/test_fee_burning.ts index 9b251f4c7..8ee854b73 100644 --- a/test/suites/common-tanssi-parachain/fees/test_fee_burning.ts +++ b/test/suites/common-tanssi-parachain/fees/test_fee_burning.ts @@ -1,12 +1,12 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { KeyringPair } from "@moonwall/util"; -import { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; import { extractWeight } from "@moonwall/util"; import { extractFeeAuthor, fetchIssuance, filterRewardFromOrchestrator } from "util/block"; describeSuite({ - id: "CPT0201", + id: "COMMO1001", title: "Fee burning test suite", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -16,7 +16,7 @@ describeSuite({ // Difference between the refTime estimated using paymentInfo and the actual refTime reported inside a block // https://github.com/paritytech/substrate/blob/5e49f6e44820affccaf517fd22af564f4b495d40/frame/support/src/weights/extrinsic_weights.rs#L56 - let baseWeight; + let baseWeight: bigint; beforeAll(async () => { alice = context.keyring.alice; @@ -28,7 +28,7 @@ describeSuite({ it({ id: "E01", title: "80% of Fees are burned", - test: async function () { + test: async () => { const totalSupplyBefore = (await polkadotJs.query.balances.totalIssuance()).toBigInt(); const balanceBefore = (await polkadotJs.query.system.account(alice.address)).data.free.toBigInt(); const tx = polkadotJs.tx.balances.transferAllowDeath(bob.address, 200_000); diff --git a/test/suites/common-tanssi-parachain/issuance-rewards/test_invulnerable_rewards.ts b/test/suites/common-tanssi-parachain/issuance-rewards/test_invulnerable_rewards.ts index 724666a41..460ba4d78 100644 --- a/test/suites/common-tanssi-parachain/issuance-rewards/test_invulnerable_rewards.ts +++ b/test/suites/common-tanssi-parachain/issuance-rewards/test_invulnerable_rewards.ts @@ -1,13 +1,13 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; -import { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; import { fetchIssuance, filterRewardFromOrchestrator, filterRewardFromContainer } from "util/block"; import { getAuthorFromDigest } from "util/author"; import { PARACHAIN_BOND } from "util/constants"; describeSuite({ - id: "CPT0301", + id: "COMMO0201", title: "Invulnerable reward test suite", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -21,7 +21,7 @@ describeSuite({ it({ id: "E01", title: "Every block created should reward the appropriate amount to orchestrator", - test: async function () { + test: async () => { await context.createBlock(); const author = await getAuthorFromDigest(polkadotJs); // Fetch current session @@ -43,7 +43,7 @@ describeSuite({ it({ id: "E02", title: "Parachain bond receives 30% of the inflation and pending rewards plus division dust", - test: async function () { + test: async () => { let expectedAmountParachainBond = 0n; const pendingChainRewards = await polkadotJs.query.inflationRewards.chainsToReward(); @@ -82,7 +82,7 @@ describeSuite({ it({ id: "E03", title: "Charlie receives the reward from container-chain block proposal", - test: async function () { + test: async () => { const balacharlieBalanceBeforenceBefore = ( await polkadotJs.query.system.account(charlie.address) ).data.free.toBigInt(); diff --git a/test/suites/common-tanssi-parachain/issuance-rewards/test_issuance.ts b/test/suites/common-tanssi-parachain/issuance-rewards/test_issuance.ts index fee007464..9ad5fdfd1 100644 --- a/test/suites/common-tanssi-parachain/issuance-rewards/test_issuance.ts +++ b/test/suites/common-tanssi-parachain/issuance-rewards/test_issuance.ts @@ -1,10 +1,10 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; +import type { ApiPromise } from "@polkadot/api"; import { fetchIssuance } from "util/block"; describeSuite({ - id: "CPT0302", + id: "COMMO0202", title: "Issuance reward test suite", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -15,7 +15,7 @@ describeSuite({ it({ id: "E01", title: "Issuance is the correct percentage", - test: async function () { + test: async () => { const supplyBefore = (await polkadotJs.query.balances.totalIssuance()).toBigInt(); await context.createBlock(); diff --git a/test/suites/common-tanssi-parachain/pallet-configuration/test-active-config-collators-per-container.ts b/test/suites/common-tanssi-parachain/pallet-configuration/test-active-config-collators-per-container.ts index 727902b2b..bfc911db7 100644 --- a/test/suites/common-tanssi-parachain/pallet-configuration/test-active-config-collators-per-container.ts +++ b/test/suites/common-tanssi-parachain/pallet-configuration/test-active-config-collators-per-container.ts @@ -2,13 +2,13 @@ import { expect, beforeAll, describeSuite } from "@moonwall/cli"; import { jumpSessions } from "../../../util/block"; describeSuite({ - id: "CPT0401", + id: "COMMO0301", title: "Configuration - ActiveConfig - CollatorsPerContainer", foundationMethods: "dev", testCases: ({ context, it }) => { - beforeAll(async function () { + beforeAll(async () => { const config = await context.polkadotJs().query.configuration.activeConfig(); - expect(config["collatorsPerContainer"].toString()).toBe("2"); + expect(config.collatorsPerContainer.toString()).toBe("2"); const { result } = await context.createBlock( context @@ -16,7 +16,7 @@ describeSuite({ .tx.sudo.sudo(context.polkadotJs().tx.configuration.setCollatorsPerContainer(5)) .signAsync(context.keyring.alice) ); - expect(result!.successful, result!.error?.name).to.be.true; + expect(result?.successful, result?.error?.name).to.be.true; await jumpSessions(context, 2); }); @@ -24,9 +24,9 @@ describeSuite({ it({ id: "T01", title: "should set collators per container after 2 sessions", - test: async function () { + test: async () => { const config = await context.polkadotJs().query.configuration.activeConfig(); - expect(config["collatorsPerContainer"].toString()).toBe("5"); + expect(config.collatorsPerContainer.toString()).toBe("5"); }, }); }, diff --git a/test/suites/common-tanssi-parachain/pallet-configuration/test-active-config-max-collators.ts b/test/suites/common-tanssi-parachain/pallet-configuration/test-active-config-max-collators.ts index ec0f59d56..20a0e6feb 100644 --- a/test/suites/common-tanssi-parachain/pallet-configuration/test-active-config-max-collators.ts +++ b/test/suites/common-tanssi-parachain/pallet-configuration/test-active-config-max-collators.ts @@ -2,13 +2,13 @@ import { expect, beforeAll, describeSuite } from "@moonwall/cli"; import { jumpSessions } from "../../../util/block"; describeSuite({ - id: "CPT0402", + id: "COMMO0302", title: "Configuration - ActiveConfig - MaxCollators", foundationMethods: "dev", testCases: ({ context, it }) => { - beforeAll(async function () { + beforeAll(async () => { const config = await context.polkadotJs().query.configuration.activeConfig(); - expect(config["maxCollators"].toString()).toBe("100"); + expect(config.maxCollators.toString()).toBe("100"); const { result } = await context.createBlock( context @@ -16,7 +16,7 @@ describeSuite({ .tx.sudo.sudo(context.polkadotJs().tx.configuration.setMaxCollators(200)) .signAsync(context.keyring.alice) ); - expect(result!.successful, result!.error?.name).to.be.true; + expect(result?.successful, result?.error?.name).to.be.true; await jumpSessions(context, 2); }); @@ -24,9 +24,9 @@ describeSuite({ it({ id: "T01", title: "should set max collators after 2 sessions", - test: async function () { + test: async () => { const config = await context.polkadotJs().query.configuration.activeConfig(); - expect(config["maxCollators"].toString()).toBe("200"); + expect(config.maxCollators.toString()).toBe("200"); }, }); }, diff --git a/test/suites/common-tanssi-parachain/pallet-configuration/test-active-config-max-orchestrator-collators.ts b/test/suites/common-tanssi-parachain/pallet-configuration/test-active-config-max-orchestrator-collators.ts index 5244c43a9..eb6e9fcf7 100644 --- a/test/suites/common-tanssi-parachain/pallet-configuration/test-active-config-max-orchestrator-collators.ts +++ b/test/suites/common-tanssi-parachain/pallet-configuration/test-active-config-max-orchestrator-collators.ts @@ -2,13 +2,13 @@ import { expect, beforeAll, describeSuite } from "@moonwall/cli"; import { jumpSessions } from "../../../util/block"; describeSuite({ - id: "CPT0403", + id: "COMMO0303", title: "Configuration - ActiveConfig - MaxOrchestratorCollators", foundationMethods: "dev", testCases: ({ context, it }) => { - beforeAll(async function () { + beforeAll(async () => { const config = await context.polkadotJs().query.configuration.activeConfig(); - expect(config["maxOrchestratorCollators"].toString()).toBe("1"); + expect(config.maxOrchestratorCollators.toString()).toBe("1"); const { result } = await context.createBlock( context @@ -16,7 +16,7 @@ describeSuite({ .tx.sudo.sudo(context.polkadotJs().tx.configuration.setMaxOrchestratorCollators(2)) .signAsync(context.keyring.alice) ); - expect(result!.successful, result!.error?.name).to.be.true; + expect(result?.successful, result?.error?.name).to.be.true; await jumpSessions(context, 2); }); @@ -24,9 +24,9 @@ describeSuite({ it({ id: "T01", title: "should set max orchestrator collators after 2 sessions", - test: async function () { + test: async () => { const config = await context.polkadotJs().query.configuration.activeConfig(); - expect(config["maxOrchestratorCollators"].toString()).toBe("2"); + expect(config.maxOrchestratorCollators.toString()).toBe("2"); }, }); }, diff --git a/test/suites/common-tanssi-parachain/pallet-configuration/test-active-config-min-orchestrator-collators.ts b/test/suites/common-tanssi-parachain/pallet-configuration/test-active-config-min-orchestrator-collators.ts index 9c086b88d..c3f538171 100644 --- a/test/suites/common-tanssi-parachain/pallet-configuration/test-active-config-min-orchestrator-collators.ts +++ b/test/suites/common-tanssi-parachain/pallet-configuration/test-active-config-min-orchestrator-collators.ts @@ -2,15 +2,15 @@ import { expect, beforeAll, describeSuite } from "@moonwall/cli"; import { initializeCustomCreateBlock, jumpSessions } from "../../../util/block"; describeSuite({ - id: "CPT0404", + id: "COMMO0304", title: "Configuration - ActiveConfig - MinOrchestratorCollators", foundationMethods: "dev", testCases: ({ context, it }) => { - beforeAll(async function () { + beforeAll(async () => { initializeCustomCreateBlock(context); const config = await context.polkadotJs().query.configuration.activeConfig(); - expect(config["minOrchestratorCollators"].toString()).toBe("1"); + expect(config.minOrchestratorCollators.toString()).toBe("1"); const { result } = await context.createBlock( await context @@ -18,7 +18,7 @@ describeSuite({ .tx.sudo.sudo(context.polkadotJs().tx.configuration.setMinOrchestratorCollators(2)) .signAsync(context.keyring.alice) ); - expect(result!.successful, result!.error?.name).to.be.true; + expect(result?.successful, result?.error?.name).to.be.true; await jumpSessions(context, 2); }); @@ -26,9 +26,9 @@ describeSuite({ it({ id: "T01", title: "should set max orchestrator collators after 2 sessions", - test: async function () { + test: async () => { const config = await context.polkadotJs().query.configuration.activeConfig(); - expect(config["minOrchestratorCollators"].toString()).toBe("2"); + expect(config.minOrchestratorCollators.toString()).toBe("2"); }, }); }, diff --git a/test/suites/common-tanssi-parachain/pallet-configuration/test-active-config-origin.ts b/test/suites/common-tanssi-parachain/pallet-configuration/test-active-config-origin.ts index 1b2c00099..28665832b 100644 --- a/test/suites/common-tanssi-parachain/pallet-configuration/test-active-config-origin.ts +++ b/test/suites/common-tanssi-parachain/pallet-configuration/test-active-config-origin.ts @@ -1,14 +1,14 @@ import { expect, describeSuite } from "@moonwall/cli"; describeSuite({ - id: "CPT0405", + id: "COMMO0305", title: "Configuration - ActiveConfig - Origin", foundationMethods: "dev", testCases: ({ context, it }) => { it({ id: "T01", title: "should fail on setMaxCollators if not sudo", - test: async function () { + test: async () => { const { result } = await context.createBlock( context.polkadotJs().tx.configuration.setMaxCollators(200).signAsync(context.keyring.bob), { allowFailures: true } @@ -21,7 +21,7 @@ describeSuite({ it({ id: "T02", title: "should fail on setMinOrchestratorCollators if not sudo", - test: async function () { + test: async () => { const { result } = await context.createBlock( context.polkadotJs().tx.configuration.setMinOrchestratorCollators(2).signAsync(context.keyring.bob), { allowFailures: true } @@ -34,7 +34,7 @@ describeSuite({ it({ id: "T03", title: "should fail on setMaxOrchestratorCollators if not sudo", - test: async function () { + test: async () => { const { result } = await context.createBlock( context.polkadotJs().tx.configuration.setMaxOrchestratorCollators(2).signAsync(context.keyring.bob), { allowFailures: true } @@ -47,7 +47,7 @@ describeSuite({ it({ id: "T04", title: "should fail on setCollatorsPerContainer if not sudo", - test: async function () { + test: async () => { const { result } = await context.createBlock( context.polkadotJs().tx.configuration.setCollatorsPerContainer(5).signAsync(context.keyring.bob), { allowFailures: true } diff --git a/test/suites/common-tanssi-parachain/pallet-configuration/test-active-config-target-fullness.ts b/test/suites/common-tanssi-parachain/pallet-configuration/test-active-config-target-fullness.ts index a42e56b0b..327b45c42 100644 --- a/test/suites/common-tanssi-parachain/pallet-configuration/test-active-config-target-fullness.ts +++ b/test/suites/common-tanssi-parachain/pallet-configuration/test-active-config-target-fullness.ts @@ -2,13 +2,13 @@ import { expect, beforeAll, describeSuite } from "@moonwall/cli"; import { jumpSessions } from "../../../util/block"; describeSuite({ - id: "CPT0406", + id: "COMMO0306", title: "Configuration - ActiveConfig - targetContainerChainFullness", foundationMethods: "dev", testCases: ({ context, it }) => { - beforeAll(async function () { + beforeAll(async () => { const config = await context.polkadotJs().query.configuration.activeConfig(); - expect(config["targetContainerChainFullness"].toString()).toBe("800000000"); + expect(config.targetContainerChainFullness.toString()).toBe("800000000"); const { result } = await context.createBlock( context @@ -16,7 +16,7 @@ describeSuite({ .tx.sudo.sudo(context.polkadotJs().tx.configuration.setTargetContainerChainFullness(500000000n)) .signAsync(context.keyring.alice) ); - expect(result!.successful, result!.error?.name).to.be.true; + expect(result?.successful, result?.error?.name).to.be.true; await jumpSessions(context, 2); }); @@ -24,9 +24,9 @@ describeSuite({ it({ id: "T01", title: "should set target fullness after 2 sessions", - test: async function () { + test: async () => { const config = await context.polkadotJs().query.configuration.activeConfig(); - expect(config["targetContainerChainFullness"].toString()).toBe("500000000"); + expect(config.targetContainerChainFullness.toString()).toBe("500000000"); }, }); }, diff --git a/test/suites/common-tanssi-parachain/pallet-data-preservers/test_pallet_data_preservers.ts b/test/suites/common-tanssi-parachain/pallet-data-preservers/test_pallet_data_preservers.ts index b3bdd1a6e..a0929db2c 100644 --- a/test/suites/common-tanssi-parachain/pallet-data-preservers/test_pallet_data_preservers.ts +++ b/test/suites/common-tanssi-parachain/pallet-data-preservers/test_pallet_data_preservers.ts @@ -1,10 +1,10 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; -import { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; describeSuite({ - id: "CPT1001", + id: "COMMO0401", title: "Data preservers pallet test suite", foundationMethods: "dev", @@ -23,7 +23,7 @@ describeSuite({ it({ id: "E01", title: "User can create profile", - test: async function () { + test: async () => { const profile = { url: "exemple", paraIds: { whitelist: [42, 43] }, @@ -53,7 +53,7 @@ describeSuite({ it({ id: "E02", title: "User can update profile", - test: async function () { + test: async () => { const profile = { url: "exemple", paraIds: { whitelist: [42, 43] }, @@ -105,7 +105,7 @@ describeSuite({ it({ id: "E03", title: "User can delete profile", - test: async function () { + test: async () => { const profile = { url: "exemple", paraIds: { whitelist: [42, 43] }, @@ -141,7 +141,7 @@ describeSuite({ it({ id: "E04", title: "Root can force create profile", - test: async function () { + test: async () => { const profile = { url: "exemple", paraIds: { whitelist: [42, 43] }, @@ -170,7 +170,7 @@ describeSuite({ it({ id: "E05", title: "Root can force update profile", - test: async function () { + test: async () => { const profile = { url: "exemple", paraIds: { whitelist: [42, 43] }, @@ -222,7 +222,7 @@ describeSuite({ it({ id: "E06", title: "Root can force delete profile", - test: async function () { + test: async () => { const profile = { url: "exemple", paraIds: { whitelist: [42, 43] }, @@ -259,7 +259,7 @@ describeSuite({ it({ id: "E07", title: "Profile can be assigned", - test: async function () { + test: async () => { const paraId = 2002; const emptyGenesisData = () => { const g = polkadotJs.createType("DpContainerChainGenesisDataContainerChainGenesisData", { @@ -323,7 +323,7 @@ describeSuite({ it({ id: "E08", title: "Profile can be force assigned", - test: async function () { + test: async () => { const paraId = 2003; const emptyGenesisData = () => { const g = polkadotJs.createType("DpContainerChainGenesisDataContainerChainGenesisData", { @@ -387,7 +387,7 @@ describeSuite({ it({ id: "E09", title: "Profile can be unassigned", - test: async function () { + test: async () => { const paraId = 2004; const emptyGenesisData = () => { const g = polkadotJs.createType("DpContainerChainGenesisDataContainerChainGenesisData", { @@ -454,7 +454,7 @@ describeSuite({ it({ id: "E10", title: "Profile can be force unassigned", - test: async function () { + test: async () => { const paraId = 2005; const emptyGenesisData = () => { const g = polkadotJs.createType("DpContainerChainGenesisDataContainerChainGenesisData", { @@ -520,7 +520,7 @@ describeSuite({ it({ id: "E11", title: "Container will be unassigned on deregister", - test: async function () { + test: async () => { const paraId = 2006; const emptyGenesisData = () => { const g = polkadotJs.createType("DpContainerChainGenesisDataContainerChainGenesisData", { diff --git a/test/suites/common-tanssi-parachain/pallet-identity/test_pallet_identity.ts b/test/suites/common-tanssi-parachain/pallet-identity/test_pallet_identity.ts index 8e409e921..32b577347 100644 --- a/test/suites/common-tanssi-parachain/pallet-identity/test_pallet_identity.ts +++ b/test/suites/common-tanssi-parachain/pallet-identity/test_pallet_identity.ts @@ -1,11 +1,11 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; -import { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; import { hexToString } from "viem"; describeSuite({ - id: "CPT0701", + id: "COMMO0501", title: "Identity pallet test suite", foundationMethods: "dev", @@ -25,7 +25,7 @@ describeSuite({ it({ id: "E01", title: "Sudo account can add registrars", - test: async function () { + test: async () => { const initial_identity_registrars = await polkadotJs.query.identity.registrars(); const tx = polkadotJs.tx.identity.addRegistrar({ @@ -42,13 +42,13 @@ describeSuite({ // Bob is included in the registrars list const bob_exists = identity_registrars .toArray() - .filter((registrar) => registrar.toJSON().account == registrar_bob.address); + .filter((registrar) => registrar.toJSON().account === registrar_bob.address); expect(bob_exists.length).to.be.equal(1); // Registrar addition shows in the events const events = await polkadotJs.query.system.events(); const eventCount = events.filter((a) => { - return a.event.method == "RegistrarAdded"; + return a.event.method === "RegistrarAdded"; }); expect(eventCount.length).to.be.equal(1); }, @@ -57,7 +57,7 @@ describeSuite({ it({ id: "E02", title: "Non-Sudo account fails when adding registrars", - test: async function () { + test: async () => { const initial_identity_registrars = await polkadotJs.query.identity.registrars(); const tx = polkadotJs.tx.identity.addRegistrar({ @@ -74,7 +74,7 @@ describeSuite({ // No addition event const events = await polkadotJs.query.system.events(); const eventCount = events.filter((a) => { - return a.event.method == "RegistrarAdded"; + return a.event.method === "RegistrarAdded"; }); expect(eventCount.length).to.be.equal(0); }, @@ -83,7 +83,7 @@ describeSuite({ it({ id: "E03", title: "User sets its identity", - test: async function () { + test: async () => { const tx = polkadotJs.tx.identity.setIdentity({ display: { raw: "0x49742773206D652C20436861726C6965" }, web: { raw: "0x68747470733A2F2F636861726C69652E696F" }, @@ -93,17 +93,17 @@ describeSuite({ const charlie_identity = await polkadotJs.query.identity.identityOf(general_user_charlie.address); // Display has been set - const charlie_display = hexToString(charlie_identity.toJSON()[0].info.display["raw"]); + const charlie_display = hexToString(charlie_identity.toJSON()[0].info.display.raw); expect(charlie_display).to.equal("It's me, Charlie"); // Web has been set - const charlie_web = hexToString(charlie_identity.toJSON()[0].info.web["raw"]); + const charlie_web = hexToString(charlie_identity.toJSON()[0].info.web.raw); expect(charlie_web).to.equal("https://charlie.io"); // Event triggered const events = await polkadotJs.query.system.events(); const eventCount = events.filter((a) => { - return a.event.method == "IdentitySet"; + return a.event.method === "IdentitySet"; }); expect(eventCount.length).to.be.equal(1); @@ -118,7 +118,7 @@ describeSuite({ it({ id: "E04", title: "Registrar sets fee and fields", - test: async function () { + test: async () => { await context.createBlock(); const tx1 = polkadotJs.tx.identity.addRegistrar({ diff --git a/test/suites/common-tanssi-parachain/pallet-treasury/test_pallet_treasury.ts b/test/suites/common-tanssi-parachain/pallet-treasury/test_pallet_treasury.ts index e1189d80a..c5765643f 100644 --- a/test/suites/common-tanssi-parachain/pallet-treasury/test_pallet_treasury.ts +++ b/test/suites/common-tanssi-parachain/pallet-treasury/test_pallet_treasury.ts @@ -1,11 +1,11 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; -import { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; import { extractFeeAuthor } from "util/block"; describeSuite({ - id: "CPT0901", + id: "COMMO0601", title: "Treasury pallet test suite", foundationMethods: "dev", @@ -25,7 +25,7 @@ describeSuite({ it({ id: "E01", title: "20% of fees & tips go for treasury account", - test: async function () { + test: async () => { // Gets the initial pot deposit value const initial_pot = await polkadotJs.query.system.account(treasury_address); const initial_free_pot = initial_pot.data.free.toBigInt(); diff --git a/test/suites/common-tanssi-parachain/registrar/test_registrar_deregister.ts b/test/suites/common-tanssi-parachain/registrar/test_registrar_deregister.ts index 6ea3070da..ecb41cffa 100644 --- a/test/suites/common-tanssi-parachain/registrar/test_registrar_deregister.ts +++ b/test/suites/common-tanssi-parachain/registrar/test_registrar_deregister.ts @@ -1,11 +1,11 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { KeyringPair } from "@moonwall/util"; -import { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; import { jumpSessions } from "../../../util/block"; describeSuite({ - id: "CPT0501", + id: "COMMO1101", title: "Registrar test suite: de-register", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -19,7 +19,7 @@ describeSuite({ it({ id: "E03", title: "Checking that fetching registered paraIds is possible", - test: async function () { + test: async () => { const parasRegistered = await polkadotJs.query.registrar.registeredParaIds(); // These are registered in genesis @@ -42,7 +42,7 @@ describeSuite({ it({ id: "E04", title: "Checking that de-registering paraIds is possible", - test: async function () { + test: async () => { await context.createBlock(); const currentSesssion = await polkadotJs.query.session.currentIndex(); @@ -79,7 +79,7 @@ describeSuite({ it({ id: "E05", title: "Checking that de-registering all paraIds does not leave extra keys in storage", - test: async function () { + test: async () => { await context.createBlock(); // Check the number of keys in storage diff --git a/test/suites/common-tanssi-parachain/registrar/test_registrar_para_manager.ts b/test/suites/common-tanssi-parachain/registrar/test_registrar_para_manager.ts index 7f502bfd5..63577ccc4 100644 --- a/test/suites/common-tanssi-parachain/registrar/test_registrar_para_manager.ts +++ b/test/suites/common-tanssi-parachain/registrar/test_registrar_para_manager.ts @@ -1,10 +1,10 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { KeyringPair } from "@moonwall/util"; -import { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; describeSuite({ - id: "CPT0502", + id: "COMMO1102", title: "Registrar para manager", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -22,7 +22,7 @@ describeSuite({ it({ id: "E01", title: "Para manager can be set and is recognized as ManagerOrigin", - test: async function () { + test: async () => { await context.createBlock(); const emptyGenesisData = () => { diff --git a/test/suites/common-tanssi-parachain/registrar/test_registrar_pause.ts b/test/suites/common-tanssi-parachain/registrar/test_registrar_pause.ts index 89e91b00d..f95949c9a 100644 --- a/test/suites/common-tanssi-parachain/registrar/test_registrar_pause.ts +++ b/test/suites/common-tanssi-parachain/registrar/test_registrar_pause.ts @@ -1,11 +1,11 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { KeyringPair } from "@moonwall/util"; -import { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; import { jumpSessions } from "../../../util/block"; describeSuite({ - id: "CPT0503", + id: "COMMO1103", title: "Registrar test suite: pause", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -20,7 +20,7 @@ describeSuite({ it({ id: "E01", title: "Checking that fetching registered paraIds is possible", - test: async function () { + test: async () => { const parasRegistered = await polkadotJs.query.registrar.registeredParaIds(); // These are registered in genesis @@ -32,7 +32,7 @@ describeSuite({ it({ id: "E02", title: "Checking that pausing paraIds is possible", - test: async function () { + test: async () => { await context.createBlock(); const currentSesssion = await polkadotJs.query.session.currentIndex(); @@ -69,7 +69,7 @@ describeSuite({ it({ id: "E03", title: "Checking that unpausing paraIds is possible", - test: async function () { + test: async () => { await context.createBlock(); const currentSesssion = await polkadotJs.query.session.currentIndex(); diff --git a/test/suites/common-tanssi-parachain/registrar/test_registrar_proxy.ts b/test/suites/common-tanssi-parachain/registrar/test_registrar_proxy.ts index 65e5bd802..44e061a7f 100644 --- a/test/suites/common-tanssi-parachain/registrar/test_registrar_proxy.ts +++ b/test/suites/common-tanssi-parachain/registrar/test_registrar_proxy.ts @@ -1,11 +1,11 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { KeyringPair } from "@moonwall/util"; -import { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; import { jumpSessions } from "util/block"; describeSuite({ - id: "CPT0604", + id: "COMMO1104", title: "Registrar test suite", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -24,7 +24,7 @@ describeSuite({ it({ id: "E01", title: "Can add registrar proxy and use it", - test: async function () { + test: async () => { // Setup proxy const delegate = charlie.address; const registrar_proxy = 6; @@ -34,7 +34,7 @@ describeSuite({ const events = await polkadotJs.query.system.events(); const ev1 = events.filter((a) => { - return a.event.method == "ProxyAdded"; + return a.event.method === "ProxyAdded"; }); expect(ev1.length).to.be.equal(1); @@ -111,7 +111,7 @@ describeSuite({ it({ id: "E02", title: "SudoRegistrar proxy works", - test: async function () { + test: async () => { // Proxy const delegate = charlie.address; const sudo_registrar_proxy = 7; @@ -122,7 +122,7 @@ describeSuite({ const events = await polkadotJs.query.system.events(); const ev1 = events.filter((a) => { - return a.event.method == "ProxyAdded"; + return a.event.method === "ProxyAdded"; }); expect(ev1.length).to.be.equal(1); diff --git a/test/suites/common-tanssi-parachain/registrar/test_registrar_register.ts b/test/suites/common-tanssi-parachain/registrar/test_registrar_register.ts index 10872c818..a69ed6d1f 100644 --- a/test/suites/common-tanssi-parachain/registrar/test_registrar_register.ts +++ b/test/suites/common-tanssi-parachain/registrar/test_registrar_register.ts @@ -1,11 +1,11 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { KeyringPair } from "@moonwall/util"; -import { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; import { jumpSessions } from "../../../util/block"; describeSuite({ - id: "CPT0506", + id: "COMMO1105", title: "Registrar test suite", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -22,7 +22,7 @@ describeSuite({ it({ id: "E01", title: "Checking that fetching registered paraIds is possible", - test: async function () { + test: async () => { const parasRegistered = await polkadotJs.query.registrar.registeredParaIds(); // These are registered in genesis @@ -34,7 +34,7 @@ describeSuite({ it({ id: "E02", title: "Checking that registering paraIds is possible", - test: async function () { + test: async () => { await context.createBlock(); const currentSesssion = await polkadotJs.query.session.currentIndex(); @@ -120,7 +120,7 @@ describeSuite({ it({ id: "E03", title: "Registered paraId has been given free credits, and flag can be cleared", - test: async function () { + test: async () => { const paraId = 2002; const givenFreeCredits = await polkadotJs.query.servicesPayment.givenFreeCredits(paraId); expect(givenFreeCredits.isNone).to.be.false; diff --git a/test/suites/common-tanssi-parachain/registrar/test_utils_rpc.ts b/test/suites/common-tanssi-parachain/registrar/test_utils_rpc.ts index 607300c46..1ef2a26a5 100644 --- a/test/suites/common-tanssi-parachain/registrar/test_utils_rpc.ts +++ b/test/suites/common-tanssi-parachain/registrar/test_utils_rpc.ts @@ -1,10 +1,10 @@ import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; +import type { ApiPromise } from "@polkadot/api"; import { chainSpecToContainerChainGenesisData, containerChainGenesisDataToChainSpec } from "../../../util/genesis_data"; -import "@polkadot/api-augment"; +import "@tanssi/api-augment"; describeSuite({ - id: "CPT0507", + id: "COMMO1106", title: "Test ContainerChainGenesisData utils", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -17,7 +17,7 @@ describeSuite({ it({ id: "E01", title: "Read a ChainSpec, convert it to ContainerChainGenesisData, and back to the same ChainSpec", - test: async function () { + test: async () => { // Mock raw chain spec file const chainSpec2000 = { name: "Local Testnet", diff --git a/test/suites/common-tanssi-parachain/relay-storage-roots/test_pallet_storage_roots.ts b/test/suites/common-tanssi-parachain/relay-storage-roots/test_pallet_storage_roots.ts index df52937f3..922362dfa 100644 --- a/test/suites/common-tanssi-parachain/relay-storage-roots/test_pallet_storage_roots.ts +++ b/test/suites/common-tanssi-parachain/relay-storage-roots/test_pallet_storage_roots.ts @@ -1,9 +1,9 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; +import type { ApiPromise } from "@polkadot/api"; describeSuite({ - id: "CPT0801", + id: "COMMO0701", title: "RelayStorageRoots pallet test suite", foundationMethods: "dev", @@ -17,7 +17,7 @@ describeSuite({ it({ id: "E01", title: "Only 10 latest blocks are stored", - test: async function () { + test: async () => { // Relay block list starts empty const relayBlocksEmpty = (await polkadotJs.query.relayStorageRoots.relayStorageRootKeys()).toJSON(); expect(relayBlocksEmpty).to.deep.equal([]); @@ -35,7 +35,7 @@ describeSuite({ // The mapping only contains the keys that are in `relayStorageRootKeys` const mappingKeys = (await polkadotJs.query.relayStorageRoots.relayStorageRoot.keys()).map((key) => { // Convert "1,020" into 1020 - return parseInt(key.toHuman().toString().replace(",", "")); + return Number.parseInt(key.toHuman().toString().replace(",", "")); }); mappingKeys.sort(); expect(relayBlocks).to.deep.equal(mappingKeys); diff --git a/test/suites/common-tanssi-parachain/services-payment/test_services_payment_block_credits.ts b/test/suites/common-tanssi-parachain/services-payment/test_services_payment_block_credits.ts index dcc2fe00f..d2430e450 100644 --- a/test/suites/common-tanssi-parachain/services-payment/test_services_payment_block_credits.ts +++ b/test/suites/common-tanssi-parachain/services-payment/test_services_payment_block_credits.ts @@ -1,12 +1,12 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; -import { generateKeyringPair, KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; +import { generateKeyringPair, type KeyringPair } from "@moonwall/util"; import { jumpSessions } from "util/block"; import { paraIdTank } from "util/payment"; describeSuite({ - id: "CPT0601", + id: "COMMO0801", title: "Services payment test suite", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -21,7 +21,7 @@ describeSuite({ it({ id: "E01", title: "Genesis container chains have credits and collators", - test: async function () { + test: async () => { await context.createBlock(); const parasRegistered = await polkadotJs.query.registrar.registeredParaIds(); @@ -43,7 +43,7 @@ describeSuite({ // Container chain 2001 does not have any collators, this will result in only 1 container chain // producing blocks at a time. So if both container chains have 1000 credits, container 2000 // will produce blocks 0-999, and container 2001 will produce blocks 1000-1999. - if (paraId == 2000) { + if (paraId === 2000) { expect( collators.toJSON().containerChains[paraId].length, `Container chain ${paraId} has 0 collators` @@ -56,11 +56,11 @@ describeSuite({ it({ id: "E02", title: "Creating a container chain block costs credits", - test: async function () { + test: async () => { // Read num credits of para 2000, then create that many blocks. Check that authorNoting.blockNum does not increase anymore // and collatorAssignment does not have collators - const paraId = 2000n; + const paraId = 2000; // Create a block, the block number should increase, and the number of credits should decrease const credits1 = (await polkadotJs.query.servicesPayment.blockProductionCredits(paraId)).toJSON(); @@ -82,18 +82,18 @@ describeSuite({ it({ id: "E03", title: "Collators are unassigned when a container chain does not have enough credits", - test: async function () { + test: async () => { // Create blocks until authorNoting.blockNum does not increase anymore. // Check that collatorAssignment does not have collators and num credits is less than 2 sessions. - const paraId = 2000n; + const paraId = 2000; // Create blocks until the block number stops increasing let containerBlockNum3 = -1; let containerBlockNum4 = await (await polkadotJs.query.authorNoting.latestAuthor(paraId)).toJSON() .blockNumber; - while (containerBlockNum3 != containerBlockNum4) { + while (containerBlockNum3 !== containerBlockNum4) { await context.createBlock(); containerBlockNum3 = containerBlockNum4; containerBlockNum4 = await (await polkadotJs.query.authorNoting.latestAuthor(paraId)).toJSON() @@ -118,7 +118,7 @@ describeSuite({ it({ id: "E04", title: "Root can remove credits", - test: async function () { + test: async () => { // Remove all the credits of container chain 2001, which should have assigned collators now // This checks that the node does not panic when we try to subtract credits from 0 (saturating_sub) @@ -175,15 +175,15 @@ describeSuite({ it({ id: "E05", title: "Can buy additional credits", - test: async function () { + test: async () => { // As alice, buy credits for para 2000. Check that it is assigned collators again - const paraId = 2000n; + const paraId = 2000; // Create blocks until no collators are assigned to any container chain for (;;) { await context.createBlock(); const collators = await polkadotJs.query.collatorAssignment.collatorContainerChain(); - if (Object.keys(collators.toJSON().containerChains).length == 0) { + if (Object.keys(collators.toJSON().containerChains).length === 0) { break; } } @@ -225,7 +225,7 @@ describeSuite({ let creditsRemaining = (await polkadotJs.query.servicesPayment.blockProductionCredits(paraId)).toJSON(); // It might happen that we still have some left over collator block credits. Let's try to clean them - while (creditsRemaining != 0) { + while (creditsRemaining !== 0) { await context.createBlock(); creditsRemaining = (await polkadotJs.query.servicesPayment.blockProductionCredits(paraId)).toJSON(); } diff --git a/test/suites/common-tanssi-parachain/services-payment/test_services_payment_collator_credits.ts b/test/suites/common-tanssi-parachain/services-payment/test_services_payment_collator_credits.ts index 92babe91f..5921a50f9 100644 --- a/test/suites/common-tanssi-parachain/services-payment/test_services_payment_collator_credits.ts +++ b/test/suites/common-tanssi-parachain/services-payment/test_services_payment_collator_credits.ts @@ -1,12 +1,12 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; -import { generateKeyringPair, KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; +import { generateKeyringPair, type KeyringPair } from "@moonwall/util"; import { jumpSessions } from "util/block"; import { paraIdTank } from "util/payment"; describeSuite({ - id: "CPT0602", + id: "COMMO0802", title: "Services payment test suite", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -21,7 +21,7 @@ describeSuite({ it({ id: "E01", title: "Genesis container chains have credits and collators and should have one less credit", - test: async function () { + test: async () => { await context.createBlock(); const parasRegistered = await polkadotJs.query.registrar.registeredParaIds(); @@ -61,11 +61,11 @@ describeSuite({ it({ id: "E02", title: "Getting assignation should consume credits", - test: async function () { + test: async () => { // Moving to the next session should have reduced the credit by one to both parachains // even if one does not produce blocks - const paraId = 2000n; + const paraId = 2000; await jumpSessions(context, 1); const credits = await polkadotJs.query.servicesPayment.collatorAssignmentCredits(paraId); expect( @@ -78,22 +78,24 @@ describeSuite({ it({ id: "E03", title: "Collators are unassigned when a container chain does not have enough credits", - test: async function () { + test: async () => { // Create blocks until authorNoting.blockNum does not increase anymore. // Check that collatorAssignment does not have collators and num credits is less than 2 sessions. - const paraId = 2000n; + const paraId = 2000; // Create blocks until the block number stops increasing let containerBlockNum3 = -1; - let containerBlockNum4 = await (await polkadotJs.query.authorNoting.latestAuthor(paraId)).toJSON() - .blockNumber; + let containerBlockNum4 = (await polkadotJs.query.authorNoting.latestAuthor(paraId)) + .unwrap() + .blockNumber.toNumber(); - while (containerBlockNum3 != containerBlockNum4) { + while (containerBlockNum3 !== containerBlockNum4) { await context.createBlock(); containerBlockNum3 = containerBlockNum4; - containerBlockNum4 = await (await polkadotJs.query.authorNoting.latestAuthor(paraId)).toJSON() - .blockNumber; + containerBlockNum4 = (await polkadotJs.query.authorNoting.latestAuthor(paraId)) + .unwrap() + .blockNumber.toNumber(); } // Now the container chain should have less than 2 sessions worth of credits @@ -114,10 +116,10 @@ describeSuite({ it({ id: "E04", title: "Root can remove credits", - test: async function () { + test: async () => { // Remove all the credits of container chain 2001, which should have assigned collators now // This checks that the node does not panic when we try to subtract credits from 0 (saturating_sub) - const paraId = 2001n; + const paraId = 2001; const credits = (await polkadotJs.query.servicesPayment.collatorAssignmentCredits(paraId)).toJSON(); expect(credits, "Container chain 2001 does not have enough credits").toBeGreaterThanOrEqual(2n); @@ -145,15 +147,15 @@ describeSuite({ it({ id: "E05", title: "Can buy additional credits", - test: async function () { + test: async () => { // As alice, buy credits for para 2000. Check that it is assigned collators again - const paraId = 2000n; + const paraId = 2000; // Create blocks until no collators are assigned to any container chain for (;;) { await context.createBlock(); const collators = await polkadotJs.query.collatorAssignment.collatorContainerChain(); - if (Object.keys(collators.toJSON().containerChains).length == 0) { + if (Object.keys(collators.toJSON().containerChains).length === 0) { break; } } diff --git a/test/suites/common-tanssi-parachain/services-payment/test_services_payment_collator_tip.ts b/test/suites/common-tanssi-parachain/services-payment/test_services_payment_collator_tip.ts index bcd906bd1..da3b6e673 100644 --- a/test/suites/common-tanssi-parachain/services-payment/test_services_payment_collator_tip.ts +++ b/test/suites/common-tanssi-parachain/services-payment/test_services_payment_collator_tip.ts @@ -1,18 +1,18 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; -import { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; import { fetchCollatorAssignmentTip, jumpSessions } from "util/block"; import { paraIdTank } from "../../../util/payment.ts"; describeSuite({ - id: "CPT0608", + id: "COMMO0803", title: "Services payment collator assignment tip test suite", foundationMethods: "dev", testCases: ({ it, context }) => { let polkadotJs: ApiPromise; let alice: KeyringPair; - let collatorAssignmentAlias; + let collatorAssignmentAlias: any; beforeAll(async () => { polkadotJs = context.polkadotJs(); alice = context.keyring.alice; @@ -24,7 +24,7 @@ describeSuite({ it({ id: "E01", title: "Tip should prioritize collator assignment", - test: async function () { + test: async () => { await context.createBlock(); const paraId = 2001n; @@ -53,7 +53,7 @@ describeSuite({ it({ id: "E02", title: "Tip is not charged when there are enough collators for all chains", - test: async function () { + test: async () => { await context.createBlock(); const paraId = 2001n; @@ -80,7 +80,7 @@ describeSuite({ it({ id: "E03", title: "If parachain tank account does not have enough balance, collators are not assigned", - test: async function () { + test: async () => { await context.createBlock(); const paraId = 2001n; diff --git a/test/suites/common-tanssi-parachain/services-payment/test_services_payment_rpc.ts b/test/suites/common-tanssi-parachain/services-payment/test_services_payment_rpc.ts index ae5737e94..a70048cd4 100644 --- a/test/suites/common-tanssi-parachain/services-payment/test_services_payment_rpc.ts +++ b/test/suites/common-tanssi-parachain/services-payment/test_services_payment_rpc.ts @@ -2,14 +2,14 @@ import "@tanssi/api-augment"; import { describeSuite, expect, customDevRpcRequest } from "@moonwall/cli"; describeSuite({ - id: "CPT0609", + id: "COMMO0804", title: "Services payment RPC", foundationMethods: "dev", testCases: ({ it }) => { it({ id: "E01", title: "Services payment RPC", - test: async function () { + test: async () => { try { await customDevRpcRequest("tanssi_servicesPaymentBlockCost", []); throw { message: "Should have returned an error" }; diff --git a/test/suites/common-tanssi-parachain/stream-payment/test_stream_payment.ts b/test/suites/common-tanssi-parachain/stream-payment/test_stream_payment.ts index 435b0e430..8fc3a9048 100644 --- a/test/suites/common-tanssi-parachain/stream-payment/test_stream_payment.ts +++ b/test/suites/common-tanssi-parachain/stream-payment/test_stream_payment.ts @@ -1,10 +1,10 @@ import "@tanssi/api-augment"; import { describeSuite, beforeAll, expect } from "@moonwall/cli"; -import { KeyringPair } from "@moonwall/util"; -import { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; describeSuite({ - id: "CPT0701", + id: "COMMO0902", title: "Stream payment works", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -21,7 +21,7 @@ describeSuite({ it({ id: "E01", title: "Stream payment works", - test: async function () { + test: async () => { // 1st block let aliceNonce = 0; const txOpenStream = await polkadotJs.tx.streamPayment @@ -38,7 +38,7 @@ describeSuite({ await context.createBlock([txOpenStream]); const openStreamEvents = (await polkadotJs.query.system.events()).filter((a) => { - return a.event.method == "StreamOpened"; + return a.event.method === "StreamOpened"; }); expect(openStreamEvents.length).to.be.equal(1); @@ -76,12 +76,12 @@ describeSuite({ await context.createBlock([txPerformPayment, txRequestChange]); const performPaymentEvents = (await polkadotJs.query.system.events()).filter((a) => { - return a.event.method == "StreamPayment"; + return a.event.method === "StreamPayment"; }); expect(performPaymentEvents.length).to.be.equal(1); const requestChangeEvents = (await polkadotJs.query.system.events()).filter((a) => { - return a.event.method == "StreamConfigChangeRequested"; + return a.event.method === "StreamConfigChangeRequested"; }); expect(requestChangeEvents.length).to.be.equal(1); @@ -92,7 +92,7 @@ describeSuite({ await context.createBlock([txAcceptChange]); const acceptChangeEvents = (await polkadotJs.query.system.events()).filter((a) => { - return a.event.method == "StreamConfigChanged"; + return a.event.method === "StreamConfigChanged"; }); expect(acceptChangeEvents.length).to.be.equal(1); @@ -104,7 +104,7 @@ describeSuite({ await context.createBlock([txCloseStream]); const closeStreamEvents = (await polkadotJs.query.system.events()).filter((a) => { - return a.event.method == "StreamClosed"; + return a.event.method === "StreamClosed"; }); expect(closeStreamEvents.length).to.be.equal(1); diff --git a/test/suites/common-tanssi-parachain/stream-payment/test_stream_payment_rpc.ts b/test/suites/common-tanssi-parachain/stream-payment/test_stream_payment_rpc.ts index a97302ad6..2909c202d 100644 --- a/test/suites/common-tanssi-parachain/stream-payment/test_stream_payment_rpc.ts +++ b/test/suites/common-tanssi-parachain/stream-payment/test_stream_payment_rpc.ts @@ -1,22 +1,21 @@ import "@tanssi/api-augment"; import { describeSuite, beforeAll, expect, customDevRpcRequest } from "@moonwall/cli"; -import { KeyringPair } from "@moonwall/util"; -import { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; -async function rpcStreamPaymentStatus(context, block, streamId, now) { - if (block == "latest") { +async function rpcStreamPaymentStatus(context, block: string, streamId: number, now: number) { + let blockhash = block; + if (blockhash === "latest") { const blockNumber = (await context.polkadotJs().rpc.chain.getBlock()).block.header.number.toBigInt(); - const blockHash = await context.polkadotJs().rpc.chain.getBlockHash(blockNumber); - - block = blockHash; + blockhash = await context.polkadotJs().rpc.chain.getBlockHash(blockNumber); } - return await customDevRpcRequest("tanssi_streamPaymentStatus", [block, streamId, now]); + return await customDevRpcRequest("tanssi_streamPaymentStatus", [blockhash, streamId, now]); } describeSuite({ - id: "CPT0702", + id: "COMMO0901", title: "Stream payment RPC", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -33,7 +32,7 @@ describeSuite({ it({ id: "E01", title: "Stream payment RPC", - test: async function () { + test: async () => { try { await rpcStreamPaymentStatus(context, "latest", 0, null); throw { message: "Should have returned an error" }; @@ -57,7 +56,7 @@ describeSuite({ let newBlock = await context.createBlock([txOpenStream]); const openStreamEvents = (await polkadotJs.query.system.events()).filter((a) => { - return a.event.method == "StreamOpened"; + return a.event.method === "StreamOpened"; }); expect(openStreamEvents.length).to.be.equal(1); @@ -110,12 +109,12 @@ describeSuite({ }); const performPaymentEvents = (await polkadotJs.query.system.events()).filter((a) => { - return a.event.method == "StreamPayment"; + return a.event.method === "StreamPayment"; }); expect(performPaymentEvents.length).to.be.equal(1); const requestChangeEvents = (await polkadotJs.query.system.events()).filter((a) => { - return a.event.method == "StreamConfigChangeRequested"; + return a.event.method === "StreamConfigChangeRequested"; }); expect(requestChangeEvents.length).to.be.equal(1); @@ -148,7 +147,7 @@ describeSuite({ newBlock = await context.createBlock([txAcceptChange]); const acceptChangeEvents = (await polkadotJs.query.system.events()).filter((a) => { - return a.event.method == "StreamConfigChanged"; + return a.event.method === "StreamConfigChanged"; }); expect(acceptChangeEvents.length).to.be.equal(1); @@ -175,7 +174,7 @@ describeSuite({ await context.createBlock([txCloseStream]); const closeStreamEvents = (await polkadotJs.query.system.events()).filter((a) => { - return a.event.method == "StreamClosed"; + return a.event.method === "StreamClosed"; }); expect(closeStreamEvents.length).to.be.equal(1); diff --git a/test/suites/common-tanssi/pallet-treasury/test_pallet_treasury.ts b/test/suites/common-tanssi/pallet-treasury/test_pallet_treasury.ts index f82dd5ce9..0c037b34c 100644 --- a/test/suites/common-tanssi/pallet-treasury/test_pallet_treasury.ts +++ b/test/suites/common-tanssi/pallet-treasury/test_pallet_treasury.ts @@ -1,11 +1,11 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; -import { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; import { jumpBlocks } from "util/block"; describeSuite({ - id: "CT0001", + id: "COMM0101", title: "Treasury pallet test suite", foundationMethods: "dev", @@ -36,7 +36,7 @@ describeSuite({ it({ id: "E01", title: "Non root can not spend from treasury (Local)", - test: async function () { + test: async () => { expect((await polkadotJs.query.treasury.spendCount()).toNumber()).to.equal(0); // Creates a proposal @@ -52,7 +52,7 @@ describeSuite({ it({ id: "E02", title: "Root can spend from treasury (Local)", - test: async function () { + test: async () => { expect((await polkadotJs.query.treasury.spendCount()).toNumber()).to.equal(0); const balanceBefore = (await polkadotJs.query.system.account(user_dave.address)).data.free.toBigInt(); @@ -80,7 +80,7 @@ describeSuite({ it({ id: "E03", title: "Non root can not spend from treasury (Non-local)", - test: async function () { + test: async () => { expect((await polkadotJs.query.treasury.spendCount()).toNumber()).to.equal(0); // Creates a proposal @@ -97,7 +97,7 @@ describeSuite({ it({ id: "E04", title: "Root can spend from treasury (Non-local)", - test: async function () { + test: async () => { expect((await polkadotJs.query.treasury.spendCount()).toNumber()).to.equal(0); const balanceBefore = (await polkadotJs.query.system.account(user_dave.address)).data.free.toBigInt(); diff --git a/test/suites/common-tanssi/services-payment/test_service_payment_removes_tank_money_and_burns.ts b/test/suites/common-tanssi/services-payment/test_service_payment_removes_tank_money_and_burns.ts index a27e646a2..b7329efb8 100644 --- a/test/suites/common-tanssi/services-payment/test_service_payment_removes_tank_money_and_burns.ts +++ b/test/suites/common-tanssi/services-payment/test_service_payment_removes_tank_money_and_burns.ts @@ -1,22 +1,22 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; -import { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; import { jumpSessions, fetchIssuance } from "util/block"; import { paraIdTank } from "util/payment"; describeSuite({ - id: "CT0101", + id: "COMM0201", title: "Services payment test suite", foundationMethods: "dev", testCases: ({ it, context }) => { let polkadotJs: ApiPromise; let alice: KeyringPair; const blocksPerSession = 10n; - const paraId2001 = 2001n; + const paraId2001 = 2001; const costPerBlock = 1_000_000n; - let balanceTankBefore; - let registerAlias; + let balanceTankBefore: bigint; + let registerAlias: any; beforeAll(async () => { polkadotJs = context.polkadotJs(); alice = context.keyring.alice; @@ -31,12 +31,12 @@ describeSuite({ const tx = polkadotJs.tx.servicesPayment.purchaseCredits(paraId2001, purchasedCredits); await context.createBlock([await tx.signAsync(alice)]); balanceTankBefore = (await polkadotJs.query.system.account(paraIdTank(paraId2001))).data.free.toBigInt(); - expect(balanceTankBefore, `Tank should have been filled`).toBe(purchasedCredits); + expect(balanceTankBefore, "Tank should have been filled").toBe(purchasedCredits); }); it({ id: "E01", title: "We deregister 2000, check the issuance drops", - test: async function () { + test: async () => { // We deregister the chain const deregister2001 = polkadotJs.tx.sudo.sudo(registerAlias.deregister(paraId2001)); await context.createBlock([await deregister2001.signAsync(alice)]); @@ -45,7 +45,7 @@ describeSuite({ const balanceTank = ( await polkadotJs.query.system.account(paraIdTank(paraId2001)) ).data.free.toBigInt(); - expect(balanceTank, `Tank should have been removed`).toBe(0n); + expect(balanceTank, "Tank should have been removed").toBe(0n); const blockNumber = (await polkadotJs.rpc.chain.getHeader()).number.toNumber(); const apiAtBlockBefore = await polkadotJs.at(await polkadotJs.rpc.chain.getBlockHash(blockNumber - 1)); @@ -54,7 +54,7 @@ describeSuite({ const blockIssuance = await fetchIssuance(await polkadotJs.query.system.events()); const issuanceDiff = supplyAfter - supplyBefore; - expect(issuanceDiff, `Tank should have been removed`).toBe( + expect(issuanceDiff, "Tank should have been removed").toBe( blockIssuance.amount.toBigInt() - balanceTankBefore ); }, diff --git a/test/suites/common-tanssi/services-payment/test_service_payment_removes_tank_money_and_refunds.ts b/test/suites/common-tanssi/services-payment/test_service_payment_removes_tank_money_and_refunds.ts index 560ea7133..86844a6a7 100644 --- a/test/suites/common-tanssi/services-payment/test_service_payment_removes_tank_money_and_refunds.ts +++ b/test/suites/common-tanssi/services-payment/test_service_payment_removes_tank_money_and_refunds.ts @@ -1,24 +1,24 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; -import { KeyringPair, generateKeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; +import { type KeyringPair, generateKeyringPair } from "@moonwall/util"; import { jumpSessions } from "util/block"; import { paraIdTank } from "util/payment"; describeSuite({ - id: "CT0102", + id: "COMM0202", title: "Services payment test suite", foundationMethods: "dev", testCases: ({ it, context }) => { let polkadotJs: ApiPromise; let alice: KeyringPair; const blocksPerSession = 10n; - const paraId2001 = 2001n; + const paraId2001 = 2001; const costPerBlock = 1_000_000n; - let refundAddress; - let balanceTankBefore; - let purchasedCredits; - let registerAlias; + let refundAddress: KeyringPair; + let balanceTankBefore: bigint; + let purchasedCredits: bigint; + let registerAlias: any; beforeAll(async () => { polkadotJs = context.polkadotJs(); alice = context.keyring.alice; @@ -34,12 +34,12 @@ describeSuite({ const tx = polkadotJs.tx.servicesPayment.purchaseCredits(paraId2001, purchasedCredits); await context.createBlock([await tx.signAsync(alice)]); balanceTankBefore = (await polkadotJs.query.system.account(paraIdTank(paraId2001))).data.free.toBigInt(); - expect(balanceTankBefore, `Tank should have been filled`).toBe(purchasedCredits); + expect(balanceTankBefore, "Tank should have been filled").toBe(purchasedCredits); }); it({ id: "E01", title: "Sudo can set refund address", - test: async function () { + test: async () => { // We deregister the chain const setRefundAddress = polkadotJs.tx.sudo.sudo( polkadotJs.tx.servicesPayment.setRefundAddress(paraId2001, refundAddress.address) @@ -47,13 +47,13 @@ describeSuite({ await context.createBlock([await setRefundAddress.signAsync(alice)]); // Check that we can fetch the address const refundAddressOnChain = await polkadotJs.query.servicesPayment.refundAddress(paraId2001); - expect(refundAddressOnChain.toString(), `Refund address should be set`).toBe(refundAddress.address); + expect(refundAddressOnChain.toString(), "Refund address should be set").toBe(refundAddress.address); }, }); it({ id: "E02", title: "On deregistration we refund the address", - test: async function () { + test: async () => { // We deregister the chain const deregister2001 = polkadotJs.tx.sudo.sudo(registerAlias.deregister(paraId2001)); await context.createBlock([await deregister2001.signAsync(alice)]); @@ -62,7 +62,7 @@ describeSuite({ const balanceTank = ( await polkadotJs.query.system.account(paraIdTank(paraId2001)) ).data.free.toBigInt(); - expect(balanceTank, `Tank should have been removed`).toBe(0n); + expect(balanceTank, "Tank should have been removed").toBe(0n); const balanceRefundAddress = ( await polkadotJs.query.system.account(refundAddress.address) diff --git a/test/suites/common-tanssi/services-payment/test_services_payment_block_credit_buying_free_combined.ts b/test/suites/common-tanssi/services-payment/test_services_payment_block_credit_buying_free_combined.ts index 825381dcd..44d86a7e6 100644 --- a/test/suites/common-tanssi/services-payment/test_services_payment_block_credit_buying_free_combined.ts +++ b/test/suites/common-tanssi/services-payment/test_services_payment_block_credit_buying_free_combined.ts @@ -1,21 +1,21 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; -import { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; import { jumpSessions } from "util/block"; describeSuite({ - id: "CT0103", + id: "COMM0203", title: "Services payment test suite", foundationMethods: "dev", testCases: ({ it, context }) => { let polkadotJs: ApiPromise; let alice: KeyringPair; const blocksPerSession = 10n; - const paraId2000 = 2000n; - const paraId2001 = 2001n; + const paraId2000 = 2000; + const paraId2001 = 2001; const costPerBlock = 1_000_000n; - let collatorAssignmentAlias; + let collatorAssignmentAlias: any; beforeAll(async () => { polkadotJs = context.polkadotJs(); alice = context.keyring.alice; @@ -28,7 +28,7 @@ describeSuite({ it({ id: "E01", title: "Collators are unassigned when a container chain does not have enough block credits", - test: async function () { + test: async () => { // Create blocks until authorNoting.blockNum does not increase anymore. // Check that collatorAssignment does not have collators and num credits is less than 2 sessions. @@ -51,7 +51,7 @@ describeSuite({ it({ id: "E02", title: "Collators are not assigned when we buy 1 session + ED -1 of block credits", - test: async function () { + test: async () => { // Set half of the needed block production credits as free credits const tx2000OneSession = polkadotJs.tx.servicesPayment.setBlockProductionCredits( paraId2000, @@ -78,7 +78,7 @@ describeSuite({ it({ id: "E03", title: "Collators are assigned when we buy at least 2 session + ED of block credits", - test: async function () { + test: async () => { // Now, buy the remaining const purchasedCredits = 1n; // Purchase the remaining 1 diff --git a/test/suites/common-tanssi/services-payment/test_services_payment_collator_credit_buying_free_combined.ts b/test/suites/common-tanssi/services-payment/test_services_payment_collator_credit_buying_free_combined.ts index f752f2120..5dd36f744 100644 --- a/test/suites/common-tanssi/services-payment/test_services_payment_collator_credit_buying_free_combined.ts +++ b/test/suites/common-tanssi/services-payment/test_services_payment_collator_credit_buying_free_combined.ts @@ -1,20 +1,20 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; -import { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; import { jumpSessions } from "util/block"; describeSuite({ - id: "CT0104", + id: "COMM0204", title: "Services payment test suite", foundationMethods: "dev", testCases: ({ it, context }) => { let polkadotJs: ApiPromise; let alice: KeyringPair; - const paraId2000 = 2000n; - const paraId2001 = 2001n; + const paraId2000 = 2000; + const paraId2001 = 2001; const costPerSession = 100_000_000n; - let collatorAssignmentAlias; + let collatorAssignmentAlias: any; beforeAll(async () => { polkadotJs = context.polkadotJs(); alice = context.keyring.alice; @@ -27,7 +27,7 @@ describeSuite({ it({ id: "E01", title: "Collators are unassigned when a container chain does not have enough collator assignment credits", - test: async function () { + test: async () => { // Create blocks until authorNoting.blockNum does not increase anymore. // Check that collatorAssignment does not have collators and num credits is less than 2 sessions. @@ -50,7 +50,7 @@ describeSuite({ it({ id: "E02", title: "Collators are not assigned when we buy a session + ED -1 of collator assignment credits", - test: async function () { + test: async () => { const existentialDeposit = await polkadotJs.consts.balances.existentialDeposit.toBigInt(); // Now, buy some credits for container chain 2000. we only buy ones session -1 const purchasedCredits = costPerSession + existentialDeposit - 1n; @@ -71,7 +71,7 @@ describeSuite({ it({ id: "E03", title: "Collators are assigned when we buy at least a session + ED of block credits", - test: async function () { + test: async () => { // Now, buy the remaining const purchasedCredits = 1n; // Purchase the remaining 1 diff --git a/test/suites/common-tanssi/services-payment/test_services_payment_no_free_credits.ts b/test/suites/common-tanssi/services-payment/test_services_payment_no_free_credits.ts index c05613d45..9cab53fbb 100644 --- a/test/suites/common-tanssi/services-payment/test_services_payment_no_free_credits.ts +++ b/test/suites/common-tanssi/services-payment/test_services_payment_no_free_credits.ts @@ -1,22 +1,22 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; -import { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; import { jumpSessions } from "util/block"; describeSuite({ - id: "CT0105", + id: "COMM0205", title: "Services payment test suite", foundationMethods: "dev", testCases: ({ it, context }) => { let polkadotJs: ApiPromise; let alice: KeyringPair; - const paraId2000 = 2000n; - const paraId2001 = 2001n; + const paraId2000 = 2000; + const paraId2001 = 2001; const costPerSession = 100_000_000n; const costPerBlock = 1_000_000n; const blocksPerSession = 10n; - let collatorAssignmentAlias; + let collatorAssignmentAlias: any; beforeAll(async () => { polkadotJs = context.polkadotJs(); alice = context.keyring.alice; @@ -28,7 +28,7 @@ describeSuite({ it({ id: "E01", title: "Removing credits should make chains not get collators", - test: async function () { + test: async () => { const removeFreeCredits = polkadotJs.tx.utility.batch([ polkadotJs.tx.servicesPayment.setCollatorAssignmentCredits(paraId2000, 0n), polkadotJs.tx.servicesPayment.setCollatorAssignmentCredits(paraId2001, 0n), @@ -44,12 +44,12 @@ describeSuite({ const collators = await collatorAssignmentAlias.collatorContainerChain(); expect( - collators.toJSON().containerChains[paraId2000], + collators.toJSON().containerChains[Number.parseInt(paraId2000.toString())], `Container chain ${paraId2000} should have 0 collators` ).toBeUndefined(); expect( - collators.toJSON().containerChains[paraId2001], + collators.toJSON().containerChains[Number.parseInt(paraId2001.toString())], `Container chain ${paraId2000} should have 0 collators` ).toBeUndefined(); }, @@ -57,7 +57,7 @@ describeSuite({ it({ id: "E02", title: "Buying credits only for collator-assignment is not enough", - test: async function () { + test: async () => { const existentialDeposit = await polkadotJs.consts.balances.existentialDeposit.toBigInt(); // Now, buy some credits for container chain 2000. we only buy ones session -1 const purchasedCredits = costPerSession + existentialDeposit; @@ -70,7 +70,7 @@ describeSuite({ const collators = await collatorAssignmentAlias.collatorContainerChain(); expect( - collators.toJSON().containerChains[paraId2000], + collators.toJSON().containerChains[Number.parseInt(paraId2000.toString())], `Container chain ${paraId2000} should have 0 collators` ).toBeUndefined(); }, @@ -78,7 +78,7 @@ describeSuite({ it({ id: "E03", title: "Additionally buying credits only for block-credits makes it assigned", - test: async function () { + test: async () => { // Now, buy some credits for container chain 2000. we only buy ones session -1 const purchasedCredits = blocksPerSession * costPerBlock * 2n; // Check that after 2 sessions, container chain 2000 has not collators @@ -90,7 +90,7 @@ describeSuite({ const collators = await collatorAssignmentAlias.collatorContainerChain(); expect( - collators.toJSON().containerChains[paraId2000].length, + collators.toJSON().containerChains[Number.parseInt(paraId2000.toString())].length, `Container chain ${paraId2000} has 0 collators` ).toBeGreaterThan(0); }, @@ -98,13 +98,13 @@ describeSuite({ it({ id: "E04", title: "Just one session later they should be unassinged", - test: async function () { + test: async () => { // Check that after 1 sessions await jumpSessions(context, 1); const collators = await collatorAssignmentAlias.collatorContainerChain(); expect( - collators.toJSON().containerChains[paraId2000], + collators.toJSON().containerChains[Number.parseInt(paraId2000.toString())], `Container chain ${paraId2000} should have 0 collators` ).toBeUndefined(); }, diff --git a/test/suites/common-xcm-parachain/test-maintenance/test-maintenance-dmp-queue.ts b/test/suites/common-xcm-parachain/test-maintenance/test-maintenance-dmp-queue.ts index 5e94c28ee..35f884ff6 100644 --- a/test/suites/common-xcm-parachain/test-maintenance/test-maintenance-dmp-queue.ts +++ b/test/suites/common-xcm-parachain/test-maintenance/test-maintenance-dmp-queue.ts @@ -1,9 +1,9 @@ import { beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { KeyringPair, alith } from "@moonwall/util"; +import { type KeyringPair, alith } from "@moonwall/util"; import { generateKeyringPair } from "@moonwall/util"; -import { ApiPromise, Keyring } from "@polkadot/api"; +import { type ApiPromise, Keyring } from "@polkadot/api"; import { - RawXcmMessage, + type RawXcmMessage, XcmFragment, descendParentOriginForAddress20, descendParentOriginFromAddress32, @@ -11,7 +11,7 @@ import { } from "../../../util/xcm.ts"; describeSuite({ - id: "CPX0101", + id: "COMMON0101", title: "Maintenance mode - DMP queue", foundationMethods: "dev", testCases: ({ context, it }) => { @@ -23,20 +23,20 @@ describeSuite({ let random: KeyringPair; let xcmMessage: XcmFragment; - beforeAll(async function () { + beforeAll(async () => { polkadotJs = context.polkadotJs(); chain = polkadotJs.consts.system.version.specName.toString(); // Generate the proper Keyring for the current type of chain alice = - chain == "frontier-template" + chain === "frontier-template" ? alith : new Keyring({ type: "sr25519" }).addFromUri("//Alice", { name: "Alice default", }); const descendFunction = - chain == "frontier-template" ? descendParentOriginForAddress20 : descendParentOriginFromAddress32; + chain === "frontier-template" ? descendParentOriginForAddress20 : descendParentOriginFromAddress32; let aliceNonce = (await polkadotJs.query.system.account(alice.address)).nonce.toNumber(); // Generate the parent address constructed by DescendOrigin @@ -54,12 +54,12 @@ describeSuite({ // Now let's start building the message // Generate random receiver address - random = chain == "frontier-template" ? generateKeyringPair() : generateKeyringPair("sr25519"); + random = chain === "frontier-template" ? generateKeyringPair() : generateKeyringPair("sr25519"); // Get Pallet balances index const metadata = await polkadotJs.rpc.state.getMetadata(); const balancesPalletIndex = metadata.asLatest.pallets - .find(({ name }) => name.toString() == "Balances")! + .find(({ name }) => name.toString() === "Balances") .index.toNumber(); // The call will be a simple balance transfer to random address @@ -102,7 +102,7 @@ describeSuite({ it({ id: "T01", title: "Should queue DMP execution during maintenance mode", - test: async function () { + test: async () => { // Enter maintenance mode with sudo const maintenanceTx = polkadotJs.tx.maintenanceMode.enterMaintenanceMode(); await context.createBlock([await polkadotJs.tx.sudo.sudo(maintenanceTx).signAsync(alice)]); diff --git a/test/suites/common-xcm-parachain/test-maintenance/test-maintenance-mode-xcm.ts b/test/suites/common-xcm-parachain/test-maintenance/test-maintenance-mode-xcm.ts index bd381ed85..08e09d57e 100644 --- a/test/suites/common-xcm-parachain/test-maintenance/test-maintenance-mode-xcm.ts +++ b/test/suites/common-xcm-parachain/test-maintenance/test-maintenance-mode-xcm.ts @@ -1,12 +1,12 @@ -import "@polkadot/api-augment"; +import "@tanssi/api-augment"; import { beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { KeyringPair } from "@moonwall/util"; -import { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; import { initializeCustomCreateBlock } from "../../../util/block"; -import { MultiLocation } from "../../../util/xcm"; +import type { MultiLocation } from "../../../util/xcm"; describeSuite({ - id: "CPX0102", + id: "COMMON0102", title: "XCM in maintenance mode", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -25,7 +25,7 @@ describeSuite({ it({ id: "E01", title: "polkadotXcm calls disabled in maintenance mode", - test: async function () { + test: async () => { await context.createBlock(); await context.createBlock(); @@ -50,7 +50,7 @@ describeSuite({ const polkadotXcmSend = context.polkadotJs().tx.polkadotXcm.send(dest, message); - if (chain == "frontier-template") { + if (chain === "frontier-template") { expect( async () => await context.createBlock(polkadotXcmSend.signAsync(alice)) ).rejects.toThrowError("1010: Invalid Transaction: Transaction call is not expected"); @@ -65,7 +65,7 @@ describeSuite({ it({ id: "E02", title: "polkadotXcm calls enabled with sudo in maintenance mode", - test: async function () { + test: async () => { await context.createBlock(); await context.createBlock(); @@ -107,7 +107,7 @@ describeSuite({ it({ id: "E03", title: "polkadotXcm calls allowed again after disabling maintenance mode", - test: async function () { + test: async () => { await context.createBlock(); await context.createBlock(); diff --git a/test/suites/common-xcm-parachain/test-maintenance/test-maintenance-xcm-queue.ts b/test/suites/common-xcm-parachain/test-maintenance/test-maintenance-xcm-queue.ts index 49e1f73d5..cf45cbd84 100644 --- a/test/suites/common-xcm-parachain/test-maintenance/test-maintenance-xcm-queue.ts +++ b/test/suites/common-xcm-parachain/test-maintenance/test-maintenance-xcm-queue.ts @@ -1,8 +1,8 @@ import { beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { KeyringPair, alith, generateKeyringPair } from "@moonwall/util"; -import { ApiPromise, Keyring } from "@polkadot/api"; +import { type KeyringPair, alith, generateKeyringPair } from "@moonwall/util"; +import { type ApiPromise, Keyring } from "@polkadot/api"; import { - RawXcmMessage, + type RawXcmMessage, XcmFragment, descendSiblingOriginFromAddress20, descendSiblingOriginFromAddress32, @@ -12,7 +12,7 @@ import { } from "../../../util/xcm.ts"; describeSuite({ - id: "CPX0104", + id: "COMMON0103", title: "Maintenance mode - XCM queue", foundationMethods: "dev", testCases: ({ context, it }) => { @@ -24,13 +24,13 @@ describeSuite({ let random: KeyringPair; let xcmMessage: XcmFragment; - beforeAll(async function () { + beforeAll(async () => { polkadotJs = context.polkadotJs(); chain = polkadotJs.consts.system.version.specName.toString(); // Generate the proper Keyring for the current type of chain alice = - chain == "frontier-template" + chain === "frontier-template" ? alith : new Keyring({ type: "sr25519" }).addFromUri("//Alice", { name: "Alice default", @@ -38,9 +38,9 @@ describeSuite({ let aliceNonce = (await polkadotJs.query.system.account(alice.address)).nonce.toNumber(); const descendFunction = - chain == "frontier-template" ? descendSiblingOriginFromAddress20 : descendSiblingOriginFromAddress32; + chain === "frontier-template" ? descendSiblingOriginFromAddress20 : descendSiblingOriginFromAddress32; const sovereignFunction = - chain == "frontier-template" + chain === "frontier-template" ? sovereignAccountOfSiblingForAddress20 : sovereignAccountOfSiblingForAddress32; @@ -67,12 +67,12 @@ describeSuite({ // Now let's start building the message // Generate random receiver address - random = chain == "frontier-template" ? generateKeyringPair() : generateKeyringPair("sr25519"); + random = chain === "frontier-template" ? generateKeyringPair() : generateKeyringPair("sr25519"); // Get Pallet balances index const metadata = await polkadotJs.rpc.state.getMetadata(); const balancesPalletIndex = metadata.asLatest.pallets - .find(({ name }) => name.toString() == "Balances")! + .find(({ name }) => name.toString() === "Balances") .index.toNumber(); const transferCall = polkadotJs.tx.balances.transferAllowDeath(random.address, transferredBalance / 10n); @@ -114,7 +114,7 @@ describeSuite({ it({ id: "T01", title: "Should queue XCM execution during maintenance mode (HRMP)", - test: async function () { + test: async () => { // Enter maintenance mode with sudo const maintenanceTx = polkadotJs.tx.maintenanceMode.enterMaintenanceMode(); await context.createBlock([await polkadotJs.tx.sudo.sudo(maintenanceTx).signAsync(alice)]); diff --git a/test/suites/common-xcm-parachain/xcm-token-reception/test_dmp_token_reception.ts b/test/suites/common-xcm-parachain/xcm-token-reception/test_dmp_token_reception.ts index 8f38cea25..e1dab5885 100644 --- a/test/suites/common-xcm-parachain/xcm-token-reception/test_dmp_token_reception.ts +++ b/test/suites/common-xcm-parachain/xcm-token-reception/test_dmp_token_reception.ts @@ -1,27 +1,27 @@ import { beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { KeyringPair, alith } from "@moonwall/util"; -import { ApiPromise, Keyring } from "@polkadot/api"; +import { type KeyringPair, alith } from "@moonwall/util"; +import { type ApiPromise, Keyring } from "@polkadot/api"; import { u8aToHex } from "@polkadot/util"; -import { RawXcmMessage, XcmFragment, injectDmpMessageAndSeal } from "../../../util/xcm.ts"; +import { type RawXcmMessage, XcmFragment, injectDmpMessageAndSeal } from "../../../util/xcm.ts"; import { RELAY_SOURCE_LOCATION, RELAY_SOURCE_LOCATION_2 } from "../../../util/constants.ts"; describeSuite({ - id: "CPX0101", + id: "COMMON0206", title: "Mock XCM - Succeeds receiving tokens DMP", foundationMethods: "dev", testCases: ({ context, it }) => { let polkadotJs: ApiPromise; - let transferredBalance; + let transferredBalance: bigint; let alice: KeyringPair; - let chain; + let chain: any; - beforeAll(async function () { + beforeAll(async () => { polkadotJs = context.polkadotJs(); chain = polkadotJs.consts.system.version.specName.toString(); // since in the future is likely that we are going to add this to containers, I leave it here alice = - chain == "frontier-template" + chain === "frontier-template" ? alith : new Keyring({ type: "sr25519" }).addFromUri("//Alice", { name: "Alice default", @@ -58,7 +58,7 @@ describeSuite({ it({ id: "T01", title: "Should succeed receiving tokens", - test: async function () { + test: async () => { // Send an XCM and create block to execute it const xcmMessage = new XcmFragment({ assets: [ @@ -100,7 +100,7 @@ describeSuite({ it({ id: "T02", title: "Should not succeed receiving tokens if asset rate is not defined", - test: async function () { + test: async () => { // We register the token const txSigned = polkadotJs.tx.sudo.sudo( polkadotJs.tx.foreignAssetsCreator.createForeignAsset( diff --git a/test/suites/common-xcm-parachain/xcm-token-reception/test_dmp_token_reception_appendix.ts b/test/suites/common-xcm-parachain/xcm-token-reception/test_dmp_token_reception_appendix.ts index 5e0a3fa44..66935d724 100644 --- a/test/suites/common-xcm-parachain/xcm-token-reception/test_dmp_token_reception_appendix.ts +++ b/test/suites/common-xcm-parachain/xcm-token-reception/test_dmp_token_reception_appendix.ts @@ -1,27 +1,27 @@ import { beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { KeyringPair, alith } from "@moonwall/util"; -import { ApiPromise, Keyring } from "@polkadot/api"; +import { type KeyringPair, alith } from "@moonwall/util"; +import { type ApiPromise, Keyring } from "@polkadot/api"; import { u8aToHex } from "@polkadot/util"; -import { RawXcmMessage, XcmFragment, injectDmpMessageAndSeal } from "../../../util/xcm.ts"; +import { type RawXcmMessage, XcmFragment, injectDmpMessageAndSeal } from "../../../util/xcm.ts"; import { RELAY_SOURCE_LOCATION } from "../../../util/constants.ts"; describeSuite({ - id: "CPX0103", + id: "COMMON0202", title: "Mock XCM - downward transfer with always triggered appendix", foundationMethods: "dev", testCases: ({ context, it }) => { let polkadotJs: ApiPromise; - let transferredBalance; + let transferredBalance: bigint; let alice: KeyringPair; - let chain; + let chain: any; - beforeAll(async function () { + beforeAll(async () => { polkadotJs = context.polkadotJs(); chain = polkadotJs.consts.system.version.specName.toString(); // since in the future is likely that we are going to add this to containers, I leave it here alice = - chain == "frontier-template" + chain === "frontier-template" ? alith : new Keyring({ type: "sr25519" }).addFromUri("//Alice", { name: "Alice default", @@ -58,7 +58,7 @@ describeSuite({ it({ id: "T01", title: "Should make sure Alice receives 10 dot with appendix and without error", - test: async function () { + test: async () => { // Send an XCM and create block to execute it const xcmMessage = new XcmFragment({ assets: [ diff --git a/test/suites/common-xcm-parachain/xcm-token-reception/test_dmp_token_reception_appendix_2.ts b/test/suites/common-xcm-parachain/xcm-token-reception/test_dmp_token_reception_appendix_2.ts index 8a2fac371..e35b48c22 100644 --- a/test/suites/common-xcm-parachain/xcm-token-reception/test_dmp_token_reception_appendix_2.ts +++ b/test/suites/common-xcm-parachain/xcm-token-reception/test_dmp_token_reception_appendix_2.ts @@ -1,27 +1,27 @@ import { beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { KeyringPair, alith } from "@moonwall/util"; -import { ApiPromise, Keyring } from "@polkadot/api"; +import { type KeyringPair, alith } from "@moonwall/util"; +import { type ApiPromise, Keyring } from "@polkadot/api"; import { u8aToHex } from "@polkadot/util"; -import { RawXcmMessage, XcmFragment, injectDmpMessageAndSeal } from "../../../util/xcm.ts"; +import { type RawXcmMessage, XcmFragment, injectDmpMessageAndSeal } from "../../../util/xcm.ts"; import { RELAY_SOURCE_LOCATION } from "../../../util/constants.ts"; describeSuite({ - id: "CPX0103", + id: "COMMON0201", title: "Mock XCM - downward transfer with always triggered appendix", foundationMethods: "dev", testCases: ({ context, it }) => { let polkadotJs: ApiPromise; - let transferredBalance; + let transferredBalance: bigint; let alice: KeyringPair; - let chain; + let chain: any; - beforeAll(async function () { + beforeAll(async () => { polkadotJs = context.polkadotJs(); chain = polkadotJs.consts.system.version.specName.toString(); // since in the future is likely that we are going to add this to containers, I leave it here alice = - chain == "frontier-template" + chain === "frontier-template" ? alith : new Keyring({ type: "sr25519" }).addFromUri("//Alice", { name: "Alice default", @@ -58,7 +58,7 @@ describeSuite({ it({ id: "T01", title: "Should make sure Alice receives 10 dot with appendix and without error", - test: async function () { + test: async () => { // Send an XCM and create block to execute it const xcmMessage = new XcmFragment({ assets: [ diff --git a/test/suites/common-xcm-parachain/xcm-token-reception/test_dmp_token_reception_error_handler.ts b/test/suites/common-xcm-parachain/xcm-token-reception/test_dmp_token_reception_error_handler.ts index 51d2ed5fa..bd17e2239 100644 --- a/test/suites/common-xcm-parachain/xcm-token-reception/test_dmp_token_reception_error_handler.ts +++ b/test/suites/common-xcm-parachain/xcm-token-reception/test_dmp_token_reception_error_handler.ts @@ -1,27 +1,27 @@ import { beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { KeyringPair, alith } from "@moonwall/util"; -import { ApiPromise, Keyring } from "@polkadot/api"; +import { type KeyringPair, alith } from "@moonwall/util"; +import { type ApiPromise, Keyring } from "@polkadot/api"; import { u8aToHex } from "@polkadot/util"; -import { RawXcmMessage, XcmFragment, injectDmpMessageAndSeal } from "../../../util/xcm.ts"; +import { type RawXcmMessage, XcmFragment, injectDmpMessageAndSeal } from "../../../util/xcm.ts"; import { RELAY_SOURCE_LOCATION } from "../../../util/constants.ts"; describeSuite({ - id: "CPX0104", + id: "COMMON0204", title: "Mock XCM - downward transfer with non-triggered error handler", foundationMethods: "dev", testCases: ({ context, it }) => { let polkadotJs: ApiPromise; - let transferredBalance; + let transferredBalance: bigint; let alice: KeyringPair; - let chain; + let chain: any; - beforeAll(async function () { + beforeAll(async () => { polkadotJs = context.polkadotJs(); chain = polkadotJs.consts.system.version.specName.toString(); // since in the future is likely that we are going to add this to containers, I leave it here alice = - chain == "frontier-template" + chain === "frontier-template" ? alith : new Keyring({ type: "sr25519" }).addFromUri("//Alice", { name: "Alice default", @@ -50,7 +50,7 @@ describeSuite({ it({ id: "T01", title: "Should make sure that Alice does not receive 10 dot without error", - test: async function () { + test: async () => { // Send an XCM and create block to execute it const xcmMessage = new XcmFragment({ assets: [ diff --git a/test/suites/common-xcm-parachain/xcm-token-reception/test_dmp_token_reception_error_handler_2.ts b/test/suites/common-xcm-parachain/xcm-token-reception/test_dmp_token_reception_error_handler_2.ts index 61d8a8cff..b80c8deb0 100644 --- a/test/suites/common-xcm-parachain/xcm-token-reception/test_dmp_token_reception_error_handler_2.ts +++ b/test/suites/common-xcm-parachain/xcm-token-reception/test_dmp_token_reception_error_handler_2.ts @@ -1,27 +1,27 @@ import { beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { KeyringPair, alith } from "@moonwall/util"; -import { ApiPromise, Keyring } from "@polkadot/api"; +import { type KeyringPair, alith } from "@moonwall/util"; +import { type ApiPromise, Keyring } from "@polkadot/api"; import { u8aToHex } from "@polkadot/util"; -import { RawXcmMessage, XcmFragment, injectDmpMessageAndSeal } from "../../../util/xcm.ts"; +import { type RawXcmMessage, XcmFragment, injectDmpMessageAndSeal } from "../../../util/xcm.ts"; import { RELAY_SOURCE_LOCATION } from "../../../util/constants.ts"; describeSuite({ - id: "CPX0105", + id: "COMMON0203", title: "Mock XCM - downward transfer with triggered error handler", foundationMethods: "dev", testCases: ({ context, it }) => { let polkadotJs: ApiPromise; - let transferredBalance; + let transferredBalance: bigint; let alice: KeyringPair; - let chain; + let chain: any; - beforeAll(async function () { + beforeAll(async () => { polkadotJs = context.polkadotJs(); chain = polkadotJs.consts.system.version.specName.toString(); // since in the future is likely that we are going to add this to containers, I leave it here alice = - chain == "frontier-template" + chain === "frontier-template" ? alith : new Keyring({ type: "sr25519" }).addFromUri("//Alice", { name: "Alice default", @@ -40,7 +40,7 @@ describeSuite({ 1 ), polkadotJs.tx.assetRate.create( - 1, + "1", // this defines how much the asset costs with respect to the // new asset // in this case, asset*2=native @@ -58,7 +58,7 @@ describeSuite({ it({ id: "T01", title: "Should make sure that Alith does receive 10 dot because there is error", - test: async function () { + test: async () => { // Send an XCM and create block to execute it const xcmMessage = new XcmFragment({ assets: [ diff --git a/test/suites/common-xcm-parachain/xcm-token-reception/test_dmp_token_reception_teleport.ts b/test/suites/common-xcm-parachain/xcm-token-reception/test_dmp_token_reception_teleport.ts index 8e8c641ea..dfaa4cc52 100644 --- a/test/suites/common-xcm-parachain/xcm-token-reception/test_dmp_token_reception_teleport.ts +++ b/test/suites/common-xcm-parachain/xcm-token-reception/test_dmp_token_reception_teleport.ts @@ -1,27 +1,27 @@ import { beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { KeyringPair, alith } from "@moonwall/util"; -import { ApiPromise, Keyring } from "@polkadot/api"; +import { type KeyringPair, alith } from "@moonwall/util"; +import { type ApiPromise, Keyring } from "@polkadot/api"; import { u8aToHex } from "@polkadot/util"; -import { RawXcmMessage, XcmFragment, injectDmpMessageAndSeal } from "../../../util/xcm.ts"; +import { type RawXcmMessage, XcmFragment, injectDmpMessageAndSeal } from "../../../util/xcm.ts"; import { RELAY_SOURCE_LOCATION } from "../../../util/constants.ts"; describeSuite({ - id: "CPX0107", + id: "COMMON0205", title: "Mock XCM - Succeeds receiving tokens DMP", foundationMethods: "dev", testCases: ({ context, it }) => { let polkadotJs: ApiPromise; - let transferredBalance; + let transferredBalance: bigint; let alice: KeyringPair; - let chain; + let chain: any; - beforeAll(async function () { + beforeAll(async () => { polkadotJs = context.polkadotJs(); chain = polkadotJs.consts.system.version.specName.toString(); // since in the future is likely that we are going to add this to containers, I leave it here alice = - chain == "frontier-template" + chain === "frontier-template" ? alith : new Keyring({ type: "sr25519" }).addFromUri("//Alice", { name: "Alice default", @@ -58,7 +58,7 @@ describeSuite({ it({ id: "T01", title: "Should fail receiving tokens", - test: async function () { + test: async () => { // Send an XCM and create block to execute it const xcmMessage = new XcmFragment({ assets: [ diff --git a/test/suites/common-xcm-parachain/xcm-token-reception/test_hrmp_token_reception.ts b/test/suites/common-xcm-parachain/xcm-token-reception/test_hrmp_token_reception.ts index 8255d72ed..9980c459a 100644 --- a/test/suites/common-xcm-parachain/xcm-token-reception/test_hrmp_token_reception.ts +++ b/test/suites/common-xcm-parachain/xcm-token-reception/test_hrmp_token_reception.ts @@ -1,27 +1,27 @@ import { beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { KeyringPair, alith } from "@moonwall/util"; -import { ApiPromise, Keyring } from "@polkadot/api"; +import { type KeyringPair, alith } from "@moonwall/util"; +import { type ApiPromise, Keyring } from "@polkadot/api"; import { u8aToHex } from "@polkadot/util"; -import { RawXcmMessage, XcmFragment, injectHrmpMessageAndSeal } from "../../../util/xcm.ts"; +import { type RawXcmMessage, XcmFragment, injectHrmpMessageAndSeal } from "../../../util/xcm.ts"; import { STATEMINT_LOCATION_EXAMPLE } from "../../../util/constants.ts"; describeSuite({ - id: "CPX0102", + id: "COMMON0208", title: "Mock XCM - Succeeds receiving tokens through HRMP", foundationMethods: "dev", testCases: ({ context, it }) => { let polkadotJs: ApiPromise; - let transferredBalance; + let transferredBalance: bigint; let alice: KeyringPair; - let chain; + let chain: any; - beforeAll(async function () { + beforeAll(async () => { polkadotJs = context.polkadotJs(); chain = polkadotJs.consts.system.version.specName.toString(); // since in the future is likely that we are going to add this to containers, I leave it here alice = - chain == "frontier-template" + chain === "frontier-template" ? alith : new Keyring({ type: "sr25519" }).addFromUri("//Alice", { name: "Alice default", @@ -58,7 +58,7 @@ describeSuite({ it({ id: "T01", title: "Should succeed receiving tokens", - test: async function () { + test: async () => { // Send an XCM and create block to execute it const xcmMessage = new XcmFragment({ assets: [ diff --git a/test/suites/common-xcm-parachain/xcm-token-reception/test_hrmp_token_reception_2.ts b/test/suites/common-xcm-parachain/xcm-token-reception/test_hrmp_token_reception_2.ts index f153c1a1a..1147ca1ca 100644 --- a/test/suites/common-xcm-parachain/xcm-token-reception/test_hrmp_token_reception_2.ts +++ b/test/suites/common-xcm-parachain/xcm-token-reception/test_hrmp_token_reception_2.ts @@ -1,27 +1,27 @@ import { beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { KeyringPair, alith } from "@moonwall/util"; -import { ApiPromise, Keyring } from "@polkadot/api"; +import { type KeyringPair, alith } from "@moonwall/util"; +import { type ApiPromise, Keyring } from "@polkadot/api"; import { u8aToHex, hexToBigInt } from "@polkadot/util"; -import { RawXcmMessage, XcmFragment, injectHrmpMessageAndSeal } from "../../../util/xcm.ts"; +import { type RawXcmMessage, XcmFragment, injectHrmpMessageAndSeal } from "../../../util/xcm.ts"; import { STATEMINT_LOCATION_EXAMPLE } from "../../../util/constants.ts"; describeSuite({ - id: "CPX0106", + id: "COMMON0207", title: "Mock XCM - Succeeds receiving tokens through HRMP", foundationMethods: "dev", testCases: ({ context, it }) => { let polkadotJs: ApiPromise; - let transferredBalance; + let transferredBalance: bigint; let alice: KeyringPair; - let chain; + let chain: any; - beforeAll(async function () { + beforeAll(async () => { polkadotJs = context.polkadotJs(); chain = polkadotJs.consts.system.version.specName.toString(); // since in the future is likely that we are going to add this to containers, I leave it here alice = - chain == "frontier-template" + chain === "frontier-template" ? alith : new Keyring({ type: "sr25519" }).addFromUri("//Alice", { name: "Alice default", @@ -55,7 +55,7 @@ describeSuite({ it({ id: "T01", title: "Should succeed receiving tokens with 1 fee if sufficeintly large rate", - test: async function () { + test: async () => { // Send an XCM and create block to execute it const xcmMessage = new XcmFragment({ assets: [ diff --git a/test/suites/common-xcm-parachain/xcm/test-mock-dmp-transact.ts b/test/suites/common-xcm-parachain/xcm/test-mock-dmp-transact.ts index 683af2e09..2ca9b5886 100644 --- a/test/suites/common-xcm-parachain/xcm/test-mock-dmp-transact.ts +++ b/test/suites/common-xcm-parachain/xcm/test-mock-dmp-transact.ts @@ -1,9 +1,9 @@ import { beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { KeyringPair, alith } from "@moonwall/util"; +import { type KeyringPair, alith } from "@moonwall/util"; import { generateKeyringPair } from "@moonwall/util"; -import { ApiPromise, Keyring } from "@polkadot/api"; +import { type ApiPromise, Keyring } from "@polkadot/api"; import { - RawXcmMessage, + type RawXcmMessage, XcmFragment, descendParentOriginForAddress20, descendParentOriginFromAddress32, @@ -11,27 +11,27 @@ import { } from "../../../util/xcm.ts"; describeSuite({ - id: "CPX0201", + id: "COMMON0301", title: "Mock XCM - Succeeds using sovereign accounts", foundationMethods: "dev", testCases: ({ context, it }) => { let polkadotJs: ApiPromise; - let transferredBalance; - let sendingAddress; + let transferredBalance: bigint; + let sendingAddress: string; let alice: KeyringPair; - let chain; + let chain: any; - beforeAll(async function () { + beforeAll(async () => { polkadotJs = context.polkadotJs(); chain = polkadotJs.consts.system.version.specName.toString(); alice = - chain == "frontier-template" + chain === "frontier-template" ? alith : new Keyring({ type: "sr25519" }).addFromUri("//Alice", { name: "Alice default", }); const descendFunction = - chain == "frontier-template" ? descendParentOriginForAddress20 : descendParentOriginFromAddress32; + chain === "frontier-template" ? descendParentOriginForAddress20 : descendParentOriginFromAddress32; let aliceNonce = (await polkadotJs.query.system.account(alice.address)).nonce.toNumber(); const { originAddress, descendOriginAddress } = descendFunction(context); @@ -51,13 +51,13 @@ describeSuite({ it({ id: "T01", title: "Should succeed using sovereign account from signed origin", - test: async function () { + test: async () => { // Generate random receiver address - const random = chain == "frontier-template" ? generateKeyringPair() : generateKeyringPair("sr25519"); + const random = chain === "frontier-template" ? generateKeyringPair() : generateKeyringPair("sr25519"); // Get Pallet balances index const metadata = await polkadotJs.rpc.state.getMetadata(); const balancesPalletIndex = metadata.asLatest.pallets - .find(({ name }) => name.toString() == "Balances")! + .find(({ name }) => name.toString() === "Balances") .index.toNumber(); const transferCall = polkadotJs.tx.balances.transferAllowDeath( diff --git a/test/suites/common-xcm-parachain/xcm/test-mock-hrmp-transact.ts b/test/suites/common-xcm-parachain/xcm/test-mock-hrmp-transact.ts index 80be005b7..f55104e7c 100644 --- a/test/suites/common-xcm-parachain/xcm/test-mock-hrmp-transact.ts +++ b/test/suites/common-xcm-parachain/xcm/test-mock-hrmp-transact.ts @@ -1,8 +1,8 @@ import { beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { KeyringPair, alith, generateKeyringPair } from "@moonwall/util"; -import { ApiPromise, Keyring } from "@polkadot/api"; +import { type KeyringPair, alith, generateKeyringPair } from "@moonwall/util"; +import { type ApiPromise, Keyring } from "@polkadot/api"; import { - RawXcmMessage, + type RawXcmMessage, XcmFragment, descendSiblingOriginFromAddress20, descendSiblingOriginFromAddress32, @@ -12,21 +12,21 @@ import { } from "../../../util/xcm.ts"; describeSuite({ - id: "CPX0202", + id: "COMMON0302", title: "Mock XCM - Succeeds using sovereign accounts", foundationMethods: "dev", testCases: ({ context, it }) => { let polkadotJs: ApiPromise; - let transferredBalance; - let sendingAddress; + let transferredBalance: bigint; + let sendingAddress: string; let alice: KeyringPair; - let chain; + let chain: any; - beforeAll(async function () { + beforeAll(async () => { polkadotJs = context.polkadotJs(); chain = polkadotJs.consts.system.version.specName.toString(); alice = - chain == "frontier-template" + chain === "frontier-template" ? alith : new Keyring({ type: "sr25519" }).addFromUri("//Alice", { name: "Alice default", @@ -34,9 +34,9 @@ describeSuite({ let aliceNonce = (await polkadotJs.query.system.account(alice.address)).nonce.toNumber(); const descendFunction = - chain == "frontier-template" ? descendSiblingOriginFromAddress20 : descendSiblingOriginFromAddress32; + chain === "frontier-template" ? descendSiblingOriginFromAddress20 : descendSiblingOriginFromAddress32; const sovereignFunction = - chain == "frontier-template" + chain === "frontier-template" ? sovereignAccountOfSiblingForAddress20 : sovereignAccountOfSiblingForAddress32; @@ -64,14 +64,14 @@ describeSuite({ it({ id: "T01", title: "Should succeed using sovereign account from signed origin", - test: async function () { + test: async () => { // Generate random receiver address - const random = chain == "frontier-template" ? generateKeyringPair() : generateKeyringPair("sr25519"); + const random = chain === "frontier-template" ? generateKeyringPair() : generateKeyringPair("sr25519"); // Get Pallet balances index const metadata = await polkadotJs.rpc.state.getMetadata(); const balancesPalletIndex = metadata.asLatest.pallets - .find(({ name }) => name.toString() == "Balances")! + .find(({ name }) => name.toString() === "Balances") .index.toNumber(); const transferCall = polkadotJs.tx.balances.transferAllowDeath( @@ -131,14 +131,14 @@ describeSuite({ it({ id: "T02", title: "Should succeed using sovereign account from root origin", - test: async function () { + test: async () => { // Generate random receiver address - const random = chain == "frontier-template" ? generateKeyringPair() : generateKeyringPair("sr25519"); + const random = chain === "frontier-template" ? generateKeyringPair() : generateKeyringPair("sr25519"); // Get Pallet balances index const metadata = await polkadotJs.rpc.state.getMetadata(); const balancesPalletIndex = metadata.asLatest.pallets - .find(({ name }) => name.toString() == "Balances")! + .find(({ name }) => name.toString() === "Balances") .index.toNumber(); const transferCall = polkadotJs.tx.balances.transferAllowDeath( diff --git a/test/suites/common-xcm-parachain/xcm/test-reserve-transfer-horizontal.ts b/test/suites/common-xcm-parachain/xcm/test-reserve-transfer-horizontal.ts index d1828c63f..8c26d1fde 100644 --- a/test/suites/common-xcm-parachain/xcm/test-reserve-transfer-horizontal.ts +++ b/test/suites/common-xcm-parachain/xcm/test-reserve-transfer-horizontal.ts @@ -1,42 +1,42 @@ import { beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { KeyringPair, alith } from "@moonwall/util"; +import { type KeyringPair, alith } from "@moonwall/util"; import { - MultiLocation, + type MultiLocation, extractPaidDeliveryFees, getLastSentHrmpMessageFee, mockHrmpChannelExistanceTx, } from "../../../util/xcm"; -import { ApiPromise, Keyring } from "@polkadot/api"; +import { type ApiPromise, Keyring } from "@polkadot/api"; describeSuite({ - id: "CPX0203", + id: "COMMON0303", title: "XCM - Succeeds sending XCM reserve transfer horizontal", foundationMethods: "dev", testCases: ({ context, it }) => { let polkadotJs: ApiPromise; let alice: KeyringPair; let baseDelivery: bigint; - let chain; + let chain: any; const destinationPara = 3000; const txByteFee = 1n; const randomReceiver = "0x1111111111111111111111111111111111111111111111111111111111111111"; - beforeAll(async function () { + beforeAll(async () => { polkadotJs = context.polkadotJs(); chain = polkadotJs.consts.system.version.specName.toString(); alice = - chain == "frontier-template" + chain === "frontier-template" ? alith : new Keyring({ type: "sr25519" }).addFromUri("//Alice", { name: "Alice default", }); - baseDelivery = chain == "frontier-template" ? 100_000_000_000_000n : 100_000_000n; + baseDelivery = chain === "frontier-template" ? 100_000_000_000_000n : 100_000_000n; }); it({ id: "T01", title: "Should succeed sending a reserve transfer horizontal", - test: async function () { + test: async () => { // We need to first mock the existence of the channel const mockHrmp3000Tx = polkadotJs.tx.sudo.sudo( mockHrmpChannelExistanceTx(context, destinationPara, 1000, 102400, 102400) @@ -46,7 +46,7 @@ describeSuite({ // Get pallet indices const metadata = await context.polkadotJs().rpc.state.getMetadata(); const balancesPalletIndex = metadata.asLatest.pallets - .find(({ name }) => name.toString() == "Balances")! + .find(({ name }) => name.toString() === "Balances") .index.toNumber(); const destMultilocation: MultiLocation = { diff --git a/test/suites/common-xcm-parachain/xcm/test-reserve-transfer-upward.ts b/test/suites/common-xcm-parachain/xcm/test-reserve-transfer-upward.ts index 54b42ca8b..cf4897d66 100644 --- a/test/suites/common-xcm-parachain/xcm/test-reserve-transfer-upward.ts +++ b/test/suites/common-xcm-parachain/xcm/test-reserve-transfer-upward.ts @@ -1,40 +1,40 @@ import { beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { KeyringPair, alith } from "@moonwall/util"; -import { MultiLocation, extractPaidDeliveryFees, getLastSentUmpMessageFee } from "../../../util/xcm"; -import { ApiPromise, Keyring } from "@polkadot/api"; +import { type KeyringPair, alith } from "@moonwall/util"; +import { type MultiLocation, extractPaidDeliveryFees, getLastSentUmpMessageFee } from "../../../util/xcm"; +import { type ApiPromise, Keyring } from "@polkadot/api"; describeSuite({ - id: "CPX0204", + id: "COMMON0304", title: "XCM - Succeeds sending XCM reserve transfer", foundationMethods: "dev", testCases: ({ context, it }) => { let polkadotJs: ApiPromise; let alice: KeyringPair; let baseDelivery: bigint; - let chain; + let chain: any; const txByteFee = 1n; const randomReceiver = "0x1111111111111111111111111111111111111111111111111111111111111111"; - beforeAll(async function () { + beforeAll(async () => { polkadotJs = context.polkadotJs(); chain = polkadotJs.consts.system.version.specName.toString(); alice = - chain == "frontier-template" + chain === "frontier-template" ? alith : new Keyring({ type: "sr25519" }).addFromUri("//Alice", { name: "Alice default", }); - baseDelivery = chain == "frontier-template" ? 100_000_000_000_000n : 100_000_000n; + baseDelivery = chain === "frontier-template" ? 100_000_000_000_000n : 100_000_000n; }); it({ id: "T01", title: "Should succeed sending a reserve transfer upward", - test: async function () { + test: async () => { // Get pallet indices const metadata = await context.polkadotJs().rpc.state.getMetadata(); const balancesPalletIndex = metadata.asLatest.pallets - .find(({ name }) => name.toString() == "Balances")! + .find(({ name }) => name.toString() === "Balances") .index.toNumber(); const destMultilocation: MultiLocation = { diff --git a/test/suites/common-xcm-parachain/xcm/test-xcm-dry-run-api.ts b/test/suites/common-xcm-parachain/xcm/test-xcm-dry-run-api.ts index 7a2d76a73..8d472fff7 100644 --- a/test/suites/common-xcm-parachain/xcm/test-xcm-dry-run-api.ts +++ b/test/suites/common-xcm-parachain/xcm/test-xcm-dry-run-api.ts @@ -1,5 +1,5 @@ import { beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { KeyringPair, alith, generateKeyringPair } from "@moonwall/util"; +import { type KeyringPair, alith, generateKeyringPair } from "@moonwall/util"; import { ApiPromise, Keyring, WsProvider } from "@polkadot/api"; import { u8aToHex } from "@polkadot/util"; import { XcmFragment } from "util/xcm.ts"; @@ -78,22 +78,22 @@ const runtimeApi = { }; describeSuite({ - id: "CPX0205", + id: "COMMON0305", title: "XCM - DryRunApi", foundationMethods: "dev", testCases: ({ it }) => { let polkadotJs: ApiPromise; let alice: KeyringPair; - let chain; + let chain: any; - beforeAll(async function () { + beforeAll(async () => { polkadotJs = await ApiPromise.create({ provider: new WsProvider(`ws://localhost:${process.env.MOONWALL_RPC_PORT}/`), ...runtimeApi, }); chain = polkadotJs.consts.system.version.specName.toString(); alice = - chain == "frontier-template" + chain === "frontier-template" ? alith : new Keyring({ type: "sr25519" }).addFromUri("//Alice", { name: "Alice default", @@ -103,10 +103,10 @@ describeSuite({ it({ id: "T01", title: "Should succeed calling dryRunCall", - test: async function () { + test: async () => { const metadata = await polkadotJs.rpc.state.getMetadata(); const balancesPalletIndex = metadata.asLatest.pallets - .find(({ name }) => name.toString() == "Balances")! + .find(({ name }) => name.toString() === "Balances") .index.toNumber(); const randomReceiver = "0x1111111111111111111111111111111111111111111111111111111111111111"; @@ -170,12 +170,12 @@ describeSuite({ it({ id: "T02", title: "Should succeed calling dryRunXcm", - test: async function () { + test: async () => { const metadata = await polkadotJs.rpc.state.getMetadata(); const balancesPalletIndex = metadata.asLatest.pallets - .find(({ name }) => name.toString() == "Balances")! + .find(({ name }) => name.toString() === "Balances") .index.toNumber(); - const random = chain == "frontier-template" ? generateKeyringPair() : generateKeyringPair("sr25519"); + const random = chain === "frontier-template" ? generateKeyringPair() : generateKeyringPair("sr25519"); const xcmMessage = new XcmFragment({ assets: [ diff --git a/test/suites/common-xcm-parachain/xcm/test-xcm-location-to-address.ts b/test/suites/common-xcm-parachain/xcm/test-xcm-location-to-address.ts index b21631966..97e981563 100644 --- a/test/suites/common-xcm-parachain/xcm/test-xcm-location-to-address.ts +++ b/test/suites/common-xcm-parachain/xcm/test-xcm-location-to-address.ts @@ -2,14 +2,14 @@ import { describeSuite, expect } from "@moonwall/cli"; import { RELAY_V3_SOURCE_LOCATION } from "helpers/assets"; describeSuite({ - id: "CPX0206", + id: "COMMON0306", title: "XCM - LocationToAccountApi", foundationMethods: "dev", testCases: ({ context, it }) => { it({ id: "T01", title: "Should succeed calling convertLocation", - test: async function () { + test: async () => { const chain = context.polkadotJs().consts.system.version.specName.toString(); const convertLocation = await context @@ -18,7 +18,7 @@ describeSuite({ expect(convertLocation.isOk).to.be.true; - if (chain == "frontier-template") + if (chain === "frontier-template") expect(convertLocation.asOk.toHuman()).to.eq("0x506172656E740000000000000000000000000000"); else expect(convertLocation.asOk.toHuman()).to.eq("5Dt6dpkWPwLaH4BBCKJwjiWrFVAGyYk3tLUabvyn4v7KtESG"); }, diff --git a/test/suites/common-xcm-parachain/xcm/test-xcm-payment-api.ts b/test/suites/common-xcm-parachain/xcm/test-xcm-payment-api.ts index 97faa7374..cf608ff18 100644 --- a/test/suites/common-xcm-parachain/xcm/test-xcm-payment-api.ts +++ b/test/suites/common-xcm-parachain/xcm/test-xcm-payment-api.ts @@ -1,5 +1,5 @@ import { beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { KeyringPair, alith } from "@moonwall/util"; +import { type KeyringPair, alith } from "@moonwall/util"; import { ApiPromise, Keyring, WsProvider } from "@polkadot/api"; import { STATEMINT_LOCATION_EXAMPLE } from "../../../util/constants.ts"; @@ -61,15 +61,15 @@ const runtimeApi = { }; describeSuite({ - id: "CPX0207", + id: "COMMON0307", title: "XCM - XcmPaymentApi", foundationMethods: "dev", testCases: ({ context, it }) => { let polkadotJs: ApiPromise; let alice: KeyringPair; - let chain; + let chain: any; - beforeAll(async function () { + beforeAll(async () => { // Not using context.polkadotJs() because we need to add the runtime api // This won't be needed after @polkadot/api adds the XcmPaymentApi polkadotJs = await ApiPromise.create({ @@ -78,7 +78,7 @@ describeSuite({ }); chain = polkadotJs.consts.system.version.specName.toString(); alice = - chain == "frontier-template" + chain === "frontier-template" ? alith : new Keyring({ type: "sr25519" }).addFromUri("//Alice", { name: "Alice default", @@ -113,11 +113,11 @@ describeSuite({ it({ id: "T01", title: "Should succeed calling runtime api", - test: async function () { + test: async () => { const chainInfo = polkadotJs.registry.getChainProperties(); const metadata = await polkadotJs.rpc.state.getMetadata(); const balancesPalletIndex = metadata.asLatest.pallets - .find(({ name }) => name.toString() == "Balances")! + .find(({ name }) => name.toString() === "Balances") .index.toNumber(); console.log(chainInfo.toHuman()); diff --git a/test/suites/common-xcm-parachain/xcm/test-xcm-send-horizontal.ts b/test/suites/common-xcm-parachain/xcm/test-xcm-send-horizontal.ts index f6e6bfb39..06c771eed 100644 --- a/test/suites/common-xcm-parachain/xcm/test-xcm-send-horizontal.ts +++ b/test/suites/common-xcm-parachain/xcm/test-xcm-send-horizontal.ts @@ -1,42 +1,42 @@ import { beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { KeyringPair, alith } from "@moonwall/util"; +import { type KeyringPair, alith } from "@moonwall/util"; import { - MultiLocation, + type MultiLocation, extractPaidDeliveryFees, getLastSentHrmpMessageFee, XcmFragment, mockHrmpChannelExistanceTx, } from "../../../util/xcm"; -import { ApiPromise, Keyring } from "@polkadot/api"; +import { type ApiPromise, Keyring } from "@polkadot/api"; describeSuite({ - id: "CPX0208", + id: "COMMON0308", title: "XCM - Succeeds sending XCM", foundationMethods: "dev", testCases: ({ context, it }) => { let polkadotJs: ApiPromise; let alice: KeyringPair; let baseDelivery: bigint; - let chain; + let chain: any; const destinationPara = 3000; const txByteFee = 1n; - beforeAll(async function () { + beforeAll(async () => { polkadotJs = context.polkadotJs(); chain = polkadotJs.consts.system.version.specName.toString(); alice = - chain == "frontier-template" + chain === "frontier-template" ? alith : new Keyring({ type: "sr25519" }).addFromUri("//Alice", { name: "Alice default", }); - baseDelivery = chain == "frontier-template" ? 100_000_000_000_000n : 100_000_000n; + baseDelivery = chain === "frontier-template" ? 100_000_000_000_000n : 100_000_000n; }); it({ id: "T01", title: "Should succeed sending a XCM horizontal", - test: async function () { + test: async () => { // We need to first mock the existence of the channel const mockHrmp3000Tx = polkadotJs.tx.sudo.sudo( mockHrmpChannelExistanceTx(context, destinationPara, 1000, 102400, 102400) diff --git a/test/suites/common-xcm-parachain/xcm/test-xcm-send-upward.ts b/test/suites/common-xcm-parachain/xcm/test-xcm-send-upward.ts index b29ad2df0..65b4d7bb7 100644 --- a/test/suites/common-xcm-parachain/xcm/test-xcm-send-upward.ts +++ b/test/suites/common-xcm-parachain/xcm/test-xcm-send-upward.ts @@ -1,35 +1,35 @@ import { beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { KeyringPair, alith } from "@moonwall/util"; -import { MultiLocation, extractPaidDeliveryFees, getLastSentUmpMessageFee, XcmFragment } from "../../../util/xcm"; -import { ApiPromise, Keyring } from "@polkadot/api"; +import { type KeyringPair, alith } from "@moonwall/util"; +import { type MultiLocation, extractPaidDeliveryFees, getLastSentUmpMessageFee, XcmFragment } from "../../../util/xcm"; +import { type ApiPromise, Keyring } from "@polkadot/api"; describeSuite({ - id: "CPX0209", + id: "COMMON0309", title: "XCM - Succeeds sending XCM", foundationMethods: "dev", testCases: ({ context, it }) => { let polkadotJs: ApiPromise; let alice: KeyringPair; let baseDelivery: bigint; - let chain; + let chain: any; const txByteFee = 1n; - beforeAll(async function () { + beforeAll(async () => { polkadotJs = context.polkadotJs(); chain = polkadotJs.consts.system.version.specName.toString(); alice = - chain == "frontier-template" + chain === "frontier-template" ? alith : new Keyring({ type: "sr25519" }).addFromUri("//Alice", { name: "Alice default", }); - baseDelivery = chain == "frontier-template" ? 100_000_000_000_000n : 100_000_000n; + baseDelivery = chain === "frontier-template" ? 100_000_000_000_000n : 100_000_000n; }); it({ id: "T01", title: "Should succeed sending a XCM upward", - test: async function () { + test: async () => { const xcmMessage = new XcmFragment({ assets: [], }) diff --git a/test/suites/dancebox-specs/test-block-creation.ts b/test/suites/dancebox-specs/test-block-creation.ts index b2245a164..38aefbe65 100644 --- a/test/suites/dancebox-specs/test-block-creation.ts +++ b/test/suites/dancebox-specs/test-block-creation.ts @@ -8,7 +8,7 @@ describeSuite({ it({ id: "E01", title: "Checking that launched node can create blocks", - test: async function () { + test: async () => { const block = (await context.pjsApi.rpc.chain.getBlock()).block.header.number.toNumber(); await context.createBlock(); diff --git a/test/suites/dev-frontier-template/test-balance/test-balance-existential.ts b/test/suites/dev-frontier-template/test-balance/test-balance-existential.ts index 50a6d713f..f94be98eb 100644 --- a/test/suites/dev-frontier-template/test-balance/test-balance-existential.ts +++ b/test/suites/dev-frontier-template/test-balance/test-balance-existential.ts @@ -1,30 +1,30 @@ import { TransactionTypes, beforeEach, describeSuite, expect } from "@moonwall/cli"; import { ALITH_ADDRESS, BALTATHAR_ADDRESS, MIN_GAS_PRICE, createRawTransfer } from "@moonwall/util"; -import { PrivateKeyAccount } from "viem"; +import type { PrivateKeyAccount } from "viem"; import { generatePrivateKey, privateKeyToAccount } from "viem/accounts"; describeSuite({ - id: "DF0101", + id: "DE0101", title: "Existential Deposit disabled", foundationMethods: "dev", testCases: ({ context, it }) => { let randomAccount: PrivateKeyAccount; let privateKey: `0x${string}`; - beforeEach(async function () { + beforeEach(async () => { privateKey = generatePrivateKey(); randomAccount = privateKeyToAccount(privateKey); const { result } = await context.createBlock( context.polkadotJs().tx.balances.transferAllowDeath(randomAccount.address, 10_000_000_000_000_000_000n) ); - expect(result!.successful, result!.error?.name).to.be.true; + expect(result?.successful, result?.error?.name).to.be.true; }); for (const txnType of TransactionTypes) { it({ id: `T0${TransactionTypes.indexOf(txnType) + 1}`, title: `full ${txnType} transfer should not reap on 0 account balance`, - test: async function () { + test: async () => { const gasPrice = (await context.polkadotJs().rpc.eth.gasPrice()).toBigInt(); const raw = await createRawTransfer( context, @@ -40,7 +40,7 @@ describeSuite({ ); const { result } = await context.createBlock(raw); - expect(result!.successful, result!.error?.name).toBe(true); + expect(result?.successful, result?.error?.name).toBe(true); expect(await context.viem("public").getBalance({ address: randomAccount.address })).toBe(0n); }, @@ -50,11 +50,11 @@ describeSuite({ it({ id: "T04", title: "should not reap on tiny balance", - test: async function () { + test: async () => { const randomAccountBalance = await context .viem("public") .getBalance({ address: randomAccount.address }); - const rawTxn = await context.createTxn!({ + const rawTxn = await context.createTxn?.({ to: BALTATHAR_ADDRESS, privateKey, txnType: "legacy", @@ -72,7 +72,7 @@ describeSuite({ it({ id: "T05", title: "runtime constant should be set to zero", - test: async function () { + test: async () => { const existentialDeposit = context.polkadotJs().consts.balances.existentialDeposit.toBigInt(); expect(existentialDeposit).toBe(0n); }, diff --git a/test/suites/dev-frontier-template/test-contract/test-contract-deploy-filter.ts b/test/suites/dev-frontier-template/test-contract/test-contract-deploy-filter.ts index 704a11422..026470ce4 100644 --- a/test/suites/dev-frontier-template/test-contract/test-contract-deploy-filter.ts +++ b/test/suites/dev-frontier-template/test-contract/test-contract-deploy-filter.ts @@ -12,14 +12,14 @@ import { import { encodeFunctionData } from "viem"; describeSuite({ - id: "DF1701", + id: "DE0201", title: "Test Contract - Deployment Filter", foundationMethods: "dev", testCases: ({ context, it }) => { it({ id: "T01", title: "Any account can deploy (CREATE) in default mode", - test: async function () { + test: async () => { const { abi: fooAlithAbi, contractAddress: contractAddressAlith, @@ -50,7 +50,7 @@ describeSuite({ it({ id: "T02", title: "Only allowed address can deploy (CREATE) after changing parameters", - test: async function () { + test: async () => { const deployFilter = context .polkadotJs() .createType("ContainerChainTemplateFrontierRuntimeDeployFilter", { Whitelisted: [ALITH_ADDRESS] }); @@ -105,7 +105,7 @@ describeSuite({ it({ id: "T03", title: "Any account can deploy CALL(CREATE) in default mode", - test: async function () { + test: async () => { // First Alith deploys "Foo", which then will be used to deploy // the inner contract "Bar". const { @@ -170,7 +170,7 @@ describeSuite({ it({ id: "T04", title: "Only allowed address can deploy CALL(CREATE) after changing parameters", - test: async function () { + test: async () => { const deployFilter = context .polkadotJs() .createType("ContainerChainTemplateFrontierRuntimeDeployFilter", { Whitelisted: [ALITH_ADDRESS] }); diff --git a/test/suites/dev-frontier-template/test-eth-asset-address/test-eth-asset-address-creation.ts b/test/suites/dev-frontier-template/test-eth-asset-address/test-eth-asset-address-creation.ts index 083a81430..fe07f5ca1 100644 --- a/test/suites/dev-frontier-template/test-eth-asset-address/test-eth-asset-address-creation.ts +++ b/test/suites/dev-frontier-template/test-eth-asset-address/test-eth-asset-address-creation.ts @@ -3,20 +3,20 @@ import { STATEMINT_LOCATION_EXAMPLE } from "../../../util/constants.ts"; import { alith } from "@moonwall/util"; describeSuite({ - id: "DF0201", + id: "DE0301", title: "Ethereum asset dummy precompile address creation", foundationMethods: "dev", testCases: ({ context, it }) => { it({ id: "T01", title: "dummy precompile address is created when creating the asset and removed when destroyed", - test: async function () { + test: async () => { const assetId = 5; const assetIdAddress = new Uint8Array([ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 5, ]); const revertBytecode = "0x60006000fd"; - const addressInHex = "0x" + Buffer.from(assetIdAddress).toString("hex"); + const addressInHex = `0x${Buffer.from(assetIdAddress).toString("hex")}`; await context.createBlock( context diff --git a/test/suites/dev-frontier-template/test-eth-block/test-eth-block-pending.ts b/test/suites/dev-frontier-template/test-eth-block/test-eth-block-pending.ts index 6e77182be..639e40a8c 100644 --- a/test/suites/dev-frontier-template/test-eth-block/test-eth-block-pending.ts +++ b/test/suites/dev-frontier-template/test-eth-block/test-eth-block-pending.ts @@ -2,7 +2,7 @@ import { describeSuite, expect, fetchCompiledContract } from "@moonwall/cli"; import { ALITH_ADDRESS, ALITH_PRIVATE_KEY, customWeb3Request, generateKeyringPair } from "@moonwall/util"; describeSuite({ - id: "DF0301", + id: "DE0401", title: "Ethereum Block - Pending", foundationMethods: "dev", testCases: ({ context, it }) => { @@ -11,7 +11,7 @@ describeSuite({ it({ id: "T01", title: "should return pending block", - test: async function () { + test: async () => { let nonce = 0; const sendTransaction = async () => { const gasPrice = (await context.polkadotJs().rpc.eth.gasPrice()).toBigInt(); @@ -66,7 +66,7 @@ describeSuite({ it({ id: "T02", title: "should be able to estimate gas with pending block with transfers", - test: async function () { + test: async () => { const randomAccount = generateKeyringPair(); const randomAddress = randomAccount.address as `0x${string}`; const estimatedGas = await context.viem().estimateGas({ @@ -82,7 +82,7 @@ describeSuite({ it({ id: "T03", title: "should be able to estimate gas with pending block with contract creators", - test: async function () { + test: async () => { const { bytecode } = fetchCompiledContract("MultiplyBy7"); expect( await context.viem().estimateGas({ diff --git a/test/suites/dev-frontier-template/test-eth-fee/test-eth-fee-history.ts b/test/suites/dev-frontier-template/test-eth-fee/test-eth-fee-history.ts index be3597379..48968ee87 100644 --- a/test/suites/dev-frontier-template/test-eth-fee/test-eth-fee-history.ts +++ b/test/suites/dev-frontier-template/test-eth-fee/test-eth-fee-history.ts @@ -8,7 +8,7 @@ import { getCompiled } from "../../../util/ethereum-contracts"; // We use ethers library in this test as apparently web3js's types are not fully EIP-1559 // compliant yet. describeSuite({ - id: "DF0401", + id: "DE0501", title: "Fee History", foundationMethods: "dev", testCases: ({ context, it }) => { @@ -47,22 +47,19 @@ describeSuite({ } function get_percentile(percentile: number, array: number[]) { - array.sort(function (a, b) { - return a - b; - }); + array.sort((a, b) => a - b); const index = (percentile / 100) * array.length - 1; - if (Math.floor(index) == index) { + if (Math.floor(index) === index) { return array[index]; - } else { - return Math.ceil((array[Math.floor(index)] + array[Math.ceil(index)]) / 2); } + return Math.ceil((array[Math.floor(index)] + array[Math.ceil(index)]) / 2); } it({ id: "T01", title: "result length should match spec", timeout: 30000, - test: async function () { + test: async () => { const block_count = 2; const reward_percentiles = [20, 50, 70]; const priority_fees = [1, 2, 3]; @@ -71,12 +68,16 @@ describeSuite({ const feeHistory = new Promise((resolve) => { const unwatch = context.viem("public").watchBlocks({ onBlock: async (block) => { - if (Number(block.number! - startingBlock) == block_count) { - const result = (await customWeb3Request(context.web3(), "eth_feeHistory", [ + if (Number(block.number - startingBlock) === block_count) { + const { result } = (await customWeb3Request(context.web3(), "eth_feeHistory", [ "0x2", "latest", reward_percentiles, - ])) as FeeHistory; + ])) as { + jsonrpc: string; + id: number; + result: FeeHistory; + }; unwatch(); resolve(result); } @@ -85,8 +86,7 @@ describeSuite({ }); await createBlocks(block_count, reward_percentiles, priority_fees, parseGwei("10").toString()); - - const feeResults = (await feeHistory).result; + const feeResults = await feeHistory; expect( feeResults.baseFeePerGas.length, "baseFeePerGas should always the requested block range + 1 (the next derived base fee)" @@ -110,7 +110,7 @@ describeSuite({ id: "T02", title: "should calculate percentiles", timeout: 60000, - test: async function () { + test: async () => { const max_fee_per_gas = parseGwei("10").toString(); const block_count = 11; const reward_percentiles = [20, 50, 70, 85, 100]; @@ -120,12 +120,16 @@ describeSuite({ const feeHistory = new Promise((resolve) => { const unwatch = context.viem("public").watchBlocks({ onBlock: async (block) => { - if (Number(block.number! - startingBlock) == block_count) { - const result = (await customWeb3Request(context.web3(), "eth_feeHistory", [ + if (Number(block.number - startingBlock) === block_count) { + const { result } = (await customWeb3Request(context.web3(), "eth_feeHistory", [ "0xA", "latest", reward_percentiles, - ])) as FeeHistory; + ])) as { + jsonrpc: string; + id: number; + result: FeeHistory; + }; unwatch(); resolve(result); @@ -136,7 +140,7 @@ describeSuite({ await createBlocks(block_count, reward_percentiles, priority_fees, max_fee_per_gas); - const feeResults = (await feeHistory).result; + const feeResults = await feeHistory; const localRewards = reward_percentiles .map((percentile) => get_percentile(percentile, priority_fees)) .map((reward) => numberToHex(reward)); diff --git a/test/suites/dev-frontier-template/test-eth-fee/test-eth-paysFee.ts b/test/suites/dev-frontier-template/test-eth-fee/test-eth-paysFee.ts index fa7655b64..e343684c9 100644 --- a/test/suites/dev-frontier-template/test-eth-fee/test-eth-paysFee.ts +++ b/test/suites/dev-frontier-template/test-eth-fee/test-eth-paysFee.ts @@ -4,18 +4,18 @@ import { BALTATHAR_ADDRESS, GLMR, createRawTransfer } from "@moonwall/util"; // We use ethers library in this test as apparently web3js's types are not fully EIP-1559 // compliant yet. describeSuite({ - id: "DF0302", + id: "DE0502", title: "Ethereum - PaysFee", foundationMethods: "dev", testCases: ({ context, it }) => { it({ - id: `T01`, - title: `should be false for successful ethereum transactions`, - test: async function () { + id: "T01", + title: "should be false for successful ethereum transactions", + test: async () => { const { result } = await context.createBlock(await createRawTransfer(context, BALTATHAR_ADDRESS, GLMR)); - const info = extractInfo(result!.events)!; - expect(info).to.not.be.empty; - expect(info.paysFee.isYes, "Transaction should be marked as paysFees == no").to.be.false; + const info = extractInfo(result?.events); + expect(info.isEmpty).toBe(false); + expect(info.paysFee.isYes, "Transaction should be marked as paysFees === no").to.be.false; }, }); }, diff --git a/test/suites/dev-frontier-template/test-eth-pool/test-eth-pool-discard.ts b/test/suites/dev-frontier-template/test-eth-pool/test-eth-pool-discard.ts index 4d8f779f7..84493c19a 100644 --- a/test/suites/dev-frontier-template/test-eth-pool/test-eth-pool-discard.ts +++ b/test/suites/dev-frontier-template/test-eth-pool/test-eth-pool-discard.ts @@ -2,14 +2,14 @@ import { describeSuite, expect } from "@moonwall/cli"; import { customWeb3Request } from "@moonwall/util"; describeSuite({ - id: "DF0501", + id: "DE0601", title: "Transaction Cost discards", foundationMethods: "dev", testCases: ({ context, it }) => { it({ id: "T01", title: "should take transaction cost into account and not submit it to the pool", - test: async function () { + test: async () => { // This is a contract deployment signed by Alith but that doesn't have a high enough // gaslimit. Since the standard helpers reject such transactions, we need to use // the customDevRpcRequest helper to send it directly to the node. diff --git a/test/suites/dev-frontier-template/test-eth-pool/test-eth-pool-resubmit.ts b/test/suites/dev-frontier-template/test-eth-pool/test-eth-pool-resubmit.ts index 15f4b84d4..75f6d4aa8 100644 --- a/test/suites/dev-frontier-template/test-eth-pool/test-eth-pool-resubmit.ts +++ b/test/suites/dev-frontier-template/test-eth-pool/test-eth-pool-resubmit.ts @@ -4,14 +4,14 @@ import { parseGwei } from "viem"; import { generatePrivateKey, privateKeyToAccount } from "viem/accounts"; describeSuite({ - id: "DF0502", + id: "DE0602", title: "Resubmit transations", foundationMethods: "dev", testCases: ({ context, it }) => { let randomAddress: `0x${string}`; let currentNonce: number; - beforeEach(async function () { + beforeEach(async () => { randomAddress = privateKeyToAccount(generatePrivateKey()).address; currentNonce = await context.viem("public").getTransactionCount({ address: ALITH_ADDRESS }); }); @@ -19,7 +19,7 @@ describeSuite({ it({ id: "T01", title: "should allow resubmitting with higher gas", - test: async function () { + test: async () => { await context.createBlock([ await createRawTransfer(context, randomAddress, 1, { nonce: currentNonce, @@ -38,7 +38,7 @@ describeSuite({ it({ id: "T02", title: "should ignore resubmitting with lower gas", - test: async function () { + test: async () => { await context.createBlock([ await createRawTransfer(context, randomAddress, 1, { nonce: currentNonce, @@ -57,7 +57,7 @@ describeSuite({ it({ id: "T03", title: "should allow cancelling transaction", - test: async function () { + test: async () => { // gas price should trump limit await context.createBlock([ await createRawTransfer(context, randomAddress, 1, { @@ -80,7 +80,7 @@ describeSuite({ it({ id: "T04", title: "should pick highest gas price from many transactions", - test: async function () { + test: async () => { await sendRawTransaction( context, await createRawTransfer(context, randomAddress, 2, { diff --git a/test/suites/dev-frontier-template/test-eth-rpc/test-eth-rpc-constants.ts b/test/suites/dev-frontier-template/test-eth-rpc/test-eth-rpc-constants.ts index 698238822..2cf469acb 100644 --- a/test/suites/dev-frontier-template/test-eth-rpc/test-eth-rpc-constants.ts +++ b/test/suites/dev-frontier-template/test-eth-rpc/test-eth-rpc-constants.ts @@ -2,14 +2,14 @@ import { describeSuite, expect } from "@moonwall/cli"; import { customWeb3Request } from "@moonwall/util"; describeSuite({ - id: "DF0601", + id: "DE0701", title: "RPC Constants", foundationMethods: "dev", testCases: ({ it, context }) => { it({ id: "T01", title: "should have 0 hashrate", - test: async function () { + test: async () => { expect(BigInt((await customWeb3Request(context.web3(), "eth_hashrate", [])).result)).toBe(0n); }, }); @@ -17,7 +17,7 @@ describeSuite({ it({ id: "T02", title: "should have chainId 1281", - test: async function () { + test: async () => { expect(BigInt((await customWeb3Request(context.web3(), "eth_chainId", [])).result)).toBe(1281n); }, }); @@ -25,7 +25,7 @@ describeSuite({ it({ id: "T03", title: "should have no accounts", - test: async function () { + test: async () => { expect((await customWeb3Request(context.web3(), "eth_accounts", [])).result).toStrictEqual([]); }, }); @@ -33,7 +33,7 @@ describeSuite({ it({ id: "T04", title: "block author should be 0x0000000000000000000000000000000000000000", - test: async function () { + test: async () => { expect((await customWeb3Request(context.web3(), "eth_coinbase", [])).result).toBe( "0x0000000000000000000000000000000000000000" ); diff --git a/test/suites/dev-frontier-template/test-eth-rpc/test-eth-rpc-index.ts b/test/suites/dev-frontier-template/test-eth-rpc/test-eth-rpc-index.ts index e5d695398..c52d0fcbc 100644 --- a/test/suites/dev-frontier-template/test-eth-rpc/test-eth-rpc-index.ts +++ b/test/suites/dev-frontier-template/test-eth-rpc/test-eth-rpc-index.ts @@ -2,7 +2,7 @@ import { describeSuite, beforeAll, expect } from "@moonwall/cli"; import { BALTATHAR_ADDRESS, createRawTransfer } from "@moonwall/util"; describeSuite({ - id: "DF0602", + id: "DE0702", title: "Transaction Index", foundationMethods: "dev", testCases: ({ context, it }) => { @@ -13,7 +13,7 @@ describeSuite({ it({ id: "T01", title: "should get transaction by index", - test: async function () { + test: async () => { const block = 1n; const index = 0; const result = await context.viem("public").getTransaction({ blockNumber: block, index }); @@ -24,7 +24,7 @@ describeSuite({ it({ id: "T02", title: "should return out of bounds message", - test: async function () { + test: async () => { const block = 0n; const index = 0; diff --git a/test/suites/dev-frontier-template/test-eth-rpc/test-eth-rpc-log-filtering.ts b/test/suites/dev-frontier-template/test-eth-rpc/test-eth-rpc-log-filtering.ts index 01235c6f8..7ab17ec29 100644 --- a/test/suites/dev-frontier-template/test-eth-rpc/test-eth-rpc-log-filtering.ts +++ b/test/suites/dev-frontier-template/test-eth-rpc/test-eth-rpc-log-filtering.ts @@ -1,9 +1,9 @@ import { describeSuite, expect, beforeAll, deployCreateCompiledContract } from "@moonwall/cli"; -import { TransactionReceipt } from "viem"; +import type { TransactionReceipt } from "viem"; import { customWeb3Request } from "@moonwall/util"; describeSuite({ - id: "DF0603", + id: "DE0703", title: "Ethereum RPC - Filtering non-matching logs", foundationMethods: "dev", testCases: ({ context, it }) => { @@ -49,11 +49,13 @@ describeSuite({ it({ id: "T01", title: "EthFilterApi::getFilterLogs - should filter out non-matching cases.", - test: async function () { - let create_filter; + test: async () => { + let create_filter: any; for (const item of nonMatchingCases) { create_filter = await customWeb3Request(context.web3(), "eth_newFilter", [item]); - const poll = await customWeb3Request(context.web3(), "eth_getFilterLogs", [create_filter.result]); + const poll = (await customWeb3Request(context.web3(), "eth_getFilterLogs", [ + create_filter.result, + ])) as any; expect(poll.result.length).to.be.eq(0); } }, @@ -61,9 +63,9 @@ describeSuite({ it({ id: "T02", title: "EthApi::getLogs - should filter out non-matching cases.", - test: async function () { + test: async () => { for (const item of nonMatchingCases) { - const request = await customWeb3Request(context.web3(), "eth_getLogs", [item]); + const request = (await customWeb3Request(context.web3(), "eth_getLogs", [item])) as any; expect(request.result.length).to.be.eq(0); } }, diff --git a/test/suites/dev-frontier-template/test-eth-tx/test-eth-tx-nonce.ts b/test/suites/dev-frontier-template/test-eth-tx/test-eth-tx-nonce.ts index bc3b41369..a8f1cbc47 100644 --- a/test/suites/dev-frontier-template/test-eth-tx/test-eth-tx-nonce.ts +++ b/test/suites/dev-frontier-template/test-eth-tx/test-eth-tx-nonce.ts @@ -8,14 +8,14 @@ import { } from "@moonwall/util"; describeSuite({ - id: "DF0701", + id: "DE0801", title: "Ethereum Transaction - Nonce", foundationMethods: "dev", testCases: ({ context, it }) => { it({ id: "T01", title: "should be at 0 before using it", - test: async function () { + test: async () => { expect(await context.viem("public").getTransactionCount({ address: BALTATHAR_ADDRESS })).toBe(0); }, }); @@ -23,7 +23,7 @@ describeSuite({ it({ id: "T02", title: "should be at 0 for genesis account", - test: async function () { + test: async () => { expect(await context.viem("public").getTransactionCount({ address: ALITH_ADDRESS })).toBe(0); }, }); @@ -31,7 +31,7 @@ describeSuite({ it({ id: "T03", title: "should stay at 0 before block is created", - test: async function () { + test: async () => { await customWeb3Request(context.web3(), "eth_sendRawTransaction", [ await createRawTransfer(context, ALITH_ADDRESS, 512), ]); @@ -44,7 +44,7 @@ describeSuite({ it({ id: "T04", title: "should stay at previous before block is created", - test: async function () { + test: async () => { const blockNumber = await context.viem("public").getBlockNumber(); const nonce = await context.viem("public").getTransactionCount({ address: ALITH_ADDRESS }); await context.createBlock(await createRawTransfer(context, ALITH_ADDRESS, 512)); @@ -58,7 +58,7 @@ describeSuite({ it({ id: "T05", title: "pending transaction nonce", - test: async function () { + test: async () => { const nonce = await context.viem("public").getTransactionCount({ address: ALITH_ADDRESS }); await customWeb3Request(context.web3(), "eth_sendRawTransaction", [ @@ -90,7 +90,7 @@ describeSuite({ it({ id: "T06", title: "transferring Nonce", - test: async function () { + test: async () => { const nonce = await context.viem("public").getTransactionCount({ address: ALITH_ADDRESS }); await context.createBlock([await createRawTransfer(context, BALTATHAR_ADDRESS, 512)]); diff --git a/test/suites/dev-frontier-template/test-evm/test-evm-maintenance-mode.ts b/test/suites/dev-frontier-template/test-evm/test-evm-maintenance-mode.ts index b82b64d0c..7adeb867d 100644 --- a/test/suites/dev-frontier-template/test-evm/test-evm-maintenance-mode.ts +++ b/test/suites/dev-frontier-template/test-evm/test-evm-maintenance-mode.ts @@ -5,7 +5,7 @@ import { ALITH_ADDRESS, DEFAULT_GENESIS_BALANCE, BALTATHAR_ADDRESS, baltathar, a // A call from root (sudo) can make a transfer directly in pallet_evm // A signed call cannot make a transfer directly in pallet_evm describeSuite({ - id: "DF0801", + id: "DE0901", title: "Pallet EVM - maintenance mode", foundationMethods: "dev", testCases: ({ context, it }) => { @@ -15,7 +15,7 @@ describeSuite({ const events = await context.polkadotJs().query.system.events(); const ev1 = events.filter((a) => { - return a.event.method == "EnteredMaintenanceMode"; + return a.event.method === "EnteredMaintenanceMode"; }); expect(ev1.length).to.be.equal(1); @@ -26,7 +26,7 @@ describeSuite({ it({ id: "T01", title: "should fail without sudo", - test: async function () { + test: async () => { const enabled = (await context.polkadotJs().query.maintenanceMode.maintenanceMode()).toJSON(); expect(enabled).to.be.true; @@ -56,7 +56,7 @@ describeSuite({ it({ id: "T02", title: "should succeed with sudo", - test: async function () { + test: async () => { const enabled = (await context.polkadotJs().query.maintenanceMode.maintenanceMode()).toJSON(); expect(enabled).to.be.true; @@ -82,7 +82,7 @@ describeSuite({ expect( result?.events.find( - ({ event: { section, method } }) => section == "system" && method == "ExtrinsicSuccess" + ({ event: { section, method } }) => section === "system" && method === "ExtrinsicSuccess" ) ).to.exist; expect(await context.viem("public").getBalance({ address: baltathar.address })).to.equal( diff --git a/test/suites/dev-frontier-template/test-evm/test-evm-rpc-block-author.ts b/test/suites/dev-frontier-template/test-evm/test-evm-rpc-block-author.ts index c179420c4..4fad10529 100644 --- a/test/suites/dev-frontier-template/test-evm/test-evm-rpc-block-author.ts +++ b/test/suites/dev-frontier-template/test-evm/test-evm-rpc-block-author.ts @@ -2,14 +2,14 @@ import { expect, describeSuite } from "@moonwall/cli"; import { customWeb3Request } from "@moonwall/util"; describeSuite({ - id: "DF0802", + id: "DE0902", title: "Pallet EVM - RPC block author", foundationMethods: "dev", testCases: ({ context, it }) => { it({ id: "T01", title: "should return correct author", - test: async function () { + test: async () => { await context.createBlock(); const author = await context.polkadotJs().query.authorInherent.author(); diff --git a/test/suites/dev-frontier-template/test-evm/test-evm-transfer-origints.ts b/test/suites/dev-frontier-template/test-evm/test-evm-transfer-origints.ts index 71eeed120..634ed079f 100644 --- a/test/suites/dev-frontier-template/test-evm/test-evm-transfer-origints.ts +++ b/test/suites/dev-frontier-template/test-evm/test-evm-transfer-origints.ts @@ -4,14 +4,14 @@ import { ALITH_ADDRESS, DEFAULT_GENESIS_BALANCE, BALTATHAR_ADDRESS, baltathar, a // A call from root (sudo) can make a transfer directly in pallet_evm // A signed call cannot make a transfer directly in pallet_evm describeSuite({ - id: "DF0803", + id: "DE0903", title: "Pallet EVM - call", foundationMethods: "dev", testCases: ({ context, it }) => { it({ id: "T01", title: "should fail without sudo", - test: async function () { + test: async () => { const tx = context .polkadotJs() .tx.evm.call( @@ -38,7 +38,7 @@ describeSuite({ it({ id: "T02", title: "should succeed with sudo", - test: async function () { + test: async () => { const { result } = await context.createBlock( context .polkadotJs() @@ -61,7 +61,7 @@ describeSuite({ expect( result?.events.find( - ({ event: { section, method } }) => section == "system" && method == "ExtrinsicSuccess" + ({ event: { section, method } }) => section === "system" && method === "ExtrinsicSuccess" ) ).to.exist; expect(await context.viem("public").getBalance({ address: baltathar.address })).to.equal( diff --git a/test/suites/dev-frontier-template/test-frnt-rpc/test-frnt-rpc.ts b/test/suites/dev-frontier-template/test-frnt-rpc/test-frnt-rpc.ts index ee50b2893..a5fe2591e 100644 --- a/test/suites/dev-frontier-template/test-frnt-rpc/test-frnt-rpc.ts +++ b/test/suites/dev-frontier-template/test-frnt-rpc/test-frnt-rpc.ts @@ -4,14 +4,14 @@ import { BALTATHAR_ADDRESS, createViemTransaction } from "@moonwall/util"; const DEFAULT_TXN_MAX_BASE_FEE = 10_000_000_000; describeSuite({ - id: "DF0901", + id: "DE1001", title: "Frontier RPC Methods - frnt_isBlockFinalized ", foundationMethods: "dev", testCases: ({ context, it }) => { it({ id: "T01", title: "should return as finalized when true", - test: async function () { + test: async () => { const blockHash = (await context.createBlock([], { finalize: true })).block.hash; const resp = await customDevRpcRequest("frnt_isBlockFinalized", [blockHash]); expect(resp, "Block finalization status mismatch").toBe(true); @@ -21,7 +21,7 @@ describeSuite({ it({ id: "T02", title: "should return as unfinalized when false", - test: async function () { + test: async () => { const blockHash = (await context.createBlock([], { finalize: false })).block.hash; const resp = await customDevRpcRequest("frnt_isBlockFinalized", [blockHash]); expect(resp, "Block finalization status mismatch").toBe(false); @@ -31,7 +31,7 @@ describeSuite({ it({ id: "T03", title: "should return as unfinalized when block not found", - test: async function () { + test: async () => { const blockHash = "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"; const resp = await customDevRpcRequest("frnt_isBlockFinalized", [blockHash]); expect(resp, "Block finalization status mismatch").toBe(false); @@ -41,7 +41,7 @@ describeSuite({ it({ id: "T04", title: "should return as finalized when new block is true", - test: async function () { + test: async () => { const blockHash = (await context.createBlock([], { finalize: false })).block.hash; await context.createBlock([], { finalize: true }); const resp = await customDevRpcRequest("frnt_isBlockFinalized", [blockHash]); @@ -52,7 +52,7 @@ describeSuite({ it({ id: "T05", title: "should return as finalized when new block reorg happens", - test: async function () { + test: async () => { const blockHash = (await context.createBlock([], { finalize: false })).block.hash; await context.createBlock([], { finalize: false }); await context.createBlock([], { finalize: true, parentHash: blockHash }); @@ -65,7 +65,7 @@ describeSuite({ it({ id: "T06", title: "should return as finalized when true", - test: async function () { + test: async () => { await context.createBlock( await createViemTransaction(context, { to: BALTATHAR_ADDRESS, @@ -85,7 +85,7 @@ describeSuite({ it({ id: "T07", title: "should return as unfinalized when false", - test: async function () { + test: async () => { await context.createBlock( await createViemTransaction(context, { to: BALTATHAR_ADDRESS, @@ -105,7 +105,7 @@ describeSuite({ it({ id: "T08", title: "should return as unfinalized when txn not found", - test: async function () { + test: async () => { const txnHash = "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"; const resp = await customDevRpcRequest("frnt_isTxFinalized", [txnHash]); expect(resp, "Transaction finalization status mismatch").toBe(false); @@ -115,7 +115,7 @@ describeSuite({ it({ id: "T09", title: "should return as finalized when new block is true", - test: async function () { + test: async () => { await context.createBlock( await createViemTransaction(context, { to: BALTATHAR_ADDRESS, @@ -135,7 +135,7 @@ describeSuite({ it({ id: "T10", title: "should return as finalized when new block reorg happens", - test: async function () { + test: async () => { const blockHash = ( await context.createBlock( await createViemTransaction(context, { diff --git a/test/suites/dev-frontier-template/test-pallet-cc-authorities-noting/test-orchestrator-para-id.ts b/test/suites/dev-frontier-template/test-pallet-cc-authorities-noting/test-orchestrator-para-id.ts index 6739ceb20..c0981aa7c 100644 --- a/test/suites/dev-frontier-template/test-pallet-cc-authorities-noting/test-orchestrator-para-id.ts +++ b/test/suites/dev-frontier-template/test-pallet-cc-authorities-noting/test-orchestrator-para-id.ts @@ -1,14 +1,14 @@ import { expect, describeSuite } from "@moonwall/cli"; describeSuite({ - id: "DF1001", + id: "DE1101", title: "AuthoritiesNoting - OrchestratorParaId", foundationMethods: "dev", testCases: ({ context, it }) => { it({ id: "T01", title: "should not set storage item if not sudo", - test: async function () { + test: async () => { const orchestratorParaId = await context.polkadotJs().query.authoritiesNoting.orchestratorParaId(); expect(orchestratorParaId.toString()).toBe("1000"); @@ -27,7 +27,7 @@ describeSuite({ it({ id: "T02", title: "should set storage item via sudo", - test: async function () { + test: async () => { const orchestratorParaId = await context.polkadotJs().query.authoritiesNoting.orchestratorParaId(); expect(orchestratorParaId.toString()).toBe("1000"); diff --git a/test/suites/dev-frontier-template/test-pov/test-evm-over-pov.ts b/test/suites/dev-frontier-template/test-pov/test-evm-over-pov.ts index ad37f4b35..16bcaeddc 100644 --- a/test/suites/dev-frontier-template/test-pov/test-evm-over-pov.ts +++ b/test/suites/dev-frontier-template/test-pov/test-evm-over-pov.ts @@ -1,11 +1,11 @@ import "@tanssi/api-augment"; import { beforeAll, deployCreateCompiledContract, describeSuite, expect } from "@moonwall/cli"; import { ALITH_ADDRESS, createEthersTransaction } from "@moonwall/util"; -import { Abi, encodeFunctionData } from "viem"; -import { expectEVMResult, HeavyContract, deployHeavyContracts } from "../../../helpers"; +import { type Abi, encodeFunctionData } from "viem"; +import { expectEVMResult, type HeavyContract, deployHeavyContracts } from "../../../helpers"; describeSuite({ - id: "DF1301", + id: "DE1201", title: "PoV controlled by gasLimit", foundationMethods: "dev", testCases: ({ context, it, log }) => { @@ -34,7 +34,7 @@ describeSuite({ it({ id: "T01", title: "should allow to include transaction with estimate gas to cover PoV", - test: async function () { + test: async () => { const gasEstimate = await context.viem().estimateGas({ account: ALITH_ADDRESS, to: proxyAddress, @@ -61,7 +61,7 @@ describeSuite({ it({ id: "T02", title: "should allow to include transaction with enough gas limit to cover PoV", - test: async function () { + test: async () => { const rawSigned = await createEthersTransaction(context, { to: proxyAddress, data: callData, @@ -81,7 +81,7 @@ describeSuite({ it({ id: "T03", title: "should fail to include transaction without enough gas limit to cover PoV", - test: async function () { + test: async () => { // This execution uses only < 100k Gas in cpu execute but require 2M Gas for PoV. // We are providing only 1M Gas, so it should fail. const rawSigned = await createEthersTransaction(context, { @@ -100,7 +100,7 @@ describeSuite({ expect(block.proofSize).to.be.at.least(30_000); expect(block.proofSize).to.be.at.most(50_000); expect(result?.successful).to.equal(true); - expectEVMResult(result!.events, "Error", "OutOfGas"); + expectEVMResult(result?.events, "Error", "OutOfGas"); }, }); }, diff --git a/test/suites/dev-frontier-template/test-pov/test-evm-over-pov2.ts b/test/suites/dev-frontier-template/test-pov/test-evm-over-pov2.ts index 9e0b3dae7..6a7171d39 100644 --- a/test/suites/dev-frontier-template/test-pov/test-evm-over-pov2.ts +++ b/test/suites/dev-frontier-template/test-pov/test-evm-over-pov2.ts @@ -1,11 +1,11 @@ import "@tanssi/api-augment"; import { beforeAll, deployCreateCompiledContract, describeSuite, expect } from "@moonwall/cli"; import { MAX_ETH_POV_PER_TX, createEthersTransaction } from "@moonwall/util"; -import { Abi, encodeFunctionData } from "viem"; -import { HeavyContract, deployHeavyContracts } from "../../../helpers"; +import { type Abi, encodeFunctionData } from "viem"; +import { type HeavyContract, deployHeavyContracts } from "../../../helpers"; describeSuite({ - id: "DF1302", + id: "DE1202", title: "PoV Limit (3.5Mb in Dev)", foundationMethods: "dev", testCases: ({ context, it, log }) => { @@ -31,7 +31,7 @@ describeSuite({ it({ id: "T01", title: "should allow to produce block just under the PoV Limit", - test: async function () { + test: async () => { const calculatedMax = MAX_ETH_POV_PER_TX / 24_000n - 1n; const callData = encodeFunctionData({ @@ -59,7 +59,7 @@ describeSuite({ it({ id: "T02", title: "should prevent a transaction reaching just over the PoV", - test: async function () { + test: async () => { const calculatedMax = MAX_ETH_POV_PER_TX / 24_000n; const callData = encodeFunctionData({ diff --git a/test/suites/dev-frontier-template/test-pov/test-precompile-over-pov.ts b/test/suites/dev-frontier-template/test-pov/test-precompile-over-pov.ts index dd04a3e12..97222ba71 100644 --- a/test/suites/dev-frontier-template/test-pov/test-precompile-over-pov.ts +++ b/test/suites/dev-frontier-template/test-pov/test-precompile-over-pov.ts @@ -1,14 +1,14 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll, deployCreateCompiledContract, fetchCompiledContract } from "@moonwall/cli"; -import { HeavyContract, deployHeavyContracts, expectEVMResult } from "../../../helpers"; +import { type HeavyContract, deployHeavyContracts, expectEVMResult } from "../../../helpers"; -import { Abi, encodeFunctionData } from "viem"; +import { type Abi, encodeFunctionData } from "viem"; import { ALITH_ADDRESS, createEthersTransaction } from "@moonwall/util"; const PRECOMPILE_BATCH_ADDRESS = "0x0000000000000000000000000000000000000801"; describeSuite({ - id: "DF1303", + id: "DE1203", title: "PoV precompile test - gasLimit", foundationMethods: "dev", testCases: ({ context, it }) => { @@ -20,7 +20,7 @@ describeSuite({ let proxyAddress: `0x${string}`; let callData: `0x${string}`; - beforeAll(async function () { + beforeAll(async () => { const { contractAddress: contractAdd1, abi } = await deployCreateCompiledContract(context, "CallForwarder"); proxyAddress = contractAdd1; proxyAbi = abi; @@ -50,7 +50,7 @@ describeSuite({ it({ id: "T01", title: "gas cost should have increased with POV", - test: async function () { + test: async () => { // Previously this tx cost was ~500K gas -> now it is about 5M due to POV. // We pass 1M, so it should fail. const rawSigned = await createEthersTransaction(context, { @@ -68,14 +68,14 @@ describeSuite({ expect(block.proofSize).to.be.at.least(34_000); expect(block.proofSize).to.be.at.most(70_000); expect(result?.successful).to.equal(true); - expectEVMResult(result!.events, "Error", "OutOfGas"); + expectEVMResult(result?.events, "Error", "OutOfGas"); }, }); it({ id: "T02", title: "should be able to create a block using the estimated amount of gas", - test: async function () { + test: async () => { const gasEstimate = await context.viem().estimateGas({ account: ALITH_ADDRESS, to: PRECOMPILE_BATCH_ADDRESS, @@ -93,14 +93,14 @@ describeSuite({ expect(block.proofSize).to.be.at.least(EXPECTED_POV_ROUGH / 1.3); expect(block.proofSize).to.be.at.most(EXPECTED_POV_ROUGH * 1.3); expect(result?.successful).to.equal(true); - expectEVMResult(result!.events, "Succeed", "Returned"); + expectEVMResult(result?.events, "Succeed", "Returned"); }, }); it({ id: "T03", title: "should allow to call a precompile tx with enough gas limit to cover PoV", - test: async function () { + test: async () => { const rawSigned = await createEthersTransaction(context, { to: PRECOMPILE_BATCH_ADDRESS, data: callData, @@ -112,7 +112,7 @@ describeSuite({ expect(block.proofSize).to.be.at.least(EXPECTED_POV_ROUGH / 1.3); expect(block.proofSize).to.be.at.most(EXPECTED_POV_ROUGH * 1.3); expect(result?.successful).to.equal(true); - expectEVMResult(result!.events, "Succeed", "Returned"); + expectEVMResult(result?.events, "Succeed", "Returned"); }, }); }, diff --git a/test/suites/dev-frontier-template/test-pov/test-precompile-over-pov2.ts b/test/suites/dev-frontier-template/test-pov/test-precompile-over-pov2.ts index acc5c2f13..59b31066a 100644 --- a/test/suites/dev-frontier-template/test-pov/test-precompile-over-pov2.ts +++ b/test/suites/dev-frontier-template/test-pov/test-precompile-over-pov2.ts @@ -1,13 +1,13 @@ import "@tanssi/api-augment"; import { beforeAll, deployCreateCompiledContract, describeSuite, expect, fetchCompiledContract } from "@moonwall/cli"; import { MAX_ETH_POV_PER_TX, createEthersTransaction } from "@moonwall/util"; -import { Abi, encodeFunctionData } from "viem"; -import { HeavyContract, deployHeavyContracts } from "../../../helpers"; +import { type Abi, encodeFunctionData } from "viem"; +import { type HeavyContract, deployHeavyContracts } from "../../../helpers"; const PRECOMPILE_BATCH_ADDRESS = "0x0000000000000000000000000000000000000801"; describeSuite({ - id: "DF1304", + id: "DE1204", title: "PoV precompile test - PoV Limit (3.5Mb in Dev)", foundationMethods: "dev", testCases: ({ context, it }) => { @@ -17,7 +17,7 @@ describeSuite({ let proxyAddress: `0x${string}`; let emptyBlockProofSize: bigint; - beforeAll(async function () { + beforeAll(async () => { // Create an empty block to estimate empty block proof size const { block } = await context.createBlock(); // Empty blocks usually do not exceed 50kb @@ -35,7 +35,7 @@ describeSuite({ it({ id: "T01", title: "should allow to produce block under the PoV Limit with precompile tx", - test: async function () { + test: async () => { const maxContracts = MAX_ETH_POV_PER_TX / 24_000n - 1n; const callData = encodeFunctionData({ @@ -71,7 +71,7 @@ describeSuite({ it({ id: "T0", title: "should prevent a tx reaching just over the PoV with a precompile tx", - test: async function () { + test: async () => { const maxContracts = MAX_ETH_POV_PER_TX / 24_000n; const callData = encodeFunctionData({ diff --git a/test/suites/dev-frontier-template/test-precompiles/test-precompile-assets-erc20-1.ts b/test/suites/dev-frontier-template/test-precompiles/test-precompile-assets-erc20-1.ts index 28ee6d57a..7eef18717 100644 --- a/test/suites/dev-frontier-template/test-precompiles/test-precompile-assets-erc20-1.ts +++ b/test/suites/dev-frontier-template/test-precompiles/test-precompile-assets-erc20-1.ts @@ -1,13 +1,13 @@ import "@moonbeam-network/api-augment"; import { beforeAll, deployCreateCompiledContract, describeSuite, expect } from "@moonwall/cli"; import { ALITH_ADDRESS, alith } from "@moonwall/util"; -import { u16 } from "@polkadot/types-codec"; -import { Abi } from "viem"; +import type { u16 } from "@polkadot/types-codec"; +import type { Abi } from "viem"; import { mockAssetCreation, relayAssetMetadata } from "../../../helpers/assets.ts"; import { RELAY_SOURCE_LOCATION } from "../../../util/constants.ts"; describeSuite({ - id: "DF1101", + id: "DE1301", title: "Precompiles - Assets-ERC20", foundationMethods: "dev", testCases: ({ context, it }) => { @@ -43,7 +43,7 @@ describeSuite({ it({ id: "T01", title: "allows to call name", - test: async function () { + test: async () => { const name = await context.viem().readContract({ address: ADDRESS_ERC20, abi: erc20Abi, @@ -57,7 +57,7 @@ describeSuite({ it({ id: "T02", title: "allows to call name via wrapper", - test: async function () { + test: async () => { const name = await context.viem().readContract({ address: contractInstanceAddress, abi: erc20Abi, @@ -71,7 +71,7 @@ describeSuite({ it({ id: "T03", title: "allows to call symbol", - test: async function () { + test: async () => { const symbol = await context.viem().readContract({ address: ADDRESS_ERC20, abi: erc20Abi, @@ -84,7 +84,7 @@ describeSuite({ it({ id: "T04", title: "allows to call symbol via wrapper", - test: async function () { + test: async () => { const symbol = await context.viem().readContract({ address: contractInstanceAddress, abi: erc20Abi, @@ -97,7 +97,7 @@ describeSuite({ it({ id: "T05", title: "allows to call decimals", - test: async function () { + test: async () => { const decimals = await context.viem().readContract({ address: ADDRESS_ERC20, abi: erc20Abi, @@ -110,7 +110,7 @@ describeSuite({ it({ id: "T06", title: "allows to call decimals via wrapper", - test: async function () { + test: async () => { const decimals = await context.viem().readContract({ address: contractInstanceAddress, abi: erc20Abi, @@ -123,7 +123,7 @@ describeSuite({ it({ id: "T07", title: "allows to call getBalance", - test: async function () { + test: async () => { const data = await context.viem().readContract({ address: ADDRESS_ERC20, abi: erc20Abi, @@ -137,7 +137,7 @@ describeSuite({ it({ id: "T08", title: "allows to call getBalance via wrapper", - test: async function () { + test: async () => { const data = await context.viem().readContract({ address: contractInstanceAddress, abi: erc20Abi, @@ -151,7 +151,7 @@ describeSuite({ it({ id: "T09", title: "allows to call totalSupply", - test: async function () { + test: async () => { const data = await context.viem().readContract({ address: ADDRESS_ERC20, abi: erc20Abi, @@ -164,7 +164,7 @@ describeSuite({ it({ id: "T10", title: "allows to call totalSupply via wrapper", - test: async function () { + test: async () => { const data = await context.viem().readContract({ address: contractInstanceAddress, abi: erc20Abi, diff --git a/test/suites/dev-frontier-template/test-precompiles/test-precompile-assets-erc20-2.ts b/test/suites/dev-frontier-template/test-precompiles/test-precompile-assets-erc20-2.ts index fb9e13603..1ea14324e 100644 --- a/test/suites/dev-frontier-template/test-precompiles/test-precompile-assets-erc20-2.ts +++ b/test/suites/dev-frontier-template/test-precompiles/test-precompile-assets-erc20-2.ts @@ -1,12 +1,12 @@ import { beforeAll, deployCreateCompiledContract, describeSuite, expect } from "@moonwall/cli"; import { ALITH_ADDRESS, BALTATHAR_ADDRESS, alith, createEthersTransaction } from "@moonwall/util"; -import { u16 } from "@polkadot/types-codec"; +import type { u16 } from "@polkadot/types-codec"; import { mockAssetCreation, RELAY_SOURCE_LOCATION, relayAssetMetadata } from "../../../helpers/assets"; -import { Abi, encodeFunctionData } from "viem"; +import { type Abi, encodeFunctionData } from "viem"; describeSuite({ - id: "DF1102", + id: "DE1302", title: "Precompiles - Assets-ERC20", foundationMethods: "dev", testCases: ({ context, it }) => { @@ -49,7 +49,7 @@ describeSuite({ it({ id: "T01", title: "allows to approve transfers, and allowance matches", - test: async function () { + test: async () => { const rawSigned = await createEthersTransaction(context, { to: ADDRESS_ERC20, data: encodeFunctionData({ @@ -79,7 +79,7 @@ describeSuite({ it({ id: "T02", title: "should gather the allowance", - test: async function () { + test: async () => { const data = await context.viem().readContract({ address: ADDRESS_ERC20, abi: erc20Abi, diff --git a/test/suites/dev-frontier-template/test-precompiles/test-precompile-assets-erc20-3.ts b/test/suites/dev-frontier-template/test-precompiles/test-precompile-assets-erc20-3.ts index ddfc9cff5..0dcb063e4 100644 --- a/test/suites/dev-frontier-template/test-precompiles/test-precompile-assets-erc20-3.ts +++ b/test/suites/dev-frontier-template/test-precompiles/test-precompile-assets-erc20-3.ts @@ -8,13 +8,13 @@ import { createEthersTransaction, createViemTransaction, } from "@moonwall/util"; -import { u16 } from "@polkadot/types-codec"; +import type { u16 } from "@polkadot/types-codec"; import { mockAssetCreation, RELAY_SOURCE_LOCATION, relayAssetMetadata } from "../../../helpers/assets"; -import { Abi, encodeFunctionData } from "viem"; +import { type Abi, encodeFunctionData } from "viem"; describeSuite({ - id: "DF1103", + id: "DE1303", title: "Precompiles - Assets-ERC20", foundationMethods: "dev", testCases: ({ context, it }) => { @@ -57,7 +57,7 @@ describeSuite({ it({ id: "T01", title: "allows to approve transfer and use transferFrom", - test: async function () { + test: async () => { const rawSigned = await createEthersTransaction(context, { to: ADDRESS_ERC20, data: encodeFunctionData({ diff --git a/test/suites/dev-frontier-template/test-precompiles/test-precompile-assets-erc20-4.ts b/test/suites/dev-frontier-template/test-precompiles/test-precompile-assets-erc20-4.ts index 533924021..408415c12 100644 --- a/test/suites/dev-frontier-template/test-precompiles/test-precompile-assets-erc20-4.ts +++ b/test/suites/dev-frontier-template/test-precompiles/test-precompile-assets-erc20-4.ts @@ -1,11 +1,11 @@ import { beforeAll, deployCreateCompiledContract, describeSuite, expect } from "@moonwall/cli"; import { ALITH_ADDRESS, BALTATHAR_ADDRESS, alith, createViemTransaction } from "@moonwall/util"; -import { u16 } from "@polkadot/types-codec"; -import { Abi, encodeFunctionData } from "viem"; +import type { u16 } from "@polkadot/types-codec"; +import { type Abi, encodeFunctionData } from "viem"; import { mockAssetCreation, RELAY_SOURCE_LOCATION, relayAssetMetadata } from "../../../helpers/assets"; describeSuite({ - id: "DF1104", + id: "DE1304", title: "Precompiles - Assets-ERC20", foundationMethods: "dev", testCases: ({ context, it }) => { @@ -38,7 +38,7 @@ describeSuite({ it({ id: "T01", title: "allows to transfer", - test: async function () { + test: async () => { const { result } = await context.createBlock( createViemTransaction(context, { to: ADDRESS_ERC20, diff --git a/test/suites/dev-frontier-template/test-precompiles/test-precompile-assets-erc20-5.ts b/test/suites/dev-frontier-template/test-precompiles/test-precompile-assets-erc20-5.ts index 6e37fcf2f..4473b116a 100644 --- a/test/suites/dev-frontier-template/test-precompiles/test-precompile-assets-erc20-5.ts +++ b/test/suites/dev-frontier-template/test-precompiles/test-precompile-assets-erc20-5.ts @@ -7,12 +7,12 @@ import { alith, createViemTransaction, } from "@moonwall/util"; -import { u16 } from "@polkadot/types-codec"; -import { Abi, encodeFunctionData } from "viem"; +import type { u16 } from "@polkadot/types-codec"; +import { type Abi, encodeFunctionData } from "viem"; import { mockAssetCreation, RELAY_SOURCE_LOCATION, relayAssetMetadata } from "../../../helpers/assets"; describeSuite({ - id: "DF1105", + id: "DE1305", title: "Precompiles - Assets-ERC20", foundationMethods: "dev", testCases: ({ context, it }) => { @@ -69,7 +69,7 @@ describeSuite({ it({ id: "T01", title: "allows to approve transfer and use transferFrom from contract calls", - test: async function () { + test: async () => { // Create approval const blockAlith = await context.createBlock( createViemTransaction(context, { diff --git a/test/suites/dev-frontier-template/test-precompiles/test-precompile-assets-erc20-6.ts b/test/suites/dev-frontier-template/test-precompiles/test-precompile-assets-erc20-6.ts index 25c7dd6d6..cfcffbaa3 100644 --- a/test/suites/dev-frontier-template/test-precompiles/test-precompile-assets-erc20-6.ts +++ b/test/suites/dev-frontier-template/test-precompiles/test-precompile-assets-erc20-6.ts @@ -1,12 +1,12 @@ import "@moonbeam-network/api-augment"; import { beforeAll, deployCreateCompiledContract, describeSuite, expect } from "@moonwall/cli"; import { ALITH_ADDRESS, BALTATHAR_PRIVATE_KEY, CHARLETH_ADDRESS, alith, createViemTransaction } from "@moonwall/util"; -import { u16 } from "@polkadot/types-codec"; -import { Abi, encodeFunctionData } from "viem"; +import type { u16 } from "@polkadot/types-codec"; +import { type Abi, encodeFunctionData } from "viem"; import { mockAssetCreation, RELAY_SOURCE_LOCATION, relayAssetMetadata } from "../../../helpers/assets"; describeSuite({ - id: "DF1106", + id: "DE1306", title: "Precompiles - Assets-ERC20", foundationMethods: "dev", testCases: ({ context, it }) => { @@ -52,7 +52,7 @@ describeSuite({ it({ id: "T01", title: "Bob approves contract and use transferFrom from contract calls", - test: async function () { + test: async () => { const tx = await createViemTransaction(context, { to: ADDRESS_ERC20, data: encodeFunctionData({ diff --git a/test/suites/dev-frontier-template/test-precompiles/test-precompile-assets-erc20-7.ts b/test/suites/dev-frontier-template/test-precompiles/test-precompile-assets-erc20-7.ts index 87a17e658..a381b3268 100644 --- a/test/suites/dev-frontier-template/test-precompiles/test-precompile-assets-erc20-7.ts +++ b/test/suites/dev-frontier-template/test-precompiles/test-precompile-assets-erc20-7.ts @@ -1,12 +1,12 @@ import "@moonbeam-network/api-augment"; import { beforeAll, deployCreateCompiledContract, describeSuite, expect } from "@moonwall/cli"; import { ALITH_ADDRESS, BALTATHAR_ADDRESS, alith, createViemTransaction } from "@moonwall/util"; -import { u16 } from "@polkadot/types-codec"; -import { Abi, encodeFunctionData } from "viem"; +import type { u16 } from "@polkadot/types-codec"; +import { type Abi, encodeFunctionData } from "viem"; import { mockAssetCreation, RELAY_SOURCE_LOCATION, relayAssetMetadata } from "../../../helpers/assets"; describeSuite({ - id: "DF1107", + id: "DE1307", title: "Precompiles - Assets-ERC20", foundationMethods: "dev", testCases: ({ context, it }) => { @@ -52,7 +52,7 @@ describeSuite({ it({ id: "T01", title: "allows to transfer through call from SC ", - test: async function () { + test: async () => { // Create approval const { result } = await context.createBlock( createViemTransaction(context, { diff --git a/test/suites/dev-frontier-template/test-precompiles/test-precompile-assets-erc20-low-level.ts b/test/suites/dev-frontier-template/test-precompiles/test-precompile-assets-erc20-low-level.ts index 18c8aff6d..3fd6379f4 100644 --- a/test/suites/dev-frontier-template/test-precompiles/test-precompile-assets-erc20-low-level.ts +++ b/test/suites/dev-frontier-template/test-precompiles/test-precompile-assets-erc20-low-level.ts @@ -1,12 +1,12 @@ import { TransactionTypes, beforeAll, deployCreateCompiledContract, describeSuite, expect } from "@moonwall/cli"; import { ALITH_ADDRESS, BALTATHAR_ADDRESS, CHARLETH_ADDRESS, alith, createEthersTransaction } from "@moonwall/util"; -import { u16 } from "@polkadot/types"; +import type { u16 } from "@polkadot/types"; import { nToHex } from "@polkadot/util"; -import { Abi, encodeFunctionData } from "viem"; +import { type Abi, encodeFunctionData } from "viem"; import { mockAssetCreation, relayAssetMetadata, RELAY_SOURCE_LOCATION } from "../../../helpers/assets"; describeSuite({ - id: "DF1108", + id: "DE1308", title: "Precompiles - Low Level Transactions", foundationMethods: "dev", testCases: ({ context, it }) => { @@ -17,7 +17,7 @@ describeSuite({ const ASSET_ID = 15n; const MAX_SUPPLY = 100000000000000n; - beforeAll(async function () { + beforeAll(async () => { assetId = context.polkadotJs().createType("u16", ASSET_ID); const { contractAddress, abi } = await deployCreateCompiledContract(context, "ERC20Instance"); @@ -44,7 +44,7 @@ describeSuite({ it({ id: "T01", title: "can make static calls to view functions", - test: async function () { + test: async () => { const callResult = await context.viem().call({ account: ALITH_ADDRESS, to: contractInstanceAddress, @@ -62,7 +62,7 @@ describeSuite({ it({ id: `T${testCounter < 10 ? "0" : ""}${testCounter++}`, title: `can make static calls to view functions and transact ${txnType}`, - test: async function () { + test: async () => { await context.createBlock( await createEthersTransaction(context, { to: contractInstanceAddress, @@ -86,7 +86,7 @@ describeSuite({ it({ id: `T${testCounter < 10 ? "0" : ""}${testCounter++}`, title: `has unchanged state when submitting static call ${txnType}`, - test: async function () { + test: async () => { const { result } = await context.createBlock( await createEthersTransaction(context, { to: contractInstanceAddress, @@ -110,7 +110,7 @@ describeSuite({ it({ id: `T${testCounter < 10 ? "0" : ""}${testCounter++}`, title: `visibility preserved for static calls ${txnType}`, - test: async function () { + test: async () => { const { result } = await context.createBlock( await createEthersTransaction(context, { to: contractInstanceAddress, @@ -134,7 +134,7 @@ describeSuite({ it({ id: `T${testCounter < 10 ? "0" : ""}${testCounter++}`, title: `visibility preserved for delegate->static calls ${txnType}`, - test: async function () { + test: async () => { const { result } = await context.createBlock( await createEthersTransaction(context, { to: contractInstanceAddress, @@ -158,7 +158,7 @@ describeSuite({ it({ id: `T${testCounter < 10 ? "0" : ""}${testCounter++}`, title: `visibility preserved for static->delegate calls ${txnType}`, - test: async function () { + test: async () => { const { result } = await context.createBlock( await createEthersTransaction(context, { to: contractInstanceAddress, diff --git a/test/suites/dev-frontier-template/test-precompiles/test-precompile-batch.ts b/test/suites/dev-frontier-template/test-precompiles/test-precompile-batch.ts index 9879308d9..21e319d9d 100644 --- a/test/suites/dev-frontier-template/test-precompiles/test-precompile-batch.ts +++ b/test/suites/dev-frontier-template/test-precompiles/test-precompile-batch.ts @@ -15,14 +15,14 @@ const PRECOMPILE_BATCH_ADDRESS = "0x0000000000000000000000000000000000000801"; const PRECOMPILE_CALL_PERMIT_ADDRESS = "0x0000000000000000000000000000000000000802"; describeSuite({ - id: "DF1109", + id: "DE1309", title: "Batch - All functions should consume the same gas", foundationMethods: "dev", testCases: ({ context, it }) => { it({ id: "T01", title: "should consume the same gas", - test: async function () { + test: async () => { const { abi: batchInterface } = fetchCompiledContract("Batch"); let aliceNonce = (await context.polkadotJs().query.system.account(ALITH_ADDRESS)).nonce.toNumber(); @@ -92,16 +92,16 @@ describeSuite({ .viem("public") .getTransactionReceipt({ hash: batchSomeUntilFailureResult as `0x${string}` }); - expect(batchAllReceipt["gasUsed"]).to.equal(44_932n); - expect(batchSomeReceipt["gasUsed"]).to.equal(44_932n); - expect(batchSomeUntilFailureReceipt["gasUsed"]).to.equal(44_932n); + expect(batchAllReceipt.gasUsed).to.equal(44_932n); + expect(batchSomeReceipt.gasUsed).to.equal(44_932n); + expect(batchSomeUntilFailureReceipt.gasUsed).to.equal(44_932n); }, }); it({ id: "T02", title: "should be able to call itself", - test: async function () { + test: async () => { const { abi: batchInterface } = fetchCompiledContract("Batch"); const batchAll = await context.writeContract({ @@ -129,14 +129,14 @@ describeSuite({ }); const { result } = await context.createBlock(batchAll); - expectEVMResult(result!.events, "Succeed"); + expectEVMResult(result?.events, "Succeed"); }, }); it({ id: "T03", title: "should be able to be called from call permit", - test: async function () { + test: async () => { const { abi: batchInterface } = fetchCompiledContract("Batch"); const { abi: callPermitAbi } = fetchCompiledContract("CallPermit"); @@ -226,7 +226,7 @@ describeSuite({ value: 0n, data: batchData, gaslimit: 200_000n, - nonce: fromHex(alithNonceResult!, "bigint"), + nonce: fromHex(alithNonceResult, "bigint"), deadline: 9999999999n, }, }); @@ -243,7 +243,7 @@ describeSuite({ }), }) ); - expectEVMResult(baltatharForAlithResult!.events, "Succeed"); + expectEVMResult(baltatharForAlithResult?.events, "Succeed"); }, }); }, diff --git a/test/suites/dev-frontier-template/test-precompiles/test-precompile-call-permit.ts b/test/suites/dev-frontier-template/test-precompiles/test-precompile-call-permit.ts index dd9b30131..de8960772 100644 --- a/test/suites/dev-frontier-template/test-precompiles/test-precompile-call-permit.ts +++ b/test/suites/dev-frontier-template/test-precompiles/test-precompile-call-permit.ts @@ -1,13 +1,20 @@ -import { expect, beforeAll, describeSuite, fetchCompiledContract, deployCreateCompiledContract } from "@moonwall/cli"; -import { ALITH_ADDRESS, BALTATHAR_ADDRESS, BALTATHAR_PRIVATE_KEY, createViemTransaction } from "@moonwall/util"; -import { Abi, encodeFunctionData, fromHex } from "viem"; +import { expect, beforeAll, describeSuite, fetchCompiledContract } from "@moonwall/cli"; +import { + ALITH_ADDRESS, + ALITH_PRIVATE_KEY, + BALTATHAR_ADDRESS, + BALTATHAR_PRIVATE_KEY, + createViemTransaction, +} from "@moonwall/util"; +import { type Abi, encodeFunctionData, fromHex } from "viem"; import { expectEVMResult } from "../../../helpers"; import { getSignatureParameters } from "util/ethereum"; +import { privateKeyToAccount } from "viem/accounts"; const PRECOMPILE_CALL_PERMIT_ADDRESS = "0x0000000000000000000000000000000000000802"; describeSuite({ - id: "DF1110", + id: "DE1310", title: "Precompile - Call Permit - foo", foundationMethods: "dev", testCases: ({ context, it }) => { @@ -15,10 +22,8 @@ describeSuite({ let callPermitDemoAddr: `0x${string}`; let callPermitAbi: Abi; - beforeAll(async function () { - const { abi: demoAbi, contractAddress } = await deployCreateCompiledContract(context, "CallPermitDemo", { - gas: 5_000_000n, - }); + beforeAll(async () => { + const { abi: demoAbi, contractAddress } = await context.deployContract("CallPermitDemo"); callPermitDemoAbi = demoAbi; callPermitDemoAddr = contractAddress; @@ -41,10 +46,10 @@ describeSuite({ privateKey: BALTATHAR_PRIVATE_KEY, to: callPermitDemoAddr, data: encodeFunctionData({ abi: callPermitDemoAbi, functionName: "bond" }), - value: fromHex(bondAmount!, "bigint"), + value: fromHex(bondAmount, "bigint"), }) ); - expectEVMResult(baltatharResult!.events, "Succeed"); + expectEVMResult(baltatharResult?.events, "Succeed"); // bond alice via baltathar using call permit const alithNonceResult = ( @@ -59,6 +64,7 @@ describeSuite({ ).data; const signature = await context.viem().signTypedData({ + account: privateKeyToAccount(ALITH_PRIVATE_KEY), types: { EIP712Domain: [ { @@ -119,10 +125,10 @@ describeSuite({ message: { from: ALITH_ADDRESS, to: callPermitDemoAddr, - value: fromHex(bondAmount!, "bigint"), + value: fromHex(bondAmount, "bigint"), data: "0x", gaslimit: 100_000n, - nonce: fromHex(alithNonceResult!, "bigint"), + nonce: fromHex(alithNonceResult, "bigint"), deadline: 9999999999n, }, }); @@ -139,13 +145,13 @@ describeSuite({ }), }) ); - expectEVMResult(baltatharForAlithResult!.events, "Succeed"); + expectEVMResult(baltatharForAlithResult?.events, "Succeed"); }); it({ id: "T01", title: "should have bonds for baltathar and alith in contract balance", - test: async function () { + test: async () => { const freeBalance = ( await context.polkadotJs().query.system.account(callPermitDemoAddr) ).data.free.toNumber(); @@ -156,7 +162,7 @@ describeSuite({ it({ id: "T02", title: "should have bond for baltathar in contract storage", - test: async function () { + test: async () => { const baltatharBond = ( await context.viem().call({ to: callPermitDemoAddr, @@ -167,14 +173,14 @@ describeSuite({ }), }) ).data; - expect(fromHex(baltatharBond!, "bigint")).to.equal(100n); + expect(fromHex(baltatharBond, "bigint")).to.equal(100n); }, }); it({ id: "T03", title: "should have bond for alith in contract storage", - test: async function () { + test: async () => { const alithBond = ( await context.viem().call({ to: callPermitDemoAddr, @@ -185,7 +191,7 @@ describeSuite({ }), }) ).data; - expect(fromHex(alithBond!, "bigint")).to.equal(100n); + expect(fromHex(alithBond, "bigint")).to.equal(100n); }, }); }, diff --git a/test/suites/dev-frontier-template/test-precompiles/test-precompile-erc20.ts b/test/suites/dev-frontier-template/test-precompiles/test-precompile-erc20.ts index 84d4d1ff9..38695c477 100644 --- a/test/suites/dev-frontier-template/test-precompiles/test-precompile-erc20.ts +++ b/test/suites/dev-frontier-template/test-precompiles/test-precompile-erc20.ts @@ -8,13 +8,13 @@ import { BALTATHAR_ADDRESS, } from "@moonwall/util"; import { expectEVMResult } from "helpers"; -import { PrivateKeyAccount, keccak256, pad, parseEther, toBytes, toHex } from "viem"; +import { type PrivateKeyAccount, keccak256, pad, parseEther, toBytes, toHex } from "viem"; import { generatePrivateKey, privateKeyToAccount } from "viem/accounts"; const IERC20_ADDRESS = "0x0000000000000000000000000000000000000800"; describeSuite({ - id: "DF1111", + id: "DE1311", title: "Precompiles - ERC20 Native", foundationMethods: "dev", testCases: ({ context, it }) => { @@ -27,7 +27,7 @@ describeSuite({ it({ id: "T01", title: "allows to call balanceOf", - test: async function () { + test: async () => { const transferAmount = 1000n; const signedTx = context .polkadotJs() @@ -35,7 +35,7 @@ describeSuite({ .signAsync(baltathar); await context.createBlock(signedTx); - const balance = await context.readContract!({ + const balance = await context.readContract?.({ contractAddress: IERC20_ADDRESS, contractName: "IERC20", functionName: "balanceOf", @@ -49,8 +49,8 @@ describeSuite({ it({ id: "T02", title: "allows to call totalSupply", - test: async function () { - const totalSupply = await context.readContract!({ + test: async () => { + const totalSupply = await context.readContract?.({ contractAddress: IERC20_ADDRESS, contractName: "IERC20", functionName: "totalSupply", @@ -64,8 +64,8 @@ describeSuite({ it({ id: "T03", title: "allows to approve transfers, and allowance matches", - test: async function () { - const allowanceBefore = (await context.readContract!({ + test: async () => { + const allowanceBefore = (await context.readContract?.({ contractAddress: IERC20_ADDRESS, contractName: "IERC20", functionName: "allowance", @@ -74,7 +74,7 @@ describeSuite({ const amount = parseEther("10"); - const rawTx = await context.writeContract!({ + const rawTx = await context.writeContract?.({ contractAddress: IERC20_ADDRESS, contractName: "IERC20", functionName: "approve", @@ -83,7 +83,7 @@ describeSuite({ }); const { result } = await context.createBlock(rawTx); - const allowanceAfter = (await context.readContract!({ + const allowanceAfter = (await context.readContract?.({ contractAddress: IERC20_ADDRESS, contractName: "IERC20", functionName: "allowance", @@ -107,9 +107,9 @@ describeSuite({ it({ id: "T04", title: "allows to call transfer", - test: async function () { + test: async () => { expect( - await context.readContract!({ + await context.readContract?.({ contractAddress: IERC20_ADDRESS, contractName: "IERC20", functionName: "balanceOf", @@ -119,7 +119,7 @@ describeSuite({ const balanceBefore = await context.viem().getBalance({ address: BALTATHAR_ADDRESS }); - const rawTx = await context.writeContract!({ + const rawTx = await context.writeContract?.({ contractAddress: IERC20_ADDRESS, contractName: "IERC20", functionName: "transfer", @@ -135,7 +135,7 @@ describeSuite({ const balanceAfter = await context.viem().getBalance({ address: BALTATHAR_ADDRESS }); const block = await context.viem().getBlock(); - const fees = ((gasUsed as bigint) * block.baseFeePerGas!) as bigint; + const fees = gasUsed * block.baseFeePerGas; expect(balanceAfter).toBeLessThanOrEqual(balanceBefore - parseEther("3") - fees); expect(await context.viem().getBalance({ address: randomAccount.address })).to.equal(parseEther("3")); }, @@ -144,11 +144,11 @@ describeSuite({ it({ id: "T05", title: "allows to approve transfer and use transferFrom", - test: async function () { + test: async () => { const allowedAmount = parseEther("10"); const transferAmount = parseEther("5"); - await context.writeContract!({ + await context.writeContract?.({ contractAddress: IERC20_ADDRESS, contractName: "IERC20", functionName: "approve", @@ -161,7 +161,7 @@ describeSuite({ ).data.free.toBigInt(); const toBalBefore = await context.viem().getBalance({ address: CHARLETH_ADDRESS }); - const rawTx = await context.writeContract!({ + const rawTx = await context.writeContract?.({ contractAddress: IERC20_ADDRESS, contractName: "IERC20", functionName: "transferFrom", @@ -192,7 +192,7 @@ describeSuite({ expect(fromBalAfter).toBe(fromBalBefore - transferAmount); const newAllowedAmount = allowedAmount - transferAmount; expect( - await context.readContract!({ + await context.readContract?.({ contractAddress: IERC20_ADDRESS, contractName: "IERC20", functionName: "allowance", @@ -205,11 +205,11 @@ describeSuite({ it({ id: "T06", title: "refuses to transferFrom more than allowed", - test: async function () { + test: async () => { const allowedAmount = parseEther("10"); const transferAmount = parseEther("15"); - await context.writeContract!({ + await context.writeContract?.({ contractAddress: IERC20_ADDRESS, contractName: "IERC20", functionName: "approve", @@ -222,7 +222,7 @@ describeSuite({ ).data.free.toBigInt(); const toBalBefore = await context.viem().getBalance({ address: CHARLETH_ADDRESS }); - const rawTxn = await context.writeContract!({ + const rawTxn = await context.writeContract?.({ contractAddress: IERC20_ADDRESS, contractName: "IERC20", functionName: "transferFrom", @@ -234,7 +234,7 @@ describeSuite({ }); const { result } = await context.createBlock(rawTxn); - expectEVMResult(result!.events, "Revert"); + expectEVMResult(result?.events, "Revert"); const fromBalAfter = ( await context.polkadotJs().query.system.account(ALITH_ADDRESS) @@ -244,7 +244,7 @@ describeSuite({ expect(toBalAfter).toBe(toBalBefore); expect(fromBalAfter).toBe(fromBalBefore); expect( - await context.readContract!({ + await context.readContract?.({ contractAddress: IERC20_ADDRESS, contractName: "IERC20", functionName: "allowance", diff --git a/test/suites/dev-frontier-template/test-precompiles/test-precompile-pallet-xcm.ts b/test/suites/dev-frontier-template/test-precompiles/test-precompile-pallet-xcm.ts index d9f2cba69..0029654a9 100644 --- a/test/suites/dev-frontier-template/test-precompiles/test-precompile-pallet-xcm.ts +++ b/test/suites/dev-frontier-template/test-precompiles/test-precompile-pallet-xcm.ts @@ -1,7 +1,7 @@ import "@moonbeam-network/api-augment"; import { beforeAll, describeSuite, fetchCompiledContract, expect } from "@moonwall/cli"; import { ALITH_ADDRESS, BALTATHAR_ADDRESS, alith, createEthersTransaction } from "@moonwall/util"; -import { u16 } from "@polkadot/types-codec"; +import type { u16 } from "@polkadot/types-codec"; import { encodeFunctionData } from "viem"; import { expectEVMResult } from "helpers"; import { mockAssetCreation, relayAssetMetadata } from "../../../helpers/assets.ts"; @@ -10,7 +10,7 @@ import { RELAY_SOURCE_LOCATION } from "../../../util/constants.ts"; const PRECOMPILE_PALLET_XCM_ADDRESS: `0x${string}` = "0x0000000000000000000000000000000000000804"; describeSuite({ - id: "DF1112", + id: "DE1312", title: "Precompiles - PalletXcm", foundationMethods: "dev", testCases: ({ context, it }) => { @@ -40,7 +40,7 @@ describeSuite({ it({ id: "T01", title: "allows to call transferAssetsLocation function", - test: async function () { + test: async () => { const { abi: xcmInterface } = fetchCompiledContract("XCM"); const assetBalanceBefore = ( await context.polkadotJs().query.foreignAssets.account(assetId.toU8a(), ALITH_ADDRESS) @@ -55,7 +55,7 @@ describeSuite({ const beneficiary: [number, any[]] = [ 0, // junction: AccountId32 enum (01) + the 32 byte account + Any network selector(00) - ["0x01" + destinationAddress + destinationNetworkId], + [`0x01${destinationAddress}${destinationNetworkId}`], ]; const assetLocation: [number, any[]] = [1, []]; @@ -72,7 +72,7 @@ describeSuite({ }); const result = await context.createBlock(rawTxn); - expectEVMResult(result.result!.events, "Succeed"); + expectEVMResult(result.result?.events, "Succeed"); const assetBalanceAfter = ( await context.polkadotJs().query.foreignAssets.account(assetId.toU8a(), ALITH_ADDRESS) @@ -86,7 +86,7 @@ describeSuite({ it({ id: "T02", title: "allows to call transferAssetsToPara20 function", - test: async function () { + test: async () => { const { abi: xcmInterface } = fetchCompiledContract("XCM"); const assetBalanceBefore = ( await context.polkadotJs().query.foreignAssets.account(assetId.toU8a(), ALITH_ADDRESS) @@ -108,7 +108,7 @@ describeSuite({ }); const result = await context.createBlock(rawTxn); - expectEVMResult(result.result!.events, "Succeed"); + expectEVMResult(result.result?.events, "Succeed"); const assetBalanceAfter = ( await context.polkadotJs().query.foreignAssets.account(assetId.toU8a(), ALITH_ADDRESS) @@ -122,7 +122,7 @@ describeSuite({ it({ id: "T03", title: "allows to call transferAssetsToPara32 function", - test: async function () { + test: async () => { const { abi: xcmInterface } = fetchCompiledContract("XCM"); const assetBalanceBefore = ( await context.polkadotJs().query.foreignAssets.account(assetId.toU8a(), ALITH_ADDRESS) @@ -145,7 +145,7 @@ describeSuite({ }); const result = await context.createBlock(rawTxn); - expectEVMResult(result.result!.events, "Succeed"); + expectEVMResult(result.result?.events, "Succeed"); const assetBalanceAfter = ( await context.polkadotJs().query.foreignAssets.account(assetId.toU8a(), ALITH_ADDRESS) @@ -159,7 +159,7 @@ describeSuite({ it({ id: "T04", title: "allows to call transferAssetsToRelay function", - test: async function () { + test: async () => { const { abi: xcmInterface } = fetchCompiledContract("XCM"); const assetBalanceBefore = ( await context.polkadotJs().query.foreignAssets.account(assetId.toU8a(), ALITH_ADDRESS) @@ -181,7 +181,7 @@ describeSuite({ }); const result = await context.createBlock(rawTxn); - expectEVMResult(result.result!.events, "Succeed"); + expectEVMResult(result.result?.events, "Succeed"); const assetBalanceAfter = ( await context.polkadotJs().query.foreignAssets.account(assetId.toU8a(), ALITH_ADDRESS) diff --git a/test/suites/dev-frontier-template/test-precompiles/test-precompile-proxy.ts b/test/suites/dev-frontier-template/test-precompiles/test-precompile-proxy.ts index 53ca681aa..19bb821b0 100644 --- a/test/suites/dev-frontier-template/test-precompiles/test-precompile-proxy.ts +++ b/test/suites/dev-frontier-template/test-precompiles/test-precompile-proxy.ts @@ -22,7 +22,7 @@ const CONTRACT_PROXY_TYPE_ANY = 0; const CONTRACT_PROXY_TYPE_BALANCES = 4; describeSuite({ - id: "DF1113", + id: "DE1313", title: "Precompile - Proxy", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -30,7 +30,7 @@ describeSuite({ id: "T01", title: "should fail re-adding proxy account", test: async () => { - await context.writeContract!({ + await context.writeContract?.({ contractAddress: PRECOMPILE_PROXY_ADDRESS, contractName: "Proxy", functionName: "addProxy", @@ -39,7 +39,7 @@ describeSuite({ }); await context.createBlock(); - const rawTxn = await context.writeContract!({ + const rawTxn = await context.writeContract?.({ contractAddress: PRECOMPILE_PROXY_ADDRESS, contractName: "Proxy", functionName: "addProxy", @@ -49,10 +49,10 @@ describeSuite({ gas: 1_000_000n, }); const { result } = await context.createBlock(rawTxn); - expectEVMResult(result!.events, "Revert"); + expectEVMResult(result?.events, "Revert"); expect( async () => - await context.writeContract!({ + await context.writeContract?.({ contractAddress: PRECOMPILE_PROXY_ADDRESS, contractName: "Proxy", functionName: "addProxy", @@ -67,7 +67,7 @@ describeSuite({ id: "T02", title: "should succeed with valid account", test: async () => { - const rawTxn = await context.writeContract!({ + const rawTxn = await context.writeContract?.({ contractAddress: PRECOMPILE_PROXY_ADDRESS, contractName: "Proxy", functionName: "addProxy", @@ -75,9 +75,9 @@ describeSuite({ rawTxOnly: true, }); const { result } = await context.createBlock(rawTxn); - expectEVMResult(result!.events, "Succeed"); + expectEVMResult(result?.events, "Succeed"); - const proxyAddedEvents = result!.events.reduce((acc, e) => { + const proxyAddedEvents = result?.events.reduce((acc, e) => { if (context.polkadotJs().events.proxy.ProxyAdded.is(e.event)) { acc.push({ account: e.event.data[0].toString(), @@ -102,7 +102,7 @@ describeSuite({ test: async () => { const randomAddress = privateKeyToAccount(generatePrivateKey()).address; - const rawTxn = await context.writeContract!({ + const rawTxn = await context.writeContract?.({ contractAddress: PRECOMPILE_PROXY_ADDRESS, contractName: "Proxy", functionName: "removeProxy", @@ -111,11 +111,11 @@ describeSuite({ gas: 1_000_000n, }); const { result } = await context.createBlock(rawTxn); - expectEVMResult(result!.events, "Revert"); + expectEVMResult(result?.events, "Revert"); expect( async () => - await context.writeContract!({ + await context.writeContract?.({ contractAddress: PRECOMPILE_PROXY_ADDRESS, contractName: "Proxy", functionName: "removeProxy", @@ -131,7 +131,7 @@ describeSuite({ test: async () => { const randomAddress = privateKeyToAccount(generatePrivateKey()).address; - await context.writeContract!({ + await context.writeContract?.({ contractAddress: PRECOMPILE_PROXY_ADDRESS, contractName: "Proxy", functionName: "addProxy", @@ -139,7 +139,7 @@ describeSuite({ }); await context.createBlock(); - const rawTxn = await context.writeContract!({ + const rawTxn = await context.writeContract?.({ contractAddress: PRECOMPILE_PROXY_ADDRESS, contractName: "Proxy", functionName: "removeProxy", @@ -149,8 +149,8 @@ describeSuite({ const expectEvents = [context.polkadotJs().events.proxy.ProxyRemoved]; const { result } = await context.createBlock(rawTxn, { expectEvents, signer: alith }); - expectEVMResult(result!.events, "Succeed"); - const proxyRemovedEvents = result!.events.reduce((acc, e) => { + expectEVMResult(result?.events, "Succeed"); + const proxyRemovedEvents = result?.events.reduce((acc, e) => { if (context.polkadotJs().events.proxy.ProxyRemoved.is(e.event)) { acc.push({ account: e.event.data[0].toString(), @@ -179,7 +179,7 @@ describeSuite({ context.polkadotJs().tx.balances.transferAllowDeath(randomAccount.address, GLMR) ); - const rawTxn = await context.writeContract!({ + const rawTxn = await context.writeContract?.({ contractAddress: PRECOMPILE_PROXY_ADDRESS, contractName: "Proxy", functionName: "removeProxies", @@ -187,7 +187,7 @@ describeSuite({ rawTxOnly: true, }); const { result } = await context.createBlock(rawTxn); - expectEVMResult(result!.events, "Succeed"); + expectEVMResult(result?.events, "Succeed"); }, }); @@ -195,14 +195,14 @@ describeSuite({ id: "T06", title: "should succeed removing all proxies", test: async () => { - await context.writeContract!({ + await context.writeContract?.({ contractAddress: PRECOMPILE_PROXY_ADDRESS, contractName: "Proxy", functionName: "addProxy", args: [BALTATHAR_ADDRESS, CONTRACT_PROXY_TYPE_BALANCES, 0], }); await context.createBlock(); - await context.writeContract!({ + await context.writeContract?.({ contractAddress: PRECOMPILE_PROXY_ADDRESS, contractName: "Proxy", functionName: "addProxy", @@ -213,14 +213,14 @@ describeSuite({ const proxiesBefore = await context.polkadotJs().query.proxy.proxies(ALITH_ADDRESS); expect(proxiesBefore[0].length).toBeGreaterThanOrEqual(2); - const rawTxn = await context.writeContract!({ + const rawTxn = await context.writeContract?.({ contractAddress: PRECOMPILE_PROXY_ADDRESS, contractName: "Proxy", functionName: "removeProxies", rawTxOnly: true, }); const { result } = await context.createBlock(rawTxn); - expectEVMResult(result!.events, "Succeed"); + expectEVMResult(result?.events, "Succeed"); const proxiesAfter = await context.polkadotJs().query.proxy.proxies(ALITH_ADDRESS); expect(proxiesAfter[0].isEmpty).toBe(true); @@ -233,7 +233,7 @@ describeSuite({ test: async () => { const randomAccount = privateKeyToAccount(generatePrivateKey()).address; - const rawTxn = await context.writeContract!({ + const rawTxn = await context.writeContract?.({ contractAddress: PRECOMPILE_PROXY_ADDRESS, contractName: "Proxy", functionName: "addProxy", @@ -241,10 +241,10 @@ describeSuite({ rawTxOnly: true, }); const { result } = await context.createBlock(rawTxn); - expectEVMResult(result!.events, "Succeed"); + expectEVMResult(result?.events, "Succeed"); expect( - await context.readContract!({ + await context.readContract?.({ contractAddress: PRECOMPILE_PROXY_ADDRESS, contractName: "Proxy", functionName: "isProxy", @@ -260,7 +260,7 @@ describeSuite({ test: async () => { const randomAccount = privateKeyToAccount(generatePrivateKey()).address; - const rawTxn = await context.writeContract!({ + const rawTxn = await context.writeContract?.({ contractAddress: PRECOMPILE_PROXY_ADDRESS, contractName: "Proxy", functionName: "addProxy", @@ -268,10 +268,10 @@ describeSuite({ rawTxOnly: true, }); const { result } = await context.createBlock(rawTxn); - expectEVMResult(result!.events, "Succeed"); + expectEVMResult(result?.events, "Succeed"); expect( - await context.readContract!({ + await context.readContract?.({ contractAddress: PRECOMPILE_PROXY_ADDRESS, contractName: "Proxy", functionName: "isProxy", @@ -287,7 +287,7 @@ describeSuite({ test: async () => { const randomAccount = privateKeyToAccount(generatePrivateKey()).address; - const rawTxn = await context.writeContract!({ + const rawTxn = await context.writeContract?.({ contractAddress: PRECOMPILE_PROXY_ADDRESS, contractName: "Proxy", functionName: "addProxy", @@ -295,10 +295,10 @@ describeSuite({ rawTxOnly: true, }); const { result } = await context.createBlock(rawTxn); - expectEVMResult(result!.events, "Succeed"); + expectEVMResult(result?.events, "Succeed"); expect( - await context.readContract!({ + await context.readContract?.({ contractAddress: PRECOMPILE_PROXY_ADDRESS, contractName: "Proxy", functionName: "isProxy", @@ -312,7 +312,7 @@ describeSuite({ id: "T10", title: "shouldn't accept unknown proxy", test: async () => { - const rawTxn = await context.writeContract!({ + const rawTxn = await context.writeContract?.({ contractAddress: PRECOMPILE_PROXY_ADDRESS, contractName: "Proxy", functionName: "proxy", @@ -321,11 +321,11 @@ describeSuite({ gas: 1_000_000n, }); const { result } = await context.createBlock(rawTxn); - expectEVMResult(result!.events, "Revert"); + expectEVMResult(result?.events, "Revert"); expect( async () => - await context.writeContract!({ + await context.writeContract?.({ contractAddress: PRECOMPILE_PROXY_ADDRESS, contractName: "Proxy", functionName: "proxy", @@ -342,7 +342,7 @@ describeSuite({ const privateKey = generatePrivateKey(); const randomAccount = privateKeyToAccount(privateKey).address; - const rawTxn = await context.writeContract!({ + const rawTxn = await context.writeContract?.({ contractAddress: PRECOMPILE_PROXY_ADDRESS, contractName: "Proxy", functionName: "addProxy", @@ -350,7 +350,7 @@ describeSuite({ rawTxOnly: true, }); const { result } = await context.createBlock(rawTxn); - expectEVMResult(result!.events, "Succeed"); + expectEVMResult(result?.events, "Succeed"); const { abi } = fetchCompiledContract("Proxy"); const rawTxn2 = await createViemTransaction(context, { @@ -364,7 +364,7 @@ describeSuite({ }), }); const { result: result2 } = await context.createBlock(rawTxn2); - expectEVMResult(result2!.events, "Succeed"); + expectEVMResult(result2?.events, "Succeed"); expect(await context.viem().getBalance({ address: randomAccount })).toBe(1000n); }, @@ -377,7 +377,7 @@ describeSuite({ const privateKey = generatePrivateKey(); const randomAccount = privateKeyToAccount(privateKey).address; - const rawTxn = await context.writeContract!({ + const rawTxn = await context.writeContract?.({ contractAddress: PRECOMPILE_PROXY_ADDRESS, contractName: "Proxy", functionName: "addProxy", @@ -385,9 +385,9 @@ describeSuite({ rawTxOnly: true, }); const { result } = await context.createBlock(rawTxn); - expectEVMResult(result!.events, "Succeed"); + expectEVMResult(result?.events, "Succeed"); - const rawTxn2 = await context.writeContract!({ + const rawTxn2 = await context.writeContract?.({ contractAddress: PRECOMPILE_PROXY_ADDRESS, contractName: "Proxy", functionName: "removeProxy", @@ -395,7 +395,7 @@ describeSuite({ rawTxOnly: true, }); const { result: result2 } = await context.createBlock(rawTxn2); - expectEVMResult(result2!.events, "Succeed"); + expectEVMResult(result2?.events, "Succeed"); const { abi } = fetchCompiledContract("Proxy"); const rawTxn3 = await createViemTransaction(context, { @@ -410,7 +410,7 @@ describeSuite({ }), }); const { result: result3 } = await context.createBlock(rawTxn3); - expectEVMResult(result3!.events, "Revert"); + expectEVMResult(result3?.events, "Revert"); expect( async () => @@ -432,7 +432,7 @@ describeSuite({ id: "T13", title: "shouldn't accept instant for delayed proxy", test: async () => { - const rawTxn = await context.writeContract!({ + const rawTxn = await context.writeContract?.({ contractAddress: PRECOMPILE_PROXY_ADDRESS, contractName: "Proxy", functionName: "addProxy", @@ -440,7 +440,7 @@ describeSuite({ rawTxOnly: true, }); const { result } = await context.createBlock(rawTxn); - expectEVMResult(result!.events, "Succeed"); + expectEVMResult(result?.events, "Succeed"); const { abi } = fetchCompiledContract("Proxy"); const rawTxn2 = await createViemTransaction(context, { @@ -455,7 +455,7 @@ describeSuite({ }), }); const { result: result2 } = await context.createBlock(rawTxn2); - expectEVMResult(result2!.events, "Revert"); + expectEVMResult(result2?.events, "Revert"); expect( async () => @@ -485,7 +485,7 @@ describeSuite({ context.polkadotJs().tx.balances.transferAllowDeath(randomAccount, 10_000_000_000_000_000_000n) ); - const rawTxn = await context.writeContract!({ + const rawTxn = await context.writeContract?.({ contractAddress: PRECOMPILE_PROXY_ADDRESS, contractName: "Proxy", functionName: "addProxy", @@ -493,7 +493,7 @@ describeSuite({ rawTxOnly: true, }); const { result } = await context.createBlock(rawTxn); - expectEVMResult(result!.events, "Succeed"); + expectEVMResult(result?.events, "Succeed"); const contractBalBefore = await context.viem().getBalance({ address: PRECOMPILE_PROXY_ADDRESS }); const alithBalBefore = await context.viem().getBalance({ address: ALITH_ADDRESS }); @@ -509,7 +509,7 @@ describeSuite({ }), }); const { result: result2 } = await context.createBlock(rawTxn2); - expectEVMResult(result2!.events, "Succeed"); + expectEVMResult(result2?.events, "Succeed"); expect(await context.viem().getBalance({ address: GOLIATH_ADDRESS })).toBe(parseEther("5")); const contractBalAfter = await context.viem().getBalance({ address: PRECOMPILE_PROXY_ADDRESS }); @@ -526,7 +526,7 @@ describeSuite({ // The account cannot be random otherwise the calldata might contain more // zero bytes and have a different gas cost const randomAccount = "0x1ced798a66b803d0dbb665680283980a939a6432"; - const rawTxn = await context.writeContract!({ + const rawTxn = await context.writeContract?.({ contractAddress: PRECOMPILE_PROXY_ADDRESS, contractName: "Proxy", functionName: "addProxy", @@ -535,12 +535,12 @@ describeSuite({ rawTxOnly: true, }); const { result } = await context.createBlock(rawTxn); - expectEVMResult(result!.events, "Succeed"); + expectEVMResult(result?.events, "Succeed"); const balBefore = await context.viem().getBalance({ address: DOROTHY_ADDRESS }); const { abi: ierc20Abi } = fetchCompiledContract("IERC20"); - const rawTxn2 = await context.writeContract!({ + const rawTxn2 = await context.writeContract?.({ contractAddress: PRECOMPILE_PROXY_ADDRESS, contractName: "Proxy", functionName: "proxy", @@ -558,11 +558,11 @@ describeSuite({ }); const { result: result2 } = await context.createBlock(rawTxn2); - expectEVMResult(result2!.events, "Succeed"); + expectEVMResult(result2?.events, "Succeed"); const { gasUsed } = await context .viem() - .getTransactionReceipt({ hash: result2!.hash as `0x${string}` }); + .getTransactionReceipt({ hash: result2?.hash as `0x${string}` }); // The tx can create an account, so record 148 bytes of storage growth // Storage growth ratio is 366 (Not defined in frontier template) diff --git a/test/suites/dev-frontier-template/test-precompiles/test-precompile-smart-contract-call.ts b/test/suites/dev-frontier-template/test-precompiles/test-precompile-smart-contract-call.ts index 5264fd9b5..72db90726 100644 --- a/test/suites/dev-frontier-template/test-precompiles/test-precompile-smart-contract-call.ts +++ b/test/suites/dev-frontier-template/test-precompiles/test-precompile-smart-contract-call.ts @@ -4,25 +4,25 @@ import { encodeFunctionData } from "viem"; import { expectEVMResult } from "../../../helpers"; describeSuite({ - id: "DF1114", + id: "DE1314", title: "Smart Contract Precompile Call", foundationMethods: "dev", testCases: ({ context, it }) => { let testContractAddress: `0x${string}`; let multiplyContractAddress: `0x${string}`; - beforeAll(async function () { - const { contractAddress: addr1 } = await context.deployContract!("SmartContractPrecompileCallTest"); + beforeAll(async () => { + const { contractAddress: addr1 } = await context.deployContract("SmartContractPrecompileCallTest"); testContractAddress = addr1; - const { contractAddress: addr3 } = await context.deployContract!("MultiplyBy7"); + const { contractAddress: addr3 } = await context.deployContract("MultiplyBy7"); multiplyContractAddress = addr3; }); it({ id: "T01", title: "should revert when caller is a smart contract", - test: async function () { - const rawTxn = await context.writeContract!({ + test: async () => { + const rawTxn = await context.writeContract({ contractAddress: testContractAddress, contractName: "SmartContractPrecompileCallTest", functionName: "callBatch", @@ -52,10 +52,10 @@ describeSuite({ const { result } = await context.createBlock(rawTxn); - expectEVMResult(result!.events, "Revert"); + expectEVMResult(result?.events, "Revert"); expect( async () => - await context.writeContract!({ + await context.writeContract?.({ contractAddress: testContractAddress, contractName: "SmartContractPrecompileCallTest", functionName: "callBatch", diff --git a/test/suites/dev-frontier-template/test-precompiles/test-precompile-xcm-utils.ts b/test/suites/dev-frontier-template/test-precompiles/test-precompile-xcm-utils.ts index c0c168bbe..15524c887 100644 --- a/test/suites/dev-frontier-template/test-precompiles/test-precompile-xcm-utils.ts +++ b/test/suites/dev-frontier-template/test-precompiles/test-precompile-xcm-utils.ts @@ -1,7 +1,7 @@ import "@tanssi/api-augment"; import { describeSuite, expect } from "@moonwall/cli"; import { GLMR, extractWeight, generateKeyringPair } from "@moonwall/util"; -import { XcmVersionedXcm } from "@polkadot/types/lookup"; +import type { XcmVersionedXcm } from "@polkadot/types/lookup"; import { u8aToHex } from "@polkadot/util"; import { expectEVMResult, descendOriginFromAddress20 } from "../../../helpers"; @@ -9,14 +9,14 @@ export const CLEAR_ORIGIN_WEIGHT = 983000n; const XCM_UTILS_ADDRESS = "0x0000000000000000000000000000000000000803"; describeSuite({ - id: "DF1115", + id: "DE1315", title: "Precompiles - xcm utils", foundationMethods: "dev", testCases: ({ context, it }) => { it({ id: "T01", title: "allows to retrieve parent-based ML account", - test: async function () { + test: async () => { const multilocation: [number, any[]] = [1, []]; const expectedAddress = u8aToHex(new Uint8Array([...new TextEncoder().encode("Parent")])) .padEnd(42, "0") @@ -24,7 +24,7 @@ describeSuite({ expect( ( - (await context.readContract!({ + (await context.readContract?.({ contractAddress: XCM_UTILS_ADDRESS, contractName: "XcmUtils", functionName: "multilocationToAddress", @@ -38,7 +38,7 @@ describeSuite({ it({ id: "T02", title: "allows to retrieve parachain-based ML account", - test: async function () { + test: async () => { const x2_parachain_asset_enum_selector = "0x00"; const x2_parachain_id = "000007D0"; const paraId = context.polkadotJs().createType("ParaId", 2000); @@ -55,7 +55,7 @@ describeSuite({ expect( ( - (await context.readContract!({ + (await context.readContract?.({ contractAddress: XCM_UTILS_ADDRESS, contractName: "XcmUtils", functionName: "multilocationToAddress", @@ -69,7 +69,7 @@ describeSuite({ it({ id: "T03", title: "allows to retrieve generic ML-based derivated account", - test: async function () { + test: async () => { const x2_parachain_asset_enum_selector = "0x00"; const x2_parachain_id = "00000001"; @@ -95,7 +95,7 @@ describeSuite({ const { descendOriginAddress } = descendOriginFromAddress20(context); expect( ( - (await context.readContract!({ + (await context.readContract?.({ contractAddress: XCM_UTILS_ADDRESS, contractName: "XcmUtils", functionName: "multilocationToAddress", @@ -109,7 +109,7 @@ describeSuite({ it({ id: "T04", title: "allows to retrieve weight of message", - test: async function () { + test: async () => { const message = { V2: [ { @@ -119,7 +119,7 @@ describeSuite({ }; const xcm = context.polkadotJs().createType("VersionedXcm", message); expect( - (await context.readContract!({ + (await context.readContract?.({ contractAddress: XCM_UTILS_ADDRESS, contractName: "XcmUtils", functionName: "weightMessage", @@ -129,7 +129,7 @@ describeSuite({ ).to.be.true; expect( - (await context.readContract!({ + (await context.readContract?.({ contractAddress: XCM_UTILS_ADDRESS, contractName: "XcmUtils", functionName: "weightMessage", @@ -143,7 +143,7 @@ describeSuite({ it({ id: "T05", title: "allows to retrieve units per second for an asset", - test: async function () { + test: async () => { // Junction::PalletInstance(3) const x2_pallet_instance_enum_selector = "0x04"; const x2_instance = "0A"; @@ -166,7 +166,7 @@ describeSuite({ const expectedUnitsPerSecond = ((1_000_000_000_000n * 1_000_000_000n) / baseWeight) * 1_000n; expect( - await context.readContract!({ + await context.readContract?.({ contractAddress: XCM_UTILS_ADDRESS, contractName: "XcmUtils", functionName: "getUnitsPerSecond", @@ -179,7 +179,7 @@ describeSuite({ it({ id: "T06", title: "allows to execute a custom xcm message", - test: async function () { + test: async () => { const random = generateKeyringPair(); const transferCall = context.polkadotJs().tx.balances.transferAllowDeath(random.address, 1n * GLMR); @@ -203,7 +203,7 @@ describeSuite({ .polkadotJs() .createType("XcmVersionedXcm", xcmMessage) as any; - const rawTxn = await context.writeContract!({ + const rawTxn = await context.writeContract?.({ contractAddress: XCM_UTILS_ADDRESS, contractName: "XcmUtils", functionName: "xcmExecute", @@ -212,7 +212,7 @@ describeSuite({ }); const { result } = await context.createBlock(rawTxn); - expectEVMResult(result!.events, "Succeed"); + expectEVMResult(result?.events, "Succeed"); const testAccountBalance = ( await context.polkadotJs().query.system.account(random.address) @@ -275,7 +275,7 @@ describeSuite({ // }); // const { result } = await context.createBlock(rawTxn); - // expectEVMResult(result!.events, "Succeed"); + // expectEVMResult(result?.events, "Succeed"); // // Tokens transferred // const testAccountBalance = ( @@ -289,7 +289,7 @@ describeSuite({ it({ id: "T08", title: "does not allow to self-send a custom xcm message", - test: async function () { + test: async () => { const ownParaId = (await context.polkadotJs().query.parachainInfo.parachainId()) as any; const x1_parachain_asset_enum_selector = "0x00"; const x1_parachain_id = ownParaId.toHex().slice(2); @@ -334,7 +334,7 @@ describeSuite({ .createType("XcmVersionedXcm", xcmMessage) as any; // Try sending it with local view - const localRawTxn = await context.writeContract!({ + const localRawTxn = await context.writeContract?.({ contractAddress: XCM_UTILS_ADDRESS, contractName: "XcmUtils", functionName: "xcmSend", @@ -344,10 +344,10 @@ describeSuite({ }); const { result: localResult } = await context.createBlock(localRawTxn); - expectEVMResult(localResult!.events, "Revert"); + expectEVMResult(localResult?.events, "Revert"); expect( async () => - await context.writeContract!({ + await context.writeContract?.({ contractAddress: XCM_UTILS_ADDRESS, contractName: "XcmUtils", functionName: "xcmSend", @@ -358,7 +358,7 @@ describeSuite({ '{ index: 73, error: [0, 0, 0, 0], message: Some("Unreachable") })' ); - const paraRawTxn = await context.writeContract!({ + const paraRawTxn = await context.writeContract?.({ contractAddress: XCM_UTILS_ADDRESS, contractName: "XcmUtils", functionName: "xcmSend", @@ -369,10 +369,10 @@ describeSuite({ const { result: paraResult } = await context.createBlock(paraRawTxn); - expectEVMResult(paraResult!.events, "Revert"); + expectEVMResult(paraResult?.events, "Revert"); expect( async () => - await context.writeContract!({ + await context.writeContract?.({ contractAddress: XCM_UTILS_ADDRESS, contractName: "XcmUtils", functionName: "xcmSend", @@ -383,7 +383,7 @@ describeSuite({ '{ index: 73, error: [0, 0, 0, 0], message: Some("Unreachable") })' ); - const paraRawTxn2 = await context.writeContract!({ + const paraRawTxn2 = await context.writeContract?.({ contractAddress: XCM_UTILS_ADDRESS, contractName: "XcmUtils", functionName: "xcmSend", @@ -394,10 +394,10 @@ describeSuite({ const { result: paraResult2 } = await context.createBlock(paraRawTxn2); - expectEVMResult(paraResult2!.events, "Revert"); + expectEVMResult(paraResult2?.events, "Revert"); expect( async () => - await context.writeContract!({ + await context.writeContract?.({ contractAddress: XCM_UTILS_ADDRESS, contractName: "XcmUtils", functionName: "xcmSend", @@ -413,7 +413,7 @@ describeSuite({ it({ id: "T09", title: "allows to send a custom xcm message", - test: async function () { + test: async () => { // Sending it to the relay // { parents:1, Here} const dest = [ @@ -433,7 +433,7 @@ describeSuite({ const sentMessage: XcmVersionedXcm = context.polkadotJs().createType("XcmVersionedXcm", xcmMessage); - const rawTxn = await context.writeContract!({ + const rawTxn = await context.writeContract?.({ contractAddress: XCM_UTILS_ADDRESS, contractName: "XcmUtils", functionName: "xcmSend", @@ -443,7 +443,7 @@ describeSuite({ }); const { result } = await context.createBlock(rawTxn); - expectEVMResult(result!.events, "Succeed"); + expectEVMResult(result?.events, "Succeed"); }, }); }, diff --git a/test/suites/dev-frontier-template/weights/test_set_latest_authorities_data.ts b/test/suites/dev-frontier-template/weights/test_set_latest_authorities_data.ts index fe1c9b60f..d3358f003 100644 --- a/test/suites/dev-frontier-template/weights/test_set_latest_authorities_data.ts +++ b/test/suites/dev-frontier-template/weights/test_set_latest_authorities_data.ts @@ -1,17 +1,17 @@ -import "@polkadot/api-augment"; +import "@tanssi/api-augment"; import { describeSuite, expect } from "@moonwall/cli"; -import { FrameSupportDispatchDispatchInfo } from "@polkadot/types/lookup"; +import type { FrameSupportDispatchDispatchInfo } from "@polkadot/types/lookup"; import { BN } from "@polkadot/util"; describeSuite({ - id: "DF1201", + id: "DE1401", title: "On set latest authorities data weight check", foundationMethods: "dev", testCases: ({ it, context }) => { it({ id: "T01", title: "Weight should be match expected", - test: async function () { + test: async () => { const expectedRefTime = new BN(428_360_000); const expectedProofSize = new BN(1626); diff --git a/test/suites/dev-tanssi-relay/author-slot-prediction/test_author_slot_prediction.ts b/test/suites/dev-tanssi-relay/author-slot-prediction/test_author_slot_prediction.ts index 6a4a5b13d..6124a3223 100644 --- a/test/suites/dev-tanssi-relay/author-slot-prediction/test_author_slot_prediction.ts +++ b/test/suites/dev-tanssi-relay/author-slot-prediction/test_author_slot_prediction.ts @@ -1,14 +1,14 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { KeyringPair } from "@moonwall/util"; -import { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; import { jumpSessions, jumpToSession } from "../../../util/block"; import { u8aToHex, stringToHex } from "@polkadot/util"; import { Keyring } from "@polkadot/keyring"; const includesAll = (arr, values) => values.every((v) => arr.includes(v)); describeSuite({ - id: "DTR0501", + id: "DEVT0101", title: "Session keys assignment test suite", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -31,7 +31,7 @@ describeSuite({ it({ id: "E01", title: "Checking that authority assignment is correct in the first assignment", - test: async function () { + test: async () => { // We need at least a couple of session to start seeing the first assignment // The reason is that the session pallet goes before the tanssiInvulnerables in the dancelight runtime // Otherwise we would not need this (as in dancebox) @@ -78,7 +78,7 @@ describeSuite({ it({ id: "E02", title: "Checking session key changes are reflected at the session length boundary block", - test: async function () { + test: async () => { const newKey = await polkadotJs.rpc.author.rotateKeys(); const newKeyCharlie = await polkadotJs.rpc.author.rotateKeys(); @@ -90,7 +90,7 @@ describeSuite({ // Check key is reflected in next key // But its not yet in queued const queuedKeys = await polkadotJs.query.session.queuedKeys(); - const result = queuedKeys.filter((keyItem) => keyItem[1].nimbus == newKey); + const result = queuedKeys.filter((keyItem) => keyItem[1].nimbus === newKey); expect(result).is.empty; const nextKey = await polkadotJs.query.session.nextKeys(aliceStash.address); const nextKeyCharlie = await polkadotJs.query.session.nextKeys(charlie.address); @@ -110,7 +110,7 @@ describeSuite({ // The change should have been applied, and now both nimbus and authorityMapping should reflect const digests = (await polkadotJs.query.system.digest()).logs; const filtered = digests.filter( - (log) => log.isConsensus === true && log.asConsensus[0].toHex() == stringToHex("BABE") + (log) => log.isConsensus === true && log.asConsensus[0].toHex() === stringToHex("BABE") ); expect(filtered[0].asConsensus[1].toHex().includes(nextBabeKey.toHex().slice(2))).to.be.true; diff --git a/test/suites/dev-tanssi-relay/balances/test_balances.ts b/test/suites/dev-tanssi-relay/balances/test_balances.ts index e1a3e598c..4d11b608f 100644 --- a/test/suites/dev-tanssi-relay/balances/test_balances.ts +++ b/test/suites/dev-tanssi-relay/balances/test_balances.ts @@ -1,9 +1,9 @@ import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; -import { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; describeSuite({ - id: "DTR0101", + id: "DEVT1301", title: "Genesis supply and balances", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -18,7 +18,7 @@ describeSuite({ it({ id: "E01", title: "Checking total issuance is correct on genesis", - test: async function () { + test: async () => { const totalIssuance = (await polkadotJs.query.balances.totalIssuance()).toBigInt(); expect(totalIssuance).toBe(12_000_000_000_166_666_665n); }, @@ -27,7 +27,7 @@ describeSuite({ it({ id: "E02", title: "Checking alice's balance is correct on genesis", - test: async function () { + test: async () => { const balance = (await polkadotJs.query.system.account(alice.address)).data.free.toBigInt(); expect(balance).toBe(1_000_000_000_000_000_000n); }, diff --git a/test/suites/dev-tanssi-relay/beefy/test-beefy-digests.ts b/test/suites/dev-tanssi-relay/beefy/test-beefy-digests.ts index ecdc8dfe7..d276efa61 100644 --- a/test/suites/dev-tanssi-relay/beefy/test-beefy-digests.ts +++ b/test/suites/dev-tanssi-relay/beefy/test-beefy-digests.ts @@ -1,13 +1,13 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { KeyringPair } from "@moonwall/util"; -import { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; import { jumpToSession } from "../../../util/block"; import { u8aToHex, stringToHex } from "@polkadot/util"; import { Keyring } from "@polkadot/keyring"; describeSuite({ - id: "DTR1201", + id: "DEVT1401", title: "BEEFY - Test Digests", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -24,7 +24,7 @@ describeSuite({ it({ id: "E01", title: "Session change should update BEEFY authorities and digest", - test: async function () { + test: async () => { await jumpToSession(context, 1); // Take Alice's BEEFY key corresponding to next session. @@ -34,7 +34,7 @@ describeSuite({ await jumpToSession(context, 2); const digests = (await polkadotJs.query.system.digest()).logs; const filteredDigests = digests.filter( - (log) => log.isConsensus === true && log.asConsensus[0].toHex() == stringToHex("BEEF") + (log) => log.isConsensus === true && log.asConsensus[0].toHex() === stringToHex("BEEF") ); // As session changed, it should contain two BEEFY digests: AuthoritiesChange and MmrRoot. @@ -60,11 +60,11 @@ describeSuite({ it({ id: "E02", title: "Should also update MMR root digest when creating a new block", - test: async function () { + test: async () => { await context.createBlock(); const digests = (await polkadotJs.query.system.digest()).logs; const filteredDigests = digests.filter( - (log) => log.isConsensus === true && log.asConsensus[0].toHex() == stringToHex("BEEF") + (log) => log.isConsensus === true && log.asConsensus[0].toHex() === stringToHex("BEEF") ); // Now we should only have the MmrRoot BEEFY digest (as session didn't change yet). diff --git a/test/suites/dev-tanssi-relay/beefy/test-double-voting-proofs.ts b/test/suites/dev-tanssi-relay/beefy/test-double-voting-proofs.ts index d69b99f9a..990118e25 100644 --- a/test/suites/dev-tanssi-relay/beefy/test-double-voting-proofs.ts +++ b/test/suites/dev-tanssi-relay/beefy/test-double-voting-proofs.ts @@ -1,10 +1,10 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { KeyringPair } from "@moonwall/util"; -import { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; import { jumpToSession } from "../../../util/block"; import { u8aToHex, hexToU8a, stringToHex, numberToHex } from "@polkadot/util"; -import { +import type { SpConsensusBeefyDoubleVotingProof, SpConsensusBeefyPayload, SpConsensusBeefyCommitment, @@ -14,7 +14,7 @@ import { Keyring } from "@polkadot/keyring"; import { secp256k1Sign } from "@polkadot/util-crypto"; describeSuite({ - id: "DTR1203", + id: "DEVT1402", title: "BEEFY - Double voting proofs", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -37,7 +37,7 @@ describeSuite({ it({ id: "E01", title: "Should be able to report a valid double voting proof", - test: async function () { + test: async () => { await jumpToSession(context, 1); await context.createBlock(); @@ -105,14 +105,14 @@ describeSuite({ const signedTx = await tx.signAsync(bob); const { result } = await context.createBlock(signedTx, { allowFailures: false }); - expect(result!.successful, result!.error?.name).to.be.true; + expect(result?.successful, result?.error?.name).to.be.true; }, }); it({ id: "E02", title: "Should fail to report proof if KeyOwnershipProof is invalid", - test: async function () { + test: async () => { await jumpToSession(context, 1); await context.createBlock(); @@ -181,16 +181,16 @@ describeSuite({ const signedTx = await tx.signAsync(bob); const { result } = await context.createBlock(signedTx); - expect(result!.successful).to.be.false; - expect(result!.error?.section).to.eq("beefy"); - expect(result!.error?.name).to.eq("InvalidKeyOwnershipProof"); + expect(result?.successful).to.be.false; + expect(result?.error?.section).to.eq("beefy"); + expect(result?.error?.name).to.eq("InvalidKeyOwnershipProof"); }, }); it({ id: "E03", title: "Should fail to report an invalid DoubleVotingProof", - test: async function () { + test: async () => { await jumpToSession(context, 1); await context.createBlock(); @@ -258,9 +258,9 @@ describeSuite({ const signedTx = await tx.signAsync(bob); const { result } = await context.createBlock(signedTx); - expect(result!.successful).to.be.false; - expect(result!.error?.section).to.eq("beefy"); - expect(result!.error?.name).to.eq("InvalidDoubleVotingProof"); + expect(result?.successful).to.be.false; + expect(result?.error?.section).to.eq("beefy"); + expect(result?.error?.name).to.eq("InvalidDoubleVotingProof"); }, }); }, diff --git a/test/suites/dev-tanssi-relay/beefy/test-future-voting-proofs.ts b/test/suites/dev-tanssi-relay/beefy/test-future-voting-proofs.ts index dee6540e3..585ccfe50 100644 --- a/test/suites/dev-tanssi-relay/beefy/test-future-voting-proofs.ts +++ b/test/suites/dev-tanssi-relay/beefy/test-future-voting-proofs.ts @@ -1,10 +1,10 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { KeyringPair } from "@moonwall/util"; -import { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; import { jumpToSession } from "../../../util/block"; import { u8aToHex, hexToU8a, stringToHex, numberToHex } from "@polkadot/util"; -import { +import type { SpConsensusBeefyFutureBlockVotingProof, SpConsensusBeefyPayload, SpConsensusBeefyCommitment, @@ -14,7 +14,7 @@ import { Keyring } from "@polkadot/keyring"; import { secp256k1Sign } from "@polkadot/util-crypto"; describeSuite({ - id: "DTR1204", + id: "DEVT1403", title: "BEEFY - Future voting proofs", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -35,7 +35,7 @@ describeSuite({ it({ id: "E01", title: "Should be able to report a valid FutureVotingProof", - test: async function () { + test: async () => { await jumpToSession(context, 1); await context.createBlock(); @@ -86,14 +86,14 @@ describeSuite({ const signedTx = await tx.signAsync(bob); const { result } = await context.createBlock(signedTx, { allowFailures: false }); - expect(result!.successful, result!.error?.name).to.be.true; + expect(result?.successful, result?.error?.name).to.be.true; }, }); it({ id: "E02", title: "Should fail to report proof if KeyOwnershipProof is invalid", - test: async function () { + test: async () => { await jumpToSession(context, 1); await context.createBlock(); @@ -145,16 +145,16 @@ describeSuite({ const signedTx = await tx.signAsync(bob); const { result } = await context.createBlock(signedTx); - expect(result!.successful).to.be.false; - expect(result!.error?.section).to.eq("beefy"); - expect(result!.error?.name).to.eq("InvalidKeyOwnershipProof"); + expect(result?.successful).to.be.false; + expect(result?.error?.section).to.eq("beefy"); + expect(result?.error?.name).to.eq("InvalidKeyOwnershipProof"); }, }); it({ id: "E03", title: "Should fail to report an invalid FutureVotingProof", - test: async function () { + test: async () => { await jumpToSession(context, 1); await context.createBlock(); @@ -204,9 +204,9 @@ describeSuite({ const signedTx = await tx.signAsync(bob); const { result } = await context.createBlock(signedTx); - expect(result!.successful).to.be.false; - expect(result!.error?.section).to.eq("beefy"); - expect(result!.error?.name).to.eq("InvalidFutureBlockVotingProof"); + expect(result?.successful).to.be.false; + expect(result?.error?.section).to.eq("beefy"); + expect(result?.error?.name).to.eq("InvalidFutureBlockVotingProof"); }, }); }, diff --git a/test/suites/dev-tanssi-relay/beefy/test-set-new-genesis.ts b/test/suites/dev-tanssi-relay/beefy/test-set-new-genesis.ts index 18386c2d1..7e7249a78 100644 --- a/test/suites/dev-tanssi-relay/beefy/test-set-new-genesis.ts +++ b/test/suites/dev-tanssi-relay/beefy/test-set-new-genesis.ts @@ -1,10 +1,10 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; +import type { ApiPromise } from "@polkadot/api"; import { jumpToSession } from "../../../util/block"; describeSuite({ - id: "DTR1202", + id: "DEVT1404", title: "BEEFY - Set new genesis", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -16,7 +16,7 @@ describeSuite({ it({ id: "E01", title: "Should be able to update the genesis BEEFY block", - test: async function () { + test: async () => { await jumpToSession(context, 1); const genesisDelayBefore = (await polkadotJs.query.beefy.genesisBlock()).toHuman(); @@ -29,7 +29,7 @@ describeSuite({ .signAsync(context.keyring.alice), { allowFailures: false } ); - expect(result!.successful, result!.error?.name).to.be.true; + expect(result?.successful, result?.error?.name).to.be.true; const currentBlockNumber = (await polkadotJs.rpc.chain.getHeader()).number.toNumber(); const genesisDelayAfter = (await polkadotJs.query.beefy.genesisBlock()).toHuman(); diff --git a/test/suites/dev-tanssi-relay/chain-spec/test_chain_spec.ts b/test/suites/dev-tanssi-relay/chain-spec/test_chain_spec.ts index 353775a82..4f10462cd 100644 --- a/test/suites/dev-tanssi-relay/chain-spec/test_chain_spec.ts +++ b/test/suites/dev-tanssi-relay/chain-spec/test_chain_spec.ts @@ -1,11 +1,11 @@ import { beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; +import type { ApiPromise } from "@polkadot/api"; describeSuite({ - id: "DTR0201", + id: "DEVT0201", title: "Tanssi Relay Chain Spec", foundationMethods: "dev", - testCases: function ({ it, context }) { + testCases: ({ it, context }) => { let polkadotJs: ApiPromise; beforeAll(() => { @@ -15,7 +15,7 @@ describeSuite({ it({ id: "E01", title: "Checking runtime version", - test: async function () { + test: async () => { const specName = polkadotJs.consts.system.version.specName.toString(); expect(specName, "Relay API incorrect").to.toBe("dancelight"); @@ -39,7 +39,7 @@ describeSuite({ it({ id: "E02", title: "Checking ss58 Prefix", - test: async function () { + test: async () => { const ss58Prefix = polkadotJs.consts.system.ss58Prefix.toNumber(); expect(ss58Prefix, "Relay API incorrect").toBe(42); }, diff --git a/test/suites/dev-tanssi-relay/collator-assignment/test-collator-assignment.ts b/test/suites/dev-tanssi-relay/collator-assignment/test-collator-assignment.ts index 1883dfcf3..3d23ffb78 100644 --- a/test/suites/dev-tanssi-relay/collator-assignment/test-collator-assignment.ts +++ b/test/suites/dev-tanssi-relay/collator-assignment/test-collator-assignment.ts @@ -1,13 +1,13 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; +import type { ApiPromise } from "@polkadot/api"; import { jumpBlocks, jumpSessions, jumpToSession } from "util/block"; import { filterAndApply } from "@moonwall/util"; -import { EventRecord } from "@polkadot/types/interfaces"; -import { bool, u32, u8, Vec } from "@polkadot/types-codec"; +import type { EventRecord } from "@polkadot/types/interfaces"; +import type { bool, u32, u8, Vec } from "@polkadot/types-codec"; describeSuite({ - id: "DTR0301", + id: "DEVT0301", title: "Collator assignment tests", foundationMethods: "dev", @@ -21,10 +21,10 @@ describeSuite({ it({ id: "E01", title: "Collator should rotate", - test: async function () { - const fullRotationPeriod = (await context.polkadotJs().query.collatorConfiguration.activeConfig())[ - "fullRotationPeriod" - ].toString(); + test: async () => { + const fullRotationPeriod = ( + await context.polkadotJs().query.collatorConfiguration.activeConfig() + ).fullRotationPeriod.toString(); const sessionIndex = (await polkadotJs.query.session.currentIndex()).toNumber(); // Calculate the remaining sessions for next full rotation // This is a workaround for running moonwall in run mode diff --git a/test/suites/dev-tanssi-relay/collator-assignment/test-configurable-priority.ts b/test/suites/dev-tanssi-relay/collator-assignment/test-configurable-priority.ts index 1e5ed1db4..09e38b6b9 100644 --- a/test/suites/dev-tanssi-relay/collator-assignment/test-configurable-priority.ts +++ b/test/suites/dev-tanssi-relay/collator-assignment/test-configurable-priority.ts @@ -1,50 +1,10 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { ApiPromise, Keyring } from "@polkadot/api"; +import { type ApiPromise, Keyring } from "@polkadot/api"; import { jumpSessions } from "util/block"; -const emptyGenesisData = (api) => { - const g = api.createType("DpContainerChainGenesisDataContainerChainGenesisData", { - storage: [ - { - key: "0x3a636f6465", - value: "0x0102030405060708090a", - }, - ], - name: "0x436f6e7461696e657220436861696e2032303030", - id: "0x636f6e7461696e65722d636861696e2d32303030", - forkId: null, - extensions: "0x", - properties: { - tokenMetadata: { - tokenSymbol: "0x61626364", - ss58Format: 42, - tokenDecimals: 12, - }, - isEthereum: false, - }, - }); - return g; -}; - -const sortCollatorAssignment = (collatorAssignment) => { - return Object.keys(collatorAssignment["containerChains"]) - .sort((a, b) => { - const b_collators = collatorAssignment["containerChains"][b].length; - const a_collators = collatorAssignment["containerChains"][a].length; - if (a_collators !== b_collators) { - return ( - collatorAssignment["containerChains"][b].length - collatorAssignment["containerChains"][a].length - ); - } else { - return Number(a) - Number(b); - } - }) - .map((x) => Number(x)); -}; - describeSuite({ - id: "DTR0401", + id: "DEVT0302", title: "Collator assignment tests", foundationMethods: "dev", @@ -65,7 +25,7 @@ describeSuite({ alice.address, 2002, slotFrequency, - nextProfileId, + nextProfileId.toNumber(), emptyGenesisData(polkadotJs), "0x01" ); @@ -113,6 +73,7 @@ describeSuite({ ]); const pendingParas = await polkadotJs.query.containerRegistrar.pendingParaIds(); + // @ts-expect-error Missing Orchestrator Pallets in api-augment expect(pendingParas.length).to.be.eq(1); const parasScheduled = pendingParas[0][1]; expect(parasScheduled.toJSON()).to.deep.equal([2000, 2001, 2002, 2003, 2004]); @@ -127,13 +88,15 @@ describeSuite({ const activeConfig = (await polkadotJs.query.collatorConfiguration.activeConfig()).toJSON(); - // Existing collators + // @ts-expect-error Missing Orchestrator Pallets in api-augment const numberOfInvulnerables = (await polkadotJs.query.tanssiInvulnerables.invulnerables()).length; // We will have two collators less than we need so that we can detect changes in order // in below tests easily. const numberOfInvulnerablesNeeded = + // @ts-expect-error Missing Orchestrator Pallets in api-augment activeConfig.collatorsPerContainer * 2 + + // @ts-expect-error Missing Orchestrator Pallets in api-augment activeConfig.collatorsPerParathread * 3 - numberOfInvulnerables - 2; @@ -188,7 +151,7 @@ describeSuite({ it({ id: "E01", title: "Set of Parathreads would not be truncated", - test: async function () { + test: async () => { const keyring = new Keyring({ type: "sr25519" }); const alice = keyring.addFromUri("//Alice", { name: "Alice default" }); @@ -222,7 +185,7 @@ describeSuite({ it({ id: "E02", title: "Set of Parachains should be sort by tip and truncated according to max cores allocated if we have less cores", - test: async function () { + test: async () => { const keyring = new Keyring({ type: "sr25519" }); const alice = keyring.addFromUri("//Alice", { name: "Alice default" }); @@ -268,7 +231,7 @@ describeSuite({ }); async function getRegisterCollatorKeyTx(ed25519Keyring, sr25519Keyring, ecdsaKeyring, api, name, sudoKey, nonce) { - const collatorKey = sr25519Keyring.addFromUri("//" + name + "COLLATOR_ACC", { name: "COLLATOR" + name + " ACC" }); + const collatorKey = sr25519Keyring.addFromUri(`//${name}COLLATOR_ACC`, { name: `COLLATOR${name} ACC` }); const existentialDeposit = api.consts.balances.existentialDeposit.toBigInt(); return { @@ -278,22 +241,21 @@ async function getRegisterCollatorKeyTx(ed25519Keyring, sr25519Keyring, ecdsaKey setKeysTx: await api.tx.session .setKeys( { - grandpa: ed25519Keyring.addFromUri("//" + name + "COLLATOR_GRANDPA", { + grandpa: ed25519Keyring.addFromUri(`//${name}COLLATOR_GRANDPA`, { name: "COLLATOR" + " GRANDPA", }).publicKey, - babe: sr25519Keyring.addFromUri("//" + name + "COLLATOR_BABE", { name: "COLLATOR" + " BABE" }) + babe: sr25519Keyring.addFromUri(`//${name}COLLATOR_BABE`, { name: "COLLATOR" + " BABE" }).publicKey, + para_validator: sr25519Keyring.addFromUri(`//${name}COLLATOR_PV`, { name: "COLLATOR" + " PV" }) .publicKey, - para_validator: sr25519Keyring.addFromUri("//" + name + "COLLATOR_PV", { name: "COLLATOR" + " PV" }) - .publicKey, - para_assignment: sr25519Keyring.addFromUri("//" + name + "COLLATOR_PA", { + para_assignment: sr25519Keyring.addFromUri(`//${name}COLLATOR_PA`, { name: "COLLATOR" + " PA", }).publicKey, - authority_discovery: sr25519Keyring.addFromUri("//" + name + "COLLATOR_AD", { + authority_discovery: sr25519Keyring.addFromUri(`//${name}COLLATOR_AD`, { name: "COLLATOR" + " AD", }).publicKey, - beefy: ecdsaKeyring.addFromUri("//" + name + "COLLATOR_BEEFY", { name: "COLLATOR" + " BEEFY" }) + beefy: ecdsaKeyring.addFromUri(`//${name}COLLATOR_BEEFY`, { name: "COLLATOR" + " BEEFY" }) .publicKey, - nimbus: sr25519Keyring.addFromUri("//" + name + "COLLATOR_NIMBUS", { name: "COLLATOR" + " NIMBUS" }) + nimbus: sr25519Keyring.addFromUri(`//${name}COLLATOR_NIMBUS`, { name: "COLLATOR" + " NIMBUS" }) .publicKey, }, [] @@ -314,10 +276,11 @@ async function createTxBatchForCreatingPara( manager, paraId, slotFreq, - nextProfileId, + nextProfileId: number, containerChainGenesisData, headData ) { + let nextProfile = nextProfileId; const txs = []; const reserveTx = api.tx.registrar.reserve(); txs.push( @@ -329,7 +292,7 @@ async function createTxBatchForCreatingPara( ) ); - let registerTx; + let registerTx: any; if (slotFreq == null) { registerTx = api.tx.containerRegistrar.register(paraId, containerChainGenesisData, headData); } else { @@ -358,12 +321,49 @@ async function createTxBatchForCreatingPara( manager ); txs.push(profileTx); - const assignmentTx = api.tx.sudo.sudo(api.tx.dataPreservers.forceStartAssignment(nextProfileId++, paraId, "Free")); + const assignmentTx = api.tx.sudo.sudo(api.tx.dataPreservers.forceStartAssignment(nextProfile++, paraId, "Free")); txs.push(assignmentTx); const trustedValidationCodeTx = api.tx.paras.addTrustedValidationCode("0x0102030405060708090a"); txs.push(trustedValidationCodeTx); const markValidForCollating = api.tx.containerRegistrar.markValidForCollating(paraId); txs.push(markValidForCollating); - return { txs: txs, nextProfileId: nextProfileId }; + return { txs: txs, nextProfileId: nextProfile }; } + +const emptyGenesisData = (api) => { + const g = api.createType("DpContainerChainGenesisDataContainerChainGenesisData", { + storage: [ + { + key: "0x3a636f6465", + value: "0x0102030405060708090a", + }, + ], + name: "0x436f6e7461696e657220436861696e2032303030", + id: "0x636f6e7461696e65722d636861696e2d32303030", + forkId: null, + extensions: "0x", + properties: { + tokenMetadata: { + tokenSymbol: "0x61626364", + ss58Format: 42, + tokenDecimals: 12, + }, + isEthereum: false, + }, + }); + return g; +}; + +const sortCollatorAssignment = (collatorAssignment) => { + return Object.keys(collatorAssignment.containerChains) + .sort((a, b) => { + const b_collators = collatorAssignment.containerChains[b].length; + const a_collators = collatorAssignment.containerChains[a].length; + if (a_collators !== b_collators) { + return collatorAssignment.containerChains[b].length - collatorAssignment.containerChains[a].length; + } + return Number(a) - Number(b); + }) + .map((x) => Number(x)); +}; diff --git a/test/suites/dev-tanssi-relay/eth-client/test-eth-ciient-initial-checkpoint.ts b/test/suites/dev-tanssi-relay/eth-client/test-eth-ciient-initial-checkpoint.ts index b955ecc32..1aa969bab 100644 --- a/test/suites/dev-tanssi-relay/eth-client/test-eth-ciient-initial-checkpoint.ts +++ b/test/suites/dev-tanssi-relay/eth-client/test-eth-ciient-initial-checkpoint.ts @@ -1,11 +1,11 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; -import { readFileSync } from "fs"; -import { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; +import { readFileSync } from "node:fs"; +import type { KeyringPair } from "@moonwall/util"; describeSuite({ - id: "DTR1201", + id: "DEVT0401", title: "Ethereum Beacon Client tests", foundationMethods: "dev", @@ -21,7 +21,7 @@ describeSuite({ it({ id: "E01", title: "Ethreum client should accept an intiial checkpoint", - test: async function () { + test: async () => { const initialCheckpoint = JSON.parse( readFileSync("tmp/ethereum_client_test/initial-checkpoint.json").toString() ); @@ -29,14 +29,13 @@ describeSuite({ const signedTx = await polkadotJs.tx.sudo.sudo(tx).signAsync(alice); await context.createBlock([signedTx]); const checkpointRoot = await polkadotJs.query.ethereumBeaconClient.validatorsRoot(); - expect(checkpointRoot.toHuman()).to.equal(initialCheckpoint["validators_root"]); + expect(checkpointRoot.toHuman()).to.equal(initialCheckpoint.validators_root); const latestFinalizedBlockRoot = await polkadotJs.query.ethereumBeaconClient.latestFinalizedBlockRoot(); - const latestFinalizedSlot = await polkadotJs.query.ethereumBeaconClient.finalizedBeaconState( - latestFinalizedBlockRoot - ); + const latestFinalizedSlot = + await polkadotJs.query.ethereumBeaconClient.finalizedBeaconState(latestFinalizedBlockRoot); - expect(latestFinalizedSlot.toHuman().slot).to.equal(initialCheckpoint["header"]["slot"].toString()); + expect(latestFinalizedSlot.toHuman().slot).to.equal(initialCheckpoint.header.slot.toString()); }, }); }, diff --git a/test/suites/dev-tanssi-relay/eth-client/test-eth-ciient-submit-update-for-next-period-without-committee.ts b/test/suites/dev-tanssi-relay/eth-client/test-eth-ciient-submit-update-for-next-period-without-committee.ts index ee4c859c5..a06a9970f 100644 --- a/test/suites/dev-tanssi-relay/eth-client/test-eth-ciient-submit-update-for-next-period-without-committee.ts +++ b/test/suites/dev-tanssi-relay/eth-client/test-eth-ciient-submit-update-for-next-period-without-committee.ts @@ -1,19 +1,18 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; -import { readFileSync } from "fs"; -import { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; +import { readFileSync } from "node:fs"; +import type { KeyringPair } from "@moonwall/util"; describeSuite({ - id: "DTR1202", + id: "DEVT0402", title: "Ethereum Beacon Client tests", foundationMethods: "dev", testCases: ({ it, context }) => { let polkadotJs: ApiPromise; let alice: KeyringPair; - let initialSlot; - String; + let initialSlot: string; beforeAll(async () => { polkadotJs = context.polkadotJs(); @@ -22,7 +21,7 @@ describeSuite({ const initialCheckpoint = JSON.parse( readFileSync("tmp/ethereum_client_test/initial-checkpoint.json").toString() ); - initialSlot = initialCheckpoint["header"]["slot"].toString(); + initialSlot = initialCheckpoint.header.slot.toString(); const tx = polkadotJs.tx.ethereumBeaconClient.forceCheckpoint(initialCheckpoint); const signedTx = await polkadotJs.tx.sudo.sudo(tx).signAsync(alice); await context.createBlock([signedTx]); @@ -31,7 +30,7 @@ describeSuite({ it({ id: "E02", title: "Ethreum client should not be able to receive an update for the next period without the next sync committee", - test: async function () { + test: async () => { const nextPeriodUpdate = JSON.parse( readFileSync("tmp/ethereum_client_test/next-finalized-header-update.json").toString() ); @@ -44,9 +43,8 @@ describeSuite({ expect(result[0].error.name).to.eq("SkippedSyncCommitteePeriod"); const latestFinalizedBlockRoot = await polkadotJs.query.ethereumBeaconClient.latestFinalizedBlockRoot(); - const latestFinalizedSlot = await polkadotJs.query.ethereumBeaconClient.finalizedBeaconState( - latestFinalizedBlockRoot - ); + const latestFinalizedSlot = + await polkadotJs.query.ethereumBeaconClient.finalizedBeaconState(latestFinalizedBlockRoot); // The update did not go through, so the slot is the same as the initial one expect(latestFinalizedSlot.toHuman().slot).to.equal(initialSlot); diff --git a/test/suites/dev-tanssi-relay/eth-client/test-eth-ciient-submit-update-same-period.ts b/test/suites/dev-tanssi-relay/eth-client/test-eth-ciient-submit-update-same-period.ts index c6bdd0c0b..6dbd268d1 100644 --- a/test/suites/dev-tanssi-relay/eth-client/test-eth-ciient-submit-update-same-period.ts +++ b/test/suites/dev-tanssi-relay/eth-client/test-eth-ciient-submit-update-same-period.ts @@ -1,11 +1,11 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; -import { readFileSync } from "fs"; -import { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; +import { readFileSync } from "node:fs"; +import type { KeyringPair } from "@moonwall/util"; describeSuite({ - id: "DTR1203", + id: "DEVT0403", title: "Ethereum Beacon Client tests", foundationMethods: "dev", @@ -28,7 +28,7 @@ describeSuite({ it({ id: "E02", title: "Ethreum client should be able to receive an update within the same period by same committee", - test: async function () { + test: async () => { const samePeriodUpdate = JSON.parse( readFileSync("tmp/ethereum_client_test/finalized-header-update.json").toString() ); @@ -37,13 +37,10 @@ describeSuite({ await context.createBlock([signedTx]); const latestFinalizedBlockRoot = await polkadotJs.query.ethereumBeaconClient.latestFinalizedBlockRoot(); - const latestFinalizedSlot = await polkadotJs.query.ethereumBeaconClient.finalizedBeaconState( - latestFinalizedBlockRoot - ); + const latestFinalizedSlot = + await polkadotJs.query.ethereumBeaconClient.finalizedBeaconState(latestFinalizedBlockRoot); - expect(latestFinalizedSlot.toHuman().slot).to.equal( - samePeriodUpdate["finalized_header"]["slot"].toString() - ); + expect(latestFinalizedSlot.toHuman().slot).to.equal(samePeriodUpdate.finalized_header.slot.toString()); }, }); }, diff --git a/test/suites/dev-tanssi-relay/eth-client/test-eth-client-submit-update-cannot-be-done-without-injecting-new-committee.ts b/test/suites/dev-tanssi-relay/eth-client/test-eth-client-submit-update-cannot-be-done-without-injecting-new-committee.ts index 2230da068..5dd1ca9ed 100644 --- a/test/suites/dev-tanssi-relay/eth-client/test-eth-client-submit-update-cannot-be-done-without-injecting-new-committee.ts +++ b/test/suites/dev-tanssi-relay/eth-client/test-eth-client-submit-update-cannot-be-done-without-injecting-new-committee.ts @@ -1,18 +1,18 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; -import { readFileSync } from "fs"; -import { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; +import { readFileSync } from "node:fs"; +import type { KeyringPair } from "@moonwall/util"; describeSuite({ - id: "DTR1204", + id: "DEVT0404", title: "Ethereum Beacon Client tests", foundationMethods: "dev", testCases: ({ it, context }) => { let polkadotJs: ApiPromise; let alice: KeyringPair; - let initialSlot; + let initialSlot: string; String; beforeAll(async () => { @@ -22,7 +22,7 @@ describeSuite({ const initialCheckpoint = JSON.parse( readFileSync("tmp/ethereum_client_test/initial-checkpoint.json").toString() ); - initialSlot = initialCheckpoint["header"]["slot"].toString(); + initialSlot = initialCheckpoint.header.slot.toString(); const tx = polkadotJs.tx.ethereumBeaconClient.forceCheckpoint(initialCheckpoint); const signedTx = await polkadotJs.tx.sudo.sudo(tx).signAsync(alice); await context.createBlock([signedTx]); @@ -31,7 +31,7 @@ describeSuite({ it({ id: "E01", title: "Ethreum client should not be able to receive an update for the next period without pushing the following sync committee", - test: async function () { + test: async () => { // Next sync committee shold give us the default values const nextSyncCommitteeBeforeUpdate = await polkadotJs.query.ethereumBeaconClient.nextSyncCommittee(); expect(nextSyncCommitteeBeforeUpdate.root.toHuman()).to.be.eq( @@ -65,9 +65,8 @@ describeSuite({ expect(result[0].error.name).to.eq("SyncCommitteeUpdateRequired"); const latestFinalizedBlockRoot = await polkadotJs.query.ethereumBeaconClient.latestFinalizedBlockRoot(); - const latestFinalizedSlot = await polkadotJs.query.ethereumBeaconClient.finalizedBeaconState( - latestFinalizedBlockRoot - ); + const latestFinalizedSlot = + await polkadotJs.query.ethereumBeaconClient.finalizedBeaconState(latestFinalizedBlockRoot); // The update did not go through, so the slot is the same as the latest one we pushed // The sync committee update has a a finalized slot lower than the initial, so we keep the diff --git a/test/suites/dev-tanssi-relay/eth-client/test-eth-client-submit-update-next-period-with-proper-committees.ts b/test/suites/dev-tanssi-relay/eth-client/test-eth-client-submit-update-next-period-with-proper-committees.ts index 09a286f8d..5455c4a99 100644 --- a/test/suites/dev-tanssi-relay/eth-client/test-eth-client-submit-update-next-period-with-proper-committees.ts +++ b/test/suites/dev-tanssi-relay/eth-client/test-eth-client-submit-update-next-period-with-proper-committees.ts @@ -1,11 +1,11 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; -import { readFileSync } from "fs"; -import { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; +import { readFileSync } from "node:fs"; +import type { KeyringPair } from "@moonwall/util"; describeSuite({ - id: "DTR1205", + id: "DEVT0405", title: "Ethereum Beacon Client tests", foundationMethods: "dev", @@ -28,7 +28,7 @@ describeSuite({ it({ id: "E01", title: "Ethreum client should be able to receive an update for the next period when pushing all committee info", - test: async function () { + test: async () => { // Next sync committee shold give us the default values const nextSyncCommitteeBeforeUpdate = await polkadotJs.query.ethereumBeaconClient.nextSyncCommittee(); expect(nextSyncCommitteeBeforeUpdate.root.toHuman()).to.be.eq( @@ -69,12 +69,11 @@ describeSuite({ ]); const latestFinalizedBlockRoot = await polkadotJs.query.ethereumBeaconClient.latestFinalizedBlockRoot(); - const latestFinalizedSlot = await polkadotJs.query.ethereumBeaconClient.finalizedBeaconState( - latestFinalizedBlockRoot - ); + const latestFinalizedSlot = + await polkadotJs.query.ethereumBeaconClient.finalizedBeaconState(latestFinalizedBlockRoot); // The update did go through, we should have the latest state - const expectedSlot = nextPeriodUpdate["finalized_header"]["slot"]; + const expectedSlot = nextPeriodUpdate.finalized_header.slot; expect(latestFinalizedSlot.toHuman().slot.replace(/,/g, "")).to.equal(expectedSlot.toString()); }, }); diff --git a/test/suites/dev-tanssi-relay/external-validators-rewards/test-rewards-runtime-api.ts b/test/suites/dev-tanssi-relay/external-validators-rewards/test-rewards-runtime-api.ts index 6a7afe604..20c3b6862 100644 --- a/test/suites/dev-tanssi-relay/external-validators-rewards/test-rewards-runtime-api.ts +++ b/test/suites/dev-tanssi-relay/external-validators-rewards/test-rewards-runtime-api.ts @@ -1,16 +1,17 @@ import { beforeAll, customDevRpcRequest, describeSuite, expect } from "@moonwall/cli"; -import { ApiPromise, Keyring } from "@polkadot/api"; +import { type ApiPromise, Keyring } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; import { jumpToSession } from "util/block"; describeSuite({ - id: "DTR0820", + id: "DEVT0603", title: "Starlight <> Ethereum - Rewards mapping", foundationMethods: "dev", testCases: ({ it, context }) => { let polkadotJs: ApiPromise; - let alice; + let alice: KeyringPair; - beforeAll(async function () { + beforeAll(async () => { polkadotJs = context.polkadotJs(); alice = context.keyring.alice; }); @@ -18,7 +19,7 @@ describeSuite({ it({ id: "T01", title: "Should succeed calling runtimeApi for generating/validating merkle proofs", - test: async function () { + test: async () => { const keyring = new Keyring({ type: "sr25519" }); const aliceStash = keyring.addFromUri("//Alice//stash"); await context.createBlock(); diff --git a/test/suites/dev-tanssi-relay/external-validators-rewards/test_external_validator_reward_candidates.ts b/test/suites/dev-tanssi-relay/external-validators-rewards/test_external_validator_reward_candidates.ts index eab4826eb..b816f42b6 100644 --- a/test/suites/dev-tanssi-relay/external-validators-rewards/test_external_validator_reward_candidates.ts +++ b/test/suites/dev-tanssi-relay/external-validators-rewards/test_external_validator_reward_candidates.ts @@ -1,16 +1,17 @@ import "@tanssi/api-augment"; import { describeSuite, customDevRpcRequest, expect, beforeAll } from "@moonwall/cli"; -import { ApiPromise, Keyring } from "@polkadot/api"; +import { type ApiPromise, Keyring } from "@polkadot/api"; import { jumpToSession } from "util/block"; +import type { KeyringPair } from "@moonwall/util"; describeSuite({ - id: "DTR1601", + id: "DEVT0601", title: "Paras inherent tests", foundationMethods: "dev", testCases: ({ it, context }) => { let polkadotJs: ApiPromise; - let alice; + let alice: KeyringPair; beforeAll(async () => { polkadotJs = context.polkadotJs(); @@ -20,7 +21,7 @@ describeSuite({ it({ id: "E01", title: "para candidates should trigger reward info", - test: async function () { + test: async () => { const keyring = new Keyring({ type: "sr25519" }); const aliceStash = keyring.addFromUri("//Alice//stash"); diff --git a/test/suites/dev-tanssi-relay/external-validators-rewards/test_external_validator_rewards.ts b/test/suites/dev-tanssi-relay/external-validators-rewards/test_external_validator_rewards.ts index dbe92a0fc..19ccde6e8 100644 --- a/test/suites/dev-tanssi-relay/external-validators-rewards/test_external_validator_rewards.ts +++ b/test/suites/dev-tanssi-relay/external-validators-rewards/test_external_validator_rewards.ts @@ -1,18 +1,18 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { ApiPromise, Keyring } from "@polkadot/api"; +import { type ApiPromise, Keyring } from "@polkadot/api"; import { jumpToSession } from "util/block"; import { encodeAddress } from "@polkadot/util-crypto"; -import { MultiLocation } from "../../../util/xcm"; - +import type { MultiLocation } from "../../../util/xcm"; +import type { KeyringPair } from "@moonwall/util"; describeSuite({ - id: "DTR1602", + id: "DEVT0602", title: "Ethereum reward tests", foundationMethods: "dev", testCases: ({ it, context }) => { let polkadotJs: ApiPromise; - let alice; + let alice: KeyringPair; beforeAll(async () => { polkadotJs = context.polkadotJs(); @@ -22,7 +22,7 @@ describeSuite({ it({ id: "E01", title: "para candidates should trigger reward info", - test: async function () { + test: async () => { const keyring = new Keyring({ type: "sr25519" }); const aliceStash = keyring.addFromUri("//Alice//stash"); @@ -89,7 +89,7 @@ describeSuite({ it({ id: "E02", title: "Check rewards storage clears after historyDepth", - test: async function () { + test: async () => { const sessionsPerEra = await polkadotJs.consts.externalValidators.sessionsPerEra; const historyDepth = await polkadotJs.consts.externalValidatorsRewards.historyDepth; @@ -113,7 +113,7 @@ describeSuite({ it({ id: "E03", title: "Ethereum Sovereign Account balance should increase on session change", - test: async function () { + test: async () => { const currentIndex = (await polkadotJs.query.session.currentIndex()).toNumber(); const account = encodeAddress("0x34cdd3f84040fb44d70e83b892797846a8c0a556ce08cd470bf6d4cf7b94ff77", 0); const sessionsPerEra = await polkadotJs.consts.externalValidators.sessionsPerEra; diff --git a/test/suites/dev-tanssi-relay/external-validators/test-external-validators.ts b/test/suites/dev-tanssi-relay/external-validators/test-external-validators.ts index e4fd720cf..fc23adf74 100644 --- a/test/suites/dev-tanssi-relay/external-validators/test-external-validators.ts +++ b/test/suites/dev-tanssi-relay/external-validators/test-external-validators.ts @@ -1,10 +1,10 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { ApiPromise, Keyring } from "@polkadot/api"; +import { type ApiPromise, Keyring } from "@polkadot/api"; import { jumpToSession } from "util/block"; describeSuite({ - id: "DTR1501", + id: "DEVT0501", title: "External validators tests", foundationMethods: "dev", @@ -18,7 +18,7 @@ describeSuite({ it({ id: "E01", title: "Collator should rotate", - test: async function () { + test: async () => { const keyring = new Keyring({ type: "sr25519" }); const alice = keyring.addFromUri("//Alice", { name: "Alice default" }); const aliceStash = keyring.addFromUri("//Alice//stash"); diff --git a/test/suites/dev-tanssi-relay/inflation-rewards/test-rewards.ts b/test/suites/dev-tanssi-relay/inflation-rewards/test-rewards.ts index f73859ad5..e895ac9f8 100644 --- a/test/suites/dev-tanssi-relay/inflation-rewards/test-rewards.ts +++ b/test/suites/dev-tanssi-relay/inflation-rewards/test-rewards.ts @@ -1,8 +1,8 @@ import "@tanssi/api-augment"; -import { describeSuite, expect, beforeAll, DevModeContext } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; -import { Header, ParaId, HeadData, Digest, DigestItem, Slot } from "@polkadot/types/interfaces"; -import { KeyringPair } from "@moonwall/util"; +import { describeSuite, expect, beforeAll, type DevModeContext } from "@moonwall/cli"; +import type { ApiPromise } from "@polkadot/api"; +import type { Header, ParaId, HeadData, Digest, DigestItem, Slot } from "@polkadot/types/interfaces"; +import type { KeyringPair } from "@moonwall/util"; import { fetchIssuance, filterRewardFromContainer, jumpToSession } from "util/block"; import { DANCELIGHT_BOND } from "util/constants"; import { stringToHex } from "@polkadot/util"; @@ -52,7 +52,7 @@ async function mockAndInsertHeadData( } describeSuite({ - id: "DTR1101", + id: "DEVT0701", title: "Dancelight: InflationRewards test suite", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -67,7 +67,7 @@ describeSuite({ it({ id: "E01", title: "Parachain bond receives 30% of the inflation and pending rewards plus division dust", - test: async function () { + test: async () => { await context.createBlock(); let expectedAmountParachainBond = 0n; @@ -109,7 +109,7 @@ describeSuite({ it({ id: "E02", title: "Collator receives the reward from container-chain block proposal", - test: async function () { + test: async () => { // Jump 2 sessions to have collators assigned to containers. await jumpToSession(context, 2); const assignment = (await polkadotJs.query.tanssiCollatorAssignment.collatorContainerChain()).toJSON(); diff --git a/test/suites/dev-tanssi-relay/pallet-configuration/test-active-config-collators-per-container.ts b/test/suites/dev-tanssi-relay/pallet-configuration/test-active-config-collators-per-container.ts index 103132c4a..b1b6e0450 100644 --- a/test/suites/dev-tanssi-relay/pallet-configuration/test-active-config-collators-per-container.ts +++ b/test/suites/dev-tanssi-relay/pallet-configuration/test-active-config-collators-per-container.ts @@ -2,13 +2,13 @@ import { expect, beforeAll, describeSuite } from "@moonwall/cli"; import { jumpSessions } from "../../../util/block"; describeSuite({ - id: "CT0401", + id: "DEVT0801", title: "Configuration - ActiveConfig - CollatorsPerContainer", foundationMethods: "dev", testCases: ({ context, it }) => { - beforeAll(async function () { + beforeAll(async () => { const config = await context.polkadotJs().query.collatorConfiguration.activeConfig(); - expect(config["collatorsPerContainer"].toString()).toBe("2"); + expect(config.collatorsPerContainer.toString()).toBe("2"); const { result } = await context.createBlock( context @@ -16,7 +16,7 @@ describeSuite({ .tx.sudo.sudo(context.polkadotJs().tx.collatorConfiguration.setCollatorsPerContainer(5)) .signAsync(context.keyring.alice) ); - expect(result!.successful, result!.error?.name).to.be.true; + expect(result?.successful, result?.error?.name).to.be.true; await jumpSessions(context, 2); }); @@ -24,9 +24,9 @@ describeSuite({ it({ id: "T01", title: "should set collators per container after 2 sessions", - test: async function () { + test: async () => { const config = await context.polkadotJs().query.collatorConfiguration.activeConfig(); - expect(config["collatorsPerContainer"].toString()).toBe("5"); + expect(config.collatorsPerContainer.toString()).toBe("5"); }, }); }, diff --git a/test/suites/dev-tanssi-relay/pallet-configuration/test-active-config-max-collators.ts b/test/suites/dev-tanssi-relay/pallet-configuration/test-active-config-max-collators.ts index 6720379e0..31426f564 100644 --- a/test/suites/dev-tanssi-relay/pallet-configuration/test-active-config-max-collators.ts +++ b/test/suites/dev-tanssi-relay/pallet-configuration/test-active-config-max-collators.ts @@ -2,13 +2,13 @@ import { expect, beforeAll, describeSuite } from "@moonwall/cli"; import { jumpSessions } from "../../../util/block"; describeSuite({ - id: "CT0402", + id: "DEVT0802", title: "Configuration - ActiveConfig - MaxCollators", foundationMethods: "dev", testCases: ({ context, it }) => { - beforeAll(async function () { + beforeAll(async () => { const config = await context.polkadotJs().query.collatorConfiguration.activeConfig(); - expect(config["maxCollators"].toString()).toBe("100"); + expect(config.maxCollators.toString()).toBe("100"); const { result } = await context.createBlock( context @@ -16,7 +16,7 @@ describeSuite({ .tx.sudo.sudo(context.polkadotJs().tx.collatorConfiguration.setMaxCollators(200)) .signAsync(context.keyring.alice) ); - expect(result!.successful, result!.error?.name).to.be.true; + expect(result?.successful, result?.error?.name).to.be.true; await jumpSessions(context, 2); }); @@ -24,9 +24,9 @@ describeSuite({ it({ id: "T01", title: "should set max collators after 2 sessions", - test: async function () { + test: async () => { const config = await context.polkadotJs().query.collatorConfiguration.activeConfig(); - expect(config["maxCollators"].toString()).toBe("200"); + expect(config.maxCollators.toString()).toBe("200"); }, }); }, diff --git a/test/suites/dev-tanssi-relay/pallet-configuration/test-active-config-max-orchestrator-collators.ts b/test/suites/dev-tanssi-relay/pallet-configuration/test-active-config-max-orchestrator-collators.ts index ac5fea22a..c93f64a92 100644 --- a/test/suites/dev-tanssi-relay/pallet-configuration/test-active-config-max-orchestrator-collators.ts +++ b/test/suites/dev-tanssi-relay/pallet-configuration/test-active-config-max-orchestrator-collators.ts @@ -2,13 +2,13 @@ import { expect, beforeAll, describeSuite } from "@moonwall/cli"; import { jumpSessions } from "../../../util/block"; describeSuite({ - id: "CT0403", + id: "DEVT0803", title: "Configuration - ActiveConfig - MaxOrchestratorCollators", foundationMethods: "dev", testCases: ({ context, it }) => { - beforeAll(async function () { + beforeAll(async () => { const config = await context.polkadotJs().query.collatorConfiguration.activeConfig(); - expect(config["maxOrchestratorCollators"].toString()).toBe("0"); + expect(config.maxOrchestratorCollators.toString()).toBe("0"); const { result } = await context.createBlock( context @@ -16,7 +16,7 @@ describeSuite({ .tx.sudo.sudo(context.polkadotJs().tx.collatorConfiguration.setMaxOrchestratorCollators(2)) .signAsync(context.keyring.alice) ); - expect(result!.successful, result!.error?.name).to.be.true; + expect(result?.successful, result?.error?.name).to.be.true; await jumpSessions(context, 2); }); @@ -24,9 +24,9 @@ describeSuite({ it({ id: "T01", title: "should set max orchestrator collators after 2 sessions", - test: async function () { + test: async () => { const config = await context.polkadotJs().query.collatorConfiguration.activeConfig(); - expect(config["maxOrchestratorCollators"].toString()).toBe("2"); + expect(config.maxOrchestratorCollators.toString()).toBe("2"); }, }); }, diff --git a/test/suites/dev-tanssi-relay/pallet-configuration/test-active-config-min-orchestrator-collators.ts b/test/suites/dev-tanssi-relay/pallet-configuration/test-active-config-min-orchestrator-collators.ts index c8aaa3d61..d0a799403 100644 --- a/test/suites/dev-tanssi-relay/pallet-configuration/test-active-config-min-orchestrator-collators.ts +++ b/test/suites/dev-tanssi-relay/pallet-configuration/test-active-config-min-orchestrator-collators.ts @@ -2,15 +2,15 @@ import { expect, beforeAll, describeSuite } from "@moonwall/cli"; import { initializeCustomCreateBlock, jumpSessions } from "../../../util/block"; describeSuite({ - id: "CT0404", + id: "DEVT0804", title: "Configuration - ActiveConfig - MinOrchestratorCollators", foundationMethods: "dev", testCases: ({ context, it }) => { - beforeAll(async function () { + beforeAll(async () => { initializeCustomCreateBlock(context); const config = await context.polkadotJs().query.collatorConfiguration.activeConfig(); - expect(config["minOrchestratorCollators"].toString()).toBe("0"); + expect(config.minOrchestratorCollators.toString()).toBe("0"); const { result } = await context.createBlock( await context @@ -18,7 +18,7 @@ describeSuite({ .tx.sudo.sudo(context.polkadotJs().tx.collatorConfiguration.setMinOrchestratorCollators(2)) .signAsync(context.keyring.alice) ); - expect(result!.successful, result!.error?.name).to.be.true; + expect(result?.successful, result?.error?.name).to.be.true; await jumpSessions(context, 2); }); @@ -26,9 +26,9 @@ describeSuite({ it({ id: "T01", title: "should set max orchestrator collators after 2 sessions", - test: async function () { + test: async () => { const config = await context.polkadotJs().query.collatorConfiguration.activeConfig(); - expect(config["minOrchestratorCollators"].toString()).toBe("2"); + expect(config.minOrchestratorCollators.toString()).toBe("2"); }, }); }, diff --git a/test/suites/dev-tanssi-relay/pallet-configuration/test-active-config-origin.ts b/test/suites/dev-tanssi-relay/pallet-configuration/test-active-config-origin.ts index b4a31d93c..ae64b4589 100644 --- a/test/suites/dev-tanssi-relay/pallet-configuration/test-active-config-origin.ts +++ b/test/suites/dev-tanssi-relay/pallet-configuration/test-active-config-origin.ts @@ -1,14 +1,14 @@ import { expect, describeSuite } from "@moonwall/cli"; describeSuite({ - id: "CT0405", + id: "DEVT0805", title: "Configuration - ActiveConfig - Origin", foundationMethods: "dev", testCases: ({ context, it }) => { it({ id: "T01", title: "should fail on setMaxCollators if not sudo", - test: async function () { + test: async () => { const { result } = await context.createBlock( context.polkadotJs().tx.collatorConfiguration.setMaxCollators(200).signAsync(context.keyring.bob), { allowFailures: true } @@ -21,7 +21,7 @@ describeSuite({ it({ id: "T02", title: "should fail on setMinOrchestratorCollators if not sudo", - test: async function () { + test: async () => { const { result } = await context.createBlock( context .polkadotJs() @@ -37,7 +37,7 @@ describeSuite({ it({ id: "T03", title: "should fail on setMaxOrchestratorCollators if not sudo", - test: async function () { + test: async () => { const { result } = await context.createBlock( context .polkadotJs() @@ -53,7 +53,7 @@ describeSuite({ it({ id: "T04", title: "should fail on setCollatorsPerContainer if not sudo", - test: async function () { + test: async () => { const { result } = await context.createBlock( context .polkadotJs() diff --git a/test/suites/dev-tanssi-relay/pallet-configuration/test-active-config-target-fullness.ts b/test/suites/dev-tanssi-relay/pallet-configuration/test-active-config-target-fullness.ts index 2f04c8033..a169e9aef 100644 --- a/test/suites/dev-tanssi-relay/pallet-configuration/test-active-config-target-fullness.ts +++ b/test/suites/dev-tanssi-relay/pallet-configuration/test-active-config-target-fullness.ts @@ -2,13 +2,13 @@ import { expect, beforeAll, describeSuite } from "@moonwall/cli"; import { jumpSessions } from "../../../util/block"; describeSuite({ - id: "CT0406", + id: "DEVT0806", title: "Configuration - ActiveConfig - targetContainerChainFullness", foundationMethods: "dev", testCases: ({ context, it }) => { - beforeAll(async function () { + beforeAll(async () => { const config = await context.polkadotJs().query.collatorConfiguration.activeConfig(); - expect(config["targetContainerChainFullness"].toString()).toBe("800000000"); + expect(config.targetContainerChainFullness.toString()).toBe("800000000"); const { result } = await context.createBlock( context @@ -18,7 +18,7 @@ describeSuite({ ) .signAsync(context.keyring.alice) ); - expect(result!.successful, result!.error?.name).to.be.true; + expect(result?.successful, result?.error?.name).to.be.true; await jumpSessions(context, 2); }); @@ -26,9 +26,9 @@ describeSuite({ it({ id: "T01", title: "should set target fullness after 2 sessions", - test: async function () { + test: async () => { const config = await context.polkadotJs().query.collatorConfiguration.activeConfig(); - expect(config["targetContainerChainFullness"].toString()).toBe("500000000"); + expect(config.targetContainerChainFullness.toString()).toBe("500000000"); }, }); }, diff --git a/test/suites/dev-tanssi-relay/pallet-data-preservers/test_pallet_data_preservers.ts b/test/suites/dev-tanssi-relay/pallet-data-preservers/test_pallet_data_preservers.ts index 0f82e7101..fd938cf04 100644 --- a/test/suites/dev-tanssi-relay/pallet-data-preservers/test_pallet_data_preservers.ts +++ b/test/suites/dev-tanssi-relay/pallet-data-preservers/test_pallet_data_preservers.ts @@ -1,11 +1,11 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; -import { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; import { initializeCustomCreateBlock } from "../../../util/block.ts"; describeSuite({ - id: "DTR0601", + id: "DEVT0901", title: "Data preservers pallet relay test suite", foundationMethods: "dev", @@ -25,7 +25,7 @@ describeSuite({ it({ id: "E01", title: "User can create profile", - test: async function () { + test: async () => { const profile = { url: "exemple", paraIds: { whitelist: [42, 43] }, @@ -55,7 +55,7 @@ describeSuite({ it({ id: "E02", title: "User can update profile", - test: async function () { + test: async () => { const profile = { url: "exemple", paraIds: { whitelist: [42, 43] }, @@ -107,7 +107,7 @@ describeSuite({ it({ id: "E03", title: "User can delete profile", - test: async function () { + test: async () => { const profile = { url: "exemple", paraIds: { whitelist: [42, 43] }, @@ -143,7 +143,7 @@ describeSuite({ it({ id: "E04", title: "Root can force create profile", - test: async function () { + test: async () => { const profile = { url: "exemple", paraIds: { whitelist: [42, 43] }, @@ -172,7 +172,7 @@ describeSuite({ it({ id: "E05", title: "Root can force update profile", - test: async function () { + test: async () => { const profile = { url: "exemple", paraIds: { whitelist: [42, 43] }, @@ -224,7 +224,7 @@ describeSuite({ it({ id: "E06", title: "Root can force delete profile", - test: async function () { + test: async () => { const profile = { url: "exemple", paraIds: { whitelist: [42, 43] }, @@ -260,7 +260,7 @@ describeSuite({ it({ id: "E07", title: "Profile can be assigned", - test: async function () { + test: async () => { const paraId = 2002; const emptyGenesisData = () => { const g = polkadotJs.createType("DpContainerChainGenesisDataContainerChainGenesisData", { @@ -332,7 +332,7 @@ describeSuite({ it({ id: "E08", title: "Profile can be force assigned", - test: async function () { + test: async () => { const paraId = 2003; const emptyGenesisData = () => { const g = polkadotJs.createType("DpContainerChainGenesisDataContainerChainGenesisData", { @@ -402,7 +402,7 @@ describeSuite({ it({ id: "E09", title: "Profile can be unassigned", - test: async function () { + test: async () => { const paraId = 2004; const emptyGenesisData = () => { const g = polkadotJs.createType("DpContainerChainGenesisDataContainerChainGenesisData", { @@ -475,7 +475,7 @@ describeSuite({ it({ id: "E10", title: "Profile can be force unassigned", - test: async function () { + test: async () => { const paraId = 2005; const emptyGenesisData = () => { const g = polkadotJs.createType("DpContainerChainGenesisDataContainerChainGenesisData", { @@ -547,7 +547,7 @@ describeSuite({ it({ id: "E11", title: "Profile will be unassigned on container deregister", - test: async function () { + test: async () => { const paraId = 2006; const emptyGenesisData = () => { const g = polkadotJs.createType("DpContainerChainGenesisDataContainerChainGenesisData", { diff --git a/test/suites/dev-tanssi-relay/pallet-identity/test_pallet_identity.ts b/test/suites/dev-tanssi-relay/pallet-identity/test_pallet_identity.ts index 66e94f3e0..f47162d3e 100644 --- a/test/suites/dev-tanssi-relay/pallet-identity/test_pallet_identity.ts +++ b/test/suites/dev-tanssi-relay/pallet-identity/test_pallet_identity.ts @@ -1,11 +1,11 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; -import { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; import { hexToString } from "viem"; describeSuite({ - id: "DTR0701", + id: "DEVT1001", title: "Identity pallet test suite", foundationMethods: "dev", @@ -25,7 +25,7 @@ describeSuite({ it({ id: "E01", title: "Sudo account can add registrars", - test: async function () { + test: async () => { const initial_identity_registrars = await polkadotJs.query.identity.registrars(); const tx = polkadotJs.tx.identity.addRegistrar({ @@ -42,13 +42,13 @@ describeSuite({ // Bob is included in the registrars list const bob_exists = identity_registrars .toArray() - .filter((registrar) => registrar.toJSON().account == registrar_bob.address); + .filter((registrar) => registrar.toJSON().account === registrar_bob.address); expect(bob_exists.length).to.be.equal(1); // Registrar addition shows in the events const events = await polkadotJs.query.system.events(); const eventCount = events.filter((a) => { - return a.event.method == "RegistrarAdded"; + return a.event.method === "RegistrarAdded"; }); expect(eventCount.length).to.be.equal(1); }, @@ -57,7 +57,7 @@ describeSuite({ it({ id: "E02", title: "Non-Sudo account fails when adding registrars", - test: async function () { + test: async () => { const initial_identity_registrars = await polkadotJs.query.identity.registrars(); const tx = polkadotJs.tx.identity.addRegistrar({ @@ -74,7 +74,7 @@ describeSuite({ // No addition event const events = await polkadotJs.query.system.events(); const eventCount = events.filter((a) => { - return a.event.method == "RegistrarAdded"; + return a.event.method === "RegistrarAdded"; }); expect(eventCount.length).to.be.equal(0); }, @@ -83,7 +83,7 @@ describeSuite({ it({ id: "E03", title: "User sets its identity", - test: async function () { + test: async () => { const tx = polkadotJs.tx.identity.setIdentity({ display: { raw: "0x49742773206D652C20436861726C6965" }, web: { raw: "0x68747470733A2F2F636861726C69652E696F" }, @@ -93,17 +93,17 @@ describeSuite({ const charlie_identity = await polkadotJs.query.identity.identityOf(general_user_charlie.address); // Display has been set - const charlie_display = hexToString(charlie_identity.toJSON()[0].info.display["raw"]); + const charlie_display = hexToString(charlie_identity.toJSON()[0].info.display.raw); expect(charlie_display).to.equal("It's me, Charlie"); // Web has been set - const charlie_web = hexToString(charlie_identity.toJSON()[0].info.web["raw"]); + const charlie_web = hexToString(charlie_identity.toJSON()[0].info.web.raw); expect(charlie_web).to.equal("https://charlie.io"); // Event triggered const events = await polkadotJs.query.system.events(); const eventCount = events.filter((a) => { - return a.event.method == "IdentitySet"; + return a.event.method === "IdentitySet"; }); expect(eventCount.length).to.be.equal(1); @@ -118,7 +118,7 @@ describeSuite({ it({ id: "E04", title: "Registrar sets fee and fields", - test: async function () { + test: async () => { await context.createBlock(); const tx1 = polkadotJs.tx.identity.addRegistrar({ diff --git a/test/suites/dev-tanssi-relay/paras-candidate-inherent/test_paras_candidate_inherent.ts b/test/suites/dev-tanssi-relay/paras-candidate-inherent/test_paras_candidate_inherent.ts index b1329ec6c..a9e165b13 100644 --- a/test/suites/dev-tanssi-relay/paras-candidate-inherent/test_paras_candidate_inherent.ts +++ b/test/suites/dev-tanssi-relay/paras-candidate-inherent/test_paras_candidate_inherent.ts @@ -1,11 +1,11 @@ import "@tanssi/api-augment"; import { describeSuite, customDevRpcRequest, expect, beforeAll } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; +import type { ApiPromise } from "@polkadot/api"; import { jumpToSession } from "util/block"; import { getHeaderFromRelay } from "util/relayInterface.ts"; describeSuite({ - id: "DTR1401", + id: "DEVT1101", title: "Paras inherent tests", foundationMethods: "dev", @@ -19,7 +19,7 @@ describeSuite({ it({ id: "E01", title: "Paras heads should be updated every block", - test: async function () { + test: async () => { const parasHeadGenesis = await polkadotJs.query.paras.heads(2000); await context.createBlock(); // Send RPC call to enable para inherent candidate generation diff --git a/test/suites/dev-tanssi-relay/proxy/test-proxy-registrar.ts b/test/suites/dev-tanssi-relay/proxy/test-proxy-registrar.ts index b6bb915f3..d0cd5efbb 100644 --- a/test/suites/dev-tanssi-relay/proxy/test-proxy-registrar.ts +++ b/test/suites/dev-tanssi-relay/proxy/test-proxy-registrar.ts @@ -1,11 +1,12 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { KeyringPair } from "@moonwall/util"; -import { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; import { initializeCustomCreateBlock, jumpSessions } from "../../../util/block"; +import type { u32 } from "@polkadot/types"; describeSuite({ - id: "DTR1201", + id: "DEVT1501", title: "Proxy test suite", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -53,7 +54,7 @@ describeSuite({ it({ id: "E01", title: "Can add proxy", - test: async function () { + test: async () => { await context.createBlock(); const tx = polkadotJs.tx.proxy.addProxy(delegateBob.address, REGISTRAR_PROXY_INDEX, 0); @@ -73,7 +74,7 @@ describeSuite({ it({ id: "E02", title: "Delegated account can sudo txs in paras_registrar", - test: async function () { + test: async () => { const txReserve = polkadotJs.tx.proxy.proxy( sudoAlice.address, null, @@ -97,17 +98,18 @@ describeSuite({ it({ id: "E03", title: "Delegated account can sudo txs in data preservers, paras, paraSudoWrapper, and registrar", - test: async function () { + test: async () => { // A regular user registers a new avs const txReserve = polkadotJs.tx.registrar.reserve(); await context.createBlock([await txReserve.signAsync(charlie)]); let events = await polkadotJs.query.system.events(); - const reservedEvent = events.filter((a) => { - return a.event.method == "Reserved" && a.event.data[1].toString() == charlie.address; - }); - const reservedParaId = reservedEvent[0].event.data[0].toPrimitive(); + const reservedEvent = events.filter( + ({ event }) => event.method === "Reserved" && event.data[1].toString() === charlie.address + ); + const reservedParaId = (reservedEvent[0].event.data[0] as u32).toNumber(); + console.log(reservedParaId); const txRegisterRelay = polkadotJs.tx.registrar.register(reservedParaId, GENESIS_HEAD, VALIDATION_CODE); await context.createBlock([await txRegisterRelay.signAsync(charlie)]); @@ -181,9 +183,11 @@ describeSuite({ await context.createBlock([await txStartCollating.signAsync(delegateBob)]); events = await polkadotJs.query.system.events(); - const startCollatingEvent = events.filter((a) => { - return a.event.method == "ParaIdValidForCollating" && a.event.data[0].toString() == reservedParaId; - }); + const startCollatingEvent = events.filter( + ({ event }) => + event.method === "ParaIdValidForCollating" && + event.data[0].toString() === reservedParaId.toString() + ); expect(startCollatingEvent.length).eq(1); @@ -206,7 +210,7 @@ describeSuite({ it({ id: "E04", title: "Unauthorized account cannot sudo calls", - test: async function () { + test: async () => { // Call adding validation code const VALIDATION_CODE_NOT_INCLUDED = "0x4e6f7420676f6e6e61206d616b65206974"; @@ -221,7 +225,7 @@ describeSuite({ const trustedCodes = await polkadotJs.query.paras.codeByHash.entries(); const noCodeMatching = trustedCodes.filter((code) => { - return code[1].toString() == VALIDATION_CODE_NOT_INCLUDED; + return code[1].toString() === VALIDATION_CODE_NOT_INCLUDED; }); expect(noCodeMatching.length).eq(0); @@ -291,9 +295,9 @@ describeSuite({ await context.createBlock([await txStartCollating.signAsync(charlie)]); const events = await polkadotJs.query.system.events(); - const startCollatingEvent = events.filter((a) => { - return a.event.method == "ParaIdValidForCollating" && a.event.data[0].toString() == "2002"; - }); + const startCollatingEvent = events.filter( + ({ event }) => event.method === "ParaIdValidForCollating" && event.data[0].toString() === "2002" + ); expect(startCollatingEvent.length).eq(0); }, diff --git a/test/suites/dev-tanssi-relay/proxy/test-proxy-validator-management.ts b/test/suites/dev-tanssi-relay/proxy/test-proxy-validator-management.ts index 740e86d95..0736936e0 100644 --- a/test/suites/dev-tanssi-relay/proxy/test-proxy-validator-management.ts +++ b/test/suites/dev-tanssi-relay/proxy/test-proxy-validator-management.ts @@ -1,11 +1,11 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { KeyringPair } from "@moonwall/util"; -import { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; import { initializeCustomCreateBlock } from "../../../util/block"; describeSuite({ - id: "DTR1201", + id: "DEVT1502", title: "Proxy test suite", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -26,7 +26,7 @@ describeSuite({ it({ id: "E01", title: "Can add proxy", - test: async function () { + test: async () => { await context.createBlock(); const tx = polkadotJs.tx.proxy.addProxy(delegateBob.address, VALIDATOR_PROXY_INDEX, 0); @@ -46,7 +46,7 @@ describeSuite({ it({ id: "E02", title: "Delegated account can sudo txs in external validators", - test: async function () { + test: async () => { const txAddWhitelisted = polkadotJs.tx.proxy.proxy( sudoAlice.address, null, @@ -62,7 +62,7 @@ describeSuite({ it({ id: "E02", title: "Delegated account can sudo txs in external validator slashes", - test: async function () { + test: async () => { const txAddWhitelisted = polkadotJs.tx.proxy.proxy( sudoAlice.address, null, diff --git a/test/suites/dev-tanssi-relay/proxy/test-session-keys-management.ts b/test/suites/dev-tanssi-relay/proxy/test-session-keys-management.ts index c14306f02..69aaacce0 100644 --- a/test/suites/dev-tanssi-relay/proxy/test-session-keys-management.ts +++ b/test/suites/dev-tanssi-relay/proxy/test-session-keys-management.ts @@ -1,9 +1,9 @@ -import "@polkadot/api-augment"; +import "@tanssi/api-augment"; import { beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; +import type { ApiPromise } from "@polkadot/api"; describeSuite({ - id: "DT0601", + id: "DEVT1503", title: "Proxy test suite - ProxyType::SessionKeyManagement", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -18,7 +18,7 @@ describeSuite({ it({ id: "E01", title: "Delegate account can manage keys", - test: async function () { + test: async () => { const delegator_alice = context.keyring.alice; const delegate_charlie = context.keyring.charlie; @@ -27,7 +27,7 @@ describeSuite({ let events = await polkadotJs.query.system.events(); let ev1 = events.filter((a) => { - return a.event.method == "ProxyAdded"; + return a.event.method === "ProxyAdded"; }); expect(ev1.length).to.be.equal(1); @@ -41,7 +41,7 @@ describeSuite({ await context.createBlock([await tx.signAsync(delegate_charlie)]); events = await polkadotJs.query.system.events(); ev1 = events.filter((a) => { - return a.event.method == "ProxyExecuted"; + return a.event.method === "ProxyExecuted"; }); expect(ev1.length).to.be.equal(1); expect(ev1[0].event.data[0].toString()).to.be.eq("Ok"); @@ -51,7 +51,7 @@ describeSuite({ it({ id: "E02", title: "Non-Delegate account fails to manage other account's keys", - test: async function () { + test: async () => { const alice = context.keyring.alice; const non_delegate_dave = context.keyring.dave; @@ -68,7 +68,7 @@ describeSuite({ await context.createBlock([await tx.signAsync(non_delegate_dave)]); const events = await polkadotJs.query.system.events(); const ev1 = events.filter((a) => { - return a.event.method == "ProxyExecuted"; + return a.event.method === "ProxyExecuted"; }); expect(ev1.length).to.be.equal(0); }, diff --git a/test/suites/dev-tanssi-relay/registrar/test_registrars.ts b/test/suites/dev-tanssi-relay/registrar/test_registrars.ts index e6ffa039a..b6bfa6b04 100644 --- a/test/suites/dev-tanssi-relay/registrar/test_registrars.ts +++ b/test/suites/dev-tanssi-relay/registrar/test_registrars.ts @@ -1,10 +1,10 @@ import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; -import { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; import { jumpSessions } from "../../../util/block"; describeSuite({ - id: "DTR0801", + id: "DEVT1601", title: "ContainerRegistrar <> relay Registrar", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -48,7 +48,7 @@ describeSuite({ it({ id: "E01", title: "should be able to register paraId", - test: async function () { + test: async () => { await context.createBlock(); const containerChainGenesisData = emptyGenesisData(); @@ -120,7 +120,7 @@ describeSuite({ it({ id: "E02", title: "should not be able to register paraId twice", - test: async function () { + test: async () => { // Check we can't register via relay Registrar const tx2 = polkadotJs.tx.containerRegistrar .register(2002, emptyGenesisData(), "0x0102030405060708091011") @@ -135,7 +135,7 @@ describeSuite({ it({ id: "E03", title: "ContainerRegistrar::deregister should offboard the paraId", - test: async function () { + test: async () => { // Para should still be a parachain const isParachain = await polkadotJs.query.paras.paraLifecycles(2002); expect(isParachain.toString()).to.eq("Parachain"); @@ -161,7 +161,7 @@ describeSuite({ it({ id: "E04", title: "should not be able to register through relay", - test: async function () { + test: async () => { const containerChainGenesisData = emptyGenesisData(); const tx = polkadotJs.tx.registrar @@ -178,7 +178,7 @@ describeSuite({ it({ id: "E05", title: "should not be able to deregister through relay", - test: async function () { + test: async () => { const tx = polkadotJs.tx.registrar.deregister(4000).signAsync(alice); const { result } = await context.createBlock([tx]); diff --git a/test/suites/dev-tanssi-relay/services-payment/test_services_payment_block_credits.ts b/test/suites/dev-tanssi-relay/services-payment/test_services_payment_block_credits.ts index 4bc1277fe..d5df89940 100644 --- a/test/suites/dev-tanssi-relay/services-payment/test_services_payment_block_credits.ts +++ b/test/suites/dev-tanssi-relay/services-payment/test_services_payment_block_credits.ts @@ -1,12 +1,12 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll, customDevRpcRequest } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; -import { generateKeyringPair, KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; +import { generateKeyringPair, type KeyringPair } from "@moonwall/util"; import { jumpToSession, jumpSessions } from "util/block"; import { paraIdTank } from "util/payment"; describeSuite({ - id: "DTR0902", + id: "DEVT1201", title: "Services payment test suite", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -21,7 +21,7 @@ describeSuite({ it({ id: "E01", title: "Genesis container chains have credits and collators", - test: async function () { + test: async () => { await context.createBlock(); await customDevRpcRequest("mock_enableParaInherentCandidate", []); // Since collators are not assigned until session 2, we need to go till session 2 to actually see heads being injected @@ -46,7 +46,7 @@ describeSuite({ // Container chain 2001 does not have any collators, this will result in only 1 container chain // producing blocks at a time. So if both container chains have 1000 credits, container 2000 // will produce blocks 0-999, and container 2001 will produce blocks 1000-1999. - if (paraId == 2000) { + if (paraId === 2000) { expect( collators.toJSON().containerChains[paraId].length, `Container chain ${paraId} has 0 collators` @@ -59,7 +59,7 @@ describeSuite({ it({ id: "E02", title: "Creating a container chain block costs credits", - test: async function () { + test: async () => { // Read num credits of para 2000, then create that many blocks. Check that authorNoting.blockNum does not increase anymore // and collatorAssignment does not have collators @@ -68,7 +68,7 @@ describeSuite({ await context.createBlock(); await context.createBlock(); - const paraId = 2000n; + const paraId = 2000; // Create a block, the block number should increase, and the number of credits should decrease const credits1 = (await polkadotJs.query.servicesPayment.blockProductionCredits(paraId)).toJSON(); @@ -99,18 +99,18 @@ describeSuite({ it({ id: "E03", title: "Collators are unassigned when a container chain does not have enough credits", - test: async function () { + test: async () => { // Create blocks until authorNoting.blockNum does not increase anymore. // Check that collatorAssignment does not have collators and num credits is less than 2 sessions. - const paraId = 2000n; + const paraId = 2000; // Create blocks until the block number stops increasing let containerBlockNum3 = -1; let containerBlockNum4 = await (await polkadotJs.query.authorNoting.latestAuthor(paraId)).toJSON() .blockNumber; - while (containerBlockNum3 != containerBlockNum4) { + while (containerBlockNum3 !== containerBlockNum4) { await context.createBlock(); await context.createBlock(); containerBlockNum3 = containerBlockNum4; @@ -136,7 +136,7 @@ describeSuite({ it({ id: "E04", title: "Root can remove credits", - test: async function () { + test: async () => { // Remove all the credits of container chain 2001, which should have assigned collators now // This checks that the node does not panic when we try to subtract credits from 0 (saturating_sub) @@ -198,15 +198,15 @@ describeSuite({ it({ id: "E05", title: "Can buy additional credits", - test: async function () { + test: async () => { // As alice, buy credits for para 2000. Check that it is assigned collators again - const paraId = 2000n; + const paraId = 2000; // Create blocks until no collators are assigned to any container chain for (;;) { await context.createBlock(); const collators = await polkadotJs.query.tanssiCollatorAssignment.collatorContainerChain(); - if (Object.keys(collators.toJSON().containerChains).length == 0) { + if (Object.keys(collators.toJSON().containerChains).length === 0) { break; } } @@ -241,7 +241,7 @@ describeSuite({ // spend all credits let creditsRemaining = (await polkadotJs.query.servicesPayment.blockProductionCredits(paraId)).toJSON(); - while (creditsRemaining != 0) { + while (creditsRemaining !== 0) { await context.createBlock(); await context.createBlock(); creditsRemaining = (await polkadotJs.query.servicesPayment.blockProductionCredits(paraId)).toJSON(); diff --git a/test/suites/dev-tanssi-relay/services-payment/test_services_payment_collator_credits.ts b/test/suites/dev-tanssi-relay/services-payment/test_services_payment_collator_credits.ts index 326e6f4ff..0f0bfc9e5 100644 --- a/test/suites/dev-tanssi-relay/services-payment/test_services_payment_collator_credits.ts +++ b/test/suites/dev-tanssi-relay/services-payment/test_services_payment_collator_credits.ts @@ -1,12 +1,12 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; -import { generateKeyringPair, KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; +import { generateKeyringPair, type KeyringPair } from "@moonwall/util"; import { jumpSessions, jumpToSession } from "util/block"; import { paraIdTank } from "util/payment"; describeSuite({ - id: "DTR0903", + id: "DEVT1202", title: "Services payment test suite", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -21,7 +21,7 @@ describeSuite({ it({ id: "E01", title: "Genesis container chains have credits and collators and should have one less credit", - test: async function () { + test: async () => { await context.createBlock(); await jumpToSession(context, 1); @@ -49,13 +49,13 @@ describeSuite({ it({ id: "E02", title: "Getting assignation should consume credits", - test: async function () { + test: async () => { await jumpToSession(context, 2); // Moving to the next session should have reduced the credit by one to both parachains // even if one does not produce blocks - const paraId = 2000n; + const paraId = 2000; const credits = await polkadotJs.query.servicesPayment.collatorAssignmentCredits(paraId); expect( credits.unwrap().toBigInt(), @@ -67,11 +67,11 @@ describeSuite({ it({ id: "E03", title: "Collators are unassigned when a container chain does not have enough credits", - test: async function () { + test: async () => { // Create blocks until authorNoting.blockNum does not increase anymore. // Check that collatorAssignment does not have collators and num credits is less than 2 sessions. - const paraId = 2000n; + const paraId = 2000; // Create blocks until credits reach 0 let containerCredits = (await polkadotJs.query.servicesPayment.collatorAssignmentCredits(paraId)) @@ -107,15 +107,15 @@ describeSuite({ it({ id: "E05", title: "Can buy additional credits", - test: async function () { + test: async () => { // As alice, buy credits for para 2000. Check that it is assigned collators again - const paraId = 2000n; + const paraId = 2000; // Create blocks until no collators are assigned to any container chain for (;;) { await context.createBlock(); const collators = await polkadotJs.query.tanssiCollatorAssignment.collatorContainerChain(); - if (Object.keys(collators.toJSON().containerChains).length == 0) { + if (Object.keys(collators.toJSON().containerChains).length === 0) { break; } } diff --git a/test/suites/dev-tanssi-relay/services-payment/test_services_payment_collator_tip.ts b/test/suites/dev-tanssi-relay/services-payment/test_services_payment_collator_tip.ts index c4cbab056..52c0f44cc 100644 --- a/test/suites/dev-tanssi-relay/services-payment/test_services_payment_collator_tip.ts +++ b/test/suites/dev-tanssi-relay/services-payment/test_services_payment_collator_tip.ts @@ -1,11 +1,11 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; -import { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; import { fetchCollatorAssignmentTip, jumpSessions } from "util/block"; describeSuite({ - id: "DTR0901", + id: "DEVT1203", title: "Services payment collator assignment tip test suite", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -19,7 +19,7 @@ describeSuite({ it({ id: "E01", title: "Tip should prioritize collator assignment", - test: async function () { + test: async () => { await context.createBlock(); const paraId = 2001n; diff --git a/test/suites/dev-tanssi-relay/slashes/test_slashes_are_acummulated_across_blocks.ts b/test/suites/dev-tanssi-relay/slashes/test_slashes_are_acummulated_across_blocks.ts index fc93215da..9bf0c5ef8 100644 --- a/test/suites/dev-tanssi-relay/slashes/test_slashes_are_acummulated_across_blocks.ts +++ b/test/suites/dev-tanssi-relay/slashes/test_slashes_are_acummulated_across_blocks.ts @@ -1,12 +1,12 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; -import { KeyringPair, generateKeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; +import { type KeyringPair, generateKeyringPair } from "@moonwall/util"; import { jumpToSession } from "../../../util/block"; import { PRIMARY_GOVERNANCE_CHANNEL_ID } from "../../../util/constants"; describeSuite({ - id: "DTR1307", + id: "DEVT1701", title: "Slashes are accumulated based on max slashes sent per block", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -19,7 +19,7 @@ describeSuite({ it({ id: "E01", title: "Slashes are accumulated across blocks", - test: async function () { + test: async () => { // we need to start at least one sesssion to start eras await jumpToSession(context, 1); // Let's inject slashes N+1 slashes, where N is the max slashes to send per block @@ -69,16 +69,14 @@ describeSuite({ // In the next block we should send the slashes. For this we will confirm: // A: that the unprocessed slashes decrease // B: that the nonce of the primary channel increases - const primaryChannelNonceBefore = await polkadotJs.query.ethereumOutboundQueue.nonce( - PRIMARY_GOVERNANCE_CHANNEL_ID - ); + const primaryChannelNonceBefore = + await polkadotJs.query.ethereumOutboundQueue.nonce(PRIMARY_GOVERNANCE_CHANNEL_ID); await context.createBlock(); const expectedUnprocessedMessagesAfterOneBlock = await polkadotJs.query.externalValidatorSlashes.unreportedSlashesQueue(); - const primaryChannelNonceAfter = await polkadotJs.query.ethereumOutboundQueue.nonce( - PRIMARY_GOVERNANCE_CHANNEL_ID - ); + const primaryChannelNonceAfter = + await polkadotJs.query.ethereumOutboundQueue.nonce(PRIMARY_GOVERNANCE_CHANNEL_ID); expect(primaryChannelNonceAfter.toBigInt()).toBe(primaryChannelNonceBefore.toBigInt() + 1n); // However we stil should have one unprocessed message expect(expectedUnprocessedMessagesAfterOneBlock.length).to.be.eq(1); diff --git a/test/suites/dev-tanssi-relay/slashes/test_slashes_are_acummulated_across_eras.ts b/test/suites/dev-tanssi-relay/slashes/test_slashes_are_acummulated_across_eras.ts index 7d30d1e0f..b0180ddb8 100644 --- a/test/suites/dev-tanssi-relay/slashes/test_slashes_are_acummulated_across_eras.ts +++ b/test/suites/dev-tanssi-relay/slashes/test_slashes_are_acummulated_across_eras.ts @@ -1,11 +1,11 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; -import { KeyringPair, generateKeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; +import { type KeyringPair, generateKeyringPair } from "@moonwall/util"; import { jumpToSession } from "../../../util/block"; describeSuite({ - id: "DTR1308", + id: "DEVT1702", title: "Slashes are accumulated across eras based on max slashes sent per block", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -18,7 +18,7 @@ describeSuite({ it({ id: "E01", title: "Slashes are accumulated across eras", - test: async function () { + test: async () => { // we need to start at least one sesssion to start eras await jumpToSession(context, 1); // Let's inject slashes N+1 slashes, where N is the max slashes to send per block diff --git a/test/suites/dev-tanssi-relay/slashes/test_slashes_are_confirmed_after_defer_period.ts b/test/suites/dev-tanssi-relay/slashes/test_slashes_are_confirmed_after_defer_period.ts index 807e1bfc0..c591c2ed0 100644 --- a/test/suites/dev-tanssi-relay/slashes/test_slashes_are_confirmed_after_defer_period.ts +++ b/test/suites/dev-tanssi-relay/slashes/test_slashes_are_confirmed_after_defer_period.ts @@ -1,7 +1,7 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; -import { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; import { Keyring } from "@polkadot/keyring"; import { u8aToHex } from "@polkadot/util"; import { jumpToSession } from "../../../util/block"; @@ -9,7 +9,7 @@ import { generateBabeEquivocationProof } from "../../../util/slashes"; import { PRIMARY_GOVERNANCE_CHANNEL_ID } from "../../../util/constants"; describeSuite({ - id: "DTR1304", + id: "DEVT1703", title: "Babe slashes defer period confirmation", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -27,7 +27,7 @@ describeSuite({ it({ id: "E01", title: "Babe offences should be confirmed after defer period", - test: async function () { + test: async () => { // we crate one block so that we at least have one seal. await jumpToSession(context, 1); @@ -101,16 +101,14 @@ describeSuite({ // In the next block we should send the slashes. For this we will confirm: // A: that the unprocessed slashes decrease // B: that the nonce of the primary channel increases - const primaryChannelNonceBefore = await polkadotJs.query.ethereumOutboundQueue.nonce( - PRIMARY_GOVERNANCE_CHANNEL_ID - ); + const primaryChannelNonceBefore = + await polkadotJs.query.ethereumOutboundQueue.nonce(PRIMARY_GOVERNANCE_CHANNEL_ID); await context.createBlock(); const expectedUnprocessedMessagesAfterOneBlock = await polkadotJs.query.externalValidatorSlashes.unreportedSlashesQueue(); - const primaryChannelNonceAfter = await polkadotJs.query.ethereumOutboundQueue.nonce( - PRIMARY_GOVERNANCE_CHANNEL_ID - ); + const primaryChannelNonceAfter = + await polkadotJs.query.ethereumOutboundQueue.nonce(PRIMARY_GOVERNANCE_CHANNEL_ID); expect(primaryChannelNonceAfter.toBigInt()).toBe(primaryChannelNonceBefore.toBigInt() + 1n); expect(expectedUnprocessedMessagesAfterOneBlock.length).to.be.eq(0); }, diff --git a/test/suites/dev-tanssi-relay/slashes/test_slashes_are_not_applicable_to_invulnerables.ts b/test/suites/dev-tanssi-relay/slashes/test_slashes_are_not_applicable_to_invulnerables.ts index e4c5b4ce6..3e137bdd9 100644 --- a/test/suites/dev-tanssi-relay/slashes/test_slashes_are_not_applicable_to_invulnerables.ts +++ b/test/suites/dev-tanssi-relay/slashes/test_slashes_are_not_applicable_to_invulnerables.ts @@ -1,14 +1,14 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; -import { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; import { Keyring } from "@polkadot/keyring"; import { u8aToHex } from "@polkadot/util"; import { jumpToSession } from "../../../util/block"; import { generateBabeEquivocationProof } from "../../../util/slashes"; describeSuite({ - id: "DTR1302", + id: "DEVT1704", title: "Babe offences invulnerables", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -24,7 +24,7 @@ describeSuite({ it({ id: "E01", title: "Babe offences do not trigger a slash to invulnerables", - test: async function () { + test: async () => { // we crate one block so that we at least have one seal. await jumpToSession(context, 1); diff --git a/test/suites/dev-tanssi-relay/slashes/test_slashes_are_removed_after_bonding_period.ts b/test/suites/dev-tanssi-relay/slashes/test_slashes_are_removed_after_bonding_period.ts index 3d289f1e0..9a2e4a854 100644 --- a/test/suites/dev-tanssi-relay/slashes/test_slashes_are_removed_after_bonding_period.ts +++ b/test/suites/dev-tanssi-relay/slashes/test_slashes_are_removed_after_bonding_period.ts @@ -1,14 +1,14 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; -import { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; import { Keyring } from "@polkadot/keyring"; import { u8aToHex } from "@polkadot/util"; import { jumpToSession } from "../../../util/block"; import { generateBabeEquivocationProof } from "../../../util/slashes"; describeSuite({ - id: "DTR1305", + id: "DEVT1705", title: "Babe offences bonding period", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -26,7 +26,7 @@ describeSuite({ it({ id: "E01", title: "Babe offences should be removed after bonding period", - test: async function () { + test: async () => { // we crate one block so that we at least have one seal. await jumpToSession(context, 1); diff --git a/test/suites/dev-tanssi-relay/slashes/test_slashes_babe.ts b/test/suites/dev-tanssi-relay/slashes/test_slashes_babe.ts index f1a5d56c4..51bd3c80b 100644 --- a/test/suites/dev-tanssi-relay/slashes/test_slashes_babe.ts +++ b/test/suites/dev-tanssi-relay/slashes/test_slashes_babe.ts @@ -1,14 +1,14 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; -import { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; import { Keyring } from "@polkadot/keyring"; import { u8aToHex } from "@polkadot/util"; import { jumpToSession } from "../../../util/block"; import { generateBabeEquivocationProof } from "../../../util/slashes"; describeSuite({ - id: "DTR1301", + id: "DEVT1706", title: "Babe offences should trigger a slash", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -26,7 +26,7 @@ describeSuite({ it({ id: "E01", title: "Babe offences trigger a slash", - test: async function () { + test: async () => { // we crate one block so that we at least have one seal. await jumpToSession(context, 1); diff --git a/test/suites/dev-tanssi-relay/slashes/test_slashes_can_be_cancelled.ts b/test/suites/dev-tanssi-relay/slashes/test_slashes_can_be_cancelled.ts index 8047093e7..aa6d7bf79 100644 --- a/test/suites/dev-tanssi-relay/slashes/test_slashes_can_be_cancelled.ts +++ b/test/suites/dev-tanssi-relay/slashes/test_slashes_can_be_cancelled.ts @@ -1,14 +1,14 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; -import { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; import { Keyring } from "@polkadot/keyring"; import { u8aToHex } from "@polkadot/util"; import { jumpToSession } from "../../../util/block"; import { generateBabeEquivocationProof } from "../../../util/slashes"; describeSuite({ - id: "DTR1303", + id: "DEVT1707", title: "Babe offences should be cancellable", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -26,7 +26,7 @@ describeSuite({ it({ id: "E01", title: "Babe offences are cancellable during the defer period", - test: async function () { + test: async () => { // we crate one block so that we at least have one seal. await jumpToSession(context, 1); diff --git a/test/suites/dev-tanssi-relay/slashes/test_slashes_eth.ts b/test/suites/dev-tanssi-relay/slashes/test_slashes_eth.ts index c2f924c8e..15eec644b 100644 --- a/test/suites/dev-tanssi-relay/slashes/test_slashes_eth.ts +++ b/test/suites/dev-tanssi-relay/slashes/test_slashes_eth.ts @@ -1,11 +1,11 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; -import { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; import { jumpToSession } from "../../../util/block"; describeSuite({ - id: "DTR1801", + id: "DEVT1708", title: "Test slashes are being sent to ethereum using bridge", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -19,7 +19,7 @@ describeSuite({ it({ id: "E01", title: "Test using rootTestSendMsgToEth", - test: async function () { + test: async () => { await jumpToSession(context, 1); // Send test message to ethereum @@ -34,9 +34,9 @@ describeSuite({ // Should have resulted in a new "other" digest log being included in the block const baseHeader = await polkadotJs.rpc.chain.getHeader(); const allLogs = baseHeader.digest.logs.map((x) => x.toJSON()); - const otherLogs = allLogs.filter((x) => x["other"]); + const otherLogs = allLogs.filter((x) => x.other); expect(otherLogs.length).to.be.equal(1); - const logHex = otherLogs[0]["other"]; + const logHex = otherLogs[0].other; await expectEventCount(polkadotJs, { MessagesCommitted: 1, @@ -48,12 +48,12 @@ describeSuite({ // Also a MessagesCommitted event with the same hash as the digest log const events = await polkadotJs.query.system.events(); const ev1 = events.filter((a) => { - return a.event.method == "MessagesCommitted"; + return a.event.method === "MessagesCommitted"; }); expect(ev1.length).to.be.equal(1); const ev1Data = ev1[0].event.data[0].toJSON(); - // logHex == 0x00 + ev1Data + // logHex === 0x00 + ev1Data // Example: // logHex: 0x0064cf0ef843ad5a26c2cc27cf345fe0fd8b72cd6297879caa626c4d72bbe4f9b0 // ev1Data: 0x64cf0ef843ad5a26c2cc27cf345fe0fd8b72cd6297879caa626c4d72bbe4f9b0 @@ -65,7 +65,7 @@ describeSuite({ it({ id: "E02", title: "Test using ethereumSystem.upgrade", - test: async function () { + test: async () => { await jumpToSession(context, 1); // Send test message to ethereum @@ -79,9 +79,9 @@ describeSuite({ // Should have resulted in a new "other" digest log being included in the block const baseHeader = await polkadotJs.rpc.chain.getHeader(); const allLogs = baseHeader.digest.logs.map((x) => x.toJSON()); - const otherLogs = allLogs.filter((x) => x["other"]); + const otherLogs = allLogs.filter((x) => x.other); expect(otherLogs.length).to.be.equal(1); - const logHex = otherLogs[0]["other"]; + const logHex = otherLogs[0].other; await expectEventCount(polkadotJs, { MessagesCommitted: 1, @@ -93,12 +93,12 @@ describeSuite({ // Also a MessagesCommitted event with the same hash as the digest log const events = await polkadotJs.query.system.events(); const ev1 = events.filter((a) => { - return a.event.method == "MessagesCommitted"; + return a.event.method === "MessagesCommitted"; }); expect(ev1.length).to.be.equal(1); const ev1Data = ev1[0].event.data[0].toJSON(); - // logHex == 0x00 + ev1Data + // logHex === 0x00 + ev1Data // Example: // logHex: 0x0064cf0ef843ad5a26c2cc27cf345fe0fd8b72cd6297879caa626c4d72bbe4f9b0 // ev1Data: 0x64cf0ef843ad5a26c2cc27cf345fe0fd8b72cd6297879caa626c4d72bbe4f9b0 @@ -110,7 +110,7 @@ describeSuite({ it({ id: "E03", title: "Send too big message using rootTestSendMsgToEth", - test: async function () { + test: async () => { await jumpToSession(context, 1); // Send test message to ethereum @@ -133,18 +133,18 @@ describeSuite({ // Also a MessagesCommitted event with the same hash as the digest log const events = await polkadotJs.query.system.events(); const ev1 = events.filter((a) => { - return a.event.method == "Sudid"; + return a.event.method === "Sudid"; }); expect(ev1.length).to.be.equal(1); const ev1Data = ev1[0].event.data[0].toJSON(); - expect(ev1Data["err"]).toBeTruthy(); + expect(ev1Data.err).toBeTruthy(); }, }); it({ id: "E04", title: "Send message of max size using rootTestSendMsgToEth", - test: async function () { + test: async () => { await jumpToSession(context, 1); // Send test message to ethereum @@ -159,9 +159,9 @@ describeSuite({ // Should have resulted in a new "other" digest log being included in the block const baseHeader = await polkadotJs.rpc.chain.getHeader(); const allLogs = baseHeader.digest.logs.map((x) => x.toJSON()); - const otherLogs = allLogs.filter((x) => x["other"]); + const otherLogs = allLogs.filter((x) => x.other); expect(otherLogs.length).to.be.equal(1); - const logHex = otherLogs[0]["other"]; + const logHex = otherLogs[0].other; await expectEventCount(polkadotJs, { MessagesCommitted: 1, @@ -173,12 +173,12 @@ describeSuite({ // Also a MessagesCommitted event with the same hash as the digest log const events = await polkadotJs.query.system.events(); const ev1 = events.filter((a) => { - return a.event.method == "MessagesCommitted"; + return a.event.method === "MessagesCommitted"; }); expect(ev1.length).to.be.equal(1); const ev1Data = ev1[0].event.data[0].toJSON(); - // logHex == 0x00 + ev1Data + // logHex === 0x00 + ev1Data // Example: // logHex: 0x0064cf0ef843ad5a26c2cc27cf345fe0fd8b72cd6297879caa626c4d72bbe4f9b0 // ev1Data: 0x64cf0ef843ad5a26c2cc27cf345fe0fd8b72cd6297879caa626c4d72bbe4f9b0 @@ -190,7 +190,7 @@ describeSuite({ it({ id: "E05", title: "Send 100 messages using rootTestSendMsgToEth", - test: async function () { + test: async () => { await jumpToSession(context, 1); // Send test message to ethereum @@ -205,9 +205,9 @@ describeSuite({ // Should have resulted in a new "other" digest log being included in the block const baseHeader = await polkadotJs.rpc.chain.getHeader(); const allLogs = baseHeader.digest.logs.map((x) => x.toJSON()); - const otherLogs = allLogs.filter((x) => x["other"]); + const otherLogs = allLogs.filter((x) => x.other); expect(otherLogs.length).to.be.equal(1); - const logHex = otherLogs[0]["other"]; + const logHex = otherLogs[0].other; await expectEventCount(polkadotJs, { MessagesCommitted: 1, @@ -219,12 +219,12 @@ describeSuite({ // Also a MessagesCommitted event with the same hash as the digest log const events = await polkadotJs.query.system.events(); const ev1 = events.filter((a) => { - return a.event.method == "MessagesCommitted"; + return a.event.method === "MessagesCommitted"; }); expect(ev1.length).to.be.equal(1); const ev1Data = ev1[0].event.data[0].toJSON(); - // logHex == 0x00 + ev1Data + // logHex === 0x00 + ev1Data // Example: // logHex: 0x0064cf0ef843ad5a26c2cc27cf345fe0fd8b72cd6297879caa626c4d72bbe4f9b0 // ev1Data: 0x64cf0ef843ad5a26c2cc27cf345fe0fd8b72cd6297879caa626c4d72bbe4f9b0 diff --git a/test/suites/dev-tanssi-relay/slashes/test_slashes_grandpa.ts b/test/suites/dev-tanssi-relay/slashes/test_slashes_grandpa.ts index 830ca0a3f..a51f7e6c1 100644 --- a/test/suites/dev-tanssi-relay/slashes/test_slashes_grandpa.ts +++ b/test/suites/dev-tanssi-relay/slashes/test_slashes_grandpa.ts @@ -1,14 +1,14 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; -import { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; import { Keyring } from "@polkadot/keyring"; import { u8aToHex } from "@polkadot/util"; import { jumpToSession } from "../../../util/block"; import { generateGrandpaEquivocationProof } from "../../../util/slashes"; describeSuite({ - id: "DTR1306", + id: "DEVT1709", title: "Grandpa offences should trigger a slash", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -27,7 +27,7 @@ describeSuite({ it({ id: "E01", title: "Grandpa offences trigger a slashing event", - test: async function () { + test: async () => { // we crate one block so that we at least have one seal. await jumpToSession(context, 1); diff --git a/test/suites/dev-tanssi-relay/staking/test_staking_join.ts b/test/suites/dev-tanssi-relay/staking/test_staking_join.ts index ec7abcbce..dbf57d3f9 100644 --- a/test/suites/dev-tanssi-relay/staking/test_staking_join.ts +++ b/test/suites/dev-tanssi-relay/staking/test_staking_join.ts @@ -1,12 +1,12 @@ import "@tanssi/api-augment"; import { describeSuite, beforeAll, expect } from "@moonwall/cli"; -import { KeyringPair } from "@moonwall/util"; -import { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; import { numberToHex } from "@polkadot/util"; import { jumpToBlock } from "../../../util/block"; describeSuite({ - id: "DT0301", + id: "DEVT1801", title: "Fee test suite", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -34,7 +34,7 @@ describeSuite({ it({ id: "E01", title: "Cannot execute stake join before 2 sessions", - test: async function () { + test: async () => { const initialSession = 0; const tx = polkadotJs.tx.pooledStaking.requestDelegate( alice.address, @@ -44,15 +44,15 @@ describeSuite({ await context.createBlock([await tx.signAsync(alice)]); const events = await polkadotJs.query.system.events(); const ev1 = events.filter((a) => { - return a.event.method == "IncreasedStake"; + return a.event.method === "IncreasedStake"; }); expect(ev1.length).to.be.equal(1); const ev2 = events.filter((a) => { - return a.event.method == "UpdatedCandidatePosition"; + return a.event.method === "UpdatedCandidatePosition"; }); expect(ev2.length).to.be.equal(1); const ev3 = events.filter((a) => { - return a.event.method == "RequestedDelegate"; + return a.event.method === "RequestedDelegate"; }); expect(ev3.length).to.be.equal(1); @@ -84,7 +84,7 @@ describeSuite({ // executePendingOperations failed const events2 = await polkadotJs.query.system.events(); const ev4 = events2.filter((a) => { - return a.event.method == "ExtrinsicFailed"; + return a.event.method === "ExtrinsicFailed"; }); expect(ev4.length).to.be.equal(1); @@ -97,11 +97,11 @@ describeSuite({ const events3 = await polkadotJs.query.system.events(); const ev5 = events3.filter((a) => { - return a.event.method == "StakedAutoCompounding"; + return a.event.method === "StakedAutoCompounding"; }); expect(ev5.length).to.be.equal(1); const ev6 = events3.filter((a) => { - return a.event.method == "ExecutedDelegate"; + return a.event.method === "ExecutedDelegate"; }); expect(ev6.length).to.be.equal(1); }, diff --git a/test/suites/dev-tanssi-relay/staking/test_staking_rewards_balanced.ts b/test/suites/dev-tanssi-relay/staking/test_staking_rewards_balanced.ts index 480c3abb8..183b3f3a7 100644 --- a/test/suites/dev-tanssi-relay/staking/test_staking_rewards_balanced.ts +++ b/test/suites/dev-tanssi-relay/staking/test_staking_rewards_balanced.ts @@ -1,8 +1,8 @@ import "@tanssi/api-augment"; -import { describeSuite, expect, beforeAll, DevModeContext } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; -import { KeyringPair } from "@moonwall/util"; -import { Header, ParaId, HeadData, Digest, DigestItem, Slot } from "@polkadot/types/interfaces"; +import { describeSuite, expect, beforeAll, type DevModeContext } from "@moonwall/cli"; +import type { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; +import type { Header, ParaId, HeadData, Digest, DigestItem, Slot } from "@polkadot/types/interfaces"; import { fetchIssuance, fetchRewardAuthorContainers, @@ -71,7 +71,7 @@ async function mockAndInsertHeadData( } describeSuite({ - id: "DT0302", + id: "DEVT1802", title: "Staking candidate reward test suite", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -147,7 +147,7 @@ describeSuite({ it({ id: "E01", title: "Alice should receive rewards through staking now", - test: async function () { + test: async () => { const assignment = (await polkadotJs.query.tanssiCollatorAssignment.collatorContainerChain()).toJSON(); // Find alice in list of collators @@ -208,7 +208,7 @@ describeSuite({ it({ id: "E02", title: "Alice should receive shared rewards with delegators through staking now", - test: async function () { + test: async () => { await jumpSessions(context, 1); // All pending operations where in session 0 await context.createBlock([ diff --git a/test/suites/dev-tanssi-relay/staking/test_staking_rewards_non_balanced.ts b/test/suites/dev-tanssi-relay/staking/test_staking_rewards_non_balanced.ts index 65f865a72..68561fc83 100644 --- a/test/suites/dev-tanssi-relay/staking/test_staking_rewards_non_balanced.ts +++ b/test/suites/dev-tanssi-relay/staking/test_staking_rewards_non_balanced.ts @@ -1,8 +1,8 @@ import "@tanssi/api-augment"; -import { describeSuite, expect, beforeAll, DevModeContext } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; -import { KeyringPair } from "@moonwall/util"; -import { Header, ParaId, HeadData, Digest, DigestItem, Slot } from "@polkadot/types/interfaces"; +import { describeSuite, expect, beforeAll, type DevModeContext } from "@moonwall/cli"; +import type { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; +import type { Header, ParaId, HeadData, Digest, DigestItem, Slot } from "@polkadot/types/interfaces"; import { fetchIssuance, fetchRewardAuthorContainers, @@ -71,7 +71,7 @@ async function mockAndInsertHeadData( } describeSuite({ - id: "DT0303", + id: "DEVT1803", title: "Staking candidate reward test suite", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -147,7 +147,7 @@ describeSuite({ it({ id: "E01", title: "Alice should receive rewards through staking now", - test: async function () { + test: async () => { const assignment = (await polkadotJs.query.tanssiCollatorAssignment.collatorContainerChain()).toJSON(); // Find alice in list of collators @@ -205,7 +205,7 @@ describeSuite({ it({ id: "E02", title: "Alice should receive shared rewards with delegators through staking now", - test: async function () { + test: async () => { await jumpSessions(context, 1); // All pending operations where in session 0 await context.createBlock([ diff --git a/test/suites/dev-tanssi-relay/staking/test_staking_session.ts b/test/suites/dev-tanssi-relay/staking/test_staking_session.ts index 40fae3205..75717e813 100644 --- a/test/suites/dev-tanssi-relay/staking/test_staking_session.ts +++ b/test/suites/dev-tanssi-relay/staking/test_staking_session.ts @@ -1,12 +1,12 @@ import "@tanssi/api-augment"; import { describeSuite, beforeAll, expect, isExtrinsicSuccessful } from "@moonwall/cli"; -import { KeyringPair, generateKeyringPair } from "@moonwall/util"; -import { ApiPromise } from "@polkadot/api"; +import { type KeyringPair, generateKeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; import { numberToHex } from "@polkadot/util"; import { jumpToBlock } from "../../../util/block"; describeSuite({ - id: "DT0304", + id: "DEVT1804", title: "Fee test suite", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -34,7 +34,7 @@ describeSuite({ it({ id: "E01", title: "It takes 2 sessions to update pallet_session collators", - test: async function () { + test: async () => { const initialCollators = await polkadotJs.query.tanssiCollatorAssignment.collatorContainerChain(); const randomAccount = generateKeyringPair("sr25519"); @@ -58,15 +58,15 @@ describeSuite({ await context.createBlock([await tx3.signAsync(randomAccount)]); const events = await polkadotJs.query.system.events(); const ev1 = events.filter((a) => { - return a.event.method == "IncreasedStake"; + return a.event.method === "IncreasedStake"; }); expect(ev1.length).to.be.equal(1); const ev2 = events.filter((a) => { - return a.event.method == "UpdatedCandidatePosition"; + return a.event.method === "UpdatedCandidatePosition"; }); expect(ev2.length).to.be.equal(1); const ev3 = events.filter((a) => { - return a.event.method == "RequestedDelegate"; + return a.event.method === "RequestedDelegate"; }); expect(ev3.length).to.be.equal(1); diff --git a/test/suites/dev-tanssi-relay/staking/test_staking_swap.ts b/test/suites/dev-tanssi-relay/staking/test_staking_swap.ts index c0cc58258..de9c9f208 100644 --- a/test/suites/dev-tanssi-relay/staking/test_staking_swap.ts +++ b/test/suites/dev-tanssi-relay/staking/test_staking_swap.ts @@ -1,12 +1,12 @@ import "@tanssi/api-augment"; import { describeSuite, beforeAll, expect } from "@moonwall/cli"; -import { KeyringPair } from "@moonwall/util"; -import { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; import { numberToHex } from "@polkadot/util"; import { jumpToBlock } from "../../../util/block"; describeSuite({ - id: "DT0305", + id: "DEVT1805", title: "Staking poolSwap test suite", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -34,7 +34,7 @@ describeSuite({ it({ id: "E01", title: "poolSwap works", - test: async function () { + test: async () => { const initialSession = 0; const tx = polkadotJs.tx.pooledStaking.requestDelegate( alice.address, @@ -44,15 +44,15 @@ describeSuite({ await context.createBlock([await tx.signAsync(alice)]); const events = await polkadotJs.query.system.events(); const ev1 = events.filter((a) => { - return a.event.method == "IncreasedStake"; + return a.event.method === "IncreasedStake"; }); expect(ev1.length).to.be.equal(1); const ev2 = events.filter((a) => { - return a.event.method == "UpdatedCandidatePosition"; + return a.event.method === "UpdatedCandidatePosition"; }); expect(ev2.length).to.be.equal(1); const ev3 = events.filter((a) => { - return a.event.method == "RequestedDelegate"; + return a.event.method === "RequestedDelegate"; }); expect(ev3.length).to.be.equal(1); @@ -82,11 +82,11 @@ describeSuite({ const events3 = await polkadotJs.query.system.events(); const ev5 = events3.filter((a) => { - return a.event.method == "StakedAutoCompounding"; + return a.event.method === "StakedAutoCompounding"; }); expect(ev5.length).to.be.equal(1); const ev6 = events3.filter((a) => { - return a.event.method == "ExecutedDelegate"; + return a.event.method === "ExecutedDelegate"; }); expect(ev6.length).to.be.equal(1); @@ -98,7 +98,7 @@ describeSuite({ const events4 = await polkadotJs.query.system.events(); const ev7 = events4.filter((a) => { - return a.event.method == "SwappedPool"; + return a.event.method === "SwappedPool"; }); expect(ev7.length).to.be.equal(1); }, diff --git a/test/suites/dev-tanssi-relay/xcm/test-reserve-transfer-downwards.ts b/test/suites/dev-tanssi-relay/xcm/test-reserve-transfer-downwards.ts index d91af403d..6006ae559 100644 --- a/test/suites/dev-tanssi-relay/xcm/test-reserve-transfer-downwards.ts +++ b/test/suites/dev-tanssi-relay/xcm/test-reserve-transfer-downwards.ts @@ -1,17 +1,17 @@ import { beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { KeyringPair, alith } from "@moonwall/util"; -import { MultiLocation, extractPaidDeliveryFeesDancelight, getLastSentDmpMessageFee } from "../../../util/xcm"; -import { ApiPromise, Keyring } from "@polkadot/api"; +import { type KeyringPair, alith } from "@moonwall/util"; +import { type MultiLocation, extractPaidDeliveryFeesDancelight, getLastSentDmpMessageFee } from "../../../util/xcm"; +import { type ApiPromise, Keyring } from "@polkadot/api"; describeSuite({ - id: "DTR1001", + id: "DEVT1901", title: "XCM - Succeeds sending XCM reserve transfer", foundationMethods: "dev", testCases: ({ context, it }) => { let polkadotJs: ApiPromise; let alice: KeyringPair; let baseDelivery: bigint; - let chain; + let chain: any; const UNITS = 1_000_000_000_000n; const CENTS = UNITS / 30_000n; const MILICENTS = CENTS / 1000n; @@ -19,11 +19,11 @@ describeSuite({ const randomReceiver = "0x1111111111111111111111111111111111111111111111111111111111111111"; - beforeAll(async function () { + beforeAll(async () => { polkadotJs = context.polkadotJs(); chain = polkadotJs.consts.system.version.specName.toString(); alice = - chain == "frontier-template" + chain === "frontier-template" ? alith : new Keyring({ type: "sr25519" }).addFromUri("//Alice", { name: "Alice default", @@ -34,7 +34,7 @@ describeSuite({ it({ id: "T01", title: "Should succeed sending a reserve transfer downward", - test: async function () { + test: async () => { const destMultilocation: MultiLocation = { parents: 0, interior: { X1: { Parachain: 1001 } }, diff --git a/test/suites/dev-tanssi-relay/xcm/test-xcm-send-downward.ts b/test/suites/dev-tanssi-relay/xcm/test-xcm-send-downward.ts index f4af99dad..b541b81dd 100644 --- a/test/suites/dev-tanssi-relay/xcm/test-xcm-send-downward.ts +++ b/test/suites/dev-tanssi-relay/xcm/test-xcm-send-downward.ts @@ -1,32 +1,32 @@ import { beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { KeyringPair, alith } from "@moonwall/util"; +import { type KeyringPair, alith } from "@moonwall/util"; import { - MultiLocation, + type MultiLocation, extractPaidDeliveryFeesDancelight, getLastSentDmpMessageFee, XcmFragment, } from "../../../util/xcm"; -import { ApiPromise, Keyring } from "@polkadot/api"; +import { type ApiPromise, Keyring } from "@polkadot/api"; describeSuite({ - id: "DTR1002", + id: "DEVT1902", title: "XCM - Succeeds sending XCM", foundationMethods: "dev", testCases: ({ context, it }) => { let polkadotJs: ApiPromise; let alice: KeyringPair; let baseDelivery: bigint; - let chain; + let chain: any; const UNITS = 1_000_000_000_000n; const CENTS = UNITS / 30_000n; const MILICENTS = CENTS / 1000n; const txByteFee = 10n * MILICENTS; - beforeAll(async function () { + beforeAll(async () => { polkadotJs = context.polkadotJs(); chain = polkadotJs.consts.system.version.specName.toString(); alice = - chain == "frontier-template" + chain === "frontier-template" ? alith : new Keyring({ type: "sr25519" }).addFromUri("//Alice", { name: "Alice default", @@ -37,7 +37,7 @@ describeSuite({ it({ id: "T01", title: "Should succeed sending a XCM downward", - test: async function () { + test: async () => { const xcmMessage = new XcmFragment({ assets: [], }) diff --git a/test/suites/dev-tanssi-relay/xcm/test-xcm-send-upward.ts b/test/suites/dev-tanssi-relay/xcm/test-xcm-send-upward.ts index 9128cf6be..2e58cea64 100644 --- a/test/suites/dev-tanssi-relay/xcm/test-xcm-send-upward.ts +++ b/test/suites/dev-tanssi-relay/xcm/test-xcm-send-upward.ts @@ -1,21 +1,21 @@ import { beforeAll, customDevRpcRequest, describeSuite, expect } from "@moonwall/cli"; -import { generateKeyringPair, KeyringPair } from "@moonwall/util"; -import { ApiPromise, Keyring } from "@polkadot/api"; +import { generateKeyringPair, type KeyringPair } from "@moonwall/util"; +import { type ApiPromise, Keyring } from "@polkadot/api"; import { u8aToHex } from "@polkadot/util"; import { jumpToSession } from "util/block"; -import { injectUmpMessageAndSeal, RawXcmMessage, XcmFragment } from "../../../util/xcm"; +import { injectUmpMessageAndSeal, type RawXcmMessage, XcmFragment } from "../../../util/xcm"; describeSuite({ - id: "DTR1003", + id: "DEVT1903", title: "XCM - Succeeds sending XCM", foundationMethods: "dev", testCases: ({ context, it }) => { let polkadotJs: ApiPromise; let alice: KeyringPair; let random: KeyringPair; - let transferredBalance; + let transferredBalance: bigint; - beforeAll(async function () { + beforeAll(async () => { polkadotJs = context.polkadotJs(); alice = new Keyring({ type: "sr25519" }).addFromUri("//Alice", { name: "Alice default", @@ -52,7 +52,7 @@ describeSuite({ it({ id: "T01", title: "Should succeed receiving tokens", - test: async function () { + test: async () => { const balanceRandomBefore = ( await polkadotJs.query.system.account(random.address) ).data.free.toBigInt(); diff --git a/test/suites/dev-tanssi/balances-consumers/test_balances_consumers.ts b/test/suites/dev-tanssi/balances-consumers/test_balances_consumers.ts index 1110f560c..8215853d1 100644 --- a/test/suites/dev-tanssi/balances-consumers/test_balances_consumers.ts +++ b/test/suites/dev-tanssi/balances-consumers/test_balances_consumers.ts @@ -1,11 +1,11 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll, isExtrinsicSuccessful } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; +import type { ApiPromise } from "@polkadot/api"; import { jumpSessions } from "../../../util/block"; -import { KeyringPair, generateKeyringPair } from "@moonwall/util"; +import { type KeyringPair, generateKeyringPair } from "@moonwall/util"; describeSuite({ - id: "DT0101", + id: "DEV0101", title: "Consumers balances holds test suite", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -20,7 +20,7 @@ describeSuite({ it({ id: "E01", title: "Checking that authority assignment is correct on genesis", - test: async function () { + test: async () => { const randomAccount = generateKeyringPair("sr25519"); const tx = polkadotJs.tx.balances.transferAllowDeath(randomAccount.address, 2n * 10000000000000000n); diff --git a/test/suites/dev-tanssi/collator-assignment/test-collator-assignment.ts b/test/suites/dev-tanssi/collator-assignment/test-collator-assignment.ts index 19caf7e6c..31862445f 100644 --- a/test/suites/dev-tanssi/collator-assignment/test-collator-assignment.ts +++ b/test/suites/dev-tanssi/collator-assignment/test-collator-assignment.ts @@ -1,13 +1,13 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; +import type { ApiPromise } from "@polkadot/api"; import { jumpBlocks, jumpSessions, jumpToSession } from "util/block"; import { filterAndApply } from "@moonwall/util"; -import { EventRecord } from "@polkadot/types/interfaces"; -import { bool, u32, u8, Vec } from "@polkadot/types-codec"; +import type { EventRecord } from "@polkadot/types/interfaces"; +import type { bool, u32, u8, Vec } from "@polkadot/types-codec"; describeSuite({ - id: "DT0801", + id: "DEV0201", title: "Collator assignment tests", foundationMethods: "dev", @@ -21,10 +21,10 @@ describeSuite({ it({ id: "E01", title: "Collator should rotate", - test: async function () { - const fullRotationPeriod = (await context.polkadotJs().query.configuration.activeConfig())[ - "fullRotationPeriod" - ].toString(); + test: async () => { + const fullRotationPeriod = ( + await context.polkadotJs().query.configuration.activeConfig() + ).fullRotationPeriod.toString(); const sessionIndex = (await polkadotJs.query.session.currentIndex()).toNumber(); // Calculate the remaining sessions for next full rotation // This is a workaround for running moonwall in run mode @@ -70,7 +70,7 @@ describeSuite({ const sessionDuration = 10; await jumpBlocks(context, sessionDuration - 1); const assignmentRandomness = await polkadotJs.query.collatorAssignment.randomness(); - // TODO: in dancelight isEmpty == false because we have randomness there + // TODO: in dancelight isEmpty === false because we have randomness there // In dancebox dev tests there is no rotation because there is no randomness expect(assignmentRandomness.isEmpty).toBe(true); }, diff --git a/test/suites/dev-tanssi/collator-assignment/test-collator-fullness.ts b/test/suites/dev-tanssi/collator-assignment/test-collator-fullness.ts index d170084a7..912789632 100644 --- a/test/suites/dev-tanssi/collator-assignment/test-collator-fullness.ts +++ b/test/suites/dev-tanssi/collator-assignment/test-collator-fullness.ts @@ -1,10 +1,10 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; +import type { ApiPromise } from "@polkadot/api"; import { jumpToSession } from "util/block"; describeSuite({ - id: "DT0802", + id: "DEV0202", title: "Collator assignment tests", foundationMethods: "dev", @@ -18,13 +18,13 @@ describeSuite({ it({ id: "E01", title: "Collator should rotate", - test: async function () { - const fullRotationPeriod = (await context.polkadotJs().query.configuration.activeConfig())[ - "fullRotationPeriod" - ].toString(); - const maxCollators = (await context.polkadotJs().query.configuration.activeConfig())[ - "maxCollators" - ].toNumber(); + test: async () => { + const fullRotationPeriod = ( + await context.polkadotJs().query.configuration.activeConfig() + ).fullRotationPeriod.toString(); + const maxCollators = ( + await context.polkadotJs().query.configuration.activeConfig() + ).maxCollators.toNumber(); const sessionIndex = (await polkadotJs.query.session.currentIndex()).toNumber(); // Calculate the remaining sessions for next full rotation // This is a workaround for running moonwall in run mode diff --git a/test/suites/dev-tanssi/collator-assignment/test-full-rotation-mode-parathreads.ts b/test/suites/dev-tanssi/collator-assignment/test-full-rotation-mode-parathreads.ts index bab2a25b9..1254ff9a6 100644 --- a/test/suites/dev-tanssi/collator-assignment/test-full-rotation-mode-parathreads.ts +++ b/test/suites/dev-tanssi/collator-assignment/test-full-rotation-mode-parathreads.ts @@ -1,19 +1,19 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll, customDevRpcRequest } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; +import type { ApiPromise } from "@polkadot/api"; import { jumpBlocks, jumpSessions, jumpToSession } from "util/block"; -import { filterAndApply, generateKeyringPair } from "@moonwall/util"; -import { EventRecord } from "@polkadot/types/interfaces"; -import { bool, u32, u8, Vec } from "@polkadot/types-codec"; +import { filterAndApply, generateKeyringPair, type KeyringPair } from "@moonwall/util"; +import type { EventRecord } from "@polkadot/types/interfaces"; +import type { bool, u32, u8, Vec } from "@polkadot/types-codec"; describeSuite({ - id: "DTR0304", + id: "DEV0203", title: "Collator assignment tests", foundationMethods: "dev", testCases: ({ it, context }) => { let polkadotJs: ApiPromise; - let alice; + let alice: KeyringPair; beforeAll(async () => { polkadotJs = context.polkadotJs(); @@ -30,7 +30,7 @@ describeSuite({ it({ id: "E01", title: "Collator should rotate", - test: async function () { + test: async () => { const orchestrator = "RotateAll"; const parachain = "KeepAll"; const parathread = { KeepPerbill: { percentage: 500_000_000n } }; // 50% @@ -80,9 +80,9 @@ describeSuite({ // Collators are registered, wait 2 sessions for them to be assigned await jumpSessions(context, 1); - const fullRotationPeriod = (await polkadotJs.query.configuration.activeConfig())[ - "fullRotationPeriod" - ].toString(); + const fullRotationPeriod = ( + await polkadotJs.query.configuration.activeConfig() + ).fullRotationPeriod.toString(); const sessionIndex = (await polkadotJs.query.session.currentIndex()).toNumber(); // Calculate the remaining sessions for next full rotation // This is a workaround for running moonwall in run mode diff --git a/test/suites/dev-tanssi/collator-assignment/test-full-rotation-mode.ts b/test/suites/dev-tanssi/collator-assignment/test-full-rotation-mode.ts index 35f93a494..6b40e270b 100644 --- a/test/suites/dev-tanssi/collator-assignment/test-full-rotation-mode.ts +++ b/test/suites/dev-tanssi/collator-assignment/test-full-rotation-mode.ts @@ -1,19 +1,19 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll, customDevRpcRequest } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; +import type { ApiPromise } from "@polkadot/api"; import { jumpBlocks, jumpSessions, jumpToSession } from "util/block"; -import { filterAndApply, generateKeyringPair } from "@moonwall/util"; -import { EventRecord } from "@polkadot/types/interfaces"; -import { bool, u32, u8, Vec } from "@polkadot/types-codec"; +import { filterAndApply, generateKeyringPair, type KeyringPair } from "@moonwall/util"; +import type { EventRecord } from "@polkadot/types/interfaces"; +import type { bool, u32, u8, Vec } from "@polkadot/types-codec"; describeSuite({ - id: "DTR0303", + id: "DEV0204", title: "Collator assignment tests", foundationMethods: "dev", testCases: ({ it, context }) => { let polkadotJs: ApiPromise; - let alice; + let alice: KeyringPair; beforeAll(async () => { polkadotJs = context.polkadotJs(); @@ -26,7 +26,7 @@ describeSuite({ it({ id: "E01", title: "Collator should rotate", - test: async function () { + test: async () => { const orchestrator = "KeepAll"; const parachain = { KeepCollators: { keep: 1 } }; const parathread = "RotateAll"; @@ -70,9 +70,9 @@ describeSuite({ // Collators are registered, wait 2 sessions for them to be assigned await jumpSessions(context, 2); - const fullRotationPeriod = (await polkadotJs.query.configuration.activeConfig())[ - "fullRotationPeriod" - ].toString(); + const fullRotationPeriod = ( + await polkadotJs.query.configuration.activeConfig() + ).fullRotationPeriod.toString(); const sessionIndex = (await polkadotJs.query.session.currentIndex()).toNumber(); // Calculate the remaining sessions for next full rotation // This is a workaround for running moonwall in run mode diff --git a/test/suites/dev-tanssi/proxy/test-session-keys-management.ts b/test/suites/dev-tanssi/proxy/test-session-keys-management.ts index 8a4650678..aa78ff7b5 100644 --- a/test/suites/dev-tanssi/proxy/test-session-keys-management.ts +++ b/test/suites/dev-tanssi/proxy/test-session-keys-management.ts @@ -1,9 +1,9 @@ -import "@polkadot/api-augment"; +import "@tanssi/api-augment"; import { beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; +import type { ApiPromise } from "@polkadot/api"; describeSuite({ - id: "DT0601", + id: "DEV0601", title: "Proxy test suite - ProxyType::SessionKeyManagement", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -18,7 +18,7 @@ describeSuite({ it({ id: "E01", title: "Delegate account can manage keys", - test: async function () { + test: async () => { const delegator_alice = context.keyring.alice; const delegate_charlie = context.keyring.charlie; @@ -27,7 +27,7 @@ describeSuite({ let events = await polkadotJs.query.system.events(); let ev1 = events.filter((a) => { - return a.event.method == "ProxyAdded"; + return a.event.method === "ProxyAdded"; }); expect(ev1.length).to.be.equal(1); @@ -41,7 +41,7 @@ describeSuite({ await context.createBlock([await tx.signAsync(delegate_charlie)]); events = await polkadotJs.query.system.events(); ev1 = events.filter((a) => { - return a.event.method == "ProxyExecuted"; + return a.event.method === "ProxyExecuted"; }); expect(ev1.length).to.be.equal(1); expect(ev1[0].event.data[0].toString()).to.be.eq("Ok"); @@ -51,7 +51,7 @@ describeSuite({ it({ id: "E02", title: "Non-Delegate account fails to manage other account's keys", - test: async function () { + test: async () => { const alice = context.keyring.alice; const non_delegate_dave = context.keyring.dave; @@ -68,7 +68,7 @@ describeSuite({ await context.createBlock([await tx.signAsync(non_delegate_dave)]); const events = await polkadotJs.query.system.events(); const ev1 = events.filter((a) => { - return a.event.method == "ProxyExecuted"; + return a.event.method === "ProxyExecuted"; }); expect(ev1.length).to.be.equal(0); }, diff --git a/test/suites/dev-tanssi/register-with-relay-proof/test_deregister_with_relay_proof.ts b/test/suites/dev-tanssi/register-with-relay-proof/test_deregister_with_relay_proof.ts index f8aef5f6b..b0f0cec55 100644 --- a/test/suites/dev-tanssi/register-with-relay-proof/test_deregister_with_relay_proof.ts +++ b/test/suites/dev-tanssi/register-with-relay-proof/test_deregister_with_relay_proof.ts @@ -1,11 +1,11 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { KeyringPair } from "@moonwall/util"; -import { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; import { jumpSessions, fetchStorageProofFromValidationData, extractFeeAuthor } from "../../../util/block"; describeSuite({ - id: "DT0501", + id: "DEV0301", title: "Registrar test suite: de-register with relay proof", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -21,7 +21,7 @@ describeSuite({ it({ id: "E02", title: "Checking that registering paraIds is possible", - test: async function () { + test: async () => { await context.createBlock(); const currentSesssion = await polkadotJs.query.session.currentIndex(); @@ -103,7 +103,7 @@ describeSuite({ it({ id: "E03", title: "Checking that fetching registered paraIds is possible", - test: async function () { + test: async () => { // Expect now paraIds to be registered const parasRegistered = await polkadotJs.query.registrar.registeredParaIds(); // TODO: fix once we have types @@ -118,7 +118,7 @@ describeSuite({ it({ id: "E04", title: "Checking that de-registering paraIds is possible", - test: async function () { + test: async () => { await context.createBlock(); const currentSesssion = await polkadotJs.query.session.currentIndex(); @@ -129,9 +129,8 @@ describeSuite({ const balanceBeforeAlice = (await polkadotJs.query.system.account(alice.address)).data; const balanceBeforeBob = (await polkadotJs.query.system.account(bob.address)).data; - const { relayProofBlockNumber, relayStorageProof } = await fetchStorageProofFromValidationData( - polkadotJs - ); + const { relayProofBlockNumber, relayStorageProof } = + await fetchStorageProofFromValidationData(polkadotJs); const tx = polkadotJs.tx.registrar.deregisterWithRelayProof( 2003, relayProofBlockNumber, diff --git a/test/suites/dev-tanssi/register-with-relay-proof/test_register_with_relay_proof.ts b/test/suites/dev-tanssi/register-with-relay-proof/test_register_with_relay_proof.ts index 67db8b455..62677b252 100644 --- a/test/suites/dev-tanssi/register-with-relay-proof/test_register_with_relay_proof.ts +++ b/test/suites/dev-tanssi/register-with-relay-proof/test_register_with_relay_proof.ts @@ -1,11 +1,11 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { KeyringPair } from "@moonwall/util"; -import { ApiPromise, Keyring } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; +import { type ApiPromise, Keyring } from "@polkadot/api"; import { jumpSessions, fetchStorageProofFromValidationData } from "../../../util/block"; describeSuite({ - id: "DT0502", + id: "DEV0302", title: "Registrar test suite: register with relay proof", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -32,7 +32,7 @@ describeSuite({ it({ id: "E01", title: "Checking that fetching registered paraIds is possible", - test: async function () { + test: async () => { const parasRegistered = await polkadotJs.query.registrar.registeredParaIds(); // These are registered in genesis @@ -44,7 +44,7 @@ describeSuite({ it({ id: "E02", title: "Checking that registering paraIds is possible", - test: async function () { + test: async () => { await context.createBlock(); const currentSesssion = await polkadotJs.query.session.currentIndex(); @@ -76,16 +76,14 @@ describeSuite({ return g; }; const containerChainGenesisData = emptyGenesisData(); - const { relayProofBlockNumber, relayStorageProof } = await fetchStorageProofFromValidationData( - polkadotJs - ); + const { relayProofBlockNumber, relayStorageProof } = + await fetchStorageProofFromValidationData(polkadotJs); const parathreadParams = null; const relayStorageRoots = await polkadotJs.query.relayStorageRoots.relayStorageRootKeys(); const lastStoredRelayBlockNumber = relayStorageRoots.toJSON()[relayStorageRoots.toJSON().length - 1]; - const lastRelayStorageRoot = await polkadotJs.query.relayStorageRoots.relayStorageRoot( - lastStoredRelayBlockNumber - ); + const lastRelayStorageRoot = + await polkadotJs.query.relayStorageRoots.relayStorageRoot(lastStoredRelayBlockNumber); // message: paraId || account (alice) || lastRelayStorageRoot const message = new Uint8Array([ @@ -157,7 +155,7 @@ describeSuite({ it({ id: "E03", title: "Registered paraId has been given free credits, and flag can be cleared", - test: async function () { + test: async () => { const paraId = 2002; const givenFreeCredits = await polkadotJs.query.servicesPayment.givenFreeCredits(paraId); expect(givenFreeCredits.isNone).to.be.false; diff --git a/test/suites/dev-tanssi/registrar/test_registrar_register_parathread.ts b/test/suites/dev-tanssi/registrar/test_registrar_register_parathread.ts index 52a5c4114..b9d89b802 100644 --- a/test/suites/dev-tanssi/registrar/test_registrar_register_parathread.ts +++ b/test/suites/dev-tanssi/registrar/test_registrar_register_parathread.ts @@ -1,11 +1,11 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { KeyringPair } from "@moonwall/util"; -import { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; import { jumpSessions } from "../../../util/block"; describeSuite({ - id: "CPT0505", + id: "DEV0701", title: "Registrar test suite", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -20,7 +20,7 @@ describeSuite({ it({ id: "E01", title: "Checking that fetching registered paraIds is possible", - test: async function () { + test: async () => { const parasRegistered = await polkadotJs.query.registrar.registeredParaIds(); // These are registered in genesis @@ -32,7 +32,7 @@ describeSuite({ it({ id: "E02", title: "Checking that registering paraIds is possible", - test: async function () { + test: async () => { await context.createBlock(); const currentSesssion = await polkadotJs.query.session.currentIndex(); @@ -127,7 +127,7 @@ describeSuite({ it({ id: "E03", title: "Registered paraId has been given free credits, and flag can be cleared", - test: async function () { + test: async () => { const paraId = 2002; const givenFreeCredits = await polkadotJs.query.servicesPayment.givenFreeCredits(paraId); expect(givenFreeCredits.isNone).to.be.false; @@ -144,7 +144,7 @@ describeSuite({ it({ id: "E04", title: "Parathread params can be changed", - test: async function () { + test: async () => { const paraId = 2002; const slotFrequency = polkadotJs.createType("TpTraitsSlotFrequency", { min: 2, diff --git a/test/suites/dev-tanssi/session-keys/test_remove_session_key_invulnerables.ts b/test/suites/dev-tanssi/session-keys/test_remove_session_key_invulnerables.ts index 43f73e3b1..aeee2d362 100644 --- a/test/suites/dev-tanssi/session-keys/test_remove_session_key_invulnerables.ts +++ b/test/suites/dev-tanssi/session-keys/test_remove_session_key_invulnerables.ts @@ -1,11 +1,11 @@ -import "@polkadot/api-augment"; +import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { KeyringPair } from "@moonwall/util"; -import { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; import { jumpSessions } from "../../../util/block"; describeSuite({ - id: "DT0201", + id: "DEV0401", title: "Removing session keys assignment test suite", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -23,13 +23,13 @@ describeSuite({ it({ id: "E01", title: "Checking that removing a session key makes the key dissappear from eligibility", - test: async function () { + test: async () => { // Bob is an invulnerable, but the keys will be removed and we will see what happens const bobKey = (await polkadotJs.query.session.nextKeys(bob.address)).toJSON().nimbus; const aliceKey = (await polkadotJs.query.session.nextKeys(alice.address)).toJSON().nimbus; // Bob's key should be an authority const authoritiesGenesis = await polkadotJs.query.authorityAssignment.collatorContainerChain(0); - expect(authoritiesGenesis.toJSON()["containerChains"]["2000"]).toContainEqual(bobKey); + expect(authoritiesGenesis.toJSON().containerChains["2000"]).toContainEqual(bobKey); // now purge keys await polkadotJs.tx.session.purgeKeys().signAndSend(bob); @@ -43,16 +43,16 @@ describeSuite({ // Bob is no longer an authority, but alice is expect(authorities.toJSON().orchestratorChain).not.toContainEqual(bobKey); expect(authorities.toJSON().orchestratorChain).toContainEqual(aliceKey); - expect(authorities.toJSON()["containerChains"]["2000"]).not.toContainEqual(bobKey); - expect(authorities.toJSON()["containerChains"]["2001"]).not.toContainEqual(bobKey); + expect(authorities.toJSON().containerChains["2000"]).not.toContainEqual(bobKey); + expect(authorities.toJSON().containerChains["2001"]).not.toContainEqual(bobKey); // But not only authority assignment, collator assignment should also not have bob const collators = await polkadotJs.query.collatorAssignment.collatorContainerChain(); // Bob is no longer an assigned collator, but alice is expect(collators.toJSON().orchestratorChain).not.toContainEqual(bob.address); expect(collators.toJSON().orchestratorChain).toContainEqual(alice.address); - expect(collators.toJSON()["containerChains"]["2000"]).not.toContainEqual(bob.address); - expect(collators.toJSON()["containerChains"]["2001"]).not.toContainEqual(bob.address); + expect(collators.toJSON().containerChains["2000"]).not.toContainEqual(bob.address); + expect(collators.toJSON().containerChains["2001"]).not.toContainEqual(bob.address); }, }); }, diff --git a/test/suites/dev-tanssi/session-keys/test_remove_session_key_staking.ts b/test/suites/dev-tanssi/session-keys/test_remove_session_key_staking.ts index f32dca267..07bef14d3 100644 --- a/test/suites/dev-tanssi/session-keys/test_remove_session_key_staking.ts +++ b/test/suites/dev-tanssi/session-keys/test_remove_session_key_staking.ts @@ -1,13 +1,13 @@ -import "@polkadot/api-augment"; +import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { KeyringPair } from "@moonwall/util"; -import { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; import { jumpSessions } from "../../../util/block"; import { DANCE } from "util/constants"; import { createBlockAndRemoveInvulnerables } from "util/invulnerables"; describeSuite({ - id: "DT0202", + id: "DEV0402", title: "Removing session keys assignment test suite", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -53,17 +53,16 @@ describeSuite({ it({ id: "E01", title: "Checking that removing a session key makes the key dissappear from eligibility", - test: async function () { + test: async () => { // Bob is a staking candidate, but the keys will be removed and we will see what happens const bobKey = (await polkadotJs.query.session.nextKeys(bob.address)).toJSON().nimbus; const aliceKey = (await polkadotJs.query.session.nextKeys(alice.address)).toJSON().nimbus; const currentSessionBeforePurge = await polkadotJs.query.session.currentIndex(); // Bob's key should be an authority - const authoritiesBeforePurge = await polkadotJs.query.authorityAssignment.collatorContainerChain( - currentSessionBeforePurge - ); - expect(authoritiesBeforePurge.toJSON()["containerChains"]["2000"]).toContainEqual(bobKey); + const authoritiesBeforePurge = + await polkadotJs.query.authorityAssignment.collatorContainerChain(currentSessionBeforePurge); + expect(authoritiesBeforePurge.toJSON().containerChains["2000"]).toContainEqual(bobKey); // now purge keys await polkadotJs.tx.session.purgeKeys().signAndSend(bob); @@ -77,16 +76,16 @@ describeSuite({ // Bob is no longer an authority, but alice is expect(authorities.toJSON().orchestratorChain).not.toContainEqual(bobKey); expect(authorities.toJSON().orchestratorChain).toContainEqual(aliceKey); - expect(authorities.toJSON()["containerChains"]["2000"]).not.toContainEqual(bobKey); - expect(authorities.toJSON()["containerChains"]["2001"]).not.toContainEqual(bobKey); + expect(authorities.toJSON().containerChains["2000"]).not.toContainEqual(bobKey); + expect(authorities.toJSON().containerChains["2001"]).not.toContainEqual(bobKey); // But not only authority assignment, collator assignment should also not have bob const collators = await polkadotJs.query.collatorAssignment.collatorContainerChain(); // Bob is no longer an assigned collator, but alice is expect(collators.toJSON().orchestratorChain).not.toContainEqual(bob.address); expect(collators.toJSON().orchestratorChain).toContainEqual(alice.address); - expect(collators.toJSON()["containerChains"]["2000"]).not.toContainEqual(bob.address); - expect(collators.toJSON()["containerChains"]["2001"]).not.toContainEqual(bob.address); + expect(collators.toJSON().containerChains["2000"]).not.toContainEqual(bob.address); + expect(collators.toJSON().containerChains["2001"]).not.toContainEqual(bob.address); }, }); }, diff --git a/test/suites/dev-tanssi/session-keys/test_session_keys.ts b/test/suites/dev-tanssi/session-keys/test_session_keys.ts index 4b2906d45..92a794d7f 100644 --- a/test/suites/dev-tanssi/session-keys/test_session_keys.ts +++ b/test/suites/dev-tanssi/session-keys/test_session_keys.ts @@ -1,12 +1,12 @@ -import "@polkadot/api-augment"; +import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { KeyringPair } from "@moonwall/util"; -import { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; import { jumpSessions } from "../../../util/block"; import { u8aToHex } from "@polkadot/util"; describeSuite({ - id: "DT0204", + id: "DEV0404", title: "Session keys test suite", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -23,7 +23,7 @@ describeSuite({ it({ id: "E01", title: "Checking that session keys are correct on genesis", - test: async function () { + test: async () => { // for session 0 const keys = await polkadotJs.query.authorityMapping.authorityIdMapping(0); // TODO: fix once we have types @@ -41,7 +41,7 @@ describeSuite({ it({ id: "E02", title: "Checking that session keys can be changed and are reflected", - test: async function () { + test: async () => { const newKey = await polkadotJs.rpc.author.rotateKeys(); await polkadotJs.tx.session.setKeys(newKey, []).signAndSend(alice); @@ -49,7 +49,7 @@ describeSuite({ // Check key is reflected in next key // But its not yet in queued const queuedKeys = await polkadotJs.query.session.queuedKeys(); - const result = queuedKeys.filter((keyItem) => keyItem[1].nimbus == newKey); + const result = queuedKeys.filter((keyItem) => keyItem[1].nimbus === newKey); expect(result).is.empty; const nextKey = await polkadotJs.query.session.nextKeys(alice.address); expect(u8aToHex(nextKey.unwrap().nimbus)).to.be.eq(u8aToHex(newKey)); @@ -60,7 +60,9 @@ describeSuite({ // The key should be queued at this point, to be applied on the next session const queuedKeysSession1 = await polkadotJs.query.session.queuedKeys(); - const result1 = queuedKeysSession1.filter((keyItem) => u8aToHex(keyItem[1].nimbus) == u8aToHex(newKey)); + const result1 = queuedKeysSession1.filter( + (keyItem) => u8aToHex(keyItem[1].nimbus) === u8aToHex(newKey) + ); expect(result1.length).to.be.eq(1); // Let's jump one more session diff --git a/test/suites/dev-tanssi/session-keys/test_session_keys_assignment.ts b/test/suites/dev-tanssi/session-keys/test_session_keys_assignment.ts index 45c7434a8..ea782a51d 100644 --- a/test/suites/dev-tanssi/session-keys/test_session_keys_assignment.ts +++ b/test/suites/dev-tanssi/session-keys/test_session_keys_assignment.ts @@ -1,12 +1,12 @@ -import "@polkadot/api-augment"; +import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { KeyringPair } from "@moonwall/util"; -import { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; import { jumpSessions } from "../../../util/block"; import { u8aToHex } from "@polkadot/util"; describeSuite({ - id: "DT0203", + id: "DEV0403", title: "Session keys assignment test suite", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -26,7 +26,7 @@ describeSuite({ it({ id: "E01", title: "Checking that authority assignment is correct on genesis", - test: async function () { + test: async () => { // for session 0 // TODO: fix once we have types const assignment0 = (await polkadotJs.query.authorityAssignment.collatorContainerChain(0)) @@ -57,7 +57,7 @@ describeSuite({ it({ id: "E02", title: "Checking that session keys can be changed and are reflected", - test: async function () { + test: async () => { const newKey = await polkadotJs.rpc.author.rotateKeys(); await polkadotJs.tx.session.setKeys(newKey, []).signAndSend(alice); @@ -65,7 +65,7 @@ describeSuite({ // Check key is reflected in next key // But its not yet in queued const queuedKeys = await polkadotJs.query.session.queuedKeys(); - const result = queuedKeys.filter((keyItem) => keyItem[1].nimbus == newKey); + const result = queuedKeys.filter((keyItem) => keyItem[1].nimbus === newKey); expect(result).is.empty; const nextKey = await polkadotJs.query.session.nextKeys(alice.address); expect(u8aToHex(nextKey.unwrap().nimbus)).to.be.eq(u8aToHex(newKey)); @@ -81,7 +81,9 @@ describeSuite({ // The key should be queued at this point, to be applied on the next session const queuedKeysSession1 = await polkadotJs.query.session.queuedKeys(); - const result1 = queuedKeysSession1.filter((keyItem) => u8aToHex(keyItem[1].nimbus) == u8aToHex(newKey)); + const result1 = queuedKeysSession1.filter( + (keyItem) => u8aToHex(keyItem[1].nimbus) === u8aToHex(newKey) + ); expect(result1.length).to.be.eq(1); expect((await polkadotJs.query.authorityAssignment.collatorContainerChain(0)).isNone).to.be.true; diff --git a/test/suites/dev-tanssi/staking/test_staking_join.ts b/test/suites/dev-tanssi/staking/test_staking_join.ts index 3d919a357..bf5fd2115 100644 --- a/test/suites/dev-tanssi/staking/test_staking_join.ts +++ b/test/suites/dev-tanssi/staking/test_staking_join.ts @@ -1,12 +1,12 @@ import "@tanssi/api-augment"; import { describeSuite, beforeAll, expect } from "@moonwall/cli"; -import { KeyringPair } from "@moonwall/util"; -import { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; import { numberToHex } from "@polkadot/util"; import { jumpToBlock } from "../../../util/block"; describeSuite({ - id: "DT0301", + id: "DEV0801", title: "Fee test suite", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -25,7 +25,7 @@ describeSuite({ it({ id: "E01", title: "Cannot execute stake join before 2 sessions", - test: async function () { + test: async () => { const initialSession = 0; const tx = polkadotJs.tx.pooledStaking.requestDelegate( alice.address, @@ -35,15 +35,15 @@ describeSuite({ await context.createBlock([await tx.signAsync(alice)]); const events = await polkadotJs.query.system.events(); const ev1 = events.filter((a) => { - return a.event.method == "IncreasedStake"; + return a.event.method === "IncreasedStake"; }); expect(ev1.length).to.be.equal(1); const ev2 = events.filter((a) => { - return a.event.method == "UpdatedCandidatePosition"; + return a.event.method === "UpdatedCandidatePosition"; }); expect(ev2.length).to.be.equal(1); const ev3 = events.filter((a) => { - return a.event.method == "RequestedDelegate"; + return a.event.method === "RequestedDelegate"; }); expect(ev3.length).to.be.equal(1); @@ -75,7 +75,7 @@ describeSuite({ // executePendingOperations failed const events2 = await polkadotJs.query.system.events(); const ev4 = events2.filter((a) => { - return a.event.method == "ExtrinsicFailed"; + return a.event.method === "ExtrinsicFailed"; }); expect(ev4.length).to.be.equal(1); @@ -87,11 +87,11 @@ describeSuite({ const events3 = await polkadotJs.query.system.events(); const ev5 = events3.filter((a) => { - return a.event.method == "StakedAutoCompounding"; + return a.event.method === "StakedAutoCompounding"; }); expect(ev5.length).to.be.equal(1); const ev6 = events3.filter((a) => { - return a.event.method == "ExecutedDelegate"; + return a.event.method === "ExecutedDelegate"; }); expect(ev6.length).to.be.equal(1); }, diff --git a/test/suites/dev-tanssi/staking/test_staking_rewards_balanced.ts b/test/suites/dev-tanssi/staking/test_staking_rewards_balanced.ts index 597b5bd54..3c0ee83aa 100644 --- a/test/suites/dev-tanssi/staking/test_staking_rewards_balanced.ts +++ b/test/suites/dev-tanssi/staking/test_staking_rewards_balanced.ts @@ -1,7 +1,7 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; -import { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; import { fetchIssuance, fetchRewardAuthorOrchestrator, @@ -13,7 +13,7 @@ import { DANCE } from "util/constants"; import { createBlockAndRemoveInvulnerables } from "util/invulnerables"; describeSuite({ - id: "DT0302", + id: "DEV0802", title: "Staking candidate reward test suite", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -60,7 +60,7 @@ describeSuite({ it({ id: "E01", title: "Alice should receive rewards through staking now", - test: async function () { + test: async () => { // 70% is distributed across all rewards // But we have 2 container chains, so it should get 1/3 of this // Since it is an invulnerable, it receives all payment @@ -90,7 +90,7 @@ describeSuite({ it({ id: "E02", title: "Alice should receive shared rewards with delegators through staking now", - test: async function () { + test: async () => { // All pending operations where in session 0 await context.createBlock([ await polkadotJs.tx.pooledStaking diff --git a/test/suites/dev-tanssi/staking/test_staking_rewards_non_balanced.ts b/test/suites/dev-tanssi/staking/test_staking_rewards_non_balanced.ts index 50d90925f..241c2af20 100644 --- a/test/suites/dev-tanssi/staking/test_staking_rewards_non_balanced.ts +++ b/test/suites/dev-tanssi/staking/test_staking_rewards_non_balanced.ts @@ -1,7 +1,7 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; -import { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; import { fetchIssuance, fetchRewardAuthorOrchestrator, @@ -13,7 +13,7 @@ import { DANCE } from "util/constants"; import { createBlockAndRemoveInvulnerables } from "util/invulnerables"; describeSuite({ - id: "DT0303", + id: "DEV0803", title: "Staking candidate reward test suite", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -59,7 +59,7 @@ describeSuite({ it({ id: "E01", title: "Alice should receive rewards through staking now", - test: async function () { + test: async () => { // 70% is distributed across all rewards // But we have 2 container chains, so it should get 1/3 of this // Since it is an invulnerable, it receives all payment @@ -91,7 +91,7 @@ describeSuite({ it({ id: "E02", title: "Alice should receive shared rewards with delegators through staking now", - test: async function () { + test: async () => { // All pending operations where in session 0 await context.createBlock([ await polkadotJs.tx.pooledStaking diff --git a/test/suites/dev-tanssi/staking/test_staking_session.ts b/test/suites/dev-tanssi/staking/test_staking_session.ts index b61736d05..9684fd274 100644 --- a/test/suites/dev-tanssi/staking/test_staking_session.ts +++ b/test/suites/dev-tanssi/staking/test_staking_session.ts @@ -1,12 +1,12 @@ import "@tanssi/api-augment"; import { describeSuite, beforeAll, expect, isExtrinsicSuccessful } from "@moonwall/cli"; -import { KeyringPair, generateKeyringPair } from "@moonwall/util"; -import { ApiPromise } from "@polkadot/api"; +import { type KeyringPair, generateKeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; import { numberToHex } from "@polkadot/util"; import { jumpToBlock } from "../../../util/block"; describeSuite({ - id: "DT0304", + id: "DEV0804", title: "Fee test suite", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -23,7 +23,7 @@ describeSuite({ it({ id: "E01", title: "It takes 2 sessions to update pallet_session collators", - test: async function () { + test: async () => { const initialValidators = await polkadotJs.query.session.validators(); const randomAccount = generateKeyringPair("sr25519"); @@ -47,15 +47,15 @@ describeSuite({ await context.createBlock([await tx3.signAsync(randomAccount)]); const events = await polkadotJs.query.system.events(); const ev1 = events.filter((a) => { - return a.event.method == "IncreasedStake"; + return a.event.method === "IncreasedStake"; }); expect(ev1.length).to.be.equal(1); const ev2 = events.filter((a) => { - return a.event.method == "UpdatedCandidatePosition"; + return a.event.method === "UpdatedCandidatePosition"; }); expect(ev2.length).to.be.equal(1); const ev3 = events.filter((a) => { - return a.event.method == "RequestedDelegate"; + return a.event.method === "RequestedDelegate"; }); expect(ev3.length).to.be.equal(1); diff --git a/test/suites/dev-tanssi/staking/test_staking_swap.ts b/test/suites/dev-tanssi/staking/test_staking_swap.ts index c0303dee1..e882ffed4 100644 --- a/test/suites/dev-tanssi/staking/test_staking_swap.ts +++ b/test/suites/dev-tanssi/staking/test_staking_swap.ts @@ -1,12 +1,12 @@ import "@tanssi/api-augment"; import { describeSuite, beforeAll, expect } from "@moonwall/cli"; -import { KeyringPair } from "@moonwall/util"; -import { ApiPromise } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; import { numberToHex } from "@polkadot/util"; import { jumpToBlock } from "../../../util/block"; describeSuite({ - id: "DT0305", + id: "DEV0805", title: "Staking poolSwap test suite", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -25,7 +25,7 @@ describeSuite({ it({ id: "E01", title: "poolSwap works", - test: async function () { + test: async () => { const initialSession = 0; const tx = polkadotJs.tx.pooledStaking.requestDelegate( alice.address, @@ -35,15 +35,15 @@ describeSuite({ await context.createBlock([await tx.signAsync(alice)]); const events = await polkadotJs.query.system.events(); const ev1 = events.filter((a) => { - return a.event.method == "IncreasedStake"; + return a.event.method === "IncreasedStake"; }); expect(ev1.length).to.be.equal(1); const ev2 = events.filter((a) => { - return a.event.method == "UpdatedCandidatePosition"; + return a.event.method === "UpdatedCandidatePosition"; }); expect(ev2.length).to.be.equal(1); const ev3 = events.filter((a) => { - return a.event.method == "RequestedDelegate"; + return a.event.method === "RequestedDelegate"; }); expect(ev3.length).to.be.equal(1); @@ -73,11 +73,11 @@ describeSuite({ const events3 = await polkadotJs.query.system.events(); const ev5 = events3.filter((a) => { - return a.event.method == "StakedAutoCompounding"; + return a.event.method === "StakedAutoCompounding"; }); expect(ev5.length).to.be.equal(1); const ev6 = events3.filter((a) => { - return a.event.method == "ExecutedDelegate"; + return a.event.method === "ExecutedDelegate"; }); expect(ev6.length).to.be.equal(1); @@ -89,7 +89,7 @@ describeSuite({ const events4 = await polkadotJs.query.system.events(); const ev7 = events4.filter((a) => { - return a.event.method == "SwappedPool"; + return a.event.method === "SwappedPool"; }); expect(ev7.length).to.be.equal(1); }, diff --git a/test/suites/dev-tanssi/weights/test_on_session_change_weight.ts b/test/suites/dev-tanssi/weights/test_on_session_change_weight.ts index cef9546c0..45f756683 100644 --- a/test/suites/dev-tanssi/weights/test_on_session_change_weight.ts +++ b/test/suites/dev-tanssi/weights/test_on_session_change_weight.ts @@ -1,10 +1,10 @@ -import "@polkadot/api-augment"; +import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; +import type { ApiPromise } from "@polkadot/api"; import { jumpSessions } from "../../../util/block"; describeSuite({ - id: "DT0401", + id: "DEV0901", title: "On session change weights suite", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -19,7 +19,7 @@ describeSuite({ it({ id: "E01", title: "Block weight on session change should be max", - test: async function () { + test: async () => { // Let's jump one session await jumpSessions(context, 1); @@ -37,7 +37,7 @@ describeSuite({ it({ id: "E02", title: "Block weight not on session change should be small", - test: async function () { + test: async () => { await context.createBlock(); // TODO: fix once we have types diff --git a/test/suites/dev-tanssi/weights/test_set_latest_author_data_weight.ts b/test/suites/dev-tanssi/weights/test_set_latest_author_data_weight.ts index 98df01085..298c6cf18 100644 --- a/test/suites/dev-tanssi/weights/test_set_latest_author_data_weight.ts +++ b/test/suites/dev-tanssi/weights/test_set_latest_author_data_weight.ts @@ -1,17 +1,17 @@ -import "@polkadot/api-augment"; +import "@tanssi/api-augment"; import { describeSuite, expect } from "@moonwall/cli"; -import { FrameSupportDispatchDispatchInfo } from "@polkadot/types/lookup"; +import type { FrameSupportDispatchDispatchInfo } from "@polkadot/types/lookup"; import { BN } from "@polkadot/util"; describeSuite({ - id: "DT0402", + id: "DEV0902", title: "On set latest author data weight check", foundationMethods: "dev", testCases: ({ it, context }) => { it({ id: "E01", title: "Weight should be match expected", - test: async function () { + test: async () => { // TODO: is it expected that this test breaks, just copy the new weights const expectedRefTime = new BN(912947136); const expectedProofSize = new BN(8046); diff --git a/test/suites/dev-tanssi/xcm-core-buyer/test_xcm_core_buyer.ts b/test/suites/dev-tanssi/xcm-core-buyer/test_xcm_core_buyer.ts index d43c7d777..4da3539aa 100644 --- a/test/suites/dev-tanssi/xcm-core-buyer/test_xcm_core_buyer.ts +++ b/test/suites/dev-tanssi/xcm-core-buyer/test_xcm_core_buyer.ts @@ -1,15 +1,15 @@ import "@tanssi/api-augment"; import { describeSuite, beforeAll, expect } from "@moonwall/cli"; -import { KeyringPair } from "@moonwall/util"; -import { ApiPromise, Keyring } from "@polkadot/api"; +import type { KeyringPair } from "@moonwall/util"; +import { type ApiPromise, Keyring } from "@polkadot/api"; import { jumpSessions } from "../../../util/block.ts"; -import { u64 } from "@polkadot/types-codec"; -import { ParaId } from "@polkadot/types/interfaces"; -import { ITuple } from "@polkadot/types-codec/types"; +import type { u64 } from "@polkadot/types-codec"; +import type { ParaId } from "@polkadot/types/interfaces"; +import type { ITuple } from "@polkadot/types-codec/types"; import { u8aToHex } from "@polkadot/util"; describeSuite({ - id: "DT0601", + id: "DEV0501", title: "Pallet XCM core buyer", foundationMethods: "dev", testCases: ({ it, context }) => { @@ -33,7 +33,7 @@ describeSuite({ it({ id: "E01", title: "Sudo can set XCM weights storage", - test: async function () { + test: async () => { // 1st block const tx = polkadotJs.tx.sudo.sudo( polkadotJs.tx.xcmCoreBuyer.setRelayXcmWeightConfig({ @@ -54,7 +54,7 @@ describeSuite({ it({ id: "E02", title: "Register para id 2002 as a parathread and assign collators to it", - test: async function () { + test: async () => { const currentSesssion = await polkadotJs.query.session.currentIndex(); const sessionDelay = await polkadotJs.consts.registrar.sessionDelay; const expectedScheduledOnboarding = @@ -159,7 +159,7 @@ describeSuite({ it({ id: "E03", title: "Sudo can forceBuyCore", - test: async function () { + test: async () => { const paraId = 2002; const encodedMsgBefore = await polkadotJs.query.parachainSystem.upwardMessages(); @@ -169,7 +169,7 @@ describeSuite({ await context.createBlock([await tx.signAsync(alice)]); const events = (await polkadotJs.query.system.events()).filter((a) => { - return a.event.method == "BuyCoreXcmSent"; + return a.event.method === "BuyCoreXcmSent"; }); expect(events.length).to.be.equal(1); @@ -182,7 +182,7 @@ describeSuite({ it({ id: "E04", title: "Collator can call buyCore", - test: async function () { + test: async () => { const paraId = 2002; const nimbusPublicKey = collatorNimbusKey.publicKey; @@ -197,7 +197,7 @@ describeSuite({ // Check key is reflected in next key // But its not yet in queued const queuedKeys = await polkadotJs.query.session.queuedKeys(); - const result = queuedKeys.filter((keyItem) => keyItem[1].nimbus == nimbusPublicKey); + const result = queuedKeys.filter((keyItem) => keyItem[1].nimbus === nimbusPublicKey); expect(result).is.empty; const nextKey = await polkadotJs.query.session.nextKeys(collatorAccountKey.address); expect(u8aToHex(nextKey.unwrap().nimbus)).to.be.eq(u8aToHex(nimbusPublicKey)); @@ -230,7 +230,7 @@ describeSuite({ await context.createBlock(); const events = (await polkadotJs.query.system.events()).filter((a) => { - return a.event.method == "BuyCoreXcmSent"; + return a.event.method === "BuyCoreXcmSent"; }); expect(events.length).to.be.equal(1); }, @@ -239,7 +239,7 @@ describeSuite({ it({ id: "E05", title: "buyCore nonce works properly", - test: async function () { + test: async () => { const paraId = 2002; const nimbusPublicKey = collatorNimbusKey.publicKey; diff --git a/test/suites/rt-upgrade-chopsticks-frontier-template/test-upgrade-chain.ts b/test/suites/rt-upgrade-chopsticks-frontier-template/test-upgrade-chain.ts index f81ebbb7f..7784e9c35 100644 --- a/test/suites/rt-upgrade-chopsticks-frontier-template/test-upgrade-chain.ts +++ b/test/suites/rt-upgrade-chopsticks-frontier-template/test-upgrade-chain.ts @@ -1,21 +1,21 @@ import { MoonwallContext, beforeAll, describeSuite, expect } from "@moonwall/cli"; import { generateKeyringPair } from "@moonwall/util"; -import { ApiPromise } from "@polkadot/api"; +import type { ApiPromise } from "@polkadot/api"; import { alith } from "@moonwall/util"; const MAX_BALANCE_TRANSFER_TRIES = 5; describeSuite({ - id: "CAN", + id: "R01", title: "Chopsticks Frontier Template Upgrade Test", foundationMethods: "chopsticks", - testCases: function ({ it, context, log }) { + testCases: ({ it, context, log }) => { let api: ApiPromise; beforeAll(async () => { api = context.polkadotJs(); const rtBefore = api.consts.system.version.specVersion.toNumber(); - log(`About to upgrade to runtime at:`); + log("About to upgrade to runtime at:"); log((await MoonwallContext.getContext()).rtUpgradePath); await context.upgradeRuntime(); diff --git a/test/suites/rt-upgrade-chopsticks-orchestrator/test-upgrade-chain.ts b/test/suites/rt-upgrade-chopsticks-orchestrator/test-upgrade-chain.ts index adae37990..3542d3ac4 100644 --- a/test/suites/rt-upgrade-chopsticks-orchestrator/test-upgrade-chain.ts +++ b/test/suites/rt-upgrade-chopsticks-orchestrator/test-upgrade-chain.ts @@ -1,13 +1,13 @@ import { MoonwallContext, beforeAll, describeSuite, expect } from "@moonwall/cli"; import { generateKeyringPair } from "@moonwall/util"; -import { ApiPromise, Keyring } from "@polkadot/api"; +import { type ApiPromise, Keyring } from "@polkadot/api"; const MAX_BALANCE_TRANSFER_TRIES = 5; describeSuite({ - id: "CAN", + id: "RT01", title: "Chopsticks Dancebox Upgrade Test", foundationMethods: "chopsticks", - testCases: function ({ it, context, log }) { + testCases: ({ it, context, log }) => { let api: ApiPromise; beforeAll(async () => { @@ -15,7 +15,7 @@ describeSuite({ const rtBefore = api.consts.system.version.specVersion.toNumber(); const sessionBefore = api.query.session.currentIndex(); - log(`About to upgrade to runtime at:`); + log("About to upgrade to runtime at:"); log((await MoonwallContext.getContext()).rtUpgradePath); await context.upgradeRuntime(); @@ -24,7 +24,7 @@ describeSuite({ // New sessions can lead to the runtime upgrade not being correctly applied // Hence we retry once more just in case if ((await sessionAfter).toNumber() > (await sessionBefore).toNumber()) { - log(`New session encountered, just in case retrying`); + log("New session encountered, just in case retrying"); await context.upgradeRuntime(); } diff --git a/test/suites/smoke-test-common-all/test-block-finalized.ts b/test/suites/smoke-test-common-all/test-block-finalized.ts index 6699d320d..c668b603f 100644 --- a/test/suites/smoke-test-common-all/test-block-finalized.ts +++ b/test/suites/smoke-test-common-all/test-block-finalized.ts @@ -1,7 +1,7 @@ import { describeSuite, expect, beforeAll } from "@moonwall/cli"; import { getBlockTime } from "@moonwall/util"; -import { ApiPromise } from "@polkadot/api"; +import type { ApiPromise } from "@polkadot/api"; describeSuite({ id: "S01", @@ -17,7 +17,7 @@ describeSuite({ it({ id: "C01", title: "Blocks should be finalized", - test: async function () { + test: async () => { const head = await api.rpc.chain.getFinalizedHead(); const block = await api.rpc.chain.getBlock(head); const diff = Date.now() - getBlockTime(block); diff --git a/test/suites/smoke-test-common-all/test-collator-number-consistency.ts b/test/suites/smoke-test-common-all/test-collator-number-consistency.ts index 88fcc95d7..b4479d1f9 100644 --- a/test/suites/smoke-test-common-all/test-collator-number-consistency.ts +++ b/test/suites/smoke-test-common-all/test-collator-number-consistency.ts @@ -1,6 +1,6 @@ import { beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; +import type { ApiPromise } from "@polkadot/api"; describeSuite({ id: "S02", @@ -8,8 +8,8 @@ describeSuite({ foundationMethods: "read_only", testCases: ({ it, context }) => { let api: ApiPromise; - let runtimeVersion; - let chain; + let runtimeVersion: number; + let chain: any; beforeAll(() => { api = context.polkadotJs(); @@ -20,40 +20,40 @@ describeSuite({ it({ id: "C01", title: "Collator assignation length should be different if parachain or parathread", - test: async function () { + test: async () => { if (runtimeVersion < 500) { return; } const sessionIndex = (await api.query.session.currentIndex()).toNumber(); const assignmentCollatorKey = ( - chain == "dancelight" + chain === "dancelight" ? await api.query.tanssiAuthorityAssignment.collatorContainerChain(sessionIndex) : await api.query.authorityAssignment.collatorContainerChain(sessionIndex) ).toJSON(); const configuration = - chain == "dancelight" + chain === "dancelight" ? await api.query.collatorConfiguration.activeConfig() : await api.query.configuration.activeConfig(); - if (assignmentCollatorKey["containerChains"] != undefined) { - for (const container of Object.keys(assignmentCollatorKey["containerChains"])) { + if (assignmentCollatorKey.containerChains !== undefined) { + for (const container of Object.keys(assignmentCollatorKey.containerChains)) { const parathreadParams = - chain == "dancelight" + chain === "dancelight" ? await api.query.containerRegistrar.parathreadParams(container) : await api.query.registrar.parathreadParams(container); // This is a parathread if this is Some if (parathreadParams.isNone) { expect( - assignmentCollatorKey["containerChains"][container].length, - `Container chain ${container} has ${assignmentCollatorKey["containerChains"][container].length} but it should have ${configuration.collatorsPerContainer}` + assignmentCollatorKey.containerChains[container].length, + `Container chain ${container} has ${assignmentCollatorKey.containerChains[container].length} but it should have ${configuration.collatorsPerContainer}` ).toBe(configuration.collatorsPerContainer.toNumber()); } else { expect( - assignmentCollatorKey["containerChains"][container].length, - `Parathread ${container} has ${assignmentCollatorKey["containerChains"][container].length} but it should have ${configuration.collatorsPerParathread}` + assignmentCollatorKey.containerChains[container].length, + `Parathread ${container} has ${assignmentCollatorKey.containerChains[container].length} but it should have ${configuration.collatorsPerParathread}` ).toBe(configuration.collatorsPerParathread.toNumber()); } } diff --git a/test/suites/smoke-test-common-all/test-consistency-services-payment.ts b/test/suites/smoke-test-common-all/test-consistency-services-payment.ts index 1fc3288f8..c60741769 100644 --- a/test/suites/smoke-test-common-all/test-consistency-services-payment.ts +++ b/test/suites/smoke-test-common-all/test-consistency-services-payment.ts @@ -1,6 +1,6 @@ import "@tanssi/api-augment"; import { beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; +import type { ApiPromise } from "@polkadot/api"; import { hasEnoughCredits } from "util/payment"; describeSuite({ @@ -9,60 +9,60 @@ describeSuite({ foundationMethods: "read_only", testCases: ({ it, context }) => { let api: ApiPromise; - let runtimeVersion; + let runtimeVersion: number; const costPerSession = 100_000_000n; const costPerBlock = 1_000_000n; - let blocksPerSession; - let chain; + let blocksPerSession: bigint; + let chain: any; beforeAll(async () => { api = context.polkadotJs(); runtimeVersion = api.runtimeVersion.specVersion.toNumber(); chain = api.consts.system.version.specName.toString(); - blocksPerSession = chain == "dancebox" || chain == "dancelight" ? 600n : 50n; + blocksPerSession = chain === "dancebox" || chain === "dancelight" ? 600n : 50n; }); it({ id: "C01", title: "All scheduled parachains should be able to pay for at least 1 session worth of blocks", - test: async function () { + test: async () => { if (runtimeVersion < 500) { return; } const currentBlock = (await api.rpc.chain.getBlock()).block.header.number.toNumber(); const blockToCheck = - chain == "dancelight" + chain === "dancelight" ? (await api.query.babe.epochStart()).toJSON()[1] : Math.trunc(currentBlock / Number(blocksPerSession)) * Number(blocksPerSession); const apiBeforeLatestNewSession = await api.at(await api.rpc.chain.getBlockHash(blockToCheck - 1)); // If they have collators scheduled, they should have at least enough money to pay let pending = - chain == "dancelight" + chain === "dancelight" ? await api.query.tanssiCollatorAssignment.pendingCollatorContainerChain() : await api.query.collatorAssignment.pendingCollatorContainerChain(); if (pending.isNone) { pending = - chain == "dancelight" + chain === "dancelight" ? await api.query.tanssiCollatorAssignment.collatorContainerChain() : await api.query.collatorAssignment.collatorContainerChain(); } const current = - chain == "dancelight" + chain === "dancelight" ? await api.query.tanssiCollatorAssignment.collatorContainerChain() : await api.query.collatorAssignment.collatorContainerChain(); - if (pending["containerChains"] != undefined) { - for (const container of Object.keys(pending.toJSON()["containerChains"])) { + if (pending.containerChains !== undefined) { + for (const container of Object.keys(pending.toJSON().containerChains)) { // if not currently assigned, then one session // if currently assigned, then 2 let sessionRequirements: bigint; if ( - current.toJSON()["containerChains"][container.toString()] == null || - current.toJSON()["containerChains"][container.toString()].length == 0 + current.toJSON().containerChains[container.toString()] === null || + current.toJSON().containerChains[container.toString()].length === 0 ) { sessionRequirements = 1n; } else { diff --git a/test/suites/smoke-test-common-all/test-data-preservers.ts b/test/suites/smoke-test-common-all/test-data-preservers.ts index f561f91c0..c4a1f9261 100644 --- a/test/suites/smoke-test-common-all/test-data-preservers.ts +++ b/test/suites/smoke-test-common-all/test-data-preservers.ts @@ -1,57 +1,63 @@ import "@tanssi/api-augment"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; +import type { ApiPromise } from "@polkadot/api"; +import type { PalletDataPreserversRegisteredProfile } from "@polkadot/types/lookup"; describeSuite({ - id: "S16", + id: "S04", title: "Verify data preservers consistency", foundationMethods: "read_only", - testCases: ({ context, it }) => { + testCases: ({ context, it, log }) => { let paraApi: ApiPromise; + let registeredProfiles: PalletDataPreserversRegisteredProfile[]; - beforeAll(async function () { + beforeAll(async () => { paraApi = context.polkadotJs("para"); + registeredProfiles = (await paraApi.query.dataPreservers.profiles.entries()) + .filter(([, entry]) => entry.isSome) + .map(([, entry]) => entry.unwrap()); }); it({ id: "C01", title: "all profiles should have a deposit of either 0 or value fixed in the runtime", - test: async function () { - // Add more if we change ProfileDeposit value. Keep previous values for profiles - // created before the change. - const validDeposits = [0, 11330000000000]; + test: async () => { + const byteFee = 100n * 1_000_000n * 100n; // 10_000_000_000 + const baseFee = 100n * 1_000_000_000n * 100n; // 10_000_000_000_000 - const entries = await paraApi.query.dataPreservers.profiles.entries(); + const calculatedFee = (encodedLength: number) => baseFee + byteFee * BigInt(encodedLength); - for (const [, entry] of entries) { - expect(validDeposits.includes(entry.deposit)); + const failures = registeredProfiles.filter(({ deposit, profile }) => { + const fee = calculatedFee(profile.encodedLength); + return deposit.toBigInt() !== fee && deposit.toBigInt() !== 0n; + }); + + for (const { deposit, account } of failures) { + log(`Invalid deposit ${deposit.toNumber()} for account ${account.toHuman()} `); } + expect(failures.length, `${failures.length} invalid deposits registered`).toBe(0); }, }); it({ id: "C02", title: "all assigned profile have assignement witness corresponding to request and whished para id", - test: async function () { - const entries = await paraApi.query.dataPreservers.profiles.entries(); - - for (const [, entry] of entries) { - if (entry.assignment == null) { - continue; - } + test: async () => { + for (const { profile, assignment } of registeredProfiles.filter( + ({ assignment }) => assignment.isSome + )) { + const [para_id, witness] = assignment.unwrap(); - const [para_id, witness] = entry.assignment; - - if (entry.profile.paraIds.whitelist != null) { - expect(entry.profile.paraIds.whitelist.includes(para_id)); - } else if (entry.profile.paraIds.blacklist != null) { - expect(!entry.profile.paraIds.blacklist.includes(para_id)); + if (profile.paraIds.isWhitelist) { + expect(profile.paraIds.asWhitelist.has(para_id)); + } else if (profile.paraIds.isBlacklist) { + expect(!profile.paraIds.asBlacklist.has(para_id)); } - if (entry.profile.assignmentRequest == "Free") { - expect(witness).to.be.eq("Free"); - } else if (entry.profile.assignmentRequest.streamPayment != null) { - expect(witness.streamPayment).to.not.be.undefined(); + if (profile.assignmentRequest.toString() === "Free") { + expect(witness.toString()).to.be.eq("Free"); + } else if (profile.assignmentRequest.isStreamPayment) { + expect(witness.asStreamPayment).not.toBeUndefined(); } else { // Make test fail on unknown assignment modes. // This force use to update this test when we add new modes. @@ -64,20 +70,20 @@ describeSuite({ it({ id: "C03", title: "all profiles should have valid url", - test: async function () { - const entries = await paraApi.query.dataPreservers.profiles.entries(); - - for (const [, entry] of entries) { - const profile = entry.unwrap().profile; - expect(isValidEndpointUrl(profile.url.toHuman()), `Invalid URL {profile.url}`); + test: async () => { + const failures = registeredProfiles.filter( + ({ profile }) => !isValidEndpointUrl(profile.url.toHuman().toString()) + ); + for (const { profile } of failures) { + log(`Invalid URL ${profile.url.toHuman()}`); } + expect(failures.length, `${failures.length} invalid endpoint urls registered`).toBe(0); }, }); }, }); -function isValidEndpointUrl(string) { +function isValidEndpointUrl(endpoint: string) { const prefixes = ["/dns4/", "https://", "http://", "wss://", "ws://"]; - - return prefixes.some((prefix) => string.startsWith(prefix)); + return prefixes.some((prefix) => endpoint.startsWith(prefix)); } diff --git a/test/suites/smoke-test-common-all/test-proxy.ts b/test/suites/smoke-test-common-all/test-proxy.ts index c12238110..6fd2f126e 100644 --- a/test/suites/smoke-test-common-all/test-proxy.ts +++ b/test/suites/smoke-test-common-all/test-proxy.ts @@ -1,22 +1,22 @@ import "@tanssi/api-augment"; -import { ApiDecoration } from "@polkadot/api/types"; +import type { ApiDecoration } from "@polkadot/api/types"; import chalk from "chalk"; import { expect, beforeAll, describeSuite } from "@moonwall/cli"; import type { PalletProxyProxyDefinition } from "@polkadot/types/lookup"; -import { ApiPromise } from "@polkadot/api"; +import type { ApiPromise } from "@polkadot/api"; describeSuite({ - id: "S04", + id: "S05", title: "Verify account proxies created", foundationMethods: "read_only", testCases: ({ context, it, log }) => { const proxiesPerAccount: { [account: string]: PalletProxyProxyDefinition[] } = {}; const proxyAccList: string[] = []; - let atBlockNumber: number = 0; + let atBlockNumber = 0; let apiAt: ApiDecoration<"promise">; let paraApi: ApiPromise; - beforeAll(async function () { + beforeAll(async () => { paraApi = context.polkadotJs("para"); const limit = 1000; let last_key = ""; @@ -26,7 +26,7 @@ describeSuite({ // (to avoid inconsistency querying over multiple block when the test takes a long time to // query data and blocks are being produced) atBlockNumber = process.env.BLOCK_NUMBER - ? parseInt(process.env.BLOCK_NUMBER) + ? Number.parseInt(process.env.BLOCK_NUMBER) : (await paraApi.rpc.chain.getHeader()).number.toNumber(); apiAt = await paraApi.at(await paraApi.rpc.chain.getBlockHash(atBlockNumber)); @@ -37,7 +37,7 @@ describeSuite({ startKey: last_key, }); - if (query.length == 0) { + if (query.length === 0) { break; } count += query.length; @@ -52,7 +52,7 @@ describeSuite({ // log logs to make sure it keeps progressing // TEMPLATE: Adapt log line - if (count % (10 * limit) == 0) { + if (count % (10 * limit) === 0) { log(`Retrieved ${count} proxies`); } } @@ -65,7 +65,7 @@ describeSuite({ id: "C100", title: "should have no more than the maximum allowed proxies", timeout: 240000, - test: async function () { + test: async () => { const maxProxies = paraApi.consts.proxy.maxProxies.toNumber(); const failedProxies: { accountId: string; proxiesCount: number }[] = []; @@ -85,7 +85,7 @@ describeSuite({ proxiesCount.toString().padStart(4, " ") )} proxies (expected max: ${maxProxies})`; }) - .join(`\n`) + .join("\n") ); } @@ -98,7 +98,7 @@ describeSuite({ it({ id: "C200", title: "should have a maximum allowed proxies of 32", - test: async function () { + test: async () => { const runtimeName = paraApi.runtimeVersion.specName.toString(); const maxProxies = (await paraApi.consts.proxy.maxProxies).toNumber(); @@ -114,7 +114,7 @@ describeSuite({ break; } - log(`Verified maximum allowed proxies constant`); + log("Verified maximum allowed proxies constant"); }, }); }, diff --git a/test/suites/smoke-test-common-all/test-supply-variance.ts b/test/suites/smoke-test-common-all/test-supply-variance.ts index 7292c19af..42977c986 100644 --- a/test/suites/smoke-test-common-all/test-supply-variance.ts +++ b/test/suites/smoke-test-common-all/test-supply-variance.ts @@ -1,10 +1,10 @@ import { beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; +import type { ApiPromise } from "@polkadot/api"; import { fetchWithdrawnAmount, fetchDepositedAmount } from "util/block"; describeSuite({ - id: "S05", + id: "S06", title: "Sample suite that runs on Dancebox and Dancelight chains", foundationMethods: "read_only", testCases: ({ it, context }) => { @@ -17,7 +17,7 @@ describeSuite({ it({ id: "C03", title: "Supply variance is correct", - test: async function () { + test: async () => { const latestBlock = await api.rpc.chain.getBlock(); const latestBlockHash = latestBlock.block.hash; diff --git a/test/suites/smoke-test-common-parachain/test-authority-consistency-assignation.ts b/test/suites/smoke-test-common-parachain/test-authority-consistency-assignation.ts index 60fac718a..453349196 100644 --- a/test/suites/smoke-test-common-parachain/test-authority-consistency-assignation.ts +++ b/test/suites/smoke-test-common-parachain/test-authority-consistency-assignation.ts @@ -1,9 +1,9 @@ import { beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; +import type { ApiPromise } from "@polkadot/api"; describeSuite({ - id: "S06", + id: "SM01", title: "Sample suite that only runs on Dancebox chains", foundationMethods: "read_only", testCases: ({ it, context }) => { @@ -16,7 +16,7 @@ describeSuite({ it({ id: "C01", title: "Collator assignation and authority assignation should match with observed mapping in orchestrator", - test: async function () { + test: async () => { const assignmentCollatorAccount = ( await api.query.collatorAssignment.collatorContainerChain() ).toJSON(); @@ -28,10 +28,9 @@ describeSuite({ const authorityKeyMapping = ( await api.query.authorityMapping.authorityIdMapping(sessionIndex) ).toJSON(); - for (const key of assignmentCollatorKey["orchestratorChain"]) { + for (const key of assignmentCollatorKey.orchestratorChain) { const assignedAccount = authorityKeyMapping[key.toString()]; - expect(assignmentCollatorAccount["orchestratorChain"].includes(assignedAccount.toString())).to.be - .true; + expect(assignmentCollatorAccount.orchestratorChain.includes(assignedAccount.toString())).to.be.true; } }, }); @@ -39,7 +38,7 @@ describeSuite({ it({ id: "C02", title: "Collator assignation and authority assignation should match with observed mapping in containers", - test: async function () { + test: async () => { const assignmentCollatorAccount = ( await api.query.collatorAssignment.collatorContainerChain() ).toJSON(); @@ -50,11 +49,11 @@ describeSuite({ const authorityKeyMapping = ( await api.query.authorityMapping.authorityIdMapping(sessionIndex) ).toJSON(); - for (const container of Object.keys(assignmentCollatorKey["containerChains"])) { - for (const key of assignmentCollatorKey["containerChains"][container]) { + for (const container of Object.keys(assignmentCollatorKey.containerChains)) { + for (const key of assignmentCollatorKey.containerChains[container]) { const assignedAccount = authorityKeyMapping[key.toString()]; expect( - assignmentCollatorAccount["containerChains"][container].includes(assignedAccount.toString()) + assignmentCollatorAccount.containerChains[container].includes(assignedAccount.toString()) ).to.be.true; } } diff --git a/test/suites/smoke-test-common-parachain/test-block-author-logs.ts b/test/suites/smoke-test-common-parachain/test-block-author-logs.ts index c490c74e5..4f43a0361 100644 --- a/test/suites/smoke-test-common-parachain/test-block-author-logs.ts +++ b/test/suites/smoke-test-common-parachain/test-block-author-logs.ts @@ -1,9 +1,9 @@ import { beforeAll, describeSuite, expect } from "@moonwall/cli"; import { getBlockArray } from "@moonwall/util"; -import { ApiPromise } from "@polkadot/api"; -import { GenericExtrinsic } from "@polkadot/types"; -import { FrameSystemEventRecord } from "@polkadot/types/lookup"; -import { AnyTuple } from "@polkadot/types/types"; +import type { ApiPromise } from "@polkadot/api"; +import type { GenericExtrinsic } from "@polkadot/types"; +import type { FrameSystemEventRecord } from "@polkadot/types/lookup"; +import type { AnyTuple } from "@polkadot/types/types"; import { hexToNumber, stringToHex } from "@polkadot/util"; import Bottleneck from "bottleneck"; @@ -20,14 +20,14 @@ type BlockFilteredRecord = { }; describeSuite({ - id: "S07", + id: "SM02", title: `Authors in the last ${hours} should match the slot number provided`, foundationMethods: "read_only", testCases: ({ it, context, log }) => { let api: ApiPromise; let blockData: BlockFilteredRecord[]; - beforeAll(async function () { + beforeAll(async () => { api = context.polkadotJs(); const blockNumArray = await getBlockArray(api, timePeriod); log(`Collecting ${hours} hours worth of authors`); @@ -54,28 +54,28 @@ describeSuite({ it({ id: "C01", title: "Author should be correctly set", - test: async function () { + test: async () => { const failures = blockData .map(({ blockNum, logs, authorities }) => { const nimbusLog = logs.filter( - (log) => log.isPreRuntime === true && log.asPreRuntime[0].toHex() == stringToHex("nmbs") + (log) => log.isPreRuntime === true && log.asPreRuntime[0].toHex() === stringToHex("nmbs") ); // nimbus log has to exist const author = nimbusLog[0].asPreRuntime[1].toHex(); // aura log has to exist const slotLog = logs.filter( - (log) => log.isPreRuntime === true && log.asPreRuntime[0].toHex() == stringToHex("aura") + (log) => log.isPreRuntime === true && log.asPreRuntime[0].toHex() === stringToHex("aura") ); const slot = slotLog[0].asPreRuntime[1].reverse().toHex(); - const orchestratorAuthorities = authorities.toJSON()["orchestratorChain"]; + const orchestratorAuthorities = authorities.toJSON().orchestratorChain; const expectedAuthor = orchestratorAuthorities[hexToNumber(slot) % orchestratorAuthorities.length]; return { blockNum, author, expectedAuthor }; }) - .filter(({ expectedAuthor, author }) => expectedAuthor.toString() != author.toString()); + .filter(({ expectedAuthor, author }) => expectedAuthor.toString() !== author.toString()); failures.forEach(({ blockNum, author, expectedAuthor }) => { log( @@ -86,7 +86,7 @@ describeSuite({ expect( failures.length, - `Please investigate blocks ${failures.map((a) => a.blockNum).join(`, `)}; authors ` + `Please investigate blocks ${failures.map((a) => a.blockNum).join(", ")}; authors ` ).to.equal(0); }, }); diff --git a/test/suites/smoke-test-common-parachain/test-configuration-consistency.ts b/test/suites/smoke-test-common-parachain/test-configuration-consistency.ts index 3c10044a0..fb9937473 100644 --- a/test/suites/smoke-test-common-parachain/test-configuration-consistency.ts +++ b/test/suites/smoke-test-common-parachain/test-configuration-consistency.ts @@ -1,29 +1,29 @@ import { beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; +import type { ApiPromise } from "@polkadot/api"; import { hasEnoughCredits } from "util/payment"; -import { u32, Vec } from "@polkadot/types-codec"; +import type { u32, Vec } from "@polkadot/types-codec"; describeSuite({ - id: "S08", + id: "SM03", title: "Sample suite that only runs on Dancebox chains", foundationMethods: "read_only", testCases: ({ it, context }) => { let api: ApiPromise; - let blocksPerSession; + let blocksPerSession: bigint; const costPerSession = 100_000_000n; const costPerBlock = 1_000_000n; beforeAll(() => { api = context.polkadotJs(); const chain = api.consts.system.version.specName.toString(); - blocksPerSession = chain == "dancebox" ? 600n : 50n; + blocksPerSession = chain === "dancebox" ? 600n : 50n; }); it({ id: "C01", title: "Config orchestrator max collators parameters should be respected", - test: async function () { + test: async () => { const config = await api.query.configuration.activeConfig(); // get current session const sessionIndex = (await api.query.session.currentIndex()).toNumber(); @@ -31,8 +31,8 @@ describeSuite({ const authorities = await api.query.authorityAssignment.collatorContainerChain(sessionIndex); // We cannot exced max collators - expect(authorities.toJSON()["orchestratorChain"].length).to.be.lessThanOrEqual( - config["maxOrchestratorCollators"].toNumber() + expect(authorities.toJSON().orchestratorChain.length).to.be.lessThanOrEqual( + config.maxOrchestratorCollators.toNumber() ); }, }); @@ -40,7 +40,7 @@ describeSuite({ it({ id: "C02", title: "Config orchestrator min collators parameters should be respected", - test: async function () { + test: async () => { const config = await api.query.configuration.activeConfig(); // get current session const sessionIndex = (await api.query.session.currentIndex()).toNumber(); @@ -48,9 +48,9 @@ describeSuite({ const authorities = (await api.query.authorityAssignment.collatorContainerChain(sessionIndex)).toJSON(); // If we have container chain collators, is because we at least assigned min to orchestrator - if (Object.keys(authorities["containerChains"]).length != 0) { - expect(authorities["orchestratorChain"].length).to.be.greaterThanOrEqual( - config["minOrchestratorCollators"].toNumber() + if (Object.keys(authorities.containerChains).length !== 0) { + expect(authorities.orchestratorChain.length).to.be.greaterThanOrEqual( + config.minOrchestratorCollators.toNumber() ); } }, @@ -59,7 +59,7 @@ describeSuite({ it({ id: "C03", title: "Config registered paras should be filled if more than min collators in orchestrator", - test: async function () { + test: async () => { const currentBlock = (await api.rpc.chain.getBlock()).block.header.number.toNumber(); const blockToCheck = Math.trunc(currentBlock / Number(blocksPerSession)) * Number(blocksPerSession); @@ -96,7 +96,7 @@ describeSuite({ const liveContainers = await api.query.registrar.registeredParaIds(); const pendingContainers = await api.query.registrar.pendingParaIds(); - if (pendingContainers.length == 0) { + if (pendingContainers.length === 0) { containersToCompareAgainst = liveContainers; } else { const foundEntry = pendingContainers.find((entry) => entry[0].toNumber() === sessionIndex + 1); @@ -116,8 +116,8 @@ describeSuite({ let sessionRequirements: bigint; if ( - currentAuthorityAssignment["containerChains"][container.toString()] == null || - currentAuthorityAssignment["containerChains"][container.toString()].length == 0 + currentAuthorityAssignment.containerChains[container.toString()] === null || + currentAuthorityAssignment.containerChains[container.toString()].length === 0 ) { sessionRequirements = 1n; } else { @@ -140,7 +140,7 @@ describeSuite({ // If we are able to cover all paras, then all of them should have collators if credits if (maxParas >= containersToCompareAgainst.length) { expect( - pendingAuthorityAssignment["containerChains"][container.toString()].length + pendingAuthorityAssignment.containerChains[container.toString()].length ).to.be.greaterThan(0); } } else { @@ -154,7 +154,7 @@ describeSuite({ containersToCompareAgainst.length - numWithNoCredits, maxParas ); - expect(Object.keys(pendingAuthorityAssignment["containerChains"]).length).to.be.equal( + expect(Object.keys(pendingAuthorityAssignment.containerChains).length).to.be.equal( expectedNumberOfChainsAssigned ); } diff --git a/test/suites/smoke-test-common-parachain/test-inflation-rewards.ts b/test/suites/smoke-test-common-parachain/test-inflation-rewards.ts index cb0eeced1..0321ec30e 100644 --- a/test/suites/smoke-test-common-parachain/test-inflation-rewards.ts +++ b/test/suites/smoke-test-common-parachain/test-inflation-rewards.ts @@ -1,20 +1,20 @@ import { beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; +import type { ApiPromise } from "@polkadot/api"; -import { ApiDecoration } from "@polkadot/api/types"; +import type { ApiDecoration } from "@polkadot/api/types"; import { getAuthorFromDigest } from "util/author"; import { fetchIssuance, filterRewardFromOrchestratorWithFailure, fetchRewardAuthorContainers } from "util/block"; import { PARACHAIN_BOND } from "util/constants"; describeSuite({ - id: "S09", + id: "SM04", title: "Sample suite that only runs on Dancebox chains", foundationMethods: "read_only", testCases: ({ it, context }) => { let apiAt: ApiDecoration<"promise">; let api: ApiPromise; - let runtimeVersion; + let runtimeVersion: number; beforeAll(async () => { api = context.polkadotJs(); @@ -30,7 +30,7 @@ describeSuite({ it({ id: "C01", title: "Inflation for orchestrator should match with expected number of containers", - test: async function () { + test: async () => { if (runtimeVersion < 300) { return; } @@ -59,7 +59,7 @@ describeSuite({ it({ id: "C02", title: "Inflation for containers should match with expected number of containers", - test: async function () { + test: async () => { if (runtimeVersion < 300) { return; } @@ -85,7 +85,7 @@ describeSuite({ it({ id: "C03", title: "Issuance is correct", - test: async function () { + test: async () => { if (runtimeVersion < 300) { return; } @@ -117,7 +117,7 @@ describeSuite({ it({ id: "C04", title: "Parachain bond receives dust plus 30% plus non-distributed rewards", - test: async function () { + test: async () => { if (runtimeVersion < 300) { return; } diff --git a/test/suites/smoke-test-common-parachain/test-relay-storage-roots-consistency.ts b/test/suites/smoke-test-common-parachain/test-relay-storage-roots-consistency.ts index ad3895c04..1f5d55d4b 100644 --- a/test/suites/smoke-test-common-parachain/test-relay-storage-roots-consistency.ts +++ b/test/suites/smoke-test-common-parachain/test-relay-storage-roots-consistency.ts @@ -1,14 +1,14 @@ import { beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; +import type { ApiPromise } from "@polkadot/api"; describeSuite({ - id: "S10", + id: "SM05", title: "Test relay storage roots max number", foundationMethods: "read_only", testCases: ({ it, context }) => { let api: ApiPromise; - let runtimeVersion; + let runtimeVersion: number; beforeAll(() => { api = context.polkadotJs(); @@ -18,7 +18,7 @@ describeSuite({ it({ id: "C01", title: "Only MaxRelayStorageRoots should be stored", - test: async function () { + test: async () => { if (runtimeVersion < 500) { return; } @@ -39,7 +39,7 @@ describeSuite({ it({ id: "C02", title: "All numbers should have its corresponding root", - test: async function () { + test: async () => { if (runtimeVersion < 500) { return; } diff --git a/test/suites/smoke-test-dancebox/test-invulnerables-priority.ts b/test/suites/smoke-test-dancebox/test-invulnerables-priority.ts index b3f4924cb..6ca201238 100644 --- a/test/suites/smoke-test-dancebox/test-invulnerables-priority.ts +++ b/test/suites/smoke-test-dancebox/test-invulnerables-priority.ts @@ -1,13 +1,13 @@ import { beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; +import type { ApiPromise } from "@polkadot/api"; describeSuite({ - id: "S11", + id: "SMO01", title: "Sample suite that only runs on Dancebox chains", foundationMethods: "read_only", testCases: ({ it, context }) => { let api: ApiPromise; - let runtimeVersion; + let runtimeVersion: number; beforeAll(async () => { api = context.polkadotJs(); @@ -17,7 +17,7 @@ describeSuite({ it({ id: "C01", title: "Invulnerables have priority over staking candidates", - test: async function () { + test: async () => { if (runtimeVersion < 300) { return; } diff --git a/test/suites/smoke-test-dancebox/test-randomness-consistency.ts b/test/suites/smoke-test-dancebox/test-randomness-consistency.ts index 6b41e48d8..dbd99cc5f 100644 --- a/test/suites/smoke-test-dancebox/test-randomness-consistency.ts +++ b/test/suites/smoke-test-dancebox/test-randomness-consistency.ts @@ -1,14 +1,14 @@ import { beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; +import type { ApiPromise } from "@polkadot/api"; import { fetchRandomnessEvent } from "util/block"; describeSuite({ - id: "S12", + id: "SMO02", title: "Sample suite that only runs on Dancebox chains", foundationMethods: "read_only", testCases: ({ it, context }) => { let api: ApiPromise; - let runtimeVersion; + let runtimeVersion: number; beforeAll(() => { api = context.polkadotJs(); @@ -18,7 +18,7 @@ describeSuite({ it({ id: "C01", title: "Randomness storage is empty because on-finalize cleans it, unless on session change boundaries", - test: async function () { + test: async () => { if (runtimeVersion < 300) { return; } @@ -27,7 +27,7 @@ describeSuite({ const randomness = await api.query.collatorAssignment.randomness(); // if the next block is a session change, then this storage will be populated - if (currentBlock + (1 % sessionLength) == 0) { + if (currentBlock + (1 % sessionLength) === 0) { expect(randomness.isEmpty).to.not.be.true; } else { expect(randomness.isEmpty).to.be.true; @@ -38,7 +38,7 @@ describeSuite({ it({ id: "C02", title: "Rotation happened at previous session boundary", - test: async function () { + test: async () => { if (runtimeVersion < 300) { return; } @@ -70,8 +70,8 @@ describeSuite({ expect(randomnessEvent.targetSession.toNumber()).to.be.equal(session.toNumber() + 1); const configuration = await apiAtIssuanceNewSession.query.configuration.activeConfig(); if ( - configuration.fullRotationPeriod == 0 || - randomnessEvent.targetSession.toNumber() % configuration.fullRotationPeriod != 0 + configuration.fullRotationPeriod === 0 || + randomnessEvent.targetSession.toNumber() % configuration.fullRotationPeriod !== 0 ) { expect(randomnessEvent.fullRotation.toHuman()).to.be.false; } else { diff --git a/test/suites/smoke-test-dancebox/test-staking-consistency.ts b/test/suites/smoke-test-dancebox/test-staking-consistency.ts index 810fef5ce..d0a650111 100644 --- a/test/suites/smoke-test-dancebox/test-staking-consistency.ts +++ b/test/suites/smoke-test-dancebox/test-staking-consistency.ts @@ -1,13 +1,13 @@ import { beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; +import type { ApiPromise } from "@polkadot/api"; describeSuite({ - id: "S13", + id: "SMO03", title: "Sample suite that only runs on Dancebox chains", foundationMethods: "read_only", testCases: ({ it, context }) => { let api: ApiPromise; - let runtimeVersion; + let runtimeVersion: number; beforeAll(async () => { api = context.polkadotJs(); @@ -18,7 +18,7 @@ describeSuite({ id: "C01", title: "All eligible candidates have enough self delegation", timeout: 120000, - test: async function () { + test: async () => { if (runtimeVersion < 200) { return; } @@ -72,7 +72,7 @@ describeSuite({ // auto stake is calculated using this method as the AutoCompoundingSharesHeldStake is not updated with rewards received // by the candidate, rather the value of each share of candidate increases. const auto = - autoCompoundingSharesSupply == 0n + autoCompoundingSharesSupply === 0n ? 0n : (autoCompoundingSharesOfCandidate * autoCompoundingSharesTotalStaked) / autoCompoundingSharesSupply; diff --git a/test/suites/smoke-test-dancebox/test-staking-session-keys.ts b/test/suites/smoke-test-dancebox/test-staking-session-keys.ts index 92a3892f7..5dd26e499 100644 --- a/test/suites/smoke-test-dancebox/test-staking-session-keys.ts +++ b/test/suites/smoke-test-dancebox/test-staking-session-keys.ts @@ -1,13 +1,13 @@ import { beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; +import type { ApiPromise } from "@polkadot/api"; describeSuite({ - id: "S14", + id: "SMO04", title: "Check staking eligible candidates have session keys", foundationMethods: "read_only", testCases: ({ it, context }) => { let api: ApiPromise; - let runtimeVersion; + let runtimeVersion: number; beforeAll(async () => { api = context.polkadotJs(); @@ -17,7 +17,7 @@ describeSuite({ it({ id: "C01", title: "All eligible candidates have session keys registered", - test: async function () { + test: async () => { if (runtimeVersion < 200) { return; } diff --git a/test/suites/smoke-test-dancebox/test-treasury.ts b/test/suites/smoke-test-dancebox/test-treasury.ts index cbfa2247d..028341693 100644 --- a/test/suites/smoke-test-dancebox/test-treasury.ts +++ b/test/suites/smoke-test-dancebox/test-treasury.ts @@ -1,18 +1,18 @@ import "@tanssi/api-augment"; -import { ApiDecoration } from "@polkadot/api/types"; +import type { ApiDecoration } from "@polkadot/api/types"; import { describeSuite, expect, beforeAll } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; +import type { ApiPromise } from "@polkadot/api"; describeSuite({ - id: "S15", + id: "SMO05", title: "Verify treasury consistency", foundationMethods: "read_only", testCases: ({ context, it, log }) => { - let atBlockNumber: number = 0; + let atBlockNumber = 0; let apiAt: ApiDecoration<"promise">; let paraApi: ApiPromise; - beforeAll(async function () { + beforeAll(async () => { paraApi = context.polkadotJs("para"); atBlockNumber = (await paraApi.rpc.chain.getHeader()).number.toNumber(); apiAt = await paraApi.at(await paraApi.rpc.chain.getBlockHash(atBlockNumber)); @@ -21,7 +21,7 @@ describeSuite({ it({ id: "C100", title: "should have value > 0", - test: async function () { + test: async () => { // Load data const treasuryPalletId = paraApi.consts.treasury.palletId; const treasuryAccount = await apiAt.query.system.account( @@ -34,7 +34,7 @@ describeSuite({ expect(treasuryAccount.data.free.toBigInt() > 0n).to.be.true; expect(treasuryAccount.data.reserved.toBigInt()).to.be.equal(0n); - log(`Verified treasury free/reserved balance`); + log("Verified treasury free/reserved balance"); }, }); }, diff --git a/test/suites/smoke-test-dancelight/test-authority-consistency-assignation.ts b/test/suites/smoke-test-dancelight/test-authority-consistency-assignation.ts index 0b08cccf8..e2a6ed062 100644 --- a/test/suites/smoke-test-dancelight/test-authority-consistency-assignation.ts +++ b/test/suites/smoke-test-dancelight/test-authority-consistency-assignation.ts @@ -1,9 +1,9 @@ import { beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; +import type { ApiPromise } from "@polkadot/api"; describeSuite({ - id: "S16", + id: "SMOK01", title: "Sample suite that only runs on Dancelight chains", foundationMethods: "read_only", testCases: ({ it, context }) => { @@ -16,7 +16,7 @@ describeSuite({ it({ id: "C01", title: "Collator assignation and authority assignation should match with observed mapping in containers", - test: async function () { + test: async () => { const assignmentCollatorAccount = ( await api.query.tanssiCollatorAssignment.collatorContainerChain() ).toJSON(); @@ -27,11 +27,11 @@ describeSuite({ const authorityKeyMapping = ( await api.query.tanssiAuthorityMapping.authorityIdMapping(sessionIndex) ).toJSON(); - for (const container of Object.keys(assignmentCollatorKey["containerChains"])) { - for (const key of assignmentCollatorKey["containerChains"][container]) { + for (const container of Object.keys(assignmentCollatorKey.containerChains)) { + for (const key of assignmentCollatorKey.containerChains[container]) { const assignedAccount = authorityKeyMapping[key.toString()]; expect( - assignmentCollatorAccount["containerChains"][container].includes(assignedAccount.toString()) + assignmentCollatorAccount.containerChains[container].includes(assignedAccount.toString()) ).to.be.true; } } diff --git a/test/suites/smoke-test-dancelight/test-babe.ts b/test/suites/smoke-test-dancelight/test-babe.ts index 9ed9e965a..bc372f6e2 100644 --- a/test/suites/smoke-test-dancelight/test-babe.ts +++ b/test/suites/smoke-test-dancelight/test-babe.ts @@ -1,9 +1,9 @@ import { beforeAll, describeSuite, expect } from "@moonwall/cli"; import { getBlockArray } from "@moonwall/util"; -import { ApiPromise } from "@polkadot/api"; -import { GenericExtrinsic } from "@polkadot/types"; -import { FrameSystemEventRecord } from "@polkadot/types/lookup"; -import { AnyTuple } from "@polkadot/types/types"; +import type { ApiPromise } from "@polkadot/api"; +import type { GenericExtrinsic, U32 } from "@polkadot/types"; +import type { FrameSystemEventRecord } from "@polkadot/types/lookup"; +import type { AnyTuple } from "@polkadot/types/types"; import { hexToU8a, stringToHex } from "@polkadot/util"; import { sr25519Verify } from "@polkadot/wasm-crypto"; import Bottleneck from "bottleneck"; @@ -25,7 +25,7 @@ type BlockFilteredRecord = { }; describeSuite({ - id: "S20", + id: "SMOK02", title: "Sample suite that only runs on Dancelight chains", foundationMethods: "read_only", testCases: ({ it, context, log }) => { @@ -81,24 +81,23 @@ describeSuite({ it({ id: "C01", title: "BABE keys are set and validators from logs match validators from pallet", - test: async function () { + test: async () => { // Check the previous epoch digest. // The [0] index indicates the block number in which the previous session started. // The [1] index indicates the block number in which the current session started. - const blockToCheck = (await api.query.babe.epochStart()).toJSON()[0]; - + const blockToCheck = ((await api.query.babe.epochStart()) as unknown as [U32, U32])[0]; const apiAtSessionChange = await api.at(await api.rpc.chain.getBlockHash(blockToCheck)); const digestsInSessionChange = (await apiAtSessionChange.query.system.digest()).logs; const filteredDigests = digestsInSessionChange.filter( - (log) => log.isConsensus === true && log.asConsensus[0].toHex() == stringToHex("BABE") + (log) => log.isConsensus === true && log.asConsensus[0].toHex() === stringToHex("BABE") ); expect(filteredDigests.length).to.eq(1); // 0x01 corresponds to ConsensusLog::NextEpochData enum variant. expect(filteredDigests[0].asConsensus[1].toHex().startsWith("0x01")).to.be.true; - // Assert that authorities from log == authorities from pallet + // Assert that authorities from log === authorities from pallet const babeAuthoritiesFromPallet = await api.query.babe.authorities(); const babeConsensusLog = api.registry.createType( "(u8, Vec<(SpConsensusBabeAppPublic, u64)>, [u8; 32])", @@ -128,11 +127,11 @@ describeSuite({ it({ id: "C02", title: "BABE author signature valid", - test: async function () { + test: async () => { const failures = blockData .map(({ blockNum, preHash, logs, authorities, accountsWithBabeKeys }) => { const babeLogs = logs.filter( - (log) => log.isPreRuntime === true && log.asPreRuntime[0].toHex() == stringToHex("BABE") + (log) => log.isPreRuntime === true && log.asPreRuntime[0].toHex() === stringToHex("BABE") ); expect(babeLogs.length).to.eq(1); @@ -151,7 +150,7 @@ describeSuite({ // Get block author signature from seal log const sealLogs = logs.filter( - (log) => log.isSeal === true && log.asSeal[0].toHex() == stringToHex("BABE") + (log) => log.isSeal === true && log.asSeal[0].toHex() === stringToHex("BABE") ); expect(sealLogs.length).to.eq(1); @@ -163,7 +162,7 @@ describeSuite({ // Verify seal signature const message = hexToU8a(preHash); const signature = hexToU8a(sealLog.toHex()); - const authorBabe = accountsWithBabeKeys.find((acc) => acc[0] == expectedAuthor); + const authorBabe = accountsWithBabeKeys.find((acc) => acc[0] === expectedAuthor); expect(authorBabe, `Missing babe key for block author: ${expectedAuthor}`).toBeTruthy(); const pubKey = hexToU8a(authorBabe[1]); @@ -171,7 +170,7 @@ describeSuite({ return { blockNum, expectedAuthor, authorValid }; }) - .filter(({ authorValid }) => authorValid == false); + .filter(({ authorValid }) => authorValid === false); failures.forEach(({ blockNum, expectedAuthor }) => { log( @@ -181,7 +180,7 @@ describeSuite({ expect( failures.length, - `Please investigate blocks ${failures.map((a) => a.blockNum).join(`, `)}; authors ` + `Please investigate blocks ${failures.map((a) => a.blockNum).join(", ")}; authors ` ).to.equal(0); }, }); diff --git a/test/suites/smoke-test-dancelight/test-beefy-mmr-digests.ts b/test/suites/smoke-test-dancelight/test-beefy-mmr-digests.ts index 048ae0044..bbeaba6ca 100644 --- a/test/suites/smoke-test-dancelight/test-beefy-mmr-digests.ts +++ b/test/suites/smoke-test-dancelight/test-beefy-mmr-digests.ts @@ -1,10 +1,10 @@ import { beforeAll, describeSuite, expect } from "@moonwall/cli"; import { stringToHex } from "@polkadot/util"; -import { ApiPromise } from "@polkadot/api"; +import type { ApiPromise } from "@polkadot/api"; describeSuite({ - id: "S19", + id: "SMOK03", title: "Sample suite that only runs on Dancelight chains", foundationMethods: "read_only", testCases: ({ it, context }) => { @@ -17,7 +17,7 @@ describeSuite({ it({ id: "C01", title: "Session change block should update BEEFY and MMR root digests properly", - test: async function () { + test: async () => { const blockToCheck = (await api.query.babe.epochStart()).toJSON()[1]; const apiAtBeforeSessionChange = await api.at(await api.rpc.chain.getBlockHash(blockToCheck - 5)); @@ -27,7 +27,7 @@ describeSuite({ const digestsInSessionChange = (await apiAtSessionChange.query.system.digest()).logs; const filteredDigests = digestsInSessionChange.filter( - (log) => log.isConsensus === true && log.asConsensus[0].toHex() == stringToHex("BEEF") + (log) => log.isConsensus === true && log.asConsensus[0].toHex() === stringToHex("BEEF") ); // As session changed, it should contain two BEEFY digests: AuthoritiesChange and MmrRoot. @@ -54,7 +54,7 @@ describeSuite({ const apiAtAfterSessionChange = await api.at(await api.rpc.chain.getBlockHash(blockToCheck + 1)); const digestsAfterSessionChange = (await apiAtAfterSessionChange.query.system.digest()).logs; const filteredDigestsAfterSessionChange = digestsAfterSessionChange.filter( - (log) => log.isConsensus === true && log.asConsensus[0].toHex() == stringToHex("BEEF") + (log) => log.isConsensus === true && log.asConsensus[0].toHex() === stringToHex("BEEF") ); // Now we should only have the MmrRoot BEEFY digest (as session didn't change yet). diff --git a/test/suites/smoke-test-dancelight/test-configuration-consistency.ts b/test/suites/smoke-test-dancelight/test-configuration-consistency.ts index 1f22baff2..c76f09a02 100644 --- a/test/suites/smoke-test-dancelight/test-configuration-consistency.ts +++ b/test/suites/smoke-test-dancelight/test-configuration-consistency.ts @@ -1,11 +1,11 @@ import { beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; +import type { ApiPromise } from "@polkadot/api"; import { hasEnoughCredits } from "util/payment"; -import { u32, Vec } from "@polkadot/types-codec"; +import type { u32, Vec } from "@polkadot/types-codec"; describeSuite({ - id: "S17", + id: "SMOK04", title: "Sample suite that only runs on Dancelight chains", foundationMethods: "read_only", testCases: ({ it, context }) => { @@ -21,7 +21,7 @@ describeSuite({ it({ id: "C01", title: "Config for registered paras should be consistent", - test: async function () { + test: async () => { const sessionIndex = (await api.query.session.currentIndex()).toNumber(); const blockToCheck = (await api.query.babe.epochStart()).toJSON()[1]; @@ -56,7 +56,7 @@ describeSuite({ const liveContainers = await api.query.containerRegistrar.registeredParaIds(); const pendingContainers = await api.query.containerRegistrar.pendingParaIds(); - if (pendingContainers.length == 0) { + if (pendingContainers.length === 0) { containersToCompareAgainst = liveContainers; } else { const foundEntry = pendingContainers.find((entry) => entry[0].toNumber() === sessionIndex + 1); @@ -76,8 +76,8 @@ describeSuite({ let sessionRequirements: bigint; if ( - currentAuthorityAssignment["containerChains"][container.toString()] == null || - currentAuthorityAssignment["containerChains"][container.toString()].length == 0 + currentAuthorityAssignment.containerChains[container.toString()] === null || + currentAuthorityAssignment.containerChains[container.toString()].length === 0 ) { sessionRequirements = 1n; } else { @@ -100,7 +100,7 @@ describeSuite({ // If we are able to cover all paras, then all of them should have collators if credits if (maxParas >= containersToCompareAgainst.length) { expect( - pendingAuthorityAssignment["containerChains"][container.toString()].length + pendingAuthorityAssignment.containerChains[container.toString()].length ).to.be.greaterThan(0); } } else { @@ -114,7 +114,7 @@ describeSuite({ containersToCompareAgainst.length - numWithNoCredits, maxParas ); - expect(Object.keys(pendingAuthorityAssignment["containerChains"]).length).to.be.equal( + expect(Object.keys(pendingAuthorityAssignment.containerChains).length).to.be.equal( expectedNumberOfChainsAssigned ); } diff --git a/test/suites/smoke-test-dancelight/test-external-validators-rewards.ts b/test/suites/smoke-test-dancelight/test-external-validators-rewards.ts index 9c010f2f0..8e79f6de5 100644 --- a/test/suites/smoke-test-dancelight/test-external-validators-rewards.ts +++ b/test/suites/smoke-test-dancelight/test-external-validators-rewards.ts @@ -1,8 +1,8 @@ import { beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; +import type { ApiPromise } from "@polkadot/api"; describeSuite({ - id: "S22", + id: "SMOK05", title: "Smoke tests for external validators rewards pallet", foundationMethods: "read_only", testCases: ({ it, context }) => { @@ -15,7 +15,7 @@ describeSuite({ it({ id: "C01", title: "Total points matches sum of individual points", - test: async function () { + test: async () => { const entries = await api.query.externalValidatorsRewards.rewardPointsForEra.entries(); for (const [key, entry] of entries) { diff --git a/test/suites/smoke-test-dancelight/test-inflation-rewards.ts b/test/suites/smoke-test-dancelight/test-inflation-rewards.ts index 4cfff694e..cea37b0f4 100644 --- a/test/suites/smoke-test-dancelight/test-inflation-rewards.ts +++ b/test/suites/smoke-test-dancelight/test-inflation-rewards.ts @@ -1,12 +1,12 @@ import { beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; +import type { ApiPromise } from "@polkadot/api"; -import { ApiDecoration } from "@polkadot/api/types"; +import type { ApiDecoration } from "@polkadot/api/types"; import { fetchIssuance, fetchRewardAuthorContainers } from "util/block"; import { DANCELIGHT_BOND } from "util/constants"; describeSuite({ - id: "S18", + id: "SMOK06", title: "Sample suite that only runs on Dancelight chains", foundationMethods: "read_only", testCases: ({ it, context }) => { @@ -25,7 +25,7 @@ describeSuite({ it({ id: "C01", title: "Inflation for containers should match with expected number of containers", - test: async function () { + test: async () => { // 70% is distributed across all rewards const events = await apiAt.query.system.events(); const issuance = await fetchIssuance(events).amount.toBigInt(); @@ -48,7 +48,7 @@ describeSuite({ it({ id: "C02", title: "Issuance is correct", - test: async function () { + test: async () => { const latestBlock = await api.rpc.chain.getBlock(); const latestBlockHash = latestBlock.block.hash; @@ -76,7 +76,7 @@ describeSuite({ it({ id: "C03", title: "Dancelight bond receives dust plus 30% plus non-distributed rewards", - test: async function () { + test: async () => { const latestBlock = await api.rpc.chain.getBlock(); const latestBlockHash = latestBlock.block.hash; diff --git a/test/suites/smoke-test-dancelight/test-para-inclusion.ts b/test/suites/smoke-test-dancelight/test-para-inclusion.ts index fd9349168..264e68365 100644 --- a/test/suites/smoke-test-dancelight/test-para-inclusion.ts +++ b/test/suites/smoke-test-dancelight/test-para-inclusion.ts @@ -1,9 +1,9 @@ import { beforeAll, describeSuite, expect } from "@moonwall/cli"; import { getBlockArray } from "@moonwall/util"; -import { ApiPromise } from "@polkadot/api"; -import { GenericExtrinsic } from "@polkadot/types"; -import { FrameSystemEventRecord } from "@polkadot/types/lookup"; -import { AnyTuple } from "@polkadot/types/types"; +import type { ApiPromise } from "@polkadot/api"; +import type { GenericExtrinsic } from "@polkadot/types"; +import type { FrameSystemEventRecord } from "@polkadot/types/lookup"; +import type { AnyTuple } from "@polkadot/types/types"; import Bottleneck from "bottleneck"; const timePeriod = process.env.TIME_PERIOD ? Number(process.env.TIME_PERIOD) : 1 * 60 * 60 * 1000; @@ -20,7 +20,7 @@ type BlockFilteredRecord = { }; describeSuite({ - id: "S21", + id: "SMOK07", title: "Sample suite that only runs on Dancelight chains", foundationMethods: "read_only", testCases: ({ it, context, log }) => { @@ -48,7 +48,7 @@ describeSuite({ const { method: { method, section }, } = ex; - return section == "paraInherent" && method == "enter"; + return section === "paraInherent" && method === "enter"; }); const { @@ -95,11 +95,11 @@ describeSuite({ it({ id: "C01", title: "Included paras valid", - test: async function () { + test: async () => { blockData.map(({ blockNum, config, paraInherent }) => { // Should have exactly 1 paraInherent - expect(paraInherent.length, `Block #{blockNum}: missing paraInherent in block`).toBeGreaterThan(0); - expect(paraInherent.length, `Block #{blockNum}: duplicate paraInherent in block`).toBeLessThan(2); + expect(paraInherent.length, "Block #{blockNum}: missing paraInherent in block").toBeGreaterThan(0); + expect(paraInherent.length, "Block #{blockNum}: duplicate paraInherent in block").toBeLessThan(2); const { method: { args }, diff --git a/test/suites/smoke-test-dancelight/test-validators-match-external-validators.ts b/test/suites/smoke-test-dancelight/test-validators-match-external-validators.ts index e6fd3a85b..991cc60c9 100644 --- a/test/suites/smoke-test-dancelight/test-validators-match-external-validators.ts +++ b/test/suites/smoke-test-dancelight/test-validators-match-external-validators.ts @@ -1,10 +1,10 @@ import { beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; -import { U32, Vec } from "@polkadot/types-codec"; -import { AccountId32 } from "@polkadot/types/interfaces"; +import type { ApiPromise } from "@polkadot/api"; +import type { U32, Vec } from "@polkadot/types-codec"; +import type { AccountId32 } from "@polkadot/types/interfaces"; describeSuite({ - id: "S23", + id: "SMOK08", title: "Smoke tests for validators matching external validators", foundationMethods: "read_only", testCases: ({ it, context }) => { @@ -18,13 +18,13 @@ describeSuite({ id: "C01", title: "Validators should match external validators", - test: async function () { + test: async () => { // Find the last block in which the era changed const currentEra = await api.query.externalValidators.currentEra(); let blockToCheck = (await api.query.babe.epochStart()).toJSON()[1]; let apiBeforeLatestNewSession = await api.at(await api.rpc.chain.getBlockHash(blockToCheck - 1)); - while (currentEra == (await apiBeforeLatestNewSession.query.externalValidators.currentEra())) { + while (currentEra === (await apiBeforeLatestNewSession.query.externalValidators.currentEra())) { blockToCheck = (await apiBeforeLatestNewSession.query.babe.epochStart()).toJSON()[1]; apiBeforeLatestNewSession = await api.at(await api.rpc.chain.getBlockHash(blockToCheck - 1)); } diff --git a/test/suites/zombie_dancebox_upgrade/test_zombie_dancebox_upgrade.ts b/test/suites/zombie_dancebox_upgrade/test_zombie_dancebox_upgrade.ts index 0aad44606..dc21f25d7 100644 --- a/test/suites/zombie_dancebox_upgrade/test_zombie_dancebox_upgrade.ts +++ b/test/suites/zombie_dancebox_upgrade/test_zombie_dancebox_upgrade.ts @@ -1,13 +1,14 @@ +import "@tanssi/api-augment"; import { MoonwallContext, beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { KeyringPair, generateKeyringPair } from "@moonwall/util"; -import { ApiPromise, Keyring } from "@polkadot/api"; +import { generateKeyringPair, type KeyringPair } from "@moonwall/util"; +import { type ApiPromise, Keyring } from "@polkadot/api"; import fs from "node:fs"; describeSuite({ - id: "R01", + id: "Z01", title: "Zombie Dancebox Upgrade Test", foundationMethods: "zombie", - testCases: function ({ it, context, log }) { + testCases: ({ it, context, log }) => { let paraApi: ApiPromise; let relayApi: ApiPromise; let alice: KeyringPair; @@ -31,7 +32,7 @@ describeSuite({ it({ id: "T01", title: "Blocks are being produced on parachain", - test: async function () { + test: async () => { const blockNum = (await paraApi.rpc.chain.getBlock()).block.header.number.toNumber(); expect(blockNum).to.be.greaterThan(0); }, @@ -41,7 +42,7 @@ describeSuite({ id: "T02", title: "Chain can be upgraded", timeout: 600000, - test: async function () { + test: async ({ skip }) => { const blockNumberBefore = (await paraApi.rpc.chain.getBlock()).block.header.number.toNumber(); const currentCode = await paraApi.rpc.state.getStorage(":code"); const codeString = currentCode.toString(); @@ -52,13 +53,12 @@ describeSuite({ if (rtHex === codeString) { log("Runtime already upgraded, skipping test"); - return; - } else { - log("Runtime not upgraded, proceeding with test"); - log("Current runtime spec version:", rtBefore); - log("Current runtime bytes: " + rtHex.slice(0, 10) + "..." + rtHex.slice(-10)); - log("New runtime bytes: " + codeString.slice(0, 10) + "..." + codeString.slice(-10)); + skip(); } + log("Runtime not upgraded, proceeding with test"); + log("Current runtime spec version:", rtBefore); + log(`Current runtime hash: ${rtHex.slice(0, 10)}...${rtHex.slice(-10)}`); + log(`New runtime hash: ${codeString.slice(0, 10)}...${codeString.slice(-10)}`); await context.upgradeRuntime({ from: alice, logger: log }); await context.waitBlock(2); @@ -77,7 +77,7 @@ describeSuite({ id: "T03", title: "Can send balance transfers", timeout: 600000, - test: async function () { + test: async () => { const randomAccount = generateKeyringPair("sr25519"); let tries = 0; diff --git a/test/suites/zombie_dancelight_upgrade/test_zombie_dancelight_upgrade.ts b/test/suites/zombie_dancelight_upgrade/test_zombie_dancelight_upgrade.ts index f1604d314..5fe81be27 100644 --- a/test/suites/zombie_dancelight_upgrade/test_zombie_dancelight_upgrade.ts +++ b/test/suites/zombie_dancelight_upgrade/test_zombie_dancelight_upgrade.ts @@ -1,13 +1,14 @@ +import "@tanssi/api-augment"; import { MoonwallContext, beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { generateKeyringPair, KeyringPair } from "@moonwall/util"; -import { ApiPromise, Keyring } from "@polkadot/api"; +import { generateKeyringPair, type KeyringPair } from "@moonwall/util"; +import { type ApiPromise, Keyring } from "@polkadot/api"; import fs from "node:fs"; describeSuite({ - id: "R01", + id: "ZO01", title: "Zombie Dancelight Upgrade Test", foundationMethods: "zombie", - testCases: function ({ it, context, log }) { + testCases: ({ it, context, log }) => { let relayApi: ApiPromise; let alice: KeyringPair; @@ -26,7 +27,7 @@ describeSuite({ it({ id: "T01", title: "Blocks are being produced on parachain", - test: async function () { + test: async () => { const blockNum = (await relayApi.rpc.chain.getBlock()).block.header.number.toNumber(); expect(blockNum).to.be.greaterThan(0); }, @@ -36,7 +37,7 @@ describeSuite({ id: "T02", title: "Chain can be upgraded", timeout: 600000, - test: async function () { + test: async ({ skip }) => { const blockNumberBefore = (await relayApi.rpc.chain.getBlock()).block.header.number.toNumber(); const currentCode = await relayApi.rpc.state.getStorage(":code"); const codeString = currentCode.toString(); @@ -47,13 +48,12 @@ describeSuite({ if (rtHex === codeString) { log("Runtime already upgraded, skipping test"); - return; - } else { - log("Runtime not upgraded, proceeding with test"); - log("Current runtime spec version:", rtBefore); - log("Current runtime bytes: " + rtHex.slice(0, 10) + "..." + rtHex.slice(-10)); - log("New runtime bytes: " + codeString.slice(0, 10) + "..." + codeString.slice(-10)); + skip(); } + log("Runtime not upgraded, proceeding with test"); + log("Current runtime spec version:", rtBefore); + log(`Current runtime hash: ${rtHex.slice(0, 10)}...${rtHex.slice(-10)}`); + log(`New runtime hash: ${codeString.slice(0, 10)}...${codeString.slice(-10)}`); await context.upgradeRuntime({ from: alice, logger: log }); await context.waitBlock(2); @@ -72,7 +72,7 @@ describeSuite({ id: "T03", title: "Can send balance transfers", timeout: 600000, - test: async function () { + test: async () => { const randomAccount = generateKeyringPair("sr25519"); let tries = 0; diff --git a/test/suites/zombie_data_preservers/test_zombie_data_preservers.ts b/test/suites/zombie_data_preservers/test_zombie_data_preservers.ts index 4e9b308a5..2a5685604 100644 --- a/test/suites/zombie_data_preservers/test_zombie_data_preservers.ts +++ b/test/suites/zombie_data_preservers/test_zombie_data_preservers.ts @@ -2,17 +2,17 @@ import { beforeAll, describeSuite, expect } from "@moonwall/cli"; import { ApiPromise, Keyring, WsProvider } from "@polkadot/api"; import { signAndSendAndInclude } from "../../util/block"; import { getHeaderFromRelay } from "../../util/relayInterface"; -import fs from "fs/promises"; +import fs from "node:fs/promises"; import { ethers, parseUnits, WebSocketProvider } from "ethers"; -import { BALTATHAR_PRIVATE_KEY, CHARLETH_ADDRESS, KeyringPair } from "@moonwall/util"; +import { BALTATHAR_PRIVATE_KEY, CHARLETH_ADDRESS, type KeyringPair } from "@moonwall/util"; import { u8aToHex } from "@polkadot/util"; import { decodeAddress } from "@polkadot/util-crypto"; describeSuite({ - id: "DP01", + id: "ZOM01", title: "Data Preservers Test", foundationMethods: "zombie", - testCases: function ({ it, context }) { + testCases: ({ it, context }) => { let paraApi: ApiPromise; let relayApi: ApiPromise; let container2000Api: ApiPromise; @@ -26,10 +26,10 @@ describeSuite({ let alice: KeyringPair; let bob: KeyringPair; - let profile1; - let profile2; + let profile1: number; + let profile2: number; - let balanceBeforeAssignment; + let balanceBeforeAssignment: bigint; beforeAll(async () => { paraApi = context.polkadotJs("Tanssi"); @@ -68,7 +68,7 @@ describeSuite({ it({ id: "T01", title: "Blocks are being produced on parachain", - test: async function () { + test: async () => { const blockNum = (await paraApi.rpc.chain.getBlock()).block.header.number.toNumber(); expect(blockNum).to.be.greaterThan(0); }, @@ -77,8 +77,8 @@ describeSuite({ it({ id: "T02", title: "Data preservers 2000 watcher properly starts", - test: async function () { - const logFilePath = getTmpZombiePath() + "/DataPreserver-2000.log"; + test: async () => { + const logFilePath = `${getTmpZombiePath()}/DataPreserver-2000.log`; await waitForLogs(logFilePath, 300, ["Starting data preserver assignment watcher"]); }, }); @@ -86,8 +86,8 @@ describeSuite({ it({ id: "T03", title: "Change assignment 2000", - test: async function () { - const logFilePath = getTmpZombiePath() + "/DataPreserver-2000.log"; + test: async () => { + const logFilePath = `${getTmpZombiePath()}/DataPreserver-2000.log`; const profile = { url: "exemple", @@ -125,7 +125,7 @@ describeSuite({ it({ id: "T04", title: "RPC endpoint 2000 is properly started", - test: async function () { + test: async () => { const wsProvider = new WsProvider("ws://127.0.0.1:9950"); dataProvider2000Api = await ApiPromise.create({ provider: wsProvider }); @@ -139,8 +139,8 @@ describeSuite({ it({ id: "T05", title: "Data preservers 2001 watcher properly starts", - test: async function () { - const logFilePath = getTmpZombiePath() + "/DataPreserver-2001.log"; + test: async () => { + const logFilePath = `${getTmpZombiePath()}/DataPreserver-2001.log`; await waitForLogs(logFilePath, 300, ["Starting data preserver assignment watcher"]); }, }); @@ -148,8 +148,8 @@ describeSuite({ it({ id: "T06", title: "Change assignment 2001", - test: async function () { - const logFilePath = getTmpZombiePath() + "/DataPreserver-2001.log"; + test: async () => { + const logFilePath = `${getTmpZombiePath()}/DataPreserver-2001.log`; const profile = { url: "exemple", @@ -187,7 +187,7 @@ describeSuite({ it({ id: "T07", title: "RPC endpoint 2001 is properly started", - test: async function () { + test: async () => { const wsProvider = new WsProvider("ws://127.0.0.1:9952"); dataProvider2001Api = await ApiPromise.create({ provider: wsProvider }); @@ -201,7 +201,7 @@ describeSuite({ it({ id: "T08", title: "RPC endpoint 2001 is Ethereum compatible", - test: async function () { + test: async () => { const url = "ws://127.0.0.1:9952"; const customHttpProvider = new WebSocketProvider(url); console.log((await customHttpProvider.getNetwork()).chainId); @@ -220,7 +220,7 @@ describeSuite({ it({ id: "T09", title: "Stop assignement 2001", - test: async function () { + test: async () => { { const tx = paraApi.tx.dataPreservers.stopAssignment(profile2, 2001); await signAndSendAndInclude(tx, bob); @@ -234,7 +234,7 @@ describeSuite({ expect(onChainProfileAccount).to.be.eq(bobAccount); expect(onChainProfile.assignment.toHuman()).to.be.eq(null); - const logFilePath = getTmpZombiePath() + "/DataPreserver-2001.log"; + const logFilePath = `${getTmpZombiePath()}/DataPreserver-2001.log`; await waitForLogs(logFilePath, 300, ["Active(Id(2001)) => NotAssigned"]); }, }); @@ -242,7 +242,7 @@ describeSuite({ it({ id: "T10", title: "Update profile to Stream Payment", - test: async function () { + test: async () => { const newProfile = { url: "exemple", paraIds: "AnyParaId", @@ -287,7 +287,7 @@ describeSuite({ it({ id: "T11", title: "Start new assignment for chain 2000 with stream payment", - test: async function () { + test: async () => { { // to non-force assign we need to have a para manager, which is not the case // with paras registered in genesis. we thus set the para manager manually here @@ -324,7 +324,7 @@ describeSuite({ }) ); - const logFilePath = getTmpZombiePath() + "/DataPreserver-2001.log"; + const logFilePath = `${getTmpZombiePath()}/DataPreserver-2001.log`; await waitForLogs(logFilePath, 300, ["NotAssigned => Active(Id(2000))"]); const wsProvider = new WsProvider("ws://127.0.0.1:9952"); @@ -340,7 +340,7 @@ describeSuite({ it({ id: "T11b", title: "Start new assignment for chain 2000 with stream payment - wait 10 blocks", - test: async function () { + test: async () => { await context.waitBlock(10, "Tanssi"); }, }); @@ -348,8 +348,8 @@ describeSuite({ it({ id: "T12", title: "Data preserver services halt after stream payment is stalled", - test: async function () { - const logFilePath = getTmpZombiePath() + "/DataPreserver-2001.log"; + test: async () => { + const logFilePath = `${getTmpZombiePath()}/DataPreserver-2001.log`; await waitForLogs(logFilePath, 300, ["Active(Id(2000)) => Inactive(Id(2000))"]); { diff --git a/test/suites/zombie_simple_template_offchain/test_zombie_simple_template_offchain.ts b/test/suites/zombie_simple_template_offchain/test_zombie_simple_template_offchain.ts index cb70fca82..189173b18 100644 --- a/test/suites/zombie_simple_template_offchain/test_zombie_simple_template_offchain.ts +++ b/test/suites/zombie_simple_template_offchain/test_zombie_simple_template_offchain.ts @@ -1,12 +1,12 @@ import { beforeAll, describeSuite, expect } from "@moonwall/cli"; import { getHeaderFromRelay } from "../../util/relayInterface.ts"; -import { ApiPromise, Keyring } from "@polkadot/api"; +import { type ApiPromise, Keyring } from "@polkadot/api"; import { signAndSendAndInclude, isEventEmittedInTheNextBlocks } from "../../util/block.ts"; describeSuite({ - id: "ZOF01", + id: "ZOMB01", title: "Zombie Offchain Tests", foundationMethods: "zombie", - testCases: function ({ it, context }) { + testCases: ({ it, context }) => { let relayApi: ApiPromise; let container2000Api: ApiPromise; const baseBlockWaitingInterval: number = 10; @@ -32,7 +32,7 @@ describeSuite({ it({ id: "T01", title: "Offchain events are not emitted for simple container chain when offchain pallet testing is not enabled", - test: async function () { + test: async () => { const blockNum = (await container2000Api.rpc.chain.getBlock()).block.header.number.toNumber(); expect(blockNum).to.be.greaterThan(0); const isOffchainEventEmitted = await isEventEmittedInTheNextBlocks( @@ -49,7 +49,7 @@ describeSuite({ it({ id: "T02", title: "Offchain events are not emitted for simple container chain when offchain pallet testing is enabled", - test: async function () { + test: async () => { const keyring = new Keyring({ type: "sr25519" }); const alice = keyring.addFromUri("//Alice", { name: "Alice default" }); diff --git a/test/suites/zombie_simple_template_upgrade/test_zombie_simple_template_upgrade.ts b/test/suites/zombie_simple_template_upgrade/test_zombie_simple_template_upgrade.ts index bb42e401a..dd19cd025 100644 --- a/test/suites/zombie_simple_template_upgrade/test_zombie_simple_template_upgrade.ts +++ b/test/suites/zombie_simple_template_upgrade/test_zombie_simple_template_upgrade.ts @@ -1,15 +1,15 @@ +import "@tanssi/api-augment"; import { MoonwallContext, beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { generateKeyringPair, KeyringPair } from "@moonwall/util"; -import { ApiPromise, Keyring } from "@polkadot/api"; -import { alith } from "@moonwall/util"; - +import type { KeyringPair } from "@moonwall/util"; +import { type ApiPromise, Keyring } from "@polkadot/api"; +import { alith, generateKeyringPair } from "@moonwall/util"; import fs from "node:fs"; describeSuite({ - id: "R01", + id: "ZOMBI01", title: "Zombie Container Template Upgrade Test", foundationMethods: "zombie", - testCases: function ({ it, context, log }) { + testCases: ({ it, context, log }) => { let paraApi: ApiPromise; let alice_or_alith: KeyringPair; beforeAll(async () => { @@ -28,7 +28,7 @@ describeSuite({ it({ id: "T01", title: "Blocks are being produced on parachain", - test: async function () { + test: async () => { const blockNum = (await paraApi.rpc.chain.getBlock()).block.header.number.toNumber(); expect(blockNum).to.be.greaterThan(0); }, @@ -38,7 +38,7 @@ describeSuite({ id: "T02", title: "Chain can be upgraded", timeout: 600000, - test: async function () { + test: async ({ skip }) => { const blockNumberBefore = (await paraApi.rpc.chain.getBlock()).block.header.number.toNumber(); const currentCode = await paraApi.rpc.state.getStorage(":code"); const codeString = currentCode.toString(); @@ -49,13 +49,12 @@ describeSuite({ if (rtHex === codeString) { log("Runtime already upgraded, skipping test"); - return; - } else { - log("Runtime not upgraded, proceeding with test"); - log("Current runtime spec version:", rtBefore); - log("Current runtime bytes: " + rtHex.slice(0, 10) + "..." + rtHex.slice(-10)); - log("New runtime bytes: " + codeString.slice(0, 10) + "..." + codeString.slice(-10)); + skip(); } + log("Current runtime spec version: ", rtBefore); + log("Runtime not upgraded, proceeding with test"); + log(`Current runtime hash: ${rtHex.slice(0, 10)}...${rtHex.slice(-10)}`); + log(`New runtime bytes: ${codeString.slice(0, 10)}...${codeString.slice(-10)}`); await context.upgradeRuntime({ from: alice_or_alith, logger: log }); await context.waitBlock(2); @@ -74,7 +73,7 @@ describeSuite({ id: "T03", title: "Can send balance transfers", timeout: 600000, - test: async function () { + test: async () => { const randomAccount = generateKeyringPair("sr25519"); let tries = 0; diff --git a/test/suites/zombie_tanssi/test_zombie_tanssi.ts b/test/suites/zombie_tanssi/test_zombie_tanssi.ts index 01ad7e79c..0fd52925e 100644 --- a/test/suites/zombie_tanssi/test_zombie_tanssi.ts +++ b/test/suites/zombie_tanssi/test_zombie_tanssi.ts @@ -1,8 +1,8 @@ import { beforeAll, describeSuite, expect } from "@moonwall/cli"; import { MIN_GAS_PRICE, customWeb3Request, generateKeyringPair } from "@moonwall/util"; -import { ApiPromise, Keyring } from "@polkadot/api"; -import { Signer } from "ethers"; -import fs from "fs/promises"; +import { type ApiPromise, Keyring } from "@polkadot/api"; +import type { Signer } from "ethers"; +import fs from "node:fs/promises"; import { getAuthorFromDigest, getAuthorFromDigestRange } from "../../util/author"; import { signAndSendAndInclude, waitSessions } from "../../util/block"; import { createTransfer, waitUntilEthTxIncluded } from "../../util/ethereum"; @@ -11,17 +11,17 @@ import { getKeyringNimbusIdHex } from "../../util/keys"; import { getHeaderFromRelay } from "../../util/relayInterface"; describeSuite({ - id: "P01", + id: "ZOMBIE01", title: "Zombie Tanssi Test", foundationMethods: "zombie", - testCases: function ({ it, context }) { + testCases: ({ it, context }) => { let paraApi: ApiPromise; let relayApi: ApiPromise; let container2000Api: ApiPromise; let container2001Api: ApiPromise; let container2002Api: ApiPromise; - let blockNumber2002Start; - let blockNumber2002End; + let blockNumber2002Start: number; + let blockNumber2002End: number; let ethersSigner: Signer; const sessionPeriod = 10; @@ -71,7 +71,7 @@ describeSuite({ it({ id: "T01", title: "Blocks are being produced on parachain", - test: async function () { + test: async () => { const blockNum = (await paraApi.rpc.chain.getBlock()).block.header.number.toNumber(); expect(blockNum).to.be.greaterThan(0); }, @@ -80,7 +80,7 @@ describeSuite({ it({ id: "T03", title: "Test assignation did not change", - test: async function () { + test: async () => { const currentSession = (await paraApi.query.session.currentIndex()).toNumber(); // TODO: fix once we have types const allCollators = ( @@ -106,7 +106,7 @@ describeSuite({ it({ id: "T04", title: "Blocks are being produced on container 2000", - test: async function () { + test: async () => { const blockNum = (await container2000Api.rpc.chain.getBlock()).block.header.number.toNumber(); expect(blockNum).to.be.greaterThan(0); }, @@ -115,7 +115,7 @@ describeSuite({ it({ id: "T05", title: "Blocks are being produced on container 2001", - test: async function () { + test: async () => { const blockNum = (await container2001Api.rpc.chain.getBlock()).block.header.number.toNumber(); expect(blockNum).to.be.greaterThan(0); @@ -126,7 +126,7 @@ describeSuite({ it({ id: "T06", title: "Test container chain 2000 assignation is correct", - test: async function () { + test: async () => { const currentSession = (await paraApi.query.session.currentIndex()).toNumber(); const paraId = (await container2000Api.query.parachainInfo.parachainId()).toString(); const containerChainCollators = ( @@ -143,7 +143,7 @@ describeSuite({ it({ id: "T07", title: "Test container chain 2001 assignation is correct", - test: async function () { + test: async () => { const currentSession = (await paraApi.query.session.currentIndex()).toNumber(); const paraId = (await container2001Api.query.parachainInfo.parachainId()).toString(); const containerChainCollators = ( @@ -160,7 +160,7 @@ describeSuite({ id: "T08", title: "Test author noting is correct for both containers", timeout: 60000, - test: async function () { + test: async () => { const assignment = await paraApi.query.collatorAssignment.collatorContainerChain(); const paraId2000 = await container2000Api.query.parachainInfo.parachainId(); const paraId2001 = await container2001Api.query.parachainInfo.parachainId(); @@ -181,7 +181,7 @@ describeSuite({ it({ id: "T09", title: "Test author is correct in Orchestrator", - test: async function () { + test: async () => { const sessionIndex = (await paraApi.query.session.currentIndex()).toNumber(); const authorities = await paraApi.query.authorityAssignment.collatorContainerChain(sessionIndex); const author = await getAuthorFromDigest(paraApi); @@ -193,7 +193,7 @@ describeSuite({ it({ id: "T10", title: "Test frontier template isEthereum", - test: async function () { + test: async () => { // TODO: fix once we have types const genesisData2000 = await paraApi.query.registrar.paraGenesisData(2000); expect(genesisData2000.toJSON().properties.isEthereum).to.be.false; @@ -205,18 +205,13 @@ describeSuite({ id: "T11", title: "Transactions can be made with ethers", timeout: 30000, - test: async function () { + test: async () => { const randomAccount = generateKeyringPair(); - const tx = await createTransfer(context, randomAccount.address, 1_000_000_000_000, { - gasPrice: MIN_GAS_PRICE, + const tx = await context.ethers().sendTransaction({ + to: randomAccount.address, + value: 1_000_000_000_000n, }); - const txHash = await customWeb3Request(context.web3(), "eth_sendRawTransaction", [tx]); - await waitUntilEthTxIncluded( - () => context.waitBlock(1, "Container2001"), - context.web3(), - txHash.result - ); - expect(Number(await context.web3().eth.getBalance(randomAccount.address))).to.be.greaterThan(0); + await tx.wait(); }, }); @@ -224,7 +219,7 @@ describeSuite({ id: "T12", title: "Test live registration of container chain 2002", timeout: 300000, - test: async function () { + test: async () => { const keyring = new Keyring({ type: "sr25519" }); const alice = keyring.addFromUri("//Alice", { name: "Alice default" }); @@ -297,7 +292,7 @@ describeSuite({ id: "T13", title: "Blocks are being produced on container 2002", timeout: 120000, - test: async function () { + test: async () => { // Wait 3 blocks because the next test needs to get a non empty value from // container2002Api.query.authoritiesNoting() await context.waitBlock(3, "Container2002"); @@ -307,7 +302,7 @@ describeSuite({ it({ id: "T14", title: "Test container chain 2002 assignation is correct", - test: async function () { + test: async () => { const currentSession = (await paraApi.query.session.currentIndex()).toNumber(); const paraId = (await container2002Api.query.parachainInfo.parachainId()).toString(); // TODO: fix once we have types @@ -325,7 +320,7 @@ describeSuite({ id: "T15", title: "Deregister container chain 2002, collators should move to tanssi", timeout: 300000, - test: async function () { + test: async () => { const keyring = new Keyring({ type: "sr25519" }); const alice = keyring.addFromUri("//Alice", { name: "Alice default" }); @@ -357,7 +352,7 @@ describeSuite({ it({ id: "T16", title: "Count number of tanssi collators before and during 2002 chain", - test: async function () { + test: async () => { // This test depends on T12 and T15 to set blockNumber2002Start and blockNumber2002End // The block range must start and end on session boundaries expect(blockNumber2002Start % sessionPeriod).to.be.equal(0); @@ -427,7 +422,7 @@ describeSuite({ id: "T17", title: "Count number of tanssi collators after 2002 chain", timeout: 120000, - test: async function () { + test: async () => { // This test depends on T12 and T15 to set blockNumber2002Start and blockNumber2002End const blockNum = (await paraApi.rpc.chain.getBlock()).block.header.number.toNumber(); if (blockNum < blockNumber2002End + sessionPeriod - 1) { @@ -449,7 +444,7 @@ describeSuite({ id: "T18", title: "Check collator logs to ensure common errors are fixed", timeout: 300000, - test: async function () { + test: async () => { const logs = [ "/Collator1000-01.log", "/Collator1000-02.log", @@ -528,7 +523,7 @@ async function countUniqueBlockAuthors( // This test can also fail if the values are close, because collators sometimes fail to produce a block. // For optimal results use a value of `numAuthors` that is much smaller than `sessionPeriod`. expect(numAuthors).toBeLessThanOrEqual(sessionPeriod); - // If the authority set changes at any point, the assumption that numAuthors == authorities.len is not valid: + // If the authority set changes at any point, the assumption that numAuthors === authorities.len is not valid: // we can always have 1 collator assigned to this chain, but if the authority set changes once in the middle of this // test, we will see 2 different block authors. We detect that and return an error, the caller is expected to avoid // this case by passing a different block range. @@ -552,7 +547,7 @@ async function countUniqueBlockAuthors( const uniq = [...new Set(actualAuthors)]; - if (uniq.length > numAuthors || (uniq.length == 1 && numAuthors > 1)) { + if (uniq.length > numAuthors || (uniq.length === 1 && numAuthors > 1)) { console.error( "Mismatch between authorities and actual block authors: authorities: ", formatAuthoritySets(authoritiesBySession), diff --git a/test/suites/zombie_tanssi_keep_db/test_zombie_tanssi_keep_db.ts b/test/suites/zombie_tanssi_keep_db/test_zombie_tanssi_keep_db.ts index f3705d121..0800be01d 100644 --- a/test/suites/zombie_tanssi_keep_db/test_zombie_tanssi_keep_db.ts +++ b/test/suites/zombie_tanssi_keep_db/test_zombie_tanssi_keep_db.ts @@ -1,23 +1,23 @@ import { afterAll, beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { ApiPromise, Keyring } from "@polkadot/api"; +import { type ApiPromise, Keyring } from "@polkadot/api"; import { getAuthorFromDigest, getAuthorFromDigestRange } from "../../util/author"; import { signAndSendAndInclude, waitSessions } from "../../util/block"; import { getKeyringNimbusIdHex } from "../../util/keys"; import { getHeaderFromRelay } from "../../util/relayInterface"; -import { exec, spawn } from "child_process"; -import fs from "fs/promises"; -import { createWriteStream } from "fs"; +import { exec, spawn } from "node:child_process"; +import fs from "node:fs/promises"; +import { createWriteStream } from "node:fs"; describeSuite({ - id: "ZK01", + id: "ZOMBIET01", title: "Zombie Tanssi KeepDb Test", foundationMethods: "zombie", - testCases: function ({ it, context }) { + testCases: ({ it, context }) => { let paraApi: ApiPromise; let relayApi: ApiPromise; let container2000Api: ApiPromise; - let blockNumberOfRestart; - let authoritiesAtRestart; + let blockNumberOfRestart: number; + let authoritiesAtRestart: any; const restartedHandles = []; beforeAll(async () => { @@ -94,7 +94,7 @@ describeSuite({ it({ id: "T01", title: "Blocks are being produced on parachain", - test: async function () { + test: async () => { const blockNum = (await paraApi.rpc.chain.getBlock()).block.header.number.toNumber(); expect(blockNum).to.be.greaterThan(0); }, @@ -103,7 +103,7 @@ describeSuite({ it({ id: "T03", title: "Test assignation did not change", - test: async function () { + test: async () => { const currentSession = (await paraApi.query.session.currentIndex()).toNumber(); // TODO: fix once we have types const allCollators = ( @@ -127,7 +127,7 @@ describeSuite({ it({ id: "T04", title: "Blocks are being produced on container 2000", - test: async function () { + test: async () => { const blockNum = (await container2000Api.rpc.chain.getBlock()).block.header.number.toNumber(); expect(blockNum).to.be.greaterThan(0); }, @@ -136,7 +136,7 @@ describeSuite({ it({ id: "T06", title: "Test container chain 2000 assignation is correct", - test: async function () { + test: async () => { const currentSession = (await paraApi.query.session.currentIndex()).toNumber(); const paraId = (await container2000Api.query.parachainInfo.parachainId()).toString(); const containerChainCollators = ( @@ -154,7 +154,7 @@ describeSuite({ id: "T08", title: "Test author noting is correct for both containers", timeout: 60000, - test: async function () { + test: async () => { const assignment = await paraApi.query.collatorAssignment.collatorContainerChain(); const paraId2000 = await container2000Api.query.parachainInfo.parachainId(); @@ -171,7 +171,7 @@ describeSuite({ it({ id: "T09", title: "Test author is correct in Orchestrator", - test: async function () { + test: async () => { const sessionIndex = (await paraApi.query.session.currentIndex()).toNumber(); const authorities = await paraApi.query.authorityAssignment.collatorContainerChain(sessionIndex); const author = await getAuthorFromDigest(paraApi); @@ -183,7 +183,7 @@ describeSuite({ it({ id: "T10", title: "Test frontier template isEthereum", - test: async function () { + test: async () => { // TODO: fix once we have types const genesisData2000 = await paraApi.query.registrar.paraGenesisData(2000); expect(genesisData2000.toJSON().properties.isEthereum).to.be.false; @@ -193,7 +193,7 @@ describeSuite({ it({ id: "T11", title: "Test restarting both container chain collators", - test: async function () { + test: async () => { // Fetch block number before restarting because the RPC may no longer work after the restart blockNumberOfRestart = (await container2000Api.rpc.chain.getBlock()).block.header.number.toNumber(); // Fetch authorities for a later test @@ -206,8 +206,8 @@ describeSuite({ const pidCollator200002 = await findCollatorProcessPid("Collator2000-02"); expect(isProcessRunning(pidCollator200001)).to.be.true; expect(isProcessRunning(pidCollator200002)).to.be.true; - await runZombienetRestart(pidCollator200001, getTmpZombiePath() + `/Collator2000-01.log`); - await runZombienetRestart(pidCollator200002, getTmpZombiePath() + `/Collator2000-02.log`); + await runZombienetRestart(pidCollator200001, `${getTmpZombiePath()}/Collator2000-01.log`); + await runZombienetRestart(pidCollator200002, `${getTmpZombiePath()}/Collator2000-02.log`); await sleep(5000); // Check that both collators have been stopped @@ -215,12 +215,8 @@ describeSuite({ expect(isProcessRunning(pidCollator200002)).to.be.false; // Check db has not been deleted - const dbPath01 = - getTmpZombiePath() + - `/Collator2000-01/data/containers/chains/simple_container_2000/paritydb/full-container-2000`; - const dbPath02 = - getTmpZombiePath() + - `/Collator2000-02/data/containers/chains/simple_container_2000/paritydb/full-container-2000`; + const dbPath01 = `${getTmpZombiePath()}/Collator2000-01/data/containers/chains/simple_container_2000/paritydb/full-container-2000`; + const dbPath02 = `${getTmpZombiePath()}/Collator2000-02/data/containers/chains/simple_container_2000/paritydb/full-container-2000`; expect(await directoryExists(dbPath01)).to.be.true; expect(await directoryExists(dbPath02)).to.be.true; @@ -231,7 +227,7 @@ describeSuite({ id: "T12", title: "Test container chain deregister: only nodes without keep-db should delete db", timeout: 300000, - test: async function () { + test: async () => { const keyring = new Keyring({ type: "sr25519" }); const alice = keyring.addFromUri("//Alice", { name: "Alice default" }); @@ -257,12 +253,8 @@ describeSuite({ expect(registered.toJSON().includes(2000)).to.be.false; // Collator2000-01 db path exists because it was started with `--keep-db`, Collator2000-02 has deleted it - const dbPath01 = - getTmpZombiePath() + - `/Collator2000-01/data/containers/chains/simple_container_2000/paritydb/full-container-2000`; - const dbPath02 = - getTmpZombiePath() + - `/Collator2000-02/data/containers/chains/simple_container_2000/paritydb/full-container-2000`; + const dbPath01 = `${getTmpZombiePath()}/Collator2000-01/data/containers/chains/simple_container_2000/paritydb/full-container-2000`; + const dbPath02 = `${getTmpZombiePath()}/Collator2000-02/data/containers/chains/simple_container_2000/paritydb/full-container-2000`; expect(await directoryExists(dbPath01)).to.be.true; expect(await directoryExists(dbPath02)).to.be.false; @@ -272,7 +264,7 @@ describeSuite({ it({ id: "T13", title: "Both container chain collators keep producing blocks after restart", - test: async function () { + test: async () => { const currentBlock = (await container2000Api.rpc.chain.getBlock()).block.header.number.toNumber(); console.log( `Checking block authors for container chain 2000 in range ${blockNumberOfRestart} - ${currentBlock}` @@ -316,13 +308,12 @@ const findCollatorProcessPid = async (collatorName: string) => { if (processes.length === 1) { return processes[0].value; // return pid - } else { - const error = { - message: "Multiple processes found.", - processes: processes.map((p) => p.name), - }; - throw error; } + const error = { + message: "Multiple processes found.", + processes: processes.map((p) => p.name), + }; + throw error; }; function isProcessRunning(pid: number): boolean { @@ -380,7 +371,7 @@ async function countUniqueBlockAuthorsExact(paraApi, blockStart, blockEnd, numAu const uniq = [...new Set(actualAuthors)]; - if (uniq.length != numAuthors) { + if (uniq.length !== numAuthors) { console.error( "Mismatch between authorities and actual block authors: authorities: ", authorities, diff --git a/test/suites/zombie_tanssi_metrics/test_zombie_tanssi_metrics.ts b/test/suites/zombie_tanssi_metrics/test_zombie_tanssi_metrics.ts index d081b643e..cd0948708 100644 --- a/test/suites/zombie_tanssi_metrics/test_zombie_tanssi_metrics.ts +++ b/test/suites/zombie_tanssi_metrics/test_zombie_tanssi_metrics.ts @@ -1,16 +1,16 @@ import { beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { ApiPromise, Keyring } from "@polkadot/api"; +import { type ApiPromise, Keyring } from "@polkadot/api"; import { getAuthorFromDigest } from "../../util/author"; import { signAndSendAndInclude, waitSessions } from "../../util/block"; import { getKeyringNimbusIdHex } from "../../util/keys"; import { getHeaderFromRelay } from "../../util/relayInterface"; -import net from "net"; +import net from "node:net"; describeSuite({ - id: "ZM01", + id: "ZOMBIETA01", title: "Zombie Tanssi Metrics Test", foundationMethods: "zombie", - testCases: function ({ it, context }) { + testCases: ({ it, context }) => { let paraApi: ApiPromise; let relayApi: ApiPromise; let container2000Api: ApiPromise; @@ -42,7 +42,7 @@ describeSuite({ it({ id: "T01", title: "Blocks are being produced on parachain", - test: async function () { + test: async () => { const blockNum = (await paraApi.rpc.chain.getBlock()).block.header.number.toNumber(); expect(blockNum).to.be.greaterThan(0); }, @@ -51,7 +51,7 @@ describeSuite({ it({ id: "T03", title: "Test assignation did not change", - test: async function () { + test: async () => { const currentSession = (await paraApi.query.session.currentIndex()).toNumber(); // TODO: fix once we have types const allCollators = ( @@ -75,7 +75,7 @@ describeSuite({ it({ id: "T04", title: "Blocks are being produced on container 2000", - test: async function () { + test: async () => { const blockNum = (await container2000Api.rpc.chain.getBlock()).block.header.number.toNumber(); expect(blockNum).to.be.greaterThan(0); }, @@ -84,7 +84,7 @@ describeSuite({ it({ id: "T06", title: "Test container chain 2000 assignation is correct", - test: async function () { + test: async () => { const currentSession = (await paraApi.query.session.currentIndex()).toNumber(); const paraId = (await container2000Api.query.parachainInfo.parachainId()).toString(); const containerChainCollators = ( @@ -102,7 +102,7 @@ describeSuite({ id: "T08", title: "Test author noting is correct for both containers", timeout: 60000, - test: async function () { + test: async () => { const assignment = await paraApi.query.collatorAssignment.collatorContainerChain(); const paraId2000 = await container2000Api.query.parachainInfo.parachainId(); @@ -119,7 +119,7 @@ describeSuite({ it({ id: "T09", title: "Test author is correct in Orchestrator", - test: async function () { + test: async () => { const sessionIndex = (await paraApi.query.session.currentIndex()).toNumber(); const authorities = await paraApi.query.authorityAssignment.collatorContainerChain(sessionIndex); const author = await getAuthorFromDigest(paraApi); @@ -131,7 +131,7 @@ describeSuite({ it({ id: "T10", title: "Test frontier template isEthereum", - test: async function () { + test: async () => { // TODO: fix once we have types const genesisData2000 = await paraApi.query.registrar.paraGenesisData(2000); expect(genesisData2000.toJSON().properties.isEthereum).to.be.false; @@ -142,7 +142,7 @@ describeSuite({ id: "T12", title: "Test metrics: deregister container chain and metrics should stop", timeout: 300000, - test: async function () { + test: async () => { const keyring = new Keyring({ type: "sr25519" }); const alice = keyring.addFromUri("//Alice", { name: "Alice default" }); diff --git a/test/suites/zombie_tanssi_one_node/test_zombie_tanssi_one_node.ts b/test/suites/zombie_tanssi_one_node/test_zombie_tanssi_one_node.ts index bf4fa787f..bfe184ef6 100644 --- a/test/suites/zombie_tanssi_one_node/test_zombie_tanssi_one_node.ts +++ b/test/suites/zombie_tanssi_one_node/test_zombie_tanssi_one_node.ts @@ -1,15 +1,16 @@ import { beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { ApiPromise, Keyring } from "@polkadot/api"; -import fs from "fs/promises"; -import { stat } from "fs/promises"; +import { type ApiPromise, Keyring } from "@polkadot/api"; +import fs from "node:fs/promises"; +import { stat } from "node:fs/promises"; import { signAndSendAndInclude, waitSessions } from "../../util/block"; import { getKeyringNimbusIdHex } from "../../util/keys"; +import { KeyringPair } from "@moonwall/util"; describeSuite({ - id: "N01", + id: "ZOMBIETAN01", title: "Zombie Tanssi Rotation Test", foundationMethods: "zombie", - testCases: function ({ it, context }) { + testCases: ({ it, context }) => { let paraApi: ApiPromise; let relayApi: ApiPromise; let allCollators: string[]; @@ -37,7 +38,7 @@ describeSuite({ it({ id: "T01", title: "Blocks are being produced on parachain", - test: async function () { + test: async () => { const blockNum = (await paraApi.rpc.chain.getBlock()).block.header.number.toNumber(); expect(blockNum).to.be.greaterThan(0); }, @@ -47,7 +48,7 @@ describeSuite({ id: "T02", title: "Disable full_rotation, set to 1 collator", timeout: 120000, - test: async function () { + test: async () => { const keyring = new Keyring({ type: "sr25519" }); const alice = keyring.addFromUri("//Alice", { name: "Alice default" }); const tx1 = paraApi.tx.configuration.setMinOrchestratorCollators(1); @@ -62,7 +63,7 @@ describeSuite({ id: "T03", title: "Register empty wasm as parathread 2000", timeout: 240000, - test: async function () { + test: async () => { const keyring = new Keyring({ type: "sr25519" }); const alice = keyring.addFromUri("//Alice", { name: "Alice default" }); const txs2000 = await registerEmptyParathread(paraApi, alice.address, 2000); @@ -75,14 +76,14 @@ describeSuite({ id: "T04", title: "Wait for parathread 2000 to be assigned collators", timeout: 600000, - test: async function () { + test: async () => { await waitSessions(context, paraApi, 2, async () => { const currentSession = (await paraApi.query.session.currentIndex()).toNumber(); const containerChainCollators = ( await paraApi.query.authorityAssignment.collatorContainerChain(currentSession) ).toJSON().containerChains; // Stop waiting when parathread has been assigned collators - return containerChainCollators[2000] != undefined; + return containerChainCollators[2000] !== undefined; }); const currentSession = (await paraApi.query.session.currentIndex()).toNumber(); @@ -90,7 +91,7 @@ describeSuite({ await paraApi.query.authorityAssignment.collatorContainerChain(currentSession) ).toJSON().containerChains; expect( - containerChainCollators[2000] != undefined, + containerChainCollators[2000] !== undefined, "Failed to register parathread: no collators assigned" ).to.be.true; }, @@ -99,11 +100,11 @@ describeSuite({ it({ id: "T05", title: "Check logs, collator failed to start", - test: async function () { + test: async () => { // We registered an empty wasm as a parathread. Collator should fail to start, but never panic. const assignment = (await paraApi.query.collatorAssignment.collatorContainerChain()).toJSON(); const oldC2000 = collatorName[assignment.containerChains[2000][0]]; - const logFilePath = getTmpZombiePath() + `/${oldC2000}.log`; + const logFilePath = `${getTmpZombiePath()}/${oldC2000}.log`; await checkLogs(logFilePath, [ "[Orchestrator] Detected assignment for container chain 2000", "[Orchestrator] Loaded chain spec for container chain 2000", @@ -117,10 +118,10 @@ describeSuite({ it({ id: "T06", title: "Check logs, collator did not panic", - test: async function () { + test: async () => { const assignment = (await paraApi.query.collatorAssignment.collatorContainerChain()).toJSON(); const oldC2000 = collatorName[assignment.containerChains[2000][0]]; - const logFilePath = getTmpZombiePath() + `/${oldC2000}.log`; + const logFilePath = `${getTmpZombiePath()}/${oldC2000}.log`; // Best effort, if anything else panics this test will breaks await assertLogsDoNotContain(logFilePath, "panic"); }, @@ -129,10 +130,10 @@ describeSuite({ it({ id: "T06", title: "Check logs, collator is still running", - test: async function () { + test: async () => { const assignment = (await paraApi.query.collatorAssignment.collatorContainerChain()).toJSON(); const oldC2000 = collatorName[assignment.containerChains[2000][0]]; - const logFilePath = getTmpZombiePath() + `/${oldC2000}.log`; + const logFilePath = `${getTmpZombiePath()}/${oldC2000}.log`; await waitForNewLogs(logFilePath); }, }); @@ -152,9 +153,9 @@ function createCollatorKeyToNameMap(paraApi, collatorNames: string[]): Record { const g = api.createType("DpContainerChainGenesisDataContainerChainGenesisData", { @@ -182,7 +183,7 @@ async function registerEmptyParathread(api, manager, paraId) { const containerChainGenesisData = emptyGenesisData(); const txs = []; - let tx1; + let tx1: any; if (parathread) { const slotFreq = api.createType("TpTraitsSlotFrequency", { min: 1, diff --git a/test/suites/zombie_tanssi_parathreads/test_zombie_tanssi_parathreads.ts b/test/suites/zombie_tanssi_parathreads/test_zombie_tanssi_parathreads.ts index 12e5b3228..051e07ff3 100644 --- a/test/suites/zombie_tanssi_parathreads/test_zombie_tanssi_parathreads.ts +++ b/test/suites/zombie_tanssi_parathreads/test_zombie_tanssi_parathreads.ts @@ -1,8 +1,8 @@ import { beforeAll, describeSuite, expect } from "@moonwall/cli"; import { MIN_GAS_PRICE, customWeb3Request, generateKeyringPair, getBlockArray } from "@moonwall/util"; -import { ApiPromise, Keyring } from "@polkadot/api"; -import { Signer } from "ethers"; -import fs from "fs/promises"; +import { type ApiPromise, Keyring } from "@polkadot/api"; +import type { Signer } from "ethers"; +import fs from "node:fs/promises"; import { getAuthorFromDigest } from "../../util/author"; import { signAndSendAndInclude, waitSessions } from "../../util/block"; import { getHeaderFromRelay } from "../../util/relayInterface"; @@ -16,10 +16,10 @@ import { stringToHex } from "@polkadot/util"; const JSONbig = jsonBg({ useNativeBigInt: true }); describeSuite({ - id: "R01", + id: "ZOMBIETANS01", title: "Zombie Tanssi Rotation Test", foundationMethods: "zombie", - testCases: function ({ it, context }) { + testCases: ({ it, context }) => { let paraApi: ApiPromise; let relayApi: ApiPromise; let container2000Api: ApiPromise; @@ -70,7 +70,7 @@ describeSuite({ it({ id: "T01", title: "Blocks are being produced on parachain", - test: async function () { + test: async () => { const blockNum = (await paraApi.rpc.chain.getBlock()).block.header.number.toNumber(); expect(blockNum).to.be.greaterThan(0); }, @@ -79,7 +79,7 @@ describeSuite({ it({ id: "T01a", title: "Deregister 2000 and 2001 as parachains and remove their allocation from coretime", - test: async function () { + test: async () => { const keyring = new Keyring({ type: "sr25519" }); const alice = keyring.addFromUri("//Alice", { name: "Alice default" }); @@ -103,8 +103,8 @@ describeSuite({ for (let core = 0; core < maxCores; core++) { const coreData = (await relayApi.query.coretimeAssignmentProvider.coreDescriptors(core)).toJSON(); if ( - coreData.currentWork.assignments[0][0].task == 2000 || - coreData.currentWork.assignments[0][0].task == 2001 + coreData.currentWork.assignments[0][0].task === 2000 || + coreData.currentWork.assignments[0][0].task === 2001 ) { coresToRemoveFromCoretime.push(core); } @@ -130,7 +130,7 @@ describeSuite({ it({ id: "T01b", title: "Fund parachain tank account on relay chain", - test: async function () { + test: async () => { const keyring = new Keyring({ type: "sr25519" }); const alice = keyring.addFromUri("//Alice", { name: "Alice default" }); const paraId2000Tank = await getParathreadRelayTankAddress(relayApi, 1000, 2000); @@ -151,7 +151,7 @@ describeSuite({ id: "T02a", title: "Disable full_rotation and set xcm weights", timeout: 6000000, - test: async function () { + test: async () => { const keyring = new Keyring({ type: "sr25519" }); const alice = keyring.addFromUri("//Alice", { name: "Alice default" }); const tx4 = paraApi.tx.configuration.setFullRotationPeriod(0); @@ -177,7 +177,7 @@ describeSuite({ id: "T02b", title: "Change configuration to assign two collators per parathread", timeout: 6000000, - test: async function () { + test: async () => { const keyring = new Keyring({ type: "sr25519" }); const alice = keyring.addFromUri("//Alice", { name: "Alice default" }); const setParathreadCollators = paraApi.tx.configuration.setCollatorsPerParathread(2); @@ -194,7 +194,7 @@ describeSuite({ it({ id: "T03", title: "Register 2000 and 2001 as parathread and assign collators to it", - test: async function () { + test: async () => { const keyring = new Keyring({ type: "sr25519" }); const alice = keyring.addFromUri("//Alice", { name: "Alice default" }); const nextProfileId = await paraApi.query.dataPreservers.nextProfileId(); @@ -267,7 +267,7 @@ describeSuite({ it({ id: "T04", title: "Blocks are being produced on container 2000", - test: async function () { + test: async () => { // Produces 1 block every 5 slots, which is every 30 seconds // Give it a bit more time just in case await sleep(120000); @@ -279,7 +279,7 @@ describeSuite({ it({ id: "T05", title: "Blocks are being produced on container 2001", - test: async function () { + test: async () => { // Produces 1 block every 5 slots, which is every 30 seconds // Give it a bit more time just in case await sleep(120000); @@ -293,7 +293,7 @@ describeSuite({ it({ id: "T06", title: "Test container chain 2000 assignation is correct", - test: async function () { + test: async () => { const currentSession = (await paraApi.query.session.currentIndex()).toNumber(); const paraId = (await container2000Api.query.parachainInfo.parachainId()).toString(); const containerChainCollators = ( @@ -310,7 +310,7 @@ describeSuite({ it({ id: "T07", title: "Test container chain 2001 assignation is correct", - test: async function () { + test: async () => { const currentSession = (await paraApi.query.session.currentIndex()).toNumber(); const paraId = (await container2001Api.query.parachainInfo.parachainId()).toString(); const containerChainCollators = ( @@ -327,7 +327,7 @@ describeSuite({ id: "T08", title: "Test author noting is correct for both containers", timeout: 120000, - test: async function () { + test: async () => { const assignment = await paraApi.query.collatorAssignment.collatorContainerChain(); const paraId2000 = await container2000Api.query.parachainInfo.parachainId(); const paraId2001 = await container2001Api.query.parachainInfo.parachainId(); @@ -348,7 +348,7 @@ describeSuite({ it({ id: "T09", title: "Test author is correct in Orchestrator", - test: async function () { + test: async () => { const sessionIndex = (await paraApi.query.session.currentIndex()).toNumber(); const authorities = await paraApi.query.authorityAssignment.collatorContainerChain(sessionIndex); const author = await getAuthorFromDigest(paraApi); @@ -360,7 +360,7 @@ describeSuite({ it({ id: "T10", title: "Test frontier template isEthereum", - test: async function () { + test: async () => { // TODO: fix once we have types const genesisData2000 = await paraApi.query.registrar.paraGenesisData(2000); expect(genesisData2000.toJSON().properties.isEthereum).to.be.false; @@ -372,7 +372,7 @@ describeSuite({ id: "T11", title: "Transactions can be made with ethers", timeout: 120000, - test: async function () { + test: async () => { const randomAccount = generateKeyringPair(); const tx = await createTransfer(context, randomAccount.address, 1_000_000_000_000, { gasPrice: MIN_GAS_PRICE, @@ -390,7 +390,7 @@ describeSuite({ id: "T12", title: "Check block frequency of parathreads", timeout: 240000, - test: async function () { + test: async () => { // Wait 2 sessions so that parathreads have produced at least a few blocks each await waitSessions(context, paraApi, 2); @@ -430,7 +430,7 @@ async function assertSlotFrequency(blockData, expectedSlotDiff) { const slotLog = logs.find( (log) => log.isPreRuntime === true && log.asPreRuntime[0].toHex() === stringToHex("aura") ); - return slotLog ? parseInt(slotLog.asPreRuntime[1].reverse().toString("hex"), 16) : null; + return slotLog ? Number.parseInt(slotLog.asPreRuntime[1].reverse().toString("hex"), 16) : null; }) .filter((slot) => slot !== null); // Filter out nulls (blocks without slotLog) @@ -465,7 +465,9 @@ function createCollatorKeyToNameMap(paraApi, collatorNames: string[]): Record { let relayApi: ApiPromise; let container2000Api: ApiPromise; let container2001Api: ApiPromise; @@ -43,21 +43,26 @@ describeSuite({ const paraId2002 = (await container2002Api.query.parachainInfo.parachainId()).toString(); expect(container2002Network, "Container2002 API incorrect").to.contain("container-chain-template"); expect(paraId2002, "Container2002 API incorrect").to.be.equal("2002"); - - // Test block numbers in relay are 0 yet - const header2000 = await getHeaderFromRelay(relayApi, 2000); - const header2001 = await getHeaderFromRelay(relayApi, 2001); - const header2002 = await getHeaderFromRelay(relayApi, 2002); - - expect(header2000.number.toNumber()).to.be.equal(0); - expect(header2001.number.toNumber()).to.be.equal(0); - expect(header2002.number.toNumber()).to.be.equal(0); }, 120000); it({ id: "T01", + title: "Test block numbers in relay are 0 yet", + test: async () => { + const header2000 = await getHeaderFromRelay(relayApi, 2000); + const header2001 = await getHeaderFromRelay(relayApi, 2001); + const header2002 = await getHeaderFromRelay(relayApi, 2002); + + expect(header2000.number.toNumber()).to.be.equal(0); + expect(header2001.number.toNumber()).to.be.equal(0); + expect(header2002.number.toNumber()).to.be.equal(0); + }, + }); + + it({ + id: "T02", title: "Blocks are being produced on tanssi-relay", - test: async function () { + test: async () => { const relayNetwork = relayApi.consts.system.version.specName.toString(); expect(relayNetwork, "Relay API incorrect").to.contain("dancelight"); const blockNum = (await relayApi.rpc.chain.getBlock()).block.header.number.toNumber(); @@ -66,9 +71,9 @@ describeSuite({ }); it({ - id: "T02", + id: "T03", title: "Set config params", - test: async function () { + test: async () => { const keyring = new Keyring({ type: "sr25519" }); const alice = keyring.addFromUri("//Alice", { name: "Alice default" }); @@ -81,18 +86,13 @@ describeSuite({ }); it({ - id: "T03", - timeout: 600000, + id: "T04", title: "Test assignation did not change", - test: async function () { + test: async () => { const currentSession = (await relayApi.query.session.currentIndex()).toNumber(); - // TODO: fix once we have types const allCollators = ( await relayApi.query.tanssiAuthorityAssignment.collatorContainerChain(currentSession) ).toJSON(); - // We can only check the number because zombienet dancelight has randomness and rotation, - // so the assigned collators will change every time this test is run. - // 0 collators in orchestrator and 2 collators in each para expect(allCollators.orchestratorChain.length).to.equal(0); expect(allCollators.containerChains["2000"].length).to.equal(2); expect(allCollators.containerChains["2001"].length).to.equal(2); @@ -100,36 +100,34 @@ describeSuite({ }); it({ - id: "T04", + id: "T05", title: "Blocks are being produced on container 2000", - test: async function () { + test: async () => { const blockNum = (await container2000Api.rpc.chain.getBlock()).block.header.number.toNumber(); expect(blockNum).to.be.greaterThan(0); }, }); it({ - id: "T05", + id: "T06", title: "Blocks are being produced on container 2001", - test: async function () { + test: async () => { const blockNum = (await container2001Api.rpc.chain.getBlock()).block.header.number.toNumber(); - expect(blockNum).to.be.greaterThan(0); expect(await ethersSigner.provider.getBlockNumber(), "Safe tag is not present").to.be.greaterThan(0); }, }); it({ - id: "T06", + id: "T07", title: "Test container chain 2000 assignation is correct", - test: async function () { + test: async () => { const currentSession = (await relayApi.query.session.currentIndex()).toNumber(); const paraId = (await container2000Api.query.parachainInfo.parachainId()).toString(); const containerChainCollators = ( await relayApi.query.tanssiAuthorityAssignment.collatorContainerChain(currentSession) ).toJSON().containerChains[paraId]; - // TODO: fix once we have types const writtenCollators = (await container2000Api.query.authoritiesNoting.authorities()).toJSON(); expect(containerChainCollators).to.deep.equal(writtenCollators); @@ -137,9 +135,9 @@ describeSuite({ }); it({ - id: "T07", + id: "T08", title: "Test container chain 2001 assignation is correct", - test: async function () { + test: async () => { const currentSession = (await relayApi.query.session.currentIndex()).toNumber(); const paraId = (await container2001Api.query.parachainInfo.parachainId()).toString(); const containerChainCollators = ( @@ -153,10 +151,10 @@ describeSuite({ }); it({ - id: "T08", + id: "T09", title: "Test author noting is correct for both containers", timeout: 60000, - test: async function () { + test: async () => { const assignment = await relayApi.query.tanssiCollatorAssignment.collatorContainerChain(); const paraId2000 = await container2000Api.query.parachainInfo.parachainId(); const paraId2001 = await container2001Api.query.parachainInfo.parachainId(); @@ -176,38 +174,34 @@ describeSuite({ it({ id: "T10", title: "Test frontier template isEthereum", - test: async function () { - // TODO: fix once we have types + test: async () => { const genesisData2000 = await relayApi.query.containerRegistrar.paraGenesisData(2000); expect(genesisData2000.toJSON().properties.isEthereum).to.be.false; const genesisData2001 = await relayApi.query.containerRegistrar.paraGenesisData(2001); expect(genesisData2001.toJSON().properties.isEthereum).to.be.true; }, }); + it({ id: "T11", title: "Transactions can be made with ethers", timeout: 30000, - test: async function () { + test: async () => { const randomAccount = generateKeyringPair(); - const tx = await createTransfer(context, randomAccount.address, 1_000_000_000_000, { - gasPrice: MIN_GAS_PRICE, + const tx = await context.ethers().sendTransaction({ + to: randomAccount.address, + value: 1_000_000_000_000n, }); - const txHash = await customWeb3Request(context.web3(), "eth_sendRawTransaction", [tx]); - await waitUntilEthTxIncluded( - () => context.waitBlock(1, "Container2001"), - context.web3(), - txHash.result - ); - expect(Number(await context.web3().eth.getBalance(randomAccount.address))).to.be.greaterThan(0); + await tx.wait(); + expect(await context.ethers().provider.getBalance(randomAccount.address)).to.be.greaterThan(0); }, }); it({ - id: "T12a", + id: "T12", title: "Test live registration of container chain 2002 - Register", timeout: 60000, - test: async function () { + test: async () => { const keyring = new Keyring({ type: "sr25519" }); const alice = keyring.addFromUri("//Alice", { name: "Alice default" }); @@ -215,12 +209,9 @@ describeSuite({ const spec2002 = await fs.readFile("./specs/single-container-template-container-2002.json", "utf8"); const headData2002 = await fs.readFile("./specs/para-2002-genesis-state", "utf8"); - // Before registering container chain 2002, ensure that it has 0 blocks - // Since the RPC doesn't exist at this point, we need to get that from the relay const header2002 = await getHeaderFromRelay(relayApi, 2002); expect(header2002.number.toNumber()).to.be.equal(0); const registered1 = await relayApi.query.containerRegistrar.registeredParaIds(); - // TODO: fix once we have types expect(registered1.toJSON().includes(2002)).to.be.false; const chainSpec2002 = JSON.parse(spec2002); @@ -241,12 +232,8 @@ describeSuite({ }); const tx3 = relayApi.tx.dataPreservers.forceStartAssignment(profileId, 2002, "Free"); - // In Dancelight we must wait 2 session before calling markValidForCollating, because the para needs to be - // onboarded in the relay registrar first. - // And before being allowed to do that, we must mark the validationCode as trusted const tx4 = relayApi.tx.paras.addTrustedValidationCode(genesisCode); - // Send the batch transaction: [register, purchaseCredits, createProfile, sudo(forceStartAssignment), sudo(addTrustedValidationCode)] const txBatch = relayApi.tx.utility.batchAll([ tx0, tx1, @@ -257,63 +244,51 @@ describeSuite({ ]); const { blockHash } = await signAndSendAndInclude(txBatch, alice); - // Assert that the batch succeeded with no error const apiAt = await relayApi.at(blockHash); const events = await apiAt.query.system.events(); - const ev1 = events.filter((a) => { - return a.event.method == "BatchCompleted"; - }); + const ev1 = events.filter((a) => a.event.method === "BatchCompleted"); expect(ev1.length).to.be.equal(1); }, }); it({ - id: "T12b", + id: "T13", title: "Test live registration of container chain 2002 - Wait 2 sessions", timeout: 300000, - test: async function () { - // This needs to wait until registrar.paraLifecycle is "parathread" + test: async () => { await waitSessions(context, relayApi, 2, null, "Tanssi-relay"); }, }); it({ - id: "T12c", + id: "T14", title: "Test live registration of container chain 2002 - MarkValidForCollating", timeout: 60000, - test: async function () { + test: async () => { const keyring = new Keyring({ type: "sr25519" }); const alice = keyring.addFromUri("//Alice", { name: "Alice default" }); const tx4 = relayApi.tx.containerRegistrar.markValidForCollating(2002); await signAndSendAndInclude(relayApi.tx.sudo.sudo(tx4), alice); - // Check that pending para ids contains 2002 const registered2 = await relayApi.query.containerRegistrar.pendingParaIds(); const registered3 = await relayApi.query.containerRegistrar.registeredParaIds(); - // TODO: fix once we have types expect(registered2.toJSON()[0][1].includes(2002)).to.be.true; - // But registered does not contain 2002 yet - // TODO: fix once we have types expect(registered3.toJSON().includes(2002)).to.be.false; }, }); it({ - id: "T12d", + id: "T15", title: "Test live registration of container chain 2002 - Wait 2 sessions more", timeout: 300000, - test: async function () { - // Container chain will be registered after 2 sessions, but because `signAndSendAndInclude` waits - // until the block that includes the extrinsic is finalized, it is possible that we only need to wait - // 1 session. So use a callback to wait 1 or 2 sessions. + test: async () => { await waitSessions( context, relayApi, 2, async () => { const registered = await relayApi.query.containerRegistrar.registeredParaIds(); - // Stop waiting when 2002 is registered return registered.toJSON().includes(2002); }, "Tanssi-relay" @@ -322,86 +297,72 @@ describeSuite({ }); it({ - id: "T12e", + id: "T16", title: "Test live registration of container chain 2002 - Assert", timeout: 60000, - test: async function () { - // Check that registered para ids contains 2002 + test: async () => { const registered5 = await relayApi.query.containerRegistrar.registeredParaIds(); - // TODO: fix once we have types expect(registered5.toJSON().includes(2002)).to.be.true; }, }); it({ - id: "T13", + id: "T17", title: "Blocks are being produced on container 2002", timeout: 180000, - test: async function () { - // Wait 3 blocks because the next test needs to get a non empty value from - // container2002Api.query.authoritiesNoting() + test: async () => { await context.waitBlock(3, "Container2002"); }, }); it({ - id: "T14", + id: "T18", title: "Test container chain 2002 assignation is correct", - test: async function () { + test: async () => { const currentSession = (await relayApi.query.session.currentIndex()).toNumber(); const paraId = (await container2002Api.query.parachainInfo.parachainId()).toString(); - // TODO: fix once we have types const containerChainCollators = ( await relayApi.query.tanssiAuthorityAssignment.collatorContainerChain(currentSession) ).toJSON().containerChains[paraId]; - const writtenCollators = (await container2002Api.query.authoritiesNoting.authorities()).toJSON(); - expect(containerChainCollators).to.deep.equal(writtenCollators); }, }); it({ - id: "T15", + id: "T19", title: "Deregister container chain 2002", timeout: 300000, - test: async function () { + test: async () => { const keyring = new Keyring({ type: "sr25519" }); const alice = keyring.addFromUri("//Alice", { name: "Alice default" }); const registered1 = await relayApi.query.containerRegistrar.registeredParaIds(); - // TODO: fix once we have types expect(registered1.toJSON().includes(2002)).to.be.true; const tx = relayApi.tx.containerRegistrar.deregister(2002); await signAndSendAndInclude(relayApi.tx.sudo.sudo(tx), alice); - // Container chain will be deregistered after 2 sessions, but because `signAndSendAndInclude` waits - // until the block that includes the extrinsic is finalized, it is possible that we only need to wait - // 1 session. So use a callback to wait 1 or 2 sessions. await waitSessions( context, relayApi, 2, async () => { const registered = await relayApi.query.containerRegistrar.registeredParaIds(); - // Stop waiting if 2002 is no longer registered return !registered.toJSON().includes(2002); }, "Tanssi-relay" ); - // Check that pending para ids removes 2002 const registered = await relayApi.query.containerRegistrar.registeredParaIds(); - // TODO: fix once we have types expect(registered.toJSON().includes(2002)).to.be.false; }, }); it({ - id: "T18", + id: "T20", title: "Check collator logs to ensure common errors are fixed", timeout: 300000, - test: async function () { + test: async () => { const logs = [ "/Collator-01.log", "/Collator-02.log", @@ -425,9 +386,9 @@ describeSuite({ }); it({ - id: "T19", + id: "T21", title: "Check reward points for validators are distributed", - test: async function () { + test: async () => { const keys = await relayApi.query.externalValidatorsRewards.rewardPointsForEra.keys(); expect(keys.length).to.be.greaterThan(0); }, diff --git a/test/suites/zombie_tanssi_relay_eth_bridge/test_zombie_tanssi_relay_eth_bridge.ts b/test/suites/zombie_tanssi_relay_eth_bridge/test_zombie_tanssi_relay_eth_bridge.ts index 8a10e16c3..5726e06f0 100644 --- a/test/suites/zombie_tanssi_relay_eth_bridge/test_zombie_tanssi_relay_eth_bridge.ts +++ b/test/suites/zombie_tanssi_relay_eth_bridge/test_zombie_tanssi_relay_eth_bridge.ts @@ -1,18 +1,20 @@ +import "@tanssi/api-augment/dancelight"; import { beforeAll, describeSuite, expect, afterAll } from "@moonwall/cli"; -import { ApiPromise, Keyring } from "@polkadot/api"; -import { spawn, exec } from "node:child_process"; +import { type ApiPromise, Keyring } from "@polkadot/api"; +import { spawn, exec, type ChildProcessWithoutNullStreams } from "node:child_process"; import { signAndSendAndInclude, waitSessions } from "../../util/block.ts"; import { ethers } from "ethers"; import { decodeAddress } from "@polkadot/util-crypto"; import { u8aToHex } from "@polkadot/util"; -import { MultiLocation } from "@polkadot/types/interfaces/xcm/types"; +import type { MultiLocation } from "@polkadot/types/interfaces/xcm/types"; +import type { KeyringPair } from "@moonwall/util"; // Change this if we change the storage parameter in runtime const GATEWAY_STORAGE_KEY = "0xaed97c7854d601808b98ae43079dafb3"; function execCommand(command: string, options?) { return new Promise((resolve, reject) => { - exec(command, options, (error: child.ExecException, stdout: string, stderr: string) => { + exec(command, options, (error: unknown, stdout: string, stderr: string) => { if (error) { reject({ error, stdout, stderr }); } else { @@ -38,27 +40,27 @@ async function calculateNumberOfBlocksTillNextEra(api, blocksPerSession) { } describeSuite({ - id: "ZR-01", + id: "ZOMBIETANSSI01", title: "Zombie Tanssi Relay Test", foundationMethods: "zombie", - testCases: function ({ it, context }) { + testCases: ({ it, context }) => { let relayApi: ApiPromise; let relayCharlieApi: ApiPromise; - let ethereumNodeChildProcess; - let relayerChildProcess; - let alice; - let beefyClientDetails; + let ethereumNodeChildProcess: ChildProcessWithoutNullStreams; + let relayerChildProcess: ChildProcessWithoutNullStreams; + let alice: KeyringPair; + let beefyClientDetails: any; const ethUrl = "ws://127.0.0.1:8546"; - let customHttpProvider; - let ethereumWallet; - let middlewareContract; - let gatewayContract; - let gatewayProxyAddress; - let middlewareDetails; + let customHttpProvider: ethers.WebSocketProvider; + let ethereumWallet: ethers.Wallet; + let middlewareContract: ethers.Contract; + let gatewayContract: ethers.Contract; + let gatewayProxyAddress: string; + let middlewareDetails: any; - let operatorAccount; - let operatorNimbusKey; + let operatorAccount: KeyringPair; + let operatorNimbusKey: string; beforeAll(async () => { relayApi = context.polkadotJs("Tanssi-relay"); @@ -76,7 +78,7 @@ describeSuite({ // Operator keys operatorAccount = keyring.addFromUri("//Charlie", { name: "Charlie default" }); // We rotate the keys for charlie so that we have access to them from this test as well as the node - operatorNimbusKey = await relayCharlieApi.rpc.author.rotateKeys(); + operatorNimbusKey = (await relayCharlieApi.rpc.author.rotateKeys()).toHex(); await relayApi.tx.session.setKeys(operatorNimbusKey, []).signAndSend(operatorAccount); const fundingTxHash = await signAndSendAndInclude( @@ -149,16 +151,14 @@ describeSuite({ const setMiddlewareTx = await gatewayContract.setMiddleware(middlewareDetails.address); await setMiddlewareTx.wait(); - const initialBeaconUpdate = JSON.parse( - ( + const initialBeaconUpdate = JSON.parse(( await execCommand("./scripts/bridge/setup-relayer.sh", { env: { RELAYCHAIN_ENDPOINT: "ws://127.0.0.1:9947", ...process.env, }, }) - ).stdout - ); + ).stdout); const tokenLocation: MultiLocation = { parents: 0, @@ -202,7 +202,7 @@ describeSuite({ it({ id: "T01", title: "Ethereum Blocks are being recognized on tanssi-relay", - test: async function () { + test: async () => { await waitSessions(context, relayApi, 1, null, "Tanssi-relay"); const firstFinalizedBlockRoot = ( await relayApi.query.ethereumBeaconClient.latestFinalizedBlockRoot() @@ -221,7 +221,7 @@ describeSuite({ it({ id: "T02", title: "Dancelight Blocks are being recognized on ethereum", - test: async function () { + test: async () => { const beefyContract = new ethers.Contract( beefyClientDetails.address, beefyClientDetails.abi, @@ -238,7 +238,7 @@ describeSuite({ it({ id: "T03", title: "Message can be passed from ethereum to Starlight", - test: async function () { + test: async () => { const externalValidatorsBefore = await relayApi.query.externalValidators.externalValidators(); const epoch = await middlewareContract.getCurrentEpoch(); @@ -295,7 +295,7 @@ describeSuite({ it({ id: "T04", title: "Operator produces blocks", - test: async function () { + test: async () => { // wait some time for the operator to be part of session validator await waitSessions( context, @@ -318,7 +318,7 @@ describeSuite({ for (let i = 0; i < 3 * blocksPerSession; ++i) { const latestBlockHash = await relayApi.rpc.chain.getBlockHash(); const author = (await relayApi.derive.chain.getHeader(latestBlockHash)).author; - if (author == operatorAccount.address) { + if (author.toString() === operatorAccount.address) { return; } await context.waitBlock(1, "Tanssi-relay"); @@ -330,7 +330,7 @@ describeSuite({ it({ id: "T05", title: "Rewards and slashes are being sent to symbiotic successfully", - test: async function () { + test: async () => { // Send slash event forcefully const activeEraInfo = (await relayApi.query.externalValidators.activeEra()).toJSON(); const currentExternalIndex = await relayApi.query.externalValidators.currentExternalIndex(); @@ -366,7 +366,7 @@ describeSuite({ // Get the reward event const rewardBlockEvents = await relayApiAtRewardEventBlock.query.system.events(); const filteredEventsForReward = rewardBlockEvents.filter((a) => { - return a.event.method == "RewardsMessageSent"; + return a.event.method === "RewardsMessageSent"; }); expect(filteredEventsForReward.length).to.be.equal(1); const rewardEvent = filteredEventsForReward[0]; @@ -377,7 +377,7 @@ describeSuite({ // Get the slash event const slashBlockEvents = await relayApiAtSlashEventBlock.query.system.events(); const filteredEventsForSlash = slashBlockEvents.filter((a) => { - return a.event.method == "SlashesMessageSent"; + return a.event.method === "SlashesMessageSent"; }); expect(filteredEventsForSlash.length).to.be.equal(1); const slashEvent = filteredEventsForSlash[0]; @@ -391,10 +391,10 @@ describeSuite({ let slashMessageSuccess = false; gatewayContract.on("InboundMessageDispatched", (_channelID, _nonce, messageID, success) => { - if (rewardMessageId == messageID) { + if (rewardMessageId === messageID) { rewardMessageReceived = true; rewardMessageSuccess = success; - } else if (slashMessageId == messageID) { + } else if (slashMessageId === messageID) { slashMessageReceived = true; slashMessageSuccess = success; } diff --git a/test/suites/zombie_tanssi_relay_unneeded_para/test_zombie_tanssi_relay_unneeded_para.ts b/test/suites/zombie_tanssi_relay_unneeded_para/test_zombie_tanssi_relay_unneeded_para.ts index 43b60b0de..03b576dac 100644 --- a/test/suites/zombie_tanssi_relay_unneeded_para/test_zombie_tanssi_relay_unneeded_para.ts +++ b/test/suites/zombie_tanssi_relay_unneeded_para/test_zombie_tanssi_relay_unneeded_para.ts @@ -2,16 +2,16 @@ import { beforeAll, describeSuite, expect } from "@moonwall/cli"; import { getHeaderFromRelay } from "../../util/relayInterface.ts"; import { customWeb3Request, generateKeyringPair, MIN_GAS_PRICE } from "@moonwall/util"; import { createTransfer, waitUntilEthTxIncluded } from "../../util/ethereum.ts"; -import { ApiPromise, Keyring } from "@polkadot/api"; -import fs from "fs/promises"; +import { type ApiPromise, Keyring } from "@polkadot/api"; +import fs from "node:fs/promises"; import { signAndSendAndInclude, waitSessions } from "../../util/block.ts"; -import { Signer } from "ethers"; +import type { Signer } from "ethers"; describeSuite({ - id: "ZRUP-01", + id: "ZOMBIETANSSIR01", title: "Zombie Tanssi Relay Unneeded Para Test", foundationMethods: "zombie", - testCases: function ({ it, context }) { + testCases: ({ it, context }) => { let relayApi: ApiPromise; let container2000Api: ApiPromise; let container2001Api: ApiPromise; @@ -56,7 +56,7 @@ describeSuite({ it({ id: "T01", title: "Blocks are being produced on tanssi-relay", - test: async function () { + test: async () => { const relayNetwork = relayApi.consts.system.version.specName.toString(); expect(relayNetwork, "Relay API incorrect").to.contain("dancelight"); const blockNum = (await relayApi.rpc.chain.getBlock()).block.header.number.toNumber(); @@ -67,7 +67,7 @@ describeSuite({ it({ id: "T02", title: "Set config params", - test: async function () { + test: async () => { const keyring = new Keyring({ type: "sr25519" }); const alice = keyring.addFromUri("//Alice", { name: "Alice default" }); @@ -83,7 +83,7 @@ describeSuite({ id: "T03", timeout: 600000, title: "Test assignation did not change", - test: async function () { + test: async () => { const currentSession = (await relayApi.query.session.currentIndex()).toNumber(); // TODO: fix once we have types const allCollators = ( @@ -101,7 +101,7 @@ describeSuite({ it({ id: "T04", title: "Blocks are being produced on container 2000", - test: async function () { + test: async () => { const blockNum = (await container2000Api.rpc.chain.getBlock()).block.header.number.toNumber(); expect(blockNum).to.be.greaterThan(0); }, @@ -110,7 +110,7 @@ describeSuite({ it({ id: "T05", title: "Blocks are being produced on container 2001", - test: async function () { + test: async () => { const blockNum = (await container2001Api.rpc.chain.getBlock()).block.header.number.toNumber(); expect(blockNum).to.be.greaterThan(0); @@ -121,7 +121,7 @@ describeSuite({ it({ id: "T06", title: "Test container chain 2000 assignation is correct", - test: async function () { + test: async () => { const currentSession = (await relayApi.query.session.currentIndex()).toNumber(); const paraId = (await container2000Api.query.parachainInfo.parachainId()).toString(); const containerChainCollators = ( @@ -138,7 +138,7 @@ describeSuite({ it({ id: "T07", title: "Test container chain 2001 assignation is correct", - test: async function () { + test: async () => { const currentSession = (await relayApi.query.session.currentIndex()).toNumber(); const paraId = (await container2001Api.query.parachainInfo.parachainId()).toString(); const containerChainCollators = ( @@ -155,7 +155,7 @@ describeSuite({ id: "T08", title: "Test author noting is correct for both containers", timeout: 60000, - test: async function () { + test: async () => { const assignment = await relayApi.query.tanssiCollatorAssignment.collatorContainerChain(); const paraId2000 = await container2000Api.query.parachainInfo.parachainId(); const paraId2001 = await container2001Api.query.parachainInfo.parachainId(); @@ -175,7 +175,7 @@ describeSuite({ it({ id: "T10", title: "Test frontier template isEthereum", - test: async function () { + test: async () => { // TODO: fix once we have types const genesisData2000 = await relayApi.query.containerRegistrar.paraGenesisData(2000); expect(genesisData2000.toJSON().properties.isEthereum).to.be.false; @@ -187,7 +187,7 @@ describeSuite({ id: "T11", title: "Transactions can be made with ethers", timeout: 30000, - test: async function () { + test: async () => { const randomAccount = generateKeyringPair(); const tx = await createTransfer(context, randomAccount.address, 1_000_000_000_000, { gasPrice: MIN_GAS_PRICE, @@ -206,7 +206,7 @@ describeSuite({ id: "T12a", title: "Set 0 credits for all chains", timeout: 60000, - test: async function () { + test: async () => { const keyring = new Keyring({ type: "sr25519" }); const alice = keyring.addFromUri("//Alice", { name: "Alice default" }); @@ -221,7 +221,7 @@ describeSuite({ const apiAt = await relayApi.at(blockHash); const events = await apiAt.query.system.events(); const ev1 = events.filter((a) => { - return a.event.method == "BatchCompleted"; + return a.event.method === "BatchCompleted"; }); expect(ev1.length).to.be.equal(1); }, @@ -231,7 +231,7 @@ describeSuite({ id: "T12b", title: "Wait 2 sessions", timeout: 300000, - test: async function () { + test: async () => { await waitSessions(context, relayApi, 2, null, "Tanssi-relay"); }, }); @@ -240,7 +240,7 @@ describeSuite({ id: "T12c", title: "Wait 2 sessions more", timeout: 300000, - test: async function () { + test: async () => { await waitSessions(context, relayApi, 2, null, "Tanssi-relay"); }, }); @@ -249,7 +249,7 @@ describeSuite({ id: "T13", title: "Collators have been unassigned", timeout: 180000, - test: async function () { + test: async () => { const currentSession = (await relayApi.query.session.currentIndex()).toNumber(); const containerChainCollators = ( await relayApi.query.tanssiAuthorityAssignment.collatorContainerChain(currentSession) @@ -264,7 +264,7 @@ describeSuite({ it({ id: "T14", title: "Manually check validator logs", - test: async function () { + test: async () => { // Need to do this manually: check relay chain logs. // Some validators should have this message: // 2024-11-27 15:04:30.423 DEBUG tokio-runtime-worker parachain::collator-protocol: Declared as collator for unneeded para. Current assignments: {} peer_id=PeerId("12D3KooWPJT4QoqgwDWJzHZHDL8iCgkjKzswTwWGcYHHfEjBEerv") collator_id=Public(8e6e0feedba7494a19662e3178bc66b6801716ee4c12e304c78fde02cc96941c (14DkVhzA...)) para_id=Id(2001) @@ -276,7 +276,7 @@ describeSuite({ it({ id: "T18", title: "Check validator logs", - test: async function () { + test: async () => { // This test will always fail as per comment above, even if the issue is fixed it can still happen right when collators get de-assigned const logs = ["/alice.log", "/bob.log", "/charlie.log", "/dave.log"]; diff --git a/test/suites/zombie_tanssi_rotation/test_zombie_tanssi_rotation.ts b/test/suites/zombie_tanssi_rotation/test_zombie_tanssi_rotation.ts index 7a9c35bb7..adb4f45b4 100644 --- a/test/suites/zombie_tanssi_rotation/test_zombie_tanssi_rotation.ts +++ b/test/suites/zombie_tanssi_rotation/test_zombie_tanssi_rotation.ts @@ -1,8 +1,8 @@ import { beforeAll, describeSuite, expect } from "@moonwall/cli"; import { MIN_GAS_PRICE, customWeb3Request, generateKeyringPair } from "@moonwall/util"; -import { ApiPromise, Keyring } from "@polkadot/api"; -import { Signer } from "ethers"; -import fs from "fs/promises"; +import { type ApiPromise, Keyring } from "@polkadot/api"; +import type { Signer } from "ethers"; +import fs from "node:fs/promises"; import { getAuthorFromDigest } from "../../util/author"; import { signAndSendAndInclude, waitToSession } from "../../util/block"; import { createTransfer, waitUntilEthTxIncluded } from "../../util/ethereum"; @@ -10,17 +10,17 @@ import { getKeyringNimbusIdHex } from "../../util/keys"; import { getHeaderFromRelay } from "../../util/relayInterface"; describeSuite({ - id: "R01", + id: "ZOMBIETANSSIRO01", title: "Zombie Tanssi Rotation Test", foundationMethods: "zombie", - testCases: function ({ it, context }) { + testCases: ({ it, context }) => { let paraApi: ApiPromise; let relayApi: ApiPromise; let container2000Api: ApiPromise; let container2001Api: ApiPromise; let ethersSigner: Signer; - let assignment3; - let assignment5; + let assignment3: any; + let assignment5: any; let allCollators: string[]; let collatorName: Record; let containerDbPaths: string[]; @@ -81,7 +81,7 @@ describeSuite({ it({ id: "T01", title: "Blocks are being produced on parachain", - test: async function () { + test: async () => { const blockNum = (await paraApi.rpc.chain.getBlock()).block.header.number.toNumber(); expect(blockNum).to.be.greaterThan(0); }, @@ -91,7 +91,7 @@ describeSuite({ id: "T02", title: "Set 1 collator per parachain, and full_rotation every 5 sessions", timeout: 120000, - test: async function () { + test: async () => { const keyring = new Keyring({ type: "sr25519" }); const alice = keyring.addFromUri("//Alice", { name: "Alice default" }); @@ -107,7 +107,7 @@ describeSuite({ it({ id: "T03", title: "Test assignation did not change", - test: async function () { + test: async () => { const currentSession = (await paraApi.query.session.currentIndex()).toNumber(); // TODO: fix once we have types const allCollators = ( @@ -133,7 +133,7 @@ describeSuite({ it({ id: "T04", title: "Blocks are being produced on container 2000", - test: async function () { + test: async () => { const blockNum = (await container2000Api.rpc.chain.getBlock()).block.header.number.toNumber(); expect(blockNum).to.be.greaterThan(0); }, @@ -142,7 +142,7 @@ describeSuite({ it({ id: "T05", title: "Blocks are being produced on container 2001", - test: async function () { + test: async () => { const blockNum = (await container2001Api.rpc.chain.getBlock()).block.header.number.toNumber(); expect(blockNum).to.be.greaterThan(0); @@ -153,7 +153,7 @@ describeSuite({ it({ id: "T06", title: "Test container chain 2000 assignation is correct", - test: async function () { + test: async () => { const currentSession = (await paraApi.query.session.currentIndex()).toNumber(); const paraId = (await container2000Api.query.parachainInfo.parachainId()).toString(); const containerChainCollators = ( @@ -170,7 +170,7 @@ describeSuite({ it({ id: "T07", title: "Test container chain 2001 assignation is correct", - test: async function () { + test: async () => { const currentSession = (await paraApi.query.session.currentIndex()).toNumber(); const paraId = (await container2001Api.query.parachainInfo.parachainId()).toString(); const containerChainCollators = ( @@ -187,7 +187,7 @@ describeSuite({ id: "T08", title: "Test author noting is correct for both containers", timeout: 120000, - test: async function () { + test: async () => { const assignment = await paraApi.query.collatorAssignment.collatorContainerChain(); const paraId2000 = await container2000Api.query.parachainInfo.parachainId(); const paraId2001 = await container2001Api.query.parachainInfo.parachainId(); @@ -208,7 +208,7 @@ describeSuite({ it({ id: "T09", title: "Test author is correct in Orchestrator", - test: async function () { + test: async () => { const sessionIndex = (await paraApi.query.session.currentIndex()).toNumber(); const authorities = await paraApi.query.authorityAssignment.collatorContainerChain(sessionIndex); const author = await getAuthorFromDigest(paraApi); @@ -220,7 +220,7 @@ describeSuite({ it({ id: "T10", title: "Test frontier template isEthereum", - test: async function () { + test: async () => { // TODO: fix once we have types const genesisData2000 = await paraApi.query.registrar.paraGenesisData(2000); expect(genesisData2000.toJSON().properties.isEthereum).to.be.false; @@ -232,7 +232,7 @@ describeSuite({ id: "T11", title: "Transactions can be made with ethers", timeout: 120000, - test: async function () { + test: async () => { const randomAccount = generateKeyringPair(); const tx = await createTransfer(context, randomAccount.address, 1_000_000_000_000, { gasPrice: MIN_GAS_PRICE, @@ -250,7 +250,7 @@ describeSuite({ id: "T12", title: "On session 3 we have 1 collator per chain", timeout: 240000, - test: async function () { + test: async () => { await waitToSession(context, paraApi, 3); // The node detects assignment when the block is finalized, but "waitSessions" ignores finality. @@ -270,7 +270,7 @@ describeSuite({ id: "T13", title: "On session 4 collators start syncing the new chains", timeout: 240000, - test: async function () { + test: async () => { await waitToSession(context, paraApi, 4); // The node detects assignment when the block is finalized, but "waitSessions" ignores finality. @@ -290,12 +290,8 @@ describeSuite({ // First, check that nodes are still running in their previously assigned chain const oldC2000 = collatorName[assignment3.containerChains[2000][0]]; const oldC2001 = collatorName[assignment3.containerChains[2001][0]]; - const oldContainer2000DbPath = - getTmpZombiePath() + - `/${oldC2000}/data/containers/chains/simple_container_2000/paritydb/full-container-2000`; - const oldContainer2001DbPath = - getTmpZombiePath() + - `/${oldC2001}/data/containers/chains/frontier_container_2001/paritydb/full-container-2001`; + const oldContainer2000DbPath = `${getTmpZombiePath()}/${oldC2000}/data/containers/chains/simple_container_2000/paritydb/full-container-2000`; + const oldContainer2001DbPath = `${getTmpZombiePath()}/${oldC2001}/data/containers/chains/frontier_container_2001/paritydb/full-container-2001`; expect(await directoryExists(oldContainer2000DbPath)).to.be.true; expect(await directoryExists(oldContainer2001DbPath)).to.be.true; @@ -309,12 +305,8 @@ describeSuite({ // Verify that collators have container chain running by looking at db path, // and unassignedCollators should not have any db path - const container2000DbPath = - getTmpZombiePath() + - `/${c2000}/data/containers/chains/simple_container_2000/paritydb/full-container-2000`; - const container2001DbPath = - getTmpZombiePath() + - `/${c2001}/data/containers/chains/frontier_container_2001/paritydb/full-container-2001`; + const container2000DbPath = `${getTmpZombiePath()}/${c2000}/data/containers/chains/simple_container_2000/paritydb/full-container-2000`; + const container2001DbPath = `${getTmpZombiePath()}/${c2001}/data/containers/chains/frontier_container_2001/paritydb/full-container-2001`; expect(await directoryExists(container2000DbPath)).to.be.true; expect(await directoryExists(container2001DbPath)).to.be.true; @@ -325,7 +317,7 @@ describeSuite({ id: "T14", title: "On session 5 collators stop the previously assigned chains", timeout: 240000, - test: async function () { + test: async () => { await waitToSession(context, paraApi, 5); const assignment = await paraApi.query.collatorAssignment.collatorContainerChain(); expect(assignment.toJSON()).to.deep.equal(assignment5); @@ -340,17 +332,13 @@ describeSuite({ const oldC2001 = collatorName[assignment3.containerChains[2001][0]]; const c2000 = collatorName[assignment5.containerChains[2000][0]]; const c2001 = collatorName[assignment5.containerChains[2001][0]]; - const oldContainer2000DbPath = - getTmpZombiePath() + - `/${oldC2000}/data/containers/chains/simple_container_2000/paritydb/full-container-2000`; - const oldContainer2001DbPath = - getTmpZombiePath() + - `/${oldC2001}/data/containers/chains/frontier_container_2001/paritydb/full-container-2001`; + const oldContainer2000DbPath = `${getTmpZombiePath()}/${oldC2000}/data/containers/chains/simple_container_2000/paritydb/full-container-2000`; + const oldContainer2001DbPath = `${getTmpZombiePath()}/${oldC2001}/data/containers/chains/frontier_container_2001/paritydb/full-container-2001`; // Edge case: collators may be assigned to the same chain, in that case the directory will still exist - if (oldC2000 != c2000) { + if (oldC2000 !== c2000) { expect(await directoryExists(oldContainer2000DbPath)).to.be.false; } - if (oldC2001 != c2001) { + if (oldC2001 !== c2001) { expect(await directoryExists(oldContainer2001DbPath)).to.be.false; } @@ -359,12 +347,8 @@ describeSuite({ // Verify that collators have container chain running by looking at db path, // and unassignedCollators should not have any db path - const container2000DbPath = - getTmpZombiePath() + - `/${c2000}/data/containers/chains/simple_container_2000/paritydb/full-container-2000`; - const container2001DbPath = - getTmpZombiePath() + - `/${c2001}/data/containers/chains/frontier_container_2001/paritydb/full-container-2001`; + const container2000DbPath = `${getTmpZombiePath()}/${c2000}/data/containers/chains/simple_container_2000/paritydb/full-container-2000`; + const container2001DbPath = `${getTmpZombiePath()}/${c2001}/data/containers/chains/frontier_container_2001/paritydb/full-container-2001`; expect(await directoryExists(container2000DbPath)).to.be.true; expect(await directoryExists(container2001DbPath)).to.be.true; await ensureContainerDbPathsDontExist(unassignedCollators, containerDbPaths); @@ -374,7 +358,7 @@ describeSuite({ it({ id: "T15", title: "Blocks are being produced on container 2000", - test: async function () { + test: async () => { await context.waitBlock(1, "Container2000"); }, }); @@ -382,7 +366,7 @@ describeSuite({ it({ id: "T16", title: "Blocks are being produced on container 2001", - test: async function () { + test: async () => { await context.waitBlock(1, "Container2001"); }, }); @@ -408,7 +392,7 @@ function getTmpZombiePath() { async function ensureContainerDbPathsDontExist(collators: string[], pathsToVerify: string[]) { for (const collator of collators) { for (const path of pathsToVerify) { - const fullPath = getTmpZombiePath() + `/${collator}${path}`; + const fullPath = `${getTmpZombiePath()}/${collator}${path}`; expect(await directoryExists(fullPath), `Container DB path exists for ${collator}: ${fullPath}`).to.be .false; } diff --git a/test/suites/zombie_tanssi_warp_sync/test_zombie_tanssi_warp_sync.ts b/test/suites/zombie_tanssi_warp_sync/test_zombie_tanssi_warp_sync.ts index bd71e2116..4df344b56 100644 --- a/test/suites/zombie_tanssi_warp_sync/test_zombie_tanssi_warp_sync.ts +++ b/test/suites/zombie_tanssi_warp_sync/test_zombie_tanssi_warp_sync.ts @@ -1,18 +1,18 @@ import { beforeAll, describeSuite, expect } from "@moonwall/cli"; -import { ApiPromise, Keyring } from "@polkadot/api"; +import { type ApiPromise, Keyring } from "@polkadot/api"; import { u8aToHex, stringToHex } from "@polkadot/util"; import { decodeAddress } from "@polkadot/util-crypto"; import { getAuthorFromDigest } from "../../util/author"; import { signAndSendAndInclude, waitSessions } from "../../util/block"; import { getKeyringNimbusIdHex } from "../../util/keys"; import { getHeaderFromRelay } from "../../util/relayInterface"; -import fs from "fs/promises"; +import fs from "node:fs/promises"; describeSuite({ - id: "W01", + id: "ZOMBIETANSSIW01", title: "Zombie Tanssi Warp Sync Test", foundationMethods: "zombie", - testCases: function ({ it, context }) { + testCases: ({ it, context }) => { let paraApi: ApiPromise; let relayApi: ApiPromise; let container2000Api: ApiPromise; @@ -44,7 +44,7 @@ describeSuite({ it({ id: "T01", title: "Blocks are being produced on parachain", - test: async function () { + test: async () => { const blockNum = (await paraApi.rpc.chain.getBlock()).block.header.number.toNumber(); expect(blockNum).to.be.greaterThan(0); }, @@ -53,7 +53,7 @@ describeSuite({ it({ id: "T03", title: "Test assignation did not change", - test: async function () { + test: async () => { const currentSession = (await paraApi.query.session.currentIndex()).toNumber(); // TODO: fix once we have types const allCollators = ( @@ -77,7 +77,7 @@ describeSuite({ it({ id: "T04", title: "Blocks are being produced on container 2000", - test: async function () { + test: async () => { const blockNum = (await container2000Api.rpc.chain.getBlock()).block.header.number.toNumber(); expect(blockNum).to.be.greaterThan(0); }, @@ -86,7 +86,7 @@ describeSuite({ it({ id: "T06", title: "Test container chain 2000 assignation is correct", - test: async function () { + test: async () => { const currentSession = (await paraApi.query.session.currentIndex()).toNumber(); const paraId = (await container2000Api.query.parachainInfo.parachainId()).toString(); const containerChainCollators = ( @@ -104,7 +104,7 @@ describeSuite({ id: "T08", title: "Test author noting is correct for both containers", timeout: 60000, - test: async function () { + test: async () => { const assignment = await paraApi.query.collatorAssignment.collatorContainerChain(); const paraId2000 = await container2000Api.query.parachainInfo.parachainId(); @@ -121,7 +121,7 @@ describeSuite({ it({ id: "T09", title: "Test author is correct in Orchestrator", - test: async function () { + test: async () => { const sessionIndex = (await paraApi.query.session.currentIndex()).toNumber(); const authorities = await paraApi.query.authorityAssignment.collatorContainerChain(sessionIndex); const author = await getAuthorFromDigest(paraApi); @@ -133,7 +133,7 @@ describeSuite({ it({ id: "T10", title: "Test frontier template isEthereum", - test: async function () { + test: async () => { // TODO: fix once we have types const genesisData2000 = await paraApi.query.registrar.paraGenesisData(2000); expect(genesisData2000.toJSON().properties.isEthereum).to.be.false; @@ -144,17 +144,13 @@ describeSuite({ id: "T12", title: "Test warp sync: collator rotation from tanssi to container with blocks", timeout: 300000, - test: async function () { + test: async () => { const keyring = new Keyring({ type: "sr25519" }); const alice = keyring.addFromUri("//Alice", { name: "Alice default" }); // Collator2000-02 should have a container 2000 db, and Collator1000-03 should not - const collator100003DbPath = - getTmpZombiePath() + - "/Collator1000-03/data/containers/chains/simple_container_2000/paritydb/full-container-2000"; - const container200002DbPath = - getTmpZombiePath() + - "/Collator2000-02/data/containers/chains/simple_container_2000/paritydb/full-container-2000"; + const collator100003DbPath = `${getTmpZombiePath()}/Collator1000-03/data/containers/chains/simple_container_2000/paritydb/full-container-2000`; + const container200002DbPath = `${getTmpZombiePath()}/Collator2000-02/data/containers/chains/simple_container_2000/paritydb/full-container-2000`; expect(await directoryExists(container200002DbPath)).to.be.true; expect(await directoryExists(collator100003DbPath)).to.be.false; @@ -162,7 +158,7 @@ describeSuite({ const invuln = (await paraApi.query.invulnerables.invulnerables()).toJSON(); const invulnerable_to_remove = invuln.filter((addr) => { - return u8aToHex(decodeAddress(addr)) == getKeyringNimbusIdHex("Collator2000-02"); + return u8aToHex(decodeAddress(addr)) === getKeyringNimbusIdHex("Collator2000-02"); })[0]; const tx = paraApi.tx.invulnerables.removeInvulnerable(invulnerable_to_remove); @@ -177,7 +173,7 @@ describeSuite({ await paraApi.query.authorityAssignment.collatorContainerChain(currentSession) ).toJSON(); // Stop waiting if orchestrator chain has 2 collators instead of 3 - return allCollators.orchestratorChain.length == 2; + return allCollators.orchestratorChain.length === 2; }); // Collator1000-03 should rotate to container chain 2000 @@ -215,7 +211,7 @@ describeSuite({ id: "T13", title: "Collator1000-03 is producing blocks on Container 2000", timeout: 300000, - test: async function () { + test: async () => { const blockStart = (await container2000Api.rpc.chain.getBlock()).block.header.number.toNumber() - 3; // Wait up to 8 blocks, giving the new collator 4 chances to build a block const blockEnd = blockStart + 8; @@ -227,15 +223,15 @@ describeSuite({ const apiAt = await container2000Api.at(blockHash); const digests = (await apiAt.query.system.digest()).logs; const filtered = digests.filter( - (log) => log.isPreRuntime === true && log.asPreRuntime[0].toHex() == stringToHex("nmbs") + (log) => log.isPreRuntime === true && log.asPreRuntime[0].toHex() === stringToHex("nmbs") ); const author = filtered[0].asPreRuntime[1].toHex(); authors.push(author); - if (author == getKeyringNimbusIdHex("Collator1000-03")) { + if (author === getKeyringNimbusIdHex("Collator1000-03")) { break; } const currentBlock = (await container2000Api.rpc.chain.getBlock()).block.header.number.toNumber(); - if (currentBlock == blockNumber) { + if (currentBlock === blockNumber) { await context.waitBlock(1, "Container2000"); } } @@ -248,10 +244,10 @@ describeSuite({ id: "T14", title: "Check Collator1000-03.log to ensure it used warp sync", timeout: 300000, - test: async function () { + test: async () => { // Use collator logs to ensure that it used warp sync to first the first time. // Not ideal because logs can change, but better than nothing. - const logFilePath = getTmpZombiePath() + "/Collator1000-03.log"; + const logFilePath = `${getTmpZombiePath()}/Collator1000-03.log`; await checkLogs(logFilePath, [ "[Orchestrator] Detected assignment for container chain 2000", "[Orchestrator] Loaded chain spec for container chain 2000", @@ -270,8 +266,8 @@ describeSuite({ id: "T15", title: "Check Collator2000-02.log to ensure shutdown error bug is fixed", timeout: 300000, - test: async function () { - const logFilePath = getTmpZombiePath() + "/Collator2000-02.log"; + test: async () => { + const logFilePath = `${getTmpZombiePath()}/Collator2000-02.log`; await checkLogsNotExist(logFilePath, [ "Entering off-chain worker.", "Shutdown error", diff --git a/test/util/author.ts b/test/util/author.ts index e69a12e3c..9aa5ffe70 100644 --- a/test/util/author.ts +++ b/test/util/author.ts @@ -1,11 +1,11 @@ -import { ApiPromise } from "@moonwall/cli"; +import type { ApiPromise } from "@moonwall/cli"; import { stringToHex } from "@polkadot/util"; export async function getAuthorFromDigest(paraApi: ApiPromise): Promise { // Get the latest author from Digest const digests = (await paraApi.query.system.digest()).logs; const filtered = digests.filter( - (log) => log.isPreRuntime === true && log.asPreRuntime[0].toHex() == stringToHex("nmbs") + (log) => log.isPreRuntime === true && log.asPreRuntime[0].toHex() === stringToHex("nmbs") ); return filtered[0].asPreRuntime[1].toHex(); } @@ -24,7 +24,7 @@ export async function getAuthorFromDigestRange( const apiAt = await paraApi.at(blockHash); const digests = (await apiAt.query.system.digest()).logs; const filtered = digests.filter( - (log) => log.isPreRuntime === true && log.asPreRuntime[0].toHex() == stringToHex("nmbs") + (log) => log.isPreRuntime === true && log.asPreRuntime[0].toHex() === stringToHex("nmbs") ); const author = filtered[0].asPreRuntime[1].toHex(); authors.push([blockNumber, author]); diff --git a/test/util/block.ts b/test/util/block.ts index c9cc720ed..5cff33799 100644 --- a/test/util/block.ts +++ b/test/util/block.ts @@ -1,9 +1,9 @@ -import { DevModeContext, expect, ZombieContext } from "@moonwall/cli"; +import { type DevModeContext, expect, type ZombieContext } from "@moonwall/cli"; import { filterAndApply } from "@moonwall/util"; -import { ApiPromise } from "@polkadot/api"; -import { AccountId32, EventRecord } from "@polkadot/types/interfaces"; -import { Vec, u8, u32, bool } from "@polkadot/types-codec"; +import type { ApiPromise } from "@polkadot/api"; +import type { AccountId32, EventRecord, ParaId } from "@polkadot/types/interfaces"; +import type { Vec, u8, u32, bool, u128 } from "@polkadot/types-codec"; import { TypeRegistry } from "@polkadot/types"; export async function jumpSessions(context: DevModeContext, count: number): Promise { @@ -18,7 +18,8 @@ export async function jumpToSession(context: DevModeContext, session: number): P const currentSession = (await context.polkadotJs().query.session.currentIndex()).toNumber(); if (currentSession === session) { return lastBlockHash; - } else if (currentSession > session) { + } + if (currentSession > session) { return null; } @@ -27,9 +28,10 @@ export async function jumpToSession(context: DevModeContext, session: number): P } export async function jumpBlocks(context: DevModeContext, blockCount: number) { - while (blockCount > 0) { + let count = blockCount; + while (count > 0) { await context.createBlock(); - blockCount--; + count--; } } @@ -71,7 +73,8 @@ export async function waitToSession( if (currentSession === session) { const signedBlock = await paraApi.rpc.chain.getBlock(); return signedBlock.block.header.hash.toString(); - } else if (currentSession > session) { + } + if (currentSession > session) { return null; } @@ -79,7 +82,7 @@ export async function waitToSession( } } -export function extractFeeAuthor(events: EventRecord[] = [], feePayer: string) { +export function extractFeeAuthor(events: EventRecord[], feePayer: string) { const filtered = filterAndApply( events, "balances", @@ -90,7 +93,7 @@ export function extractFeeAuthor(events: EventRecord[] = [], feePayer: string) { return extractFeeFromAuthor[0]; } -export function fetchRewardAuthorOrchestrator(events: EventRecord[] = []) { +export function fetchRewardAuthorOrchestrator(events: EventRecord[]) { const filtered = filterAndApply( events, "inflationRewards", @@ -101,7 +104,7 @@ export function fetchRewardAuthorOrchestrator(events: EventRecord[] = []) { return filtered[0]; } -export function filterRewardStakingCollator(events: EventRecord[] = [], author: string) { +export function filterRewardStakingCollator(events: EventRecord[], author: string) { const stakignRewardEvents = fetchRewardStakingCollators(events); for (const index in stakignRewardEvents) { if (stakignRewardEvents[index].collator.toString() === author) { @@ -118,7 +121,7 @@ export function filterRewardStakingCollator(events: EventRecord[] = [], author: }; } -export function filterRewardStakingDelegators(events: EventRecord[] = [], author: string) { +export function filterRewardStakingDelegators(events: EventRecord[], author: string) { const stakignRewardEvents = fetchRewardStakingDelegators(events); for (const index in stakignRewardEvents) { if (stakignRewardEvents[index].collator.toString() === author) { @@ -135,7 +138,7 @@ export function filterRewardStakingDelegators(events: EventRecord[] = [], author }; } -export function fetchRewardStakingDelegators(events: EventRecord[] = []) { +export function fetchRewardStakingDelegators(events: EventRecord[]) { const filtered = filterAndApply( events, "pooledStaking", @@ -147,7 +150,7 @@ export function fetchRewardStakingDelegators(events: EventRecord[] = []) { return filtered; } -export function fetchRewardStakingCollators(events: EventRecord[] = []) { +export function fetchRewardStakingCollators(events: EventRecord[]) { const filtered = filterAndApply( events, "pooledStaking", @@ -159,7 +162,7 @@ export function fetchRewardStakingCollators(events: EventRecord[] = []) { return filtered; } -export function fetchRewardAuthorContainers(events: EventRecord[] = []) { +export function fetchRewardAuthorContainers(events: EventRecord[]) { const filtered = filterAndApply( events, "inflationRewards", @@ -170,7 +173,7 @@ export function fetchRewardAuthorContainers(events: EventRecord[] = []) { return filtered; } -export function fetchRandomnessEvent(events: EventRecord[] = []) { +export function fetchRandomnessEvent(events: EventRecord[]) { const filtered = filterAndApply( events, "collatorAssignment", @@ -182,7 +185,7 @@ export function fetchRandomnessEvent(events: EventRecord[] = []) { return filtered[0]; } -export function fetchIssuance(events: EventRecord[] = []) { +export function fetchIssuance(events: EventRecord[]) { const filtered = filterAndApply( events, "balances", @@ -190,13 +193,13 @@ export function fetchIssuance(events: EventRecord[] = []) { ({ event }: EventRecord) => event.data as unknown as { amount: u128 } ); - if (filtered.length == 0) { + if (filtered.length === 0) { return { amount: new TypeRegistry().createType("u128", 0) }; } return filtered[0]; } -export function fetchWithdrawnAmount(events: EventRecord[] = []) { +export function fetchWithdrawnAmount(events: EventRecord[]) { let withdrawnAmount = 0n; const filtered = filterAndApply( events, @@ -211,7 +214,7 @@ export function fetchWithdrawnAmount(events: EventRecord[] = []) { return withdrawnAmount; } -export function fetchDepositedAmount(events: EventRecord[] = []) { +export function fetchDepositedAmount(events: EventRecord[]) { let depositAmount = 0n; const filtered = filterAndApply( events, @@ -226,7 +229,7 @@ export function fetchDepositedAmount(events: EventRecord[] = []) { return depositAmount; } -export function fetchCollatorAssignmentTip(events: EventRecord[] = []) { +export function fetchCollatorAssignmentTip(events: EventRecord[]) { const filtered = filterAndApply( events, "servicesPayment", @@ -237,9 +240,9 @@ export function fetchCollatorAssignmentTip(events: EventRecord[] = []) { return filtered[0]; } -export function filterRewardFromOrchestratorWithFailure(events: EventRecord[] = [], author: string) { +export function filterRewardFromOrchestratorWithFailure(events: EventRecord[], author: string) { const reward = fetchRewardAuthorOrchestrator(events); - expect(reward, `orchestrator rewards event not found`).not.toBe(undefined); + expect(reward, "orchestrator rewards event not found").not.toBe(undefined); expect( reward.accountId.toString() === author, `orchestrator author ${reward.accountId.toString()} does not match expected author ${author}` @@ -247,16 +250,15 @@ export function filterRewardFromOrchestratorWithFailure(events: EventRecord[] = return reward.balance.toBigInt(); } -export function filterRewardFromOrchestrator(events: EventRecord[] = [], author: string) { +export function filterRewardFromOrchestrator(events: EventRecord[], author: string) { const reward = fetchRewardAuthorOrchestrator(events); if (reward === undefined || reward.accountId.toString() !== author) { return 0n; - } else { - return reward.balance.toBigInt(); } + return reward.balance.toBigInt(); } -export function filterRewardFromContainer(events: EventRecord[] = [], feePayer: string, paraId: ParaId) { +export function filterRewardFromContainer(events: EventRecord[], feePayer: string, paraId: ParaId) { const rewardEvents = fetchRewardAuthorContainers(events); for (const index in rewardEvents) { if ( @@ -282,11 +284,7 @@ export function filterRewardFromContainer(events: EventRecord[] = [], feePayer: // @param account - The account (keypair or address) used to sign the transaction. // @param timeout - The timeout in milliseconds, or null for no timeout. Defaults to 5 minutes. // @returns A Promise resolving with the transaction hash, block hash, and the full status object. -export async function signAndSendAndInclude( - tx, - account, - timeout: number | null = 3 * 60 * 1000 -): Promise<{ txHash; blockHash; status }> { +export async function signAndSendAndInclude(tx, account, timeout: number | null = 3 * 60 * 1000) { // Inner function that doesn't handle timeout const signAndSendAndIncludeInner = (tx, account) => { return new Promise((resolve, reject) => { @@ -340,19 +338,19 @@ export function initializeCustomCreateBlock(context): any { const createBlockAndCheckExtrinsics = async (tx, opt) => { if (tx === undefined) { return await originalCreateBlock(tx, opt); - } else { - const res = await originalCreateBlock(tx, opt); - // Ensure that all the extrinsics have been included - const txs = Array.isArray(tx) ? tx : [tx]; - const expectedTxHashes = txs.map((x) => x.hash.toString()); - const block = await context.polkadotJs().rpc.chain.getBlock(res.block.hash); - const includedTxHashes = block.block.extrinsics.map((x) => x.hash.toString()); - // Note, the block may include some additional extrinsics - expectedTxHashes.forEach((a) => { - expect(includedTxHashes).toContain(a); - }); - return res; } + const res = await originalCreateBlock(tx, opt); + // Ensure that all the extrinsics have been included + const txs = Array.isArray(tx) ? tx : [tx]; + const expectedTxHashes = txs.map((x) => x.hash.toString()); + const block = await context.polkadotJs().rpc.chain.getBlock(res.block.hash); + const includedTxHashes = block.block.extrinsics.map((x) => x.hash.toString()); + // Note, the block may include some additional extrinsics + + for (const a of expectedTxHashes) { + expect(includedTxHashes).toContain(a); + } + return res; }; context.createBlock = createBlockAndCheckExtrinsics; context.hasModifiedCreateBlockThatChecksExtrinsics = true; @@ -369,7 +367,7 @@ export async function fetchStorageProofFromValidationData(polkadotJs) { const { method: { method, section }, } = ex; - return section == "parachainSystem" && method == "setValidationData"; + return section === "parachainSystem" && method === "setValidationData"; }); // Error handling if not found if (!ex) { @@ -395,16 +393,17 @@ export async function isEventEmittedInTheNextBlocks( chainName: string, eventName: string ) { - while (blockCount > 0) { + let count = blockCount; + while (count > 0) { await context.waitBlock(1, chainName); const currentBlockEvents = await api.query.system.events(); const filteredEvents = currentBlockEvents.filter((a) => { - return a.event.method == eventName; + return a.event.method === eventName; }); if (filteredEvents.length > 0) { return true; } - blockCount--; + count--; } return false; } diff --git a/test/util/ethereum-contracts.ts b/test/util/ethereum-contracts.ts index c0a4493e3..0648f4f3d 100644 --- a/test/util/ethereum-contracts.ts +++ b/test/util/ethereum-contracts.ts @@ -1,9 +1,9 @@ -import Web3 from "web3"; -import fs from "fs"; -import path from "path"; -import { TransactionReceipt } from "web3-core"; -import { Contract } from "web3-eth-contract"; -import { AbiItem } from "web3-utils"; +import type Web3 from "web3"; +import fs from "node:fs"; +import path from "node:path"; +import type { TransactionReceipt } from "web3-core"; +import type { Contract } from "web3-eth-contract"; +import type { AbiItem } from "web3-utils"; import { ALITH_PRIVATE_KEY, alith } from "@moonwall/util"; import { customWeb3Request } from "@moonwall/util"; @@ -14,7 +14,7 @@ export interface Compiled { } export function getAllContracts(): string[] { - const contractsPath = path.join(__dirname, `../helpers/compiled/`); + const contractsPath = path.join(__dirname, "../helpers/compiled/"); const contracts = fs.readdirSync(contractsPath, { withFileTypes: true }); // Register all the contract code return contracts.filter((dirent) => dirent.isFile()).map((contract) => path.basename(contract.name, ".json")); diff --git a/test/util/ethereum.ts b/test/util/ethereum.ts index 06f256fcf..f10fcf371 100644 --- a/test/util/ethereum.ts +++ b/test/util/ethereum.ts @@ -1,7 +1,7 @@ -import { DevModeContext, EthTransactionType, MoonwallContext } from "@moonwall/cli"; -import { ALITH_PRIVATE_KEY, TransactionOptions, alith, customWeb3Request } from "@moonwall/util"; -import { ethers } from "ethers"; -import { FMT_BYTES, FMT_NUMBER } from "web3"; +import { type DevModeContext, type EthTransactionType, MoonwallContext } from "@moonwall/cli"; +import { ALITH_PRIVATE_KEY, type TransactionOptions, alith, customWeb3Request } from "@moonwall/util"; +import { type AccessList, ethers } from "ethers"; +import { FMT_BYTES, FMT_NUMBER, type Transaction } from "web3"; import Debug from "debug"; import { fromHex } from "viem"; @@ -12,47 +12,43 @@ export const createTransaction = async ( options: TransactionOptions, txType?: EthTransactionType ): Promise => { - const defaultTxnStyle = (await MoonwallContext.getContext())!.defaultEthTxnStyle; - - const isLegacy = txType ? txType === "Legacy" : defaultTxnStyle ? defaultTxnStyle === "Legacy" : true; - - const isEip2930 = txType ? txType === "EIP2930" : defaultTxnStyle ? defaultTxnStyle === "EIP2930" : true; - - const isEip1559 = txType ? txType === "EIP1559" : defaultTxnStyle ? defaultTxnStyle === "EIP1559" : true; - + console.dir(options); + const isLegacy = txType === "legacy"; + const isEip2930 = txType === "eip2930"; + const isEip1559 = txType === "eip1559"; // a transaction shouldn't have both Legacy and EIP1559 fields if (options.gasPrice && options.maxFeePerGas) { - throw new Error(`txn has both gasPrice and maxFeePerGas!`); + throw new Error("txn has both gasPrice and maxFeePerGas!"); } if (options.gasPrice && options.maxPriorityFeePerGas) { - throw new Error(`txn has both gasPrice and maxPriorityFeePerGas!`); + throw new Error("txn has both gasPrice and maxPriorityFeePerGas!"); } // convert any bigints to hex if (typeof options.gasPrice === "bigint") { - options.gasPrice = "0x" + options.gasPrice.toString(16); + options.gasPrice = `0x${options.gasPrice.toString(16)}`; } if (typeof options.maxFeePerGas === "bigint") { - options.maxFeePerGas = "0x" + options.maxFeePerGas.toString(16); + options.maxFeePerGas = `0x${options.maxFeePerGas.toString(16)}`; } if (typeof options.maxPriorityFeePerGas === "bigint") { - options.maxPriorityFeePerGas = "0x" + options.maxPriorityFeePerGas.toString(16); + options.maxPriorityFeePerGas = `0x${options.maxPriorityFeePerGas.toString(16)}`; } - let maxFeePerGas; - let maxPriorityFeePerGas; + let maxFeePerGas: bigint; + let maxPriorityFeePerGas: bigint; if (options.gasPrice) { - maxFeePerGas = options.gasPrice; - maxPriorityFeePerGas = options.gasPrice; + maxFeePerGas = BigInt(options.gasPrice); + maxPriorityFeePerGas = BigInt(options.gasPrice); } else { - maxFeePerGas = options.maxFeePerGas || (await context.ethers().provider?.getFeeData())!.gasPrice; - maxPriorityFeePerGas = options.maxPriorityFeePerGas || 0; + maxFeePerGas = BigInt(options.maxFeePerGas) || (await context.ethers().provider.getFeeData()).gasPrice; + maxPriorityFeePerGas = BigInt(options.maxPriorityFeePerGas || 0); } const gasPrice = options.gasPrice !== undefined ? options.gasPrice - : "0x" + (await context.web3().eth.getGasPrice({ number: FMT_NUMBER.HEX, bytes: FMT_BYTES.HEX })); + : `0x${await context.web3().eth.getGasPrice({ number: FMT_NUMBER.HEX, bytes: FMT_BYTES.HEX })}`; const value = options.value !== undefined ? options.value : "0x00"; const from = options.from || alith.address; const privateKey = options.privateKey !== undefined ? options.privateKey : ALITH_PRIVATE_KEY; @@ -82,15 +78,17 @@ export const createTransaction = async ( const nonce = options.nonce != null ? options.nonce : await context.web3().eth.getTransactionCount(from, "pending"); // : await context.ethers().provider!.getTransactionCount(from, "pending"); - let data, rawTransaction; - const provider = context.ethers().provider!; + let data: Transaction; + let rawTransaction: string; + const provider = context.ethers().provider; + // const provider = context.web3().provider // const newSigner = new ethers.Wallet(privateKey, provider); if (isLegacy) { data = { from, to: options.to, - value: value && value.toString(), + value: value?.toString(), gasPrice, gas, nonce: nonce, @@ -98,40 +96,36 @@ export const createTransaction = async ( }; // rawTransaction = await newSigner.signTransaction(data); // rawTransaction = await context.web3().eth.signTransaction(data); - const tx = await context.web3().eth.accounts.signTransaction(data as any, privateKey); + const tx = await context.web3().eth.accounts.signTransaction(data, privateKey); rawTransaction = tx.rawTransaction; } else { - const signer = new ethers.Wallet(privateKey, context.ethers().provider!); + const signer = new ethers.Wallet(privateKey, context.ethers().provider); const chainId = (await provider.getNetwork()).chainId; // const chainId = await context.web3().eth.getChainId() if (isEip2930) { data = { from, to: options.to, - value: value && value.toString(), + value: value?.toString(), gasPrice, gasLimit: gas, nonce: nonce, data: options.data, - accessList, + accessList: accessList as AccessList, chainId, type: 1, }; } else { - if (!isEip1559) { - throw new Error("Unknown transaction type!"); - } - data = { from, to: options.to, - value: value && value.toString(), + value: value?.toString(), maxFeePerGas, maxPriorityFeePerGas, gasLimit: gas, nonce: nonce, data: options.data, - accessList, + accessList: accessList as AccessList, chainId, type: 2, }; @@ -141,24 +135,15 @@ export const createTransaction = async ( } debug( - `TransactionDetails` + - (data.to ? `to: ${data.to.substr(0, 5) + "..." + data.to.substr(data.to.length - 3)}, ` : "") + - (data.value ? `value: ${data.value.toString()}, ` : "") + - (data.gasPrice ? `gasPrice: ${data.gasPrice.toString()}, ` : "") + - (data.maxFeePerGas ? `maxFeePerGas: ${data.maxFeePerGas.toString()}, ` : "") + - (data.maxPriorityFeePerGas ? `maxPriorityFeePerGas: ${data.maxPriorityFeePerGas.toString()}, ` : "") + - (data.accessList ? `accessList: ${data.accessList.toString()}, ` : "") + - (data.gas ? `gas: ${data.gas.toString()}, ` : "") + - (data.nonce ? `nonce: ${data.nonce.toString()}, ` : "") + - (!data.data + `TransactionDetails${data.to ? `to: ${`${data.to.substr(0, 5)}...${data.to.substr(data.to.length - 3)}`}, ` : ""}${data.value ? `value: ${data.value.toString()}, ` : ""}${data.gasPrice ? `gasPrice: ${data.gasPrice.toString()}, ` : ""}${data.maxFeePerGas ? `maxFeePerGas: ${data.maxFeePerGas.toString()}, ` : ""}${data.maxPriorityFeePerGas ? `maxPriorityFeePerGas: ${data.maxPriorityFeePerGas.toString()}, ` : ""}${data.accessList ? `accessList: ${data.accessList.toString()}, ` : ""}${data.gas ? `gas: ${data.gas.toString()}, ` : ""}${data.nonce ? `nonce: ${data.nonce.toString()}, ` : ""}${ + !data.data ? "" : `data: ${ data.data.length < 50 ? data.data - : data.data.substr(0, 5) + "..." + data.data.substr(data.data.length - 3) - }, `) + - (error ? `ERROR: ${error.toString()}, ` : "") + - (warning ? `WARN: ${warning.toString()}, ` : "") + : `${data.data.toString().slice(0, 5)}...${data.data.toString().slice(data.data.length - 3)}` + }, ` + }${error ? `ERROR: ${error.toString()}, ` : ""}${warning ? `WARN: ${warning.toString()}, ` : ""}` ); return rawTransaction; }; @@ -191,7 +176,7 @@ export const ALITH_TRANSACTION_TEMPLATE: TransactionOptions = { /// Await for a promise resolution while we wait for the tx hash to be included /// This will tipically be waiting for new blocks export async function waitUntilEthTxIncluded(promise, web3, txHash) { - while ((await customWeb3Request(web3, "eth_getTransactionByHash", [txHash])).result.blockNumber == null) { + while (((await customWeb3Request(web3, "eth_getTransactionByHash", [txHash])) as any).result.blockNumber === null) { await promise(); } } diff --git a/test/util/genesis_data.ts b/test/util/genesis_data.ts index 7987c84d4..6fdfc705d 100644 --- a/test/util/genesis_data.ts +++ b/test/util/genesis_data.ts @@ -1,6 +1,6 @@ /// Utilities to convert from ChainSpec to ContainerChainGenesisData and back -import { ApiPromise } from "@polkadot/api"; +import type { ApiPromise } from "@polkadot/api"; import { hexToString, stringToHex } from "@polkadot/util"; export function chainSpecToContainerChainGenesisData(paraApi: ApiPromise, chainSpec: any): any { @@ -84,6 +84,6 @@ export function onChainPropertiesToChainSpecProperties(properties: any): any { tokenSymbol: hexToString(properties.tokenMetadata.tokenSymbol.toHex()), ss58Format: properties.tokenMetadata.ss58Format.toNumber(), tokenDecimals: properties.tokenMetadata.tokenDecimals.toNumber(), - isEthereum: properties.isEthereum == true ? true : false, + isEthereum: properties.isEthereum === true, }; } diff --git a/test/util/invulnerables.ts b/test/util/invulnerables.ts index 35ba43ee1..bb45bf0c7 100644 --- a/test/util/invulnerables.ts +++ b/test/util/invulnerables.ts @@ -1,5 +1,5 @@ -import { DevModeContext } from "@moonwall/cli"; -import { KeyringPair } from "@moonwall/util"; +import type { DevModeContext } from "@moonwall/cli"; +import type { KeyringPair } from "@moonwall/util"; export async function createBlockAndRemoveInvulnerables(context: DevModeContext, sudoKey: KeyringPair) { let nonce = (await context.polkadotJs().rpc.system.accountNextIndex(sudoKey.address)).toNumber(); diff --git a/test/util/keys.ts b/test/util/keys.ts index c942e3cd8..f76eef981 100644 --- a/test/util/keys.ts +++ b/test/util/keys.ts @@ -3,6 +3,6 @@ import { u8aToHex } from "@polkadot/util"; export function getKeyringNimbusIdHex(name: string) { const keyring = new Keyring({ type: "sr25519" }); - const key = keyring.addFromUri("//" + name, { name: name + " default" }); + const key = keyring.addFromUri(`//${name}`, { name: `${name} default` }); return u8aToHex(key.publicKey); } diff --git a/test/util/payment.ts b/test/util/payment.ts index 24a166fe2..0c0ddba3b 100644 --- a/test/util/payment.ts +++ b/test/util/payment.ts @@ -1,9 +1,12 @@ +import "@tanssi/api-augment"; import { bnToU8a, stringToU8a } from "@polkadot/util"; import { blake2AsU8a } from "@polkadot/util-crypto"; -import { ApiPromise } from "@polkadot/api"; +import type { ApiPromise } from "@polkadot/api"; +import type { ParaId } from "@polkadot/types/interfaces"; +import type { ApiDecoration } from "@polkadot/api/types"; // Tank account is blake2(b"modlpy/serpayment" + parahain ID) -export function paraIdTank(paraId: any): any { +export function paraIdTank(paraId: number) { const seedBytes = stringToU8a("modlpy/serpayment"); const paraIdBytes = bnToU8a(paraId, { bitLength: 32 }); const combinedBytes = new Uint8Array(seedBytes.length + paraIdBytes.length); @@ -14,8 +17,8 @@ export function paraIdTank(paraId: any): any { } export async function hasEnoughCredits( - paraApi: ApiPromise, - paraId: ParaId, + paraApi: ApiPromise | ApiDecoration<"promise">, + paraId: ParaId | number | string, blocksPerSession: bigint, // TODO: minSessionRequirement should be 2 if the chain had collators in the previous session, and 1 otherwise minCollatorSessionRequirement: bigint, @@ -23,11 +26,15 @@ export async function hasEnoughCredits( costPerSession: bigint, costPerBlock: bigint ): Promise { - const existentialDeposit = await paraApi.consts.balances.existentialDeposit.toBigInt(); + const paraIdNumber = + typeof paraId === "number" ? paraId : typeof paraId === "string" ? Number.parseInt(paraId) : paraId.toNumber(); + const existentialDeposit = paraApi.consts.balances.existentialDeposit.toBigInt(); - const freeBlockCredits = (await paraApi.query.servicesPayment.blockProductionCredits(paraId)).unwrap().toBigInt(); + const freeBlockCredits = (await paraApi.query.servicesPayment.blockProductionCredits(paraIdNumber)) + .unwrap() + .toBigInt(); - const freeSessionCredits = (await paraApi.query.servicesPayment.collatorAssignmentCredits(paraId)) + const freeSessionCredits = (await paraApi.query.servicesPayment.collatorAssignmentCredits(paraIdNumber)) .unwrap() .toBigInt(); @@ -46,13 +53,11 @@ export async function hasEnoughCredits( existentialDeposit + neededCollatorAssignmentPaymentAfterCredits * costPerSession + neededBlockPaymentAfterCredits * costPerBlock; - const tankBalance = (await paraApi.query.system.account(paraIdTank(paraId))).data.free.toBigInt(); + const tankBalance = (await paraApi.query.system.account(paraIdTank(paraIdNumber))).data.free.toBigInt(); if (tankBalance >= neededTankMoney) { return true; - } else { - return false; } - } else { - return true; + return false; } + return true; } diff --git a/test/util/relayInterface.ts b/test/util/relayInterface.ts index 048b3ad1a..097047115 100644 --- a/test/util/relayInterface.ts +++ b/test/util/relayInterface.ts @@ -1,15 +1,14 @@ -import { ApiPromise } from "@polkadot/api"; +import type { ApiPromise } from "@polkadot/api"; import type { Header, ParaId, HeadData } from "@polkadot/types/interfaces"; import { Bytes } from "@polkadot/types-codec"; import { TypeRegistry } from "@polkadot/types"; -export async function getHeaderFromRelay(relayApi: ApiPromise, paraId: ParaId): Promise
{ +export async function getHeaderFromRelay(relayApi: ApiPromise, paraId: ParaId) { // Get the latest header from relay storage const encoded = await relayApi.query.paras.heads(paraId); const registry = new TypeRegistry(); - const headerEncoded: HeadData = await relayApi.createType("HeadData", encoded.toHex()); + const headerEncoded: HeadData = relayApi.createType("HeadData", encoded.toHex()); const nonEncodedHeader = new Bytes(registry, headerEncoded.toU8a(true)).toHex(); - const header = await relayApi.createType("SpRuntimeHeader", nonEncodedHeader); - return header; + return relayApi.createType("SpRuntimeHeader", nonEncodedHeader); } diff --git a/test/util/slashes.ts b/test/util/slashes.ts index 483dbaf3f..9349dd7e5 100644 --- a/test/util/slashes.ts +++ b/test/util/slashes.ts @@ -1,12 +1,12 @@ -import { ApiPromise } from "@polkadot/api"; -import { +import type { ApiPromise } from "@polkadot/api"; +import type { BabeEquivocationProof, GrandpaEquivocationProof, GrandpaEquivocation, GrandpaEquivocationValue, } from "@polkadot/types/interfaces"; -import { SpRuntimeHeader, SpRuntimeDigestDigestItem, FinalityGrandpaPrevote } from "@polkadot/types/lookup"; -import { KeyringPair } from "@moonwall/util"; +import type { SpRuntimeHeader, SpRuntimeDigestDigestItem, FinalityGrandpaPrevote } from "@polkadot/types/lookup"; +import type { KeyringPair } from "@moonwall/util"; import { blake2AsHex } from "@polkadot/util-crypto"; import { u8aToHex, stringToHex, hexToU8a } from "@polkadot/util"; diff --git a/test/util/xcm.ts b/test/util/xcm.ts index 593cd82d7..2ba4bf676 100644 --- a/test/util/xcm.ts +++ b/test/util/xcm.ts @@ -1,12 +1,12 @@ -import { DevModeContext, customDevRpcRequest, expect } from "@moonwall/cli"; -import { ApiPromise } from "@polkadot/api"; -import { XcmpMessageFormat } from "@polkadot/types/interfaces"; -import { +import { type DevModeContext, customDevRpcRequest, expect } from "@moonwall/cli"; +import type { ApiPromise } from "@polkadot/api"; +import type { XcmpMessageFormat } from "@polkadot/types/interfaces"; +import type { CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, XcmV3JunctionNetworkId, XcmVersionedXcm, } from "@polkadot/types/lookup"; -import { BN, hexToU8a, stringToU8a, u8aToHex } from "@polkadot/util"; +import { type BN, hexToU8a, stringToU8a, u8aToHex } from "@polkadot/util"; import { xxhashAsU8a } from "@polkadot/util-crypto"; // Creates and returns the tx that overrides the paraHRMP existence @@ -71,7 +71,7 @@ export function mockHrmpChannelExistanceTx( export function descendSiblingOriginFromAddress20( context: DevModeContext, address: `0x${string}` = "0x0101010101010101010101010101010101010101", - paraId: number = 1 + paraId = 1 ) { const toHash = new Uint8Array([ ...new TextEncoder().encode("SiblingChain"), @@ -93,7 +93,7 @@ export function descendSiblingOriginFromAddress20( export function descendSiblingOriginFromAddress32( context: DevModeContext, address: `0x${string}` = "0x0101010101010101010101010101010101010101010101010101010101010101", - paraId: number = 1 + paraId = 1 ) { const toHash = new Uint8Array([ ...new TextEncoder().encode("SiblingChain"), @@ -218,7 +218,7 @@ export async function injectUmpMessage(context: DevModeContext, message?: RawXcm // Weight a particular message using the xcm utils precompile export async function weightMessage(context: DevModeContext, message: XcmVersionedXcm) { - return (await context.readPrecompile!({ + return (await context.readPrecompile?.({ precompileName: "XcmUtils", functionName: "weightMessage", args: [message.toHex()], @@ -348,7 +348,7 @@ export class XcmFragment { // Add one or more `BuyExecution` instruction // if weight_limit is not set in config, then we put unlimited - buy_execution(fee_index: number = 0, repeat: bigint = 1n): this { + buy_execution(fee_index = 0, repeat = 1n): this { const weightLimit = this.config.weight_limit != null ? { Limited: this.config.weight_limit } : { Unlimited: null }; for (let i = 0; i < repeat; i++) { @@ -369,7 +369,7 @@ export class XcmFragment { // Add one or more `BuyExecution` instruction // if weight_limit is not set in config, then we put unlimited - refund_surplus(repeat: bigint = 1n): this { + refund_surplus(repeat = 1n): this { for (let i = 0; i < repeat; i++) { this.instructions.push({ RefundSurplus: null, @@ -379,7 +379,7 @@ export class XcmFragment { } // Add a `ClaimAsset` instruction - claim_asset(index: number = 0): this { + claim_asset(index = 0): this { this.instructions.push({ ClaimAsset: { assets: [ @@ -401,7 +401,7 @@ export class XcmFragment { } // Add a `ClearOrigin` instruction - clear_origin(repeat: bigint = 1n): this { + clear_origin(repeat = 1n): this { for (let i = 0; i < repeat; i++) { this.instructions.push({ ClearOrigin: null as any }); } @@ -411,7 +411,7 @@ export class XcmFragment { // Add a `DescendOrigin` instruction descend_origin(): this { if (this.config.descend_origin != null) { - if (hexToU8a(this.config.descend_origin).length == 32) { + if (hexToU8a(this.config.descend_origin).length === 32) { this.instructions.push({ DescendOrigin: { X1: { @@ -441,11 +441,11 @@ export class XcmFragment { } // Add a `DepositAsset` instruction - deposit_asset(max_assets: bigint = 1n, network: "Any" | XcmV3JunctionNetworkId["type"] = "Any"): this { - if (this.config.beneficiary == null) { + deposit_asset(max_assets = 1n, network: "Any" | XcmV3JunctionNetworkId["type"] = "Any"): this { + if (this.config.beneficiary === null) { console.warn("!Building a DepositAsset instruction without a configured beneficiary"); } else { - if (hexToU8a(this.config.beneficiary).length == 20) { + if (hexToU8a(this.config.beneficiary).length === 20) { this.instructions.push({ DepositAsset: { assets: { Wild: "All" }, @@ -477,11 +477,11 @@ export class XcmFragment { } // Add a `DepositAsset` instruction for xcm v3 - deposit_asset_v3(max_assets: bigint = 1n, network: XcmV3JunctionNetworkId["type"] | null = null): this { - if (this.config.beneficiary == null) { + deposit_asset_v3(max_assets = 1n, network: XcmV3JunctionNetworkId["type"] | null = null): this { + if (this.config.beneficiary === null) { console.warn("!Building a DepositAsset instruction without a configured beneficiary"); } else { - if (hexToU8a(this.config.beneficiary).length == 20) { + if (hexToU8a(this.config.beneficiary).length === 20) { this.instructions.push({ DepositAsset: { assets: { Wild: { AllCounted: max_assets } }, @@ -547,7 +547,7 @@ export class XcmFragment { } // Utility function to support functional style method call chaining bound to `this` context - with(callback: (() => any)[]): this { + with(callback): this { return callback.call(this); } @@ -572,14 +572,14 @@ export class XcmFragment { } // Add a `BurnAsset` instruction - burn_asset(amount: bigint = 0n): this { + burn_asset(amount = 0n): this { this.instructions.push({ BurnAsset: this.config.assets.map(({ multilocation, fungible }) => { return { id: { Concrete: multilocation, }, - fun: { Fungible: amount == 0n ? fungible : amount }, + fun: { Fungible: amount === 0n ? fungible : amount }, }; }, this), }); @@ -640,7 +640,7 @@ export class XcmFragment { } // Add a `ExpectError` instruction - expect_error(index: number = 0, error: string = "Unimplemented"): this { + expect_error(index = 0, error = "Unimplemented"): this { this.instructions.push({ ExpectError: [index, error], }); @@ -648,7 +648,7 @@ export class XcmFragment { } // Add a `ExpectTransactStatus` instruction - expect_transact_status(status: string = "Success"): this { + expect_transact_status(status = "Success"): this { this.instructions.push({ ExpectTransactStatus: status, }); @@ -662,7 +662,7 @@ export class XcmFragment { interior: { X1: { Parachain: 1000 } }, }, query_id: number = Math.floor(Math.random() * 1000), - module_name: string = "pallet_balances", + module_name = "pallet_balances", max_weight: { refTime: bigint; proofSize: bigint } = { refTime: 1_000_000_000n, proofSize: 1_000_000_000n, @@ -683,11 +683,11 @@ export class XcmFragment { // Add a `ExpectPallet` instruction expect_pallet( - index: number = 0, - name: string = "Balances", - module_name: string = "pallet_balances", - crate_major: number = 4, - min_crate_minor: number = 0 + index = 0, + name = "Balances", + module_name = "pallet_balances", + crate_major = 4, + min_crate_minor = 0 ): this { this.instructions.push({ ExpectPallet: { @@ -741,7 +741,7 @@ export class XcmFragment { // Add a `ExportMessage` instruction export_message( - xcm_hex: string = "", + xcm_hex = "", network: "Any" | XcmV3JunctionNetworkId["type"] = "Ethereum", destination: Junctions = { X1: { Parachain: 1000 } } ): this { @@ -846,7 +846,7 @@ export class XcmFragment { } // Add a `SetFeesMode` instruction - set_fees_mode(jit_withdraw: boolean = true): this { + set_fees_mode(jit_withdraw = true): this { this.instructions.push({ SetFeesMode: { jit_withdraw }, }); @@ -854,7 +854,7 @@ export class XcmFragment { } // Add a `SetTopic` instruction - set_topic(topic: string = "0xk89103a9CF04c71Dbc94D0b566f7A2"): this { + set_topic(topic = "0xk89103a9CF04c71Dbc94D0b566f7A2"): this { this.instructions.push({ SetTopic: Array.from(stringToU8a(topic)), }); @@ -907,7 +907,7 @@ export class XcmFragment { const instructions = message.asV2; for (let i = 0; i < instructions.length; i++) { - if (instructions[i].isBuyExecution == true) { + if (instructions[i].isBuyExecution === true) { const newWeight = await weightMessage(context, message); this.instructions[i] = { BuyExecution: { @@ -925,7 +925,8 @@ export class XcmFragment { function replaceNetworkAny(obj: AnyObject | Array): any { if (Array.isArray(obj)) { return obj.map((item) => replaceNetworkAny(item)); - } else if (typeof obj === "object" && obj !== null) { + } + if (typeof obj === "object" && obj !== null) { const newObj: AnyObject = {}; for (const key in obj) { if (key === "network" && obj[key] === "Any") { @@ -950,7 +951,7 @@ export const expectXcmEventMessage = async (context: DevModeContext, message: st .map(({ event }) => (context.polkadotJs().events.xcmpQueue.Fail.is(event) ? event : undefined)) .filter((event) => event); - return filteredEvents.length ? filteredEvents[0]!.data.error.toString() === message : false; + return filteredEvents.length ? filteredEvents[0]?.data.error.toString() === message : false; }; export const extractPaidDeliveryFees = async (context: DevModeContext) => { @@ -960,7 +961,7 @@ export const extractPaidDeliveryFees = async (context: DevModeContext) => { .map(({ event }) => (context.polkadotJs().events.polkadotXcm.FeesPaid.is(event) ? event : undefined)) .filter((event) => event); - return filteredEvents[0]!.data[1][0].fun.asFungible.toBigInt(); + return filteredEvents[0]?.data[1][0].fun.asFungible.toBigInt(); }; export const extractPaidDeliveryFeesDancelight = async (context: DevModeContext) => { @@ -970,7 +971,7 @@ export const extractPaidDeliveryFeesDancelight = async (context: DevModeContext) .map(({ event }) => (context.polkadotJs().events.xcmPallet.FeesPaid.is(event) ? event : undefined)) .filter((event) => event); - return filteredEvents[0]!.data[1][0].fun.asFungible.toBigInt(); + return filteredEvents[0]?.data[1][0].fun.asFungible.toBigInt(); }; export const getLastSentUmpMessageFee = async (context: DevModeContext, baseDelivery: bigint, txByteFee: bigint) => { diff --git a/tools/github/generate-runtimes-body.ts b/tools/github/generate-runtimes-body.ts index 559a245f2..4e0f6816c 100644 --- a/tools/github/generate-runtimes-body.ts +++ b/tools/github/generate-runtimes-body.ts @@ -2,7 +2,7 @@ import { execSync } from "child_process"; import { Octokit } from "octokit"; import { readFileSync } from "fs"; import yargs from "yargs"; -import path from "path"; +import path from "node:path"; import { getCommitAndLabels, getCompareLink } from "./github-utils"; import { blake2AsHex } from "@polkadot/util-crypto"; diff --git a/typescript-api/package.json b/typescript-api/package.json index 0924100a0..a89831d59 100644 --- a/typescript-api/package.json +++ b/typescript-api/package.json @@ -19,9 +19,11 @@ "create-local-interfaces": "pnpm tsx ./scripts/runtime-upgrade.ts && pnpm fmt:fix", "generate": "pnpm run load:meta && pnpm run generate:defs && pnpm run generate:meta", "clean": "pnpm exec rm -rf node_modules && pnpm exec rm -rf build", - "fmt": "prettier --check --ignore-path ../.prettierignore ./", - "fmt:fix": "prettier --write --ignore-path ../.prettierignore 'src'", - "postgenerate": "pnpm run pretty", + "fmt": "biome format src", + "fmt:fix": "biome format --write src", + "lint": "biome lint .", + "lint:fix": "biome lint --write .", + "postgenerate": "pnpm fmt:fix", "load:meta": "npm run load:meta:flashbox && npm run load:meta:dancebox", "load:meta:local": "curl -s -H \"Content-Type: application/json\" -d '{\"id\":\"1\", \"jsonrpc\":\"2.0\", \"method\": \"state_getMetadata\", \"params\":[]}' http://localhost:9948 > metadata-dancebox.json", "load:meta:flashbox": "curl -s -H \"Content-Type: application/json\" -d '{\"id\":\"1\", \"jsonrpc\":\"2.0\", \"method\": \"state_getMetadata\", \"params\":[]}' https://fraa-flashbox-rpc.a.stagenet.tanssi.network > metadata-flashbox.json", @@ -34,11 +36,10 @@ "generate:meta:dancebox": "pnpm tsx node_modules/@polkadot/typegen/scripts/polkadot-types-from-chain.mjs --endpoint ./metadata-dancebox.json --package @tanssi/api-augment/tanssi/interfaces --output ./src/dancebox/interfaces", "generate:meta:dancelight": "pnpm tsx node_modules/@polkadot/typegen/scripts/polkadot-types-from-chain.mjs --endpoint ./metadata-dancelight.json --package @tanssi/api-augment/tanssi/interfaces --output ./src/dancelight/interfaces", "generate:meta:flashbox": "pnpm tsx node_modules/@polkadot/typegen/scripts/polkadot-types-from-chain.mjs --endpoint ./metadata-flashbox.json --package @tanssi/api-augment/tanssi/interfaces --output ./src/flashbox/interfaces", - "prebuild": "rimraf build", + "prebuild": "rm -rf build", "build": "tsc -b --verbose", "publish": "npm publish", - "deploy": "pnpm run generate && pnpm run build && pnpm run publish", - "pretty": "prettier --write --ignore-unknown --plugin prettier-plugin-jsdoc 'src/**/*'" + "deploy": "pnpm run generate && pnpm run build && pnpm run publish" }, "main": "./build/dancebox/index.js", "module": "./build/dancebox/index.js", @@ -88,15 +89,8 @@ "LICENSE", "!**/*.tsbuildinfo" ], - "peerDependencies": { - "@polkadot/api-base": "15.x", - "@polkadot/rpc-core": "15.x", - "@polkadot/types": "15.x", - "@polkadot/types-codec": "15.x" - }, "dependencies": { "@polkadot/api": "*", - "@polkadot/api-augment": "*", "@polkadot/api-base": "*", "@polkadot/api-derive": "*", "@polkadot/rpc-augment": "*", @@ -113,10 +107,7 @@ "devDependencies": { "@types/node": "*", "chalk": "^5.4.1", - "prettier": "^3.4.2", - "prettier-plugin-jsdoc": "^1.3.2", - "rimraf": "^6.0.1", - "tsx": "^4.19.2", - "typescript": "^5.7.2" + "tsx": "*", + "typescript": "*" } } diff --git a/typescript-api/scripts/generate-types.ts b/typescript-api/scripts/generate-types.ts index 30f5c10f8..2a7a8046a 100644 --- a/typescript-api/scripts/generate-types.ts +++ b/typescript-api/scripts/generate-types.ts @@ -1,6 +1,6 @@ -import { execSync, spawn, ChildProcessWithoutNullStreams } from "child_process"; -import { existsSync, writeFileSync } from "fs"; -import path from "path"; +import { execSync, spawn, type ChildProcessWithoutNullStreams } from "node:child_process"; +import { existsSync, writeFileSync } from "node:fs"; +import path from "node:path"; let nodeProcess: ChildProcessWithoutNullStreams | undefined = undefined; @@ -40,7 +40,7 @@ async function main() { ]); const onProcessExit = () => { - nodeProcess && nodeProcess.kill(); + nodeProcess?.kill(); }; process.once("exit", onProcessExit); @@ -73,20 +73,20 @@ async function main() { writeFileSync(path.join(process.cwd(), `metadata-${CHAIN}.json`), JSON.stringify(data)); execSync("pnpm run load:meta:local", { stdio: "inherit" }); - nodeProcess!.kill(); - setTimeout(() => {}, 5000); // Sleep for 5 seconds + nodeProcess?.kill(); + setTimeout(() => { }, 5000); // Sleep for 5 seconds resolve("success"); }); } }; - nodeProcess!.stderr!.on("data", onData); - nodeProcess!.stdout!.on("data", onData); - nodeProcess!.stderr.on("error", (error) => { + nodeProcess?.stderr?.on("data", onData); + nodeProcess?.stdout?.on("data", onData); + nodeProcess?.stderr?.on("error", (error) => { console.error(error); reject(error); }); - nodeProcess!.stdout.on("error", (error) => { + nodeProcess?.stdout?.on("error", (error) => { console.error(error); reject(error); }); diff --git a/typescript-api/scripts/runtime-upgrade.ts b/typescript-api/scripts/runtime-upgrade.ts index 7c090d582..bc4d9e7af 100644 --- a/typescript-api/scripts/runtime-upgrade.ts +++ b/typescript-api/scripts/runtime-upgrade.ts @@ -1,6 +1,6 @@ -import { execSync, spawn, ChildProcessWithoutNullStreams } from "child_process"; -import { existsSync, writeFileSync } from "fs"; -import path from "path"; +import { execSync, spawn, type ChildProcessWithoutNullStreams } from "node:child_process"; +import { existsSync, writeFileSync } from "node:fs"; +import path from "node:path"; import chalk from "chalk"; let nodeProcess: ChildProcessWithoutNullStreams | undefined = undefined; @@ -42,7 +42,7 @@ async function main() { ]); const onProcessExit = () => { - nodeProcess && nodeProcess.kill(); + nodeProcess?.kill(); }; process.once("exit", onProcessExit); @@ -69,21 +69,21 @@ async function main() { .then((data) => { writeFileSync(path.join(process.cwd(), `metadata-${CHAIN}.json`), JSON.stringify(data)); - nodeProcess!.kill(); + nodeProcess?.kill(); setTimeout(() => {}, 5000); // Sleep for 5 seconds resolve("success"); }); } }; - nodeProcess!.stderr!.on("data", onData); - nodeProcess!.stdout!.on("data", onData); + nodeProcess?.stderr?.on("data", onData); + nodeProcess?.stdout?.on("data", onData); - nodeProcess!.stderr.on("error", (error) => { + nodeProcess?.stderr?.on("error", (error) => { console.error(error); reject(error); }); - nodeProcess!.stderr.on("error", (error) => { + nodeProcess?.stderr?.on("error", (error) => { console.error(error); reject(error); }); diff --git a/typescript-api/src/dancebox/interfaces/augment-api-consts.ts b/typescript-api/src/dancebox/interfaces/augment-api-consts.ts index 6366e2b35..06e3da279 100644 --- a/typescript-api/src/dancebox/interfaces/augment-api-consts.ts +++ b/typescript-api/src/dancebox/interfaces/augment-api-consts.ts @@ -24,324 +24,443 @@ export type __AugmentedConst = AugmentedConst declare module "@polkadot/api-base/types/consts" { interface AugmentedConsts { asyncBacking: { - /** Purely informative, but used by mocking tools like chospticks to allow knowing how to mock blocks */ + /** + * Purely informative, but used by mocking tools like chospticks to allow knowing how to mock + * blocks + **/ expectedBlockTime: u64 & AugmentedConst; - /** Generic const */ + /** + * Generic const + **/ [key: string]: Codec; }; authorityMapping: { sessionRemovalBoundary: u32 & AugmentedConst; - /** Generic const */ + /** + * Generic const + **/ [key: string]: Codec; }; balances: { /** * The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO! * - * If you _really_ need it to be zero, you can enable the feature `insecure_zero_ed` for this pallet. However, you - * do so at your own risk: this will open up a major DoS vector. In case you have multiple sources of provider - * references, you may also get unexpected behaviour if you set this to zero. + * If you *really* need it to be zero, you can enable the feature `insecure_zero_ed` for + * this pallet. However, you do so at your own risk: this will open up a major DoS vector. + * In case you have multiple sources of provider references, you may also get unexpected + * behaviour if you set this to zero. * * Bottom line: Do yourself a favour and make it at least one! - */ + **/ existentialDeposit: u128 & AugmentedConst; - /** The maximum number of individual freeze locks that can exist on an account at any time. */ + /** + * The maximum number of individual freeze locks that can exist on an account at any time. + **/ maxFreezes: u32 & AugmentedConst; /** - * The maximum number of locks that should exist on an account. Not strictly enforced, but used for weight - * estimation. + * The maximum number of locks that should exist on an account. + * Not strictly enforced, but used for weight estimation. * * Use of locks is deprecated in favour of freezes. See `https://github.com/paritytech/substrate/pull/12951/` - */ + **/ maxLocks: u32 & AugmentedConst; /** * The maximum number of named reserves that can exist on an account. * * Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/` - */ + **/ maxReserves: u32 & AugmentedConst; - /** Generic const */ + /** + * Generic const + **/ [key: string]: Codec; }; configuration: { sessionDelay: u32 & AugmentedConst; - /** Generic const */ + /** + * Generic const + **/ [key: string]: Codec; }; dataPreservers: { maxAssignmentsPerParaId: u32 & AugmentedConst; maxNodeUrlLen: u32 & AugmentedConst; maxParaIdsVecLen: u32 & AugmentedConst; - /** Generic const */ + /** + * Generic const + **/ [key: string]: Codec; }; foreignAssets: { - /** The amount of funds that must be reserved when creating a new approval. */ + /** + * The amount of funds that must be reserved when creating a new approval. + **/ approvalDeposit: u128 & AugmentedConst; - /** The amount of funds that must be reserved for a non-provider asset account to be maintained. */ + /** + * The amount of funds that must be reserved for a non-provider asset account to be + * maintained. + **/ assetAccountDeposit: u128 & AugmentedConst; - /** The basic amount of funds that must be reserved for an asset. */ + /** + * The basic amount of funds that must be reserved for an asset. + **/ assetDeposit: u128 & AugmentedConst; - /** The basic amount of funds that must be reserved when adding metadata to your asset. */ + /** + * The basic amount of funds that must be reserved when adding metadata to your asset. + **/ metadataDepositBase: u128 & AugmentedConst; - /** The additional funds that must be reserved for the number of bytes you store in your metadata. */ + /** + * The additional funds that must be reserved for the number of bytes you store in your + * metadata. + **/ metadataDepositPerByte: u128 & AugmentedConst; /** * Max number of items to destroy per `destroy_accounts` and `destroy_approvals` call. * * Must be configured to result in a weight that makes each call fit in a block. - */ + **/ removeItemsLimit: u32 & AugmentedConst; - /** The maximum length of a name or symbol stored on-chain. */ + /** + * The maximum length of a name or symbol stored on-chain. + **/ stringLimit: u32 & AugmentedConst; - /** Generic const */ + /** + * Generic const + **/ [key: string]: Codec; }; identity: { - /** The amount held on deposit for a registered identity. */ + /** + * The amount held on deposit for a registered identity. + **/ basicDeposit: u128 & AugmentedConst; - /** The amount held on deposit per encoded byte for a registered identity. */ + /** + * The amount held on deposit per encoded byte for a registered identity. + **/ byteDeposit: u128 & AugmentedConst; /** - * Maximum number of registrars allowed in the system. Needed to bound the complexity of, e.g., updating - * judgements. - */ + * Maximum number of registrars allowed in the system. Needed to bound the complexity + * of, e.g., updating judgements. + **/ maxRegistrars: u32 & AugmentedConst; - /** The maximum number of sub-accounts allowed per identified account. */ + /** + * The maximum number of sub-accounts allowed per identified account. + **/ maxSubAccounts: u32 & AugmentedConst; - /** The maximum length of a suffix. */ + /** + * The maximum length of a suffix. + **/ maxSuffixLength: u32 & AugmentedConst; - /** The maximum length of a username, including its suffix and any system-added delimiters. */ + /** + * The maximum length of a username, including its suffix and any system-added delimiters. + **/ maxUsernameLength: u32 & AugmentedConst; - /** The number of blocks within which a username grant must be accepted. */ + /** + * The number of blocks within which a username grant must be accepted. + **/ pendingUsernameExpiration: u32 & AugmentedConst; /** - * The amount held on deposit for a registered subaccount. This should account for the fact that one storage - * item's value will increase by the size of an account ID, and there will be another trie item whose value is the - * size of an account ID plus 32 bytes. - */ + * The amount held on deposit for a registered subaccount. This should account for the fact + * that one storage item's value will increase by the size of an account ID, and there will + * be another trie item whose value is the size of an account ID plus 32 bytes. + **/ subAccountDeposit: u128 & AugmentedConst; - /** Generic const */ + /** + * Generic const + **/ [key: string]: Codec; }; inflationRewards: { - /** Inflation rate per orchestrator block (proportion of the total issuance) */ + /** + * Inflation rate per orchestrator block (proportion of the total issuance) + **/ inflationRate: Perbill & AugmentedConst; - /** The account that will store rewards waiting to be paid out */ + /** + * The account that will store rewards waiting to be paid out + **/ pendingRewardsAccount: AccountId32 & AugmentedConst; - /** Proportion of the new supply dedicated to staking */ + /** + * Proportion of the new supply dedicated to staking + **/ rewardsPortion: Perbill & AugmentedConst; - /** Generic const */ + /** + * Generic const + **/ [key: string]: Codec; }; invulnerables: { - /** Maximum number of invulnerables. */ + /** + * Maximum number of invulnerables. + **/ maxInvulnerables: u32 & AugmentedConst; - /** Generic const */ + /** + * Generic const + **/ [key: string]: Codec; }; messageQueue: { /** * The size of the page; this implies the maximum message size which can be sent. * - * A good value depends on the expected message sizes, their weights, the weight that is available for processing - * them and the maximal needed message size. The maximal message size is slightly lower than this as defined by - * [`MaxMessageLenOf`]. - */ + * A good value depends on the expected message sizes, their weights, the weight that is + * available for processing them and the maximal needed message size. The maximal message + * size is slightly lower than this as defined by [`MaxMessageLenOf`]. + **/ heapSize: u32 & AugmentedConst; /** - * The maximum amount of weight (if any) to be used from remaining weight `on_idle` which should be provided to - * the message queue for servicing enqueued items `on_idle`. Useful for parachains to process messages at the same - * block they are received. + * The maximum amount of weight (if any) to be used from remaining weight `on_idle` which + * should be provided to the message queue for servicing enqueued items `on_idle`. + * Useful for parachains to process messages at the same block they are received. * * If `None`, it will not call `ServiceQueues::service_queues` in `on_idle`. - */ + **/ idleMaxServiceWeight: Option & AugmentedConst; /** - * The maximum number of stale pages (i.e. of overweight messages) allowed before culling can happen. Once there - * are more stale pages than this, then historical pages may be dropped, even if they contain unprocessed - * overweight messages. - */ + * The maximum number of stale pages (i.e. of overweight messages) allowed before culling + * can happen. Once there are more stale pages than this, then historical pages may be + * dropped, even if they contain unprocessed overweight messages. + **/ maxStale: u32 & AugmentedConst; /** - * The amount of weight (if any) which should be provided to the message queue for servicing enqueued items - * `on_initialize`. + * The amount of weight (if any) which should be provided to the message queue for + * servicing enqueued items `on_initialize`. * - * This may be legitimately `None` in the case that you will call `ServiceQueues::service_queues` manually or set - * [`Self::IdleMaxServiceWeight`] to have it run in `on_idle`. - */ + * This may be legitimately `None` in the case that you will call + * `ServiceQueues::service_queues` manually or set [`Self::IdleMaxServiceWeight`] to have + * it run in `on_idle`. + **/ serviceWeight: Option & AugmentedConst; - /** Generic const */ + /** + * Generic const + **/ [key: string]: Codec; }; multisig: { /** - * The base amount of currency needed to reserve for creating a multisig execution or to store a dispatch call for - * later. + * The base amount of currency needed to reserve for creating a multisig execution or to + * store a dispatch call for later. * - * This is held for an additional storage item whose value size is `4 + sizeof((BlockNumber, Balance, AccountId))` - * bytes and whose key size is `32 + sizeof(AccountId)` bytes. - */ + * This is held for an additional storage item whose value size is + * `4 + sizeof((BlockNumber, Balance, AccountId))` bytes and whose key size is + * `32 + sizeof(AccountId)` bytes. + **/ depositBase: u128 & AugmentedConst; /** * The amount of currency needed per unit threshold when creating a multisig execution. * * This is held for adding 32 bytes more into a pre-existing storage value. - */ + **/ depositFactor: u128 & AugmentedConst; - /** The maximum amount of signatories allowed in the multisig. */ + /** + * The maximum amount of signatories allowed in the multisig. + **/ maxSignatories: u32 & AugmentedConst; - /** Generic const */ + /** + * Generic const + **/ [key: string]: Codec; }; parachainSystem: { - /** Returns the parachain ID we are running with. */ + /** + * Returns the parachain ID we are running with. + **/ selfParaId: u32 & AugmentedConst; - /** Generic const */ + /** + * Generic const + **/ [key: string]: Codec; }; pooledStaking: { /** - * All eligible candidates are stored in a sorted list that is modified each time delegations changes. It is safer - * to bound this list, in which case eligible candidate could fall out of this list if they have less stake than - * the top `EligibleCandidatesBufferSize` eligible candidates. One of this top candidates leaving will then not - * bring the dropped candidate in the list. An extrinsic is available to manually bring back such dropped - * candidate. - */ + * All eligible candidates are stored in a sorted list that is modified each time + * delegations changes. It is safer to bound this list, in which case eligible candidate + * could fall out of this list if they have less stake than the top `EligibleCandidatesBufferSize` + * eligible candidates. One of this top candidates leaving will then not bring the dropped candidate + * in the list. An extrinsic is available to manually bring back such dropped candidate. + **/ eligibleCandidatesBufferSize: u32 & AugmentedConst; /** - * When creating the first Shares for a candidate the supply can arbitrary. Picking a value too high is a barrier - * of entry for staking, which will increase overtime as the value of each share will increase due to auto - * compounding. - */ + * When creating the first Shares for a candidate the supply can arbitrary. + * Picking a value too high is a barrier of entry for staking, which will increase overtime + * as the value of each share will increase due to auto compounding. + **/ initialAutoCompoundingShareValue: u128 & AugmentedConst; /** - * When creating the first Shares for a candidate the supply can be arbitrary. Picking a value too low will make - * an higher supply, which means each share will get less rewards, and rewards calculations will have more - * impactful rounding errors. Picking a value too high is a barrier of entry for staking. - */ + * When creating the first Shares for a candidate the supply can be arbitrary. + * Picking a value too low will make an higher supply, which means each share will get + * less rewards, and rewards calculations will have more impactful rounding errors. + * Picking a value too high is a barrier of entry for staking. + **/ initialManualClaimShareValue: u128 & AugmentedConst; /** - * Minimum amount of stake a Candidate must delegate (stake) towards itself. Not reaching this minimum prevents - * from being elected. - */ + * Minimum amount of stake a Candidate must delegate (stake) towards itself. Not reaching + * this minimum prevents from being elected. + **/ minimumSelfDelegation: u128 & AugmentedConst; - /** Part of the rewards that will be sent exclusively to the collator. */ + /** + * Part of the rewards that will be sent exclusively to the collator. + **/ rewardsCollatorCommission: Perbill & AugmentedConst; - /** Account holding Currency of all delegators. */ + /** + * Account holding Currency of all delegators. + **/ stakingAccount: AccountId32 & AugmentedConst; - /** Generic const */ + /** + * Generic const + **/ [key: string]: Codec; }; proxy: { /** * The base amount of currency needed to reserve for creating an announcement. * - * This is held when a new storage item holding a `Balance` is created (typically 16 bytes). - */ + * This is held when a new storage item holding a `Balance` is created (typically 16 + * bytes). + **/ announcementDepositBase: u128 & AugmentedConst; /** * The amount of currency needed per announcement made. * - * This is held for adding an `AccountId`, `Hash` and `BlockNumber` (typically 68 bytes) into a pre-existing - * storage value. - */ + * This is held for adding an `AccountId`, `Hash` and `BlockNumber` (typically 68 bytes) + * into a pre-existing storage value. + **/ announcementDepositFactor: u128 & AugmentedConst; - /** The maximum amount of time-delayed announcements that are allowed to be pending. */ + /** + * The maximum amount of time-delayed announcements that are allowed to be pending. + **/ maxPending: u32 & AugmentedConst; - /** The maximum amount of proxies allowed for a single account. */ + /** + * The maximum amount of proxies allowed for a single account. + **/ maxProxies: u32 & AugmentedConst; /** * The base amount of currency needed to reserve for creating a proxy. * - * This is held for an additional storage item whose value size is `sizeof(Balance)` bytes and whose key size is - * `sizeof(AccountId)` bytes. - */ + * This is held for an additional storage item whose value size is + * `sizeof(Balance)` bytes and whose key size is `sizeof(AccountId)` bytes. + **/ proxyDepositBase: u128 & AugmentedConst; /** * The amount of currency needed per proxy added. * - * This is held for adding 32 bytes plus an instance of `ProxyType` more into a pre-existing storage value. Thus, - * when configuring `ProxyDepositFactor` one should take into account `32 + proxy_type.encode().len()` bytes of - * data. - */ + * This is held for adding 32 bytes plus an instance of `ProxyType` more into a + * pre-existing storage value. Thus, when configuring `ProxyDepositFactor` one should take + * into account `32 + proxy_type.encode().len()` bytes of data. + **/ proxyDepositFactor: u128 & AugmentedConst; - /** Generic const */ + /** + * Generic const + **/ [key: string]: Codec; }; registrar: { depositAmount: u128 & AugmentedConst; - /** Max length of encoded genesis data */ + /** + * Max length of encoded genesis data + **/ maxGenesisDataSize: u32 & AugmentedConst; - /** Max length of para id list */ + /** + * Max length of para id list + **/ maxLengthParaIds: u32 & AugmentedConst; sessionDelay: u32 & AugmentedConst; - /** Generic const */ + /** + * Generic const + **/ [key: string]: Codec; }; relayStorageRoots: { /** - * Limit the number of relay storage roots that will be stored. This limit applies to the number of items, not to - * their age. Decreasing the value of `MaxStorageRoots` is a breaking change and needs a migration to clean the + * Limit the number of relay storage roots that will be stored. + * This limit applies to the number of items, not to their age. Decreasing the value of + * `MaxStorageRoots` is a breaking change and needs a migration to clean the * `RelayStorageRoots` mapping. - */ + **/ maxStorageRoots: u32 & AugmentedConst; - /** Generic const */ + /** + * Generic const + **/ [key: string]: Codec; }; servicesPayment: { - /** The maximum number of block production credits that can be accumulated */ + /** + * The maximum number of block production credits that can be accumulated + **/ freeBlockProductionCredits: u32 & AugmentedConst; - /** The maximum number of collator assigment production credits that can be accumulated */ + /** + * The maximum number of collator assigment production credits that can be accumulated + **/ freeCollatorAssignmentCredits: u32 & AugmentedConst; - /** Generic const */ + /** + * Generic const + **/ [key: string]: Codec; }; streamPayment: { openStreamHoldAmount: u128 & AugmentedConst; - /** Generic const */ + /** + * Generic const + **/ [key: string]: Codec; }; system: { - /** Maximum number of block number to block hash mappings to keep (oldest pruned first). */ + /** + * Maximum number of block number to block hash mappings to keep (oldest pruned first). + **/ blockHashCount: u32 & AugmentedConst; - /** The maximum length of a block (in bytes). */ + /** + * The maximum length of a block (in bytes). + **/ blockLength: FrameSystemLimitsBlockLength & AugmentedConst; - /** Block & extrinsics weights: base values and limits. */ + /** + * Block & extrinsics weights: base values and limits. + **/ blockWeights: FrameSystemLimitsBlockWeights & AugmentedConst; - /** The weight of runtime database operations the runtime can invoke. */ + /** + * The weight of runtime database operations the runtime can invoke. + **/ dbWeight: SpWeightsRuntimeDbWeight & AugmentedConst; /** * The designated SS58 prefix of this chain. * - * This replaces the "ss58Format" property declared in the chain spec. Reason is that the runtime should know - * about the prefix in order to make use of it as an identifier of the chain. - */ + * This replaces the "ss58Format" property declared in the chain spec. Reason is + * that the runtime should know about the prefix in order to make use of it as + * an identifier of the chain. + **/ ss58Prefix: u16 & AugmentedConst; - /** Get the chain's in-code version. */ + /** + * Get the chain's in-code version. + **/ version: SpVersionRuntimeVersion & AugmentedConst; - /** Generic const */ + /** + * Generic const + **/ [key: string]: Codec; }; timestamp: { /** * The minimum period between blocks. * - * Be aware that this is different to the _expected_ period that the block production apparatus provides. Your - * chosen consensus system will generally work with this to determine a sensible block time. For example, in the - * Aura pallet it will be double this period on default settings. - */ + * Be aware that this is different to the *expected* period that the block production + * apparatus provides. Your chosen consensus system will generally work with this to + * determine a sensible block time. For example, in the Aura pallet it will be double this + * period on default settings. + **/ minimumPeriod: u64 & AugmentedConst; - /** Generic const */ + /** + * Generic const + **/ [key: string]: Codec; }; transactionPayment: { /** - * A fee multiplier for `Operational` extrinsics to compute "virtual tip" to boost their `priority` + * A fee multiplier for `Operational` extrinsics to compute "virtual tip" to boost their + * `priority` * - * This value is multiplied by the `final_fee` to obtain a "virtual tip" that is later added to a tip component in - * regular `priority` calculations. It means that a `Normal` transaction can front-run a similarly-sized - * `Operational` extrinsic (with no tip), by including a tip value greater than the virtual tip. + * This value is multiplied by the `final_fee` to obtain a "virtual tip" that is later + * added to a tip component in regular `priority` calculations. + * It means that a `Normal` transaction can front-run a similarly-sized `Operational` + * extrinsic (with no tip), by including a tip value greater than the virtual tip. * * ```rust,ignore * // For `Normal` @@ -352,30 +471,43 @@ declare module "@polkadot/api-base/types/consts" { * let priority = priority_calc(tip + virtual_tip); * ``` * - * Note that since we use `final_fee` the multiplier applies also to the regular `tip` sent with the transaction. - * So, not only does the transaction get a priority bump based on the `inclusion_fee`, but we also amplify the - * impact of tips applied to `Operational` transactions. - */ + * Note that since we use `final_fee` the multiplier applies also to the regular `tip` + * sent with the transaction. So, not only does the transaction get a priority bump based + * on the `inclusion_fee`, but we also amplify the impact of tips applied to `Operational` + * transactions. + **/ operationalFeeMultiplier: u8 & AugmentedConst; - /** Generic const */ + /** + * Generic const + **/ [key: string]: Codec; }; treasury: { - /** Percentage of spare funds (if any) that are burnt per spend period. */ + /** + * Percentage of spare funds (if any) that are burnt per spend period. + **/ burn: Permill & AugmentedConst; /** * The maximum number of approvals that can wait in the spending queue. * * NOTE: This parameter is also used within the Bounties Pallet extension if enabled. - */ + **/ maxApprovals: u32 & AugmentedConst; - /** The treasury's pallet id, used for deriving its sovereign account ID. */ + /** + * The treasury's pallet id, used for deriving its sovereign account ID. + **/ palletId: FrameSupportPalletId & AugmentedConst; - /** The period during which an approved treasury spend has to be claimed. */ + /** + * The period during which an approved treasury spend has to be claimed. + **/ payoutPeriod: u32 & AugmentedConst; - /** Period between successive spends. */ + /** + * Period between successive spends. + **/ spendPeriod: u32 & AugmentedConst; - /** Generic const */ + /** + * Generic const + **/ [key: string]: Codec; }; txPause: { @@ -383,66 +515,85 @@ declare module "@polkadot/api-base/types/consts" { * Maximum length for pallet name and call name SCALE encoded string names. * * TOO LONG NAMES WILL BE TREATED AS PAUSED. - */ + **/ maxNameLen: u32 & AugmentedConst; - /** Generic const */ + /** + * Generic const + **/ [key: string]: Codec; }; utility: { - /** The limit on the number of batched calls. */ + /** + * The limit on the number of batched calls. + **/ batchedCallsLimit: u32 & AugmentedConst; - /** Generic const */ + /** + * Generic const + **/ [key: string]: Codec; }; xcmCoreBuyer: { /** * Additional ttl for in flight orders (total would be CoreBuyingXCMQueryTtl + AdditionalTtlForInflightOrders) * after which the in flight orders can be cleaned up by anyone. - */ + **/ additionalTtlForInflightOrders: u32 & AugmentedConst; - /** Slot drift allowed for core buying */ + /** + * Slot drift allowed for core buying + **/ buyCoreSlotDrift: u64 & AugmentedConst; - /** TTL to be used in xcm's notify query */ + /** + * TTL to be used in xcm's notify query + **/ coreBuyingXCMQueryTtl: u32 & AugmentedConst; - /** TTL for pending blocks entry, which prevents anyone to submit another core buying xcm. */ + /** + * TTL for pending blocks entry, which prevents anyone to submit another core buying xcm. + **/ pendingBlocksTtl: u32 & AugmentedConst; universalLocation: StagingXcmV4Junctions & AugmentedConst; /** * A configuration for base priority of unsigned transactions. * - * This is exposed so that it can be tuned for particular runtime, when multiple pallets send unsigned - * transactions. - */ + * This is exposed so that it can be tuned for particular runtime, when + * multiple pallets send unsigned transactions. + **/ unsignedPriority: u64 & AugmentedConst; - /** Generic const */ + /** + * Generic const + **/ [key: string]: Codec; }; xcmpQueue: { /** * Maximal number of outbound XCMP channels that can have messages queued at the same time. * - * If this is reached, then no further messages can be sent to channels that do not yet have a message queued. - * This should be set to the expected maximum of outbound channels which is determined by [`Self::ChannelInfo`]. - * It is important to set this large enough, since otherwise the congestion control protocol will not work as - * intended and messages may be dropped. This value increases the PoV and should therefore not be picked too high. - * Governance needs to pay attention to not open more channels than this value. - */ + * If this is reached, then no further messages can be sent to channels that do not yet + * have a message queued. This should be set to the expected maximum of outbound channels + * which is determined by [`Self::ChannelInfo`]. It is important to set this large enough, + * since otherwise the congestion control protocol will not work as intended and messages + * may be dropped. This value increases the PoV and should therefore not be picked too + * high. Governance needs to pay attention to not open more channels than this value. + **/ maxActiveOutboundChannels: u32 & AugmentedConst; /** * The maximum number of inbound XCMP channels that can be suspended simultaneously. * - * Any further channel suspensions will fail and messages may get dropped without further notice. Choosing a high - * value (1000) is okay; the trade-off that is described in [`InboundXcmpSuspended`] still applies at that scale. - */ + * Any further channel suspensions will fail and messages may get dropped without further + * notice. Choosing a high value (1000) is okay; the trade-off that is described in + * [`InboundXcmpSuspended`] still applies at that scale. + **/ maxInboundSuspended: u32 & AugmentedConst; /** * The maximal page size for HRMP message pages. * - * A lower limit can be set dynamically, but this is the hard-limit for the PoV worst case benchmarking. The limit - * for the size of a message is slightly below this, since some overhead is incurred for encoding the format. - */ + * A lower limit can be set dynamically, but this is the hard-limit for the PoV worst case + * benchmarking. The limit for the size of a message is slightly below this, since some + * overhead is incurred for encoding the format. + **/ maxPageSize: u32 & AugmentedConst; - /** Generic const */ + /** + * Generic const + **/ [key: string]: Codec; }; } // AugmentedConsts diff --git a/typescript-api/src/dancebox/interfaces/augment-api-errors.ts b/typescript-api/src/dancebox/interfaces/augment-api-errors.ts index a8813831c..3109beeaa 100644 --- a/typescript-api/src/dancebox/interfaces/augment-api-errors.ts +++ b/typescript-api/src/dancebox/interfaces/augment-api-errors.ts @@ -12,23 +12,39 @@ export type __AugmentedError = AugmentedError declare module "@polkadot/api-base/types/errors" { interface AugmentedErrors { assetRate: { - /** The given asset ID already has an assigned conversion rate and cannot be re-created. */ + /** + * The given asset ID already has an assigned conversion rate and cannot be re-created. + **/ AlreadyExists: AugmentedError; - /** Overflow ocurred when calculating the inverse rate. */ + /** + * Overflow ocurred when calculating the inverse rate. + **/ Overflow: AugmentedError; - /** The given asset ID is unknown. */ + /** + * The given asset ID is unknown. + **/ UnknownAssetKind: AugmentedError; - /** Generic error */ + /** + * Generic error + **/ [key: string]: AugmentedError; }; authorInherent: { - /** Author already set in block. */ + /** + * Author already set in block. + **/ AuthorAlreadySet: AugmentedError; - /** The author in the inherent is not an eligible author. */ + /** + * The author in the inherent is not an eligible author. + **/ CannotBeAuthor: AugmentedError; - /** No AccountId was found to be associated with this author */ + /** + * No AccountId was found to be associated with this author + **/ NoAccountId: AugmentedError; - /** Generic error */ + /** + * Generic error + **/ [key: string]: AugmentedError; }; authorNoting: { @@ -36,350 +52,629 @@ declare module "@polkadot/api-base/types/errors" { AuraDigestFirstItem: AugmentedError; AuthorNotFound: AugmentedError; FailedDecodingHeader: AugmentedError; - /** The new value for a configuration parameter is invalid. */ + /** + * The new value for a configuration parameter is invalid. + **/ FailedReading: AugmentedError; NonAuraDigest: AugmentedError; NonDecodableSlot: AugmentedError; - /** Generic error */ + /** + * Generic error + **/ [key: string]: AugmentedError; }; balances: { - /** Beneficiary account must pre-exist. */ + /** + * Beneficiary account must pre-exist. + **/ DeadAccount: AugmentedError; - /** The delta cannot be zero. */ + /** + * The delta cannot be zero. + **/ DeltaZero: AugmentedError; - /** Value too low to create account due to existential deposit. */ + /** + * Value too low to create account due to existential deposit. + **/ ExistentialDeposit: AugmentedError; - /** A vesting schedule already exists for this account. */ + /** + * A vesting schedule already exists for this account. + **/ ExistingVestingSchedule: AugmentedError; - /** Transfer/payment would kill account. */ + /** + * Transfer/payment would kill account. + **/ Expendability: AugmentedError; - /** Balance too low to send value. */ + /** + * Balance too low to send value. + **/ InsufficientBalance: AugmentedError; - /** The issuance cannot be modified since it is already deactivated. */ + /** + * The issuance cannot be modified since it is already deactivated. + **/ IssuanceDeactivated: AugmentedError; - /** Account liquidity restrictions prevent withdrawal. */ + /** + * Account liquidity restrictions prevent withdrawal. + **/ LiquidityRestrictions: AugmentedError; - /** Number of freezes exceed `MaxFreezes`. */ + /** + * Number of freezes exceed `MaxFreezes`. + **/ TooManyFreezes: AugmentedError; - /** Number of holds exceed `VariantCountOf`. */ + /** + * Number of holds exceed `VariantCountOf`. + **/ TooManyHolds: AugmentedError; - /** Number of named reserves exceed `MaxReserves`. */ + /** + * Number of named reserves exceed `MaxReserves`. + **/ TooManyReserves: AugmentedError; - /** Vesting balance too high to send value. */ + /** + * Vesting balance too high to send value. + **/ VestingBalance: AugmentedError; - /** Generic error */ + /** + * Generic error + **/ [key: string]: AugmentedError; }; configuration: { - /** The new value for a configuration parameter is invalid. */ + /** + * The new value for a configuration parameter is invalid. + **/ InvalidNewValue: AugmentedError; - /** Generic error */ + /** + * Generic error + **/ [key: string]: AugmentedError; }; dataPreservers: { /** - * Made for `AssignmentPayment` implementors to report a mismatch between `ProviderRequest` and - * `AssignerParameter`. - */ + * Made for `AssignmentPayment` implementors to report a mismatch between + * `ProviderRequest` and `AssignerParameter`. + **/ AssignmentPaymentRequestParameterMismatch: AugmentedError; CantDeleteAssignedProfile: AugmentedError; MaxAssignmentsPerParaIdReached: AugmentedError; NextProfileIdShouldBeAvailable: AugmentedError; - /** This container chain does not have any boot nodes */ + /** + * This container chain does not have any boot nodes + **/ NoBootNodes: AugmentedError; ProfileAlreadyAssigned: AugmentedError; ProfileIsNotElligibleForParaId: AugmentedError; ProfileNotAssigned: AugmentedError; UnknownProfileId: AugmentedError; WrongParaId: AugmentedError; - /** Generic error */ + /** + * Generic error + **/ [key: string]: AugmentedError; }; foreignAssets: { - /** The asset-account already exists. */ + /** + * The asset-account already exists. + **/ AlreadyExists: AugmentedError; - /** The asset is not live, and likely being destroyed. */ + /** + * The asset is not live, and likely being destroyed. + **/ AssetNotLive: AugmentedError; - /** The asset ID must be equal to the [`NextAssetId`]. */ + /** + * The asset ID must be equal to the [`NextAssetId`]. + **/ BadAssetId: AugmentedError; - /** Invalid metadata given. */ + /** + * Invalid metadata given. + **/ BadMetadata: AugmentedError; - /** Invalid witness data given. */ + /** + * Invalid witness data given. + **/ BadWitness: AugmentedError; - /** Account balance must be greater than or equal to the transfer amount. */ + /** + * Account balance must be greater than or equal to the transfer amount. + **/ BalanceLow: AugmentedError; - /** Callback action resulted in error */ + /** + * Callback action resulted in error + **/ CallbackFailed: AugmentedError; - /** The origin account is frozen. */ + /** + * The origin account is frozen. + **/ Frozen: AugmentedError; - /** The asset status is not the expected status. */ + /** + * The asset status is not the expected status. + **/ IncorrectStatus: AugmentedError; - /** The asset ID is already taken. */ + /** + * The asset ID is already taken. + **/ InUse: AugmentedError; /** - * The asset is a live asset and is actively being used. Usually emit for operations such as `start_destroy` which - * require the asset to be in a destroying state. - */ + * The asset is a live asset and is actively being used. Usually emit for operations such + * as `start_destroy` which require the asset to be in a destroying state. + **/ LiveAsset: AugmentedError; - /** Minimum balance should be non-zero. */ + /** + * Minimum balance should be non-zero. + **/ MinBalanceZero: AugmentedError; - /** The account to alter does not exist. */ + /** + * The account to alter does not exist. + **/ NoAccount: AugmentedError; - /** The asset-account doesn't have an associated deposit. */ + /** + * The asset-account doesn't have an associated deposit. + **/ NoDeposit: AugmentedError; - /** The signing account has no permission to do the operation. */ + /** + * The signing account has no permission to do the operation. + **/ NoPermission: AugmentedError; - /** The asset should be frozen before the given operation. */ + /** + * The asset should be frozen before the given operation. + **/ NotFrozen: AugmentedError; - /** No approval exists that would allow the transfer. */ + /** + * No approval exists that would allow the transfer. + **/ Unapproved: AugmentedError; /** - * Unable to increment the consumer reference counters on the account. Either no provider reference exists to - * allow a non-zero balance of a non-self-sufficient asset, or one fewer then the maximum number of consumers has - * been reached. - */ + * Unable to increment the consumer reference counters on the account. Either no provider + * reference exists to allow a non-zero balance of a non-self-sufficient asset, or one + * fewer then the maximum number of consumers has been reached. + **/ UnavailableConsumer: AugmentedError; - /** The given asset ID is unknown. */ + /** + * The given asset ID is unknown. + **/ Unknown: AugmentedError; - /** The operation would result in funds being burned. */ + /** + * The operation would result in funds being burned. + **/ WouldBurn: AugmentedError; - /** The source account would not survive the transfer and it needs to stay alive. */ + /** + * The source account would not survive the transfer and it needs to stay alive. + **/ WouldDie: AugmentedError; - /** Generic error */ + /** + * Generic error + **/ [key: string]: AugmentedError; }; foreignAssetsCreator: { AssetAlreadyExists: AugmentedError; AssetDoesNotExist: AugmentedError; - /** Generic error */ + /** + * Generic error + **/ [key: string]: AugmentedError; }; identity: { - /** Account ID is already named. */ + /** + * Account ID is already named. + **/ AlreadyClaimed: AugmentedError; - /** Empty index. */ + /** + * Empty index. + **/ EmptyIndex: AugmentedError; - /** Fee is changed. */ + /** + * Fee is changed. + **/ FeeChanged: AugmentedError; - /** The index is invalid. */ + /** + * The index is invalid. + **/ InvalidIndex: AugmentedError; - /** Invalid judgement. */ + /** + * Invalid judgement. + **/ InvalidJudgement: AugmentedError; - /** The signature on a username was not valid. */ + /** + * The signature on a username was not valid. + **/ InvalidSignature: AugmentedError; - /** The provided suffix is too long. */ + /** + * The provided suffix is too long. + **/ InvalidSuffix: AugmentedError; - /** The target is invalid. */ + /** + * The target is invalid. + **/ InvalidTarget: AugmentedError; - /** The username does not meet the requirements. */ + /** + * The username does not meet the requirements. + **/ InvalidUsername: AugmentedError; - /** The provided judgement was for a different identity. */ + /** + * The provided judgement was for a different identity. + **/ JudgementForDifferentIdentity: AugmentedError; - /** Judgement given. */ + /** + * Judgement given. + **/ JudgementGiven: AugmentedError; - /** Error that occurs when there is an issue paying for judgement. */ + /** + * Error that occurs when there is an issue paying for judgement. + **/ JudgementPaymentFailed: AugmentedError; - /** The authority cannot allocate any more usernames. */ + /** + * The authority cannot allocate any more usernames. + **/ NoAllocation: AugmentedError; - /** No identity found. */ + /** + * No identity found. + **/ NoIdentity: AugmentedError; - /** The username cannot be forcefully removed because it can still be accepted. */ + /** + * The username cannot be forcefully removed because it can still be accepted. + **/ NotExpired: AugmentedError; - /** Account isn't found. */ + /** + * Account isn't found. + **/ NotFound: AugmentedError; - /** Account isn't named. */ + /** + * Account isn't named. + **/ NotNamed: AugmentedError; - /** Sub-account isn't owned by sender. */ + /** + * Sub-account isn't owned by sender. + **/ NotOwned: AugmentedError; - /** Sender is not a sub-account. */ + /** + * Sender is not a sub-account. + **/ NotSub: AugmentedError; - /** The sender does not have permission to issue a username. */ + /** + * The sender does not have permission to issue a username. + **/ NotUsernameAuthority: AugmentedError; - /** The requested username does not exist. */ + /** + * The requested username does not exist. + **/ NoUsername: AugmentedError; - /** Setting this username requires a signature, but none was provided. */ + /** + * Setting this username requires a signature, but none was provided. + **/ RequiresSignature: AugmentedError; - /** Sticky judgement. */ + /** + * Sticky judgement. + **/ StickyJudgement: AugmentedError; - /** Maximum amount of registrars reached. Cannot add any more. */ + /** + * Maximum amount of registrars reached. Cannot add any more. + **/ TooManyRegistrars: AugmentedError; - /** Too many subs-accounts. */ + /** + * Too many subs-accounts. + **/ TooManySubAccounts: AugmentedError; - /** The username is already taken. */ + /** + * The username is already taken. + **/ UsernameTaken: AugmentedError; - /** Generic error */ + /** + * Generic error + **/ [key: string]: AugmentedError; }; invulnerables: { - /** Account is already an Invulnerable. */ + /** + * Account is already an Invulnerable. + **/ AlreadyInvulnerable: AugmentedError; - /** Account does not have keys registered */ + /** + * Account does not have keys registered + **/ NoKeysRegistered: AugmentedError; - /** Account is not an Invulnerable. */ + /** + * Account is not an Invulnerable. + **/ NotInvulnerable: AugmentedError; - /** There are too many Invulnerables. */ + /** + * There are too many Invulnerables. + **/ TooManyInvulnerables: AugmentedError; - /** Unable to derive collator id from account id */ + /** + * Unable to derive collator id from account id + **/ UnableToDeriveCollatorId: AugmentedError; - /** Generic error */ + /** + * Generic error + **/ [key: string]: AugmentedError; }; maintenanceMode: { - /** The chain cannot enter maintenance mode because it is already in maintenance mode */ + /** + * The chain cannot enter maintenance mode because it is already in maintenance mode + **/ AlreadyInMaintenanceMode: AugmentedError; - /** The chain cannot resume normal operation because it is not in maintenance mode */ + /** + * The chain cannot resume normal operation because it is not in maintenance mode + **/ NotInMaintenanceMode: AugmentedError; - /** Generic error */ + /** + * Generic error + **/ [key: string]: AugmentedError; }; messageQueue: { - /** The message was already processed and cannot be processed again. */ + /** + * The message was already processed and cannot be processed again. + **/ AlreadyProcessed: AugmentedError; - /** There is temporarily not enough weight to continue servicing messages. */ + /** + * There is temporarily not enough weight to continue servicing messages. + **/ InsufficientWeight: AugmentedError; - /** The referenced message could not be found. */ + /** + * The referenced message could not be found. + **/ NoMessage: AugmentedError; - /** Page to be reaped does not exist. */ + /** + * Page to be reaped does not exist. + **/ NoPage: AugmentedError; - /** Page is not reapable because it has items remaining to be processed and is not old enough. */ + /** + * Page is not reapable because it has items remaining to be processed and is not old + * enough. + **/ NotReapable: AugmentedError; - /** The message is queued for future execution. */ + /** + * The message is queued for future execution. + **/ Queued: AugmentedError; /** * The queue is paused and no message can be executed from it. * * This can change at any time and may resolve in the future by re-trying. - */ + **/ QueuePaused: AugmentedError; - /** Another call is in progress and needs to finish before this call can happen. */ + /** + * Another call is in progress and needs to finish before this call can happen. + **/ RecursiveDisallowed: AugmentedError; /** * This message is temporarily unprocessable. * - * Such errors are expected, but not guaranteed, to resolve themselves eventually through retrying. - */ + * Such errors are expected, but not guaranteed, to resolve themselves eventually through + * retrying. + **/ TemporarilyUnprocessable: AugmentedError; - /** Generic error */ + /** + * Generic error + **/ [key: string]: AugmentedError; }; migrations: { - /** Preimage already exists in the new storage. */ + /** + * Preimage already exists in the new storage. + **/ PreimageAlreadyExists: AugmentedError; - /** Preimage is larger than the new max size. */ + /** + * Preimage is larger than the new max size. + **/ PreimageIsTooBig: AugmentedError; - /** Missing preimage in original democracy storage */ + /** + * Missing preimage in original democracy storage + **/ PreimageMissing: AugmentedError; - /** Provided upper bound is too low. */ + /** + * Provided upper bound is too low. + **/ WrongUpperBound: AugmentedError; - /** Generic error */ + /** + * Generic error + **/ [key: string]: AugmentedError; }; multisig: { - /** Call is already approved by this signatory. */ + /** + * Call is already approved by this signatory. + **/ AlreadyApproved: AugmentedError; - /** The data to be stored is already stored. */ + /** + * The data to be stored is already stored. + **/ AlreadyStored: AugmentedError; - /** The maximum weight information provided was too low. */ + /** + * The maximum weight information provided was too low. + **/ MaxWeightTooLow: AugmentedError; - /** Threshold must be 2 or greater. */ + /** + * Threshold must be 2 or greater. + **/ MinimumThreshold: AugmentedError; - /** Call doesn't need any (more) approvals. */ + /** + * Call doesn't need any (more) approvals. + **/ NoApprovalsNeeded: AugmentedError; - /** Multisig operation not found when attempting to cancel. */ + /** + * Multisig operation not found when attempting to cancel. + **/ NotFound: AugmentedError; - /** No timepoint was given, yet the multisig operation is already underway. */ + /** + * No timepoint was given, yet the multisig operation is already underway. + **/ NoTimepoint: AugmentedError; - /** Only the account that originally created the multisig is able to cancel it. */ + /** + * Only the account that originally created the multisig is able to cancel it. + **/ NotOwner: AugmentedError; - /** The sender was contained in the other signatories; it shouldn't be. */ + /** + * The sender was contained in the other signatories; it shouldn't be. + **/ SenderInSignatories: AugmentedError; - /** The signatories were provided out of order; they should be ordered. */ + /** + * The signatories were provided out of order; they should be ordered. + **/ SignatoriesOutOfOrder: AugmentedError; - /** There are too few signatories in the list. */ + /** + * There are too few signatories in the list. + **/ TooFewSignatories: AugmentedError; - /** There are too many signatories in the list. */ + /** + * There are too many signatories in the list. + **/ TooManySignatories: AugmentedError; - /** A timepoint was given, yet no multisig operation is underway. */ + /** + * A timepoint was given, yet no multisig operation is underway. + **/ UnexpectedTimepoint: AugmentedError; - /** A different timepoint was given to the multisig operation that is underway. */ + /** + * A different timepoint was given to the multisig operation that is underway. + **/ WrongTimepoint: AugmentedError; - /** Generic error */ + /** + * Generic error + **/ [key: string]: AugmentedError; }; parachainSystem: { - /** The inherent which supplies the host configuration did not run this block. */ + /** + * The inherent which supplies the host configuration did not run this block. + **/ HostConfigurationNotAvailable: AugmentedError; - /** No code upgrade has been authorized. */ + /** + * No code upgrade has been authorized. + **/ NothingAuthorized: AugmentedError; - /** No validation function upgrade is currently scheduled. */ + /** + * No validation function upgrade is currently scheduled. + **/ NotScheduled: AugmentedError; - /** Attempt to upgrade validation function while existing upgrade pending. */ + /** + * Attempt to upgrade validation function while existing upgrade pending. + **/ OverlappingUpgrades: AugmentedError; - /** Polkadot currently prohibits this parachain from upgrading its validation function. */ + /** + * Polkadot currently prohibits this parachain from upgrading its validation function. + **/ ProhibitedByPolkadot: AugmentedError; - /** The supplied validation function has compiled into a blob larger than Polkadot is willing to run. */ + /** + * The supplied validation function has compiled into a blob larger than Polkadot is + * willing to run. + **/ TooBig: AugmentedError; - /** The given code upgrade has not been authorized. */ + /** + * The given code upgrade has not been authorized. + **/ Unauthorized: AugmentedError; - /** The inherent which supplies the validation data did not run this block. */ + /** + * The inherent which supplies the validation data did not run this block. + **/ ValidationDataNotAvailable: AugmentedError; - /** Generic error */ + /** + * Generic error + **/ [key: string]: AugmentedError; }; polkadotXcm: { - /** The given account is not an identifiable sovereign account for any location. */ + /** + * The given account is not an identifiable sovereign account for any location. + **/ AccountNotSovereign: AugmentedError; - /** The location is invalid since it already has a subscription from us. */ + /** + * The location is invalid since it already has a subscription from us. + **/ AlreadySubscribed: AugmentedError; - /** The given location could not be used (e.g. because it cannot be expressed in the desired version of XCM). */ + /** + * The given location could not be used (e.g. because it cannot be expressed in the + * desired version of XCM). + **/ BadLocation: AugmentedError; - /** The version of the `Versioned` value used is not able to be interpreted. */ + /** + * The version of the `Versioned` value used is not able to be interpreted. + **/ BadVersion: AugmentedError; - /** Could not check-out the assets for teleportation to the destination chain. */ + /** + * Could not check-out the assets for teleportation to the destination chain. + **/ CannotCheckOutTeleport: AugmentedError; - /** Could not re-anchor the assets to declare the fees for the destination chain. */ + /** + * Could not re-anchor the assets to declare the fees for the destination chain. + **/ CannotReanchor: AugmentedError; - /** The destination `Location` provided cannot be inverted. */ + /** + * The destination `Location` provided cannot be inverted. + **/ DestinationNotInvertible: AugmentedError; - /** The assets to be sent are empty. */ + /** + * The assets to be sent are empty. + **/ Empty: AugmentedError; - /** The operation required fees to be paid which the initiator could not meet. */ + /** + * The operation required fees to be paid which the initiator could not meet. + **/ FeesNotMet: AugmentedError; - /** The message execution fails the filter. */ + /** + * The message execution fails the filter. + **/ Filtered: AugmentedError; - /** The unlock operation cannot succeed because there are still consumers of the lock. */ + /** + * The unlock operation cannot succeed because there are still consumers of the lock. + **/ InUse: AugmentedError; - /** Invalid asset, reserve chain could not be determined for it. */ + /** + * Invalid asset, reserve chain could not be determined for it. + **/ InvalidAssetUnknownReserve: AugmentedError; - /** Invalid asset, do not support remote asset reserves with different fees reserves. */ + /** + * Invalid asset, do not support remote asset reserves with different fees reserves. + **/ InvalidAssetUnsupportedReserve: AugmentedError; - /** Origin is invalid for sending. */ + /** + * Origin is invalid for sending. + **/ InvalidOrigin: AugmentedError; - /** Local XCM execution incomplete. */ + /** + * Local XCM execution incomplete. + **/ LocalExecutionIncomplete: AugmentedError; - /** A remote lock with the corresponding data could not be found. */ + /** + * A remote lock with the corresponding data could not be found. + **/ LockNotFound: AugmentedError; - /** The owner does not own (all) of the asset that they wish to do the operation on. */ + /** + * The owner does not own (all) of the asset that they wish to do the operation on. + **/ LowBalance: AugmentedError; - /** The referenced subscription could not be found. */ + /** + * The referenced subscription could not be found. + **/ NoSubscription: AugmentedError; /** - * There was some other issue (i.e. not to do with routing) in sending the message. Perhaps a lack of space for - * buffering the message. - */ + * There was some other issue (i.e. not to do with routing) in sending the message. + * Perhaps a lack of space for buffering the message. + **/ SendFailure: AugmentedError; - /** Too many assets have been attempted for transfer. */ + /** + * Too many assets have been attempted for transfer. + **/ TooManyAssets: AugmentedError; - /** The asset owner has too many locks on the asset. */ + /** + * The asset owner has too many locks on the asset. + **/ TooManyLocks: AugmentedError; - /** Too many assets with different reserve locations have been attempted for transfer. */ + /** + * Too many assets with different reserve locations have been attempted for transfer. + **/ TooManyReserves: AugmentedError; - /** The desired destination was unreachable, generally because there is a no way of routing to it. */ + /** + * The desired destination was unreachable, generally because there is a no way of routing + * to it. + **/ Unreachable: AugmentedError; - /** The message's weight could not be determined. */ + /** + * The message's weight could not be determined. + **/ UnweighableMessage: AugmentedError; - /** Generic error */ + /** + * Generic error + **/ [key: string]: AugmentedError; }; pooledStaking: { @@ -397,86 +692,156 @@ declare module "@polkadot/api-base/types/errors" { SwapResultsInZeroShares: AugmentedError; TryingToLeaveTooSoon: AugmentedError; UnsufficientSharesForTransfer: AugmentedError; - /** Generic error */ + /** + * Generic error + **/ [key: string]: AugmentedError; }; proxy: { - /** Account is already a proxy. */ + /** + * Account is already a proxy. + **/ Duplicate: AugmentedError; - /** Call may not be made by proxy because it may escalate its privileges. */ + /** + * Call may not be made by proxy because it may escalate its privileges. + **/ NoPermission: AugmentedError; - /** Cannot add self as proxy. */ + /** + * Cannot add self as proxy. + **/ NoSelfProxy: AugmentedError; - /** Proxy registration not found. */ + /** + * Proxy registration not found. + **/ NotFound: AugmentedError; - /** Sender is not a proxy of the account to be proxied. */ + /** + * Sender is not a proxy of the account to be proxied. + **/ NotProxy: AugmentedError; - /** There are too many proxies registered or too many announcements pending. */ + /** + * There are too many proxies registered or too many announcements pending. + **/ TooMany: AugmentedError; - /** Announcement, if made at all, was made too recently. */ + /** + * Announcement, if made at all, was made too recently. + **/ Unannounced: AugmentedError; - /** A call which is incompatible with the proxy type's filter was attempted. */ + /** + * A call which is incompatible with the proxy type's filter was attempted. + **/ Unproxyable: AugmentedError; - /** Generic error */ + /** + * Generic error + **/ [key: string]: AugmentedError; }; registrar: { - /** Attempted to register a ParaId with a genesis data size greater than the limit */ + /** + * Attempted to register a ParaId with a genesis data size greater than the limit + **/ GenesisDataTooBig: AugmentedError; - /** Tried to register a paraId in a relay context without specifying a proper HeadData. */ + /** + * Tried to register a paraId in a relay context without specifying a proper HeadData. + **/ HeadDataNecessary: AugmentedError; - /** The provided signature from the parachain manager in the relay is not valid */ + /** + * The provided signature from the parachain manager in the relay is not valid + **/ InvalidRelayManagerSignature: AugmentedError; - /** The provided relay storage proof is not valid */ + /** + * The provided relay storage proof is not valid + **/ InvalidRelayStorageProof: AugmentedError; - /** Tried to change parathread params for a para id that is not a registered parathread */ + /** + * Tried to change parathread params for a para id that is not a registered parathread + **/ NotAParathread: AugmentedError; - /** Attempted to execute an extrinsic meant only for the para creator */ + /** + * Attempted to execute an extrinsic meant only for the para creator + **/ NotParaCreator: AugmentedError; - /** Tried to register a ParaId with an account that did not have enough balance for the deposit */ + /** + * Tried to register a ParaId with an account that did not have enough balance for the deposit + **/ NotSufficientDeposit: AugmentedError; - /** Attempted to deregister a ParaId that is already being deregistered */ + /** + * Attempted to deregister a ParaId that is already being deregistered + **/ ParaIdAlreadyDeregistered: AugmentedError; - /** Attempted to pause a ParaId that was already paused */ + /** + * Attempted to pause a ParaId that was already paused + **/ ParaIdAlreadyPaused: AugmentedError; - /** Attempted to register a ParaId that was already registered */ + /** + * Attempted to register a ParaId that was already registered + **/ ParaIdAlreadyRegistered: AugmentedError; - /** The bounded list of ParaIds has reached its limit */ + /** + * The bounded list of ParaIds has reached its limit + **/ ParaIdListFull: AugmentedError; - /** Tried to mark_valid_for_collating a ParaId that is not in PendingVerification */ + /** + * Tried to mark_valid_for_collating a ParaId that is not in PendingVerification + **/ ParaIdNotInPendingVerification: AugmentedError; - /** Attempted to unpause a ParaId that was not paused */ + /** + * Attempted to unpause a ParaId that was not paused + **/ ParaIdNotPaused: AugmentedError; - /** Attempted to deregister a ParaId that is not registered */ + /** + * Attempted to deregister a ParaId that is not registered + **/ ParaIdNotRegistered: AugmentedError; - /** Tried to deregister a parachain that was not deregistered from the relay chain */ + /** + * Tried to deregister a parachain that was not deregistered from the relay chain + **/ ParaStillExistsInRelay: AugmentedError; - /** The relay storage root for the corresponding block number could not be retrieved */ + /** + * The relay storage root for the corresponding block number could not be retrieved + **/ RelayStorageRootNotFound: AugmentedError; - /** Tried to register a paraId in a relay context without specifying a wasm chain code. */ + /** + * Tried to register a paraId in a relay context without specifying a wasm chain code. + **/ WasmCodeNecessary: AugmentedError; - /** Generic error */ + /** + * Generic error + **/ [key: string]: AugmentedError; }; servicesPayment: { CreditPriceTooExpensive: AugmentedError; InsufficientCredits: AugmentedError; InsufficientFundsToPurchaseCredits: AugmentedError; - /** Generic error */ + /** + * Generic error + **/ [key: string]: AugmentedError; }; session: { - /** Registered duplicate key. */ + /** + * Registered duplicate key. + **/ DuplicatedKey: AugmentedError; - /** Invalid ownership proof. */ + /** + * Invalid ownership proof. + **/ InvalidProof: AugmentedError; - /** Key setting account is not live, so it's impossible to associate keys. */ + /** + * Key setting account is not live, so it's impossible to associate keys. + **/ NoAccount: AugmentedError; - /** No associated validator ID for account. */ + /** + * No associated validator ID for account. + **/ NoAssociatedValidatorId: AugmentedError; - /** No keys are associated with this account. */ + /** + * No keys are associated with this account. + **/ NoKeys: AugmentedError; - /** Generic error */ + /** + * Generic error + **/ [key: string]: AugmentedError; }; streamPayment: { @@ -497,134 +862,238 @@ declare module "@polkadot/api-base/types/errors" { UnauthorizedOrigin: AugmentedError; UnknownStreamId: AugmentedError; WrongRequestNonce: AugmentedError; - /** Generic error */ + /** + * Generic error + **/ [key: string]: AugmentedError; }; sudo: { - /** Sender must be the Sudo account. */ + /** + * Sender must be the Sudo account. + **/ RequireSudo: AugmentedError; - /** Generic error */ + /** + * Generic error + **/ [key: string]: AugmentedError; }; system: { - /** The origin filter prevent the call to be dispatched. */ + /** + * The origin filter prevent the call to be dispatched. + **/ CallFiltered: AugmentedError; /** * Failed to extract the runtime version from the new runtime. * * Either calling `Core_version` or decoding `RuntimeVersion` failed. - */ + **/ FailedToExtractRuntimeVersion: AugmentedError; - /** The name of specification does not match between the current runtime and the new runtime. */ + /** + * The name of specification does not match between the current runtime + * and the new runtime. + **/ InvalidSpecName: AugmentedError; - /** A multi-block migration is ongoing and prevents the current code from being replaced. */ + /** + * A multi-block migration is ongoing and prevents the current code from being replaced. + **/ MultiBlockMigrationsOngoing: AugmentedError; - /** Suicide called when the account has non-default composite data. */ + /** + * Suicide called when the account has non-default composite data. + **/ NonDefaultComposite: AugmentedError; - /** There is a non-zero reference count preventing the account from being purged. */ + /** + * There is a non-zero reference count preventing the account from being purged. + **/ NonZeroRefCount: AugmentedError; - /** No upgrade authorized. */ + /** + * No upgrade authorized. + **/ NothingAuthorized: AugmentedError; - /** The specification version is not allowed to decrease between the current runtime and the new runtime. */ + /** + * The specification version is not allowed to decrease between the current runtime + * and the new runtime. + **/ SpecVersionNeedsToIncrease: AugmentedError; - /** The submitted code is not authorized. */ + /** + * The submitted code is not authorized. + **/ Unauthorized: AugmentedError; - /** Generic error */ + /** + * Generic error + **/ [key: string]: AugmentedError; }; treasury: { - /** The payment has already been attempted. */ + /** + * The payment has already been attempted. + **/ AlreadyAttempted: AugmentedError; - /** The spend is not yet eligible for payout. */ + /** + * The spend is not yet eligible for payout. + **/ EarlyPayout: AugmentedError; - /** The balance of the asset kind is not convertible to the balance of the native asset. */ + /** + * The balance of the asset kind is not convertible to the balance of the native asset. + **/ FailedToConvertBalance: AugmentedError; - /** The payment has neither failed nor succeeded yet. */ + /** + * The payment has neither failed nor succeeded yet. + **/ Inconclusive: AugmentedError; - /** The spend origin is valid but the amount it is allowed to spend is lower than the amount to be spent. */ + /** + * The spend origin is valid but the amount it is allowed to spend is lower than the + * amount to be spent. + **/ InsufficientPermission: AugmentedError; - /** No proposal, bounty or spend at that index. */ + /** + * No proposal, bounty or spend at that index. + **/ InvalidIndex: AugmentedError; - /** The payout was not yet attempted/claimed. */ + /** + * The payout was not yet attempted/claimed. + **/ NotAttempted: AugmentedError; - /** There was some issue with the mechanism of payment. */ + /** + * There was some issue with the mechanism of payment. + **/ PayoutError: AugmentedError; - /** Proposal has not been approved. */ + /** + * Proposal has not been approved. + **/ ProposalNotApproved: AugmentedError; - /** The spend has expired and cannot be claimed. */ + /** + * The spend has expired and cannot be claimed. + **/ SpendExpired: AugmentedError; - /** Too many approvals in the queue. */ + /** + * Too many approvals in the queue. + **/ TooManyApprovals: AugmentedError; - /** Generic error */ + /** + * Generic error + **/ [key: string]: AugmentedError; }; txPause: { - /** The call is paused. */ + /** + * The call is paused. + **/ IsPaused: AugmentedError; - /** The call is unpaused. */ + /** + * The call is unpaused. + **/ IsUnpaused: AugmentedError; NotFound: AugmentedError; - /** The call is whitelisted and cannot be paused. */ + /** + * The call is whitelisted and cannot be paused. + **/ Unpausable: AugmentedError; - /** Generic error */ + /** + * Generic error + **/ [key: string]: AugmentedError; }; utility: { - /** Too many calls batched. */ + /** + * Too many calls batched. + **/ TooManyCalls: AugmentedError; - /** Generic error */ + /** + * Generic error + **/ [key: string]: AugmentedError; }; xcmCoreBuyer: { - /** Block production is pending for para id with successfully placed order */ + /** + * Block production is pending for para id with successfully placed order + **/ BlockProductionPending: AugmentedError; - /** This collator is not assigned to this parathread */ + /** + * This collator is not assigned to this parathread + **/ CollatorNotAssigned: AugmentedError; ErrorDeliveringXCM: AugmentedError; ErrorValidatingXCM: AugmentedError; - /** Collator signature nonce is incorrect */ + /** + * Collator signature nonce is incorrect + **/ IncorrectCollatorSignatureNonce: AugmentedError; - /** There are too many in-flight orders, buying cores will not work until some of those orders finish. */ + /** + * There are too many in-flight orders, buying cores will not work until some of those + * orders finish. + **/ InFlightLimitReached: AugmentedError; - /** Collator signature is invalid */ + /** + * Collator signature is invalid + **/ InvalidCollatorSignature: AugmentedError; InvalidProof: AugmentedError; - /** Inverting location from destination point of view failed */ + /** + * Inverting location from destination point of view failed + **/ LocationInversionFailed: AugmentedError; - /** There are no collators assigned to this parathread, so no point in buying a core */ + /** + * There are no collators assigned to this parathread, so no point in buying a core + **/ NoAssignedCollators: AugmentedError; - /** Block production is not allowed for current slot */ + /** + * Block production is not allowed for current slot + **/ NotAllowedToProduceBlockRightNow: AugmentedError; - /** The para id is not a parathread */ + /** + * The para id is not a parathread + **/ NotAParathread: AugmentedError; - /** An order for this para id already exists */ + /** + * An order for this para id already exists + **/ OrderAlreadyExists: AugmentedError; - /** Converting a multilocation into a relay relative multilocation failed */ + /** + * Converting a multilocation into a relay relative multilocation failed + **/ ReanchorFailed: AugmentedError; - /** Modifying XCM to report the result of XCM failed */ + /** + * Modifying XCM to report the result of XCM failed + **/ ReportNotifyingSetupFailed: AugmentedError; - /** Unexpected XCM response */ + /** + * Unexpected XCM response + **/ UnexpectedXCMResponse: AugmentedError; /** - * The `XcmWeights` storage has not been set. This must have been set by root with the value of the relay chain - * xcm call weight and extrinsic weight - */ + * The `XcmWeights` storage has not been set. This must have been set by root with the + * value of the relay chain xcm call weight and extrinsic weight + **/ XcmWeightStorageNotSet: AugmentedError; - /** Generic error */ + /** + * Generic error + **/ [key: string]: AugmentedError; }; xcmpQueue: { - /** The execution is already resumed. */ + /** + * The execution is already resumed. + **/ AlreadyResumed: AugmentedError; - /** The execution is already suspended. */ + /** + * The execution is already suspended. + **/ AlreadySuspended: AugmentedError; - /** Setting the queue config failed since one of its values was invalid. */ + /** + * Setting the queue config failed since one of its values was invalid. + **/ BadQueueConfig: AugmentedError; - /** The message is too big. */ + /** + * The message is too big. + **/ TooBig: AugmentedError; - /** There are too many active outbound channels. */ + /** + * There are too many active outbound channels. + **/ TooManyActiveOutboundChannels: AugmentedError; - /** Generic error */ + /** + * Generic error + **/ [key: string]: AugmentedError; }; } // AugmentedErrors diff --git a/typescript-api/src/dancebox/interfaces/augment-api-events.ts b/typescript-api/src/dancebox/interfaces/augment-api-events.ts index f270aa92d..0946d0f03 100644 --- a/typescript-api/src/dancebox/interfaces/augment-api-events.ts +++ b/typescript-api/src/dancebox/interfaces/augment-api-events.ts @@ -45,56 +45,87 @@ declare module "@polkadot/api-base/types/events" { [assetKind: u16, old: u128, new_: u128], { assetKind: u16; old: u128; new_: u128 } >; - /** Generic event */ + /** + * Generic event + **/ [key: string]: AugmentedEvent; }; authorNoting: { - /** Latest author changed */ + /** + * Latest author changed + **/ LatestAuthorChanged: AugmentedEvent< ApiType, [paraId: u32, blockNumber: u32, newAuthor: AccountId32, latestSlotNumber: u64], { paraId: u32; blockNumber: u32; newAuthor: AccountId32; latestSlotNumber: u64 } >; - /** Removed author data */ + /** + * Removed author data + **/ RemovedAuthorData: AugmentedEvent; - /** Generic event */ + /** + * Generic event + **/ [key: string]: AugmentedEvent; }; balances: { - /** A balance was set by root. */ + /** + * A balance was set by root. + **/ BalanceSet: AugmentedEvent; - /** Some amount was burned from an account. */ + /** + * Some amount was burned from an account. + **/ Burned: AugmentedEvent; - /** Some amount was deposited (e.g. for transaction fees). */ + /** + * Some amount was deposited (e.g. for transaction fees). + **/ Deposit: AugmentedEvent; - /** An account was removed whose balance was non-zero but below ExistentialDeposit, resulting in an outright loss. */ + /** + * An account was removed whose balance was non-zero but below ExistentialDeposit, + * resulting in an outright loss. + **/ DustLost: AugmentedEvent< ApiType, [account: AccountId32, amount: u128], { account: AccountId32; amount: u128 } >; - /** An account was created with some free balance. */ + /** + * An account was created with some free balance. + **/ Endowed: AugmentedEvent< ApiType, [account: AccountId32, freeBalance: u128], { account: AccountId32; freeBalance: u128 } >; - /** Some balance was frozen. */ + /** + * Some balance was frozen. + **/ Frozen: AugmentedEvent; - /** Total issuance was increased by `amount`, creating a credit to be balanced. */ + /** + * Total issuance was increased by `amount`, creating a credit to be balanced. + **/ Issued: AugmentedEvent; - /** Some balance was locked. */ + /** + * Some balance was locked. + **/ Locked: AugmentedEvent; - /** Some amount was minted into an account. */ + /** + * Some amount was minted into an account. + **/ Minted: AugmentedEvent; - /** Total issuance was decreased by `amount`, creating a debt to be balanced. */ + /** + * Total issuance was decreased by `amount`, creating a debt to be balanced. + **/ Rescinded: AugmentedEvent; - /** Some balance was reserved (moved from free to reserved). */ + /** + * Some balance was reserved (moved from free to reserved). + **/ Reserved: AugmentedEvent; /** - * Some balance was moved from the reserve of the first account to the second account. Final argument indicates - * the destination balance type. - */ + * Some balance was moved from the reserve of the first account to the second account. + * Final argument indicates the destination balance type. + **/ ReserveRepatriated: AugmentedEvent< ApiType, [ @@ -110,31 +141,53 @@ declare module "@polkadot/api-base/types/events" { destinationStatus: FrameSupportTokensMiscBalanceStatus; } >; - /** Some amount was restored into an account. */ + /** + * Some amount was restored into an account. + **/ Restored: AugmentedEvent; - /** Some amount was removed from the account (e.g. for misbehavior). */ + /** + * Some amount was removed from the account (e.g. for misbehavior). + **/ Slashed: AugmentedEvent; - /** Some amount was suspended from an account (it can be restored later). */ + /** + * Some amount was suspended from an account (it can be restored later). + **/ Suspended: AugmentedEvent; - /** Some balance was thawed. */ + /** + * Some balance was thawed. + **/ Thawed: AugmentedEvent; - /** The `TotalIssuance` was forcefully changed. */ + /** + * The `TotalIssuance` was forcefully changed. + **/ TotalIssuanceForced: AugmentedEvent; - /** Transfer succeeded. */ + /** + * Transfer succeeded. + **/ Transfer: AugmentedEvent< ApiType, [from: AccountId32, to: AccountId32, amount: u128], { from: AccountId32; to: AccountId32; amount: u128 } >; - /** Some balance was unlocked. */ + /** + * Some balance was unlocked. + **/ Unlocked: AugmentedEvent; - /** Some balance was unreserved (moved from reserved to free). */ + /** + * Some balance was unreserved (moved from reserved to free). + **/ Unreserved: AugmentedEvent; - /** An account was upgraded. */ + /** + * An account was upgraded. + **/ Upgraded: AugmentedEvent; - /** Some amount was withdrawn from the account (e.g. for transaction fees). */ + /** + * Some amount was withdrawn from the account (e.g. for transaction fees). + **/ Withdraw: AugmentedEvent; - /** Generic event */ + /** + * Generic event + **/ [key: string]: AugmentedEvent; }; collatorAssignment: { @@ -153,23 +206,38 @@ declare module "@polkadot/api-base/types/events" { fullRotationMode: TpTraitsFullRotationModes; } >; - /** Generic event */ + /** + * Generic event + **/ [key: string]: AugmentedEvent; }; cumulusXcm: { - /** Downward message executed with the given outcome. [ id, outcome ] */ + /** + * Downward message executed with the given outcome. + * \[ id, outcome \] + **/ ExecutedDownward: AugmentedEvent; - /** Downward message is invalid XCM. [ id ] */ + /** + * Downward message is invalid XCM. + * \[ id \] + **/ InvalidFormat: AugmentedEvent; - /** Downward message is unsupported version of XCM. [ id ] */ + /** + * Downward message is unsupported version of XCM. + * \[ id \] + **/ UnsupportedVersion: AugmentedEvent; - /** Generic event */ + /** + * Generic event + **/ [key: string]: AugmentedEvent; }; dataPreservers: { AssignmentStarted: AugmentedEvent; AssignmentStopped: AugmentedEvent; - /** The list of boot_nodes changed. */ + /** + * The list of boot_nodes changed. + **/ BootNodesChanged: AugmentedEvent; ProfileCreated: AugmentedEvent< ApiType, @@ -186,311 +254,438 @@ declare module "@polkadot/api-base/types/events" { [profileId: u64, oldDeposit: u128, newDeposit: u128], { profileId: u64; oldDeposit: u128; newDeposit: u128 } >; - /** Generic event */ + /** + * Generic event + **/ [key: string]: AugmentedEvent; }; foreignAssets: { - /** Accounts were destroyed for given asset. */ + /** + * Accounts were destroyed for given asset. + **/ AccountsDestroyed: AugmentedEvent< ApiType, [assetId: u16, accountsDestroyed: u32, accountsRemaining: u32], { assetId: u16; accountsDestroyed: u32; accountsRemaining: u32 } >; - /** An approval for account `delegate` was cancelled by `owner`. */ + /** + * An approval for account `delegate` was cancelled by `owner`. + **/ ApprovalCancelled: AugmentedEvent< ApiType, [assetId: u16, owner: AccountId32, delegate: AccountId32], { assetId: u16; owner: AccountId32; delegate: AccountId32 } >; - /** Approvals were destroyed for given asset. */ + /** + * Approvals were destroyed for given asset. + **/ ApprovalsDestroyed: AugmentedEvent< ApiType, [assetId: u16, approvalsDestroyed: u32, approvalsRemaining: u32], { assetId: u16; approvalsDestroyed: u32; approvalsRemaining: u32 } >; - /** (Additional) funds have been approved for transfer to a destination account. */ + /** + * (Additional) funds have been approved for transfer to a destination account. + **/ ApprovedTransfer: AugmentedEvent< ApiType, [assetId: u16, source: AccountId32, delegate: AccountId32, amount: u128], { assetId: u16; source: AccountId32; delegate: AccountId32; amount: u128 } >; - /** Some asset `asset_id` was frozen. */ + /** + * Some asset `asset_id` was frozen. + **/ AssetFrozen: AugmentedEvent; - /** The min_balance of an asset has been updated by the asset owner. */ + /** + * The min_balance of an asset has been updated by the asset owner. + **/ AssetMinBalanceChanged: AugmentedEvent< ApiType, [assetId: u16, newMinBalance: u128], { assetId: u16; newMinBalance: u128 } >; - /** An asset has had its attributes changed by the `Force` origin. */ + /** + * An asset has had its attributes changed by the `Force` origin. + **/ AssetStatusChanged: AugmentedEvent; - /** Some asset `asset_id` was thawed. */ + /** + * Some asset `asset_id` was thawed. + **/ AssetThawed: AugmentedEvent; - /** Some account `who` was blocked. */ + /** + * Some account `who` was blocked. + **/ Blocked: AugmentedEvent; - /** Some assets were destroyed. */ + /** + * Some assets were destroyed. + **/ Burned: AugmentedEvent< ApiType, [assetId: u16, owner: AccountId32, balance: u128], { assetId: u16; owner: AccountId32; balance: u128 } >; - /** Some asset class was created. */ + /** + * Some asset class was created. + **/ Created: AugmentedEvent< ApiType, [assetId: u16, creator: AccountId32, owner: AccountId32], { assetId: u16; creator: AccountId32; owner: AccountId32 } >; - /** Some assets were deposited (e.g. for transaction fees). */ + /** + * Some assets were deposited (e.g. for transaction fees). + **/ Deposited: AugmentedEvent< ApiType, [assetId: u16, who: AccountId32, amount: u128], { assetId: u16; who: AccountId32; amount: u128 } >; - /** An asset class was destroyed. */ + /** + * An asset class was destroyed. + **/ Destroyed: AugmentedEvent; - /** An asset class is in the process of being destroyed. */ + /** + * An asset class is in the process of being destroyed. + **/ DestructionStarted: AugmentedEvent; - /** Some asset class was force-created. */ + /** + * Some asset class was force-created. + **/ ForceCreated: AugmentedEvent< ApiType, [assetId: u16, owner: AccountId32], { assetId: u16; owner: AccountId32 } >; - /** Some account `who` was frozen. */ + /** + * Some account `who` was frozen. + **/ Frozen: AugmentedEvent; - /** Some assets were issued. */ + /** + * Some assets were issued. + **/ Issued: AugmentedEvent< ApiType, [assetId: u16, owner: AccountId32, amount: u128], { assetId: u16; owner: AccountId32; amount: u128 } >; - /** Metadata has been cleared for an asset. */ + /** + * Metadata has been cleared for an asset. + **/ MetadataCleared: AugmentedEvent; - /** New metadata has been set for an asset. */ + /** + * New metadata has been set for an asset. + **/ MetadataSet: AugmentedEvent< ApiType, [assetId: u16, name: Bytes, symbol_: Bytes, decimals: u8, isFrozen: bool], { assetId: u16; name: Bytes; symbol: Bytes; decimals: u8; isFrozen: bool } >; - /** The owner changed. */ + /** + * The owner changed. + **/ OwnerChanged: AugmentedEvent< ApiType, [assetId: u16, owner: AccountId32], { assetId: u16; owner: AccountId32 } >; - /** The management team changed. */ + /** + * The management team changed. + **/ TeamChanged: AugmentedEvent< ApiType, [assetId: u16, issuer: AccountId32, admin: AccountId32, freezer: AccountId32], { assetId: u16; issuer: AccountId32; admin: AccountId32; freezer: AccountId32 } >; - /** Some account `who` was thawed. */ + /** + * Some account `who` was thawed. + **/ Thawed: AugmentedEvent; - /** Some account `who` was created with a deposit from `depositor`. */ + /** + * Some account `who` was created with a deposit from `depositor`. + **/ Touched: AugmentedEvent< ApiType, [assetId: u16, who: AccountId32, depositor: AccountId32], { assetId: u16; who: AccountId32; depositor: AccountId32 } >; - /** Some assets were transferred. */ + /** + * Some assets were transferred. + **/ Transferred: AugmentedEvent< ApiType, [assetId: u16, from: AccountId32, to: AccountId32, amount: u128], { assetId: u16; from: AccountId32; to: AccountId32; amount: u128 } >; - /** An `amount` was transferred in its entirety from `owner` to `destination` by the approved `delegate`. */ + /** + * An `amount` was transferred in its entirety from `owner` to `destination` by + * the approved `delegate`. + **/ TransferredApproved: AugmentedEvent< ApiType, [assetId: u16, owner: AccountId32, delegate: AccountId32, destination: AccountId32, amount: u128], { assetId: u16; owner: AccountId32; delegate: AccountId32; destination: AccountId32; amount: u128 } >; - /** Some assets were withdrawn from the account (e.g. for transaction fees). */ + /** + * Some assets were withdrawn from the account (e.g. for transaction fees). + **/ Withdrawn: AugmentedEvent< ApiType, [assetId: u16, who: AccountId32, amount: u128], { assetId: u16; who: AccountId32; amount: u128 } >; - /** Generic event */ + /** + * Generic event + **/ [key: string]: AugmentedEvent; }; foreignAssetsCreator: { - /** New asset with the asset manager is registered */ + /** + * New asset with the asset manager is registered + **/ ForeignAssetCreated: AugmentedEvent< ApiType, [assetId: u16, foreignAsset: StagingXcmV4Location], { assetId: u16; foreignAsset: StagingXcmV4Location } >; - /** Removed all information related to an assetId and destroyed asset */ + /** + * Removed all information related to an assetId and destroyed asset + **/ ForeignAssetDestroyed: AugmentedEvent< ApiType, [assetId: u16, foreignAsset: StagingXcmV4Location], { assetId: u16; foreignAsset: StagingXcmV4Location } >; - /** Removed all information related to an assetId */ + /** + * Removed all information related to an assetId + **/ ForeignAssetRemoved: AugmentedEvent< ApiType, [assetId: u16, foreignAsset: StagingXcmV4Location], { assetId: u16; foreignAsset: StagingXcmV4Location } >; - /** Changed the xcm type mapping for a given asset id */ + /** + * Changed the xcm type mapping for a given asset id + **/ ForeignAssetTypeChanged: AugmentedEvent< ApiType, [assetId: u16, newForeignAsset: StagingXcmV4Location], { assetId: u16; newForeignAsset: StagingXcmV4Location } >; - /** Generic event */ + /** + * Generic event + **/ [key: string]: AugmentedEvent; }; identity: { - /** A username authority was added. */ + /** + * A username authority was added. + **/ AuthorityAdded: AugmentedEvent; - /** A username authority was removed. */ + /** + * A username authority was removed. + **/ AuthorityRemoved: AugmentedEvent; /** - * A dangling username (as in, a username corresponding to an account that has removed its identity) has been - * removed. - */ + * A dangling username (as in, a username corresponding to an account that has removed its + * identity) has been removed. + **/ DanglingUsernameRemoved: AugmentedEvent< ApiType, [who: AccountId32, username: Bytes], { who: AccountId32; username: Bytes } >; - /** A name was cleared, and the given balance returned. */ + /** + * A name was cleared, and the given balance returned. + **/ IdentityCleared: AugmentedEvent< ApiType, [who: AccountId32, deposit: u128], { who: AccountId32; deposit: u128 } >; - /** A name was removed and the given balance slashed. */ + /** + * A name was removed and the given balance slashed. + **/ IdentityKilled: AugmentedEvent< ApiType, [who: AccountId32, deposit: u128], { who: AccountId32; deposit: u128 } >; - /** A name was set or reset (which will remove all judgements). */ + /** + * A name was set or reset (which will remove all judgements). + **/ IdentitySet: AugmentedEvent; - /** A judgement was given by a registrar. */ + /** + * A judgement was given by a registrar. + **/ JudgementGiven: AugmentedEvent< ApiType, [target: AccountId32, registrarIndex: u32], { target: AccountId32; registrarIndex: u32 } >; - /** A judgement was asked from a registrar. */ + /** + * A judgement was asked from a registrar. + **/ JudgementRequested: AugmentedEvent< ApiType, [who: AccountId32, registrarIndex: u32], { who: AccountId32; registrarIndex: u32 } >; - /** A judgement request was retracted. */ + /** + * A judgement request was retracted. + **/ JudgementUnrequested: AugmentedEvent< ApiType, [who: AccountId32, registrarIndex: u32], { who: AccountId32; registrarIndex: u32 } >; - /** A queued username passed its expiration without being claimed and was removed. */ + /** + * A queued username passed its expiration without being claimed and was removed. + **/ PreapprovalExpired: AugmentedEvent; - /** A username was set as a primary and can be looked up from `who`. */ + /** + * A username was set as a primary and can be looked up from `who`. + **/ PrimaryUsernameSet: AugmentedEvent< ApiType, [who: AccountId32, username: Bytes], { who: AccountId32; username: Bytes } >; - /** A registrar was added. */ + /** + * A registrar was added. + **/ RegistrarAdded: AugmentedEvent; - /** A sub-identity was added to an identity and the deposit paid. */ + /** + * A sub-identity was added to an identity and the deposit paid. + **/ SubIdentityAdded: AugmentedEvent< ApiType, [sub: AccountId32, main: AccountId32, deposit: u128], { sub: AccountId32; main: AccountId32; deposit: u128 } >; - /** A sub-identity was removed from an identity and the deposit freed. */ + /** + * A sub-identity was removed from an identity and the deposit freed. + **/ SubIdentityRemoved: AugmentedEvent< ApiType, [sub: AccountId32, main: AccountId32, deposit: u128], { sub: AccountId32; main: AccountId32; deposit: u128 } >; /** - * A sub-identity was cleared, and the given deposit repatriated from the main identity account to the - * sub-identity account. - */ + * A sub-identity was cleared, and the given deposit repatriated from the + * main identity account to the sub-identity account. + **/ SubIdentityRevoked: AugmentedEvent< ApiType, [sub: AccountId32, main: AccountId32, deposit: u128], { sub: AccountId32; main: AccountId32; deposit: u128 } >; - /** A username was queued, but `who` must accept it prior to `expiration`. */ + /** + * A username was queued, but `who` must accept it prior to `expiration`. + **/ UsernameQueued: AugmentedEvent< ApiType, [who: AccountId32, username: Bytes, expiration: u32], { who: AccountId32; username: Bytes; expiration: u32 } >; - /** A username was set for `who`. */ + /** + * A username was set for `who`. + **/ UsernameSet: AugmentedEvent< ApiType, [who: AccountId32, username: Bytes], { who: AccountId32; username: Bytes } >; - /** Generic event */ + /** + * Generic event + **/ [key: string]: AugmentedEvent; }; inflationRewards: { - /** Rewarding container author */ + /** + * Rewarding container author + **/ RewardedContainer: AugmentedEvent< ApiType, [accountId: AccountId32, paraId: u32, balance: u128], { accountId: AccountId32; paraId: u32; balance: u128 } >; - /** Rewarding orchestrator author */ + /** + * Rewarding orchestrator author + **/ RewardedOrchestrator: AugmentedEvent< ApiType, [accountId: AccountId32, balance: u128], { accountId: AccountId32; balance: u128 } >; - /** Generic event */ + /** + * Generic event + **/ [key: string]: AugmentedEvent; }; invulnerables: { - /** A new Invulnerable was added. */ + /** + * A new Invulnerable was added. + **/ InvulnerableAdded: AugmentedEvent; - /** An Invulnerable was removed. */ + /** + * An Invulnerable was removed. + **/ InvulnerableRemoved: AugmentedEvent; - /** Generic event */ + /** + * Generic event + **/ [key: string]: AugmentedEvent; }; maintenanceMode: { - /** The chain was put into Maintenance Mode */ + /** + * The chain was put into Maintenance Mode + **/ EnteredMaintenanceMode: AugmentedEvent; - /** The call to resume on_idle XCM execution failed with inner error */ + /** + * The call to resume on_idle XCM execution failed with inner error + **/ FailedToResumeIdleXcmExecution: AugmentedEvent< ApiType, [error: SpRuntimeDispatchError], { error: SpRuntimeDispatchError } >; - /** The call to suspend on_idle XCM execution failed with inner error */ + /** + * The call to suspend on_idle XCM execution failed with inner error + **/ FailedToSuspendIdleXcmExecution: AugmentedEvent< ApiType, [error: SpRuntimeDispatchError], { error: SpRuntimeDispatchError } >; - /** The chain returned to its normal operating state */ + /** + * The chain returned to its normal operating state + **/ NormalOperationResumed: AugmentedEvent; - /** Generic event */ + /** + * Generic event + **/ [key: string]: AugmentedEvent; }; messageQueue: { - /** Message placed in overweight queue. */ + /** + * Message placed in overweight queue. + **/ OverweightEnqueued: AugmentedEvent< ApiType, [id: U8aFixed, origin: CumulusPrimitivesCoreAggregateMessageOrigin, pageIndex: u32, messageIndex: u32], { id: U8aFixed; origin: CumulusPrimitivesCoreAggregateMessageOrigin; pageIndex: u32; messageIndex: u32 } >; - /** This page was reaped. */ + /** + * This page was reaped. + **/ PageReaped: AugmentedEvent< ApiType, [origin: CumulusPrimitivesCoreAggregateMessageOrigin, index: u32], { origin: CumulusPrimitivesCoreAggregateMessageOrigin; index: u32 } >; - /** Message is processed. */ + /** + * Message is processed. + **/ Processed: AugmentedEvent< ApiType, [ @@ -506,7 +701,9 @@ declare module "@polkadot/api-base/types/events" { success: bool; } >; - /** Message discarded due to an error in the `MessageProcessor` (usually a format error). */ + /** + * Message discarded due to an error in the `MessageProcessor` (usually a format error). + **/ ProcessingFailed: AugmentedEvent< ApiType, [ @@ -520,43 +717,61 @@ declare module "@polkadot/api-base/types/events" { error: FrameSupportMessagesProcessMessageError; } >; - /** Generic event */ + /** + * Generic event + **/ [key: string]: AugmentedEvent; }; migrations: { - /** XCM execution resume failed with inner error */ + /** + * XCM execution resume failed with inner error + **/ FailedToResumeIdleXcmExecution: AugmentedEvent< ApiType, [error: SpRuntimeDispatchError], { error: SpRuntimeDispatchError } >; - /** XCM execution suspension failed with inner error */ + /** + * XCM execution suspension failed with inner error + **/ FailedToSuspendIdleXcmExecution: AugmentedEvent< ApiType, [error: SpRuntimeDispatchError], { error: SpRuntimeDispatchError } >; - /** Migration completed */ + /** + * Migration completed + **/ MigrationCompleted: AugmentedEvent< ApiType, [migrationName: Bytes, consumedWeight: SpWeightsWeightV2Weight], { migrationName: Bytes; consumedWeight: SpWeightsWeightV2Weight } >; - /** Migration started */ + /** + * Migration started + **/ MigrationStarted: AugmentedEvent; - /** Runtime upgrade completed */ + /** + * Runtime upgrade completed + **/ RuntimeUpgradeCompleted: AugmentedEvent< ApiType, [weight: SpWeightsWeightV2Weight], { weight: SpWeightsWeightV2Weight } >; - /** Runtime upgrade started */ + /** + * Runtime upgrade started + **/ RuntimeUpgradeStarted: AugmentedEvent; - /** Generic event */ + /** + * Generic event + **/ [key: string]: AugmentedEvent; }; multisig: { - /** A multisig operation has been approved by someone. */ + /** + * A multisig operation has been approved by someone. + **/ MultisigApproval: AugmentedEvent< ApiType, [approving: AccountId32, timepoint: PalletMultisigTimepoint, multisig: AccountId32, callHash: U8aFixed], @@ -567,7 +782,9 @@ declare module "@polkadot/api-base/types/events" { callHash: U8aFixed; } >; - /** A multisig operation has been cancelled. */ + /** + * A multisig operation has been cancelled. + **/ MultisigCancelled: AugmentedEvent< ApiType, [ @@ -583,7 +800,9 @@ declare module "@polkadot/api-base/types/events" { callHash: U8aFixed; } >; - /** A multisig operation has been executed. */ + /** + * A multisig operation has been executed. + **/ MultisigExecuted: AugmentedEvent< ApiType, [ @@ -601,68 +820,95 @@ declare module "@polkadot/api-base/types/events" { result: Result; } >; - /** A new multisig operation has begun. */ + /** + * A new multisig operation has begun. + **/ NewMultisig: AugmentedEvent< ApiType, [approving: AccountId32, multisig: AccountId32, callHash: U8aFixed], { approving: AccountId32; multisig: AccountId32; callHash: U8aFixed } >; - /** Generic event */ + /** + * Generic event + **/ [key: string]: AugmentedEvent; }; parachainSystem: { - /** Downward messages were processed using the given weight. */ + /** + * Downward messages were processed using the given weight. + **/ DownwardMessagesProcessed: AugmentedEvent< ApiType, [weightUsed: SpWeightsWeightV2Weight, dmqHead: H256], { weightUsed: SpWeightsWeightV2Weight; dmqHead: H256 } >; - /** Some downward messages have been received and will be processed. */ + /** + * Some downward messages have been received and will be processed. + **/ DownwardMessagesReceived: AugmentedEvent; - /** An upward message was sent to the relay chain. */ + /** + * An upward message was sent to the relay chain. + **/ UpwardMessageSent: AugmentedEvent< ApiType, [messageHash: Option], { messageHash: Option } >; - /** The validation function was applied as of the contained relay chain block number. */ + /** + * The validation function was applied as of the contained relay chain block number. + **/ ValidationFunctionApplied: AugmentedEvent; - /** The relay-chain aborted the upgrade process. */ + /** + * The relay-chain aborted the upgrade process. + **/ ValidationFunctionDiscarded: AugmentedEvent; - /** The validation function has been scheduled to apply. */ + /** + * The validation function has been scheduled to apply. + **/ ValidationFunctionStored: AugmentedEvent; - /** Generic event */ + /** + * Generic event + **/ [key: string]: AugmentedEvent; }; polkadotXcm: { - /** Some assets have been claimed from an asset trap */ + /** + * Some assets have been claimed from an asset trap + **/ AssetsClaimed: AugmentedEvent< ApiType, [hash_: H256, origin: StagingXcmV4Location, assets: XcmVersionedAssets], { hash_: H256; origin: StagingXcmV4Location; assets: XcmVersionedAssets } >; - /** Some assets have been placed in an asset trap. */ + /** + * Some assets have been placed in an asset trap. + **/ AssetsTrapped: AugmentedEvent< ApiType, [hash_: H256, origin: StagingXcmV4Location, assets: XcmVersionedAssets], { hash_: H256; origin: StagingXcmV4Location; assets: XcmVersionedAssets } >; - /** Execution of an XCM message was attempted. */ + /** + * Execution of an XCM message was attempted. + **/ Attempted: AugmentedEvent< ApiType, [outcome: StagingXcmV4TraitsOutcome], { outcome: StagingXcmV4TraitsOutcome } >; - /** Fees were paid from a location for an operation (often for using `SendXcm`). */ + /** + * Fees were paid from a location for an operation (often for using `SendXcm`). + **/ FeesPaid: AugmentedEvent< ApiType, [paying: StagingXcmV4Location, fees: StagingXcmV4AssetAssets], { paying: StagingXcmV4Location; fees: StagingXcmV4AssetAssets } >; /** - * Expected query response has been received but the querier location of the response does not match the expected. - * The query remains registered for a later, valid, response to be received and acted upon. - */ + * Expected query response has been received but the querier location of the response does + * not match the expected. The query remains registered for a later, valid, response to + * be received and acted upon. + **/ InvalidQuerier: AugmentedEvent< ApiType, [ @@ -679,72 +925,76 @@ declare module "@polkadot/api-base/types/events" { } >; /** - * Expected query response has been received but the expected querier location placed in storage by this runtime - * previously cannot be decoded. The query remains registered. + * Expected query response has been received but the expected querier location placed in + * storage by this runtime previously cannot be decoded. The query remains registered. * - * This is unexpected (since a location placed in storage in a previously executing runtime should be readable - * prior to query timeout) and dangerous since the possibly valid response will be dropped. Manual governance - * intervention is probably going to be needed. - */ + * This is unexpected (since a location placed in storage in a previously executing + * runtime should be readable prior to query timeout) and dangerous since the possibly + * valid response will be dropped. Manual governance intervention is probably going to be + * needed. + **/ InvalidQuerierVersion: AugmentedEvent< ApiType, [origin: StagingXcmV4Location, queryId: u64], { origin: StagingXcmV4Location; queryId: u64 } >; /** - * Expected query response has been received but the origin location of the response does not match that expected. - * The query remains registered for a later, valid, response to be received and acted upon. - */ + * Expected query response has been received but the origin location of the response does + * not match that expected. The query remains registered for a later, valid, response to + * be received and acted upon. + **/ InvalidResponder: AugmentedEvent< ApiType, [origin: StagingXcmV4Location, queryId: u64, expectedLocation: Option], { origin: StagingXcmV4Location; queryId: u64; expectedLocation: Option } >; /** - * Expected query response has been received but the expected origin location placed in storage by this runtime - * previously cannot be decoded. The query remains registered. + * Expected query response has been received but the expected origin location placed in + * storage by this runtime previously cannot be decoded. The query remains registered. * - * This is unexpected (since a location placed in storage in a previously executing runtime should be readable - * prior to query timeout) and dangerous since the possibly valid response will be dropped. Manual governance - * intervention is probably going to be needed. - */ + * This is unexpected (since a location placed in storage in a previously executing + * runtime should be readable prior to query timeout) and dangerous since the possibly + * valid response will be dropped. Manual governance intervention is probably going to be + * needed. + **/ InvalidResponderVersion: AugmentedEvent< ApiType, [origin: StagingXcmV4Location, queryId: u64], { origin: StagingXcmV4Location; queryId: u64 } >; /** - * Query response has been received and query is removed. The registered notification has been dispatched and - * executed successfully. - */ + * Query response has been received and query is removed. The registered notification has + * been dispatched and executed successfully. + **/ Notified: AugmentedEvent< ApiType, [queryId: u64, palletIndex: u8, callIndex: u8], { queryId: u64; palletIndex: u8; callIndex: u8 } >; /** - * Query response has been received and query is removed. The dispatch was unable to be decoded into a `Call`; - * this might be due to dispatch function having a signature which is not `(origin, QueryId, Response)`. - */ + * Query response has been received and query is removed. The dispatch was unable to be + * decoded into a `Call`; this might be due to dispatch function having a signature which + * is not `(origin, QueryId, Response)`. + **/ NotifyDecodeFailed: AugmentedEvent< ApiType, [queryId: u64, palletIndex: u8, callIndex: u8], { queryId: u64; palletIndex: u8; callIndex: u8 } >; /** - * Query response has been received and query is removed. There was a general error with dispatching the - * notification call. - */ + * Query response has been received and query is removed. There was a general error with + * dispatching the notification call. + **/ NotifyDispatchError: AugmentedEvent< ApiType, [queryId: u64, palletIndex: u8, callIndex: u8], { queryId: u64; palletIndex: u8; callIndex: u8 } >; /** - * Query response has been received and query is removed. The registered notification could not be dispatched - * because the dispatch weight is greater than the maximum weight originally budgeted by this runtime for the - * query result. - */ + * Query response has been received and query is removed. The registered notification + * could not be dispatched because the dispatch weight is greater than the maximum weight + * originally budgeted by this runtime for the query result. + **/ NotifyOverweight: AugmentedEvent< ApiType, [ @@ -763,35 +1013,39 @@ declare module "@polkadot/api-base/types/events" { } >; /** - * A given location which had a version change subscription was dropped owing to an error migrating the location - * to our new XCM format. - */ + * A given location which had a version change subscription was dropped owing to an error + * migrating the location to our new XCM format. + **/ NotifyTargetMigrationFail: AugmentedEvent< ApiType, [location: XcmVersionedLocation, queryId: u64], { location: XcmVersionedLocation; queryId: u64 } >; /** - * A given location which had a version change subscription was dropped owing to an error sending the notification - * to it. - */ + * A given location which had a version change subscription was dropped owing to an error + * sending the notification to it. + **/ NotifyTargetSendFail: AugmentedEvent< ApiType, [location: StagingXcmV4Location, queryId: u64, error: XcmV3TraitsError], { location: StagingXcmV4Location; queryId: u64; error: XcmV3TraitsError } >; /** - * Query response has been received and is ready for taking with `take_response`. There is no registered - * notification call. - */ + * Query response has been received and is ready for taking with `take_response`. There is + * no registered notification call. + **/ ResponseReady: AugmentedEvent< ApiType, [queryId: u64, response: StagingXcmV4Response], { queryId: u64; response: StagingXcmV4Response } >; - /** Received query response has been read and removed. */ + /** + * Received query response has been read and removed. + **/ ResponseTaken: AugmentedEvent; - /** A XCM message was sent. */ + /** + * A XCM message was sent. + **/ Sent: AugmentedEvent< ApiType, [ @@ -808,18 +1062,19 @@ declare module "@polkadot/api-base/types/events" { } >; /** - * The supported version of a location has been changed. This might be through an automatic notification or a - * manual intervention. - */ + * The supported version of a location has been changed. This might be through an + * automatic notification or a manual intervention. + **/ SupportedVersionChanged: AugmentedEvent< ApiType, [location: StagingXcmV4Location, version: u32], { location: StagingXcmV4Location; version: u32 } >; /** - * Query response received which does not match a registered query. This may be because a matching query was never - * registered, it may be because it is a duplicate response, or because the query timed out. - */ + * Query response received which does not match a registered query. This may be because a + * matching query was never registered, it may be because it is a duplicate response, or + * because the query timed out. + **/ UnexpectedResponse: AugmentedEvent< ApiType, [origin: StagingXcmV4Location, queryId: u64], @@ -829,55 +1084,69 @@ declare module "@polkadot/api-base/types/events" { * An XCM version change notification message has been attempted to be sent. * * The cost of sending it (borne by the chain) is included. - */ + **/ VersionChangeNotified: AugmentedEvent< ApiType, [destination: StagingXcmV4Location, result: u32, cost: StagingXcmV4AssetAssets, messageId: U8aFixed], { destination: StagingXcmV4Location; result: u32; cost: StagingXcmV4AssetAssets; messageId: U8aFixed } >; - /** A XCM version migration finished. */ + /** + * A XCM version migration finished. + **/ VersionMigrationFinished: AugmentedEvent; - /** We have requested that a remote chain send us XCM version change notifications. */ + /** + * We have requested that a remote chain send us XCM version change notifications. + **/ VersionNotifyRequested: AugmentedEvent< ApiType, [destination: StagingXcmV4Location, cost: StagingXcmV4AssetAssets, messageId: U8aFixed], { destination: StagingXcmV4Location; cost: StagingXcmV4AssetAssets; messageId: U8aFixed } >; /** - * A remote has requested XCM version change notification from us and we have honored it. A version information - * message is sent to them and its cost is included. - */ + * A remote has requested XCM version change notification from us and we have honored it. + * A version information message is sent to them and its cost is included. + **/ VersionNotifyStarted: AugmentedEvent< ApiType, [destination: StagingXcmV4Location, cost: StagingXcmV4AssetAssets, messageId: U8aFixed], { destination: StagingXcmV4Location; cost: StagingXcmV4AssetAssets; messageId: U8aFixed } >; - /** We have requested that a remote chain stops sending us XCM version change notifications. */ + /** + * We have requested that a remote chain stops sending us XCM version change + * notifications. + **/ VersionNotifyUnrequested: AugmentedEvent< ApiType, [destination: StagingXcmV4Location, cost: StagingXcmV4AssetAssets, messageId: U8aFixed], { destination: StagingXcmV4Location; cost: StagingXcmV4AssetAssets; messageId: U8aFixed } >; - /** Generic event */ + /** + * Generic event + **/ [key: string]: AugmentedEvent; }; pooledStaking: { - /** Rewards manually claimed. */ + /** + * Rewards manually claimed. + **/ ClaimedManualRewards: AugmentedEvent< ApiType, [candidate: AccountId32, delegator: AccountId32, rewards: u128], { candidate: AccountId32; delegator: AccountId32; rewards: u128 } >; - /** Stake of that Candidate decreased. */ + /** + * Stake of that Candidate decreased. + **/ DecreasedStake: AugmentedEvent< ApiType, [candidate: AccountId32, stakeDiff: u128], { candidate: AccountId32; stakeDiff: u128 } >; /** - * Delegation request was executed. `staked` has been properly staked in `pool`, while the rounding when - * converting to shares has been `released`. - */ + * Delegation request was executed. `staked` has been properly staked + * in `pool`, while the rounding when converting to shares has been + * `released`. + **/ ExecutedDelegate: AugmentedEvent< ApiType, [ @@ -895,28 +1164,36 @@ declare module "@polkadot/api-base/types/events" { released: u128; } >; - /** Undelegation request was executed. */ + /** + * Undelegation request was executed. + **/ ExecutedUndelegate: AugmentedEvent< ApiType, [candidate: AccountId32, delegator: AccountId32, released: u128], { candidate: AccountId32; delegator: AccountId32; released: u128 } >; - /** Stake of that Candidate increased. */ + /** + * Stake of that Candidate increased. + **/ IncreasedStake: AugmentedEvent< ApiType, [candidate: AccountId32, stakeDiff: u128], { candidate: AccountId32; stakeDiff: u128 } >; - /** User requested to delegate towards a candidate. */ + /** + * User requested to delegate towards a candidate. + **/ RequestedDelegate: AugmentedEvent< ApiType, [candidate: AccountId32, delegator: AccountId32, pool: PalletPooledStakingTargetPool, pending: u128], { candidate: AccountId32; delegator: AccountId32; pool: PalletPooledStakingTargetPool; pending: u128 } >; /** - * User requested to undelegate from a candidate. Stake was removed from a `pool` and is `pending` for the request - * to be executed. The rounding when converting to leaving shares has been `released` immediately. - */ + * User requested to undelegate from a candidate. + * Stake was removed from a `pool` and is `pending` for the request + * to be executed. The rounding when converting to leaving shares has + * been `released` immediately. + **/ RequestedUndelegate: AugmentedEvent< ApiType, [ @@ -934,31 +1211,41 @@ declare module "@polkadot/api-base/types/events" { released: u128; } >; - /** Collator has been rewarded. */ + /** + * Collator has been rewarded. + **/ RewardedCollator: AugmentedEvent< ApiType, [collator: AccountId32, autoCompoundingRewards: u128, manualClaimRewards: u128], { collator: AccountId32; autoCompoundingRewards: u128; manualClaimRewards: u128 } >; - /** Delegators have been rewarded. */ + /** + * Delegators have been rewarded. + **/ RewardedDelegators: AugmentedEvent< ApiType, [collator: AccountId32, autoCompoundingRewards: u128, manualClaimRewards: u128], { collator: AccountId32; autoCompoundingRewards: u128; manualClaimRewards: u128 } >; - /** Delegator staked towards a Candidate for AutoCompounding Shares. */ + /** + * Delegator staked towards a Candidate for AutoCompounding Shares. + **/ StakedAutoCompounding: AugmentedEvent< ApiType, [candidate: AccountId32, delegator: AccountId32, shares: u128, stake: u128], { candidate: AccountId32; delegator: AccountId32; shares: u128; stake: u128 } >; - /** Delegator staked towards a candidate for ManualRewards Shares. */ + /** + * Delegator staked towards a candidate for ManualRewards Shares. + **/ StakedManualRewards: AugmentedEvent< ApiType, [candidate: AccountId32, delegator: AccountId32, shares: u128, stake: u128], { candidate: AccountId32; delegator: AccountId32; shares: u128; stake: u128 } >; - /** Swapped between AutoCompounding and ManualReward shares */ + /** + * Swapped between AutoCompounding and ManualReward shares + **/ SwappedPool: AugmentedEvent< ApiType, [ @@ -984,87 +1271,129 @@ declare module "@polkadot/api-base/types/events" { released: u128; } >; - /** Delegator unstaked towards a candidate with AutoCompounding Shares. */ + /** + * Delegator unstaked towards a candidate with AutoCompounding Shares. + **/ UnstakedAutoCompounding: AugmentedEvent< ApiType, [candidate: AccountId32, delegator: AccountId32, shares: u128, stake: u128], { candidate: AccountId32; delegator: AccountId32; shares: u128; stake: u128 } >; - /** Delegator unstaked towards a candidate with ManualRewards Shares. */ + /** + * Delegator unstaked towards a candidate with ManualRewards Shares. + **/ UnstakedManualRewards: AugmentedEvent< ApiType, [candidate: AccountId32, delegator: AccountId32, shares: u128, stake: u128], { candidate: AccountId32; delegator: AccountId32; shares: u128; stake: u128 } >; - /** Stake of the candidate has changed, which may have modified its position in the eligible candidates list. */ + /** + * Stake of the candidate has changed, which may have modified its + * position in the eligible candidates list. + **/ UpdatedCandidatePosition: AugmentedEvent< ApiType, [candidate: AccountId32, stake: u128, selfDelegation: u128, before: Option, after: Option], { candidate: AccountId32; stake: u128; selfDelegation: u128; before: Option; after: Option } >; - /** Generic event */ + /** + * Generic event + **/ [key: string]: AugmentedEvent; }; proxy: { - /** An announcement was placed to make a call in the future. */ + /** + * An announcement was placed to make a call in the future. + **/ Announced: AugmentedEvent< ApiType, [real: AccountId32, proxy: AccountId32, callHash: H256], { real: AccountId32; proxy: AccountId32; callHash: H256 } >; - /** A proxy was added. */ + /** + * A proxy was added. + **/ ProxyAdded: AugmentedEvent< ApiType, [delegator: AccountId32, delegatee: AccountId32, proxyType: DanceboxRuntimeProxyType, delay: u32], { delegator: AccountId32; delegatee: AccountId32; proxyType: DanceboxRuntimeProxyType; delay: u32 } >; - /** A proxy was executed correctly, with the given. */ + /** + * A proxy was executed correctly, with the given. + **/ ProxyExecuted: AugmentedEvent< ApiType, [result: Result], { result: Result } >; - /** A proxy was removed. */ + /** + * A proxy was removed. + **/ ProxyRemoved: AugmentedEvent< ApiType, [delegator: AccountId32, delegatee: AccountId32, proxyType: DanceboxRuntimeProxyType, delay: u32], { delegator: AccountId32; delegatee: AccountId32; proxyType: DanceboxRuntimeProxyType; delay: u32 } >; - /** A pure account has been created by new proxy with given disambiguation index and proxy type. */ + /** + * A pure account has been created by new proxy with given + * disambiguation index and proxy type. + **/ PureCreated: AugmentedEvent< ApiType, [pure: AccountId32, who: AccountId32, proxyType: DanceboxRuntimeProxyType, disambiguationIndex: u16], { pure: AccountId32; who: AccountId32; proxyType: DanceboxRuntimeProxyType; disambiguationIndex: u16 } >; - /** Generic event */ + /** + * Generic event + **/ [key: string]: AugmentedEvent; }; registrar: { - /** A para id has been deregistered. [para_id] */ + /** + * A para id has been deregistered. [para_id] + **/ ParaIdDeregistered: AugmentedEvent; - /** A para id has been paused from collating. */ + /** + * A para id has been paused from collating. + **/ ParaIdPaused: AugmentedEvent; - /** A new para id has been registered. [para_id] */ + /** + * A new para id has been registered. [para_id] + **/ ParaIdRegistered: AugmentedEvent; - /** A para id has been unpaused. */ + /** + * A para id has been unpaused. + **/ ParaIdUnpaused: AugmentedEvent; - /** A new para id is now valid for collating. [para_id] */ + /** + * A new para id is now valid for collating. [para_id] + **/ ParaIdValidForCollating: AugmentedEvent; - /** Para manager has changed */ + /** + * Para manager has changed + **/ ParaManagerChanged: AugmentedEvent< ApiType, [paraId: u32, managerAddress: AccountId32], { paraId: u32; managerAddress: AccountId32 } >; - /** Parathread params changed */ + /** + * Parathread params changed + **/ ParathreadParamsChanged: AugmentedEvent; - /** Generic event */ + /** + * Generic event + **/ [key: string]: AugmentedEvent; }; rootTesting: { - /** Event dispatched when the trigger_defensive extrinsic is called. */ + /** + * Event dispatched when the trigger_defensive extrinsic is called. + **/ DefensiveTestCall: AugmentedEvent; - /** Generic event */ + /** + * Generic event + **/ [key: string]: AugmentedEvent; }; servicesPayment: { @@ -1108,16 +1437,20 @@ declare module "@polkadot/api-base/types/events" { [paraId: u32, refundAddress: Option], { paraId: u32; refundAddress: Option } >; - /** Generic event */ + /** + * Generic event + **/ [key: string]: AugmentedEvent; }; session: { /** - * New session has happened. Note that the argument is the session index, not the block number as the type might - * suggest. - */ + * New session has happened. Note that the argument is the session index, not the + * block number as the type might suggest. + **/ NewSession: AugmentedEvent; - /** Generic event */ + /** + * Generic event + **/ [key: string]: AugmentedEvent; }; streamPayment: { @@ -1160,184 +1493,276 @@ declare module "@polkadot/api-base/types/events" { [streamId: u64, source: AccountId32, target: AccountId32, amount: u128, stalled: bool], { streamId: u64; source: AccountId32; target: AccountId32; amount: u128; stalled: bool } >; - /** Generic event */ + /** + * Generic event + **/ [key: string]: AugmentedEvent; }; sudo: { - /** The sudo key has been updated. */ + /** + * The sudo key has been updated. + **/ KeyChanged: AugmentedEvent< ApiType, [old: Option, new_: AccountId32], { old: Option; new_: AccountId32 } >; - /** The key was permanently removed. */ + /** + * The key was permanently removed. + **/ KeyRemoved: AugmentedEvent; - /** A sudo call just took place. */ + /** + * A sudo call just took place. + **/ Sudid: AugmentedEvent< ApiType, [sudoResult: Result], { sudoResult: Result } >; - /** A [sudo_as](Pallet::sudo_as) call just took place. */ + /** + * A [sudo_as](Pallet::sudo_as) call just took place. + **/ SudoAsDone: AugmentedEvent< ApiType, [sudoResult: Result], { sudoResult: Result } >; - /** Generic event */ + /** + * Generic event + **/ [key: string]: AugmentedEvent; }; system: { - /** `:code` was updated. */ + /** + * `:code` was updated. + **/ CodeUpdated: AugmentedEvent; - /** An extrinsic failed. */ + /** + * An extrinsic failed. + **/ ExtrinsicFailed: AugmentedEvent< ApiType, [dispatchError: SpRuntimeDispatchError, dispatchInfo: FrameSupportDispatchDispatchInfo], { dispatchError: SpRuntimeDispatchError; dispatchInfo: FrameSupportDispatchDispatchInfo } >; - /** An extrinsic completed successfully. */ + /** + * An extrinsic completed successfully. + **/ ExtrinsicSuccess: AugmentedEvent< ApiType, [dispatchInfo: FrameSupportDispatchDispatchInfo], { dispatchInfo: FrameSupportDispatchDispatchInfo } >; - /** An account was reaped. */ + /** + * An account was reaped. + **/ KilledAccount: AugmentedEvent; - /** A new account was created. */ + /** + * A new account was created. + **/ NewAccount: AugmentedEvent; - /** On on-chain remark happened. */ + /** + * On on-chain remark happened. + **/ Remarked: AugmentedEvent; - /** An upgrade was authorized. */ + /** + * An upgrade was authorized. + **/ UpgradeAuthorized: AugmentedEvent< ApiType, [codeHash: H256, checkVersion: bool], { codeHash: H256; checkVersion: bool } >; - /** Generic event */ + /** + * Generic event + **/ [key: string]: AugmentedEvent; }; transactionPayment: { - /** A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, has been paid by `who`. */ + /** + * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, + * has been paid by `who`. + **/ TransactionFeePaid: AugmentedEvent< ApiType, [who: AccountId32, actualFee: u128, tip: u128], { who: AccountId32; actualFee: u128; tip: u128 } >; - /** Generic event */ + /** + * Generic event + **/ [key: string]: AugmentedEvent; }; treasury: { - /** A new asset spend proposal has been approved. */ + /** + * A new asset spend proposal has been approved. + **/ AssetSpendApproved: AugmentedEvent< ApiType, [index: u32, assetKind: Null, amount: u128, beneficiary: AccountId32, validFrom: u32, expireAt: u32], { index: u32; assetKind: Null; amount: u128; beneficiary: AccountId32; validFrom: u32; expireAt: u32 } >; - /** An approved spend was voided. */ + /** + * An approved spend was voided. + **/ AssetSpendVoided: AugmentedEvent; - /** Some funds have been allocated. */ + /** + * Some funds have been allocated. + **/ Awarded: AugmentedEvent< ApiType, [proposalIndex: u32, award: u128, account: AccountId32], { proposalIndex: u32; award: u128; account: AccountId32 } >; - /** Some of our funds have been burnt. */ + /** + * Some of our funds have been burnt. + **/ Burnt: AugmentedEvent; - /** Some funds have been deposited. */ + /** + * Some funds have been deposited. + **/ Deposit: AugmentedEvent; - /** A payment happened. */ + /** + * A payment happened. + **/ Paid: AugmentedEvent; - /** A payment failed and can be retried. */ + /** + * A payment failed and can be retried. + **/ PaymentFailed: AugmentedEvent; - /** Spending has finished; this is the amount that rolls over until next spend. */ + /** + * Spending has finished; this is the amount that rolls over until next spend. + **/ Rollover: AugmentedEvent; - /** A new spend proposal has been approved. */ + /** + * A new spend proposal has been approved. + **/ SpendApproved: AugmentedEvent< ApiType, [proposalIndex: u32, amount: u128, beneficiary: AccountId32], { proposalIndex: u32; amount: u128; beneficiary: AccountId32 } >; - /** We have ended a spend period and will now allocate funds. */ + /** + * We have ended a spend period and will now allocate funds. + **/ Spending: AugmentedEvent; /** - * A spend was processed and removed from the storage. It might have been successfully paid or it may have - * expired. - */ + * A spend was processed and removed from the storage. It might have been successfully + * paid or it may have expired. + **/ SpendProcessed: AugmentedEvent; - /** The inactive funds of the pallet have been updated. */ + /** + * The inactive funds of the pallet have been updated. + **/ UpdatedInactive: AugmentedEvent< ApiType, [reactivated: u128, deactivated: u128], { reactivated: u128; deactivated: u128 } >; - /** Generic event */ + /** + * Generic event + **/ [key: string]: AugmentedEvent; }; txPause: { - /** This pallet, or a specific call is now paused. */ + /** + * This pallet, or a specific call is now paused. + **/ CallPaused: AugmentedEvent< ApiType, [fullName: ITuple<[Bytes, Bytes]>], { fullName: ITuple<[Bytes, Bytes]> } >; - /** This pallet, or a specific call is now unpaused. */ + /** + * This pallet, or a specific call is now unpaused. + **/ CallUnpaused: AugmentedEvent< ApiType, [fullName: ITuple<[Bytes, Bytes]>], { fullName: ITuple<[Bytes, Bytes]> } >; - /** Generic event */ + /** + * Generic event + **/ [key: string]: AugmentedEvent; }; utility: { - /** Batch of dispatches completed fully with no error. */ + /** + * Batch of dispatches completed fully with no error. + **/ BatchCompleted: AugmentedEvent; - /** Batch of dispatches completed but has errors. */ + /** + * Batch of dispatches completed but has errors. + **/ BatchCompletedWithErrors: AugmentedEvent; - /** Batch of dispatches did not complete fully. Index of first failing dispatch given, as well as the error. */ + /** + * Batch of dispatches did not complete fully. Index of first failing dispatch given, as + * well as the error. + **/ BatchInterrupted: AugmentedEvent< ApiType, [index: u32, error: SpRuntimeDispatchError], { index: u32; error: SpRuntimeDispatchError } >; - /** A call was dispatched. */ + /** + * A call was dispatched. + **/ DispatchedAs: AugmentedEvent< ApiType, [result: Result], { result: Result } >; - /** A single item within a Batch of dispatches has completed with no error. */ + /** + * A single item within a Batch of dispatches has completed with no error. + **/ ItemCompleted: AugmentedEvent; - /** A single item within a Batch of dispatches has completed with error. */ + /** + * A single item within a Batch of dispatches has completed with error. + **/ ItemFailed: AugmentedEvent; - /** Generic event */ + /** + * Generic event + **/ [key: string]: AugmentedEvent; }; xcmCoreBuyer: { - /** An XCM message to buy a core for this parathread has been sent to the relay chain. */ + /** + * An XCM message to buy a core for this parathread has been sent to the relay chain. + **/ BuyCoreXcmSent: AugmentedEvent< ApiType, [paraId: u32, transactionStatusQueryId: u64], { paraId: u32; transactionStatusQueryId: u64 } >; - /** We cleaned up expired in flight orders entries. */ + /** + * We cleaned up expired in flight orders entries. + **/ CleanedUpExpiredInFlightOrderEntries: AugmentedEvent], { paraIds: Vec }>; - /** We cleaned up expired pending blocks entries. */ + /** + * We cleaned up expired pending blocks entries. + **/ CleanedUpExpiredPendingBlocksEntries: AugmentedEvent], { paraIds: Vec }>; - /** We received response for xcm */ + /** + * We received response for xcm + **/ ReceivedBuyCoreXCMResult: AugmentedEvent< ApiType, [paraId: u32, response: StagingXcmV4Response], { paraId: u32; response: StagingXcmV4Response } >; - /** Generic event */ + /** + * Generic event + **/ [key: string]: AugmentedEvent; }; xcmpQueue: { - /** An HRMP message was sent to a sibling parachain. */ + /** + * An HRMP message was sent to a sibling parachain. + **/ XcmpMessageSent: AugmentedEvent; - /** Generic event */ + /** + * Generic event + **/ [key: string]: AugmentedEvent; }; } // AugmentedEvents diff --git a/typescript-api/src/dancebox/interfaces/augment-api-query.ts b/typescript-api/src/dancebox/interfaces/augment-api-query.ts index f144905fd..58ae4999b 100644 --- a/typescript-api/src/dancebox/interfaces/augment-api-query.ts +++ b/typescript-api/src/dancebox/interfaces/augment-api-query.ts @@ -86,7 +86,6 @@ import type { SpWeightsWeightV2Weight, StagingXcmV4Instruction, StagingXcmV4Location, - StagingXcmV4Xcm, TpTraitsContainerChainBlockInfo, TpTraitsParathreadParams, XcmVersionedAssetId, @@ -104,34 +103,44 @@ declare module "@polkadot/api-base/types/storage" { * Maps an asset to its fixed point representation in the native balance. * * E.g. `native_amount = asset_amount * ConversionRateToNative::::get(asset_kind)` - */ + **/ conversionRateToNative: AugmentedQuery< ApiType, (arg: u16 | AnyNumber | Uint8Array) => Observable>, [u16] > & QueryableStorageEntry; - /** Generic query */ + /** + * Generic query + **/ [key: string]: QueryableStorageEntry; }; asyncBacking: { /** - * First tuple element is the highest slot that has been seen in the history of this chain. Second tuple element - * is the number of authored blocks so far. This is a strictly-increasing value if T::AllowMultipleBlocksPerSlot = - * false. - */ + * First tuple element is the highest slot that has been seen in the history of this chain. + * Second tuple element is the number of authored blocks so far. + * This is a strictly-increasing value if T::AllowMultipleBlocksPerSlot = false. + **/ slotInfo: AugmentedQuery Observable>>, []> & QueryableStorageEntry; - /** Generic query */ + /** + * Generic query + **/ [key: string]: QueryableStorageEntry; }; authorInherent: { - /** Author of current block. */ + /** + * Author of current block. + **/ author: AugmentedQuery Observable>, []> & QueryableStorageEntry; - /** Check if the inherent was included */ + /** + * Check if the inherent was included + **/ inherentIncluded: AugmentedQuery Observable, []> & QueryableStorageEntry; - /** Generic query */ + /** + * Generic query + **/ [key: string]: QueryableStorageEntry; }; authorityAssignment: { @@ -141,7 +150,9 @@ declare module "@polkadot/api-base/types/storage" { [u32] > & QueryableStorageEntry; - /** Generic query */ + /** + * Generic query + **/ [key: string]: QueryableStorageEntry; }; authorityMapping: { @@ -153,11 +164,15 @@ declare module "@polkadot/api-base/types/storage" { [u32] > & QueryableStorageEntry; - /** Generic query */ + /** + * Generic query + **/ [key: string]: QueryableStorageEntry; }; authorNoting: { - /** Was the containerAuthorData set? */ + /** + * Was the containerAuthorData set? + **/ didSetContainerAuthorData: AugmentedQuery Observable, []> & QueryableStorageEntry; latestAuthor: AugmentedQuery< @@ -166,7 +181,9 @@ declare module "@polkadot/api-base/types/storage" { [u32] > & QueryableStorageEntry; - /** Generic query */ + /** + * Generic query + **/ [key: string]: QueryableStorageEntry; }; balances: { @@ -191,18 +208,20 @@ declare module "@polkadot/api-base/types/storage" { * } * ``` * - * But this comes with tradeoffs, storing account balances in the system pallet stores `frame_system` data - * alongside the account data contrary to storing account balances in the `Balances` pallet, which uses a - * `StorageMap` to store balances data only. NOTE: This is only used in the case that this pallet is used to store - * balances. - */ + * But this comes with tradeoffs, storing account balances in the system pallet stores + * `frame_system` data alongside the account data contrary to storing account balances in the + * `Balances` pallet, which uses a `StorageMap` to store balances data only. + * NOTE: This is only used in the case that this pallet is used to store balances. + **/ account: AugmentedQuery< ApiType, (arg: AccountId32 | string | Uint8Array) => Observable, [AccountId32] > & QueryableStorageEntry; - /** Freeze locks on account balances. */ + /** + * Freeze locks on account balances. + **/ freezes: AugmentedQuery< ApiType, ( @@ -211,7 +230,9 @@ declare module "@polkadot/api-base/types/storage" { [AccountId32] > & QueryableStorageEntry; - /** Holds on account balances. */ + /** + * Holds on account balances. + **/ holds: AugmentedQuery< ApiType, ( @@ -220,14 +241,16 @@ declare module "@polkadot/api-base/types/storage" { [AccountId32] > & QueryableStorageEntry; - /** The total units of outstanding deactivated balance in the system. */ + /** + * The total units of outstanding deactivated balance in the system. + **/ inactiveIssuance: AugmentedQuery Observable, []> & QueryableStorageEntry; /** - * Any liquidity locks on some account balances. NOTE: Should only be accessed when setting, changing and freeing - * a lock. + * Any liquidity locks on some account balances. + * NOTE: Should only be accessed when setting, changing and freeing a lock. * * Use of locks is deprecated in favour of freezes. See `https://github.com/paritytech/substrate/pull/12951/` - */ + **/ locks: AugmentedQuery< ApiType, (arg: AccountId32 | string | Uint8Array) => Observable>, @@ -238,16 +261,20 @@ declare module "@polkadot/api-base/types/storage" { * Named reserves on some account balances. * * Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/` - */ + **/ reserves: AugmentedQuery< ApiType, (arg: AccountId32 | string | Uint8Array) => Observable>, [AccountId32] > & QueryableStorageEntry; - /** The total units issued in the system. */ + /** + * The total units issued in the system. + **/ totalIssuance: AugmentedQuery Observable, []> & QueryableStorageEntry; - /** Generic query */ + /** + * Generic query + **/ [key: string]: QueryableStorageEntry; }; collatorAssignment: { @@ -257,17 +284,20 @@ declare module "@polkadot/api-base/types/storage" { [] > & QueryableStorageEntry; - /** Ratio of assigned collators to max collators. */ + /** + * Ratio of assigned collators to max collators. + **/ collatorFullnessRatio: AugmentedQuery Observable>, []> & QueryableStorageEntry; /** * Pending configuration changes. * - * This is a list of configuration changes, each with a session index at which it should be applied. + * This is a list of configuration changes, each with a session index at which it should + * be applied. * - * The list is sorted ascending by session index. Also, this list can only contain at most 2 items: for the next - * session and for the `scheduled_session`. - */ + * The list is sorted ascending by session index. Also, this list can only contain at most + * 2 items: for the next session and for the `scheduled_session`. + **/ pendingCollatorContainerChain: AugmentedQuery< ApiType, () => Observable>, @@ -275,39 +305,46 @@ declare module "@polkadot/api-base/types/storage" { > & QueryableStorageEntry; /** - * Randomness from previous block. Used to shuffle collators on session change. Should only be set on the last - * block of each session and should be killed on the on_initialize of the next block. The default value of [0; 32] - * disables randomness in the pallet. - */ + * Randomness from previous block. Used to shuffle collators on session change. + * Should only be set on the last block of each session and should be killed on the on_initialize of the next block. + * The default value of [0; 32] disables randomness in the pallet. + **/ randomness: AugmentedQuery Observable, []> & QueryableStorageEntry; - /** Generic query */ + /** + * Generic query + **/ [key: string]: QueryableStorageEntry; }; configuration: { - /** The active configuration for the current session. */ + /** + * The active configuration for the current session. + **/ activeConfig: AugmentedQuery Observable, []> & QueryableStorageEntry; /** - * If this is set, then the configuration setters will bypass the consistency checks. This is meant to be used - * only as the last resort. - */ + * If this is set, then the configuration setters will bypass the consistency checks. This + * is meant to be used only as the last resort. + **/ bypassConsistencyCheck: AugmentedQuery Observable, []> & QueryableStorageEntry; /** * Pending configuration changes. * - * This is a list of configuration changes, each with a session index at which it should be applied. + * This is a list of configuration changes, each with a session index at which it should + * be applied. * - * The list is sorted ascending by session index. Also, this list can only contain at most 2 items: for the next - * session and for the `scheduled_session`. - */ + * The list is sorted ascending by session index. Also, this list can only contain at most + * 2 items: for the next session and for the `scheduled_session`. + **/ pendingConfigs: AugmentedQuery< ApiType, () => Observable>>, [] > & QueryableStorageEntry; - /** Generic query */ + /** + * Generic query + **/ [key: string]: QueryableStorageEntry; }; dataPreservers: { @@ -324,11 +361,15 @@ declare module "@polkadot/api-base/types/storage" { [u64] > & QueryableStorageEntry; - /** Generic query */ + /** + * Generic query + **/ [key: string]: QueryableStorageEntry; }; foreignAssets: { - /** The holdings of a specific account for a specific asset. */ + /** + * The holdings of a specific account for a specific asset. + **/ account: AugmentedQuery< ApiType, ( @@ -339,10 +380,10 @@ declare module "@polkadot/api-base/types/storage" { > & QueryableStorageEntry; /** - * Approved balance transfers. First balance is the amount approved for transfer. Second is the amount of - * `T::Currency` reserved for storing this. First key is the asset ID, second key is the owner and third key is - * the delegate. - */ + * Approved balance transfers. First balance is the amount approved for transfer. Second + * is the amount of `T::Currency` reserved for storing this. + * First key is the asset ID, second key is the owner and third key is the delegate. + **/ approvals: AugmentedQuery< ApiType, ( @@ -353,14 +394,18 @@ declare module "@polkadot/api-base/types/storage" { [u16, AccountId32, AccountId32] > & QueryableStorageEntry; - /** Details of an asset. */ + /** + * Details of an asset. + **/ asset: AugmentedQuery< ApiType, (arg: u16 | AnyNumber | Uint8Array) => Observable>, [u16] > & QueryableStorageEntry; - /** Metadata of an asset. */ + /** + * Metadata of an asset. + **/ metadata: AugmentedQuery< ApiType, (arg: u16 | AnyNumber | Uint8Array) => Observable, @@ -368,25 +413,29 @@ declare module "@polkadot/api-base/types/storage" { > & QueryableStorageEntry; /** - * The asset ID enforced for the next asset creation, if any present. Otherwise, this storage item has no effect. + * The asset ID enforced for the next asset creation, if any present. Otherwise, this storage + * item has no effect. * - * This can be useful for setting up constraints for IDs of the new assets. For example, by providing an initial - * [`NextAssetId`] and using the [`crate::AutoIncAssetId`] callback, an auto-increment model can be applied to all - * new asset IDs. + * This can be useful for setting up constraints for IDs of the new assets. For example, by + * providing an initial [`NextAssetId`] and using the [`crate::AutoIncAssetId`] callback, an + * auto-increment model can be applied to all new asset IDs. * * The initial next asset ID can be set using the [`GenesisConfig`] or the * [SetNextAssetId](`migration::next_asset_id::SetNextAssetId`) migration. - */ + **/ nextAssetId: AugmentedQuery Observable>, []> & QueryableStorageEntry; - /** Generic query */ + /** + * Generic query + **/ [key: string]: QueryableStorageEntry; }; foreignAssetsCreator: { /** - * Mapping from an asset id to a Foreign asset type. This is mostly used when receiving transaction specifying an - * asset directly, like transferring an asset from this chain to another. - */ + * Mapping from an asset id to a Foreign asset type. + * This is mostly used when receiving transaction specifying an asset directly, + * like transferring an asset from this chain to another. + **/ assetIdToForeignAsset: AugmentedQuery< ApiType, (arg: u16 | AnyNumber | Uint8Array) => Observable>, @@ -394,9 +443,10 @@ declare module "@polkadot/api-base/types/storage" { > & QueryableStorageEntry; /** - * Reverse mapping of AssetIdToForeignAsset. Mapping from a foreign asset to an asset id. This is mostly used when - * receiving a multilocation XCM message to retrieve the corresponding asset in which tokens should me minted. - */ + * Reverse mapping of AssetIdToForeignAsset. Mapping from a foreign asset to an asset id. + * This is mostly used when receiving a multilocation XCM message to retrieve + * the corresponding asset in which tokens should me minted. + **/ foreignAssetToAssetId: AugmentedQuery< ApiType, ( @@ -405,16 +455,19 @@ declare module "@polkadot/api-base/types/storage" { [StagingXcmV4Location] > & QueryableStorageEntry; - /** Generic query */ + /** + * Generic query + **/ [key: string]: QueryableStorageEntry; }; identity: { /** - * Reverse lookup from `username` to the `AccountId` that has registered it. The value should be a key in the - * `IdentityOf` map, but it may not if the user has cleared their identity. + * Reverse lookup from `username` to the `AccountId` that has registered it. The value should + * be a key in the `IdentityOf` map, but it may not if the user has cleared their identity. * - * Multiple usernames may map to the same `AccountId`, but `IdentityOf` will only map to one primary username. - */ + * Multiple usernames may map to the same `AccountId`, but `IdentityOf` will only map to one + * primary username. + **/ accountOfUsername: AugmentedQuery< ApiType, (arg: Bytes | string | Uint8Array) => Observable>, @@ -422,11 +475,11 @@ declare module "@polkadot/api-base/types/storage" { > & QueryableStorageEntry; /** - * Information that is pertinent to identify the entity behind an account. First item is the registration, second - * is the account's primary username. + * Information that is pertinent to identify the entity behind an account. First item is the + * registration, second is the account's primary username. * * TWOX-NOTE: OK ― `AccountId` is a secure hash. - */ + **/ identityOf: AugmentedQuery< ApiType, ( @@ -436,12 +489,13 @@ declare module "@polkadot/api-base/types/storage" { > & QueryableStorageEntry; /** - * Usernames that an authority has granted, but that the account controller has not confirmed that they want it. - * Used primarily in cases where the `AccountId` cannot provide a signature because they are a pure proxy, - * multisig, etc. In order to confirm it, they should call [`Call::accept_username`]. + * Usernames that an authority has granted, but that the account controller has not confirmed + * that they want it. Used primarily in cases where the `AccountId` cannot provide a signature + * because they are a pure proxy, multisig, etc. In order to confirm it, they should call + * [`Call::accept_username`]. * * First tuple item is the account and second is the acceptance deadline. - */ + **/ pendingUsernames: AugmentedQuery< ApiType, (arg: Bytes | string | Uint8Array) => Observable>>, @@ -449,11 +503,11 @@ declare module "@polkadot/api-base/types/storage" { > & QueryableStorageEntry; /** - * The set of registrars. Not expected to get very big as can only be added through a special origin (likely a - * council motion). + * The set of registrars. Not expected to get very big as can only be added through a + * special origin (likely a council motion). * * The index into this can be cast to `RegistrarIndex` to get a valid value. - */ + **/ registrars: AugmentedQuery Observable>>, []> & QueryableStorageEntry; /** @@ -462,7 +516,7 @@ declare module "@polkadot/api-base/types/storage" { * The first item is the deposit, the second is a vector of the accounts. * * TWOX-NOTE: OK ― `AccountId` is a secure hash. - */ + **/ subsOf: AugmentedQuery< ApiType, (arg: AccountId32 | string | Uint8Array) => Observable]>>, @@ -470,51 +524,69 @@ declare module "@polkadot/api-base/types/storage" { > & QueryableStorageEntry; /** - * The super-identity of an alternative "sub" identity together with its name, within that context. If the account - * is not some other account's sub-identity, then just `None`. - */ + * The super-identity of an alternative "sub" identity together with its name, within that + * context. If the account is not some other account's sub-identity, then just `None`. + **/ superOf: AugmentedQuery< ApiType, (arg: AccountId32 | string | Uint8Array) => Observable>>, [AccountId32] > & QueryableStorageEntry; - /** A map of the accounts who are authorized to grant usernames. */ + /** + * A map of the accounts who are authorized to grant usernames. + **/ usernameAuthorities: AugmentedQuery< ApiType, (arg: AccountId32 | string | Uint8Array) => Observable>, [AccountId32] > & QueryableStorageEntry; - /** Generic query */ + /** + * Generic query + **/ [key: string]: QueryableStorageEntry; }; inflationRewards: { - /** Container chains to reward per block */ + /** + * Container chains to reward per block + **/ chainsToReward: AugmentedQuery< ApiType, () => Observable>, [] > & QueryableStorageEntry; - /** Generic query */ + /** + * Generic query + **/ [key: string]: QueryableStorageEntry; }; invulnerables: { - /** The invulnerable, permissioned collators. */ + /** + * The invulnerable, permissioned collators. + **/ invulnerables: AugmentedQuery Observable>, []> & QueryableStorageEntry; - /** Generic query */ + /** + * Generic query + **/ [key: string]: QueryableStorageEntry; }; maintenanceMode: { - /** Whether the site is in maintenance mode */ + /** + * Whether the site is in maintenance mode + **/ maintenanceMode: AugmentedQuery Observable, []> & QueryableStorageEntry; - /** Generic query */ + /** + * Generic query + **/ [key: string]: QueryableStorageEntry; }; messageQueue: { - /** The index of the first and last (non-empty) pages. */ + /** + * The index of the first and last (non-empty) pages. + **/ bookStateFor: AugmentedQuery< ApiType, ( @@ -529,7 +601,9 @@ declare module "@polkadot/api-base/types/storage" { [CumulusPrimitivesCoreAggregateMessageOrigin] > & QueryableStorageEntry; - /** The map of page indices to pages. */ + /** + * The map of page indices to pages. + **/ pages: AugmentedQuery< ApiType, ( @@ -545,35 +619,45 @@ declare module "@polkadot/api-base/types/storage" { [CumulusPrimitivesCoreAggregateMessageOrigin, u32] > & QueryableStorageEntry; - /** The origin at which we should begin servicing. */ + /** + * The origin at which we should begin servicing. + **/ serviceHead: AugmentedQuery< ApiType, () => Observable>, [] > & QueryableStorageEntry; - /** Generic query */ + /** + * Generic query + **/ [key: string]: QueryableStorageEntry; }; migrations: { - /** True if all required migrations have completed */ + /** + * True if all required migrations have completed + **/ fullyUpgraded: AugmentedQuery Observable, []> & QueryableStorageEntry; /** - * MigrationState tracks the progress of a migration. Maps name (Vec) -> whether or not migration has been - * completed (bool) - */ + * MigrationState tracks the progress of a migration. + * Maps name (Vec) -> whether or not migration has been completed (bool) + **/ migrationState: AugmentedQuery Observable, [Bytes]> & QueryableStorageEntry; /** - * Temporary value that is set to true at the beginning of the block during which the execution of xcm messages - * must be paused. - */ + * Temporary value that is set to true at the beginning of the block during which the execution + * of xcm messages must be paused. + **/ shouldPauseXcm: AugmentedQuery Observable, []> & QueryableStorageEntry; - /** Generic query */ + /** + * Generic query + **/ [key: string]: QueryableStorageEntry; }; multisig: { - /** The set of open multisig operations. */ + /** + * The set of open multisig operations. + **/ multisigs: AugmentedQuery< ApiType, ( @@ -583,19 +667,24 @@ declare module "@polkadot/api-base/types/storage" { [AccountId32, U8aFixed] > & QueryableStorageEntry; - /** Generic query */ + /** + * Generic query + **/ [key: string]: QueryableStorageEntry; }; parachainInfo: { parachainId: AugmentedQuery Observable, []> & QueryableStorageEntry; - /** Generic query */ + /** + * Generic query + **/ [key: string]: QueryableStorageEntry; }; parachainSystem: { /** - * Storage field that keeps track of bandwidth used by the unincluded segment along with the latest HRMP - * watermark. Used for limiting the acceptance of new blocks with respect to relay chain constraints. - */ + * Storage field that keeps track of bandwidth used by the unincluded segment along with the + * latest HRMP watermark. Used for limiting the acceptance of new blocks with + * respect to relay chain constraints. + **/ aggregatedUnincludedSegment: AugmentedQuery< ApiType, () => Observable>, @@ -603,29 +692,31 @@ declare module "@polkadot/api-base/types/storage" { > & QueryableStorageEntry; /** - * The number of HRMP messages we observed in `on_initialize` and thus used that number for announcing the weight - * of `on_initialize` and `on_finalize`. - */ + * The number of HRMP messages we observed in `on_initialize` and thus used that number for + * announcing the weight of `on_initialize` and `on_finalize`. + **/ announcedHrmpMessagesPerCandidate: AugmentedQuery Observable, []> & QueryableStorageEntry; /** * A custom head data that should be returned as result of `validate_block`. * * See `Pallet::set_custom_validation_head_data` for more information. - */ + **/ customValidationHeadData: AugmentedQuery Observable>, []> & QueryableStorageEntry; - /** Were the validation data set to notify the relay chain? */ + /** + * Were the validation data set to notify the relay chain? + **/ didSetValidationCode: AugmentedQuery Observable, []> & QueryableStorageEntry; /** * The parachain host configuration that was obtained from the relay parent. * - * This field is meant to be updated each block with the validation data inherent. Therefore, before processing of - * the inherent, e.g. in `on_initialize` this data may be stale. + * This field is meant to be updated each block with the validation data inherent. Therefore, + * before processing of the inherent, e.g. in `on_initialize` this data may be stale. * * This data is also absent from the genesis. - */ + **/ hostConfiguration: AugmentedQuery< ApiType, () => Observable>, @@ -636,7 +727,7 @@ declare module "@polkadot/api-base/types/storage" { * HRMP messages that were sent in a block. * * This will be cleared in `on_initialize` of each new block. - */ + **/ hrmpOutboundMessages: AugmentedQuery< ApiType, () => Observable>, @@ -647,75 +738,80 @@ declare module "@polkadot/api-base/types/storage" { * HRMP watermark that was set in a block. * * This will be cleared in `on_initialize` of each new block. - */ + **/ hrmpWatermark: AugmentedQuery Observable, []> & QueryableStorageEntry; /** * The last downward message queue chain head we have observed. * - * This value is loaded before and saved after processing inbound downward messages carried by the system - * inherent. - */ + * This value is loaded before and saved after processing inbound downward messages carried + * by the system inherent. + **/ lastDmqMqcHead: AugmentedQuery Observable, []> & QueryableStorageEntry; /** * The message queue chain heads we have observed per each channel incoming channel. * - * This value is loaded before and saved after processing inbound downward messages carried by the system - * inherent. - */ + * This value is loaded before and saved after processing inbound downward messages carried + * by the system inherent. + **/ lastHrmpMqcHeads: AugmentedQuery Observable>, []> & QueryableStorageEntry; /** * The relay chain block number associated with the last parachain block. * * This is updated in `on_finalize`. - */ + **/ lastRelayChainBlockNumber: AugmentedQuery Observable, []> & QueryableStorageEntry; /** - * Validation code that is set by the parachain and is to be communicated to collator and consequently the - * relay-chain. + * Validation code that is set by the parachain and is to be communicated to collator and + * consequently the relay-chain. * - * This will be cleared in `on_initialize` of each new block if no other pallet already set the value. - */ + * This will be cleared in `on_initialize` of each new block if no other pallet already set + * the value. + **/ newValidationCode: AugmentedQuery Observable>, []> & QueryableStorageEntry; - /** Upward messages that are still pending and not yet send to the relay chain. */ + /** + * Upward messages that are still pending and not yet send to the relay chain. + **/ pendingUpwardMessages: AugmentedQuery Observable>, []> & QueryableStorageEntry; /** - * In case of a scheduled upgrade, this storage field contains the validation code to be applied. + * In case of a scheduled upgrade, this storage field contains the validation code to be + * applied. * * As soon as the relay chain gives us the go-ahead signal, we will overwrite the - * [`:code`][sp_core::storage::well_known_keys::CODE] which will result the next block process with the new - * validation code. This concludes the upgrade process. - */ + * [`:code`][sp_core::storage::well_known_keys::CODE] which will result the next block process + * with the new validation code. This concludes the upgrade process. + **/ pendingValidationCode: AugmentedQuery Observable, []> & QueryableStorageEntry; /** * Number of downward messages processed in a block. * * This will be cleared in `on_initialize` of each new block. - */ + **/ processedDownwardMessages: AugmentedQuery Observable, []> & QueryableStorageEntry; /** * The state proof for the last relay parent block. * - * This field is meant to be updated each block with the validation data inherent. Therefore, before processing of - * the inherent, e.g. in `on_initialize` this data may be stale. + * This field is meant to be updated each block with the validation data inherent. Therefore, + * before processing of the inherent, e.g. in `on_initialize` this data may be stale. * * This data is also absent from the genesis. - */ + **/ relayStateProof: AugmentedQuery Observable>, []> & QueryableStorageEntry; /** - * The snapshot of some state related to messaging relevant to the current parachain as per the relay parent. + * The snapshot of some state related to messaging relevant to the current parachain as per + * the relay parent. * - * This field is meant to be updated each block with the validation data inherent. Therefore, before processing of - * the inherent, e.g. in `on_initialize` this data may be stale. + * This field is meant to be updated each block with the validation data inherent. Therefore, + * before processing of the inherent, e.g. in `on_initialize` this data may be stale. * * This data is also absent from the genesis. - */ + **/ relevantMessagingState: AugmentedQuery< ApiType, () => Observable>, @@ -723,23 +819,25 @@ declare module "@polkadot/api-base/types/storage" { > & QueryableStorageEntry; /** - * The weight we reserve at the beginning of the block for processing DMP messages. This overrides the amount set - * in the Config trait. - */ + * The weight we reserve at the beginning of the block for processing DMP messages. This + * overrides the amount set in the Config trait. + **/ reservedDmpWeightOverride: AugmentedQuery Observable>, []> & QueryableStorageEntry; /** - * The weight we reserve at the beginning of the block for processing XCMP messages. This overrides the amount set - * in the Config trait. - */ + * The weight we reserve at the beginning of the block for processing XCMP messages. This + * overrides the amount set in the Config trait. + **/ reservedXcmpWeightOverride: AugmentedQuery Observable>, []> & QueryableStorageEntry; /** - * Latest included block descendants the runtime accepted. In other words, these are ancestors of the currently - * executing block which have not been included in the observed relay-chain state. + * Latest included block descendants the runtime accepted. In other words, these are + * ancestors of the currently executing block which have not been included in the observed + * relay-chain state. * - * The segment length is limited by the capacity returned from the [`ConsensusHook`] configured in the pallet. - */ + * The segment length is limited by the capacity returned from the [`ConsensusHook`] configured + * in the pallet. + **/ unincludedSegment: AugmentedQuery< ApiType, () => Observable>, @@ -749,60 +847,72 @@ declare module "@polkadot/api-base/types/storage" { /** * Optional upgrade go-ahead signal from the relay-chain. * - * This storage item is a mirror of the corresponding value for the current parachain from the relay-chain. This - * value is ephemeral which means it doesn't hit the storage. This value is set after the inherent. - */ + * This storage item is a mirror of the corresponding value for the current parachain from the + * relay-chain. This value is ephemeral which means it doesn't hit the storage. This value is + * set after the inherent. + **/ upgradeGoAhead: AugmentedQuery Observable>, []> & QueryableStorageEntry; /** - * An option which indicates if the relay-chain restricts signalling a validation code upgrade. In other words, if - * this is `Some` and [`NewValidationCode`] is `Some` then the produced candidate will be invalid. + * An option which indicates if the relay-chain restricts signalling a validation code upgrade. + * In other words, if this is `Some` and [`NewValidationCode`] is `Some` then the produced + * candidate will be invalid. * - * This storage item is a mirror of the corresponding value for the current parachain from the relay-chain. This - * value is ephemeral which means it doesn't hit the storage. This value is set after the inherent. - */ + * This storage item is a mirror of the corresponding value for the current parachain from the + * relay-chain. This value is ephemeral which means it doesn't hit the storage. This value is + * set after the inherent. + **/ upgradeRestrictionSignal: AugmentedQuery< ApiType, () => Observable>, [] > & QueryableStorageEntry; - /** The factor to multiply the base delivery fee by for UMP. */ + /** + * The factor to multiply the base delivery fee by for UMP. + **/ upwardDeliveryFeeFactor: AugmentedQuery Observable, []> & QueryableStorageEntry; /** * Upward messages that were sent in a block. * * This will be cleared in `on_initialize` of each new block. - */ + **/ upwardMessages: AugmentedQuery Observable>, []> & QueryableStorageEntry; /** - * The [`PersistedValidationData`] set for this block. This value is expected to be set only once per block and - * it's never stored in the trie. - */ + * The [`PersistedValidationData`] set for this block. + * This value is expected to be set only once per block and it's never stored + * in the trie. + **/ validationData: AugmentedQuery< ApiType, () => Observable>, [] > & QueryableStorageEntry; - /** Generic query */ + /** + * Generic query + **/ [key: string]: QueryableStorageEntry; }; polkadotXcm: { /** * The existing asset traps. * - * Key is the blake2 256 hash of (origin, versioned `Assets`) pair. Value is the number of times this pair has - * been trapped (usually just 1 if it exists at all). - */ + * Key is the blake2 256 hash of (origin, versioned `Assets`) pair. Value is the number of + * times this pair has been trapped (usually just 1 if it exists at all). + **/ assetTraps: AugmentedQuery Observable, [H256]> & QueryableStorageEntry; - /** The current migration's stage, if any. */ + /** + * The current migration's stage, if any. + **/ currentMigration: AugmentedQuery Observable>, []> & QueryableStorageEntry; - /** Fungible assets which we know are locked on this chain. */ + /** + * Fungible assets which we know are locked on this chain. + **/ lockedFungibles: AugmentedQuery< ApiType, ( @@ -811,25 +921,32 @@ declare module "@polkadot/api-base/types/storage" { [AccountId32] > & QueryableStorageEntry; - /** The ongoing queries. */ + /** + * The ongoing queries. + **/ queries: AugmentedQuery< ApiType, (arg: u64 | AnyNumber | Uint8Array) => Observable>, [u64] > & QueryableStorageEntry; - /** The latest available query index. */ + /** + * The latest available query index. + **/ queryCounter: AugmentedQuery Observable, []> & QueryableStorageEntry; /** - * If [`ShouldRecordXcm`] is set to true, then the last XCM program executed locally will be stored here. Runtime - * APIs can fetch the XCM that was executed by accessing this value. + * If [`ShouldRecordXcm`] is set to true, then the last XCM program executed locally + * will be stored here. + * Runtime APIs can fetch the XCM that was executed by accessing this value. * - * Only relevant if this pallet is being used as the [`xcm_executor::traits::RecordXcm`] implementation in the XCM - * executor configuration. - */ + * Only relevant if this pallet is being used as the [`xcm_executor::traits::RecordXcm`] + * implementation in the XCM executor configuration. + **/ recordedXcm: AugmentedQuery Observable>>, []> & QueryableStorageEntry; - /** Fungible assets which we know are locked on a remote chain. */ + /** + * Fungible assets which we know are locked on a remote chain. + **/ remoteLockedFungibles: AugmentedQuery< ApiType, ( @@ -841,21 +958,24 @@ declare module "@polkadot/api-base/types/storage" { > & QueryableStorageEntry; /** - * Default version to encode XCM when latest version of destination is unknown. If `None`, then the destinations - * whose XCM version is unknown are considered unreachable. - */ + * Default version to encode XCM when latest version of destination is unknown. If `None`, + * then the destinations whose XCM version is unknown are considered unreachable. + **/ safeXcmVersion: AugmentedQuery Observable>, []> & QueryableStorageEntry; /** - * Whether or not incoming XCMs (both executed locally and received) should be recorded. Only one XCM program will - * be recorded at a time. This is meant to be used in runtime APIs, and it's advised it stays false for all other - * use cases, so as to not degrade regular performance. + * Whether or not incoming XCMs (both executed locally and received) should be recorded. + * Only one XCM program will be recorded at a time. + * This is meant to be used in runtime APIs, and it's advised it stays false + * for all other use cases, so as to not degrade regular performance. * - * Only relevant if this pallet is being used as the [`xcm_executor::traits::RecordXcm`] implementation in the XCM - * executor configuration. - */ + * Only relevant if this pallet is being used as the [`xcm_executor::traits::RecordXcm`] + * implementation in the XCM executor configuration. + **/ shouldRecordXcm: AugmentedQuery Observable, []> & QueryableStorageEntry; - /** The Latest versions that we know various locations support. */ + /** + * The Latest versions that we know various locations support. + **/ supportedVersion: AugmentedQuery< ApiType, ( @@ -866,16 +986,19 @@ declare module "@polkadot/api-base/types/storage" { > & QueryableStorageEntry; /** - * Destinations whose latest XCM version we would like to know. Duplicates not allowed, and the `u32` counter is - * the number of times that a send to the destination has been attempted, which is used as a prioritization. - */ + * Destinations whose latest XCM version we would like to know. Duplicates not allowed, and + * the `u32` counter is the number of times that a send to the destination has been attempted, + * which is used as a prioritization. + **/ versionDiscoveryQueue: AugmentedQuery< ApiType, () => Observable>>, [] > & QueryableStorageEntry; - /** All locations that we have requested version notifications from. */ + /** + * All locations that we have requested version notifications from. + **/ versionNotifiers: AugmentedQuery< ApiType, ( @@ -886,9 +1009,9 @@ declare module "@polkadot/api-base/types/storage" { > & QueryableStorageEntry; /** - * The target locations that are subscribed to our version changes, as well as the most recent of our versions we - * informed them of. - */ + * The target locations that are subscribed to our version changes, as well as the most recent + * of our versions we informed them of. + **/ versionNotifyTargets: AugmentedQuery< ApiType, ( @@ -898,14 +1021,21 @@ declare module "@polkadot/api-base/types/storage" { [u32, XcmVersionedLocation] > & QueryableStorageEntry; - /** Global suspension state of the XCM executor. */ + /** + * Global suspension state of the XCM executor. + **/ xcmExecutionSuspended: AugmentedQuery Observable, []> & QueryableStorageEntry; - /** Generic query */ + /** + * Generic query + **/ [key: string]: QueryableStorageEntry; }; pooledStaking: { - /** Pending operations balances. Balances are expressed in joining/leaving shares amounts. */ + /** + * Pending operations balances. + * Balances are expressed in joining/leaving shares amounts. + **/ pendingOperations: AugmentedQuery< ApiType, ( @@ -921,7 +1051,9 @@ declare module "@polkadot/api-base/types/storage" { [AccountId32, PalletPooledStakingPendingOperationKey] > & QueryableStorageEntry; - /** Pools balances. */ + /** + * Pools balances. + **/ pools: AugmentedQuery< ApiType, ( @@ -954,20 +1086,25 @@ declare module "@polkadot/api-base/types/storage" { > & QueryableStorageEntry; /** - * Keeps a list of all eligible candidates, sorted by the amount of stake backing them. This can be quickly - * updated using a binary search, and allow to easily take the top `MaxCollatorSetSize`. - */ + * Keeps a list of all eligible candidates, sorted by the amount of stake backing them. + * This can be quickly updated using a binary search, and allow to easily take the top + * `MaxCollatorSetSize`. + **/ sortedEligibleCandidates: AugmentedQuery< ApiType, () => Observable>, [] > & QueryableStorageEntry; - /** Generic query */ + /** + * Generic query + **/ [key: string]: QueryableStorageEntry; }; proxy: { - /** The announcements made by the proxy (key). */ + /** + * The announcements made by the proxy (key). + **/ announcements: AugmentedQuery< ApiType, (arg: AccountId32 | string | Uint8Array) => Observable, u128]>>, @@ -975,36 +1112,40 @@ declare module "@polkadot/api-base/types/storage" { > & QueryableStorageEntry; /** - * The set of account proxies. Maps the account which has delegated to the accounts which are being delegated to, - * together with the amount held on deposit. - */ + * The set of account proxies. Maps the account which has delegated to the accounts + * which are being delegated to, together with the amount held on deposit. + **/ proxies: AugmentedQuery< ApiType, (arg: AccountId32 | string | Uint8Array) => Observable, u128]>>, [AccountId32] > & QueryableStorageEntry; - /** Generic query */ + /** + * Generic query + **/ [key: string]: QueryableStorageEntry; }; registrar: { /** - * This storage aims to act as a 'buffer' for paraIds that must be deregistered at the end of the block execution - * by calling 'T::InnerRegistrar::deregister()' implementation. + * This storage aims to act as a 'buffer' for paraIds that must be deregistered at the + * end of the block execution by calling 'T::InnerRegistrar::deregister()' implementation. * - * We need this buffer because when we are using this pallet on a relay-chain environment like Dancelight (where - * 'T::InnerRegistrar' implementation is usually the 'paras_registrar' pallet) we need to deregister (via - * 'paras_registrar::deregister') the same paraIds we have in 'PendingToRemove', and we need to do this - * deregistration process inside 'on_finalize' hook. + * We need this buffer because when we are using this pallet on a relay-chain environment + * like Dancelight (where 'T::InnerRegistrar' implementation is usually the + * 'paras_registrar' pallet) we need to deregister (via 'paras_registrar::deregister') + * the same paraIds we have in 'PendingToRemove', and we need to do this deregistration + * process inside 'on_finalize' hook. * - * It can be the case that some paraIds need to be downgraded to a parathread before deregistering on - * 'paras_registrar'. This process usually takes 2 sessions, and the actual downgrade happens when the block - * finalizes. + * It can be the case that some paraIds need to be downgraded to a parathread before + * deregistering on 'paras_registrar'. This process usually takes 2 sessions, + * and the actual downgrade happens when the block finalizes. * - * Therefore, if we tried to perform this relay deregistration process at the beginning of the session/block - * inside ('on_initialize') initializer_on_new_session() as we do for this pallet, it would fail due to the - * downgrade process could have not taken place yet. - */ + * Therefore, if we tried to perform this relay deregistration process at the beginning + * of the session/block inside ('on_initialize') initializer_on_new_session() as we do + * for this pallet, it would fail due to the downgrade process could have not taken + * place yet. + **/ bufferedParasToDeregister: AugmentedQuery Observable>, []> & QueryableStorageEntry; paraGenesisData: AugmentedQuery< @@ -1049,20 +1190,25 @@ declare module "@polkadot/api-base/types/storage" { registeredParaIds: AugmentedQuery Observable>, []> & QueryableStorageEntry; /** - * Registrar deposits, a mapping from paraId to a struct holding the creator (from which the deposit was reserved) - * and the deposit amount - */ + * Registrar deposits, a mapping from paraId to a struct + * holding the creator (from which the deposit was reserved) and + * the deposit amount + **/ registrarDeposit: AugmentedQuery< ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable>, [u32] > & QueryableStorageEntry; - /** Generic query */ + /** + * Generic query + **/ [key: string]: QueryableStorageEntry; }; relayStorageRoots: { - /** Map of relay block number to relay storage root */ + /** + * Map of relay block number to relay storage root + **/ relayStorageRoot: AugmentedQuery< ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable>, @@ -1070,12 +1216,14 @@ declare module "@polkadot/api-base/types/storage" { > & QueryableStorageEntry; /** - * List of all the keys in `RelayStorageRoot`. Used to remove the oldest key without having to iterate over all of - * them. - */ + * List of all the keys in `RelayStorageRoot`. + * Used to remove the oldest key without having to iterate over all of them. + **/ relayStorageRootKeys: AugmentedQuery Observable>, []> & QueryableStorageEntry; - /** Generic query */ + /** + * Generic query + **/ [key: string]: QueryableStorageEntry; }; servicesPayment: { @@ -1091,45 +1239,60 @@ declare module "@polkadot/api-base/types/storage" { [u32] > & QueryableStorageEntry; - /** List of para ids that have already been given free credits */ + /** + * List of para ids that have already been given free credits + **/ givenFreeCredits: AugmentedQuery< ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable>, [u32] > & QueryableStorageEntry; - /** Max core price for parathread in relay chain currency */ + /** + * Max core price for parathread in relay chain currency + **/ maxCorePrice: AugmentedQuery< ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable>, [u32] > & QueryableStorageEntry; - /** Max tip for collator assignment on congestion */ + /** + * Max tip for collator assignment on congestion + **/ maxTip: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; - /** Refund address */ + /** + * Refund address + **/ refundAddress: AugmentedQuery< ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable>, [u32] > & QueryableStorageEntry; - /** Generic query */ + /** + * Generic query + **/ [key: string]: QueryableStorageEntry; }; session: { - /** Current index of the session. */ + /** + * Current index of the session. + **/ currentIndex: AugmentedQuery Observable, []> & QueryableStorageEntry; /** * Indices of disabled validators. * - * The vec is always kept sorted so that we can find whether a given validator is disabled using binary search. It - * gets cleared when `on_session_ending` returns a new set of identities. - */ + * The vec is always kept sorted so that we can find whether a given validator is + * disabled using binary search. It gets cleared when `on_session_ending` returns + * a new set of identities. + **/ disabledValidators: AugmentedQuery Observable>, []> & QueryableStorageEntry; - /** The owner of a key. The key is the `KeyTypeId` + the encoded key. */ + /** + * The owner of a key. The key is the `KeyTypeId` + the encoded key. + **/ keyOwner: AugmentedQuery< ApiType, ( @@ -1140,7 +1303,9 @@ declare module "@polkadot/api-base/types/storage" { [ITuple<[SpCoreCryptoKeyTypeId, Bytes]>] > & QueryableStorageEntry]>; - /** The next session keys for a validator. */ + /** + * The next session keys for a validator. + **/ nextKeys: AugmentedQuery< ApiType, (arg: AccountId32 | string | Uint8Array) => Observable>, @@ -1148,32 +1313,38 @@ declare module "@polkadot/api-base/types/storage" { > & QueryableStorageEntry; /** - * True if the underlying economic identities or weighting behind the validators has changed in the queued - * validator set. - */ + * True if the underlying economic identities or weighting behind the validators + * has changed in the queued validator set. + **/ queuedChanged: AugmentedQuery Observable, []> & QueryableStorageEntry; /** - * The queued keys for the next session. When the next session begins, these keys will be used to determine the - * validator's session keys. - */ + * The queued keys for the next session. When the next session begins, these keys + * will be used to determine the validator's session keys. + **/ queuedKeys: AugmentedQuery< ApiType, () => Observable>>, [] > & QueryableStorageEntry; - /** The current set of validators. */ + /** + * The current set of validators. + **/ validators: AugmentedQuery Observable>, []> & QueryableStorageEntry; - /** Generic query */ + /** + * Generic query + **/ [key: string]: QueryableStorageEntry; }; streamPayment: { /** - * Lookup for all streams with given source. To avoid maintaining a growing list of stream ids, they are stored in - * the form of an entry (AccountId, StreamId). If such entry exists then this AccountId is a source in StreamId. - * One can iterate over all storage keys starting with the AccountId to find all StreamIds. - */ + * Lookup for all streams with given source. + * To avoid maintaining a growing list of stream ids, they are stored in + * the form of an entry (AccountId, StreamId). If such entry exists then + * this AccountId is a source in StreamId. One can iterate over all storage + * keys starting with the AccountId to find all StreamIds. + **/ lookupStreamsWithSource: AugmentedQuery< ApiType, ( @@ -1184,10 +1355,12 @@ declare module "@polkadot/api-base/types/storage" { > & QueryableStorageEntry; /** - * Lookup for all streams with given target. To avoid maintaining a growing list of stream ids, they are stored in - * the form of an entry (AccountId, StreamId). If such entry exists then this AccountId is a target in StreamId. - * One can iterate over all storage keys starting with the AccountId to find all StreamIds. - */ + * Lookup for all streams with given target. + * To avoid maintaining a growing list of stream ids, they are stored in + * the form of an entry (AccountId, StreamId). If such entry exists then + * this AccountId is a target in StreamId. One can iterate over all storage + * keys starting with the AccountId to find all StreamIds. + **/ lookupStreamsWithTarget: AugmentedQuery< ApiType, ( @@ -1197,160 +1370,228 @@ declare module "@polkadot/api-base/types/storage" { [AccountId32, u64] > & QueryableStorageEntry; - /** Store the next available stream id. */ + /** + * Store the next available stream id. + **/ nextStreamId: AugmentedQuery Observable, []> & QueryableStorageEntry; - /** Store each stream indexed by an Id. */ + /** + * Store each stream indexed by an Id. + **/ streams: AugmentedQuery< ApiType, (arg: u64 | AnyNumber | Uint8Array) => Observable>, [u64] > & QueryableStorageEntry; - /** Generic query */ + /** + * Generic query + **/ [key: string]: QueryableStorageEntry; }; sudo: { - /** The `AccountId` of the sudo key. */ + /** + * The `AccountId` of the sudo key. + **/ key: AugmentedQuery Observable>, []> & QueryableStorageEntry; - /** Generic query */ + /** + * Generic query + **/ [key: string]: QueryableStorageEntry; }; system: { - /** The full account information for a particular account ID. */ + /** + * The full account information for a particular account ID. + **/ account: AugmentedQuery< ApiType, (arg: AccountId32 | string | Uint8Array) => Observable, [AccountId32] > & QueryableStorageEntry; - /** Total length (in bytes) for all extrinsics put together, for the current block. */ + /** + * Total length (in bytes) for all extrinsics put together, for the current block. + **/ allExtrinsicsLen: AugmentedQuery Observable>, []> & QueryableStorageEntry; - /** `Some` if a code upgrade has been authorized. */ + /** + * `Some` if a code upgrade has been authorized. + **/ authorizedUpgrade: AugmentedQuery< ApiType, () => Observable>, [] > & QueryableStorageEntry; - /** Map of block numbers to block hashes. */ + /** + * Map of block numbers to block hashes. + **/ blockHash: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; - /** The current weight for the block. */ + /** + * The current weight for the block. + **/ blockWeight: AugmentedQuery Observable, []> & QueryableStorageEntry; - /** Digest of the current block, also part of the block header. */ + /** + * Digest of the current block, also part of the block header. + **/ digest: AugmentedQuery Observable, []> & QueryableStorageEntry; - /** The number of events in the `Events` list. */ + /** + * The number of events in the `Events` list. + **/ eventCount: AugmentedQuery Observable, []> & QueryableStorageEntry; /** * Events deposited for the current block. * - * NOTE: The item is unbound and should therefore never be read on chain. It could otherwise inflate the PoV size - * of a block. + * NOTE: The item is unbound and should therefore never be read on chain. + * It could otherwise inflate the PoV size of a block. * - * Events have a large in-memory size. Box the events to not go out-of-memory just in case someone still reads - * them from within the runtime. - */ + * Events have a large in-memory size. Box the events to not go out-of-memory + * just in case someone still reads them from within the runtime. + **/ events: AugmentedQuery Observable>, []> & QueryableStorageEntry; /** - * Mapping between a topic (represented by T::Hash) and a vector of indexes of events in the `>` list. + * Mapping between a topic (represented by T::Hash) and a vector of indexes + * of events in the `>` list. * - * All topic vectors have deterministic storage locations depending on the topic. This allows light-clients to - * leverage the changes trie storage tracking mechanism and in case of changes fetch the list of events of - * interest. + * All topic vectors have deterministic storage locations depending on the topic. This + * allows light-clients to leverage the changes trie storage tracking mechanism and + * in case of changes fetch the list of events of interest. * - * The value has the type `(BlockNumberFor, EventIndex)` because if we used only just the `EventIndex` then in - * case if the topic has the same contents on the next block no notification will be triggered thus the event - * might be lost. - */ + * The value has the type `(BlockNumberFor, EventIndex)` because if we used only just + * the `EventIndex` then in case if the topic has the same contents on the next block + * no notification will be triggered thus the event might be lost. + **/ eventTopics: AugmentedQuery< ApiType, (arg: H256 | string | Uint8Array) => Observable>>, [H256] > & QueryableStorageEntry; - /** The execution phase of the block. */ + /** + * The execution phase of the block. + **/ executionPhase: AugmentedQuery Observable>, []> & QueryableStorageEntry; - /** Total extrinsics count for the current block. */ + /** + * Total extrinsics count for the current block. + **/ extrinsicCount: AugmentedQuery Observable>, []> & QueryableStorageEntry; - /** Extrinsics data for the current block (maps an extrinsic's index to its data). */ + /** + * Extrinsics data for the current block (maps an extrinsic's index to its data). + **/ extrinsicData: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; - /** Whether all inherents have been applied. */ + /** + * Whether all inherents have been applied. + **/ inherentsApplied: AugmentedQuery Observable, []> & QueryableStorageEntry; - /** Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened. */ + /** + * Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened. + **/ lastRuntimeUpgrade: AugmentedQuery< ApiType, () => Observable>, [] > & QueryableStorageEntry; - /** The current block number being processed. Set by `execute_block`. */ + /** + * The current block number being processed. Set by `execute_block`. + **/ number: AugmentedQuery Observable, []> & QueryableStorageEntry; - /** Hash of the previous block. */ + /** + * Hash of the previous block. + **/ parentHash: AugmentedQuery Observable, []> & QueryableStorageEntry; - /** True if we have upgraded so that AccountInfo contains three types of `RefCount`. False (default) if not. */ + /** + * True if we have upgraded so that AccountInfo contains three types of `RefCount`. False + * (default) if not. + **/ upgradedToTripleRefCount: AugmentedQuery Observable, []> & QueryableStorageEntry; - /** True if we have upgraded so that `type RefCount` is `u32`. False (default) if not. */ + /** + * True if we have upgraded so that `type RefCount` is `u32`. False (default) if not. + **/ upgradedToU32RefCount: AugmentedQuery Observable, []> & QueryableStorageEntry; - /** Generic query */ + /** + * Generic query + **/ [key: string]: QueryableStorageEntry; }; timestamp: { /** * Whether the timestamp has been updated in this block. * - * This value is updated to `true` upon successful submission of a timestamp by a node. It is then checked at the - * end of each block execution in the `on_finalize` hook. - */ + * This value is updated to `true` upon successful submission of a timestamp by a node. + * It is then checked at the end of each block execution in the `on_finalize` hook. + **/ didUpdate: AugmentedQuery Observable, []> & QueryableStorageEntry; - /** The current time for the current block. */ + /** + * The current time for the current block. + **/ now: AugmentedQuery Observable, []> & QueryableStorageEntry; - /** Generic query */ + /** + * Generic query + **/ [key: string]: QueryableStorageEntry; }; transactionPayment: { nextFeeMultiplier: AugmentedQuery Observable, []> & QueryableStorageEntry; storageVersion: AugmentedQuery Observable, []> & QueryableStorageEntry; - /** Generic query */ + /** + * Generic query + **/ [key: string]: QueryableStorageEntry; }; treasury: { - /** Proposal indices that have been approved but not yet awarded. */ + /** + * Proposal indices that have been approved but not yet awarded. + **/ approvals: AugmentedQuery Observable>, []> & QueryableStorageEntry; - /** The amount which has been reported as inactive to Currency. */ + /** + * The amount which has been reported as inactive to Currency. + **/ deactivated: AugmentedQuery Observable, []> & QueryableStorageEntry; - /** Number of proposals that have been made. */ + /** + * Number of proposals that have been made. + **/ proposalCount: AugmentedQuery Observable, []> & QueryableStorageEntry; - /** Proposals that have been made. */ + /** + * Proposals that have been made. + **/ proposals: AugmentedQuery< ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable>, [u32] > & QueryableStorageEntry; - /** The count of spends that have been made. */ + /** + * The count of spends that have been made. + **/ spendCount: AugmentedQuery Observable, []> & QueryableStorageEntry; - /** Spends that have been approved and being processed. */ + /** + * Spends that have been approved and being processed. + **/ spends: AugmentedQuery< ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable>, [u32] > & QueryableStorageEntry; - /** Generic query */ + /** + * Generic query + **/ [key: string]: QueryableStorageEntry; }; txPause: { - /** The set of calls that are explicitly paused. */ + /** + * The set of calls that are explicitly paused. + **/ pausedCalls: AugmentedQuery< ApiType, ( @@ -1359,11 +1600,15 @@ declare module "@polkadot/api-base/types/storage" { [ITuple<[Bytes, Bytes]>] > & QueryableStorageEntry]>; - /** Generic query */ + /** + * Generic query + **/ [key: string]: QueryableStorageEntry; }; xcmCoreBuyer: { - /** Collator signature nonce for reply protection */ + /** + * Collator signature nonce for reply protection + **/ collatorSignatureNonce: AugmentedQuery< ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable, @@ -1371,24 +1616,28 @@ declare module "@polkadot/api-base/types/storage" { > & QueryableStorageEntry; /** - * Set of parathreads that have already sent an XCM message to buy a core recently. Used to avoid 2 collators - * buying a core at the same time, because it is only possible to buy 1 core in 1 relay block for the same - * parathread. - */ + * Set of parathreads that have already sent an XCM message to buy a core recently. + * Used to avoid 2 collators buying a core at the same time, because it is only possible to buy + * 1 core in 1 relay block for the same parathread. + **/ inFlightOrders: AugmentedQuery< ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable>, [u32] > & QueryableStorageEntry; - /** Number of pending blocks */ + /** + * Number of pending blocks + **/ pendingBlocks: AugmentedQuery< ApiType, (arg: u32 | AnyNumber | Uint8Array) => Observable>, [u32] > & QueryableStorageEntry; - /** Mapping of QueryId to ParaId */ + /** + * Mapping of QueryId to ParaId + **/ queryIdToParaId: AugmentedQuery< ApiType, (arg: u64 | AnyNumber | Uint8Array) => Observable>, @@ -1396,42 +1645,49 @@ declare module "@polkadot/api-base/types/storage" { > & QueryableStorageEntry; /** - * This must be set by root with the value of the relay chain xcm call weight and extrinsic weight limit. This is - * a storage item because relay chain weights can change, so we need to be able to adjust them without doing a - * runtime upgrade. - */ + * This must be set by root with the value of the relay chain xcm call weight and extrinsic + * weight limit. This is a storage item because relay chain weights can change, so we need to + * be able to adjust them without doing a runtime upgrade. + **/ relayChain: AugmentedQuery Observable, []> & QueryableStorageEntry; /** - * This must be set by root with the value of the relay chain xcm call weight and extrinsic weight limit. This is - * a storage item because relay chain weights can change, so we need to be able to adjust them without doing a - * runtime upgrade. - */ + * This must be set by root with the value of the relay chain xcm call weight and extrinsic + * weight limit. This is a storage item because relay chain weights can change, so we need to + * be able to adjust them without doing a runtime upgrade. + **/ relayXcmWeightConfig: AugmentedQuery< ApiType, () => Observable>, [] > & QueryableStorageEntry; - /** Generic query */ + /** + * Generic query + **/ [key: string]: QueryableStorageEntry; }; xcmpQueue: { - /** The factor to multiply the base delivery fee by. */ + /** + * The factor to multiply the base delivery fee by. + **/ deliveryFeeFactor: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; /** * The suspended inbound XCMP channels. All others are not suspended. * - * This is a `StorageValue` instead of a `StorageMap` since we expect multiple reads per block to different keys - * with a one byte payload. The access to `BoundedBTreeSet` will be cached within the block and therefore only - * included once in the proof size. + * This is a `StorageValue` instead of a `StorageMap` since we expect multiple reads per block + * to different keys with a one byte payload. The access to `BoundedBTreeSet` will be cached + * within the block and therefore only included once in the proof size. * - * NOTE: The PoV benchmarking cannot know this and will over-estimate, but the actual proof will be smaller. - */ + * NOTE: The PoV benchmarking cannot know this and will over-estimate, but the actual proof + * will be smaller. + **/ inboundXcmpSuspended: AugmentedQuery Observable>, []> & QueryableStorageEntry; - /** The messages outbound in a given XCMP channel. */ + /** + * The messages outbound in a given XCMP channel. + **/ outboundXcmpMessages: AugmentedQuery< ApiType, (arg1: u32 | AnyNumber | Uint8Array, arg2: u16 | AnyNumber | Uint8Array) => Observable, @@ -1439,27 +1695,36 @@ declare module "@polkadot/api-base/types/storage" { > & QueryableStorageEntry; /** - * The non-empty XCMP channels in order of becoming non-empty, and the index of the first and last outbound - * message. If the two indices are equal, then it indicates an empty queue and there must be a non-`Ok` - * `OutboundStatus`. We assume queues grow no greater than 65535 items. Queue indices for normal messages begin at - * one; zero is reserved in case of the need to send a high-priority signal message this block. The bool is true - * if there is a signal message waiting to be sent. - */ + * The non-empty XCMP channels in order of becoming non-empty, and the index of the first + * and last outbound message. If the two indices are equal, then it indicates an empty + * queue and there must be a non-`Ok` `OutboundStatus`. We assume queues grow no greater + * than 65535 items. Queue indices for normal messages begin at one; zero is reserved in + * case of the need to send a high-priority signal message this block. + * The bool is true if there is a signal message waiting to be sent. + **/ outboundXcmpStatus: AugmentedQuery< ApiType, () => Observable>, [] > & QueryableStorageEntry; - /** The configuration which controls the dynamics of the outbound queue. */ + /** + * The configuration which controls the dynamics of the outbound queue. + **/ queueConfig: AugmentedQuery Observable, []> & QueryableStorageEntry; - /** Whether or not the XCMP queue is suspended from executing incoming XCMs or not. */ + /** + * Whether or not the XCMP queue is suspended from executing incoming XCMs or not. + **/ queueSuspended: AugmentedQuery Observable, []> & QueryableStorageEntry; - /** Any signal messages waiting to be sent. */ + /** + * Any signal messages waiting to be sent. + **/ signalMessages: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; - /** Generic query */ + /** + * Generic query + **/ [key: string]: QueryableStorageEntry; }; } // AugmentedQueries diff --git a/typescript-api/src/dancebox/interfaces/augment-api-rpc.ts b/typescript-api/src/dancebox/interfaces/augment-api-rpc.ts index bf6de865f..273ca6c9a 100644 --- a/typescript-api/src/dancebox/interfaces/augment-api-rpc.ts +++ b/typescript-api/src/dancebox/interfaces/augment-api-rpc.ts @@ -102,11 +102,17 @@ export type __AugmentedRpc = AugmentedRpc<() => unknown>; declare module "@polkadot/rpc-core/types/jsonrpc" { interface RpcInterface { author: { - /** Returns true if the keystore has private keys for the given public key and key type. */ + /** + * Returns true if the keystore has private keys for the given public key and key type. + **/ hasKey: AugmentedRpc<(publicKey: Bytes | string | Uint8Array, keyType: Text | string) => Observable>; - /** Returns true if the keystore has private keys for the given session public keys. */ + /** + * Returns true if the keystore has private keys for the given session public keys. + **/ hasSessionKeys: AugmentedRpc<(sessionKeys: Bytes | string | Uint8Array) => Observable>; - /** Insert a key into the keystore. */ + /** + * Insert a key into the keystore. + **/ insertKey: AugmentedRpc< ( keyType: Text | string, @@ -114,9 +120,13 @@ declare module "@polkadot/rpc-core/types/jsonrpc" { publicKey: Bytes | string | Uint8Array ) => Observable >; - /** Returns all pending extrinsics, potentially grouped by sender */ + /** + * Returns all pending extrinsics, potentially grouped by sender + **/ pendingExtrinsics: AugmentedRpc<() => Observable>>; - /** Remove given extrinsic from the pool and temporarily ban it to prevent reimporting */ + /** + * Remove given extrinsic from the pool and temporarily ban it to prevent reimporting + **/ removeExtrinsic: AugmentedRpc< ( bytesOrHash: @@ -124,48 +134,73 @@ declare module "@polkadot/rpc-core/types/jsonrpc" { | (ExtrinsicOrHash | { Hash: any } | { Extrinsic: any } | string | Uint8Array)[] ) => Observable> >; - /** Generate new session keys and returns the corresponding public keys */ + /** + * Generate new session keys and returns the corresponding public keys + **/ rotateKeys: AugmentedRpc<() => Observable>; - /** Submit and subscribe to watch an extrinsic until unsubscribed */ + /** + * Submit and subscribe to watch an extrinsic until unsubscribed + **/ submitAndWatchExtrinsic: AugmentedRpc< (extrinsic: Extrinsic | IExtrinsic | string | Uint8Array) => Observable >; - /** Submit a fully formatted extrinsic for block inclusion */ + /** + * Submit a fully formatted extrinsic for block inclusion + **/ submitExtrinsic: AugmentedRpc< (extrinsic: Extrinsic | IExtrinsic | string | Uint8Array) => Observable >; }; babe: { /** - * Returns data about which slots (primary or secondary) can be claimed in the current epoch with the keys in the - * keystore - */ + * Returns data about which slots (primary or secondary) can be claimed in the current epoch with the keys in the keystore + **/ epochAuthorship: AugmentedRpc<() => Observable>>; }; beefy: { - /** Returns hash of the latest BEEFY finalized block as seen by this client. */ + /** + * Returns hash of the latest BEEFY finalized block as seen by this client. + **/ getFinalizedHead: AugmentedRpc<() => Observable>; - /** Returns the block most recently finalized by BEEFY, alongside its justification. */ + /** + * Returns the block most recently finalized by BEEFY, alongside its justification. + **/ subscribeJustifications: AugmentedRpc<() => Observable>; }; chain: { - /** Get header and body of a relay chain block */ + /** + * Get header and body of a relay chain block + **/ getBlock: AugmentedRpc<(hash?: BlockHash | string | Uint8Array) => Observable>; - /** Get the block hash for a specific block */ + /** + * Get the block hash for a specific block + **/ getBlockHash: AugmentedRpc<(blockNumber?: BlockNumber | AnyNumber | Uint8Array) => Observable>; - /** Get hash of the last finalized block in the canon chain */ + /** + * Get hash of the last finalized block in the canon chain + **/ getFinalizedHead: AugmentedRpc<() => Observable>; - /** Retrieves the header for a specific block */ + /** + * Retrieves the header for a specific block + **/ getHeader: AugmentedRpc<(hash?: BlockHash | string | Uint8Array) => Observable
>; - /** Retrieves the newest header via subscription */ + /** + * Retrieves the newest header via subscription + **/ subscribeAllHeads: AugmentedRpc<() => Observable
>; - /** Retrieves the best finalized header via subscription */ + /** + * Retrieves the best finalized header via subscription + **/ subscribeFinalizedHeads: AugmentedRpc<() => Observable
>; - /** Retrieves the best header via subscription */ + /** + * Retrieves the best header via subscription + **/ subscribeNewHeads: AugmentedRpc<() => Observable
>; }; childstate: { - /** Returns the keys with prefix from a child storage, leave empty to get all the keys */ + /** + * Returns the keys with prefix from a child storage, leave empty to get all the keys + **/ getKeys: AugmentedRpc< ( childKey: PrefixedStorageKey | string | Uint8Array, @@ -173,7 +208,9 @@ declare module "@polkadot/rpc-core/types/jsonrpc" { at?: Hash | string | Uint8Array ) => Observable> >; - /** Returns the keys with prefix from a child storage with pagination support */ + /** + * Returns the keys with prefix from a child storage with pagination support + **/ getKeysPaged: AugmentedRpc< ( childKey: PrefixedStorageKey | string | Uint8Array, @@ -183,7 +220,9 @@ declare module "@polkadot/rpc-core/types/jsonrpc" { at?: Hash | string | Uint8Array ) => Observable> >; - /** Returns a child storage entry at a specific block state */ + /** + * Returns a child storage entry at a specific block state + **/ getStorage: AugmentedRpc< ( childKey: PrefixedStorageKey | string | Uint8Array, @@ -191,7 +230,9 @@ declare module "@polkadot/rpc-core/types/jsonrpc" { at?: Hash | string | Uint8Array ) => Observable> >; - /** Returns child storage entries for multiple keys at a specific block state */ + /** + * Returns child storage entries for multiple keys at a specific block state + **/ getStorageEntries: AugmentedRpc< ( childKey: PrefixedStorageKey | string | Uint8Array, @@ -199,7 +240,9 @@ declare module "@polkadot/rpc-core/types/jsonrpc" { at?: Hash | string | Uint8Array ) => Observable>> >; - /** Returns the hash of a child storage entry at a block state */ + /** + * Returns the hash of a child storage entry at a block state + **/ getStorageHash: AugmentedRpc< ( childKey: PrefixedStorageKey | string | Uint8Array, @@ -207,7 +250,9 @@ declare module "@polkadot/rpc-core/types/jsonrpc" { at?: Hash | string | Uint8Array ) => Observable> >; - /** Returns the size of a child storage entry at a block state */ + /** + * Returns the size of a child storage entry at a block state + **/ getStorageSize: AugmentedRpc< ( childKey: PrefixedStorageKey | string | Uint8Array, @@ -217,7 +262,10 @@ declare module "@polkadot/rpc-core/types/jsonrpc" { >; }; contracts: { - /** @deprecated Use the runtime interface `api.call.contractsApi.call` instead Executes a call to a contract */ + /** + * @deprecated Use the runtime interface `api.call.contractsApi.call` instead + * Executes a call to a contract + **/ call: AugmentedRpc< ( callRequest: @@ -236,9 +284,9 @@ declare module "@polkadot/rpc-core/types/jsonrpc" { ) => Observable >; /** - * @deprecated Use the runtime interface `api.call.contractsApi.getStorage` instead Returns the value under a - * specified storage key in a contract - */ + * @deprecated Use the runtime interface `api.call.contractsApi.getStorage` instead + * Returns the value under a specified storage key in a contract + **/ getStorage: AugmentedRpc< ( address: AccountId | string | Uint8Array, @@ -246,7 +294,10 @@ declare module "@polkadot/rpc-core/types/jsonrpc" { at?: BlockHash | string | Uint8Array ) => Observable> >; - /** @deprecated Use the runtime interface `api.call.contractsApi.instantiate` instead Instantiate a new contract */ + /** + * @deprecated Use the runtime interface `api.call.contractsApi.instantiate` instead + * Instantiate a new contract + **/ instantiate: AugmentedRpc< ( request: @@ -258,9 +309,9 @@ declare module "@polkadot/rpc-core/types/jsonrpc" { ) => Observable >; /** - * @deprecated Not available in newer versions of the contracts interfaces Returns the projected time a given - * contract will be able to sustain paying its rent - */ + * @deprecated Not available in newer versions of the contracts interfaces + * Returns the projected time a given contract will be able to sustain paying its rent + **/ rentProjection: AugmentedRpc< ( address: AccountId | string | Uint8Array, @@ -268,9 +319,9 @@ declare module "@polkadot/rpc-core/types/jsonrpc" { ) => Observable> >; /** - * @deprecated Use the runtime interface `api.call.contractsApi.uploadCode` instead Upload new code without - * instantiating a contract from it - */ + * @deprecated Use the runtime interface `api.call.contractsApi.uploadCode` instead + * Upload new code without instantiating a contract from it + **/ uploadCode: AugmentedRpc< ( uploadRequest: @@ -283,11 +334,15 @@ declare module "@polkadot/rpc-core/types/jsonrpc" { >; }; dev: { - /** Reexecute the specified `block_hash` and gather statistics while doing so */ + /** + * Reexecute the specified `block_hash` and gather statistics while doing so + **/ getBlockStats: AugmentedRpc<(at: Hash | string | Uint8Array) => Observable>>; }; engine: { - /** Instructs the manual-seal authorship task to create a new block */ + /** + * Instructs the manual-seal authorship task to create a new block + **/ createBlock: AugmentedRpc< ( createEmpty: bool | boolean | Uint8Array, @@ -295,17 +350,25 @@ declare module "@polkadot/rpc-core/types/jsonrpc" { parentHash?: BlockHash | string | Uint8Array ) => Observable >; - /** Instructs the manual-seal authorship task to finalize a block */ + /** + * Instructs the manual-seal authorship task to finalize a block + **/ finalizeBlock: AugmentedRpc< (hash: BlockHash | string | Uint8Array, justification?: Justification) => Observable >; }; eth: { - /** Returns accounts list. */ + /** + * Returns accounts list. + **/ accounts: AugmentedRpc<() => Observable>>; - /** Returns the blockNumber */ + /** + * Returns the blockNumber + **/ blockNumber: AugmentedRpc<() => Observable>; - /** Call contract, returning the output data. */ + /** + * Call contract, returning the output data. + **/ call: AugmentedRpc< ( request: @@ -316,11 +379,17 @@ declare module "@polkadot/rpc-core/types/jsonrpc" { number?: BlockNumber | AnyNumber | Uint8Array ) => Observable >; - /** Returns the chain ID used for transaction signing at the current best block. None is returned if not available. */ + /** + * Returns the chain ID used for transaction signing at the current best block. None is returned if not available. + **/ chainId: AugmentedRpc<() => Observable>; - /** Returns block author. */ + /** + * Returns block author. + **/ coinbase: AugmentedRpc<() => Observable>; - /** Estimate gas needed for execution of given contract. */ + /** + * Estimate gas needed for execution of given contract. + **/ estimateGas: AugmentedRpc< ( request: @@ -331,7 +400,9 @@ declare module "@polkadot/rpc-core/types/jsonrpc" { number?: BlockNumber | AnyNumber | Uint8Array ) => Observable >; - /** Returns fee history for given block count & reward percentiles */ + /** + * Returns fee history for given block count & reward percentiles + **/ feeHistory: AugmentedRpc< ( blockCount: U256 | AnyNumber | Uint8Array, @@ -339,44 +410,64 @@ declare module "@polkadot/rpc-core/types/jsonrpc" { rewardPercentiles: Option> | null | Uint8Array | Vec | f64[] ) => Observable >; - /** Returns current gas price. */ + /** + * Returns current gas price. + **/ gasPrice: AugmentedRpc<() => Observable>; - /** Returns balance of the given account. */ + /** + * Returns balance of the given account. + **/ getBalance: AugmentedRpc< (address: H160 | string | Uint8Array, number?: BlockNumber | AnyNumber | Uint8Array) => Observable >; - /** Returns block with given hash. */ + /** + * Returns block with given hash. + **/ getBlockByHash: AugmentedRpc< ( hash: H256 | string | Uint8Array, full: bool | boolean | Uint8Array ) => Observable> >; - /** Returns block with given number. */ + /** + * Returns block with given number. + **/ getBlockByNumber: AugmentedRpc< ( block: BlockNumber | AnyNumber | Uint8Array, full: bool | boolean | Uint8Array ) => Observable> >; - /** Returns the number of transactions in a block with given hash. */ + /** + * Returns the number of transactions in a block with given hash. + **/ getBlockTransactionCountByHash: AugmentedRpc<(hash: H256 | string | Uint8Array) => Observable>; - /** Returns the number of transactions in a block with given block number. */ + /** + * Returns the number of transactions in a block with given block number. + **/ getBlockTransactionCountByNumber: AugmentedRpc< (block: BlockNumber | AnyNumber | Uint8Array) => Observable >; - /** Returns the code at given address at given time (block number). */ + /** + * Returns the code at given address at given time (block number). + **/ getCode: AugmentedRpc< ( address: H160 | string | Uint8Array, number?: BlockNumber | AnyNumber | Uint8Array ) => Observable >; - /** Returns filter changes since last poll. */ + /** + * Returns filter changes since last poll. + **/ getFilterChanges: AugmentedRpc<(index: U256 | AnyNumber | Uint8Array) => Observable>; - /** Returns all logs matching given filter (in a range 'from' - 'to'). */ + /** + * Returns all logs matching given filter (in a range 'from' - 'to'). + **/ getFilterLogs: AugmentedRpc<(index: U256 | AnyNumber | Uint8Array) => Observable>>; - /** Returns logs matching given filter object. */ + /** + * Returns logs matching given filter object. + **/ getLogs: AugmentedRpc< ( filter: @@ -386,7 +477,9 @@ declare module "@polkadot/rpc-core/types/jsonrpc" { | Uint8Array ) => Observable> >; - /** Returns proof for account and storage. */ + /** + * Returns proof for account and storage. + **/ getProof: AugmentedRpc< ( address: H160 | string | Uint8Array, @@ -394,7 +487,9 @@ declare module "@polkadot/rpc-core/types/jsonrpc" { number: BlockNumber | AnyNumber | Uint8Array ) => Observable >; - /** Returns content of the storage at given address. */ + /** + * Returns content of the storage at given address. + **/ getStorageAt: AugmentedRpc< ( address: H160 | string | Uint8Array, @@ -402,53 +497,83 @@ declare module "@polkadot/rpc-core/types/jsonrpc" { number?: BlockNumber | AnyNumber | Uint8Array ) => Observable >; - /** Returns transaction at given block hash and index. */ + /** + * Returns transaction at given block hash and index. + **/ getTransactionByBlockHashAndIndex: AugmentedRpc< (hash: H256 | string | Uint8Array, index: U256 | AnyNumber | Uint8Array) => Observable >; - /** Returns transaction by given block number and index. */ + /** + * Returns transaction by given block number and index. + **/ getTransactionByBlockNumberAndIndex: AugmentedRpc< ( number: BlockNumber | AnyNumber | Uint8Array, index: U256 | AnyNumber | Uint8Array ) => Observable >; - /** Get transaction by its hash. */ + /** + * Get transaction by its hash. + **/ getTransactionByHash: AugmentedRpc<(hash: H256 | string | Uint8Array) => Observable>; - /** Returns the number of transactions sent from given address at given time (block number). */ + /** + * Returns the number of transactions sent from given address at given time (block number). + **/ getTransactionCount: AugmentedRpc< (address: H160 | string | Uint8Array, number?: BlockNumber | AnyNumber | Uint8Array) => Observable >; - /** Returns transaction receipt by transaction hash. */ + /** + * Returns transaction receipt by transaction hash. + **/ getTransactionReceipt: AugmentedRpc<(hash: H256 | string | Uint8Array) => Observable>; - /** Returns an uncles at given block and index. */ + /** + * Returns an uncles at given block and index. + **/ getUncleByBlockHashAndIndex: AugmentedRpc< (hash: H256 | string | Uint8Array, index: U256 | AnyNumber | Uint8Array) => Observable >; - /** Returns an uncles at given block and index. */ + /** + * Returns an uncles at given block and index. + **/ getUncleByBlockNumberAndIndex: AugmentedRpc< ( number: BlockNumber | AnyNumber | Uint8Array, index: U256 | AnyNumber | Uint8Array ) => Observable >; - /** Returns the number of uncles in a block with given hash. */ + /** + * Returns the number of uncles in a block with given hash. + **/ getUncleCountByBlockHash: AugmentedRpc<(hash: H256 | string | Uint8Array) => Observable>; - /** Returns the number of uncles in a block with given block number. */ + /** + * Returns the number of uncles in a block with given block number. + **/ getUncleCountByBlockNumber: AugmentedRpc< (number: BlockNumber | AnyNumber | Uint8Array) => Observable >; - /** Returns the hash of the current block, the seedHash, and the boundary condition to be met. */ + /** + * Returns the hash of the current block, the seedHash, and the boundary condition to be met. + **/ getWork: AugmentedRpc<() => Observable>; - /** Returns the number of hashes per second that the node is mining with. */ + /** + * Returns the number of hashes per second that the node is mining with. + **/ hashrate: AugmentedRpc<() => Observable>; - /** Returns max priority fee per gas */ + /** + * Returns max priority fee per gas + **/ maxPriorityFeePerGas: AugmentedRpc<() => Observable>; - /** Returns true if client is actively mining new blocks. */ + /** + * Returns true if client is actively mining new blocks. + **/ mining: AugmentedRpc<() => Observable>; - /** Returns id of new block filter. */ + /** + * Returns id of new block filter. + **/ newBlockFilter: AugmentedRpc<() => Observable>; - /** Returns id of new filter. */ + /** + * Returns id of new filter. + **/ newFilter: AugmentedRpc< ( filter: @@ -458,13 +583,21 @@ declare module "@polkadot/rpc-core/types/jsonrpc" { | Uint8Array ) => Observable >; - /** Returns id of new block filter. */ + /** + * Returns id of new block filter. + **/ newPendingTransactionFilter: AugmentedRpc<() => Observable>; - /** Returns protocol version encoded as a string (quotes are necessary). */ + /** + * Returns protocol version encoded as a string (quotes are necessary). + **/ protocolVersion: AugmentedRpc<() => Observable>; - /** Sends signed transaction, returning its hash. */ + /** + * Sends signed transaction, returning its hash. + **/ sendRawTransaction: AugmentedRpc<(bytes: Bytes | string | Uint8Array) => Observable>; - /** Sends transaction; will block waiting for signer to return the transaction hash */ + /** + * Sends transaction; will block waiting for signer to return the transaction hash + **/ sendTransaction: AugmentedRpc< ( tx: @@ -474,11 +607,15 @@ declare module "@polkadot/rpc-core/types/jsonrpc" { | Uint8Array ) => Observable >; - /** Used for submitting mining hashrate. */ + /** + * Used for submitting mining hashrate. + **/ submitHashrate: AugmentedRpc< (index: U256 | AnyNumber | Uint8Array, hash: H256 | string | Uint8Array) => Observable >; - /** Used for submitting a proof-of-work solution. */ + /** + * Used for submitting a proof-of-work solution. + **/ submitWork: AugmentedRpc< ( nonce: H64 | string | Uint8Array, @@ -486,30 +623,44 @@ declare module "@polkadot/rpc-core/types/jsonrpc" { mixDigest: H256 | string | Uint8Array ) => Observable >; - /** Subscribe to Eth subscription. */ + /** + * Subscribe to Eth subscription. + **/ subscribe: AugmentedRpc< ( kind: EthSubKind | "newHeads" | "logs" | "newPendingTransactions" | "syncing" | number | Uint8Array, params?: EthSubParams | { None: any } | { Logs: any } | string | Uint8Array ) => Observable >; - /** Returns an object with data about the sync status or false. */ + /** + * Returns an object with data about the sync status or false. + **/ syncing: AugmentedRpc<() => Observable>; - /** Uninstalls filter. */ + /** + * Uninstalls filter. + **/ uninstallFilter: AugmentedRpc<(index: U256 | AnyNumber | Uint8Array) => Observable>; }; grandpa: { - /** Prove finality for the given block number, returning the Justification for the last block in the set. */ + /** + * Prove finality for the given block number, returning the Justification for the last block in the set. + **/ proveFinality: AugmentedRpc< (blockNumber: BlockNumber | AnyNumber | Uint8Array) => Observable> >; - /** Returns the state of the current best round state as well as the ongoing background rounds */ + /** + * Returns the state of the current best round state as well as the ongoing background rounds + **/ roundState: AugmentedRpc<() => Observable>; - /** Subscribes to grandpa justifications */ + /** + * Subscribes to grandpa justifications + **/ subscribeJustifications: AugmentedRpc<() => Observable>; }; mmr: { - /** Generate MMR proof for the given block numbers. */ + /** + * Generate MMR proof for the given block numbers. + **/ generateProof: AugmentedRpc< ( blockNumbers: Vec | (u64 | AnyNumber | Uint8Array)[], @@ -517,15 +668,21 @@ declare module "@polkadot/rpc-core/types/jsonrpc" { at?: BlockHash | string | Uint8Array ) => Observable >; - /** Get the MMR root hash for the current best block. */ + /** + * Get the MMR root hash for the current best block. + **/ root: AugmentedRpc<(at?: BlockHash | string | Uint8Array) => Observable>; - /** Verify an MMR proof */ + /** + * Verify an MMR proof + **/ verifyProof: AugmentedRpc< ( proof: MmrLeafBatchProof | { blockHash?: any; leaves?: any; proof?: any } | string | Uint8Array ) => Observable >; - /** Verify an MMR proof statelessly given an mmr_root */ + /** + * Verify an MMR proof statelessly given an mmr_root + **/ verifyProofStateless: AugmentedRpc< ( root: MmrHash | string | Uint8Array, @@ -534,22 +691,41 @@ declare module "@polkadot/rpc-core/types/jsonrpc" { >; }; net: { - /** Returns true if client is actively listening for network connections. Otherwise false. */ + /** + * Returns true if client is actively listening for network connections. Otherwise false. + **/ listening: AugmentedRpc<() => Observable>; - /** Returns number of peers connected to node. */ + /** + * Returns number of peers connected to node. + **/ peerCount: AugmentedRpc<() => Observable>; - /** Returns protocol version. */ + /** + * Returns protocol version. + **/ version: AugmentedRpc<() => Observable>; }; offchain: { - /** Get offchain local storage under given key and prefix */ + /** + * Clear offchain local storage under given key and prefix + **/ + localStorageClear: AugmentedRpc< + ( + kind: StorageKind | "PERSISTENT" | "LOCAL" | number | Uint8Array, + key: Bytes | string | Uint8Array + ) => Observable + >; + /** + * Get offchain local storage under given key and prefix + **/ localStorageGet: AugmentedRpc< ( kind: StorageKind | "PERSISTENT" | "LOCAL" | number | Uint8Array, key: Bytes | string | Uint8Array ) => Observable> >; - /** Set offchain local storage under given key and prefix */ + /** + * Set offchain local storage under given key and prefix + **/ localStorageSet: AugmentedRpc< ( kind: StorageKind | "PERSISTENT" | "LOCAL" | number | Uint8Array, @@ -560,16 +736,16 @@ declare module "@polkadot/rpc-core/types/jsonrpc" { }; payment: { /** - * @deprecated Use `api.call.transactionPaymentApi.queryFeeDetails` instead Query the detailed fee of a given - * encoded extrinsic - */ + * @deprecated Use `api.call.transactionPaymentApi.queryFeeDetails` instead + * Query the detailed fee of a given encoded extrinsic + **/ queryFeeDetails: AugmentedRpc< (extrinsic: Bytes | string | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable >; /** - * @deprecated Use `api.call.transactionPaymentApi.queryInfo` instead Retrieves the fee information for an encoded - * extrinsic - */ + * @deprecated Use `api.call.transactionPaymentApi.queryInfo` instead + * Retrieves the fee information for an encoded extrinsic + **/ queryInfo: AugmentedRpc< ( extrinsic: Bytes | string | Uint8Array, @@ -578,11 +754,15 @@ declare module "@polkadot/rpc-core/types/jsonrpc" { >; }; rpc: { - /** Retrieves the list of RPC methods that are exposed by the node */ + /** + * Retrieves the list of RPC methods that are exposed by the node + **/ methods: AugmentedRpc<() => Observable>; }; state: { - /** Perform a call to a builtin on the chain */ + /** + * Perform a call to a builtin on the chain + **/ call: AugmentedRpc< ( method: Text | string, @@ -590,7 +770,9 @@ declare module "@polkadot/rpc-core/types/jsonrpc" { at?: BlockHash | string | Uint8Array ) => Observable >; - /** Retrieves the keys with prefix of a specific child storage */ + /** + * Retrieves the keys with prefix of a specific child storage + **/ getChildKeys: AugmentedRpc< ( childStorageKey: StorageKey | string | Uint8Array | any, @@ -600,7 +782,9 @@ declare module "@polkadot/rpc-core/types/jsonrpc" { at?: BlockHash | string | Uint8Array ) => Observable> >; - /** Returns proof of storage for child key entries at a specific block state. */ + /** + * Returns proof of storage for child key entries at a specific block state. + **/ getChildReadProof: AugmentedRpc< ( childStorageKey: PrefixedStorageKey | string | Uint8Array, @@ -608,7 +792,9 @@ declare module "@polkadot/rpc-core/types/jsonrpc" { at?: BlockHash | string | Uint8Array ) => Observable >; - /** Retrieves the child storage for a key */ + /** + * Retrieves the child storage for a key + **/ getChildStorage: AugmentedRpc< ( childStorageKey: StorageKey | string | Uint8Array | any, @@ -618,7 +804,9 @@ declare module "@polkadot/rpc-core/types/jsonrpc" { at?: BlockHash | string | Uint8Array ) => Observable >; - /** Retrieves the child storage hash */ + /** + * Retrieves the child storage hash + **/ getChildStorageHash: AugmentedRpc< ( childStorageKey: StorageKey | string | Uint8Array | any, @@ -628,7 +816,9 @@ declare module "@polkadot/rpc-core/types/jsonrpc" { at?: BlockHash | string | Uint8Array ) => Observable >; - /** Retrieves the child storage size */ + /** + * Retrieves the child storage size + **/ getChildStorageSize: AugmentedRpc< ( childStorageKey: StorageKey | string | Uint8Array | any, @@ -638,14 +828,19 @@ declare module "@polkadot/rpc-core/types/jsonrpc" { at?: BlockHash | string | Uint8Array ) => Observable >; - /** @deprecated Use `api.rpc.state.getKeysPaged` to retrieve keys Retrieves the keys with a certain prefix */ + /** + * @deprecated Use `api.rpc.state.getKeysPaged` to retrieve keys + * Retrieves the keys with a certain prefix + **/ getKeys: AugmentedRpc< ( key: StorageKey | string | Uint8Array | any, at?: BlockHash | string | Uint8Array ) => Observable> >; - /** Returns the keys with prefix with pagination support. */ + /** + * Returns the keys with prefix with pagination support. + **/ getKeysPaged: AugmentedRpc< ( key: StorageKey | string | Uint8Array | any, @@ -654,43 +849,57 @@ declare module "@polkadot/rpc-core/types/jsonrpc" { at?: BlockHash | string | Uint8Array ) => Observable> >; - /** Returns the runtime metadata */ + /** + * Returns the runtime metadata + **/ getMetadata: AugmentedRpc<(at?: BlockHash | string | Uint8Array) => Observable>; /** - * @deprecated Use `api.rpc.state.getKeysPaged` to retrieve keys Returns the keys with prefix, leave empty to get - * all the keys (deprecated: Use getKeysPaged) - */ + * @deprecated Use `api.rpc.state.getKeysPaged` to retrieve keys + * Returns the keys with prefix, leave empty to get all the keys (deprecated: Use getKeysPaged) + **/ getPairs: AugmentedRpc< ( prefix: StorageKey | string | Uint8Array | any, at?: BlockHash | string | Uint8Array ) => Observable> >; - /** Returns proof of storage entries at a specific block state */ + /** + * Returns proof of storage entries at a specific block state + **/ getReadProof: AugmentedRpc< ( keys: Vec | (StorageKey | string | Uint8Array | any)[], at?: BlockHash | string | Uint8Array ) => Observable >; - /** Get the runtime version */ + /** + * Get the runtime version + **/ getRuntimeVersion: AugmentedRpc<(at?: BlockHash | string | Uint8Array) => Observable>; - /** Retrieves the storage for a key */ + /** + * Retrieves the storage for a key + **/ getStorage: AugmentedRpc< ( key: StorageKey | string | Uint8Array | any, block?: Hash | Uint8Array | string ) => Observable >; - /** Retrieves the storage hash */ + /** + * Retrieves the storage hash + **/ getStorageHash: AugmentedRpc< (key: StorageKey | string | Uint8Array | any, at?: BlockHash | string | Uint8Array) => Observable >; - /** Retrieves the storage size */ + /** + * Retrieves the storage size + **/ getStorageSize: AugmentedRpc< (key: StorageKey | string | Uint8Array | any, at?: BlockHash | string | Uint8Array) => Observable >; - /** Query historical storage entries (by key) starting from a start block */ + /** + * Query historical storage entries (by key) starting from a start block + **/ queryStorage: AugmentedRpc< ( keys: Vec | (StorageKey | string | Uint8Array | any)[], @@ -698,20 +907,28 @@ declare module "@polkadot/rpc-core/types/jsonrpc" { toBlock?: Hash | Uint8Array | string ) => Observable<[Hash, T][]> >; - /** Query storage entries (by key) starting at block hash given as the second parameter */ + /** + * Query storage entries (by key) starting at block hash given as the second parameter + **/ queryStorageAt: AugmentedRpc< ( keys: Vec | (StorageKey | string | Uint8Array | any)[], at?: Hash | Uint8Array | string ) => Observable >; - /** Retrieves the runtime version via subscription */ + /** + * Retrieves the runtime version via subscription + **/ subscribeRuntimeVersion: AugmentedRpc<() => Observable>; - /** Subscribes to storage changes for the provided keys */ + /** + * Subscribes to storage changes for the provided keys + **/ subscribeStorage: AugmentedRpc< (keys?: Vec | (StorageKey | string | Uint8Array | any)[]) => Observable >; - /** Provides a way to trace the re-execution of a single block */ + /** + * Provides a way to trace the re-execution of a single block + **/ traceBlock: AugmentedRpc< ( block: Hash | string | Uint8Array, @@ -720,67 +937,110 @@ declare module "@polkadot/rpc-core/types/jsonrpc" { methods: Option | null | Uint8Array | Text | string ) => Observable >; - /** Check current migration state */ + /** + * Check current migration state + **/ trieMigrationStatus: AugmentedRpc< (at?: BlockHash | string | Uint8Array) => Observable >; }; syncstate: { - /** Returns the json-serialized chainspec running the node, with a sync state. */ + /** + * Returns the json-serialized chainspec running the node, with a sync state. + **/ genSyncSpec: AugmentedRpc<(raw: bool | boolean | Uint8Array) => Observable>; }; system: { - /** Retrieves the next accountIndex as available on the node */ + /** + * Retrieves the next accountIndex as available on the node + **/ accountNextIndex: AugmentedRpc<(accountId: AccountId | string | Uint8Array) => Observable>; - /** Adds the supplied directives to the current log filter */ + /** + * Adds the supplied directives to the current log filter + **/ addLogFilter: AugmentedRpc<(directives: Text | string) => Observable>; - /** Adds a reserved peer */ + /** + * Adds a reserved peer + **/ addReservedPeer: AugmentedRpc<(peer: Text | string) => Observable>; - /** Retrieves the chain */ + /** + * Retrieves the chain + **/ chain: AugmentedRpc<() => Observable>; - /** Retrieves the chain type */ + /** + * Retrieves the chain type + **/ chainType: AugmentedRpc<() => Observable>; - /** Dry run an extrinsic at a given block */ + /** + * Dry run an extrinsic at a given block + **/ dryRun: AugmentedRpc< ( extrinsic: Bytes | string | Uint8Array, at?: BlockHash | string | Uint8Array ) => Observable >; - /** Return health status of the node */ + /** + * Return health status of the node + **/ health: AugmentedRpc<() => Observable>; /** - * The addresses include a trailing /p2p/ with the local PeerId, and are thus suitable to be passed to - * addReservedPeer or as a bootnode address for example - */ + * The addresses include a trailing /p2p/ with the local PeerId, and are thus suitable to be passed to addReservedPeer or as a bootnode address for example + **/ localListenAddresses: AugmentedRpc<() => Observable>>; - /** Returns the base58-encoded PeerId of the node */ + /** + * Returns the base58-encoded PeerId of the node + **/ localPeerId: AugmentedRpc<() => Observable>; - /** Retrieves the node name */ + /** + * Retrieves the node name + **/ name: AugmentedRpc<() => Observable>; - /** Returns current state of the network */ + /** + * Returns current state of the network + **/ networkState: AugmentedRpc<() => Observable>; - /** Returns the roles the node is running as */ + /** + * Returns the roles the node is running as + **/ nodeRoles: AugmentedRpc<() => Observable>>; - /** Returns the currently connected peers */ + /** + * Returns the currently connected peers + **/ peers: AugmentedRpc<() => Observable>>; - /** Get a custom set of properties as a JSON object, defined in the chain spec */ + /** + * Get a custom set of properties as a JSON object, defined in the chain spec + **/ properties: AugmentedRpc<() => Observable>; - /** Remove a reserved peer */ + /** + * Remove a reserved peer + **/ removeReservedPeer: AugmentedRpc<(peerId: Text | string) => Observable>; - /** Returns the list of reserved peers */ + /** + * Returns the list of reserved peers + **/ reservedPeers: AugmentedRpc<() => Observable>>; - /** Resets the log filter to Substrate defaults */ + /** + * Resets the log filter to Substrate defaults + **/ resetLogFilter: AugmentedRpc<() => Observable>; - /** Returns the state of the syncing of the node */ + /** + * Returns the state of the syncing of the node + **/ syncState: AugmentedRpc<() => Observable>; - /** Retrieves the version of the node */ + /** + * Retrieves the version of the node + **/ version: AugmentedRpc<() => Observable>; }; web3: { - /** Returns current client version. */ + /** + * Returns current client version. + **/ clientVersion: AugmentedRpc<() => Observable>; - /** Returns sha3 of the given data */ + /** + * Returns sha3 of the given data + **/ sha3: AugmentedRpc<(data: Bytes | string | Uint8Array) => Observable>; }; } // RpcInterface diff --git a/typescript-api/src/dancebox/interfaces/augment-api-runtime.ts b/typescript-api/src/dancebox/interfaces/augment-api-runtime.ts index c6543a26d..cc4670cec 100644 --- a/typescript-api/src/dancebox/interfaces/augment-api-runtime.ts +++ b/typescript-api/src/dancebox/interfaces/augment-api-runtime.ts @@ -47,28 +47,42 @@ declare module "@polkadot/api-base/types/calls" { interface AugmentedCalls { /** 0xbc9d89904f5b923f/1 */ accountNonceApi: { - /** The API to query account nonce (aka transaction index) */ + /** + * The API to query account nonce (aka transaction index) + **/ accountNonce: AugmentedCall Observable>; - /** Generic call */ + /** + * Generic call + **/ [key: string]: DecoratedCallBase; }; /** 0xdd718d5cc53262d4/1 */ auraApi: { - /** Return the current set of authorities. */ + /** + * Return the current set of authorities. + **/ authorities: AugmentedCall Observable>>; - /** Returns the slot duration for Aura. */ + /** + * Returns the slot duration for Aura. + **/ slotDuration: AugmentedCall Observable>; - /** Generic call */ + /** + * Generic call + **/ [key: string]: DecoratedCallBase; }; /** 0x40fe3ad401f8959a/6 */ blockBuilder: { - /** Apply the given extrinsic. */ + /** + * Apply the given extrinsic. + **/ applyExtrinsic: AugmentedCall< ApiType, (extrinsic: Extrinsic | IExtrinsic | string | Uint8Array) => Observable >; - /** Check that the inherents are valid. */ + /** + * Check that the inherents are valid. + **/ checkInherents: AugmentedCall< ApiType, ( @@ -76,19 +90,27 @@ declare module "@polkadot/api-base/types/calls" { data: InherentData | { data?: any } | string | Uint8Array ) => Observable >; - /** Finish the current block. */ + /** + * Finish the current block. + **/ finalizeBlock: AugmentedCall Observable
>; - /** Generate inherent extrinsics. */ + /** + * Generate inherent extrinsics. + **/ inherentExtrinsics: AugmentedCall< ApiType, (inherent: InherentData | { data?: any } | string | Uint8Array) => Observable> >; - /** Generic call */ + /** + * Generic call + **/ [key: string]: DecoratedCallBase; }; /** 0xea93e3f16f3d6962/2 */ collectCollationInfo: { - /** Collect information about a collation. */ + /** + * Collect information about a collation. + **/ collectCollationInfo: AugmentedCall< ApiType, ( @@ -99,17 +121,23 @@ declare module "@polkadot/api-base/types/calls" { | Uint8Array ) => Observable >; - /** Generic call */ + /** + * Generic call + **/ [key: string]: DecoratedCallBase; }; /** 0xdf6acb689907609b/5 */ core: { - /** Execute the given block. */ + /** + * Execute the given block. + **/ executeBlock: AugmentedCall< ApiType, (block: Block | { header?: any; extrinsics?: any } | string | Uint8Array) => Observable >; - /** Initialize a block with the given header. */ + /** + * Initialize a block with the given header. + **/ initializeBlock: AugmentedCall< ApiType, ( @@ -120,14 +148,20 @@ declare module "@polkadot/api-base/types/calls" { | Uint8Array ) => Observable >; - /** Returns the version of the runtime. */ + /** + * Returns the version of the runtime. + **/ version: AugmentedCall Observable>; - /** Generic call */ + /** + * Generic call + **/ [key: string]: DecoratedCallBase; }; /** 0x91b1c8b16328eb92/1 */ dryRunApi: { - /** Dry run call */ + /** + * Dry run call + **/ dryRunCall: AugmentedCall< ApiType, ( @@ -135,7 +169,9 @@ declare module "@polkadot/api-base/types/calls" { call: RuntimeCall | IMethod | string | Uint8Array ) => Observable> >; - /** Dry run XCM program */ + /** + * Dry run XCM program + **/ dryRunXcm: AugmentedCall< ApiType, ( @@ -159,50 +195,72 @@ declare module "@polkadot/api-base/types/calls" { | Uint8Array ) => Observable> >; - /** Generic call */ + /** + * Generic call + **/ [key: string]: DecoratedCallBase; }; /** 0xfbc577b9d747efd6/1 */ genesisBuilder: { - /** Build `RuntimeGenesisConfig` from a JSON blob not using any defaults and store it in the storage. */ + /** + * Build `RuntimeGenesisConfig` from a JSON blob not using any defaults and store it in the storage. + **/ buildConfig: AugmentedCall< ApiType, (json: Bytes | string | Uint8Array) => Observable, GenesisBuildErr>> >; - /** Creates the default `RuntimeGenesisConfig` and returns it as a JSON blob. */ + /** + * Creates the default `RuntimeGenesisConfig` and returns it as a JSON blob. + **/ createDefaultConfig: AugmentedCall Observable>; - /** Generic call */ + /** + * Generic call + **/ [key: string]: DecoratedCallBase; }; /** 0x9ffb505aa738d69c/1 */ locationToAccountApi: { - /** Converts `Location` to `AccountId` */ + /** + * Converts `Location` to `AccountId` + **/ convertLocation: AugmentedCall< ApiType, ( location: XcmVersionedLocation | { V2: any } | { V3: any } | { V4: any } | string | Uint8Array ) => Observable> >; - /** Generic call */ + /** + * Generic call + **/ [key: string]: DecoratedCallBase; }; /** 0x37e397fc7c91f5e4/2 */ metadata: { - /** Returns the metadata of a runtime */ + /** + * Returns the metadata of a runtime + **/ metadata: AugmentedCall Observable>; - /** Returns the metadata at a given version. */ + /** + * Returns the metadata at a given version. + **/ metadataAtVersion: AugmentedCall< ApiType, (version: u32 | AnyNumber | Uint8Array) => Observable> >; - /** Returns the supported metadata versions. */ + /** + * Returns the supported metadata versions. + **/ metadataVersions: AugmentedCall Observable>>; - /** Generic call */ + /** + * Generic call + **/ [key: string]: DecoratedCallBase; }; /** 0xf78b278be53f454c/2 */ offchainWorkerApi: { - /** Starts the off-chain task for given block header. */ + /** + * Starts the off-chain task for given block header. + **/ offchainWorker: AugmentedCall< ApiType, ( @@ -213,27 +271,37 @@ declare module "@polkadot/api-base/types/calls" { | Uint8Array ) => Observable >; - /** Generic call */ + /** + * Generic call + **/ [key: string]: DecoratedCallBase; }; /** 0xab3c0572291feb8b/1 */ sessionKeys: { - /** Decode the given public session keys. */ + /** + * Decode the given public session keys. + **/ decodeSessionKeys: AugmentedCall< ApiType, (encoded: Bytes | string | Uint8Array) => Observable>>> >; - /** Generate a set of session keys with optionally using the given seed. */ + /** + * Generate a set of session keys with optionally using the given seed. + **/ generateSessionKeys: AugmentedCall< ApiType, (seed: Option | null | Uint8Array | Bytes | string) => Observable >; - /** Generic call */ + /** + * Generic call + **/ [key: string]: DecoratedCallBase; }; /** 0xd2bc9897eed08f15/3 */ taggedTransactionQueue: { - /** Validate the transaction. */ + /** + * Validate the transaction. + **/ validateTransaction: AugmentedCall< ApiType, ( @@ -242,12 +310,16 @@ declare module "@polkadot/api-base/types/calls" { blockHash: BlockHash | string | Uint8Array ) => Observable >; - /** Generic call */ + /** + * Generic call + **/ [key: string]: DecoratedCallBase; }; /** 0x37c8bb1350a9a2a8/4 */ transactionPaymentApi: { - /** The transaction fee details */ + /** + * The transaction fee details + **/ queryFeeDetails: AugmentedCall< ApiType, ( @@ -255,7 +327,9 @@ declare module "@polkadot/api-base/types/calls" { len: u32 | AnyNumber | Uint8Array ) => Observable >; - /** The transaction info */ + /** + * The transaction info + **/ queryInfo: AugmentedCall< ApiType, ( @@ -263,25 +337,36 @@ declare module "@polkadot/api-base/types/calls" { len: u32 | AnyNumber | Uint8Array ) => Observable >; - /** Query the output of the current LengthToFee given some input */ + /** + * Query the output of the current LengthToFee given some input + **/ queryLengthToFee: AugmentedCall Observable>; - /** Query the output of the current WeightToFee given some input */ + /** + * Query the output of the current WeightToFee given some input + **/ queryWeightToFee: AugmentedCall< ApiType, (weight: Weight | { refTime?: any; proofSize?: any } | string | Uint8Array) => Observable >; - /** Generic call */ + /** + * Generic call + **/ [key: string]: DecoratedCallBase; }; /** 0x6ff52ee858e6c5bd/1 */ xcmPaymentApi: { - /** The API to query acceptable payment assets */ + /** + * The API to query acceptable payment assets + **/ queryAcceptablePaymentAssets: AugmentedCall< ApiType, ( version: u32 | AnyNumber | Uint8Array ) => Observable, XcmPaymentApiError>> >; + /** + * + **/ queryWeightToAssetFee: AugmentedCall< ApiType, ( @@ -289,13 +374,18 @@ declare module "@polkadot/api-base/types/calls" { asset: XcmVersionedAssetId | { V3: any } | { V4: any } | string | Uint8Array ) => Observable> >; + /** + * + **/ queryXcmWeight: AugmentedCall< ApiType, ( message: XcmVersionedXcm | { V2: any } | { V3: any } | { V4: any } | string | Uint8Array ) => Observable> >; - /** Generic call */ + /** + * Generic call + **/ [key: string]: DecoratedCallBase; }; } // AugmentedCalls diff --git a/typescript-api/src/dancebox/interfaces/augment-api-tx.ts b/typescript-api/src/dancebox/interfaces/augment-api-tx.ts index d6aeee376..e2f11793a 100644 --- a/typescript-api/src/dancebox/interfaces/augment-api-tx.ts +++ b/typescript-api/src/dancebox/interfaces/augment-api-tx.ts @@ -68,9 +68,8 @@ declare module "@polkadot/api-base/types/submittable" { * Initialize a conversion rate to native balance for the given asset. * * ## Complexity - * * - O(1) - */ + **/ create: AugmentedSubmittable< ( assetKind: u16 | AnyNumber | Uint8Array, @@ -82,9 +81,8 @@ declare module "@polkadot/api-base/types/submittable" { * Remove an existing conversion rate to native balance for the given asset. * * ## Complexity - * * - O(1) - */ + **/ remove: AugmentedSubmittable< (assetKind: u16 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u16] @@ -93,9 +91,8 @@ declare module "@polkadot/api-base/types/submittable" { * Update the conversion rate to native balance for the given asset. * * ## Complexity - * * - O(1) - */ + **/ update: AugmentedSubmittable< ( assetKind: u16 | AnyNumber | Uint8Array, @@ -103,20 +100,26 @@ declare module "@polkadot/api-base/types/submittable" { ) => SubmittableExtrinsic, [u16, u128] >; - /** Generic tx */ + /** + * Generic tx + **/ [key: string]: SubmittableExtrinsicFunction; }; authorInherent: { /** - * This inherent is a workaround to run code after the "real" inherents have executed, but before transactions are - * executed. - */ + * This inherent is a workaround to run code after the "real" inherents have executed, + * but before transactions are executed. + **/ kickOffAuthorshipValidation: AugmentedSubmittable<() => SubmittableExtrinsic, []>; - /** Generic tx */ + /** + * Generic tx + **/ [key: string]: SubmittableExtrinsicFunction; }; authorityAssignment: { - /** Generic tx */ + /** + * Generic tx + **/ [key: string]: SubmittableExtrinsicFunction; }; authorNoting: { @@ -143,19 +146,21 @@ declare module "@polkadot/api-base/types/submittable" { ) => SubmittableExtrinsic, [TpAuthorNotingInherentOwnParachainInherentData] >; - /** Generic tx */ + /** + * Generic tx + **/ [key: string]: SubmittableExtrinsicFunction; }; balances: { /** * Burn the specified liquid free balance from the origin account. * - * If the origin's account ends up below the existential deposit as a result of the burn and `keep_alive` is - * false, the account will be reaped. + * If the origin's account ends up below the existential deposit as a result + * of the burn and `keep_alive` is false, the account will be reaped. * - * Unlike sending funds to a _burn_ address, which merely makes the funds inaccessible, this `burn` operation will - * reduce total issuance by the amount _burned_. - */ + * Unlike sending funds to a _burn_ address, which merely makes the funds inaccessible, + * this `burn` operation will reduce total issuance by the amount _burned_. + **/ burn: AugmentedSubmittable< ( value: Compact | AnyNumber | Uint8Array, @@ -169,7 +174,7 @@ declare module "@polkadot/api-base/types/submittable" { * Can only be called by root and always needs a positive `delta`. * * # Example - */ + **/ forceAdjustTotalIssuance: AugmentedSubmittable< ( direction: PalletBalancesAdjustmentDirection | "Increase" | "Decrease" | number | Uint8Array, @@ -181,7 +186,7 @@ declare module "@polkadot/api-base/types/submittable" { * Set the regular balance of a given account. * * The dispatch origin for this call is `root`. - */ + **/ forceSetBalance: AugmentedSubmittable< ( who: @@ -197,7 +202,10 @@ declare module "@polkadot/api-base/types/submittable" { ) => SubmittableExtrinsic, [MultiAddress, Compact] >; - /** Exactly as `transfer_allow_death`, except the origin must be root and the source account may be specified. */ + /** + * Exactly as `transfer_allow_death`, except the origin must be root and the source account + * may be specified. + **/ forceTransfer: AugmentedSubmittable< ( source: @@ -226,7 +234,7 @@ declare module "@polkadot/api-base/types/submittable" { * Unreserve some balance from a user by force. * * Can only be called by ROOT. - */ + **/ forceUnreserve: AugmentedSubmittable< ( who: @@ -245,18 +253,20 @@ declare module "@polkadot/api-base/types/submittable" { /** * Transfer the entire transferable balance from the caller account. * - * NOTE: This function only attempts to transfer _transferable_ balances. This means that any locked, reserved, or - * existential deposits (when `keep_alive` is `true`), will not be transferred by this function. To ensure that - * this function results in a killed account, you might need to prepare the account by removing any reference - * counters, storage deposits, etc... + * NOTE: This function only attempts to transfer _transferable_ balances. This means that + * any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be + * transferred by this function. To ensure that this function results in a killed account, + * you might need to prepare the account by removing any reference counters, storage + * deposits, etc... * * The dispatch origin of this call must be Signed. * * - `dest`: The recipient of the transfer. - * - `keep_alive`: A boolean to determine if the `transfer_all` operation should send all of the funds the account - * has, causing the sender account to be killed (false), or transfer everything except at least the existential - * deposit, which will guarantee to keep the sender account alive (true). - */ + * - `keep_alive`: A boolean to determine if the `transfer_all` operation should send all + * of the funds the account has, causing the sender account to be killed (false), or + * transfer everything except at least the existential deposit, which will guarantee to + * keep the sender account alive (true). + **/ transferAll: AugmentedSubmittable< ( dest: @@ -275,11 +285,12 @@ declare module "@polkadot/api-base/types/submittable" { /** * Transfer some liquid free balance to another account. * - * `transfer_allow_death` will set the `FreeBalance` of the sender and receiver. If the sender's account is below - * the existential deposit as a result of the transfer, the account will be reaped. + * `transfer_allow_death` will set the `FreeBalance` of the sender and receiver. + * If the sender's account is below the existential deposit as a result + * of the transfer, the account will be reaped. * * The dispatch origin for this call must be `Signed` by the transactor. - */ + **/ transferAllowDeath: AugmentedSubmittable< ( dest: @@ -296,13 +307,13 @@ declare module "@polkadot/api-base/types/submittable" { [MultiAddress, Compact] >; /** - * Same as the [`transfer_allow_death`][`transfer_allow_death`] call, but with a check that the transfer will not + * Same as the [`transfer_allow_death`] call, but with a check that the transfer will not * kill the origin account. * - * 99% of the time you want [`transfer_allow_death`][`transfer_allow_death`] instead. + * 99% of the time you want [`transfer_allow_death`] instead. * * [`transfer_allow_death`]: struct.Pallet.html#method.transfer - */ + **/ transferKeepAlive: AugmentedSubmittable< ( dest: @@ -324,22 +335,30 @@ declare module "@polkadot/api-base/types/submittable" { * - `origin`: Must be `Signed`. * - `who`: The account to be upgraded. * - * This will waive the transaction fee if at least all but 10% of the accounts needed to be upgraded. (We let some - * not have to be upgraded just in order to allow for the possibility of churn). - */ + * This will waive the transaction fee if at least all but 10% of the accounts needed to + * be upgraded. (We let some not have to be upgraded just in order to allow for the + * possibility of churn). + **/ upgradeAccounts: AugmentedSubmittable< (who: Vec | (AccountId32 | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec] >; - /** Generic tx */ + /** + * Generic tx + **/ [key: string]: SubmittableExtrinsicFunction; }; collatorAssignment: { - /** Generic tx */ + /** + * Generic tx + **/ [key: string]: SubmittableExtrinsicFunction; }; configuration: { - /** Setting this to true will disable consistency checks for the configuration setters. Use with caution. */ + /** + * Setting this to true will disable consistency checks for the configuration setters. + * Use with caution. + **/ setBypassConsistencyCheck: AugmentedSubmittable< (updated: bool | boolean | Uint8Array) => SubmittableExtrinsic, [bool] @@ -415,7 +434,9 @@ declare module "@polkadot/api-base/types/submittable" { (updated: Perbill | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Perbill] >; - /** Generic tx */ + /** + * Generic tx + **/ [key: string]: SubmittableExtrinsicFunction; }; dataPreservers: { @@ -503,7 +524,9 @@ declare module "@polkadot/api-base/types/submittable" { ) => SubmittableExtrinsic, [u64, PalletDataPreserversProfile] >; - /** Generic tx */ + /** + * Generic tx + **/ [key: string]: SubmittableExtrinsicFunction; }; foreignAssets: { @@ -512,21 +535,23 @@ declare module "@polkadot/api-base/types/submittable" { * * Origin must be Signed. * - * Ensures that `ApprovalDeposit` worth of `Currency` is reserved from signing account for the purpose of holding - * the approval. If some non-zero amount of assets is already approved from signing account to `delegate`, then it - * is topped up or unreserved to meet the right value. + * Ensures that `ApprovalDeposit` worth of `Currency` is reserved from signing account + * for the purpose of holding the approval. If some non-zero amount of assets is already + * approved from signing account to `delegate`, then it is topped up or unreserved to + * meet the right value. * - * NOTE: The signing account does not need to own `amount` of assets at the point of making this call. + * NOTE: The signing account does not need to own `amount` of assets at the point of + * making this call. * * - `id`: The identifier of the asset. * - `delegate`: The account to delegate permission to transfer asset. - * - `amount`: The amount of asset that may be transferred by `delegate`. If there is already an approval in place, - * then this acts additively. + * - `amount`: The amount of asset that may be transferred by `delegate`. If there is + * already an approval in place, then this acts additively. * * Emits `ApprovedTransfer` on success. * * Weight: `O(1)` - */ + **/ approveTransfer: AugmentedSubmittable< ( id: u16 | AnyNumber | Uint8Array, @@ -554,7 +579,7 @@ declare module "@polkadot/api-base/types/submittable" { * Emits `Blocked`. * * Weight: `O(1)` - */ + **/ block: AugmentedSubmittable< ( id: u16 | AnyNumber | Uint8Array, @@ -581,11 +606,12 @@ declare module "@polkadot/api-base/types/submittable" { * - `who`: The account to be debited from. * - `amount`: The maximum amount by which `who`'s balance should be reduced. * - * Emits `Burned` with the actual amount burned. If this takes the balance to below the minimum for the asset, - * then the amount burned is increased to take it to zero. + * Emits `Burned` with the actual amount burned. If this takes the balance to below the + * minimum for the asset, then the amount burned is increased to take it to zero. * - * Weight: `O(1)` Modes: Post-existence of `who`; Pre & post Zombie-status of `who`. - */ + * Weight: `O(1)` + * Modes: Post-existence of `who`; Pre & post Zombie-status of `who`. + **/ burn: AugmentedSubmittable< ( id: u16 | AnyNumber | Uint8Array, @@ -605,7 +631,8 @@ declare module "@polkadot/api-base/types/submittable" { /** * Cancel all of some asset approved for delegated transfer by a third-party account. * - * Origin must be Signed and there must be an approval in place between signer and `delegate`. + * Origin must be Signed and there must be an approval in place between signer and + * `delegate`. * * Unreserves any deposit previously reserved by `approve_transfer` for the approval. * @@ -615,7 +642,7 @@ declare module "@polkadot/api-base/types/submittable" { * Emits `ApprovalCancelled` on success. * * Weight: `O(1)` - */ + **/ cancelApproval: AugmentedSubmittable< ( id: u16 | AnyNumber | Uint8Array, @@ -643,7 +670,7 @@ declare module "@polkadot/api-base/types/submittable" { * Emits `MetadataCleared`. * * Weight: `O(1)` - */ + **/ clearMetadata: AugmentedSubmittable< (id: u16 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u16] @@ -658,18 +685,17 @@ declare module "@polkadot/api-base/types/submittable" { * Funds of sender are reserved by `AssetDeposit`. * * Parameters: - * - * - `id`: The identifier of the new asset. This must not be currently in use to identify an existing asset. If - * [`NextAssetId`] is set, then this must be equal to it. - * - `admin`: The admin of this class of assets. The admin is the initial address of each member of the asset - * class's admin team. - * - `min_balance`: The minimum balance of this new asset that any single account must have. If an account's balance - * is reduced below this, then it collapses to zero. + * - `id`: The identifier of the new asset. This must not be currently in use to identify + * an existing asset. If [`NextAssetId`] is set, then this must be equal to it. + * - `admin`: The admin of this class of assets. The admin is the initial address of each + * member of the asset class's admin team. + * - `min_balance`: The minimum balance of this new asset that any single account must + * have. If an account's balance is reduced below this, then it collapses to zero. * * Emits `Created` event when successful. * * Weight: `O(1)` - */ + **/ create: AugmentedSubmittable< ( id: u16 | AnyNumber | Uint8Array, @@ -689,16 +715,17 @@ declare module "@polkadot/api-base/types/submittable" { /** * Destroy all accounts associated with a given asset. * - * `destroy_accounts` should only be called after `start_destroy` has been called, and the asset is in a - * `Destroying` state. + * `destroy_accounts` should only be called after `start_destroy` has been called, and the + * asset is in a `Destroying` state. * - * Due to weight restrictions, this function may need to be called multiple times to fully destroy all accounts. - * It will destroy `RemoveItemsLimit` accounts at a time. + * Due to weight restrictions, this function may need to be called multiple times to fully + * destroy all accounts. It will destroy `RemoveItemsLimit` accounts at a time. * - * - `id`: The identifier of the asset to be destroyed. This must identify an existing asset. + * - `id`: The identifier of the asset to be destroyed. This must identify an existing + * asset. * * Each call emits the `Event::DestroyedAccounts` event. - */ + **/ destroyAccounts: AugmentedSubmittable< (id: u16 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u16] @@ -706,16 +733,17 @@ declare module "@polkadot/api-base/types/submittable" { /** * Destroy all approvals associated with a given asset up to the max (T::RemoveItemsLimit). * - * `destroy_approvals` should only be called after `start_destroy` has been called, and the asset is in a - * `Destroying` state. + * `destroy_approvals` should only be called after `start_destroy` has been called, and the + * asset is in a `Destroying` state. * - * Due to weight restrictions, this function may need to be called multiple times to fully destroy all approvals. - * It will destroy `RemoveItemsLimit` approvals at a time. + * Due to weight restrictions, this function may need to be called multiple times to fully + * destroy all approvals. It will destroy `RemoveItemsLimit` approvals at a time. * - * - `id`: The identifier of the asset to be destroyed. This must identify an existing asset. + * - `id`: The identifier of the asset to be destroyed. This must identify an existing + * asset. * * Each call emits the `Event::DestroyedApprovals` event. - */ + **/ destroyApprovals: AugmentedSubmittable< (id: u16 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u16] @@ -723,13 +751,15 @@ declare module "@polkadot/api-base/types/submittable" { /** * Complete destroying asset and unreserve currency. * - * `finish_destroy` should only be called after `start_destroy` has been called, and the asset is in a - * `Destroying` state. All accounts or approvals should be destroyed before hand. + * `finish_destroy` should only be called after `start_destroy` has been called, and the + * asset is in a `Destroying` state. All accounts or approvals should be destroyed before + * hand. * - * - `id`: The identifier of the asset to be destroyed. This must identify an existing asset. + * - `id`: The identifier of the asset to be destroyed. This must identify an existing + * asset. * * Each successful call emits the `Event::Destroyed` event. - */ + **/ finishDestroy: AugmentedSubmittable< (id: u16 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u16] @@ -744,18 +774,20 @@ declare module "@polkadot/api-base/types/submittable" { * - `issuer`: The new Issuer of this asset. * - `admin`: The new Admin of this asset. * - `freezer`: The new Freezer of this asset. - * - `min_balance`: The minimum balance of this new asset that any single account must have. If an account's balance - * is reduced below this, then it collapses to zero. - * - `is_sufficient`: Whether a non-zero balance of this asset is deposit of sufficient value to account for the - * state bloat associated with its balance storage. If set to `true`, then non-zero balances may be stored - * without a `consumer` reference (and thus an ED in the Balances pallet or whatever else is used to control - * user-account state growth). - * - `is_frozen`: Whether this asset class is frozen except for permissioned/admin instructions. + * - `min_balance`: The minimum balance of this new asset that any single account must + * have. If an account's balance is reduced below this, then it collapses to zero. + * - `is_sufficient`: Whether a non-zero balance of this asset is deposit of sufficient + * value to account for the state bloat associated with its balance storage. If set to + * `true`, then non-zero balances may be stored without a `consumer` reference (and thus + * an ED in the Balances pallet or whatever else is used to control user-account state + * growth). + * - `is_frozen`: Whether this asset class is frozen except for permissioned/admin + * instructions. * * Emits `AssetStatusChanged` with the identity of the asset. * * Weight: `O(1)` - */ + **/ forceAssetStatus: AugmentedSubmittable< ( id: u16 | AnyNumber | Uint8Array, @@ -804,7 +836,8 @@ declare module "@polkadot/api-base/types/submittable" { /** * Cancel all of some asset approved for delegated transfer by a third-party account. * - * Origin must be either ForceOrigin or Signed origin with the signer being the Admin account of the asset `id`. + * Origin must be either ForceOrigin or Signed origin with the signer being the Admin + * account of the asset `id`. * * Unreserves any deposit previously reserved by `approve_transfer` for the approval. * @@ -814,7 +847,7 @@ declare module "@polkadot/api-base/types/submittable" { * Emits `ApprovalCancelled` on success. * * Weight: `O(1)` - */ + **/ forceCancelApproval: AugmentedSubmittable< ( id: u16 | AnyNumber | Uint8Array, @@ -851,7 +884,7 @@ declare module "@polkadot/api-base/types/submittable" { * Emits `MetadataCleared`. * * Weight: `O(1)` - */ + **/ forceClearMetadata: AugmentedSubmittable< (id: u16 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u16] @@ -865,17 +898,18 @@ declare module "@polkadot/api-base/types/submittable" { * * Unlike `create`, no funds are reserved. * - * - `id`: The identifier of the new asset. This must not be currently in use to identify an existing asset. If - * [`NextAssetId`] is set, then this must be equal to it. - * - `owner`: The owner of this class of assets. The owner has full superuser permissions over this asset, but may - * later change and configure the permissions using `transfer_ownership` and `set_team`. - * - `min_balance`: The minimum balance of this new asset that any single account must have. If an account's balance - * is reduced below this, then it collapses to zero. + * - `id`: The identifier of the new asset. This must not be currently in use to identify + * an existing asset. If [`NextAssetId`] is set, then this must be equal to it. + * - `owner`: The owner of this class of assets. The owner has full superuser permissions + * over this asset, but may later change and configure the permissions using + * `transfer_ownership` and `set_team`. + * - `min_balance`: The minimum balance of this new asset that any single account must + * have. If an account's balance is reduced below this, then it collapses to zero. * * Emits `ForceCreated` event when successful. * * Weight: `O(1)` - */ + **/ forceCreate: AugmentedSubmittable< ( id: u16 | AnyNumber | Uint8Array, @@ -908,7 +942,7 @@ declare module "@polkadot/api-base/types/submittable" { * Emits `MetadataSet`. * * Weight: `O(N + S)` where N and S are the length of the name and symbol respectively. - */ + **/ forceSetMetadata: AugmentedSubmittable< ( id: u16 | AnyNumber | Uint8Array, @@ -927,15 +961,19 @@ declare module "@polkadot/api-base/types/submittable" { * - `id`: The identifier of the asset to have some amount transferred. * - `source`: The account to be debited. * - `dest`: The account to be credited. - * - `amount`: The amount by which the `source`'s balance of assets should be reduced and `dest`'s balance - * increased. The amount actually transferred may be slightly greater in the case that the transfer would - * otherwise take the `source` balance above zero but below the minimum balance. Must be greater than zero. + * - `amount`: The amount by which the `source`'s balance of assets should be reduced and + * `dest`'s balance increased. The amount actually transferred may be slightly greater in + * the case that the transfer would otherwise take the `source` balance above zero but + * below the minimum balance. Must be greater than zero. * - * Emits `Transferred` with the actual amount transferred. If this takes the source balance to below the minimum - * for the asset, then the amount transferred is increased to take it to zero. + * Emits `Transferred` with the actual amount transferred. If this takes the source balance + * to below the minimum for the asset, then the amount transferred is increased to take it + * to zero. * - * Weight: `O(1)` Modes: Pre-existence of `dest`; Post-existence of `source`; Account pre-existence of `dest`. - */ + * Weight: `O(1)` + * Modes: Pre-existence of `dest`; Post-existence of `source`; Account pre-existence of + * `dest`. + **/ forceTransfer: AugmentedSubmittable< ( id: u16 | AnyNumber | Uint8Array, @@ -962,9 +1000,9 @@ declare module "@polkadot/api-base/types/submittable" { [u16, MultiAddress, MultiAddress, Compact] >; /** - * Disallow further unprivileged transfers of an asset `id` from an account `who`. `who` must already exist as an - * entry in `Account`s of the asset. If you want to freeze an account that does not have an entry, use - * `touch_other` first. + * Disallow further unprivileged transfers of an asset `id` from an account `who`. `who` + * must already exist as an entry in `Account`s of the asset. If you want to freeze an + * account that does not have an entry, use `touch_other` first. * * Origin must be Signed and the sender should be the Freezer of the asset `id`. * @@ -974,7 +1012,7 @@ declare module "@polkadot/api-base/types/submittable" { * Emits `Frozen`. * * Weight: `O(1)` - */ + **/ freeze: AugmentedSubmittable< ( id: u16 | AnyNumber | Uint8Array, @@ -1000,7 +1038,7 @@ declare module "@polkadot/api-base/types/submittable" { * Emits `Frozen`. * * Weight: `O(1)` - */ + **/ freezeAsset: AugmentedSubmittable< (id: u16 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u16] @@ -1016,8 +1054,9 @@ declare module "@polkadot/api-base/types/submittable" { * * Emits `Issued` event when successful. * - * Weight: `O(1)` Modes: Pre-existing balance of `beneficiary`; Account pre-existence of `beneficiary`. - */ + * Weight: `O(1)` + * Modes: Pre-existing balance of `beneficiary`; Account pre-existence of `beneficiary`. + **/ mint: AugmentedSubmittable< ( id: u16 | AnyNumber | Uint8Array, @@ -1035,15 +1074,17 @@ declare module "@polkadot/api-base/types/submittable" { [u16, MultiAddress, Compact] >; /** - * Return the deposit (if any) of an asset account or a consumer reference (if any) of an account. + * Return the deposit (if any) of an asset account or a consumer reference (if any) of an + * account. * * The origin must be Signed. * - * - `id`: The identifier of the asset for which the caller would like the deposit refunded. + * - `id`: The identifier of the asset for which the caller would like the deposit + * refunded. * - `allow_burn`: If `true` then assets may be destroyed in order to complete the refund. * * Emits `Refunded` event when successful. - */ + **/ refund: AugmentedSubmittable< ( id: u16 | AnyNumber | Uint8Array, @@ -1054,14 +1095,15 @@ declare module "@polkadot/api-base/types/submittable" { /** * Return the deposit (if any) of a target asset account. Useful if you are the depositor. * - * The origin must be Signed and either the account owner, depositor, or asset `Admin`. In order to burn a - * non-zero balance of the asset, the caller must be the account and should use `refund`. + * The origin must be Signed and either the account owner, depositor, or asset `Admin`. In + * order to burn a non-zero balance of the asset, the caller must be the account and should + * use `refund`. * * - `id`: The identifier of the asset for the account holding a deposit. * - `who`: The account to refund. * * Emits `Refunded` event when successful. - */ + **/ refundOther: AugmentedSubmittable< ( id: u16 | AnyNumber | Uint8Array, @@ -1082,8 +1124,9 @@ declare module "@polkadot/api-base/types/submittable" { * * Origin must be Signed and the sender should be the Owner of the asset `id`. * - * Funds of sender are reserved according to the formula: `MetadataDepositBase + MetadataDepositPerByte * - * (name.len + symbol.len)` taking into account any already reserved funds. + * Funds of sender are reserved according to the formula: + * `MetadataDepositBase + MetadataDepositPerByte * (name.len + symbol.len)` taking into + * account any already reserved funds. * * - `id`: The identifier of the asset to update. * - `name`: The user friendly name of this asset. Limited in length by `StringLimit`. @@ -1093,7 +1136,7 @@ declare module "@polkadot/api-base/types/submittable" { * Emits `MetadataSet`. * * Weight: `O(1)` - */ + **/ setMetadata: AugmentedSubmittable< ( id: u16 | AnyNumber | Uint8Array, @@ -1106,16 +1149,17 @@ declare module "@polkadot/api-base/types/submittable" { /** * Sets the minimum balance of an asset. * - * Only works if there aren't any accounts that are holding the asset or if the new value of `min_balance` is less - * than the old one. + * Only works if there aren't any accounts that are holding the asset or if + * the new value of `min_balance` is less than the old one. * - * Origin must be Signed and the sender has to be the Owner of the asset `id`. + * Origin must be Signed and the sender has to be the Owner of the + * asset `id`. * * - `id`: The identifier of the asset. * - `min_balance`: The new value of `min_balance`. * * Emits `AssetMinBalanceChanged` event when successful. - */ + **/ setMinBalance: AugmentedSubmittable< ( id: u16 | AnyNumber | Uint8Array, @@ -1136,7 +1180,7 @@ declare module "@polkadot/api-base/types/submittable" { * Emits `TeamChanged`. * * Weight: `O(1)` - */ + **/ setTeam: AugmentedSubmittable< ( id: u16 | AnyNumber | Uint8Array, @@ -1173,13 +1217,14 @@ declare module "@polkadot/api-base/types/submittable" { /** * Start the process of destroying a fungible asset class. * - * `start_destroy` is the first in a series of extrinsics that should be called, to allow destruction of an asset - * class. + * `start_destroy` is the first in a series of extrinsics that should be called, to allow + * destruction of an asset class. * * The origin must conform to `ForceOrigin` or must be `Signed` by the asset's `owner`. * - * - `id`: The identifier of the asset to be destroyed. This must identify an existing asset. - */ + * - `id`: The identifier of the asset to be destroyed. This must identify an existing + * asset. + **/ startDestroy: AugmentedSubmittable< (id: u16 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u16] @@ -1195,7 +1240,7 @@ declare module "@polkadot/api-base/types/submittable" { * Emits `Thawed`. * * Weight: `O(1)` - */ + **/ thaw: AugmentedSubmittable< ( id: u16 | AnyNumber | Uint8Array, @@ -1221,31 +1266,32 @@ declare module "@polkadot/api-base/types/submittable" { * Emits `Thawed`. * * Weight: `O(1)` - */ + **/ thawAsset: AugmentedSubmittable<(id: u16 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u16]>; /** * Create an asset account for non-provider assets. * * A deposit will be taken from the signer account. * - * - `origin`: Must be Signed; the signer account must have sufficient funds for a deposit to be taken. + * - `origin`: Must be Signed; the signer account must have sufficient funds for a deposit + * to be taken. * - `id`: The identifier of the asset for the account to be created. * * Emits `Touched` event when successful. - */ + **/ touch: AugmentedSubmittable<(id: u16 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u16]>; /** * Create an asset account for `who`. * * A deposit will be taken from the signer account. * - * - `origin`: Must be Signed by `Freezer` or `Admin` of the asset `id`; the signer account must have sufficient - * funds for a deposit to be taken. + * - `origin`: Must be Signed by `Freezer` or `Admin` of the asset `id`; the signer account + * must have sufficient funds for a deposit to be taken. * - `id`: The identifier of the asset for the account to be created. * - `who`: The account to be created. * * Emits `Touched` event when successful. - */ + **/ touchOther: AugmentedSubmittable< ( id: u16 | AnyNumber | Uint8Array, @@ -1268,15 +1314,19 @@ declare module "@polkadot/api-base/types/submittable" { * * - `id`: The identifier of the asset to have some amount transferred. * - `target`: The account to be credited. - * - `amount`: The amount by which the sender's balance of assets should be reduced and `target`'s balance - * increased. The amount actually transferred may be slightly greater in the case that the transfer would - * otherwise take the sender balance above zero but below the minimum balance. Must be greater than zero. + * - `amount`: The amount by which the sender's balance of assets should be reduced and + * `target`'s balance increased. The amount actually transferred may be slightly greater in + * the case that the transfer would otherwise take the sender balance above zero but below + * the minimum balance. Must be greater than zero. * - * Emits `Transferred` with the actual amount transferred. If this takes the source balance to below the minimum - * for the asset, then the amount transferred is increased to take it to zero. + * Emits `Transferred` with the actual amount transferred. If this takes the source balance + * to below the minimum for the asset, then the amount transferred is increased to take it + * to zero. * - * Weight: `O(1)` Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of `target`. - */ + * Weight: `O(1)` + * Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of + * `target`. + **/ transfer: AugmentedSubmittable< ( id: u16 | AnyNumber | Uint8Array, @@ -1296,19 +1346,21 @@ declare module "@polkadot/api-base/types/submittable" { /** * Transfer the entire transferable balance from the caller asset account. * - * NOTE: This function only attempts to transfer _transferable_ balances. This means that any held, frozen, or - * minimum balance (when `keep_alive` is `true`), will not be transferred by this function. To ensure that this - * function results in a killed account, you might need to prepare the account by removing any reference counters, - * storage deposits, etc... + * NOTE: This function only attempts to transfer _transferable_ balances. This means that + * any held, frozen, or minimum balance (when `keep_alive` is `true`), will not be + * transferred by this function. To ensure that this function results in a killed account, + * you might need to prepare the account by removing any reference counters, storage + * deposits, etc... * * The dispatch origin of this call must be Signed. * * - `id`: The identifier of the asset for the account holding a deposit. * - `dest`: The recipient of the transfer. - * - `keep_alive`: A boolean to determine if the `transfer_all` operation should send all of the funds the asset - * account has, causing the sender asset account to be killed (false), or transfer everything except at least - * the minimum balance, which will guarantee to keep the sender asset account alive (true). - */ + * - `keep_alive`: A boolean to determine if the `transfer_all` operation should send all + * of the funds the asset account has, causing the sender asset account to be killed + * (false), or transfer everything except at least the minimum balance, which will + * guarantee to keep the sender asset account alive (true). + **/ transferAll: AugmentedSubmittable< ( id: u16 | AnyNumber | Uint8Array, @@ -1326,23 +1378,25 @@ declare module "@polkadot/api-base/types/submittable" { [u16, MultiAddress, bool] >; /** - * Transfer some asset balance from a previously delegated account to some third-party account. + * Transfer some asset balance from a previously delegated account to some third-party + * account. * - * Origin must be Signed and there must be an approval in place by the `owner` to the signer. + * Origin must be Signed and there must be an approval in place by the `owner` to the + * signer. * - * If the entire amount approved for transfer is transferred, then any deposit previously reserved by - * `approve_transfer` is unreserved. + * If the entire amount approved for transfer is transferred, then any deposit previously + * reserved by `approve_transfer` is unreserved. * * - `id`: The identifier of the asset. - * - `owner`: The account which previously approved for a transfer of at least `amount` and from which the asset - * balance will be withdrawn. + * - `owner`: The account which previously approved for a transfer of at least `amount` and + * from which the asset balance will be withdrawn. * - `destination`: The account to which the asset balance of `amount` will be transferred. * - `amount`: The amount of assets to transfer. * * Emits `TransferredApproved` on success. * * Weight: `O(1)` - */ + **/ transferApproved: AugmentedSubmittable< ( id: u16 | AnyNumber | Uint8Array, @@ -1375,15 +1429,19 @@ declare module "@polkadot/api-base/types/submittable" { * * - `id`: The identifier of the asset to have some amount transferred. * - `target`: The account to be credited. - * - `amount`: The amount by which the sender's balance of assets should be reduced and `target`'s balance - * increased. The amount actually transferred may be slightly greater in the case that the transfer would - * otherwise take the sender balance above zero but below the minimum balance. Must be greater than zero. + * - `amount`: The amount by which the sender's balance of assets should be reduced and + * `target`'s balance increased. The amount actually transferred may be slightly greater in + * the case that the transfer would otherwise take the sender balance above zero but below + * the minimum balance. Must be greater than zero. * - * Emits `Transferred` with the actual amount transferred. If this takes the source balance to below the minimum - * for the asset, then the amount transferred is increased to take it to zero. + * Emits `Transferred` with the actual amount transferred. If this takes the source balance + * to below the minimum for the asset, then the amount transferred is increased to take it + * to zero. * - * Weight: `O(1)` Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of `target`. - */ + * Weight: `O(1)` + * Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of + * `target`. + **/ transferKeepAlive: AugmentedSubmittable< ( id: u16 | AnyNumber | Uint8Array, @@ -1411,7 +1469,7 @@ declare module "@polkadot/api-base/types/submittable" { * Emits `OwnerChanged`. * * Weight: `O(1)` - */ + **/ transferOwnership: AugmentedSubmittable< ( id: u16 | AnyNumber | Uint8Array, @@ -1427,14 +1485,17 @@ declare module "@polkadot/api-base/types/submittable" { ) => SubmittableExtrinsic, [u16, MultiAddress] >; - /** Generic tx */ + /** + * Generic tx + **/ [key: string]: SubmittableExtrinsicFunction; }; foreignAssetsCreator: { /** - * Change the xcm type mapping for a given assetId We also change this if the previous units per second where - * pointing at the old assetType - */ + * Change the xcm type mapping for a given assetId + * We also change this if the previous units per second where pointing at the old + * assetType + **/ changeExistingAssetType: AugmentedSubmittable< ( assetId: u16 | AnyNumber | Uint8Array, @@ -1442,7 +1503,9 @@ declare module "@polkadot/api-base/types/submittable" { ) => SubmittableExtrinsic, [u16, StagingXcmV4Location] >; - /** Create new asset with the ForeignAssetCreator */ + /** + * Create new asset with the ForeignAssetCreator + **/ createForeignAsset: AugmentedSubmittable< ( foreignAsset: StagingXcmV4Location | { parents?: any; interior?: any } | string | Uint8Array, @@ -1454,26 +1517,32 @@ declare module "@polkadot/api-base/types/submittable" { [StagingXcmV4Location, u16, AccountId32, bool, u128] >; /** - * Destroy a given foreign assetId The weight in this case is the one returned by the trait plus the db writes and - * reads from removing all the associated data - */ + * Destroy a given foreign assetId + * The weight in this case is the one returned by the trait + * plus the db writes and reads from removing all the associated + * data + **/ destroyForeignAsset: AugmentedSubmittable< (assetId: u16 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u16] >; - /** Remove a given assetId -> foreignAsset association */ + /** + * Remove a given assetId -> foreignAsset association + **/ removeExistingAssetType: AugmentedSubmittable< (assetId: u16 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u16] >; - /** Generic tx */ + /** + * Generic tx + **/ [key: string]: SubmittableExtrinsicFunction; }; identity: { /** - * Accept a given username that an `authority` granted. The call must include the full username, as in - * `username.suffix`. - */ + * Accept a given username that an `authority` granted. The call must include the full + * username, as in `username.suffix`. + **/ acceptUsername: AugmentedSubmittable< (username: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes] @@ -1486,7 +1555,7 @@ declare module "@polkadot/api-base/types/submittable" { * - `account`: the account of the registrar. * * Emits `RegistrarAdded` if successful. - */ + **/ addRegistrar: AugmentedSubmittable< ( account: @@ -1504,10 +1573,12 @@ declare module "@polkadot/api-base/types/submittable" { /** * Add the given account to the sender's subs. * - * Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated to the sender. + * Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated + * to the sender. * - * The dispatch origin for this call must be _Signed_ and the sender must have a registered sub identity of `sub`. - */ + * The dispatch origin for this call must be _Signed_ and the sender must have a registered + * sub identity of `sub`. + **/ addSub: AugmentedSubmittable< ( sub: @@ -1535,9 +1606,9 @@ declare module "@polkadot/api-base/types/submittable" { /** * Add an `AccountId` with permission to grant usernames with a given `suffix` appended. * - * The authority can grant up to `allocation` usernames. To top up their allocation, they should just issue (or - * request via governance) a new `add_username_authority` call. - */ + * The authority can grant up to `allocation` usernames. To top up their allocation, they + * should just issue (or request via governance) a new `add_username_authority` call. + **/ addUsernameAuthority: AugmentedSubmittable< ( authority: @@ -1559,12 +1630,13 @@ declare module "@polkadot/api-base/types/submittable" { * * Payment: A previously reserved deposit is returned on success. * - * The dispatch origin for this call must be _Signed_ and the sender must have a registered identity. + * The dispatch origin for this call must be _Signed_ and the sender must have a + * registered identity. * * - `reg_index`: The index of the registrar whose judgement is no longer requested. * * Emits `JudgementUnrequested` if successful. - */ + **/ cancelRequest: AugmentedSubmittable< (regIndex: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32] @@ -1574,23 +1646,26 @@ declare module "@polkadot/api-base/types/submittable" { * * Payment: All reserved balances on the account are returned. * - * The dispatch origin for this call must be _Signed_ and the sender must have a registered identity. + * The dispatch origin for this call must be _Signed_ and the sender must have a registered + * identity. * * Emits `IdentityCleared` if successful. - */ + **/ clearIdentity: AugmentedSubmittable<() => SubmittableExtrinsic, []>; /** * Remove an account's identity and sub-account information and slash the deposits. * - * Payment: Reserved balances from `set_subs` and `set_identity` are slashed and handled by `Slash`. Verification - * request deposits are not returned; they should be cancelled manually using `cancel_request`. + * Payment: Reserved balances from `set_subs` and `set_identity` are slashed and handled by + * `Slash`. Verification request deposits are not returned; they should be cancelled + * manually using `cancel_request`. * * The dispatch origin for this call must match `T::ForceOrigin`. * - * - `target`: the account whose identity the judgement is upon. This must be an account with a registered identity. + * - `target`: the account whose identity the judgement is upon. This must be an account + * with a registered identity. * * Emits `IdentityKilled` if successful. - */ + **/ killIdentity: AugmentedSubmittable< ( target: @@ -1608,18 +1683,20 @@ declare module "@polkadot/api-base/types/submittable" { /** * Provide a judgement for an account's identity. * - * The dispatch origin for this call must be _Signed_ and the sender must be the account of the registrar whose - * index is `reg_index`. + * The dispatch origin for this call must be _Signed_ and the sender must be the account + * of the registrar whose index is `reg_index`. * * - `reg_index`: the index of the registrar whose judgement is being made. - * - `target`: the account whose identity the judgement is upon. This must be an account with a registered identity. + * - `target`: the account whose identity the judgement is upon. This must be an account + * with a registered identity. * - `judgement`: the judgement of the registrar of index `reg_index` about `target`. - * - `identity`: The hash of the [`IdentityInformationProvider`] for that the judgement is provided. + * - `identity`: The hash of the [`IdentityInformationProvider`] for that the judgement is + * provided. * * Note: Judgements do not apply to a username. * * Emits `JudgementGiven` if successful. - */ + **/ provideJudgement: AugmentedSubmittable< ( regIndex: Compact | AnyNumber | Uint8Array, @@ -1650,27 +1727,29 @@ declare module "@polkadot/api-base/types/submittable" { /** * Remove the sender as a sub-account. * - * Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated to the sender (_not_ - * the original depositor). + * Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated + * to the sender (*not* the original depositor). * - * The dispatch origin for this call must be _Signed_ and the sender must have a registered super-identity. + * The dispatch origin for this call must be _Signed_ and the sender must have a registered + * super-identity. * - * NOTE: This should not normally be used, but is provided in the case that the non- controller of an account is - * maliciously registered as a sub-account. - */ + * NOTE: This should not normally be used, but is provided in the case that the non- + * controller of an account is maliciously registered as a sub-account. + **/ quitSub: AugmentedSubmittable<() => SubmittableExtrinsic, []>; /** - * Remove a username that corresponds to an account with no identity. Exists when a user gets a username but then - * calls `clear_identity`. - */ + * Remove a username that corresponds to an account with no identity. Exists when a user + * gets a username but then calls `clear_identity`. + **/ removeDanglingUsername: AugmentedSubmittable< (username: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes] >; /** - * Remove an expired username approval. The username was approved by an authority but never accepted by the user - * and must now be beyond its expiration. The call must include the full username, as in `username.suffix`. - */ + * Remove an expired username approval. The username was approved by an authority but never + * accepted by the user and must now be beyond its expiration. The call must include the + * full username, as in `username.suffix`. + **/ removeExpiredApproval: AugmentedSubmittable< (username: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes] @@ -1678,10 +1757,12 @@ declare module "@polkadot/api-base/types/submittable" { /** * Remove the given account from the sender's subs. * - * Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated to the sender. + * Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated + * to the sender. * - * The dispatch origin for this call must be _Signed_ and the sender must have a registered sub identity of `sub`. - */ + * The dispatch origin for this call must be _Signed_ and the sender must have a registered + * sub identity of `sub`. + **/ removeSub: AugmentedSubmittable< ( sub: @@ -1696,7 +1777,9 @@ declare module "@polkadot/api-base/types/submittable" { ) => SubmittableExtrinsic, [MultiAddress] >; - /** Remove `authority` from the username authorities. */ + /** + * Remove `authority` from the username authorities. + **/ removeUsernameAuthority: AugmentedSubmittable< ( authority: @@ -1714,8 +1797,9 @@ declare module "@polkadot/api-base/types/submittable" { /** * Alter the associated name of the given sub-account. * - * The dispatch origin for this call must be _Signed_ and the sender must have a registered sub identity of `sub`. - */ + * The dispatch origin for this call must be _Signed_ and the sender must have a registered + * sub identity of `sub`. + **/ renameSub: AugmentedSubmittable< ( sub: @@ -1743,9 +1827,11 @@ declare module "@polkadot/api-base/types/submittable" { /** * Request a judgement from a registrar. * - * Payment: At most `max_fee` will be reserved for payment to the registrar if judgement given. + * Payment: At most `max_fee` will be reserved for payment to the registrar if judgement + * given. * - * The dispatch origin for this call must be _Signed_ and the sender must have a registered identity. + * The dispatch origin for this call must be _Signed_ and the sender must have a + * registered identity. * * - `reg_index`: The index of the registrar whose judgement is requested. * - `max_fee`: The maximum fee that may be paid. This should just be auto-populated as: @@ -1755,7 +1841,7 @@ declare module "@polkadot/api-base/types/submittable" { * ``` * * Emits `JudgementRequested` if successful. - */ + **/ requestJudgement: AugmentedSubmittable< ( regIndex: Compact | AnyNumber | Uint8Array, @@ -1766,12 +1852,12 @@ declare module "@polkadot/api-base/types/submittable" { /** * Change the account associated with a registrar. * - * The dispatch origin for this call must be _Signed_ and the sender must be the account of the registrar whose - * index is `index`. + * The dispatch origin for this call must be _Signed_ and the sender must be the account + * of the registrar whose index is `index`. * * - `index`: the index of the registrar whose fee is to be set. * - `new`: the new account ID. - */ + **/ setAccountId: AugmentedSubmittable< ( index: Compact | AnyNumber | Uint8Array, @@ -1790,12 +1876,12 @@ declare module "@polkadot/api-base/types/submittable" { /** * Set the fee required for a judgement to be requested from a registrar. * - * The dispatch origin for this call must be _Signed_ and the sender must be the account of the registrar whose - * index is `index`. + * The dispatch origin for this call must be _Signed_ and the sender must be the account + * of the registrar whose index is `index`. * * - `index`: the index of the registrar whose fee is to be set. * - `fee`: the new fee. - */ + **/ setFee: AugmentedSubmittable< ( index: Compact | AnyNumber | Uint8Array, @@ -1806,12 +1892,12 @@ declare module "@polkadot/api-base/types/submittable" { /** * Set the field information for a registrar. * - * The dispatch origin for this call must be _Signed_ and the sender must be the account of the registrar whose - * index is `index`. + * The dispatch origin for this call must be _Signed_ and the sender must be the account + * of the registrar whose index is `index`. * * - `index`: the index of the registrar whose fee is to be set. * - `fields`: the fields that the registrar concerns themselves with. - */ + **/ setFields: AugmentedSubmittable< ( index: Compact | AnyNumber | Uint8Array, @@ -1822,14 +1908,15 @@ declare module "@polkadot/api-base/types/submittable" { /** * Set an account's identity information and reserve the appropriate deposit. * - * If the account already has identity information, the deposit is taken as part payment for the new deposit. + * If the account already has identity information, the deposit is taken as part payment + * for the new deposit. * * The dispatch origin for this call must be _Signed_. * * - `info`: The identity information. * * Emits `IdentitySet` if successful. - */ + **/ setIdentity: AugmentedSubmittable< ( info: @@ -1850,7 +1937,9 @@ declare module "@polkadot/api-base/types/submittable" { ) => SubmittableExtrinsic, [PalletIdentityLegacyIdentityInfo] >; - /** Set a given username as the primary. The username should include the suffix. */ + /** + * Set a given username as the primary. The username should include the suffix. + **/ setPrimaryUsername: AugmentedSubmittable< (username: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes] @@ -1858,13 +1947,14 @@ declare module "@polkadot/api-base/types/submittable" { /** * Set the sub-accounts of the sender. * - * Payment: Any aggregate balance reserved by previous `set_subs` calls will be returned and an amount - * `SubAccountDeposit` will be reserved for each item in `subs`. + * Payment: Any aggregate balance reserved by previous `set_subs` calls will be returned + * and an amount `SubAccountDeposit` will be reserved for each item in `subs`. * - * The dispatch origin for this call must be _Signed_ and the sender must have a registered identity. + * The dispatch origin for this call must be _Signed_ and the sender must have a registered + * identity. * * - `subs`: The identity's (new) sub-accounts. - */ + **/ setSubs: AugmentedSubmittable< ( subs: @@ -1889,13 +1979,14 @@ declare module "@polkadot/api-base/types/submittable" { /** * Set the username for `who`. Must be called by a username authority. * - * The authority must have an `allocation`. Users can either pre-sign their usernames or accept them later. + * The authority must have an `allocation`. Users can either pre-sign their usernames or + * accept them later. * * Usernames must: - * * - Only contain lowercase ASCII characters or digits. - * - When combined with the suffix of the issuing authority be _less than_ the `MaxUsernameLength`. - */ + * - When combined with the suffix of the issuing authority be _less than_ the + * `MaxUsernameLength`. + **/ setUsernameFor: AugmentedSubmittable< ( who: @@ -1920,7 +2011,9 @@ declare module "@polkadot/api-base/types/submittable" { ) => SubmittableExtrinsic, [MultiAddress, Bytes, Option] >; - /** Generic tx */ + /** + * Generic tx + **/ [key: string]: SubmittableExtrinsicFunction; }; invulnerables: { @@ -1928,7 +2021,7 @@ declare module "@polkadot/api-base/types/submittable" { * Add a new account `who` to the list of `Invulnerables` collators. * * The origin for this call must be the `UpdateOrigin`. - */ + **/ addInvulnerable: AugmentedSubmittable< (who: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [AccountId32] @@ -1937,12 +2030,14 @@ declare module "@polkadot/api-base/types/submittable" { * Remove an account `who` from the list of `Invulnerables` collators. * * The origin for this call must be the `UpdateOrigin`. - */ + **/ removeInvulnerable: AugmentedSubmittable< (who: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [AccountId32] >; - /** Generic tx */ + /** + * Generic tx + **/ [key: string]: SubmittableExtrinsicFunction; }; maintenanceMode: { @@ -1950,37 +2045,39 @@ declare module "@polkadot/api-base/types/submittable" { * Place the chain in maintenance mode * * Weight cost is: - * - * - One DB read to ensure we're not already in maintenance mode - * - Three DB writes - 1 for the mode, 1 for suspending xcm execution, 1 for the event - */ + * * One DB read to ensure we're not already in maintenance mode + * * Three DB writes - 1 for the mode, 1 for suspending xcm execution, 1 for the event + **/ enterMaintenanceMode: AugmentedSubmittable<() => SubmittableExtrinsic, []>; /** * Return the chain to normal operating mode * * Weight cost is: - * - * - One DB read to ensure we're in maintenance mode - * - Three DB writes - 1 for the mode, 1 for resuming xcm execution, 1 for the event - */ + * * One DB read to ensure we're in maintenance mode + * * Three DB writes - 1 for the mode, 1 for resuming xcm execution, 1 for the event + **/ resumeNormalOperation: AugmentedSubmittable<() => SubmittableExtrinsic, []>; - /** Generic tx */ + /** + * Generic tx + **/ [key: string]: SubmittableExtrinsicFunction; }; messageQueue: { /** * Execute an overweight message. * - * Temporary processing errors will be propagated whereas permanent errors are treated as success condition. + * Temporary processing errors will be propagated whereas permanent errors are treated + * as success condition. * * - `origin`: Must be `Signed`. * - `message_origin`: The origin from which the message to be executed arrived. * - `page`: The page in the queue in which the message to be executed is sitting. * - `index`: The index into the queue of the message to be executed. - * - `weight_limit`: The maximum amount of weight allowed to be consumed in the execution of the message. + * - `weight_limit`: The maximum amount of weight allowed to be consumed in the execution + * of the message. * * Benchmark complexity considerations: O(index + weight_limit). - */ + **/ executeOverweight: AugmentedSubmittable< ( messageOrigin: @@ -1996,7 +2093,9 @@ declare module "@polkadot/api-base/types/submittable" { ) => SubmittableExtrinsic, [CumulusPrimitivesCoreAggregateMessageOrigin, u32, u32, SpWeightsWeightV2Weight] >; - /** Remove a page which has no more messages remaining to be processed or is stale. */ + /** + * Remove a page which has no more messages remaining to be processed or is stale. + **/ reapPage: AugmentedSubmittable< ( messageOrigin: @@ -2010,41 +2109,44 @@ declare module "@polkadot/api-base/types/submittable" { ) => SubmittableExtrinsic, [CumulusPrimitivesCoreAggregateMessageOrigin, u32] >; - /** Generic tx */ + /** + * Generic tx + **/ [key: string]: SubmittableExtrinsicFunction; }; multisig: { /** - * Register approval for a dispatch to be made from a deterministic composite account if approved by a total of - * `threshold - 1` of `other_signatories`. + * Register approval for a dispatch to be made from a deterministic composite account if + * approved by a total of `threshold - 1` of `other_signatories`. * - * Payment: `DepositBase` will be reserved if this is the first approval, plus `threshold` times `DepositFactor`. - * It is returned once this dispatch happens or is cancelled. + * Payment: `DepositBase` will be reserved if this is the first approval, plus + * `threshold` times `DepositFactor`. It is returned once this dispatch happens or + * is cancelled. * * The dispatch origin for this call must be _Signed_. * * - `threshold`: The total number of approvals for this dispatch before it is executed. - * - `other_signatories`: The accounts (other than the sender) who can approve this dispatch. May not be empty. - * - `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is not the first approval, - * then it must be `Some`, with the timepoint (block number and transaction index) of the first approval - * transaction. + * - `other_signatories`: The accounts (other than the sender) who can approve this + * dispatch. May not be empty. + * - `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is + * not the first approval, then it must be `Some`, with the timepoint (block number and + * transaction index) of the first approval transaction. * - `call_hash`: The hash of the call to be executed. * * NOTE: If this is the final approval, you will want to use `as_multi` instead. * * ## Complexity - * * - `O(S)`. * - Up to one balance-reserve or unreserve operation. - * - One passthrough operation, one insert, both `O(S)` where `S` is the number of signatories. `S` is capped by - * `MaxSignatories`, with weight being proportional. + * - One passthrough operation, one insert, both `O(S)` where `S` is the number of + * signatories. `S` is capped by `MaxSignatories`, with weight being proportional. * - One encode & hash, both of complexity `O(S)`. * - Up to one binary search and insert (`O(logS + S)`). * - I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove. * - One event. - * - Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit taken for its lifetime of - * `DepositBase + threshold * DepositFactor`. - */ + * - Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit + * taken for its lifetime of `DepositBase + threshold * DepositFactor`. + **/ approveAsMulti: AugmentedSubmittable< ( threshold: u16 | AnyNumber | Uint8Array, @@ -2062,45 +2164,46 @@ declare module "@polkadot/api-base/types/submittable" { [u16, Vec, Option, U8aFixed, SpWeightsWeightV2Weight] >; /** - * Register approval for a dispatch to be made from a deterministic composite account if approved by a total of - * `threshold - 1` of `other_signatories`. + * Register approval for a dispatch to be made from a deterministic composite account if + * approved by a total of `threshold - 1` of `other_signatories`. * * If there are enough, then dispatch the call. * - * Payment: `DepositBase` will be reserved if this is the first approval, plus `threshold` times `DepositFactor`. - * It is returned once this dispatch happens or is cancelled. + * Payment: `DepositBase` will be reserved if this is the first approval, plus + * `threshold` times `DepositFactor`. It is returned once this dispatch happens or + * is cancelled. * * The dispatch origin for this call must be _Signed_. * * - `threshold`: The total number of approvals for this dispatch before it is executed. - * - `other_signatories`: The accounts (other than the sender) who can approve this dispatch. May not be empty. - * - `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is not the first approval, - * then it must be `Some`, with the timepoint (block number and transaction index) of the first approval - * transaction. + * - `other_signatories`: The accounts (other than the sender) who can approve this + * dispatch. May not be empty. + * - `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is + * not the first approval, then it must be `Some`, with the timepoint (block number and + * transaction index) of the first approval transaction. * - `call`: The call to be executed. * - * NOTE: Unless this is the final approval, you will generally want to use `approve_as_multi` instead, since it - * only requires a hash of the call. + * NOTE: Unless this is the final approval, you will generally want to use + * `approve_as_multi` instead, since it only requires a hash of the call. * - * Result is equivalent to the dispatched result if `threshold` is exactly `1`. Otherwise on success, result is - * `Ok` and the result from the interior call, if it was executed, may be found in the deposited - * `MultisigExecuted` event. + * Result is equivalent to the dispatched result if `threshold` is exactly `1`. Otherwise + * on success, result is `Ok` and the result from the interior call, if it was executed, + * may be found in the deposited `MultisigExecuted` event. * * ## Complexity - * * - `O(S + Z + Call)`. * - Up to one balance-reserve or unreserve operation. - * - One passthrough operation, one insert, both `O(S)` where `S` is the number of signatories. `S` is capped by - * `MaxSignatories`, with weight being proportional. + * - One passthrough operation, one insert, both `O(S)` where `S` is the number of + * signatories. `S` is capped by `MaxSignatories`, with weight being proportional. * - One call encode & hash, both of complexity `O(Z)` where `Z` is tx-len. * - One encode & hash, both of complexity `O(S)`. * - Up to one binary search and insert (`O(logS + S)`). * - I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove. * - One event. * - The weight of the `call`. - * - Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit taken for its lifetime of - * `DepositBase + threshold * DepositFactor`. - */ + * - Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit + * taken for its lifetime of `DepositBase + threshold * DepositFactor`. + **/ asMulti: AugmentedSubmittable< ( threshold: u16 | AnyNumber | Uint8Array, @@ -2122,16 +2225,15 @@ declare module "@polkadot/api-base/types/submittable" { * * The dispatch origin for this call must be _Signed_. * - * - `other_signatories`: The accounts (other than the sender) who are part of the multi-signature, but do not - * participate in the approval process. + * - `other_signatories`: The accounts (other than the sender) who are part of the + * multi-signature, but do not participate in the approval process. * - `call`: The call to be executed. * * Result is equivalent to the dispatched result. * * ## Complexity - * * O(Z + C) where Z is the length of the call and C its execution weight. - */ + **/ asMultiThreshold1: AugmentedSubmittable< ( otherSignatories: Vec | (AccountId32 | string | Uint8Array)[], @@ -2140,28 +2242,28 @@ declare module "@polkadot/api-base/types/submittable" { [Vec, Call] >; /** - * Cancel a pre-existing, on-going multisig transaction. Any deposit reserved previously for this operation will - * be unreserved on success. + * Cancel a pre-existing, on-going multisig transaction. Any deposit reserved previously + * for this operation will be unreserved on success. * * The dispatch origin for this call must be _Signed_. * * - `threshold`: The total number of approvals for this dispatch before it is executed. - * - `other_signatories`: The accounts (other than the sender) who can approve this dispatch. May not be empty. - * - `timepoint`: The timepoint (block number and transaction index) of the first approval transaction for this - * dispatch. + * - `other_signatories`: The accounts (other than the sender) who can approve this + * dispatch. May not be empty. + * - `timepoint`: The timepoint (block number and transaction index) of the first approval + * transaction for this dispatch. * - `call_hash`: The hash of the call to be executed. * * ## Complexity - * * - `O(S)`. * - Up to one balance-reserve or unreserve operation. - * - One passthrough operation, one insert, both `O(S)` where `S` is the number of signatories. `S` is capped by - * `MaxSignatories`, with weight being proportional. + * - One passthrough operation, one insert, both `O(S)` where `S` is the number of + * signatories. `S` is capped by `MaxSignatories`, with weight being proportional. * - One encode & hash, both of complexity `O(S)`. * - One event. * - I/O: 1 read `O(S)`, one remove. * - Storage: removes one item. - */ + **/ cancelAsMulti: AugmentedSubmittable< ( threshold: u16 | AnyNumber | Uint8Array, @@ -2171,24 +2273,29 @@ declare module "@polkadot/api-base/types/submittable" { ) => SubmittableExtrinsic, [u16, Vec, PalletMultisigTimepoint, U8aFixed] >; - /** Generic tx */ + /** + * Generic tx + **/ [key: string]: SubmittableExtrinsicFunction; }; parachainInfo: { - /** Generic tx */ + /** + * Generic tx + **/ [key: string]: SubmittableExtrinsicFunction; }; parachainSystem: { /** * Set the current validation data. * - * This should be invoked exactly once per block. It will panic at the finalization phase if the call was not - * invoked. + * This should be invoked exactly once per block. It will panic at the finalization + * phase if the call was not invoked. * * The dispatch origin for this call must be `Inherent` * - * As a side effect, this function upgrades the current validation function if the appropriate time has come. - */ + * As a side effect, this function upgrades the current validation function + * if the appropriate time has come. + **/ setValidationData: AugmentedSubmittable< ( data: @@ -2208,7 +2315,9 @@ declare module "@polkadot/api-base/types/submittable" { (message: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes] >; - /** Generic tx */ + /** + * Generic tx + **/ [key: string]: SubmittableExtrinsicFunction; }; polkadotXcm: { @@ -2216,10 +2325,10 @@ declare module "@polkadot/api-base/types/submittable" { * Claims assets trapped on this pallet because of leftover assets during XCM execution. * * - `origin`: Anyone can call this extrinsic. - * - `assets`: The exact assets that were trapped. Use the version to specify what version was the latest when they - * were trapped. + * - `assets`: The exact assets that were trapped. Use the version to specify what version + * was the latest when they were trapped. * - `beneficiary`: The location/account where the claimed assets will be deposited. - */ + **/ claimAssets: AugmentedSubmittable< ( assets: XcmVersionedAssets | { V2: any } | { V3: any } | { V4: any } | string | Uint8Array, @@ -2230,11 +2339,13 @@ declare module "@polkadot/api-base/types/submittable" { /** * Execute an XCM message from a local, signed, origin. * - * An event is deposited indicating whether `msg` could be executed completely or only partially. + * An event is deposited indicating whether `msg` could be executed completely or only + * partially. * - * No more than `max_weight` will be used in its attempted execution. If this is less than the maximum amount of - * weight that the message could take to be executed, then no execution attempt will be made. - */ + * No more than `max_weight` will be used in its attempted execution. If this is less than + * the maximum amount of weight that the message could take to be executed, then no + * execution attempt will be made. + **/ execute: AugmentedSubmittable< ( message: XcmVersionedXcm | { V2: any } | { V3: any } | { V4: any } | string | Uint8Array, @@ -2243,12 +2354,12 @@ declare module "@polkadot/api-base/types/submittable" { [XcmVersionedXcm, SpWeightsWeightV2Weight] >; /** - * Set a safe XCM version (the version that XCM should be encoded with if the most recent version a destination - * can accept is unknown). + * Set a safe XCM version (the version that XCM should be encoded with if the most recent + * version a destination can accept is unknown). * * - `origin`: Must be an origin specified by AdminOrigin. * - `maybe_xcm_version`: The default XCM encoding version, or `None` to disable. - */ + **/ forceDefaultXcmVersion: AugmentedSubmittable< (maybeXcmVersion: Option | null | Uint8Array | u32 | AnyNumber) => SubmittableExtrinsic, [Option] @@ -2258,7 +2369,7 @@ declare module "@polkadot/api-base/types/submittable" { * * - `origin`: Must be an origin specified by AdminOrigin. * - `location`: The location to which we should subscribe for XCM version notifications. - */ + **/ forceSubscribeVersionNotify: AugmentedSubmittable< ( location: XcmVersionedLocation | { V2: any } | { V3: any } | { V4: any } | string | Uint8Array @@ -2270,18 +2381,19 @@ declare module "@polkadot/api-base/types/submittable" { * * - `origin`: Must be an origin specified by AdminOrigin. * - `suspended`: `true` to suspend, `false` to resume. - */ + **/ forceSuspension: AugmentedSubmittable< (suspended: bool | boolean | Uint8Array) => SubmittableExtrinsic, [bool] >; /** - * Require that a particular destination should no longer notify us regarding any XCM version changes. + * Require that a particular destination should no longer notify us regarding any XCM + * version changes. * * - `origin`: Must be an origin specified by AdminOrigin. - * - `location`: The location to which we are currently subscribed for XCM version notifications which we no longer - * desire. - */ + * - `location`: The location to which we are currently subscribed for XCM version + * notifications which we no longer desire. + **/ forceUnsubscribeVersionNotify: AugmentedSubmittable< ( location: XcmVersionedLocation | { V2: any } | { V3: any } | { V4: any } | string | Uint8Array @@ -2289,12 +2401,13 @@ declare module "@polkadot/api-base/types/submittable" { [XcmVersionedLocation] >; /** - * Extoll that a particular destination can be communicated with through a particular version of XCM. + * Extoll that a particular destination can be communicated with through a particular + * version of XCM. * * - `origin`: Must be an origin specified by AdminOrigin. * - `location`: The destination that is being described. * - `xcm_version`: The latest version of XCM that `location` supports. - */ + **/ forceXcmVersion: AugmentedSubmittable< ( location: StagingXcmV4Location | { parents?: any; interior?: any } | string | Uint8Array, @@ -2303,33 +2416,37 @@ declare module "@polkadot/api-base/types/submittable" { [StagingXcmV4Location, u32] >; /** - * Transfer some assets from the local chain to the destination chain through their local, destination or remote - * reserve. + * Transfer some assets from the local chain to the destination chain through their local, + * destination or remote reserve. * * `assets` must have same reserve location and may not be teleportable to `dest`. - * - * - `assets` have local reserve: transfer assets to sovereign account of destination chain and forward a - * notification XCM to `dest` to mint and deposit reserve-based assets to `beneficiary`. - * - `assets` have destination reserve: burn local assets and forward a notification to `dest` chain to withdraw the - * reserve assets from this chain's sovereign account and deposit them to `beneficiary`. - * - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move reserves from this - * chain's SA to `dest` chain's SA, and forward another XCM to `dest` to mint and deposit reserve-based assets - * to `beneficiary`. - * - * Fee payment on the destination side is made from the asset in the `assets` vector of index `fee_asset_item`, up - * to enough to pay for `weight_limit` of weight. If more weight is needed than `weight_limit`, then the operation - * will fail and the sent assets may be at risk. + * - `assets` have local reserve: transfer assets to sovereign account of destination + * chain and forward a notification XCM to `dest` to mint and deposit reserve-based + * assets to `beneficiary`. + * - `assets` have destination reserve: burn local assets and forward a notification to + * `dest` chain to withdraw the reserve assets from this chain's sovereign account and + * deposit them to `beneficiary`. + * - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move + * reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` + * to mint and deposit reserve-based assets to `beneficiary`. + * + * Fee payment on the destination side is made from the asset in the `assets` vector of + * index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight + * is needed than `weight_limit`, then the operation will fail and the sent assets may be + * at risk. * * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. - * - `dest`: Destination context for the assets. Will typically be `[Parent, Parachain(..)]` to send from parachain - * to parachain, or `[Parachain(..)]` to send from relay to parachain. - * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will generally be an - * `AccountId32` value. - * - `assets`: The assets to be withdrawn. This should include the assets used to pay the fee on the `dest` (and - * possibly reserve) chains. - * - `fee_asset_item`: The index into `assets` of the item which should be used to pay fees. + * - `dest`: Destination context for the assets. Will typically be `[Parent, + * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from + * relay to parachain. + * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will + * generally be an `AccountId32` value. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` (and possibly reserve) chains. + * - `fee_asset_item`: The index into `assets` of the item which should be used to pay + * fees. * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. - */ + **/ limitedReserveTransferAssets: AugmentedSubmittable< ( dest: XcmVersionedLocation | { V2: any } | { V3: any } | { V4: any } | string | Uint8Array, @@ -2343,19 +2460,23 @@ declare module "@polkadot/api-base/types/submittable" { /** * Teleport some assets from the local chain to some destination chain. * - * Fee payment on the destination side is made from the asset in the `assets` vector of index `fee_asset_item`, up - * to enough to pay for `weight_limit` of weight. If more weight is needed than `weight_limit`, then the operation - * will fail and the sent assets may be at risk. + * Fee payment on the destination side is made from the asset in the `assets` vector of + * index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight + * is needed than `weight_limit`, then the operation will fail and the sent assets may be + * at risk. * * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. - * - `dest`: Destination context for the assets. Will typically be `[Parent, Parachain(..)]` to send from parachain - * to parachain, or `[Parachain(..)]` to send from relay to parachain. - * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will generally be an - * `AccountId32` value. - * - `assets`: The assets to be withdrawn. This should include the assets used to pay the fee on the `dest` chain. - * - `fee_asset_item`: The index into `assets` of the item which should be used to pay fees. + * - `dest`: Destination context for the assets. Will typically be `[Parent, + * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from + * relay to parachain. + * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will + * generally be an `AccountId32` value. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` chain. + * - `fee_asset_item`: The index into `assets` of the item which should be used to pay + * fees. * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. - */ + **/ limitedTeleportAssets: AugmentedSubmittable< ( dest: XcmVersionedLocation | { V2: any } | { V3: any } | { V4: any } | string | Uint8Array, @@ -2367,33 +2488,37 @@ declare module "@polkadot/api-base/types/submittable" { [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32, XcmV3WeightLimit] >; /** - * Transfer some assets from the local chain to the destination chain through their local, destination or remote - * reserve. + * Transfer some assets from the local chain to the destination chain through their local, + * destination or remote reserve. * * `assets` must have same reserve location and may not be teleportable to `dest`. - * - * - `assets` have local reserve: transfer assets to sovereign account of destination chain and forward a - * notification XCM to `dest` to mint and deposit reserve-based assets to `beneficiary`. - * - `assets` have destination reserve: burn local assets and forward a notification to `dest` chain to withdraw the - * reserve assets from this chain's sovereign account and deposit them to `beneficiary`. - * - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move reserves from this - * chain's SA to `dest` chain's SA, and forward another XCM to `dest` to mint and deposit reserve-based assets - * to `beneficiary`. + * - `assets` have local reserve: transfer assets to sovereign account of destination + * chain and forward a notification XCM to `dest` to mint and deposit reserve-based + * assets to `beneficiary`. + * - `assets` have destination reserve: burn local assets and forward a notification to + * `dest` chain to withdraw the reserve assets from this chain's sovereign account and + * deposit them to `beneficiary`. + * - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move + * reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` + * to mint and deposit reserve-based assets to `beneficiary`. * * **This function is deprecated: Use `limited_reserve_transfer_assets` instead.** * - * Fee payment on the destination side is made from the asset in the `assets` vector of index `fee_asset_item`. - * The weight limit for fees is not provided and thus is unlimited, with all fees taken as needed from the asset. + * Fee payment on the destination side is made from the asset in the `assets` vector of + * index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited, + * with all fees taken as needed from the asset. * * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. - * - `dest`: Destination context for the assets. Will typically be `[Parent, Parachain(..)]` to send from parachain - * to parachain, or `[Parachain(..)]` to send from relay to parachain. - * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will generally be an - * `AccountId32` value. - * - `assets`: The assets to be withdrawn. This should include the assets used to pay the fee on the `dest` (and - * possibly reserve) chains. - * - `fee_asset_item`: The index into `assets` of the item which should be used to pay fees. - */ + * - `dest`: Destination context for the assets. Will typically be `[Parent, + * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from + * relay to parachain. + * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will + * generally be an `AccountId32` value. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` (and possibly reserve) chains. + * - `fee_asset_item`: The index into `assets` of the item which should be used to pay + * fees. + **/ reserveTransferAssets: AugmentedSubmittable< ( dest: XcmVersionedLocation | { V2: any } | { V3: any } | { V4: any } | string | Uint8Array, @@ -2415,17 +2540,21 @@ declare module "@polkadot/api-base/types/submittable" { * * **This function is deprecated: Use `limited_teleport_assets` instead.** * - * Fee payment on the destination side is made from the asset in the `assets` vector of index `fee_asset_item`. - * The weight limit for fees is not provided and thus is unlimited, with all fees taken as needed from the asset. + * Fee payment on the destination side is made from the asset in the `assets` vector of + * index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited, + * with all fees taken as needed from the asset. * * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. - * - `dest`: Destination context for the assets. Will typically be `[Parent, Parachain(..)]` to send from parachain - * to parachain, or `[Parachain(..)]` to send from relay to parachain. - * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will generally be an - * `AccountId32` value. - * - `assets`: The assets to be withdrawn. This should include the assets used to pay the fee on the `dest` chain. - * - `fee_asset_item`: The index into `assets` of the item which should be used to pay fees. - */ + * - `dest`: Destination context for the assets. Will typically be `[Parent, + * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from + * relay to parachain. + * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will + * generally be an `AccountId32` value. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` chain. + * - `fee_asset_item`: The index into `assets` of the item which should be used to pay + * fees. + **/ teleportAssets: AugmentedSubmittable< ( dest: XcmVersionedLocation | { V2: any } | { V3: any } | { V4: any } | string | Uint8Array, @@ -2436,35 +2565,40 @@ declare module "@polkadot/api-base/types/submittable" { [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32] >; /** - * Transfer some assets from the local chain to the destination chain through their local, destination or remote - * reserve, or through teleports. - * - * Fee payment on the destination side is made from the asset in the `assets` vector of index `fee_asset_item` - * (hence referred to as `fees`), up to enough to pay for `weight_limit` of weight. If more weight is needed than - * `weight_limit`, then the operation will fail and the sent assets may be at risk. - * - * `assets` (excluding `fees`) must have same reserve location or otherwise be teleportable to `dest`, no - * limitations imposed on `fees`. + * Transfer some assets from the local chain to the destination chain through their local, + * destination or remote reserve, or through teleports. + * + * Fee payment on the destination side is made from the asset in the `assets` vector of + * index `fee_asset_item` (hence referred to as `fees`), up to enough to pay for + * `weight_limit` of weight. If more weight is needed than `weight_limit`, then the + * operation will fail and the sent assets may be at risk. + * + * `assets` (excluding `fees`) must have same reserve location or otherwise be teleportable + * to `dest`, no limitations imposed on `fees`. + * - for local reserve: transfer assets to sovereign account of destination chain and + * forward a notification XCM to `dest` to mint and deposit reserve-based assets to + * `beneficiary`. + * - for destination reserve: burn local assets and forward a notification to `dest` chain + * to withdraw the reserve assets from this chain's sovereign account and deposit them + * to `beneficiary`. + * - for remote reserve: burn local assets, forward XCM to reserve chain to move reserves + * from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` to mint + * and deposit reserve-based assets to `beneficiary`. + * - for teleports: burn local assets and forward XCM to `dest` chain to mint/teleport + * assets and deposit them to `beneficiary`. * - * - For local reserve: transfer assets to sovereign account of destination chain and forward a notification XCM to - * `dest` to mint and deposit reserve-based assets to `beneficiary`. - * - For destination reserve: burn local assets and forward a notification to `dest` chain to withdraw the reserve - * assets from this chain's sovereign account and deposit them to `beneficiary`. - * - For remote reserve: burn local assets, forward XCM to reserve chain to move reserves from this chain's SA to - * `dest` chain's SA, and forward another XCM to `dest` to mint and deposit reserve-based assets to - * `beneficiary`. - * - For teleports: burn local assets and forward XCM to `dest` chain to mint/teleport assets and deposit them to - * `beneficiary`. * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. - * - `dest`: Destination context for the assets. Will typically be `X2(Parent, Parachain(..))` to send from - * parachain to parachain, or `X1(Parachain(..))` to send from relay to parachain. - * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will generally be an - * `AccountId32` value. - * - `assets`: The assets to be withdrawn. This should include the assets used to pay the fee on the `dest` (and - * possibly reserve) chains. - * - `fee_asset_item`: The index into `assets` of the item which should be used to pay fees. + * - `dest`: Destination context for the assets. Will typically be `X2(Parent, + * Parachain(..))` to send from parachain to parachain, or `X1(Parachain(..))` to send + * from relay to parachain. + * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will + * generally be an `AccountId32` value. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` (and possibly reserve) chains. + * - `fee_asset_item`: The index into `assets` of the item which should be used to pay + * fees. * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. - */ + **/ transferAssets: AugmentedSubmittable< ( dest: XcmVersionedLocation | { V2: any } | { V3: any } | { V4: any } | string | Uint8Array, @@ -2476,48 +2610,55 @@ declare module "@polkadot/api-base/types/submittable" { [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32, XcmV3WeightLimit] >; /** - * Transfer assets from the local chain to the destination chain using explicit transfer types for assets and - * fees. - * - * `assets` must have same reserve location or may be teleportable to `dest`. Caller must provide the - * `assets_transfer_type` to be used for `assets`: - * - * - `TransferType::LocalReserve`: transfer assets to sovereign account of destination chain and forward a - * notification XCM to `dest` to mint and deposit reserve-based assets to `beneficiary`. - * - `TransferType::DestinationReserve`: burn local assets and forward a notification to `dest` chain to withdraw - * the reserve assets from this chain's sovereign account and deposit them to `beneficiary`. - * - `TransferType::RemoteReserve(reserve)`: burn local assets, forward XCM to `reserve` chain to move reserves from - * this chain's SA to `dest` chain's SA, and forward another XCM to `dest` to mint and deposit reserve-based - * assets to `beneficiary`. Typically the remote `reserve` is Asset Hub. - * - `TransferType::Teleport`: burn local assets and forward XCM to `dest` chain to mint/teleport assets and deposit - * them to `beneficiary`. - * - * On the destination chain, as well as any intermediary hops, `BuyExecution` is used to buy execution using - * transferred `assets` identified by `remote_fees_id`. Make sure enough of the specified `remote_fees_id` asset - * is included in the given list of `assets`. `remote_fees_id` should be enough to pay for `weight_limit`. If more - * weight is needed than `weight_limit`, then the operation will fail and the sent assets may be at risk. - * - * `remote_fees_id` may use different transfer type than rest of `assets` and can be specified through - * `fees_transfer_type`. - * - * The caller needs to specify what should happen to the transferred assets once they reach the `dest` chain. This - * is done through the `custom_xcm_on_dest` parameter, which contains the instructions to execute on `dest` as a - * final step. This is usually as simple as: `Xcm(vec![DepositAsset { assets: Wild(AllCounted(assets.len())), - * beneficiary }])`, but could be something more exotic like sending the `assets` even further. + * Transfer assets from the local chain to the destination chain using explicit transfer + * types for assets and fees. + * + * `assets` must have same reserve location or may be teleportable to `dest`. Caller must + * provide the `assets_transfer_type` to be used for `assets`: + * - `TransferType::LocalReserve`: transfer assets to sovereign account of destination + * chain and forward a notification XCM to `dest` to mint and deposit reserve-based + * assets to `beneficiary`. + * - `TransferType::DestinationReserve`: burn local assets and forward a notification to + * `dest` chain to withdraw the reserve assets from this chain's sovereign account and + * deposit them to `beneficiary`. + * - `TransferType::RemoteReserve(reserve)`: burn local assets, forward XCM to `reserve` + * chain to move reserves from this chain's SA to `dest` chain's SA, and forward another + * XCM to `dest` to mint and deposit reserve-based assets to `beneficiary`. Typically + * the remote `reserve` is Asset Hub. + * - `TransferType::Teleport`: burn local assets and forward XCM to `dest` chain to + * mint/teleport assets and deposit them to `beneficiary`. + * + * On the destination chain, as well as any intermediary hops, `BuyExecution` is used to + * buy execution using transferred `assets` identified by `remote_fees_id`. + * Make sure enough of the specified `remote_fees_id` asset is included in the given list + * of `assets`. `remote_fees_id` should be enough to pay for `weight_limit`. If more weight + * is needed than `weight_limit`, then the operation will fail and the sent assets may be + * at risk. + * + * `remote_fees_id` may use different transfer type than rest of `assets` and can be + * specified through `fees_transfer_type`. + * + * The caller needs to specify what should happen to the transferred assets once they reach + * the `dest` chain. This is done through the `custom_xcm_on_dest` parameter, which + * contains the instructions to execute on `dest` as a final step. + * This is usually as simple as: + * `Xcm(vec![DepositAsset { assets: Wild(AllCounted(assets.len())), beneficiary }])`, + * but could be something more exotic like sending the `assets` even further. * * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. - * - `dest`: Destination context for the assets. Will typically be `[Parent, Parachain(..)]` to send from parachain - * to parachain, or `[Parachain(..)]` to send from relay to parachain, or `(parents: 2, (GlobalConsensus(..), - * ..))` to send from parachain across a bridge to another ecosystem destination. - * - `assets`: The assets to be withdrawn. This should include the assets used to pay the fee on the `dest` (and - * possibly reserve) chains. + * - `dest`: Destination context for the assets. Will typically be `[Parent, + * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from + * relay to parachain, or `(parents: 2, (GlobalConsensus(..), ..))` to send from + * parachain across a bridge to another ecosystem destination. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` (and possibly reserve) chains. * - `assets_transfer_type`: The XCM `TransferType` used to transfer the `assets`. * - `remote_fees_id`: One of the included `assets` to be used to pay fees. * - `fees_transfer_type`: The XCM `TransferType` used to transfer the `fees` assets. - * - `custom_xcm_on_dest`: The XCM to be executed on `dest` chain as the last step of the transfer, which also - * determines what happens to the assets on the destination chain. + * - `custom_xcm_on_dest`: The XCM to be executed on `dest` chain as the last step of the + * transfer, which also determines what happens to the assets on the destination chain. * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. - */ + **/ transferAssetsUsingTypeAndThen: AugmentedSubmittable< ( dest: XcmVersionedLocation | { V2: any } | { V3: any } | { V4: any } | string | Uint8Array, @@ -2552,7 +2693,9 @@ declare module "@polkadot/api-base/types/submittable" { XcmV3WeightLimit, ] >; - /** Generic tx */ + /** + * Generic tx + **/ [key: string]: SubmittableExtrinsicFunction; }; pooledStaking: { @@ -2564,7 +2707,9 @@ declare module "@polkadot/api-base/types/submittable" { ) => SubmittableExtrinsic, [Vec>] >; - /** Execute pending operations can incur in claim manual rewards per operation, we simply add the worst case */ + /** + * Execute pending operations can incur in claim manual rewards per operation, we simply add the worst case + **/ executePendingOperations: AugmentedSubmittable< ( operations: @@ -2601,7 +2746,9 @@ declare module "@polkadot/api-base/types/submittable" { ) => SubmittableExtrinsic, [AccountId32, PalletPooledStakingTargetPool, u128] >; - /** Request undelegate can incur in either claim manual rewards or hold rebalances, we simply add the worst case */ + /** + * Request undelegate can incur in either claim manual rewards or hold rebalances, we simply add the worst case + **/ requestUndelegate: AugmentedSubmittable< ( candidate: AccountId32 | string | Uint8Array, @@ -2627,7 +2774,9 @@ declare module "@polkadot/api-base/types/submittable" { (candidates: Vec | (AccountId32 | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec] >; - /** Generic tx */ + /** + * Generic tx + **/ [key: string]: SubmittableExtrinsicFunction; }; proxy: { @@ -2637,11 +2786,11 @@ declare module "@polkadot/api-base/types/submittable" { * The dispatch origin for this call must be _Signed_. * * Parameters: - * * - `proxy`: The account that the `caller` would like to make a proxy. * - `proxy_type`: The permissions allowed for this proxy account. - * - `delay`: The announcement period required of the initial proxy. Will generally be zero. - */ + * - `delay`: The announcement period required of the initial proxy. Will generally be + * zero. + **/ addProxy: AugmentedSubmittable< ( delegate: @@ -2673,21 +2822,20 @@ declare module "@polkadot/api-base/types/submittable" { /** * Publish the hash of a proxy-call that will be made in the future. * - * This must be called some number of blocks before the corresponding `proxy` is attempted if the delay associated - * with the proxy relationship is greater than zero. + * This must be called some number of blocks before the corresponding `proxy` is attempted + * if the delay associated with the proxy relationship is greater than zero. * * No more than `MaxPending` announcements may be made at any one time. * - * This will take a deposit of `AnnouncementDepositFactor` as well as `AnnouncementDepositBase` if there are no - * other pending announcements. + * This will take a deposit of `AnnouncementDepositFactor` as well as + * `AnnouncementDepositBase` if there are no other pending announcements. * * The dispatch origin for this call must be _Signed_ and a proxy of `real`. * * Parameters: - * * - `real`: The account that the proxy will make a call on behalf of. * - `call_hash`: The hash of the call to be made by the `real` account. - */ + **/ announce: AugmentedSubmittable< ( real: @@ -2704,22 +2852,25 @@ declare module "@polkadot/api-base/types/submittable" { [MultiAddress, H256] >; /** - * Spawn a fresh new account that is guaranteed to be otherwise inaccessible, and initialize it with a proxy of - * `proxy_type` for `origin` sender. + * Spawn a fresh new account that is guaranteed to be otherwise inaccessible, and + * initialize it with a proxy of `proxy_type` for `origin` sender. * * Requires a `Signed` origin. * - * - `proxy_type`: The type of the proxy that the sender will be registered as over the new account. This will - * almost always be the most permissive `ProxyType` possible to allow for maximum flexibility. - * - `index`: A disambiguation index, in case this is called multiple times in the same transaction (e.g. with - * `utility::batch`). Unless you're using `batch` you probably just want to use `0`. - * - `delay`: The announcement period required of the initial proxy. Will generally be zero. + * - `proxy_type`: The type of the proxy that the sender will be registered as over the + * new account. This will almost always be the most permissive `ProxyType` possible to + * allow for maximum flexibility. + * - `index`: A disambiguation index, in case this is called multiple times in the same + * transaction (e.g. with `utility::batch`). Unless you're using `batch` you probably just + * want to use `0`. + * - `delay`: The announcement period required of the initial proxy. Will generally be + * zero. * - * Fails with `Duplicate` if this has already been called in this transaction, from the same sender, with the same - * parameters. + * Fails with `Duplicate` if this has already been called in this transaction, from the + * same sender, with the same parameters. * * Fails if there are insufficient funds to pay for deposit. - */ + **/ createPure: AugmentedSubmittable< ( proxyType: @@ -2743,10 +2894,11 @@ declare module "@polkadot/api-base/types/submittable" { /** * Removes a previously spawned pure proxy. * - * WARNING: **All access to this account will be lost.** Any funds held in it will be inaccessible. + * WARNING: **All access to this account will be lost.** Any funds held in it will be + * inaccessible. * - * Requires a `Signed` origin, and the sender account must have been created by a call to `pure` with - * corresponding parameters. + * Requires a `Signed` origin, and the sender account must have been created by a call to + * `pure` with corresponding parameters. * * - `spawner`: The account that originally called `pure` to create this account. * - `index`: The disambiguation index originally passed to `pure`. Probably `0`. @@ -2754,9 +2906,9 @@ declare module "@polkadot/api-base/types/submittable" { * - `height`: The height of the chain when the call to `pure` was processed. * - `ext_index`: The extrinsic index in which the call to `pure` was processed. * - * Fails with `NoPermission` in case the caller is not a previously created pure account whose `pure` call has - * corresponding parameters. - */ + * Fails with `NoPermission` in case the caller is not a previously created pure + * account whose `pure` call has corresponding parameters. + **/ killPure: AugmentedSubmittable< ( spawner: @@ -2788,16 +2940,16 @@ declare module "@polkadot/api-base/types/submittable" { [MultiAddress, DanceboxRuntimeProxyType, u16, Compact, Compact] >; /** - * Dispatch the given `call` from an account that the sender is authorised for through `add_proxy`. + * Dispatch the given `call` from an account that the sender is authorised for through + * `add_proxy`. * * The dispatch origin for this call must be _Signed_. * * Parameters: - * * - `real`: The account that the proxy will make a call on behalf of. * - `force_proxy_type`: Specify the exact proxy type to be used and checked for this call. * - `call`: The call to be made by the `real` account. - */ + **/ proxy: AugmentedSubmittable< ( real: @@ -2829,18 +2981,18 @@ declare module "@polkadot/api-base/types/submittable" { [MultiAddress, Option, Call] >; /** - * Dispatch the given `call` from an account that the sender is authorized for through `add_proxy`. + * Dispatch the given `call` from an account that the sender is authorized for through + * `add_proxy`. * * Removes any corresponding announcement(s). * * The dispatch origin for this call must be _Signed_. * * Parameters: - * * - `real`: The account that the proxy will make a call on behalf of. * - `force_proxy_type`: Specify the exact proxy type to be used and checked for this call. * - `call`: The call to be made by the `real` account. - */ + **/ proxyAnnounced: AugmentedSubmittable< ( delegate: @@ -2883,16 +3035,15 @@ declare module "@polkadot/api-base/types/submittable" { /** * Remove the given announcement of a delegate. * - * May be called by a target (proxied) account to remove a call that one of their delegates (`delegate`) has - * announced they want to execute. The deposit is returned. + * May be called by a target (proxied) account to remove a call that one of their delegates + * (`delegate`) has announced they want to execute. The deposit is returned. * * The dispatch origin for this call must be _Signed_. * * Parameters: - * * - `delegate`: The account that previously announced the call. * - `call_hash`: The hash of the call to be made. - */ + **/ rejectAnnouncement: AugmentedSubmittable< ( delegate: @@ -2911,15 +3062,15 @@ declare module "@polkadot/api-base/types/submittable" { /** * Remove a given announcement. * - * May be called by a proxy account to remove a call they previously announced and return the deposit. + * May be called by a proxy account to remove a call they previously announced and return + * the deposit. * * The dispatch origin for this call must be _Signed_. * * Parameters: - * * - `real`: The account that the proxy will make a call on behalf of. * - `call_hash`: The hash of the call to be made by the `real` account. - */ + **/ removeAnnouncement: AugmentedSubmittable< ( real: @@ -2940,9 +3091,9 @@ declare module "@polkadot/api-base/types/submittable" { * * The dispatch origin for this call must be _Signed_. * - * WARNING: This may be called on accounts created by `pure`, however if done, then the unreserved fees will be - * inaccessible. **All access to this account will be lost.** - */ + * WARNING: This may be called on accounts created by `pure`, however if done, then + * the unreserved fees will be inaccessible. **All access to this account will be lost.** + **/ removeProxies: AugmentedSubmittable<() => SubmittableExtrinsic, []>; /** * Unregister a proxy account for the sender. @@ -2950,10 +3101,9 @@ declare module "@polkadot/api-base/types/submittable" { * The dispatch origin for this call must be _Signed_. * * Parameters: - * * - `proxy`: The account that the `caller` would like to remove as a proxy. * - `proxy_type`: The permissions currently enabled for the removed proxy account. - */ + **/ removeProxy: AugmentedSubmittable< ( delegate: @@ -2982,24 +3132,26 @@ declare module "@polkadot/api-base/types/submittable" { ) => SubmittableExtrinsic, [MultiAddress, DanceboxRuntimeProxyType, u32] >; - /** Generic tx */ + /** + * Generic tx + **/ [key: string]: SubmittableExtrinsicFunction; }; registrar: { /** * Deregister container-chain. * - * If a container-chain is registered but not marked as valid_for_collating, this will remove it from - * `PendingVerification` as well. - */ + * If a container-chain is registered but not marked as valid_for_collating, this will remove it + * from `PendingVerification` as well. + **/ deregister: AugmentedSubmittable< (paraId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32] >; /** - * Deregister a parachain that no longer exists in the relay chain. The origin of this extrinsic will be rewarded - * with the parachain deposit. - */ + * Deregister a parachain that no longer exists in the relay chain. The origin of this + * extrinsic will be rewarded with the parachain deposit. + **/ deregisterWithRelayProof: AugmentedSubmittable< ( paraId: u32 | AnyNumber | Uint8Array, @@ -3008,20 +3160,24 @@ declare module "@polkadot/api-base/types/submittable" { ) => SubmittableExtrinsic, [u32, u32, SpTrieStorageProof] >; - /** Mark container-chain valid for collating */ + /** + * Mark container-chain valid for collating + **/ markValidForCollating: AugmentedSubmittable< (paraId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32] >; /** - * Pause container-chain from collating. Does not remove its boot nodes nor its genesis config. Only - * container-chains that have been marked as valid_for_collating can be paused. - */ + * Pause container-chain from collating. Does not remove its boot nodes nor its genesis config. + * Only container-chains that have been marked as valid_for_collating can be paused. + **/ pauseContainerChain: AugmentedSubmittable< (paraId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32] >; - /** Register container-chain */ + /** + * Register container-chain + **/ register: AugmentedSubmittable< ( paraId: u32 | AnyNumber | Uint8Array, @@ -3034,7 +3190,9 @@ declare module "@polkadot/api-base/types/submittable" { ) => SubmittableExtrinsic, [u32, DpContainerChainGenesisDataContainerChainGenesisData, Option] >; - /** Register parathread */ + /** + * Register parathread + **/ registerParathread: AugmentedSubmittable< ( paraId: u32 | AnyNumber | Uint8Array, @@ -3048,7 +3206,9 @@ declare module "@polkadot/api-base/types/submittable" { ) => SubmittableExtrinsic, [u32, TpTraitsSlotFrequency, DpContainerChainGenesisDataContainerChainGenesisData, Option] >; - /** Register parachain or parathread */ + /** + * Register parachain or parathread + **/ registerWithRelayProof: AugmentedSubmittable< ( paraId: u32 | AnyNumber | Uint8Array, @@ -3092,7 +3252,9 @@ declare module "@polkadot/api-base/types/submittable" { ) => SubmittableExtrinsic, [u32, AccountId32] >; - /** Change parathread params */ + /** + * Change parathread params + **/ setParathreadParams: AugmentedSubmittable< ( paraId: u32 | AnyNumber | Uint8Array, @@ -3100,22 +3262,31 @@ declare module "@polkadot/api-base/types/submittable" { ) => SubmittableExtrinsic, [u32, TpTraitsSlotFrequency] >; - /** Unpause container-chain. Only container-chains that have been paused can be unpaused. */ + /** + * Unpause container-chain. + * Only container-chains that have been paused can be unpaused. + **/ unpauseContainerChain: AugmentedSubmittable< (paraId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32] >; - /** Generic tx */ + /** + * Generic tx + **/ [key: string]: SubmittableExtrinsicFunction; }; rootTesting: { - /** A dispatch that will fill the block weight up to the given ratio. */ + /** + * A dispatch that will fill the block weight up to the given ratio. + **/ fillBlock: AugmentedSubmittable< (ratio: Perbill | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Perbill] >; triggerDefensive: AugmentedSubmittable<() => SubmittableExtrinsic, []>; - /** Generic tx */ + /** + * Generic tx + **/ [key: string]: SubmittableExtrinsicFunction; }; servicesPayment: { @@ -3127,9 +3298,9 @@ declare module "@polkadot/api-base/types/submittable" { [u32, u128] >; /** - * Set the number of block production credits for this para_id without paying for them. Can only be called by - * root. - */ + * Set the number of block production credits for this para_id without paying for them. + * Can only be called by root. + **/ setBlockProductionCredits: AugmentedSubmittable< ( paraId: u32 | AnyNumber | Uint8Array, @@ -3138,9 +3309,9 @@ declare module "@polkadot/api-base/types/submittable" { [u32, u32] >; /** - * Set the number of block production credits for this para_id without paying for them. Can only be called by - * root. - */ + * Set the number of block production credits for this para_id without paying for them. + * Can only be called by root. + **/ setCollatorAssignmentCredits: AugmentedSubmittable< ( paraId: u32 | AnyNumber | Uint8Array, @@ -3148,7 +3319,10 @@ declare module "@polkadot/api-base/types/submittable" { ) => SubmittableExtrinsic, [u32, u32] >; - /** Helper to set and cleanup the `GivenFreeCredits` storage. Can only be called by root. */ + /** + * Helper to set and cleanup the `GivenFreeCredits` storage. + * Can only be called by root. + **/ setGivenFreeCredits: AugmentedSubmittable< ( paraId: u32 | AnyNumber | Uint8Array, @@ -3156,7 +3330,9 @@ declare module "@polkadot/api-base/types/submittable" { ) => SubmittableExtrinsic, [u32, bool] >; - /** Max core price for parathread in relay chain currency */ + /** + * Max core price for parathread in relay chain currency + **/ setMaxCorePrice: AugmentedSubmittable< ( paraId: u32 | AnyNumber | Uint8Array, @@ -3165,9 +3341,9 @@ declare module "@polkadot/api-base/types/submittable" { [u32, Option] >; /** - * Set the maximum tip a container chain is willing to pay to be assigned a collator on congestion. Can only be - * called by container chain manager. - */ + * Set the maximum tip a container chain is willing to pay to be assigned a collator on congestion. + * Can only be called by container chain manager. + **/ setMaxTip: AugmentedSubmittable< ( paraId: u32 | AnyNumber | Uint8Array, @@ -3175,7 +3351,9 @@ declare module "@polkadot/api-base/types/submittable" { ) => SubmittableExtrinsic, [u32, Option] >; - /** Call index to set the refund address for non-spent tokens */ + /** + * Call index to set the refund address for non-spent tokens + **/ setRefundAddress: AugmentedSubmittable< ( paraId: u32 | AnyNumber | Uint8Array, @@ -3183,7 +3361,9 @@ declare module "@polkadot/api-base/types/submittable" { ) => SubmittableExtrinsic, [u32, Option] >; - /** Generic tx */ + /** + * Generic tx + **/ [key: string]: SubmittableExtrinsicFunction; }; session: { @@ -3192,26 +3372,27 @@ declare module "@polkadot/api-base/types/submittable" { * * This doesn't take effect until the next session. * - * The dispatch origin of this function must be Signed and the account must be either be convertible to a - * validator ID using the chain's typical addressing system (this usually means being a controller account) or - * directly convertible into a validator ID (which usually means being a stash account). + * The dispatch origin of this function must be Signed and the account must be either be + * convertible to a validator ID using the chain's typical addressing system (this usually + * means being a controller account) or directly convertible into a validator ID (which + * usually means being a stash account). * * ## Complexity - * - * - `O(1)` in number of key types. Actual cost depends on the number of length of `T::Keys::key_ids()` which is - * fixed. - */ + * - `O(1)` in number of key types. Actual cost depends on the number of length of + * `T::Keys::key_ids()` which is fixed. + **/ purgeKeys: AugmentedSubmittable<() => SubmittableExtrinsic, []>; /** - * Sets the session key(s) of the function caller to `keys`. Allows an account to set its session key prior to - * becoming a validator. This doesn't take effect until the next session. + * Sets the session key(s) of the function caller to `keys`. + * Allows an account to set its session key prior to becoming a validator. + * This doesn't take effect until the next session. * * The dispatch origin of this function must be signed. * * ## Complexity - * - * - `O(1)`. Actual cost depends on the number of length of `T::Keys::key_ids()` which is fixed. - */ + * - `O(1)`. Actual cost depends on the number of length of `T::Keys::key_ids()` which is + * fixed. + **/ setKeys: AugmentedSubmittable< ( keys: DanceboxRuntimeSessionKeys | { nimbus?: any } | string | Uint8Array, @@ -3219,14 +3400,17 @@ declare module "@polkadot/api-base/types/submittable" { ) => SubmittableExtrinsic, [DanceboxRuntimeSessionKeys, Bytes] >; - /** Generic tx */ + /** + * Generic tx + **/ [key: string]: SubmittableExtrinsicFunction; }; streamPayment: { /** - * Accepts a change requested before by the other party. Takes a nonce to prevent frontrunning attacks. If the - * target made a request, the source is able to change their deposit. - */ + * Accepts a change requested before by the other party. Takes a nonce to prevent + * frontrunning attacks. If the target made a request, the source is able to change their + * deposit. + **/ acceptRequestedChange: AugmentedSubmittable< ( streamId: u64 | AnyNumber | Uint8Array, @@ -3248,19 +3432,20 @@ declare module "@polkadot/api-base/types/submittable" { [u64] >; /** - * Close a given stream in which the origin is involved. It performs the pending payment before closing the - * stream. - */ + * Close a given stream in which the origin is involved. It performs the pending payment + * before closing the stream. + **/ closeStream: AugmentedSubmittable< (streamId: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u64] >; /** - * Allows immediately changing the deposit for a stream, which is simpler than calling `request_change` with the - * proper parameters. The call takes an asset id to ensure it has not changed (by an accepted request) before the - * call is included in a block, in which case the unit is no longer the same and quantities will not have the same - * scale/value. - */ + * Allows immediately changing the deposit for a stream, which is simpler than + * calling `request_change` with the proper parameters. + * The call takes an asset id to ensure it has not changed (by an accepted request) before + * the call is included in a block, in which case the unit is no longer the same and quantities + * will not have the same scale/value. + **/ immediatelyChangeDeposit: AugmentedSubmittable< ( streamId: u64 | AnyNumber | Uint8Array, @@ -3276,9 +3461,9 @@ declare module "@polkadot/api-base/types/submittable" { [u64, DanceboxRuntimeStreamPaymentAssetId, PalletStreamPaymentDepositChange] >; /** - * Create a payment stream from the origin to the target with provided config and initial deposit (in the asset - * defined in the config). - */ + * Create a payment stream from the origin to the target with provided config + * and initial deposit (in the asset defined in the config). + **/ openStream: AugmentedSubmittable< ( target: AccountId32 | string | Uint8Array, @@ -3291,7 +3476,9 @@ declare module "@polkadot/api-base/types/submittable" { ) => SubmittableExtrinsic, [AccountId32, PalletStreamPaymentStreamConfig, u128] >; - /** Perform the pending payment of a stream. Anyone can call this. */ + /** + * Perform the pending payment of a stream. Anyone can call this. + **/ performPayment: AugmentedSubmittable< (streamId: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u64] @@ -3299,14 +3486,14 @@ declare module "@polkadot/api-base/types/submittable" { /** * Requests a change to a stream config or deposit. * - * If the new config don't change the time unit and asset id, the change will be applied immediately if it is at - * the desadvantage of the caller. Otherwise, the request is stored in the stream and will have to be approved by - * the other party. + * If the new config don't change the time unit and asset id, the change will be applied + * immediately if it is at the desadvantage of the caller. Otherwise, the request is stored + * in the stream and will have to be approved by the other party. * - * This call accepts a deposit change, which can only be provided by the source of the stream. An absolute change - * is required when changing asset id, as the current deposit will be released and a new deposit is required in - * the new asset. - */ + * This call accepts a deposit change, which can only be provided by the source of the + * stream. An absolute change is required when changing asset id, as the current deposit + * will be released and a new deposit is required in the new asset. + **/ requestChange: AugmentedSubmittable< ( streamId: u64 | AnyNumber | Uint8Array, @@ -3338,7 +3525,9 @@ declare module "@polkadot/api-base/types/submittable" { Option, ] >; - /** Generic tx */ + /** + * Generic tx + **/ [key: string]: SubmittableExtrinsicFunction; }; sudo: { @@ -3346,9 +3535,12 @@ declare module "@polkadot/api-base/types/submittable" { * Permanently removes the sudo key. * * **This cannot be un-done.** - */ + **/ removeKey: AugmentedSubmittable<() => SubmittableExtrinsic, []>; - /** Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo key. */ + /** + * Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo + * key. + **/ setKey: AugmentedSubmittable< ( updated: @@ -3363,16 +3555,19 @@ declare module "@polkadot/api-base/types/submittable" { ) => SubmittableExtrinsic, [MultiAddress] >; - /** Authenticates the sudo key and dispatches a function call with `Root` origin. */ + /** + * Authenticates the sudo key and dispatches a function call with `Root` origin. + **/ sudo: AugmentedSubmittable< (call: Call | IMethod | string | Uint8Array) => SubmittableExtrinsic, [Call] >; /** - * Authenticates the sudo key and dispatches a function call with `Signed` origin from a given account. + * Authenticates the sudo key and dispatches a function call with `Signed` origin from + * a given account. * * The dispatch origin for this call must be _Signed_. - */ + **/ sudoAs: AugmentedSubmittable< ( who: @@ -3389,11 +3584,12 @@ declare module "@polkadot/api-base/types/submittable" { [MultiAddress, Call] >; /** - * Authenticates the sudo key and dispatches a function call with `Root` origin. This function does not check the - * weight of the call, and instead allows the Sudo user to specify the weight of the call. + * Authenticates the sudo key and dispatches a function call with `Root` origin. + * This function does not check the weight of the call, and instead allows the + * Sudo user to specify the weight of the call. * * The dispatch origin for this call must be _Signed_. - */ + **/ sudoUncheckedWeight: AugmentedSubmittable< ( call: Call | IMethod | string | Uint8Array, @@ -3401,43 +3597,47 @@ declare module "@polkadot/api-base/types/submittable" { ) => SubmittableExtrinsic, [Call, SpWeightsWeightV2Weight] >; - /** Generic tx */ + /** + * Generic tx + **/ [key: string]: SubmittableExtrinsicFunction; }; system: { /** * Provide the preimage (runtime binary) `code` for an upgrade that has been authorized. * - * If the authorization required a version check, this call will ensure the spec name remains unchanged and that - * the spec version has increased. + * If the authorization required a version check, this call will ensure the spec name + * remains unchanged and that the spec version has increased. * - * Depending on the runtime's `OnSetCode` configuration, this function may directly apply the new `code` in the - * same block or attempt to schedule the upgrade. + * Depending on the runtime's `OnSetCode` configuration, this function may directly apply + * the new `code` in the same block or attempt to schedule the upgrade. * * All origins are allowed. - */ + **/ applyAuthorizedUpgrade: AugmentedSubmittable< (code: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes] >; /** - * Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied later. + * Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied + * later. * * This call requires Root origin. - */ + **/ authorizeUpgrade: AugmentedSubmittable< (codeHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256] >; /** - * Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied later. + * Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied + * later. * - * WARNING: This authorizes an upgrade that will take place without any safety checks, for example that the spec - * name remains the same and that the version number increases. Not recommended for normal use. Use - * `authorize_upgrade` instead. + * WARNING: This authorizes an upgrade that will take place without any safety checks, for + * example that the spec name remains the same and that the version number increases. Not + * recommended for normal use. Use `authorize_upgrade` instead. * * This call requires Root origin. - */ + **/ authorizeUpgradeWithoutChecks: AugmentedSubmittable< (codeHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256] @@ -3445,9 +3645,9 @@ declare module "@polkadot/api-base/types/submittable" { /** * Kill all storage items with a key that starts with the given prefix. * - * **NOTE:** We rely on the Root origin to provide us the number of subkeys under the prefix we are removing to - * accurately calculate the weight of this function. - */ + * **NOTE:** We rely on the Root origin to provide us the number of subkeys under + * the prefix we are removing to accurately calculate the weight of this function. + **/ killPrefix: AugmentedSubmittable< ( prefix: Bytes | string | Uint8Array, @@ -3455,7 +3655,9 @@ declare module "@polkadot/api-base/types/submittable" { ) => SubmittableExtrinsic, [Bytes, u32] >; - /** Kill some items from storage. */ + /** + * Kill some items from storage. + **/ killStorage: AugmentedSubmittable< (keys: Vec | (Bytes | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec] @@ -3464,17 +3666,21 @@ declare module "@polkadot/api-base/types/submittable" { * Make some on-chain remark. * * Can be executed by every `origin`. - */ + **/ remark: AugmentedSubmittable< (remark: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes] >; - /** Make some on-chain remark and emit event. */ + /** + * Make some on-chain remark and emit event. + **/ remarkWithEvent: AugmentedSubmittable< (remark: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes] >; - /** Set the new runtime code. */ + /** + * Set the new runtime code. + **/ setCode: AugmentedSubmittable< (code: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes] @@ -3482,52 +3688,63 @@ declare module "@polkadot/api-base/types/submittable" { /** * Set the new runtime code without doing any checks of the given `code`. * - * Note that runtime upgrades will not run if this is called with a not-increasing spec version! - */ + * Note that runtime upgrades will not run if this is called with a not-increasing spec + * version! + **/ setCodeWithoutChecks: AugmentedSubmittable< (code: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes] >; - /** Set the number of pages in the WebAssembly environment's heap. */ + /** + * Set the number of pages in the WebAssembly environment's heap. + **/ setHeapPages: AugmentedSubmittable< (pages: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u64] >; - /** Set some items of storage. */ + /** + * Set some items of storage. + **/ setStorage: AugmentedSubmittable< ( items: Vec> | [Bytes | string | Uint8Array, Bytes | string | Uint8Array][] ) => SubmittableExtrinsic, [Vec>] >; - /** Generic tx */ + /** + * Generic tx + **/ [key: string]: SubmittableExtrinsicFunction; }; timestamp: { /** * Set the current time. * - * This call should be invoked exactly once per block. It will panic at the finalization phase, if this call - * hasn't been invoked by that time. + * This call should be invoked exactly once per block. It will panic at the finalization + * phase, if this call hasn't been invoked by that time. * - * The timestamp should be greater than the previous one by the amount specified by [`Config::MinimumPeriod`]. + * The timestamp should be greater than the previous one by the amount specified by + * [`Config::MinimumPeriod`]. * * The dispatch origin for this call must be _None_. * - * This dispatch class is _Mandatory_ to ensure it gets executed in the block. Be aware that changing the - * complexity of this call could result exhausting the resources in a block to execute any other calls. + * This dispatch class is _Mandatory_ to ensure it gets executed in the block. Be aware + * that changing the complexity of this call could result exhausting the resources in a + * block to execute any other calls. * * ## Complexity - * * - `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`) - * - 1 storage read and 1 storage mutation (codec `O(1)` because of `DidUpdate::take` in `on_finalize`) + * - 1 storage read and 1 storage mutation (codec `O(1)` because of `DidUpdate::take` in + * `on_finalize`) * - 1 event handler `on_timestamp_set`. Must be `O(1)`. - */ + **/ set: AugmentedSubmittable< (now: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact] >; - /** Generic tx */ + /** + * Generic tx + **/ [key: string]: SubmittableExtrinsicFunction; }; treasury: { @@ -3540,18 +3757,18 @@ declare module "@polkadot/api-base/types/submittable" { * * ## Details * - * The status check is a prerequisite for retrying a failed payout. If a spend has either succeeded or expired, it - * is removed from the storage by this function. In such instances, transaction fees are refunded. + * The status check is a prerequisite for retrying a failed payout. + * If a spend has either succeeded or expired, it is removed from the storage by this + * function. In such instances, transaction fees are refunded. * * ### Parameters - * * - `index`: The spend index. * * ## Events * - * Emits [`Event::PaymentFailed`] if the spend payout has failed. Emits [`Event::SpendProcessed`] if the spend - * payout has succeed. - */ + * Emits [`Event::PaymentFailed`] if the spend payout has failed. + * Emits [`Event::SpendProcessed`] if the spend payout has succeed. + **/ checkStatus: AugmentedSubmittable< (index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32] @@ -3565,18 +3782,18 @@ declare module "@polkadot/api-base/types/submittable" { * * ## Details * - * Spends must be claimed within some temporal bounds. A spend may be claimed within one [`Config::PayoutPeriod`] - * from the `valid_from` block. In case of a payout failure, the spend status must be updated with the - * `check_status` dispatchable before retrying with the current function. + * Spends must be claimed within some temporal bounds. A spend may be claimed within one + * [`Config::PayoutPeriod`] from the `valid_from` block. + * In case of a payout failure, the spend status must be updated with the `check_status` + * dispatchable before retrying with the current function. * * ### Parameters - * * - `index`: The spend index. * * ## Events * * Emits [`Event::Paid`] if successful. - */ + **/ payout: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; /** * Force a previously approved proposal to be removed from the approval queue. @@ -3590,19 +3807,17 @@ declare module "@polkadot/api-base/types/submittable" { * The original deposit will no longer be returned. * * ### Parameters - * * - `proposal_id`: The index of a proposal * * ### Complexity - * * - O(A) where `A` is the number of approvals * * ### Errors - * - * - [`Error::ProposalNotApproved`]: The `proposal_id` supplied was not found in the approval queue, i.e., the - * proposal has not been approved. This could also mean the proposal does not exist altogether, thus there is no - * way it would have been approved in the first place. - */ + * - [`Error::ProposalNotApproved`]: The `proposal_id` supplied was not found in the + * approval queue, i.e., the proposal has not been approved. This could also mean the + * proposal does not exist altogether, thus there is no way it would have been approved + * in the first place. + **/ removeApproval: AugmentedSubmittable< (proposalId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact] @@ -3612,27 +3827,29 @@ declare module "@polkadot/api-base/types/submittable" { * * ## Dispatch Origin * - * Must be [`Config::SpendOrigin`] with the `Success` value being at least `amount` of `asset_kind` in the native - * asset. The amount of `asset_kind` is converted for assertion using the [`Config::BalanceConverter`]. + * Must be [`Config::SpendOrigin`] with the `Success` value being at least + * `amount` of `asset_kind` in the native asset. The amount of `asset_kind` is converted + * for assertion using the [`Config::BalanceConverter`]. * * ## Details * - * Create an approved spend for transferring a specific `amount` of `asset_kind` to a designated beneficiary. The - * spend must be claimed using the `payout` dispatchable within the [`Config::PayoutPeriod`]. + * Create an approved spend for transferring a specific `amount` of `asset_kind` to a + * designated beneficiary. The spend must be claimed using the `payout` dispatchable within + * the [`Config::PayoutPeriod`]. * * ### Parameters - * * - `asset_kind`: An indicator of the specific asset class to be spent. * - `amount`: The amount to be transferred from the treasury to the `beneficiary`. * - `beneficiary`: The beneficiary of the spend. - * - `valid_from`: The block number from which the spend can be claimed. It can refer to the past if the resulting - * spend has not yet expired according to the [`Config::PayoutPeriod`]. If `None`, the spend can be claimed - * immediately after approval. + * - `valid_from`: The block number from which the spend can be claimed. It can refer to + * the past if the resulting spend has not yet expired according to the + * [`Config::PayoutPeriod`]. If `None`, the spend can be claimed immediately after + * approval. * * ## Events * * Emits [`Event::AssetSpendApproved`] if successful. - */ + **/ spend: AugmentedSubmittable< ( assetKind: Null | null, @@ -3650,18 +3867,17 @@ declare module "@polkadot/api-base/types/submittable" { * Must be [`Config::SpendOrigin`] with the `Success` value being at least `amount`. * * ### Details - * - * NOTE: For record-keeping purposes, the proposer is deemed to be equivalent to the beneficiary. + * NOTE: For record-keeping purposes, the proposer is deemed to be equivalent to the + * beneficiary. * * ### Parameters - * * - `amount`: The amount to be transferred from the treasury to the `beneficiary`. * - `beneficiary`: The destination account for the transfer. * * ## Events * * Emits [`Event::SpendApproved`] if successful. - */ + **/ spendLocal: AugmentedSubmittable< ( amount: Compact | AnyNumber | Uint8Array, @@ -3689,26 +3905,28 @@ declare module "@polkadot/api-base/types/submittable" { * A spend void is only possible if the payout has not been attempted yet. * * ### Parameters - * * - `index`: The spend index. * * ## Events * * Emits [`Event::AssetSpendVoided`] if successful. - */ + **/ voidSpend: AugmentedSubmittable< (index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32] >; - /** Generic tx */ + /** + * Generic tx + **/ [key: string]: SubmittableExtrinsicFunction; }; txPause: { /** * Pause a call. * - * Can only be called by [`Config::PauseOrigin`]. Emits an [`Event::CallPaused`] event on success. - */ + * Can only be called by [`Config::PauseOrigin`]. + * Emits an [`Event::CallPaused`] event on success. + **/ pause: AugmentedSubmittable< ( fullName: ITuple<[Bytes, Bytes]> | [Bytes | string | Uint8Array, Bytes | string | Uint8Array] @@ -3718,32 +3936,36 @@ declare module "@polkadot/api-base/types/submittable" { /** * Un-pause a call. * - * Can only be called by [`Config::UnpauseOrigin`]. Emits an [`Event::CallUnpaused`] event on success. - */ + * Can only be called by [`Config::UnpauseOrigin`]. + * Emits an [`Event::CallUnpaused`] event on success. + **/ unpause: AugmentedSubmittable< ( ident: ITuple<[Bytes, Bytes]> | [Bytes | string | Uint8Array, Bytes | string | Uint8Array] ) => SubmittableExtrinsic, [ITuple<[Bytes, Bytes]>] >; - /** Generic tx */ + /** + * Generic tx + **/ [key: string]: SubmittableExtrinsicFunction; }; utility: { /** * Send a call through an indexed pseudonym of the sender. * - * Filter from origin are passed along. The call will be dispatched with an origin which use the same filter as - * the origin of this call. + * Filter from origin are passed along. The call will be dispatched with an origin which + * use the same filter as the origin of this call. * - * NOTE: If you need to ensure that any account-based filtering is not honored (i.e. because you expect `proxy` to - * have been used prior in the call stack and you do not want the call restrictions to apply to any sub-accounts), - * then use `as_multi_threshold_1` in the Multisig pallet instead. + * NOTE: If you need to ensure that any account-based filtering is not honored (i.e. + * because you expect `proxy` to have been used prior in the call stack and you do not want + * the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1` + * in the Multisig pallet instead. * * NOTE: Prior to version *12, this was called `as_limited_sub`. * * The dispatch origin for this call must be _Signed_. - */ + **/ asDerivative: AugmentedSubmittable< ( index: u16 | AnyNumber | Uint8Array, @@ -3756,41 +3978,40 @@ declare module "@polkadot/api-base/types/submittable" { * * May be called from any origin except `None`. * - * - `calls`: The calls to be dispatched from the same origin. The number of call must not exceed the constant: - * `batched_calls_limit` (available in constant metadata). + * - `calls`: The calls to be dispatched from the same origin. The number of call must not + * exceed the constant: `batched_calls_limit` (available in constant metadata). * - * If origin is root then the calls are dispatched without checking origin filter. (This includes bypassing - * `frame_system::Config::BaseCallFilter`). + * If origin is root then the calls are dispatched without checking origin filter. (This + * includes bypassing `frame_system::Config::BaseCallFilter`). * * ## Complexity - * * - O(C) where C is the number of calls to be batched. * - * This will return `Ok` in all circumstances. To determine the success of the batch, an event is deposited. If a - * call failed and the batch was interrupted, then the `BatchInterrupted` event is deposited, along with the - * number of successful calls made and the error of the failed call. If all were successful, then the - * `BatchCompleted` event is deposited. - */ + * This will return `Ok` in all circumstances. To determine the success of the batch, an + * event is deposited. If a call failed and the batch was interrupted, then the + * `BatchInterrupted` event is deposited, along with the number of successful calls made + * and the error of the failed call. If all were successful, then the `BatchCompleted` + * event is deposited. + **/ batch: AugmentedSubmittable< (calls: Vec | (Call | IMethod | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec] >; /** - * Send a batch of dispatch calls and atomically execute them. The whole transaction will rollback and fail if any - * of the calls failed. + * Send a batch of dispatch calls and atomically execute them. + * The whole transaction will rollback and fail if any of the calls failed. * * May be called from any origin except `None`. * - * - `calls`: The calls to be dispatched from the same origin. The number of call must not exceed the constant: - * `batched_calls_limit` (available in constant metadata). + * - `calls`: The calls to be dispatched from the same origin. The number of call must not + * exceed the constant: `batched_calls_limit` (available in constant metadata). * - * If origin is root then the calls are dispatched without checking origin filter. (This includes bypassing - * `frame_system::Config::BaseCallFilter`). + * If origin is root then the calls are dispatched without checking origin filter. (This + * includes bypassing `frame_system::Config::BaseCallFilter`). * * ## Complexity - * * - O(C) where C is the number of calls to be batched. - */ + **/ batchAll: AugmentedSubmittable< (calls: Vec | (Call | IMethod | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec] @@ -3801,9 +4022,8 @@ declare module "@polkadot/api-base/types/submittable" { * The dispatch origin for this call must be _Root_. * * ## Complexity - * * - O(1). - */ + **/ dispatchAs: AugmentedSubmittable< ( asOrigin: @@ -3819,20 +4039,20 @@ declare module "@polkadot/api-base/types/submittable" { [DanceboxRuntimeOriginCaller, Call] >; /** - * Send a batch of dispatch calls. Unlike `batch`, it allows errors and won't interrupt. + * Send a batch of dispatch calls. + * Unlike `batch`, it allows errors and won't interrupt. * * May be called from any origin except `None`. * - * - `calls`: The calls to be dispatched from the same origin. The number of call must not exceed the constant: - * `batched_calls_limit` (available in constant metadata). + * - `calls`: The calls to be dispatched from the same origin. The number of call must not + * exceed the constant: `batched_calls_limit` (available in constant metadata). * - * If origin is root then the calls are dispatch without checking origin filter. (This includes bypassing - * `frame_system::Config::BaseCallFilter`). + * If origin is root then the calls are dispatch without checking origin filter. (This + * includes bypassing `frame_system::Config::BaseCallFilter`). * * ## Complexity - * * - O(C) where C is the number of calls to be batched. - */ + **/ forceBatch: AugmentedSubmittable< (calls: Vec | (Call | IMethod | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec] @@ -3840,11 +4060,11 @@ declare module "@polkadot/api-base/types/submittable" { /** * Dispatch a function call with a specified weight. * - * This function does not check the weight of the call, and instead allows the Root origin to specify the weight - * of the call. + * This function does not check the weight of the call, and instead allows the + * Root origin to specify the weight of the call. * * The dispatch origin for this call must be _Root_. - */ + **/ withWeight: AugmentedSubmittable< ( call: Call | IMethod | string | Uint8Array, @@ -3852,15 +4072,18 @@ declare module "@polkadot/api-base/types/submittable" { ) => SubmittableExtrinsic, [Call, SpWeightsWeightV2Weight] >; - /** Generic tx */ + /** + * Generic tx + **/ [key: string]: SubmittableExtrinsicFunction; }; xcmCoreBuyer: { /** - * Buy a core for this parathread id. Collators should call this to indicate that they intend to produce a block, - * but they cannot do it because this para id has no available cores. The purchase is automatic using XCM, and - * collators do not need to do anything. - */ + * Buy a core for this parathread id. + * Collators should call this to indicate that they intend to produce a block, but they + * cannot do it because this para id has no available cores. + * The purchase is automatic using XCM, and collators do not need to do anything. + **/ buyCore: AugmentedSubmittable< ( paraId: u32 | AnyNumber | Uint8Array, @@ -3882,7 +4105,9 @@ declare module "@polkadot/api-base/types/submittable" { ) => SubmittableExtrinsic, [Vec] >; - /** Buy core for para id as root. Does not require any proof, useful in tests. */ + /** + * Buy core for para id as root. Does not require any proof, useful in tests. + **/ forceBuyCore: AugmentedSubmittable< (paraId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32] @@ -3928,7 +4153,9 @@ declare module "@polkadot/api-base/types/submittable" { ) => SubmittableExtrinsic, [Option] >; - /** Generic tx */ + /** + * Generic tx + **/ [key: string]: SubmittableExtrinsicFunction; }; xcmpQueue: { @@ -3938,48 +4165,50 @@ declare module "@polkadot/api-base/types/submittable" { * Note that this function doesn't change the status of the in/out bound channels. * * - `origin`: Must pass `ControllerOrigin`. - */ + **/ resumeXcmExecution: AugmentedSubmittable<() => SubmittableExtrinsic, []>; /** * Suspends all XCM executions for the XCMP queue, regardless of the sender's origin. * * - `origin`: Must pass `ControllerOrigin`. - */ + **/ suspendXcmExecution: AugmentedSubmittable<() => SubmittableExtrinsic, []>; /** - * Overwrites the number of pages which must be in the queue after which we drop any further messages from the - * channel. + * Overwrites the number of pages which must be in the queue after which we drop any + * further messages from the channel. * * - `origin`: Must pass `Root`. * - `new`: Desired value for `QueueConfigData.drop_threshold` - */ + **/ updateDropThreshold: AugmentedSubmittable< (updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32] >; /** - * Overwrites the number of pages which the queue must be reduced to before it signals that message sending may - * recommence after it has been suspended. + * Overwrites the number of pages which the queue must be reduced to before it signals + * that message sending may recommence after it has been suspended. * * - `origin`: Must pass `Root`. * - `new`: Desired value for `QueueConfigData.resume_threshold` - */ + **/ updateResumeThreshold: AugmentedSubmittable< (updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32] >; /** - * Overwrites the number of pages which must be in the queue for the other side to be told to suspend their - * sending. + * Overwrites the number of pages which must be in the queue for the other side to be + * told to suspend their sending. * * - `origin`: Must pass `Root`. * - `new`: Desired value for `QueueConfigData.suspend_value` - */ + **/ updateSuspendThreshold: AugmentedSubmittable< (updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32] >; - /** Generic tx */ + /** + * Generic tx + **/ [key: string]: SubmittableExtrinsicFunction; }; } // AugmentedSubmittables diff --git a/typescript-api/src/dancebox/interfaces/lookup.ts b/typescript-api/src/dancebox/interfaces/lookup.ts index 0812edb90..f08aa1c33 100644 --- a/typescript-api/src/dancebox/interfaces/lookup.ts +++ b/typescript-api/src/dancebox/interfaces/lookup.ts @@ -4,7 +4,9 @@ /* eslint-disable sort-keys */ export default { - /** Lookup3: frame_system::AccountInfo> */ + /** + * Lookup3: frame_system::AccountInfo> + **/ FrameSystemAccountInfo: { nonce: "u32", consumers: "u32", @@ -12,29 +14,39 @@ export default { sufficients: "u32", data: "PalletBalancesAccountData", }, - /** Lookup5: pallet_balances::types::AccountData */ + /** + * Lookup5: pallet_balances::types::AccountData + **/ PalletBalancesAccountData: { free: "u128", reserved: "u128", frozen: "u128", flags: "u128", }, - /** Lookup9: frame_support::dispatch::PerDispatchClass */ + /** + * Lookup9: frame_support::dispatch::PerDispatchClass + **/ FrameSupportDispatchPerDispatchClassWeight: { normal: "SpWeightsWeightV2Weight", operational: "SpWeightsWeightV2Weight", mandatory: "SpWeightsWeightV2Weight", }, - /** Lookup10: sp_weights::weight_v2::Weight */ + /** + * Lookup10: sp_weights::weight_v2::Weight + **/ SpWeightsWeightV2Weight: { refTime: "Compact", proofSize: "Compact", }, - /** Lookup15: sp_runtime::generic::digest::Digest */ + /** + * Lookup15: sp_runtime::generic::digest::Digest + **/ SpRuntimeDigest: { logs: "Vec", }, - /** Lookup17: sp_runtime::generic::digest::DigestItem */ + /** + * Lookup17: sp_runtime::generic::digest::DigestItem + **/ SpRuntimeDigestDigestItem: { _enum: { Other: "Bytes", @@ -48,13 +60,17 @@ export default { RuntimeEnvironmentUpdated: "Null", }, }, - /** Lookup20: frame_system::EventRecord */ + /** + * Lookup20: frame_system::EventRecord + **/ FrameSystemEventRecord: { phase: "FrameSystemPhase", event: "Event", topics: "Vec", }, - /** Lookup22: frame_system::pallet::Event */ + /** + * Lookup22: frame_system::pallet::Event + **/ FrameSystemEvent: { _enum: { ExtrinsicSuccess: { @@ -84,21 +100,29 @@ export default { }, }, }, - /** Lookup23: frame_support::dispatch::DispatchInfo */ + /** + * Lookup23: frame_support::dispatch::DispatchInfo + **/ FrameSupportDispatchDispatchInfo: { weight: "SpWeightsWeightV2Weight", class: "FrameSupportDispatchDispatchClass", paysFee: "FrameSupportDispatchPays", }, - /** Lookup24: frame_support::dispatch::DispatchClass */ + /** + * Lookup24: frame_support::dispatch::DispatchClass + **/ FrameSupportDispatchDispatchClass: { _enum: ["Normal", "Operational", "Mandatory"], }, - /** Lookup25: frame_support::dispatch::Pays */ + /** + * Lookup25: frame_support::dispatch::Pays + **/ FrameSupportDispatchPays: { _enum: ["Yes", "No"], }, - /** Lookup26: sp_runtime::DispatchError */ + /** + * Lookup26: sp_runtime::DispatchError + **/ SpRuntimeDispatchError: { _enum: { Other: "Null", @@ -117,12 +141,16 @@ export default { RootNotAllowed: "Null", }, }, - /** Lookup27: sp_runtime::ModuleError */ + /** + * Lookup27: sp_runtime::ModuleError + **/ SpRuntimeModuleError: { index: "u8", error: "[u8;4]", }, - /** Lookup28: sp_runtime::TokenError */ + /** + * Lookup28: sp_runtime::TokenError + **/ SpRuntimeTokenError: { _enum: [ "FundsUnavailable", @@ -137,15 +165,21 @@ export default { "Blocked", ], }, - /** Lookup29: sp_arithmetic::ArithmeticError */ + /** + * Lookup29: sp_arithmetic::ArithmeticError + **/ SpArithmeticArithmeticError: { _enum: ["Underflow", "Overflow", "DivisionByZero"], }, - /** Lookup30: sp_runtime::TransactionalError */ + /** + * Lookup30: sp_runtime::TransactionalError + **/ SpRuntimeTransactionalError: { _enum: ["LimitReached", "NoLayer"], }, - /** Lookup31: cumulus_pallet_parachain_system::pallet::Event */ + /** + * Lookup31: cumulus_pallet_parachain_system::pallet::Event + **/ CumulusPalletParachainSystemEvent: { _enum: { ValidationFunctionStored: "Null", @@ -165,7 +199,9 @@ export default { }, }, }, - /** Lookup33: pallet_sudo::pallet::Event */ + /** + * Lookup33: pallet_sudo::pallet::Event + **/ PalletSudoEvent: { _enum: { Sudid: { @@ -184,7 +220,9 @@ export default { }, }, }, - /** Lookup37: pallet_utility::pallet::Event */ + /** + * Lookup37: pallet_utility::pallet::Event + **/ PalletUtilityEvent: { _enum: { BatchInterrupted: { @@ -202,7 +240,9 @@ export default { }, }, }, - /** Lookup38: pallet_proxy::pallet::Event */ + /** + * Lookup38: pallet_proxy::pallet::Event + **/ PalletProxyEvent: { _enum: { ProxyExecuted: { @@ -233,7 +273,9 @@ export default { }, }, }, - /** Lookup39: dancebox_runtime::ProxyType */ + /** + * Lookup39: dancebox_runtime::ProxyType + **/ DanceboxRuntimeProxyType: { _enum: [ "Any", @@ -247,7 +289,9 @@ export default { "SessionKeyManagement", ], }, - /** Lookup41: pallet_migrations::pallet::Event */ + /** + * Lookup41: pallet_migrations::pallet::Event + **/ PalletMigrationsEvent: { _enum: { RuntimeUpgradeStarted: "Null", @@ -269,7 +313,9 @@ export default { }, }, }, - /** Lookup42: pallet_maintenance_mode::pallet::Event */ + /** + * Lookup42: pallet_maintenance_mode::pallet::Event + **/ PalletMaintenanceModeEvent: { _enum: { EnteredMaintenanceMode: "Null", @@ -282,7 +328,9 @@ export default { }, }, }, - /** Lookup43: pallet_tx_pause::pallet::Event */ + /** + * Lookup43: pallet_tx_pause::pallet::Event + **/ PalletTxPauseEvent: { _enum: { CallPaused: { @@ -293,7 +341,9 @@ export default { }, }, }, - /** Lookup46: pallet_balances::pallet::Event */ + /** + * Lookup46: pallet_balances::pallet::Event + **/ PalletBalancesEvent: { _enum: { Endowed: { @@ -389,11 +439,15 @@ export default { }, }, }, - /** Lookup47: frame_support::traits::tokens::misc::BalanceStatus */ + /** + * Lookup47: frame_support::traits::tokens::misc::BalanceStatus + **/ FrameSupportTokensMiscBalanceStatus: { _enum: ["Free", "Reserved"], }, - /** Lookup48: pallet_transaction_payment::pallet::Event */ + /** + * Lookup48: pallet_transaction_payment::pallet::Event + **/ PalletTransactionPaymentEvent: { _enum: { TransactionFeePaid: { @@ -403,7 +457,9 @@ export default { }, }, }, - /** Lookup49: pallet_stream_payment::pallet::Event */ + /** + * Lookup49: pallet_stream_payment::pallet::Event + **/ PalletStreamPaymentEvent: { _enum: { StreamOpened: { @@ -435,28 +491,35 @@ export default { }, }, }, - /** Lookup50: pallet_stream_payment::pallet::Party */ + /** + * Lookup50: pallet_stream_payment::pallet::Party + **/ PalletStreamPaymentParty: { _enum: ["Source", "Target"], }, /** - * Lookup51: pallet_stream_payment::pallet::StreamConfig - */ + * Lookup51: pallet_stream_payment::pallet::StreamConfig + **/ PalletStreamPaymentStreamConfig: { timeUnit: "DanceboxRuntimeTimeUnit", assetId: "DanceboxRuntimeStreamPaymentAssetId", rate: "u128", }, - /** Lookup52: dancebox_runtime::TimeUnit */ + /** + * Lookup52: dancebox_runtime::TimeUnit + **/ DanceboxRuntimeTimeUnit: { _enum: ["BlockNumber", "Timestamp"], }, - /** Lookup53: dancebox_runtime::StreamPaymentAssetId */ + /** + * Lookup53: dancebox_runtime::StreamPaymentAssetId + **/ DanceboxRuntimeStreamPaymentAssetId: { _enum: ["Native"], }, - /** Lookup55: pallet_stream_payment::pallet::DepositChange */ + /** + * Lookup55: pallet_stream_payment::pallet::DepositChange + **/ PalletStreamPaymentDepositChange: { _enum: { Increase: "u128", @@ -464,7 +527,9 @@ export default { Absolute: "u128", }, }, - /** Lookup56: pallet_identity::pallet::Event */ + /** + * Lookup56: pallet_identity::pallet::Event + **/ PalletIdentityEvent: { _enum: { IdentitySet: { @@ -536,7 +601,9 @@ export default { }, }, }, - /** Lookup58: pallet_multisig::pallet::Event */ + /** + * Lookup58: pallet_multisig::pallet::Event + **/ PalletMultisigEvent: { _enum: { NewMultisig: { @@ -565,12 +632,16 @@ export default { }, }, }, - /** Lookup59: pallet_multisig::Timepoint */ + /** + * Lookup59: pallet_multisig::Timepoint + **/ PalletMultisigTimepoint: { height: "u32", index: "u32", }, - /** Lookup60: pallet_registrar::pallet::Event */ + /** + * Lookup60: pallet_registrar::pallet::Event + **/ PalletRegistrarEvent: { _enum: { ParaIdRegistered: { @@ -597,7 +668,9 @@ export default { }, }, }, - /** Lookup62: pallet_collator_assignment::pallet::Event */ + /** + * Lookup62: pallet_collator_assignment::pallet::Event + **/ PalletCollatorAssignmentEvent: { _enum: { NewPendingAssignment: { @@ -608,13 +681,17 @@ export default { }, }, }, - /** Lookup63: tp_traits::FullRotationModes */ + /** + * Lookup63: tp_traits::FullRotationModes + **/ TpTraitsFullRotationModes: { orchestrator: "TpTraitsFullRotationMode", parachain: "TpTraitsFullRotationMode", parathread: "TpTraitsFullRotationMode", }, - /** Lookup64: tp_traits::FullRotationMode */ + /** + * Lookup64: tp_traits::FullRotationMode + **/ TpTraitsFullRotationMode: { _enum: { RotateAll: "Null", @@ -627,7 +704,9 @@ export default { }, }, }, - /** Lookup66: pallet_author_noting::pallet::Event */ + /** + * Lookup66: pallet_author_noting::pallet::Event + **/ PalletAuthorNotingEvent: { _enum: { LatestAuthorChanged: { @@ -641,7 +720,9 @@ export default { }, }, }, - /** Lookup68: pallet_services_payment::pallet::Event */ + /** + * Lookup68: pallet_services_payment::pallet::Event + **/ PalletServicesPaymentEvent: { _enum: { CreditsPurchased: { @@ -680,7 +761,9 @@ export default { }, }, }, - /** Lookup70: pallet_data_preservers::pallet::Event */ + /** + * Lookup70: pallet_data_preservers::pallet::Event + **/ PalletDataPreserversEvent: { _enum: { BootNodesChanged: { @@ -710,7 +793,9 @@ export default { }, }, }, - /** Lookup71: pallet_invulnerables::pallet::Event */ + /** + * Lookup71: pallet_invulnerables::pallet::Event + **/ PalletInvulnerablesEvent: { _enum: { InvulnerableAdded: { @@ -721,7 +806,9 @@ export default { }, }, }, - /** Lookup72: pallet_session::pallet::Event */ + /** + * Lookup72: pallet_session::pallet::Event + **/ PalletSessionEvent: { _enum: { NewSession: { @@ -729,7 +816,9 @@ export default { }, }, }, - /** Lookup73: pallet_pooled_staking::pallet::Event */ + /** + * Lookup73: pallet_pooled_staking::pallet::Event + **/ PalletPooledStakingEvent: { _enum: { UpdatedCandidatePosition: { @@ -824,11 +913,15 @@ export default { }, }, }, - /** Lookup75: pallet_pooled_staking::pallet::TargetPool */ + /** + * Lookup75: pallet_pooled_staking::pallet::TargetPool + **/ PalletPooledStakingTargetPool: { _enum: ["AutoCompounding", "ManualRewards"], }, - /** Lookup76: pallet_inflation_rewards::pallet::Event */ + /** + * Lookup76: pallet_inflation_rewards::pallet::Event + **/ PalletInflationRewardsEvent: { _enum: { RewardedOrchestrator: { @@ -842,7 +935,9 @@ export default { }, }, }, - /** Lookup77: pallet_treasury::pallet::Event */ + /** + * Lookup77: pallet_treasury::pallet::Event + **/ PalletTreasuryEvent: { _enum: { Spending: { @@ -895,7 +990,9 @@ export default { }, }, }, - /** Lookup78: cumulus_pallet_xcmp_queue::pallet::Event */ + /** + * Lookup78: cumulus_pallet_xcmp_queue::pallet::Event + **/ CumulusPalletXcmpQueueEvent: { _enum: { XcmpMessageSent: { @@ -903,7 +1000,9 @@ export default { }, }, }, - /** Lookup79: cumulus_pallet_xcm::pallet::Event */ + /** + * Lookup79: cumulus_pallet_xcm::pallet::Event + **/ CumulusPalletXcmEvent: { _enum: { InvalidFormat: "[u8;32]", @@ -911,7 +1010,9 @@ export default { ExecutedDownward: "([u8;32],StagingXcmV4TraitsOutcome)", }, }, - /** Lookup80: staging_xcm::v4::traits::Outcome */ + /** + * Lookup80: staging_xcm::v4::traits::Outcome + **/ StagingXcmV4TraitsOutcome: { _enum: { Complete: { @@ -926,7 +1027,9 @@ export default { }, }, }, - /** Lookup81: xcm::v3::traits::Error */ + /** + * Lookup81: xcm::v3::traits::Error + **/ XcmV3TraitsError: { _enum: { Overflow: "Null", @@ -971,7 +1074,9 @@ export default { ExceedsStackLimit: "Null", }, }, - /** Lookup82: pallet_xcm::pallet::Event */ + /** + * Lookup82: pallet_xcm::pallet::Event + **/ PalletXcmEvent: { _enum: { Attempted: { @@ -1094,12 +1199,16 @@ export default { }, }, }, - /** Lookup83: staging_xcm::v4::location::Location */ + /** + * Lookup83: staging_xcm::v4::location::Location + **/ StagingXcmV4Location: { parents: "u8", interior: "StagingXcmV4Junctions", }, - /** Lookup84: staging_xcm::v4::junctions::Junctions */ + /** + * Lookup84: staging_xcm::v4::junctions::Junctions + **/ StagingXcmV4Junctions: { _enum: { Here: "Null", @@ -1113,7 +1222,9 @@ export default { X8: "[Lookup86;8]", }, }, - /** Lookup86: staging_xcm::v4::junction::Junction */ + /** + * Lookup86: staging_xcm::v4::junction::Junction + **/ StagingXcmV4Junction: { _enum: { Parachain: "Compact", @@ -1143,7 +1254,9 @@ export default { GlobalConsensus: "StagingXcmV4JunctionNetworkId", }, }, - /** Lookup89: staging_xcm::v4::junction::NetworkId */ + /** + * Lookup89: staging_xcm::v4::junction::NetworkId + **/ StagingXcmV4JunctionNetworkId: { _enum: { ByGenesis: "[u8;32]", @@ -1164,7 +1277,9 @@ export default { PolkadotBulletin: "Null", }, }, - /** Lookup92: xcm::v3::junction::BodyId */ + /** + * Lookup92: xcm::v3::junction::BodyId + **/ XcmV3JunctionBodyId: { _enum: { Unit: "Null", @@ -1179,7 +1294,9 @@ export default { Treasury: "Null", }, }, - /** Lookup93: xcm::v3::junction::BodyPart */ + /** + * Lookup93: xcm::v3::junction::BodyPart + **/ XcmV3JunctionBodyPart: { _enum: { Voice: "Null", @@ -1200,9 +1317,13 @@ export default { }, }, }, - /** Lookup101: staging_xcm::v4::Xcm */ + /** + * Lookup101: staging_xcm::v4::Xcm + **/ StagingXcmV4Xcm: "Vec", - /** Lookup103: staging_xcm::v4::Instruction */ + /** + * Lookup103: staging_xcm::v4::Instruction + **/ StagingXcmV4Instruction: { _enum: { WithdrawAsset: "StagingXcmV4AssetAssets", @@ -1342,23 +1463,33 @@ export default { }, }, }, - /** Lookup104: staging_xcm::v4::asset::Assets */ + /** + * Lookup104: staging_xcm::v4::asset::Assets + **/ StagingXcmV4AssetAssets: "Vec", - /** Lookup106: staging_xcm::v4::asset::Asset */ + /** + * Lookup106: staging_xcm::v4::asset::Asset + **/ StagingXcmV4Asset: { id: "StagingXcmV4AssetAssetId", fun: "StagingXcmV4AssetFungibility", }, - /** Lookup107: staging_xcm::v4::asset::AssetId */ + /** + * Lookup107: staging_xcm::v4::asset::AssetId + **/ StagingXcmV4AssetAssetId: "StagingXcmV4Location", - /** Lookup108: staging_xcm::v4::asset::Fungibility */ + /** + * Lookup108: staging_xcm::v4::asset::Fungibility + **/ StagingXcmV4AssetFungibility: { _enum: { Fungible: "Compact", NonFungible: "StagingXcmV4AssetAssetInstance", }, }, - /** Lookup109: staging_xcm::v4::asset::AssetInstance */ + /** + * Lookup109: staging_xcm::v4::asset::AssetInstance + **/ StagingXcmV4AssetAssetInstance: { _enum: { Undefined: "Null", @@ -1369,7 +1500,9 @@ export default { Array32: "[u8;32]", }, }, - /** Lookup112: staging_xcm::v4::Response */ + /** + * Lookup112: staging_xcm::v4::Response + **/ StagingXcmV4Response: { _enum: { Null: "Null", @@ -1380,7 +1513,9 @@ export default { DispatchResult: "XcmV3MaybeErrorCode", }, }, - /** Lookup116: staging_xcm::v4::PalletInfo */ + /** + * Lookup116: staging_xcm::v4::PalletInfo + **/ StagingXcmV4PalletInfo: { index: "Compact", name: "Bytes", @@ -1389,7 +1524,9 @@ export default { minor: "Compact", patch: "Compact", }, - /** Lookup119: xcm::v3::MaybeErrorCode */ + /** + * Lookup119: xcm::v3::MaybeErrorCode + **/ XcmV3MaybeErrorCode: { _enum: { Success: "Null", @@ -1397,28 +1534,38 @@ export default { TruncatedError: "Bytes", }, }, - /** Lookup122: xcm::v3::OriginKind */ + /** + * Lookup122: xcm::v3::OriginKind + **/ XcmV3OriginKind: { _enum: ["Native", "SovereignAccount", "Superuser", "Xcm"], }, - /** Lookup123: xcm::double_encoded::DoubleEncoded */ + /** + * Lookup123: xcm::double_encoded::DoubleEncoded + **/ XcmDoubleEncoded: { encoded: "Bytes", }, - /** Lookup124: staging_xcm::v4::QueryResponseInfo */ + /** + * Lookup124: staging_xcm::v4::QueryResponseInfo + **/ StagingXcmV4QueryResponseInfo: { destination: "StagingXcmV4Location", queryId: "Compact", maxWeight: "SpWeightsWeightV2Weight", }, - /** Lookup125: staging_xcm::v4::asset::AssetFilter */ + /** + * Lookup125: staging_xcm::v4::asset::AssetFilter + **/ StagingXcmV4AssetAssetFilter: { _enum: { Definite: "StagingXcmV4AssetAssets", Wild: "StagingXcmV4AssetWildAsset", }, }, - /** Lookup126: staging_xcm::v4::asset::WildAsset */ + /** + * Lookup126: staging_xcm::v4::asset::WildAsset + **/ StagingXcmV4AssetWildAsset: { _enum: { All: "Null", @@ -1434,18 +1581,24 @@ export default { }, }, }, - /** Lookup127: staging_xcm::v4::asset::WildFungibility */ + /** + * Lookup127: staging_xcm::v4::asset::WildFungibility + **/ StagingXcmV4AssetWildFungibility: { _enum: ["Fungible", "NonFungible"], }, - /** Lookup128: xcm::v3::WeightLimit */ + /** + * Lookup128: xcm::v3::WeightLimit + **/ XcmV3WeightLimit: { _enum: { Unlimited: "Null", Limited: "SpWeightsWeightV2Weight", }, }, - /** Lookup129: xcm::VersionedAssets */ + /** + * Lookup129: xcm::VersionedAssets + **/ XcmVersionedAssets: { _enum: { __Unused0: "Null", @@ -1455,26 +1608,36 @@ export default { V4: "StagingXcmV4AssetAssets", }, }, - /** Lookup130: xcm::v2::multiasset::MultiAssets */ + /** + * Lookup130: xcm::v2::multiasset::MultiAssets + **/ XcmV2MultiassetMultiAssets: "Vec", - /** Lookup132: xcm::v2::multiasset::MultiAsset */ + /** + * Lookup132: xcm::v2::multiasset::MultiAsset + **/ XcmV2MultiAsset: { id: "XcmV2MultiassetAssetId", fun: "XcmV2MultiassetFungibility", }, - /** Lookup133: xcm::v2::multiasset::AssetId */ + /** + * Lookup133: xcm::v2::multiasset::AssetId + **/ XcmV2MultiassetAssetId: { _enum: { Concrete: "XcmV2MultiLocation", Abstract: "Bytes", }, }, - /** Lookup134: xcm::v2::multilocation::MultiLocation */ + /** + * Lookup134: xcm::v2::multilocation::MultiLocation + **/ XcmV2MultiLocation: { parents: "u8", interior: "XcmV2MultilocationJunctions", }, - /** Lookup135: xcm::v2::multilocation::Junctions */ + /** + * Lookup135: xcm::v2::multilocation::Junctions + **/ XcmV2MultilocationJunctions: { _enum: { Here: "Null", @@ -1488,7 +1651,9 @@ export default { X8: "(XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction)", }, }, - /** Lookup136: xcm::v2::junction::Junction */ + /** + * Lookup136: xcm::v2::junction::Junction + **/ XcmV2Junction: { _enum: { Parachain: "Compact", @@ -1514,7 +1679,9 @@ export default { }, }, }, - /** Lookup137: xcm::v2::NetworkId */ + /** + * Lookup137: xcm::v2::NetworkId + **/ XcmV2NetworkId: { _enum: { Any: "Null", @@ -1523,7 +1690,9 @@ export default { Kusama: "Null", }, }, - /** Lookup139: xcm::v2::BodyId */ + /** + * Lookup139: xcm::v2::BodyId + **/ XcmV2BodyId: { _enum: { Unit: "Null", @@ -1538,7 +1707,9 @@ export default { Treasury: "Null", }, }, - /** Lookup140: xcm::v2::BodyPart */ + /** + * Lookup140: xcm::v2::BodyPart + **/ XcmV2BodyPart: { _enum: { Voice: "Null", @@ -1559,14 +1730,18 @@ export default { }, }, }, - /** Lookup141: xcm::v2::multiasset::Fungibility */ + /** + * Lookup141: xcm::v2::multiasset::Fungibility + **/ XcmV2MultiassetFungibility: { _enum: { Fungible: "Compact", NonFungible: "XcmV2MultiassetAssetInstance", }, }, - /** Lookup142: xcm::v2::multiasset::AssetInstance */ + /** + * Lookup142: xcm::v2::multiasset::AssetInstance + **/ XcmV2MultiassetAssetInstance: { _enum: { Undefined: "Null", @@ -1578,26 +1753,36 @@ export default { Blob: "Bytes", }, }, - /** Lookup143: xcm::v3::multiasset::MultiAssets */ + /** + * Lookup143: xcm::v3::multiasset::MultiAssets + **/ XcmV3MultiassetMultiAssets: "Vec", - /** Lookup145: xcm::v3::multiasset::MultiAsset */ + /** + * Lookup145: xcm::v3::multiasset::MultiAsset + **/ XcmV3MultiAsset: { id: "XcmV3MultiassetAssetId", fun: "XcmV3MultiassetFungibility", }, - /** Lookup146: xcm::v3::multiasset::AssetId */ + /** + * Lookup146: xcm::v3::multiasset::AssetId + **/ XcmV3MultiassetAssetId: { _enum: { Concrete: "StagingXcmV3MultiLocation", Abstract: "[u8;32]", }, }, - /** Lookup147: staging_xcm::v3::multilocation::MultiLocation */ + /** + * Lookup147: staging_xcm::v3::multilocation::MultiLocation + **/ StagingXcmV3MultiLocation: { parents: "u8", interior: "XcmV3Junctions", }, - /** Lookup148: xcm::v3::junctions::Junctions */ + /** + * Lookup148: xcm::v3::junctions::Junctions + **/ XcmV3Junctions: { _enum: { Here: "Null", @@ -1611,7 +1796,9 @@ export default { X8: "(XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction)", }, }, - /** Lookup149: xcm::v3::junction::Junction */ + /** + * Lookup149: xcm::v3::junction::Junction + **/ XcmV3Junction: { _enum: { Parachain: "Compact", @@ -1641,7 +1828,9 @@ export default { GlobalConsensus: "XcmV3JunctionNetworkId", }, }, - /** Lookup151: xcm::v3::junction::NetworkId */ + /** + * Lookup151: xcm::v3::junction::NetworkId + **/ XcmV3JunctionNetworkId: { _enum: { ByGenesis: "[u8;32]", @@ -1662,14 +1851,18 @@ export default { PolkadotBulletin: "Null", }, }, - /** Lookup152: xcm::v3::multiasset::Fungibility */ + /** + * Lookup152: xcm::v3::multiasset::Fungibility + **/ XcmV3MultiassetFungibility: { _enum: { Fungible: "Compact", NonFungible: "XcmV3MultiassetAssetInstance", }, }, - /** Lookup153: xcm::v3::multiasset::AssetInstance */ + /** + * Lookup153: xcm::v3::multiasset::AssetInstance + **/ XcmV3MultiassetAssetInstance: { _enum: { Undefined: "Null", @@ -1680,7 +1873,9 @@ export default { Array32: "[u8;32]", }, }, - /** Lookup154: xcm::VersionedLocation */ + /** + * Lookup154: xcm::VersionedLocation + **/ XcmVersionedLocation: { _enum: { __Unused0: "Null", @@ -1690,7 +1885,9 @@ export default { V4: "StagingXcmV4Location", }, }, - /** Lookup155: pallet_assets::pallet::Event */ + /** + * Lookup155: pallet_assets::pallet::Event + **/ PalletAssetsEvent: { _enum: { Created: { @@ -1814,7 +2011,9 @@ export default { }, }, }, - /** Lookup156: pallet_foreign_asset_creator::pallet::Event */ + /** + * Lookup156: pallet_foreign_asset_creator::pallet::Event + **/ PalletForeignAssetCreatorEvent: { _enum: { ForeignAssetCreated: { @@ -1835,7 +2034,9 @@ export default { }, }, }, - /** Lookup157: pallet_asset_rate::pallet::Event */ + /** + * Lookup157: pallet_asset_rate::pallet::Event + **/ PalletAssetRateEvent: { _enum: { AssetRateCreated: { @@ -1855,7 +2056,9 @@ export default { }, }, }, - /** Lookup159: pallet_message_queue::pallet::Event */ + /** + * Lookup159: pallet_message_queue::pallet::Event + **/ PalletMessageQueueEvent: { _enum: { ProcessingFailed: { @@ -1881,7 +2084,9 @@ export default { }, }, }, - /** Lookup160: cumulus_primitives_core::AggregateMessageOrigin */ + /** + * Lookup160: cumulus_primitives_core::AggregateMessageOrigin + **/ CumulusPrimitivesCoreAggregateMessageOrigin: { _enum: { Here: "Null", @@ -1889,7 +2094,9 @@ export default { Sibling: "u32", }, }, - /** Lookup161: frame_support::traits::messages::ProcessMessageError */ + /** + * Lookup161: frame_support::traits::messages::ProcessMessageError + **/ FrameSupportMessagesProcessMessageError: { _enum: { BadFormat: "Null", @@ -1900,7 +2107,9 @@ export default { StackLimitReached: "Null", }, }, - /** Lookup162: pallet_xcm_core_buyer::pallet::Event */ + /** + * Lookup162: pallet_xcm_core_buyer::pallet::Event + **/ PalletXcmCoreBuyerEvent: { _enum: { BuyCoreXcmSent: { @@ -1919,11 +2128,15 @@ export default { }, }, }, - /** Lookup164: pallet_root_testing::pallet::Event */ + /** + * Lookup164: pallet_root_testing::pallet::Event + **/ PalletRootTestingEvent: { _enum: ["DefensiveTestCall"], }, - /** Lookup165: frame_system::Phase */ + /** + * Lookup165: frame_system::Phase + **/ FrameSystemPhase: { _enum: { ApplyExtrinsic: "u32", @@ -1931,17 +2144,23 @@ export default { Initialization: "Null", }, }, - /** Lookup169: frame_system::LastRuntimeUpgradeInfo */ + /** + * Lookup169: frame_system::LastRuntimeUpgradeInfo + **/ FrameSystemLastRuntimeUpgradeInfo: { specVersion: "Compact", specName: "Text", }, - /** Lookup171: frame_system::CodeUpgradeAuthorization */ + /** + * Lookup171: frame_system::CodeUpgradeAuthorization + **/ FrameSystemCodeUpgradeAuthorization: { codeHash: "H256", checkVersion: "bool", }, - /** Lookup172: frame_system::pallet::Call */ + /** + * Lookup172: frame_system::pallet::Call + **/ FrameSystemCall: { _enum: { remark: { @@ -1984,41 +2203,55 @@ export default { }, }, }, - /** Lookup176: frame_system::limits::BlockWeights */ + /** + * Lookup176: frame_system::limits::BlockWeights + **/ FrameSystemLimitsBlockWeights: { baseBlock: "SpWeightsWeightV2Weight", maxBlock: "SpWeightsWeightV2Weight", perClass: "FrameSupportDispatchPerDispatchClassWeightsPerClass", }, - /** Lookup177: frame_support::dispatch::PerDispatchClass */ + /** + * Lookup177: frame_support::dispatch::PerDispatchClass + **/ FrameSupportDispatchPerDispatchClassWeightsPerClass: { normal: "FrameSystemLimitsWeightsPerClass", operational: "FrameSystemLimitsWeightsPerClass", mandatory: "FrameSystemLimitsWeightsPerClass", }, - /** Lookup178: frame_system::limits::WeightsPerClass */ + /** + * Lookup178: frame_system::limits::WeightsPerClass + **/ FrameSystemLimitsWeightsPerClass: { baseExtrinsic: "SpWeightsWeightV2Weight", maxExtrinsic: "Option", maxTotal: "Option", reserved: "Option", }, - /** Lookup180: frame_system::limits::BlockLength */ + /** + * Lookup180: frame_system::limits::BlockLength + **/ FrameSystemLimitsBlockLength: { max: "FrameSupportDispatchPerDispatchClassU32", }, - /** Lookup181: frame_support::dispatch::PerDispatchClass */ + /** + * Lookup181: frame_support::dispatch::PerDispatchClass + **/ FrameSupportDispatchPerDispatchClassU32: { normal: "u32", operational: "u32", mandatory: "u32", }, - /** Lookup182: sp_weights::RuntimeDbWeight */ + /** + * Lookup182: sp_weights::RuntimeDbWeight + **/ SpWeightsRuntimeDbWeight: { read: "u64", write: "u64", }, - /** Lookup183: sp_version::RuntimeVersion */ + /** + * Lookup183: sp_version::RuntimeVersion + **/ SpVersionRuntimeVersion: { specName: "Text", implName: "Text", @@ -2029,7 +2262,9 @@ export default { transactionVersion: "u32", stateVersion: "u8", }, - /** Lookup187: frame_system::pallet::Error */ + /** + * Lookup187: frame_system::pallet::Error + **/ FrameSystemError: { _enum: [ "InvalidSpecName", @@ -2043,49 +2278,67 @@ export default { "Unauthorized", ], }, - /** Lookup189: cumulus_pallet_parachain_system::unincluded_segment::Ancestor */ + /** + * Lookup189: cumulus_pallet_parachain_system::unincluded_segment::Ancestor + **/ CumulusPalletParachainSystemUnincludedSegmentAncestor: { usedBandwidth: "CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth", paraHeadHash: "Option", consumedGoAheadSignal: "Option", }, - /** Lookup190: cumulus_pallet_parachain_system::unincluded_segment::UsedBandwidth */ + /** + * Lookup190: cumulus_pallet_parachain_system::unincluded_segment::UsedBandwidth + **/ CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth: { umpMsgCount: "u32", umpTotalBytes: "u32", hrmpOutgoing: "BTreeMap", }, - /** Lookup192: cumulus_pallet_parachain_system::unincluded_segment::HrmpChannelUpdate */ + /** + * Lookup192: cumulus_pallet_parachain_system::unincluded_segment::HrmpChannelUpdate + **/ CumulusPalletParachainSystemUnincludedSegmentHrmpChannelUpdate: { msgCount: "u32", totalBytes: "u32", }, - /** Lookup197: polkadot_primitives::v8::UpgradeGoAhead */ + /** + * Lookup197: polkadot_primitives::v8::UpgradeGoAhead + **/ PolkadotPrimitivesV8UpgradeGoAhead: { _enum: ["Abort", "GoAhead"], }, - /** Lookup198: cumulus_pallet_parachain_system::unincluded_segment::SegmentTracker */ + /** + * Lookup198: cumulus_pallet_parachain_system::unincluded_segment::SegmentTracker + **/ CumulusPalletParachainSystemUnincludedSegmentSegmentTracker: { usedBandwidth: "CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth", hrmpWatermark: "Option", consumedGoAheadSignal: "Option", }, - /** Lookup199: polkadot_primitives::v8::PersistedValidationData */ + /** + * Lookup199: polkadot_primitives::v8::PersistedValidationData + **/ PolkadotPrimitivesV8PersistedValidationData: { parentHead: "Bytes", relayParentNumber: "u32", relayParentStorageRoot: "H256", maxPovSize: "u32", }, - /** Lookup202: polkadot_primitives::v8::UpgradeRestriction */ + /** + * Lookup202: polkadot_primitives::v8::UpgradeRestriction + **/ PolkadotPrimitivesV8UpgradeRestriction: { _enum: ["Present"], }, - /** Lookup203: sp_trie::storage_proof::StorageProof */ + /** + * Lookup203: sp_trie::storage_proof::StorageProof + **/ SpTrieStorageProof: { trieNodes: "BTreeSet", }, - /** Lookup205: cumulus_pallet_parachain_system::relay_state_snapshot::MessagingStateSnapshot */ + /** + * Lookup205: cumulus_pallet_parachain_system::relay_state_snapshot::MessagingStateSnapshot + **/ CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot: { dmqMqcHead: "H256", relayDispatchQueueRemainingCapacity: @@ -2093,12 +2346,16 @@ export default { ingressChannels: "Vec<(u32,PolkadotPrimitivesV8AbridgedHrmpChannel)>", egressChannels: "Vec<(u32,PolkadotPrimitivesV8AbridgedHrmpChannel)>", }, - /** Lookup206: cumulus_pallet_parachain_system::relay_state_snapshot::RelayDispatchQueueRemainingCapacity */ + /** + * Lookup206: cumulus_pallet_parachain_system::relay_state_snapshot::RelayDispatchQueueRemainingCapacity + **/ CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity: { remainingCount: "u32", remainingSize: "u32", }, - /** Lookup209: polkadot_primitives::v8::AbridgedHrmpChannel */ + /** + * Lookup209: polkadot_primitives::v8::AbridgedHrmpChannel + **/ PolkadotPrimitivesV8AbridgedHrmpChannel: { maxCapacity: "u32", maxTotalSize: "u32", @@ -2107,7 +2364,9 @@ export default { totalSize: "u32", mqcHead: "Option", }, - /** Lookup210: polkadot_primitives::v8::AbridgedHostConfiguration */ + /** + * Lookup210: polkadot_primitives::v8::AbridgedHostConfiguration + **/ PolkadotPrimitivesV8AbridgedHostConfiguration: { maxCodeSize: "u32", maxHeadDataSize: "u32", @@ -2120,17 +2379,23 @@ export default { validationUpgradeDelay: "u32", asyncBackingParams: "PolkadotPrimitivesV8AsyncBackingAsyncBackingParams", }, - /** Lookup211: polkadot_primitives::v8::async_backing::AsyncBackingParams */ + /** + * Lookup211: polkadot_primitives::v8::async_backing::AsyncBackingParams + **/ PolkadotPrimitivesV8AsyncBackingAsyncBackingParams: { maxCandidateDepth: "u32", allowedAncestryLen: "u32", }, - /** Lookup217: polkadot_core_primitives::OutboundHrmpMessage */ + /** + * Lookup217: polkadot_core_primitives::OutboundHrmpMessage + **/ PolkadotCorePrimitivesOutboundHrmpMessage: { recipient: "u32", data: "Bytes", }, - /** Lookup218: cumulus_pallet_parachain_system::pallet::Call */ + /** + * Lookup218: cumulus_pallet_parachain_system::pallet::Call + **/ CumulusPalletParachainSystemCall: { _enum: { set_validation_data: { @@ -2141,24 +2406,32 @@ export default { }, }, }, - /** Lookup219: cumulus_primitives_parachain_inherent::ParachainInherentData */ + /** + * Lookup219: cumulus_primitives_parachain_inherent::ParachainInherentData + **/ CumulusPrimitivesParachainInherentParachainInherentData: { validationData: "PolkadotPrimitivesV8PersistedValidationData", relayChainState: "SpTrieStorageProof", downwardMessages: "Vec", horizontalMessages: "BTreeMap>", }, - /** Lookup221: polkadot_core_primitives::InboundDownwardMessage */ + /** + * Lookup221: polkadot_core_primitives::InboundDownwardMessage + **/ PolkadotCorePrimitivesInboundDownwardMessage: { sentAt: "u32", msg: "Bytes", }, - /** Lookup224: polkadot_core_primitives::InboundHrmpMessage */ + /** + * Lookup224: polkadot_core_primitives::InboundHrmpMessage + **/ PolkadotCorePrimitivesInboundHrmpMessage: { sentAt: "u32", data: "Bytes", }, - /** Lookup227: cumulus_pallet_parachain_system::pallet::Error */ + /** + * Lookup227: cumulus_pallet_parachain_system::pallet::Error + **/ CumulusPalletParachainSystemError: { _enum: [ "OverlappingUpgrades", @@ -2171,7 +2444,9 @@ export default { "Unauthorized", ], }, - /** Lookup228: pallet_timestamp::pallet::Call */ + /** + * Lookup228: pallet_timestamp::pallet::Call + **/ PalletTimestampCall: { _enum: { set: { @@ -2179,9 +2454,13 @@ export default { }, }, }, - /** Lookup229: staging_parachain_info::pallet::Call */ + /** + * Lookup229: staging_parachain_info::pallet::Call + **/ StagingParachainInfoCall: "Null", - /** Lookup230: pallet_sudo::pallet::Call */ + /** + * Lookup230: pallet_sudo::pallet::Call + **/ PalletSudoCall: { _enum: { sudo: { @@ -2204,7 +2483,9 @@ export default { remove_key: "Null", }, }, - /** Lookup232: pallet_utility::pallet::Call */ + /** + * Lookup232: pallet_utility::pallet::Call + **/ PalletUtilityCall: { _enum: { batch: { @@ -2230,7 +2511,9 @@ export default { }, }, }, - /** Lookup234: dancebox_runtime::OriginCaller */ + /** + * Lookup234: dancebox_runtime::OriginCaller + **/ DanceboxRuntimeOriginCaller: { _enum: { system: "FrameSupportDispatchRawOrigin", @@ -2289,7 +2572,9 @@ export default { PolkadotXcm: "PalletXcmOrigin", }, }, - /** Lookup235: frame_support::dispatch::RawOrigin */ + /** + * Lookup235: frame_support::dispatch::RawOrigin + **/ FrameSupportDispatchRawOrigin: { _enum: { Root: "Null", @@ -2297,23 +2582,31 @@ export default { None: "Null", }, }, - /** Lookup236: cumulus_pallet_xcm::pallet::Origin */ + /** + * Lookup236: cumulus_pallet_xcm::pallet::Origin + **/ CumulusPalletXcmOrigin: { _enum: { Relay: "Null", SiblingParachain: "u32", }, }, - /** Lookup237: pallet_xcm::pallet::Origin */ + /** + * Lookup237: pallet_xcm::pallet::Origin + **/ PalletXcmOrigin: { _enum: { Xcm: "StagingXcmV4Location", Response: "StagingXcmV4Location", }, }, - /** Lookup238: sp_core::Void */ + /** + * Lookup238: sp_core::Void + **/ SpCoreVoid: "Null", - /** Lookup239: pallet_proxy::pallet::Call */ + /** + * Lookup239: pallet_proxy::pallet::Call + **/ PalletProxyCall: { _enum: { proxy: { @@ -2364,11 +2657,15 @@ export default { }, }, }, - /** Lookup243: pallet_maintenance_mode::pallet::Call */ + /** + * Lookup243: pallet_maintenance_mode::pallet::Call + **/ PalletMaintenanceModeCall: { _enum: ["enter_maintenance_mode", "resume_normal_operation"], }, - /** Lookup244: pallet_tx_pause::pallet::Call */ + /** + * Lookup244: pallet_tx_pause::pallet::Call + **/ PalletTxPauseCall: { _enum: { pause: { @@ -2379,7 +2676,9 @@ export default { }, }, }, - /** Lookup245: pallet_balances::pallet::Call */ + /** + * Lookup245: pallet_balances::pallet::Call + **/ PalletBalancesCall: { _enum: { transfer_allow_death: { @@ -2422,11 +2721,15 @@ export default { }, }, }, - /** Lookup247: pallet_balances::types::AdjustmentDirection */ + /** + * Lookup247: pallet_balances::types::AdjustmentDirection + **/ PalletBalancesAdjustmentDirection: { _enum: ["Increase", "Decrease"], }, - /** Lookup248: pallet_stream_payment::pallet::Call */ + /** + * Lookup248: pallet_stream_payment::pallet::Call + **/ PalletStreamPaymentCall: { _enum: { open_stream: { @@ -2461,7 +2764,9 @@ export default { }, }, }, - /** Lookup249: pallet_stream_payment::pallet::ChangeKind