diff --git a/Cargo.lock b/Cargo.lock index bd6c0a602..6c0cbd1b1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -450,18 +450,18 @@ checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] name = "async-trait" -version = "0.1.77" +version = "0.1.78" source = "registry+/~https://github.com/rust-lang/crates.io-index" -checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9" +checksum = "461abc97219de0eaaf81fe3ef974a540158f3d079c2ab200f891f1a2ef201e85" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -551,7 +551,7 @@ checksum = "823b8bb275161044e2ac7a25879cb3e2480cb403e3943022c7c769c599b756aa" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -1174,7 +1174,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -1637,7 +1637,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -1664,7 +1664,7 @@ dependencies = [ "proc-macro2", "quote", "scratch", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -1681,7 +1681,7 @@ checksum = "e2cb1fd8ffae4230c7cfbbaf3698dbeaf750fa8c5dadf7ed897df581b9b572a5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -1970,7 +1970,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -3125,7 +3125,7 @@ dependencies = [ "proc-macro-warning", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -3137,7 +3137,7 @@ dependencies = [ "proc-macro-crate 1.1.3", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -3147,7 +3147,7 @@ source = "git+/~https://github.com/humanode-network/substrate?branch=locked/polkad dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -3332,7 +3332,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -4046,7 +4046,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite 0.2.13", - "socket2 0.4.10", + "socket2 0.5.5", "tokio", "tower-service", "tracing", @@ -5946,7 +5946,7 @@ dependencies = [ "proc-macro-crate 1.1.3", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -5958,7 +5958,7 @@ dependencies = [ "proc-macro-crate 2.0.2", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -6087,7 +6087,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -6904,7 +6904,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -6945,7 +6945,7 @@ checksum = "266c042b60c9c76b8d53061e52b2e0d1116abc57cefc8c5cd671619a56ac3690" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -7177,7 +7177,7 @@ dependencies = [ "proc-macro2", "quote", "sha3 0.9.1", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -7333,7 +7333,7 @@ checksum = "0e99670bafb56b9a106419397343bdbc8b8742c3cc449fec6345f86173f47cd4" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -7738,7 +7738,7 @@ checksum = "5fddb4f8d99b0a2ebafc65a87a69a7b9875e4b1ae1f00db265d300ef7f28bccc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -7811,9 +7811,9 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.11.26" +version = "0.11.27" source = "registry+/~https://github.com/rust-lang/crates.io-index" -checksum = "78bf93c4af7a8bb7d879d51cebe797356ff10ae8516ace542b5182d9dcac10b2" +checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" dependencies = [ "base64 0.21.7", "bytes", @@ -8346,7 +8346,7 @@ dependencies = [ "proc-macro-crate 1.1.3", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -9220,7 +9220,7 @@ dependencies = [ "proc-macro-crate 1.1.3", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -9530,7 +9530,7 @@ checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -9874,7 +9874,7 @@ dependencies = [ "proc-macro-crate 1.1.3", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -10084,7 +10084,7 @@ dependencies = [ "proc-macro2", "quote", "sp-core-hashing", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -10103,7 +10103,7 @@ source = "git+/~https://github.com/humanode-network/substrate?branch=locked/polkad dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -10282,7 +10282,7 @@ dependencies = [ "proc-macro-crate 1.1.3", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -10450,7 +10450,7 @@ dependencies = [ "parity-scale-codec", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -10759,7 +10759,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -10883,9 +10883,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.52" +version = "2.0.53" source = "registry+/~https://github.com/rust-lang/crates.io-index" -checksum = "b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07" +checksum = "7383cd0e49fff4b6b90ca5670bfd3e9d6a733b3f90c686605aa7eec8c4996032" dependencies = [ "proc-macro2", "quote", @@ -10987,7 +10987,7 @@ checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -11138,7 +11138,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -11326,7 +11326,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -11782,9 +11782,9 @@ checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" [[package]] name = "uuid" -version = "1.7.0" +version = "1.8.0" source = "registry+/~https://github.com/rust-lang/crates.io-index" -checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a" +checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0" dependencies = [ "getrandom 0.2.12", ] @@ -11949,7 +11949,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", "wasm-bindgen-shared", ] @@ -11983,7 +11983,7 @@ checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -12976,7 +12976,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] @@ -12996,7 +12996,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.53", ] [[package]] diff --git a/crates/humanode-runtime/src/deauthentication_reason.rs b/crates/humanode-runtime/src/deauthentication_reason.rs new file mode 100644 index 000000000..71fd78a78 --- /dev/null +++ b/crates/humanode-runtime/src/deauthentication_reason.rs @@ -0,0 +1,13 @@ +//! `DeauthenticationReason` implementation to define reasons by which authentication is removed +//! before expected time expiration. + +use codec::{Decode, Encode}; +use scale_info::TypeInfo; +use sp_std::prelude::*; + +/// Define a possible deauthentication reason. +#[derive(Clone, PartialEq, Debug, Encode, Decode, TypeInfo)] +pub enum DeauthenticationReason { + /// Some offence has been recevied. + Offence, +} diff --git a/crates/humanode-runtime/src/lib.rs b/crates/humanode-runtime/src/lib.rs index 9df37325c..3ecb49a1c 100644 --- a/crates/humanode-runtime/src/lib.rs +++ b/crates/humanode-runtime/src/lib.rs @@ -86,6 +86,7 @@ use frontier_precompiles::{precompiles_constants, FrontierPrecompiles}; mod benchmarking; pub mod constants; mod currency_swap; +mod deauthentication_reason; #[cfg(test)] mod dev_utils; mod display_moment; @@ -107,6 +108,7 @@ pub use constants::{ ethereum::EXTRA_DATA_LENGTH, im_online::{MAX_KEYS, MAX_PEER_DATA_ENCODING_SIZE, MAX_PEER_IN_HEARTBEATS}, }; +use deauthentication_reason::DeauthenticationReason; use static_assertions::const_assert; /// An index to a block. @@ -539,6 +541,7 @@ impl pallet_bioauth::Config for Runtime { type MaxNonces = ConstU32; type BeforeAuthHook = (); type AfterAuthHook = (); + type DeauthenticationReason = DeauthenticationReason; } #[cfg(feature = "runtime-benchmarks")] @@ -589,19 +592,31 @@ impl } let mut weight: Weight = Weight::zero(); let weights = ::DbWeight::get(); + let mut should_be_deauthenticated = Vec::with_capacity(offenders.len()); for details in offenders { let (_offender, identity) = &details.offender; match identity { pallet_humanode_session::Identification::Bioauth(authentication) => { - let has_deauthenticated = Bioauth::deauthenticate(&authentication.public_key); - weight = weight - .saturating_add(weights.reads_writes(1, u64::from(has_deauthenticated))); + should_be_deauthenticated.push(authentication.public_key.clone()); } pallet_humanode_session::Identification::Bootnode(..) => { // Never slash the bootnodes. } } } + if !should_be_deauthenticated.is_empty() { + let deauthenticated_public_keys = + Bioauth::deauthenticate(should_be_deauthenticated, DeauthenticationReason::Offence); + weight = weight.saturating_add( + weights.reads_writes( + 1, + deauthenticated_public_keys + .len() + .try_into() + .expect("casting usize to u64 never fails in 64bit and 32bit word cpus"), + ), + ); + } weight } } diff --git a/crates/pallet-bioauth/src/lib.rs b/crates/pallet-bioauth/src/lib.rs index b84a4c847..ec428f5ad 100644 --- a/crates/pallet-bioauth/src/lib.rs +++ b/crates/pallet-bioauth/src/lib.rs @@ -268,6 +268,9 @@ pub mod pallet { type AfterAuthHook: AfterAuthHook< >::Data, >; + + /// Possible deauthentication reason. + type DeauthenticationReason: Clone + PartialEq + Debug; } #[pallet::pallet] @@ -334,6 +337,13 @@ pub mod pallet { NewAuthentication { validator_public_key: T::ValidatorPublicKey, }, + /// The authentications has been expired. + AuthenticationsExpired { expired: Vec }, + /// The authentications has been removed from the state for some reason. + AuthenticationsRemoved { + removed: Vec, + reason: T::DeauthenticationReason, + }, } /// Possible error conditions during `authenticate` call processing. @@ -393,18 +403,28 @@ pub mod pallet { .any(|authentication| &authentication.public_key == public_key) } - pub fn deauthenticate(public_key: &::ValidatorPublicKey) -> bool { + pub fn deauthenticate( + public_keys: Vec<::ValidatorPublicKey>, + reason: ::DeauthenticationReason, + ) -> Vec<::ValidatorPublicKey> { + let mut removed_public_keys = Vec::with_capacity(public_keys.len()); ActiveAuthentications::::mutate(|active_authentications| { - let mut removed = false; active_authentications.retain(|authentication| { - if &authentication.public_key == public_key { - removed = true; + if public_keys.contains(&authentication.public_key) { + removed_public_keys.push(authentication.public_key.clone()); return false; } true }); - removed - }) + }); + if !removed_public_keys.is_empty() { + // Emit an event. + Self::deposit_event(Event::AuthenticationsRemoved { + removed: removed_public_keys.clone(), + reason, + }); + } + removed_public_keys } } @@ -523,12 +543,19 @@ pub mod pallet { let current_moment = T::CurrentMoment::now(); let possibly_expired_authentications = >::get(); let possibly_expired_authentications_len = possibly_expired_authentications.len(); - let active_authentications = possibly_expired_authentications - .into_iter() - .filter(|possibly_expired_authentication| { - possibly_expired_authentication.expires_at > current_moment - }) - .collect::>(); + let mut expired_validator_public_keys = + Vec::with_capacity(possibly_expired_authentications_len); + let mut active_authentications = + Vec::with_capacity(possibly_expired_authentications_len); + for possibly_expired_authentication in possibly_expired_authentications { + if possibly_expired_authentication.expires_at > current_moment { + // Still active. + active_authentications.push(possibly_expired_authentication); + } else { + // Expired! + expired_validator_public_keys.push(possibly_expired_authentication.public_key) + } + } let update_required = possibly_expired_authentications_len != active_authentications.len(); @@ -541,6 +568,10 @@ pub mod pallet { ); Self::issue_validators_set_update(active_authentications.as_slice()); >::put(bounded_active_authentications); + + Self::deposit_event(Event::AuthenticationsExpired { + expired: expired_validator_public_keys, + }); } // Weight: O(M) where M is the number of auths. diff --git a/crates/pallet-bioauth/src/mock/benchmarking.rs b/crates/pallet-bioauth/src/mock/benchmarking.rs index 4b47b38f7..8be2d33ec 100644 --- a/crates/pallet-bioauth/src/mock/benchmarking.rs +++ b/crates/pallet-bioauth/src/mock/benchmarking.rs @@ -188,6 +188,7 @@ impl pallet_bioauth::Config for Benchmark { type MaxNonces = ConstU32; type BeforeAuthHook = (); type AfterAuthHook = (); + type DeauthenticationReason = (); } #[cfg(feature = "runtime-benchmarks")] diff --git a/crates/pallet-bioauth/src/mock/testing.rs b/crates/pallet-bioauth/src/mock/testing.rs index 8d97640d2..5fd6b2f9d 100644 --- a/crates/pallet-bioauth/src/mock/testing.rs +++ b/crates/pallet-bioauth/src/mock/testing.rs @@ -269,6 +269,7 @@ impl pallet_bioauth::Config for Test { type MaxNonces = ConstU32; type BeforeAuthHook = MockBeforeAuthHookProvider; type AfterAuthHook = MockAfterAuthHookProvider; + type DeauthenticationReason = (); } /// Build test externalities from the default genesis. diff --git a/crates/precompile-bioauth/src/mock.rs b/crates/precompile-bioauth/src/mock.rs index 955337a9b..bf3544d7c 100644 --- a/crates/precompile-bioauth/src/mock.rs +++ b/crates/precompile-bioauth/src/mock.rs @@ -182,6 +182,7 @@ impl pallet_bioauth::Config for Test { type MaxNonces = ConstU32; type BeforeAuthHook = (); type AfterAuthHook = (); + type DeauthenticationReason = (); } mock! { diff --git a/utils/checks/snapshots/features.yaml b/utils/checks/snapshots/features.yaml index 202aacffa..dd585801c 100644 --- a/utils/checks/snapshots/features.yaml +++ b/utils/checks/snapshots/features.yaml @@ -137,7 +137,7 @@ features: - default - std -- name: async-trait 0.1.77 +- name: async-trait 0.1.78 features: [] - name: asynchronous-codec 0.6.2 features: @@ -2604,7 +2604,7 @@ - unicode-segment - name: region 3.0.0 features: [] -- name: reqwest 0.11.26 +- name: reqwest 0.11.27 features: - __tls - default @@ -3457,7 +3457,7 @@ - quote - visit - visit-mut -- name: syn 2.0.52 +- name: syn 2.0.53 features: - clone-impls - default @@ -3813,7 +3813,7 @@ - name: utf8parse 0.2.1 features: - default -- name: uuid 1.7.0 +- name: uuid 1.8.0 features: - default - rng diff --git a/utils/e2e-tests/bash/package.json b/utils/e2e-tests/bash/package.json index 9643c8ef6..c655fa715 100644 --- a/utils/e2e-tests/bash/package.json +++ b/utils/e2e-tests/bash/package.json @@ -4,6 +4,6 @@ "private": true, "type": "module", "dependencies": { - "@polkadot/api-cli": "^0.56.3" + "@polkadot/api-cli": "^0.56.5" } } diff --git a/utils/e2e-tests/ts/package.json b/utils/e2e-tests/ts/package.json index 548ad5923..342cb267a 100644 --- a/utils/e2e-tests/ts/package.json +++ b/utils/e2e-tests/ts/package.json @@ -9,12 +9,12 @@ }, "dependencies": { "@polkadot/api": "^10.12.2", - "@types/node": "16.18.87", - "@vitest/expect": "^1.3.1", - "axios": "^1.6.7", + "@types/node": "16.18.89", + "@vitest/expect": "^1.4.0", + "axios": "^1.6.8", "ethers": "^6.11.1", "typescript": "^5.4.2", - "viem": "^2.7.22", - "vitest": "^1.3.1" + "viem": "^2.8.11", + "vitest": "^1.4.0" } } diff --git a/yarn.lock b/yarn.lock index 9736304bc..f7f03303c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -315,22 +315,7 @@ __metadata: languageName: node linkType: hard -"@polkadot/api-augment@npm:10.12.1, @polkadot/api-augment@npm:^10.11.3": - version: 10.12.1 - resolution: "@polkadot/api-augment@npm:10.12.1" - dependencies: - "@polkadot/api-base": 10.12.1 - "@polkadot/rpc-augment": 10.12.1 - "@polkadot/types": 10.12.1 - "@polkadot/types-augment": 10.12.1 - "@polkadot/types-codec": 10.12.1 - "@polkadot/util": ^12.6.2 - tslib: ^2.6.2 - checksum: 430f4eba309cc7d4d3508d1bc5d949d6312cb96739a93a257f490ff0261d20a4b61a894afcbb13661f4a5e40060f5080a3c710c619b98a0e39e249cdb668072e - languageName: node - linkType: hard - -"@polkadot/api-augment@npm:10.12.2": +"@polkadot/api-augment@npm:10.12.2, @polkadot/api-augment@npm:^10.12.2": version: 10.12.2 resolution: "@polkadot/api-augment@npm:10.12.2" dependencies: @@ -345,19 +330,6 @@ __metadata: languageName: node linkType: hard -"@polkadot/api-base@npm:10.12.1": - version: 10.12.1 - resolution: "@polkadot/api-base@npm:10.12.1" - dependencies: - "@polkadot/rpc-core": 10.12.1 - "@polkadot/types": 10.12.1 - "@polkadot/util": ^12.6.2 - rxjs: ^7.8.1 - tslib: ^2.6.2 - checksum: 9eb9ccdfae93e5bd333bb669dde00e2ed1242142d689f49ae56b501fbfcd5981018eec31e3d7539bc345ebaf856d0c57cc971a2e62f6f1f914ffe68b9eee4544 - languageName: node - linkType: hard - "@polkadot/api-base@npm:10.12.2": version: 10.12.2 resolution: "@polkadot/api-base@npm:10.12.2" @@ -371,39 +343,21 @@ __metadata: languageName: node linkType: hard -"@polkadot/api-cli@npm:^0.56.3": - version: 0.56.3 - resolution: "@polkadot/api-cli@npm:0.56.3" +"@polkadot/api-cli@npm:^0.56.5": + version: 0.56.5 + resolution: "@polkadot/api-cli@npm:0.56.5" dependencies: - "@polkadot/api": ^10.11.3 - "@polkadot/api-augment": ^10.11.3 + "@polkadot/api": ^10.12.2 + "@polkadot/api-augment": ^10.12.2 "@polkadot/keyring": ^12.6.2 - "@polkadot/types": ^10.11.3 + "@polkadot/types": ^10.12.2 "@polkadot/util": ^12.6.2 "@polkadot/util-crypto": ^12.6.2 tslib: ^2.6.2 yargs: ^17.7.2 bin: polkadot-js-api: runcli.mjs - checksum: 2e4ef80ac22499c0f9c838ec8b951c44a9be2cbd2d23e4c99774d19643ec92172013d8958d4d70d20a51d14cdce92b5bbee04556c11fcb44ee5d594d6062ed58 - languageName: node - linkType: hard - -"@polkadot/api-derive@npm:10.12.1": - version: 10.12.1 - resolution: "@polkadot/api-derive@npm:10.12.1" - dependencies: - "@polkadot/api": 10.12.1 - "@polkadot/api-augment": 10.12.1 - "@polkadot/api-base": 10.12.1 - "@polkadot/rpc-core": 10.12.1 - "@polkadot/types": 10.12.1 - "@polkadot/types-codec": 10.12.1 - "@polkadot/util": ^12.6.2 - "@polkadot/util-crypto": ^12.6.2 - rxjs: ^7.8.1 - tslib: ^2.6.2 - checksum: fdd725f8b28b4f213e2b61ab6e99cddff26add60cd9a605ebf59b210c9f1a8b79879c169d13e9a0ff712cec9fd64281a235c704c08a3877b33b349a7b13c00c4 + checksum: 21ca359c94b46a0f1674f32dc845614904de2826ccc2bd520e01dbbaa3bcf9d3fc70254c26a2447cc89f4a57baa642787d26679e829e5d0d649987e6f11a0d74 languageName: node linkType: hard @@ -425,31 +379,6 @@ __metadata: languageName: node linkType: hard -"@polkadot/api@npm:10.12.1, @polkadot/api@npm:^10.11.3": - version: 10.12.1 - resolution: "@polkadot/api@npm:10.12.1" - dependencies: - "@polkadot/api-augment": 10.12.1 - "@polkadot/api-base": 10.12.1 - "@polkadot/api-derive": 10.12.1 - "@polkadot/keyring": ^12.6.2 - "@polkadot/rpc-augment": 10.12.1 - "@polkadot/rpc-core": 10.12.1 - "@polkadot/rpc-provider": 10.12.1 - "@polkadot/types": 10.12.1 - "@polkadot/types-augment": 10.12.1 - "@polkadot/types-codec": 10.12.1 - "@polkadot/types-create": 10.12.1 - "@polkadot/types-known": 10.12.1 - "@polkadot/util": ^12.6.2 - "@polkadot/util-crypto": ^12.6.2 - eventemitter3: ^5.0.1 - rxjs: ^7.8.1 - tslib: ^2.6.2 - checksum: 25ef0b7ae5fbc740a9a0e4fd2536475ec473edfe29f94a97b5ea776c7d02b6a95a937564e7a171a459d678784818053a7444dff8302fafc594241f8db29ab440 - languageName: node - linkType: hard - "@polkadot/api@npm:10.12.2, @polkadot/api@npm:^10.12.2": version: 10.12.2 resolution: "@polkadot/api@npm:10.12.2" @@ -500,19 +429,6 @@ __metadata: languageName: node linkType: hard -"@polkadot/rpc-augment@npm:10.12.1": - version: 10.12.1 - resolution: "@polkadot/rpc-augment@npm:10.12.1" - dependencies: - "@polkadot/rpc-core": 10.12.1 - "@polkadot/types": 10.12.1 - "@polkadot/types-codec": 10.12.1 - "@polkadot/util": ^12.6.2 - tslib: ^2.6.2 - checksum: 845ea139f6526de67de1afb7e0f4542e29b63af3efdc98934676031eb174b84e49a17a212f06441c400cd234453414f78fff2b8b0c0c5cd54d2364cf2fbb6010 - languageName: node - linkType: hard - "@polkadot/rpc-augment@npm:10.12.2": version: 10.12.2 resolution: "@polkadot/rpc-augment@npm:10.12.2" @@ -526,20 +442,6 @@ __metadata: languageName: node linkType: hard -"@polkadot/rpc-core@npm:10.12.1": - version: 10.12.1 - resolution: "@polkadot/rpc-core@npm:10.12.1" - dependencies: - "@polkadot/rpc-augment": 10.12.1 - "@polkadot/rpc-provider": 10.12.1 - "@polkadot/types": 10.12.1 - "@polkadot/util": ^12.6.2 - rxjs: ^7.8.1 - tslib: ^2.6.2 - checksum: d9f12597110e237fbb0f8f1c4c86cc8fcc598eddfd4ace0de00928fae446f3ddd8208183b462984738c149048cd51c9556c76d12568b27b77cc6ede4177db700 - languageName: node - linkType: hard - "@polkadot/rpc-core@npm:10.12.2": version: 10.12.2 resolution: "@polkadot/rpc-core@npm:10.12.2" @@ -554,30 +456,6 @@ __metadata: languageName: node linkType: hard -"@polkadot/rpc-provider@npm:10.12.1": - version: 10.12.1 - resolution: "@polkadot/rpc-provider@npm:10.12.1" - dependencies: - "@polkadot/keyring": ^12.6.2 - "@polkadot/types": 10.12.1 - "@polkadot/types-support": 10.12.1 - "@polkadot/util": ^12.6.2 - "@polkadot/util-crypto": ^12.6.2 - "@polkadot/x-fetch": ^12.6.2 - "@polkadot/x-global": ^12.6.2 - "@polkadot/x-ws": ^12.6.2 - "@substrate/connect": 0.8.7 - eventemitter3: ^5.0.1 - mock-socket: ^9.3.1 - nock: ^13.5.0 - tslib: ^2.6.2 - dependenciesMeta: - "@substrate/connect": - optional: true - checksum: 29246fa825be3f4f2eb34d63a1ef17ecda1b2e6423cfcb6c119ecbfdf15c18230d085fc111ff4739c07748cc3923a4829ec5deefaebb54b8b6a1252b80d5da39 - languageName: node - linkType: hard - "@polkadot/rpc-provider@npm:10.12.2": version: 10.12.2 resolution: "@polkadot/rpc-provider@npm:10.12.2" @@ -602,18 +480,6 @@ __metadata: languageName: node linkType: hard -"@polkadot/types-augment@npm:10.12.1": - version: 10.12.1 - resolution: "@polkadot/types-augment@npm:10.12.1" - dependencies: - "@polkadot/types": 10.12.1 - "@polkadot/types-codec": 10.12.1 - "@polkadot/util": ^12.6.2 - tslib: ^2.6.2 - checksum: eec5f93331174a587dd804fe4f00b5409b7f775af3d8b8db3289d804d165a1a840311d44e54beaacf0b1ae323ac51905725aad32f9e48ff68a84a3afec03e726 - languageName: node - linkType: hard - "@polkadot/types-augment@npm:10.12.2": version: 10.12.2 resolution: "@polkadot/types-augment@npm:10.12.2" @@ -626,17 +492,6 @@ __metadata: languageName: node linkType: hard -"@polkadot/types-codec@npm:10.12.1": - version: 10.12.1 - resolution: "@polkadot/types-codec@npm:10.12.1" - dependencies: - "@polkadot/util": ^12.6.2 - "@polkadot/x-bigint": ^12.6.2 - tslib: ^2.6.2 - checksum: 800f4172d0504d860e97f6894a8f43bde5ae20abe9f7b0a3a0e85cb8cfbeb80ce77fb381bda49d1defe30f4756939649b607dc4c3660e40c335e1b21651f28e5 - languageName: node - linkType: hard - "@polkadot/types-codec@npm:10.12.2": version: 10.12.2 resolution: "@polkadot/types-codec@npm:10.12.2" @@ -648,17 +503,6 @@ __metadata: languageName: node linkType: hard -"@polkadot/types-create@npm:10.12.1": - version: 10.12.1 - resolution: "@polkadot/types-create@npm:10.12.1" - dependencies: - "@polkadot/types-codec": 10.12.1 - "@polkadot/util": ^12.6.2 - tslib: ^2.6.2 - checksum: ff051f75c5e692f89de4e7686311a66e7b889a398efefcd373a67a18796c06a80266eed55726a97850b1e4e430ca13004895394a8e368acbe5e030e55c20269f - languageName: node - linkType: hard - "@polkadot/types-create@npm:10.12.2": version: 10.12.2 resolution: "@polkadot/types-create@npm:10.12.2" @@ -670,20 +514,6 @@ __metadata: languageName: node linkType: hard -"@polkadot/types-known@npm:10.12.1": - version: 10.12.1 - resolution: "@polkadot/types-known@npm:10.12.1" - dependencies: - "@polkadot/networks": ^12.6.2 - "@polkadot/types": 10.12.1 - "@polkadot/types-codec": 10.12.1 - "@polkadot/types-create": 10.12.1 - "@polkadot/util": ^12.6.2 - tslib: ^2.6.2 - checksum: dbd4b4ac107908606d24fc5ec1a5be9cc1a972d1345b45908b310dae7fe09fc9f4f49c03edbec4694ed8b2de4c771f98ec228aa155a968b13e82513f33db9eeb - languageName: node - linkType: hard - "@polkadot/types-known@npm:10.12.2": version: 10.12.2 resolution: "@polkadot/types-known@npm:10.12.2" @@ -698,16 +528,6 @@ __metadata: languageName: node linkType: hard -"@polkadot/types-support@npm:10.12.1": - version: 10.12.1 - resolution: "@polkadot/types-support@npm:10.12.1" - dependencies: - "@polkadot/util": ^12.6.2 - tslib: ^2.6.2 - checksum: a6eb886fb0e1c56f7c22e96a9255d6dac53fd4e30248c96950867a58854b542943b9143a69052b3b73a596ec2b2665b8857ed98267acf0e55fbeebb1670ca125 - languageName: node - linkType: hard - "@polkadot/types-support@npm:10.12.2": version: 10.12.2 resolution: "@polkadot/types-support@npm:10.12.2" @@ -718,23 +538,7 @@ __metadata: languageName: node linkType: hard -"@polkadot/types@npm:10.12.1, @polkadot/types@npm:^10.11.3": - version: 10.12.1 - resolution: "@polkadot/types@npm:10.12.1" - dependencies: - "@polkadot/keyring": ^12.6.2 - "@polkadot/types-augment": 10.12.1 - "@polkadot/types-codec": 10.12.1 - "@polkadot/types-create": 10.12.1 - "@polkadot/util": ^12.6.2 - "@polkadot/util-crypto": ^12.6.2 - rxjs: ^7.8.1 - tslib: ^2.6.2 - checksum: 6184f50bef018b1fa11e3caaf851dc6fc7510c3dc56f81cfbde1b401f30ddd8ac73083770af41f3c8b3aa76beb4784d9ddb772460ab77c933628385090ab290c - languageName: node - linkType: hard - -"@polkadot/types@npm:10.12.2": +"@polkadot/types@npm:10.12.2, @polkadot/types@npm:^10.12.2": version: 10.12.2 resolution: "@polkadot/types@npm:10.12.2" dependencies: @@ -1152,10 +956,10 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:16.18.87": - version: 16.18.87 - resolution: "@types/node@npm:16.18.87" - checksum: 86b75acc212d2c428d3510913dda1ab739688e2992968f1495f561f375b5eb7fa7d181a03a195fd238cb785533c637114d40924d022b9099389867958ecbd256 +"@types/node@npm:16.18.89": + version: 16.18.89 + resolution: "@types/node@npm:16.18.89" + checksum: d977f2ebc3200b94beaab7312b916e5de9d1fc3bc0a9101b21dd6f3d18f283be62541775b650c050ab439195bc0ef14136fe03c7daab5dcef5f7e22bf1bb9aa5 languageName: node linkType: hard @@ -1166,57 +970,57 @@ __metadata: languageName: node linkType: hard -"@vitest/expect@npm:1.3.1, @vitest/expect@npm:^1.3.1": - version: 1.3.1 - resolution: "@vitest/expect@npm:1.3.1" +"@vitest/expect@npm:1.4.0, @vitest/expect@npm:^1.4.0": + version: 1.4.0 + resolution: "@vitest/expect@npm:1.4.0" dependencies: - "@vitest/spy": 1.3.1 - "@vitest/utils": 1.3.1 + "@vitest/spy": 1.4.0 + "@vitest/utils": 1.4.0 chai: ^4.3.10 - checksum: 3626b02f0471c9be3a86f599cf8fcdeb3fc01f121390c5e4a2badfa3191052f7ea7b41f75991a08021ef96214e62c4750fbea58e32b48bf6132e03aee68d1f14 + checksum: aca8b0b592bc020febb08767a230a2f4118453904972df06b2a34c76a669e8eb260ddfd8b0cdc152e93dbf21e0d7ae98bdf09fa80477b21145ac21c01fc5a0d3 languageName: node linkType: hard -"@vitest/runner@npm:1.3.1": - version: 1.3.1 - resolution: "@vitest/runner@npm:1.3.1" +"@vitest/runner@npm:1.4.0": + version: 1.4.0 + resolution: "@vitest/runner@npm:1.4.0" dependencies: - "@vitest/utils": 1.3.1 + "@vitest/utils": 1.4.0 p-limit: ^5.0.0 pathe: ^1.1.1 - checksum: 86dfb4d485b2db4a120d853a93f017ab43001f18cdceba487f81b62bfbb26ea58cf9545e42a3bfed9c1181ca42547c5c6d5e5d580e299e841d70546b3db8f987 + checksum: 41a847d1ba916c64e482a69342222a40b81014ad06da7ccb7d8cd4119c5718564c22b00367574803642e6ca6ab5678509073b5c460bedc2b385d4e990351012f languageName: node linkType: hard -"@vitest/snapshot@npm:1.3.1": - version: 1.3.1 - resolution: "@vitest/snapshot@npm:1.3.1" +"@vitest/snapshot@npm:1.4.0": + version: 1.4.0 + resolution: "@vitest/snapshot@npm:1.4.0" dependencies: magic-string: ^0.30.5 pathe: ^1.1.1 pretty-format: ^29.7.0 - checksum: 5feb485bce446316594fff955a32dff68294f24dbcaeeea3a04175306d9319e62419a63c038d580db412c308c529c3fbaa5ea21365e9a3c4f1ed7e774e58de75 + checksum: fe495661d682534b41f3ac373c017ac84c04263087a715307715bb41a69c307d6f237b18cc8195bc22d82bf38a1a1a773b0c99715d5de5f40c6169e916b8f4a4 languageName: node linkType: hard -"@vitest/spy@npm:1.3.1": - version: 1.3.1 - resolution: "@vitest/spy@npm:1.3.1" +"@vitest/spy@npm:1.4.0": + version: 1.4.0 + resolution: "@vitest/spy@npm:1.4.0" dependencies: tinyspy: ^2.2.0 - checksum: f52e4d23822fe69369224327a33466dc373619ed239ff6142ed0abea857e9b102bb7630c3987d8493af7273eee579d9190d647a3e9f83774603ac7d29b849747 + checksum: 3b1c422760e5840e9e4aa804de7619f3d14e0b364b29f8f030df528206b84c5706792c5d680ac668077d5663f8648a17a783df11cd90ddf2a11000359f1a6286 languageName: node linkType: hard -"@vitest/utils@npm:1.3.1": - version: 1.3.1 - resolution: "@vitest/utils@npm:1.3.1" +"@vitest/utils@npm:1.4.0": + version: 1.4.0 + resolution: "@vitest/utils@npm:1.4.0" dependencies: diff-sequences: ^29.6.3 estree-walker: ^3.0.3 loupe: ^2.3.7 pretty-format: ^29.7.0 - checksum: dab1f66c223a4de90d01a9ba03a6110edd110794675a9e73a2b3af689bbaee2371a0a0afd93e6b9447bcf61659c60727ece343a3e04b734f178f542a53586ef0 + checksum: 5b54e36e5ad236da1da548d31e3b080d1798179f787cfb9ac512d03e59401f8baaa96fec15b6de6b969ee0e057660289109a69a39bd988e89aa72625b5f78484 languageName: node linkType: hard @@ -1370,14 +1174,14 @@ __metadata: languageName: node linkType: hard -"axios@npm:^1.6.7": - version: 1.6.7 - resolution: "axios@npm:1.6.7" +"axios@npm:^1.6.8": + version: 1.6.8 + resolution: "axios@npm:1.6.8" dependencies: - follow-redirects: ^1.15.4 + follow-redirects: ^1.15.6 form-data: ^4.0.0 proxy-from-env: ^1.1.0 - checksum: 87d4d429927d09942771f3b3a6c13580c183e31d7be0ee12f09be6d5655304996bb033d85e54be81606f4e89684df43be7bf52d14becb73a12727bf33298a082 + checksum: bf007fa4b207d102459300698620b3b0873503c6d47bf5a8f6e43c0c64c90035a4f698b55027ca1958f61ab43723df2781c38a99711848d232cad7accbcdfcdd languageName: node linkType: hard @@ -1791,7 +1595,7 @@ __metadata: languageName: node linkType: hard -"follow-redirects@npm:^1.15.4": +"follow-redirects@npm:^1.15.6": version: 1.15.6 resolution: "follow-redirects@npm:1.15.6" peerDependenciesMeta: @@ -2022,7 +1826,7 @@ __metadata: version: 0.0.0-use.local resolution: "humanode-e2e-tests-bash@workspace:utils/e2e-tests/bash" dependencies: - "@polkadot/api-cli": ^0.56.3 + "@polkadot/api-cli": ^0.56.5 languageName: unknown linkType: soft @@ -2031,13 +1835,13 @@ __metadata: resolution: "humanode-e2e-tests-ts@workspace:utils/e2e-tests/ts" dependencies: "@polkadot/api": ^10.12.2 - "@types/node": 16.18.87 - "@vitest/expect": ^1.3.1 - axios: ^1.6.7 + "@types/node": 16.18.89 + "@vitest/expect": ^1.4.0 + axios: ^1.6.8 ethers: ^6.11.1 typescript: ^5.4.2 - viem: ^2.7.22 - vitest: ^1.3.1 + viem: ^2.8.11 + vitest: ^1.4.0 languageName: unknown linkType: soft @@ -3131,9 +2935,9 @@ __metadata: languageName: node linkType: hard -"viem@npm:^2.7.22": - version: 2.7.22 - resolution: "viem@npm:2.7.22" +"viem@npm:^2.8.11": + version: 2.8.11 + resolution: "viem@npm:2.8.11" dependencies: "@adraffy/ens-normalize": 1.10.0 "@noble/curves": 1.2.0 @@ -3148,13 +2952,13 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 1c06e0fd3fe4878f8049b7a32f3d30671a542500ac4e28cd0cf46ead67f86ee9cc474d455b90f7ee9e0e5611a99552fbf7f7a8a8ead88303993ddbea113c98aa + checksum: 7cfbf56e0f4e1e8639c9a5c549810359cdcab8e01aa99deaece180224ab4ab41161b665752fbe420e948a80a940dcd7af715e8b8e3de6e7b5bd9df9f160b90aa languageName: node linkType: hard -"vite-node@npm:1.3.1": - version: 1.3.1 - resolution: "vite-node@npm:1.3.1" +"vite-node@npm:1.4.0": + version: 1.4.0 + resolution: "vite-node@npm:1.4.0" dependencies: cac: ^6.7.14 debug: ^4.3.4 @@ -3163,7 +2967,7 @@ __metadata: vite: ^5.0.0 bin: vite-node: vite-node.mjs - checksum: 62a0bd2cdb70160b5107011d10f60d76e8ede6dbad1dcac99d57e4b4c0b21683e40a7e6088b7e221a4db0b70fb83ace8e13a0f1c5bf1c0d38e2bf9c0bab17b17 + checksum: 1abbeac935a5e1e3b6161974ae28b6a3ec88766b06bc082ab3f2883345ee74f5643f3004df1c7808c2b52d445ffbd067bb79a1a3920c2eaa7ca8084b11b7de46 languageName: node linkType: hard @@ -3207,15 +3011,15 @@ __metadata: languageName: node linkType: hard -"vitest@npm:^1.3.1": - version: 1.3.1 - resolution: "vitest@npm:1.3.1" +"vitest@npm:^1.4.0": + version: 1.4.0 + resolution: "vitest@npm:1.4.0" dependencies: - "@vitest/expect": 1.3.1 - "@vitest/runner": 1.3.1 - "@vitest/snapshot": 1.3.1 - "@vitest/spy": 1.3.1 - "@vitest/utils": 1.3.1 + "@vitest/expect": 1.4.0 + "@vitest/runner": 1.4.0 + "@vitest/snapshot": 1.4.0 + "@vitest/spy": 1.4.0 + "@vitest/utils": 1.4.0 acorn-walk: ^8.3.2 chai: ^4.3.10 debug: ^4.3.4 @@ -3229,13 +3033,13 @@ __metadata: tinybench: ^2.5.1 tinypool: ^0.8.2 vite: ^5.0.0 - vite-node: 1.3.1 + vite-node: 1.4.0 why-is-node-running: ^2.2.2 peerDependencies: "@edge-runtime/vm": "*" "@types/node": ^18.0.0 || >=20.0.0 - "@vitest/browser": 1.3.1 - "@vitest/ui": 1.3.1 + "@vitest/browser": 1.4.0 + "@vitest/ui": 1.4.0 happy-dom: "*" jsdom: "*" peerDependenciesMeta: @@ -3253,7 +3057,7 @@ __metadata: optional: true bin: vitest: vitest.mjs - checksum: 6f760296d825537ca69b7ff321ab839385d26336aefd7b52aac6e16cfcb3e5b3dfda31e51315f2be9f7aebdc87db5ce6739294ebc3f9c4ca256dff96ee0c06ed + checksum: e7141c0ecc629c350d8c718051fb19219ca88a100d335fedbe481c4320f285380e3235316a69a330514c34663fcafa37c801151162d0a538e92821e7faad71a6 languageName: node linkType: hard