Enum dock_runtime::accumulator::Call
source · pub enum Call<T>where
T: Config,{
add_params {
params: AddAccumulatorParams<T>,
signature: DidOrDidMethodKeySignature<AccumulatorOwner>,
},
add_public_key {
public_key: AddAccumulatorPublicKey<T>,
signature: DidOrDidMethodKeySignature<AccumulatorOwner>,
},
remove_params {
remove: RemoveAccumulatorParams<T>,
signature: DidOrDidMethodKeySignature<AccumulatorOwner>,
},
remove_public_key {
remove: RemoveAccumulatorPublicKey<T>,
signature: DidOrDidMethodKeySignature<AccumulatorOwner>,
},
add_accumulator {
add_accumulator: AddAccumulator<T>,
signature: DidOrDidMethodKeySignature<AccumulatorOwner>,
},
update_accumulator {
update: UpdateAccumulator<T>,
signature: DidOrDidMethodKeySignature<AccumulatorOwner>,
},
remove_accumulator {
remove: RemoveAccumulator<T>,
signature: DidOrDidMethodKeySignature<AccumulatorOwner>,
},
// some variants omitted
}
Expand description
Contains one variant per dispatchable that can be called by an extrinsic.
Variants§
add_params
add_public_key
Fields
public_key: AddAccumulatorPublicKey<T>
signature: DidOrDidMethodKeySignature<AccumulatorOwner>
remove_params
remove_public_key
Fields
remove: RemoveAccumulatorPublicKey<T>
signature: DidOrDidMethodKeySignature<AccumulatorOwner>
add_accumulator
Add a new accumulator with the initial accumulated value. Each accumulator has a unique id and it refers to a public key. It is assumed that the accumulator is owned by the DID that owns the public key. It logs an event with the accumulator id and accumulated value. For each new accumulator, its creation block is recorded in state to indicate from which block, the chain should be scanned for the accumulator’s updates. Note: Weight is same for both kinds of accumulator even when universal takes a bit more space
update_accumulator
Update an existing accumulator. The update contains the new accumulated value, the updates themselves and the witness updated info. The updates and witness update info are optional as the owner might be privately communicating the updated witnesses. It logs an event with the accumulator id and the new accumulated value which is sufficient for a verifier. But the prover (who has a witness to update) needs the updates and the witness update info and is expected to look into the corresponding extrinsic arguments.
remove_accumulator
Implementations§
source§impl<T> Call<T>where
T: Config,
impl<T> Call<T>where T: Config,
sourcepub fn new_call_variant_add_params(
params: AddAccumulatorParams<T>,
signature: DidOrDidMethodKeySignature<AccumulatorOwner>
) -> Call<T>
pub fn new_call_variant_add_params( params: AddAccumulatorParams<T>, signature: DidOrDidMethodKeySignature<AccumulatorOwner> ) -> Call<T>
Create a call with the variant add_params
.
sourcepub fn new_call_variant_add_public_key(
public_key: AddAccumulatorPublicKey<T>,
signature: DidOrDidMethodKeySignature<AccumulatorOwner>
) -> Call<T>
pub fn new_call_variant_add_public_key( public_key: AddAccumulatorPublicKey<T>, signature: DidOrDidMethodKeySignature<AccumulatorOwner> ) -> Call<T>
Create a call with the variant add_public_key
.
sourcepub fn new_call_variant_remove_params(
remove: RemoveAccumulatorParams<T>,
signature: DidOrDidMethodKeySignature<AccumulatorOwner>
) -> Call<T>
pub fn new_call_variant_remove_params( remove: RemoveAccumulatorParams<T>, signature: DidOrDidMethodKeySignature<AccumulatorOwner> ) -> Call<T>
Create a call with the variant remove_params
.
sourcepub fn new_call_variant_remove_public_key(
remove: RemoveAccumulatorPublicKey<T>,
signature: DidOrDidMethodKeySignature<AccumulatorOwner>
) -> Call<T>
pub fn new_call_variant_remove_public_key( remove: RemoveAccumulatorPublicKey<T>, signature: DidOrDidMethodKeySignature<AccumulatorOwner> ) -> Call<T>
Create a call with the variant remove_public_key
.
sourcepub fn new_call_variant_add_accumulator(
add_accumulator: AddAccumulator<T>,
signature: DidOrDidMethodKeySignature<AccumulatorOwner>
) -> Call<T>
pub fn new_call_variant_add_accumulator( add_accumulator: AddAccumulator<T>, signature: DidOrDidMethodKeySignature<AccumulatorOwner> ) -> Call<T>
Create a call with the variant add_accumulator
.
sourcepub fn new_call_variant_update_accumulator(
update: UpdateAccumulator<T>,
signature: DidOrDidMethodKeySignature<AccumulatorOwner>
) -> Call<T>
pub fn new_call_variant_update_accumulator( update: UpdateAccumulator<T>, signature: DidOrDidMethodKeySignature<AccumulatorOwner> ) -> Call<T>
Create a call with the variant update_accumulator
.
sourcepub fn new_call_variant_remove_accumulator(
remove: RemoveAccumulator<T>,
signature: DidOrDidMethodKeySignature<AccumulatorOwner>
) -> Call<T>
pub fn new_call_variant_remove_accumulator( remove: RemoveAccumulator<T>, signature: DidOrDidMethodKeySignature<AccumulatorOwner> ) -> Call<T>
Create a call with the variant remove_accumulator
.
Trait Implementations§
source§impl<T> Decode for Call<T>where
T: Config,
impl<T> Decode for Call<T>where T: Config,
source§fn decode<__CodecInputEdqy>(
__codec_input_edqy: &mut __CodecInputEdqy
) -> Result<Call<T>, Error>where
__CodecInputEdqy: Input,
fn decode<__CodecInputEdqy>( __codec_input_edqy: &mut __CodecInputEdqy ) -> Result<Call<T>, Error>where __CodecInputEdqy: Input,
§fn decode_into<I>(
input: &mut I,
dst: &mut MaybeUninit<Self>
) -> Result<DecodeFinished, Error>where
I: Input,
fn decode_into<I>( input: &mut I, dst: &mut MaybeUninit<Self> ) -> Result<DecodeFinished, Error>where I: Input,
§fn skip<I>(input: &mut I) -> Result<(), Error>where
I: Input,
fn skip<I>(input: &mut I) -> Result<(), Error>where I: Input,
§fn encoded_fixed_size() -> Option<usize>
fn encoded_fixed_size() -> Option<usize>
source§impl<T> Encode for Call<T>where
T: Config,
impl<T> Encode for Call<T>where T: Config,
source§fn size_hint(&self) -> usize
fn size_hint(&self) -> usize
source§fn encode_to<__CodecOutputEdqy>(&self, __codec_dest_edqy: &mut __CodecOutputEdqy)where
__CodecOutputEdqy: Output + ?Sized,
fn encode_to<__CodecOutputEdqy>(&self, __codec_dest_edqy: &mut __CodecOutputEdqy)where __CodecOutputEdqy: Output + ?Sized,
§fn using_encoded<R, F>(&self, f: F) -> Rwhere
F: FnOnce(&[u8]) -> R,
fn using_encoded<R, F>(&self, f: F) -> Rwhere F: FnOnce(&[u8]) -> R,
§fn encoded_size(&self) -> usize
fn encoded_size(&self) -> usize
source§impl<T> GetCallName for Call<T>where
T: Config,
impl<T> GetCallName for Call<T>where T: Config,
source§fn get_call_name(&self) -> &'static str
fn get_call_name(&self) -> &'static str
source§fn get_call_names() -> &'static [&'static str]
fn get_call_names() -> &'static [&'static str]
source§impl<T> GetDispatchInfo for Call<T>where
T: Config,
impl<T> GetDispatchInfo for Call<T>where T: Config,
source§fn get_dispatch_info(&self) -> DispatchInfo
fn get_dispatch_info(&self) -> DispatchInfo
DispatchInfo
, containing relevant information of this dispatch. Read moresource§impl<T> PartialEq<Call<T>> for Call<T>where
T: Config,
impl<T> PartialEq<Call<T>> for Call<T>where T: Config,
source§impl<T> TypeInfo for Call<T>where
T: Config + 'static,
PhantomData<(T,)>: TypeInfo + 'static,
AddAccumulatorParams<T>: TypeInfo + 'static,
AddAccumulatorPublicKey<T>: TypeInfo + 'static,
RemoveAccumulatorParams<T>: TypeInfo + 'static,
RemoveAccumulatorPublicKey<T>: TypeInfo + 'static,
AddAccumulator<T>: TypeInfo + 'static,
UpdateAccumulator<T>: TypeInfo + 'static,
RemoveAccumulator<T>: TypeInfo + 'static,
impl<T> TypeInfo for Call<T>where T: Config + 'static, PhantomData<(T,)>: TypeInfo + 'static, AddAccumulatorParams<T>: TypeInfo + 'static, AddAccumulatorPublicKey<T>: TypeInfo + 'static, RemoveAccumulatorParams<T>: TypeInfo + 'static, RemoveAccumulatorPublicKey<T>: TypeInfo + 'static, AddAccumulator<T>: TypeInfo + 'static, UpdateAccumulator<T>: TypeInfo + 'static, RemoveAccumulator<T>: TypeInfo + 'static,
source§impl<T> UnfilteredDispatchable for Call<T>where
T: Config,
impl<T> UnfilteredDispatchable for Call<T>where T: Config,
§type Origin = <T as Config>::Origin
type Origin = <T as Config>::Origin
frame_system::Config::Origin
).source§fn dispatch_bypass_filter(
self,
origin: <Call<T> as UnfilteredDispatchable>::Origin
) -> Result<PostDispatchInfo, DispatchErrorWithPostInfo<PostDispatchInfo>>
fn dispatch_bypass_filter( self, origin: <Call<T> as UnfilteredDispatchable>::Origin ) -> Result<PostDispatchInfo, DispatchErrorWithPostInfo<PostDispatchInfo>>
impl<T> EncodeLike<Call<T>> for Call<T>where T: Config,
impl<T> Eq for Call<T>where T: Config,
Auto Trait Implementations§
impl<T> RefUnwindSafe for Call<T>where T: RefUnwindSafe, <T as Config>::BlockNumber: RefUnwindSafe, <T as Limits>::MaxAccumulatorAccumulatedSize: RefUnwindSafe, <T as Limits>::MaxAccumulatorLabelSize: RefUnwindSafe, <T as Limits>::MaxAccumulatorParamsSize: RefUnwindSafe, <T as Limits>::MaxAccumulatorPublicKeySize: RefUnwindSafe,
impl<T> Send for Call<T>where T: Send,
impl<T> Sync for Call<T>where T: Sync,
impl<T> Unpin for Call<T>where T: Unpin, <T as Config>::BlockNumber: Unpin, <T as Limits>::MaxAccumulatorAccumulatedSize: Unpin, <T as Limits>::MaxAccumulatorLabelSize: Unpin, <T as Limits>::MaxAccumulatorParamsSize: Unpin, <T as Limits>::MaxAccumulatorPublicKeySize: Unpin,
impl<T> UnwindSafe for Call<T>where T: UnwindSafe, <T as Config>::BlockNumber: UnwindSafe, <T as Limits>::MaxAccumulatorAccumulatedSize: UnwindSafe, <T as Limits>::MaxAccumulatorLabelSize: UnwindSafe, <T as Limits>::MaxAccumulatorParamsSize: UnwindSafe, <T as Limits>::MaxAccumulatorPublicKeySize: UnwindSafe,
Blanket Implementations§
source§impl<T> CanUpdate<()> for T
impl<T> CanUpdate<()> for T
source§fn can_remove(&self, _entity: &()) -> bool
fn can_remove(&self, _entity: &()) -> bool
§impl<T> CheckedConversion for T
impl<T> CheckedConversion for T
§fn checked_from<T>(t: T) -> Option<Self>where
Self: TryFrom<T>,
fn checked_from<T>(t: T) -> Option<Self>where Self: TryFrom<T>,
§fn checked_into<T>(self) -> Option<T>where
Self: TryInto<T>,
fn checked_into<T>(self) -> Option<T>where Self: TryInto<T>,
§impl<T> DecodeAll for Twhere
T: Decode,
impl<T> DecodeAll for Twhere T: Decode,
§fn decode_all(input: &mut &[u8]) -> Result<T, Error>
fn decode_all(input: &mut &[u8]) -> Result<T, Error>
Self
and consume all of the given input data. Read more§impl<T> DecodeLimit for Twhere
T: Decode,
impl<T> DecodeLimit for Twhere T: Decode,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere T: Any,
§fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.source§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.§impl<T> Hashable for Twhere
T: Codec,
impl<T> Hashable for Twhere T: Codec,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T> IsType<T> for T
impl<T> IsType<T> for T
§impl<T> KeyedVec for Twhere
T: Codec,
impl<T> KeyedVec for Twhere T: Codec,
§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> SaturatedConversion for T
impl<T> SaturatedConversion for T
§fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
fn saturated_from<T>(t: T) -> Selfwhere Self: UniqueSaturatedFrom<T>,
§fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
fn saturated_into<T>(self) -> Twhere Self: UniqueSaturatedInto<T>,
T
. Read more§impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
impl<S, T> UncheckedInto<T> for Swhere T: UncheckedFrom<S>,
§fn unchecked_into(self) -> T
fn unchecked_into(self) -> T
unchecked_from
.§impl<T, S> UniqueSaturatedInto<T> for Swhere
T: Bounded,
S: TryInto<T>,
impl<T, S> UniqueSaturatedInto<T> for Swhere T: Bounded, S: TryInto<T>,
§fn unique_saturated_into(self) -> T
fn unique_saturated_into(self) -> T
T
.