-
Notifications
You must be signed in to change notification settings - Fork 157
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Identity system for Subnets and Root-validators (#191)
* Start identity pallet * Rename identity to registry, import some FRAME types for identity fields * Add IdentityUpdated event * Finish set_identity and clear_identity extrinsic implementations * Add types to handle storage of identities on-chain * Remove unused import * Add benchmarking and WeightInfo for pallet_registry * Add is_subnet_owner util function, implement can_register to only allow identities for root validators and subnet owners * Use is_hotkey_registered_on_network over get_axon_info for CanRegisterIdentity * Allow specification of hotkey-coldkey pair when registering identity * Add Raw33 -> Raw64 fields for larger identity fields * Fix errors caused by Raw type bounds at 32 * Fix set_identity using wrong address when inserting data into storage * Update clear_identity to allow for identified argument
- Loading branch information
Ayden Brewer
authored
Nov 15, 2023
1 parent
6d64fd1
commit ade3028
Showing
13 changed files
with
1,164 additions
and
61 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,121 @@ | ||
{{header}} | ||
//! Autogenerated weights for `{{pallet}}` | ||
//! | ||
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION {{version}} | ||
//! DATE: {{date}}, STEPS: `{{cmd.steps}}`, REPEAT: `{{cmd.repeat}}`, LOW RANGE: `{{cmd.lowest_range_values}}`, HIGH RANGE: `{{cmd.highest_range_values}}` | ||
//! WORST CASE MAP SIZE: `{{cmd.worst_case_map_values}}` | ||
//! HOSTNAME: `{{hostname}}`, CPU: `{{cpuname}}` | ||
//! WASM-EXECUTION: `{{cmd.wasm_execution}}`, CHAIN: `{{cmd.chain}}`, DB CACHE: `{{cmd.db_cache}}` | ||
|
||
// Executed Command: | ||
{{#each args as |arg|}} | ||
// {{arg}} | ||
{{/each}} | ||
|
||
#![cfg_attr(rustfmt, rustfmt_skip)] | ||
#![allow(unused_parens)] | ||
#![allow(unused_imports)] | ||
#![allow(missing_docs)] | ||
|
||
use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; | ||
use core::marker::PhantomData; | ||
|
||
/// Weight functions needed for `{{pallet}}`. | ||
pub trait WeightInfo { | ||
{{#each benchmarks as |benchmark|}} | ||
fn {{benchmark.name~}} | ||
( | ||
{{~#each benchmark.components as |c| ~}} | ||
{{c.name}}: u32, {{/each~}} | ||
) -> Weight; | ||
{{/each}} | ||
} | ||
|
||
/// Weights for `{{pallet}}` using the Substrate node and recommended hardware. | ||
pub struct SubstrateWeight<T>(PhantomData<T>); | ||
{{#if (eq pallet "frame_system")}} | ||
impl<T: crate::Config> WeightInfo for SubstrateWeight<T> { | ||
{{else}} | ||
impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> { | ||
{{/if}} | ||
{{#each benchmarks as |benchmark|}} | ||
{{#each benchmark.comments as |comment|}} | ||
/// {{comment}} | ||
{{/each}} | ||
{{#each benchmark.component_ranges as |range|}} | ||
/// The range of component `{{range.name}}` is `[{{range.min}}, {{range.max}}]`. | ||
{{/each}} | ||
fn {{benchmark.name~}} | ||
( | ||
{{~#each benchmark.components as |c| ~}} | ||
{{~#if (not c.is_used)}}_{{/if}}{{c.name}}: u32, {{/each~}} | ||
) -> Weight { | ||
// Proof Size summary in bytes: | ||
// Measured: `{{benchmark.base_recorded_proof_size}}{{#each benchmark.component_recorded_proof_size as |cp|}} + {{cp.name}} * ({{cp.slope}} ±{{underscore cp.error}}){{/each}}` | ||
// Estimated: `{{benchmark.base_calculated_proof_size}}{{#each benchmark.component_calculated_proof_size as |cp|}} + {{cp.name}} * ({{cp.slope}} ±{{underscore cp.error}}){{/each}}` | ||
// Minimum execution time: {{underscore benchmark.min_execution_time}}_000 picoseconds. | ||
Weight::from_parts({{underscore benchmark.base_weight}}, {{benchmark.base_calculated_proof_size}}) | ||
{{#each benchmark.component_weight as |cw|}} | ||
// Standard Error: {{underscore cw.error}} | ||
.saturating_add(Weight::from_parts({{underscore cw.slope}}, 0).saturating_mul({{cw.name}}.into())) | ||
{{/each}} | ||
{{#if (ne benchmark.base_reads "0")}} | ||
.saturating_add(T::DbWeight::get().reads({{benchmark.base_reads}}_u64)) | ||
{{/if}} | ||
{{#each benchmark.component_reads as |cr|}} | ||
.saturating_add(T::DbWeight::get().reads(({{cr.slope}}_u64).saturating_mul({{cr.name}}.into()))) | ||
{{/each}} | ||
{{#if (ne benchmark.base_writes "0")}} | ||
.saturating_add(T::DbWeight::get().writes({{benchmark.base_writes}}_u64)) | ||
{{/if}} | ||
{{#each benchmark.component_writes as |cw|}} | ||
.saturating_add(T::DbWeight::get().writes(({{cw.slope}}_u64).saturating_mul({{cw.name}}.into()))) | ||
{{/each}} | ||
{{#each benchmark.component_calculated_proof_size as |cp|}} | ||
.saturating_add(Weight::from_parts(0, {{cp.slope}}).saturating_mul({{cp.name}}.into())) | ||
{{/each}} | ||
} | ||
{{/each}} | ||
} | ||
|
||
// For backwards compatibility and tests. | ||
impl WeightInfo for () { | ||
{{#each benchmarks as |benchmark|}} | ||
{{#each benchmark.comments as |comment|}} | ||
/// {{comment}} | ||
{{/each}} | ||
{{#each benchmark.component_ranges as |range|}} | ||
/// The range of component `{{range.name}}` is `[{{range.min}}, {{range.max}}]`. | ||
{{/each}} | ||
fn {{benchmark.name~}} | ||
( | ||
{{~#each benchmark.components as |c| ~}} | ||
{{~#if (not c.is_used)}}_{{/if}}{{c.name}}: u32, {{/each~}} | ||
) -> Weight { | ||
// Proof Size summary in bytes: | ||
// Measured: `{{benchmark.base_recorded_proof_size}}{{#each benchmark.component_recorded_proof_size as |cp|}} + {{cp.name}} * ({{cp.slope}} ±{{underscore cp.error}}){{/each}}` | ||
// Estimated: `{{benchmark.base_calculated_proof_size}}{{#each benchmark.component_calculated_proof_size as |cp|}} + {{cp.name}} * ({{cp.slope}} ±{{underscore cp.error}}){{/each}}` | ||
// Minimum execution time: {{underscore benchmark.min_execution_time}}_000 picoseconds. | ||
Weight::from_parts({{underscore benchmark.base_weight}}, {{benchmark.base_calculated_proof_size}}) | ||
{{#each benchmark.component_weight as |cw|}} | ||
// Standard Error: {{underscore cw.error}} | ||
.saturating_add(Weight::from_parts({{underscore cw.slope}}, 0).saturating_mul({{cw.name}}.into())) | ||
{{/each}} | ||
{{#if (ne benchmark.base_reads "0")}} | ||
.saturating_add(RocksDbWeight::get().reads({{benchmark.base_reads}}_u64)) | ||
{{/if}} | ||
{{#each benchmark.component_reads as |cr|}} | ||
.saturating_add(RocksDbWeight::get().reads(({{cr.slope}}_u64).saturating_mul({{cr.name}}.into()))) | ||
{{/each}} | ||
{{#if (ne benchmark.base_writes "0")}} | ||
.saturating_add(RocksDbWeight::get().writes({{benchmark.base_writes}}_u64)) | ||
{{/if}} | ||
{{#each benchmark.component_writes as |cw|}} | ||
.saturating_add(RocksDbWeight::get().writes(({{cw.slope}}_u64).saturating_mul({{cw.name}}.into()))) | ||
{{/each}} | ||
{{#each benchmark.component_calculated_proof_size as |cp|}} | ||
.saturating_add(Weight::from_parts(0, {{cp.slope}}).saturating_mul({{cp.name}}.into())) | ||
{{/each}} | ||
} | ||
{{/each}} | ||
} |
Oops, something went wrong.