Skip to main content

Statement

Struct Statement 

Source
pub struct Statement { /* private fields */ }
Expand description

Statement structure.

Implementations§

Source§

impl Statement

Source

pub fn new() -> Statement

Create a new empty statement with no proof.

Source

pub fn new_with_proof(proof: Proof) -> Statement

Create a new statement with a proof.

Source

pub fn sign_sr25519_public(&mut self, key: &Public) -> bool

Sign with a key that matches given public key in the keystore.

Returns true if signing worked (private key present etc).

NOTE: This can only be called from the runtime.

Source

pub fn topics(&self) -> &[Topic]

Returns slice of all topics set in the statement.

Source

pub fn sign_sr25519_private(&mut self, key: &Pair)

Sign with a given private key and add the signature proof field.

Source

pub fn sign_ed25519_public(&mut self, key: &Public) -> bool

Sign with a key that matches given public key in the keystore.

Returns true if signing worked (private key present etc).

NOTE: This can only be called from the runtime.

Source

pub fn sign_ed25519_private(&mut self, key: &Pair)

Sign with a given private key and add the signature proof field.

Source

pub fn sign_ecdsa_public(&mut self, key: &Public) -> bool

Sign with a key that matches given public key in the keystore.

Returns true if signing worked (private key present etc).

NOTE: This can only be called from the runtime.

Source

pub fn sign_ecdsa_private(&mut self, key: &Pair)

Sign with a given private key and add the signature proof field.

Source

pub fn verify_signature(&self) -> SignatureVerificationResult

Verify the proof’s signature over the statement’s signature material (all fields except the proof itself).

Returns SignatureVerificationResult::NoSignature when there is no proof. On success the returned account is the signer for sr25519/ed25519, but for ECDSA it is the BLAKE2-256 hash of the signer key, not the key itself.

Source

pub fn hash(&self) -> [u8; 32]

The statement’s hash: the BLAKE2-256 hash of its SCALE encoding.

This is the statement’s identity for deduplication and indexing across the store and network. It covers the full encoding (including the proof), so changing any field changes the hash.

Source

pub fn topic(&self, index: usize) -> Option<Topic>

Returns a topic by topic index.

Source

pub fn decryption_key(&self) -> Option<DecryptionKey>

Returns decryption key if any.

Source

pub fn into_data(self) -> Option<Vec<u8>>

Consume the statement and return its data field (see data).

Source

pub fn proof(&self) -> Option<&Proof>

Get a reference to the statement proof, if any.

Source

pub fn account_id(&self) -> Option<AccountId>

Get proof account id, if any

Source

pub fn data(&self) -> Option<&Vec<u8>>

Returns the statement’s data field, if any. The bytes are plaintext when set via set_plain_data or ciphertext when set via encrypt.

Source

pub fn data_len(&self) -> usize

Length in bytes of the statement’s data field (0 if absent).

This is the size the per-account quota (StatementAllowance::max_size) is measured against — the data length, not the full SCALE-encoded statement size.

Source

pub fn channel(&self) -> Option<Channel>

Get channel, if any.

Source

pub fn expiry(&self) -> u64

Get expiry.

Source

pub fn get_expiration_timestamp_secs(&self) -> u32

Get expiration timestamp in seconds.

The expiration timestamp in seconds is stored in the most significant 32 bits of the expiry field.

Source

pub fn is_expired(&self, now_secs: u64) -> bool

Whether the statement has expired at now_secs, a unix timestamp in seconds.

Expired once now_secs reaches the expiration timestamp.

Source

pub fn remove_proof(&mut self)

Remove the proof of this statement.

Source

pub fn set_proof(&mut self, proof: Proof)

Set statement proof. Any existing proof is overwritten.

Source

pub fn set_expiry(&mut self, expiry: u64)

Set statement expiry.

Source

pub fn set_expiry_from_parts( &mut self, expiration_timestamp_secs: u32, sequence_number: u32, )

Set statement expiry from its parts. See Statement::expiry for details on the format.

Source

pub fn set_channel(&mut self, channel: Channel)

Set statement channel.

Source

pub fn set_topic(&mut self, index: usize, topic: Topic)

Set topic by index. Does nothing if index is at or beyond MAX_TOPICS.

Grows the statement’s topic count so that index becomes addressable.

Source

pub fn set_decryption_key(&mut self, key: DecryptionKey)

Set decryption key.

Source

pub fn set_plain_data(&mut self, data: Vec<u8>)

Set unencrypted statement data.

Source

pub fn encrypt(&mut self, data: &[u8], key: &Public) -> Result<(), Error>

Encrypt data to key (ECIES) and store both the ciphertext and the matching decryption key on the statement.

Note: encryption is experimental (the decryption-key field is deprecated).

Source

pub fn decrypt_private(&self, key: &Pair) -> Result<Option<Vec<u8>>, Error>

Decrypt the statement’s data with the given private key (ECIES).

Returns Ok(None) if the statement has no data; errors if the data was not encrypted to this key.

Trait Implementations§

Source§

impl Clone for Statement

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Statement

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Decode for Statement

Source§

fn decode<I: Input>(input: &mut I) -> Result<Self, Error>

Attempt to deserialise the value from input.
Source§

fn decode_into<I>( input: &mut I, dst: &mut MaybeUninit<Self>, ) -> Result<DecodeFinished, Error>
where I: Input,

Attempt to deserialize the value from input into a pre-allocated piece of memory. Read more
Source§

fn skip<I>(input: &mut I) -> Result<(), Error>
where I: Input,

Attempt to skip the encoded value from input. Read more
Source§

fn encoded_fixed_size() -> Option<usize>

Returns the fixed encoded size of the type. Read more
Source§

impl DecodeWithMemTracking for Statement

Source§

impl Default for Statement

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Encode for Statement

Source§

fn encode(&self) -> Vec<u8> ⓘ

Convert self to an owned vector.
Source§

fn size_hint(&self) -> usize

If possible give a hint of expected size of the encoding. Read more
Source§

fn encode_to<T>(&self, dest: &mut T)
where T: Output + ?Sized,

Convert self to a slice and append it to the destination.
Source§

fn using_encoded<R, F>(&self, f: F) -> R
where F: FnOnce(&[u8]) -> R,

Convert self to a slice and then invoke the given closure with it.
Source§

fn encoded_size(&self) -> usize

Calculates the encoded size. Read more
Source§

impl Eq for Statement

Source§

impl PartialEq for Statement

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for Statement

Source§

impl TypeInfo for Statement

Note: The TypeInfo implementation reflects the actual encoding format (Vec<Field>) rather than the struct fields, since Statement has custom Encode/Decode implementations.

Source§

type Identity = Statement

The type identifying for which type info is provided. Read more
Source§

fn type_info() -> Type

Returns the static type identifier for Self.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CheckedConversion for T

Source§

fn checked_from<T>(t: T) -> Option<Self>
where Self: TryFrom<T>,

Convert from a value of T into an equivalent instance of Option<Self>. Read more
Source§

fn checked_into<T>(self) -> Option<T>
where Self: TryInto<T>,

Consume self to return Some equivalent value of Option<T>. Read more
Source§

impl<T> Clear for T
where T: Default + Eq + PartialEq,

Source§

fn is_clear(&self) -> bool

True iff no bits are set.
Source§

fn clear() -> T

Return the value of Self that is clear.
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<S> Codec for S
where S: Decode + Encode,

Source§

impl<T> DecodeAll for T
where T: Decode,

Source§

fn decode_all(input: &mut &[u8]) -> Result<T, Error>

Decode Self and consume all of the given input data. Read more
Source§

impl<T> DecodeLimit for T
where T: Decode,

Source§

fn decode_all_with_depth_limit( limit: u32, input: &mut &[u8], ) -> Result<T, Error>

Decode Self and consume all of the given input data. Read more
Source§

fn decode_with_depth_limit<I>(limit: u32, input: &mut I) -> Result<T, Error>
where I: Input,

Decode Self with the given maximum recursion depth and advance input by the number of bytes consumed. Read more
Source§

impl<T> DecodeWithMemLimit for T

Source§

fn decode_with_mem_limit<I>(input: &mut I, mem_limit: usize) -> Result<T, Error>
where I: Input,

Decode Self with the given maximum memory limit and advance input by the number of bytes consumed. Read more
Source§

impl<T, U> DefensiveTruncateInto<U> for T

Source§

fn defensive_truncate_into(self) -> U

Defensively truncate a value and convert it into its bounded form.
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> EncodeLike<&&T> for T
where T: Encode,

Source§

impl<T> EncodeLike<&T> for T
where T: Encode,

Source§

impl<T> EncodeLike<&mut T> for T
where T: Encode,

Source§

impl<T> EncodeLike<Arc<T>> for T
where T: Encode,

Source§

impl<T> EncodeLike<Box<T>> for T
where T: Encode,

Source§

impl<T> EncodeLike<Cow<'_, T>> for T
where T: ToOwned + Encode,

Source§

impl<T> EncodeLike<Rc<T>> for T
where T: Encode,

Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Hashable for T
where T: Codec,

Source§

fn blake2_128(&self) -> [u8; 16]

Source§

fn blake2_256(&self) -> [u8; 32]

Source§

fn blake2_128_concat(&self) -> Vec<u8> ⓘ

Source§

fn twox_128(&self) -> [u8; 16]

Source§

fn twox_256(&self) -> [u8; 32]

Source§

fn twox_64_concat(&self) -> Vec<u8> ⓘ

Source§

fn identity(&self) -> Vec<u8> ⓘ

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T, U> IntoKey<U> for T
where U: FromKey<T>,

Source§

fn into_key(self) -> U

Source§

impl<Src, Dest> IntoTuple<Dest> for Src
where Dest: FromTuple<Src>,

Source§

fn into_tuple(self) -> Dest

Source§

impl<T> IsType<T> for T

Source§

fn from_ref(t: &T) -> &T

Cast reference.
Source§

fn into_ref(&self) -> &T

Cast reference.
Source§

fn from_mut(t: &mut T) -> &mut T

Cast mutable reference.
Source§

fn into_mut(&mut self) -> &mut T

Cast mutable reference.
Source§

impl<T> JsonSchemaMaybe for T

Source§

impl<T> KeyedVec for T
where T: Codec,

Source§

fn to_keyed_vec(&self, prepend_key: &[u8]) -> Vec<u8> ⓘ

Return an encoding of Self prepended by given slice.
Source§

impl<T> MaybeDebug for T
where T: Debug,

Source§

impl<T> MaybeRefUnwindSafe for T
where T: RefUnwindSafe,

Source§

impl<T> Member for T
where T: Send + Sync + Debug + Eq + PartialEq + Clone + 'static,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> SaturatedConversion for T

Source§

fn saturated_from<T>(t: T) -> Self
where Self: UniqueSaturatedFrom<T>,

Convert from a value of T into an equivalent instance of Self. Read more
Source§

fn saturated_into<T>(self) -> T
where Self: UniqueSaturatedInto<T>,

Consume self to return an equivalent value of T. Read more
Source§

impl<T> StaticTypeInfo for T
where T: TypeInfo + 'static,

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T, U> TryIntoKey<U> for T
where U: TryFromKey<T>,

Source§

type Error = <U as TryFromKey<T>>::Error

Source§

fn try_into_key(self) -> Result<U, <U as TryFromKey<T>>::Error>

Source§

impl<S, T> UncheckedInto<T> for S
where T: UncheckedFrom<S>,

Source§

fn unchecked_into(self) -> T

The counterpart to unchecked_from.
Source§

impl<T, S> UniqueSaturatedInto<T> for S
where T: Bounded, S: TryInto<T>,

Source§

fn unique_saturated_into(self) -> T

Consume self to return an equivalent value of T.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more