[−][src]Struct frame_system::offchain::Signer
Provides an implementation for signing transaction payloads.
Keys used for signing are defined when instantiating the signer object. Signing can be done using:
- All supported keys in the keystore
- Any of the supported keys in the keystore
- An intersection of in-keystore keys and the list of provided keys
The signer is then able to:
- Submit a unsigned transaction with a signed payload
- Submit a signed transaction
Implementations
impl<T: SigningTypes, C: AppCrypto<T::Public, T::Signature>, X> Signer<T, C, X>
[src]
pub fn all_accounts() -> Signer<T, C, ForAll>
[src]
Use all available keys for signing.
pub fn any_account() -> Signer<T, C, ForAny>
[src]
Use any of the available keys for signing.
pub fn with_filter(self, accounts: Vec<T::Public>) -> Self
[src]
Use provided accounts
for signing.
Note that not all keys will be necessarily used. The provided vector of accounts will be intersected with the supported keys in the keystore and the resulting list will be used for signing.
pub fn can_sign(&self) -> bool
[src]
Check if there are any keys that could be used for signing.
Trait Implementations
impl<T: SigningTypes, C: AppCrypto<T::Public, T::Signature>, X> Debug for Signer<T, C, X> where
T: Debug,
C: Debug,
X: Debug,
[src]
T: Debug,
C: Debug,
X: Debug,
impl<T: SigningTypes, C: AppCrypto<T::Public, T::Signature>, X> Default for Signer<T, C, X>
[src]
impl<T: CreateSignedTransaction<LocalCall> + SigningTypes, C: AppCrypto<T::Public, T::Signature>, LocalCall> SendSignedTransaction<T, C, LocalCall> for Signer<T, C, ForAny>
[src]
type Result = Option<(Account<T>, Result<(), ()>)>
A submission result. Read more
fn send_signed_transaction(
&self,
f: impl Fn(&Account<T>) -> LocalCall
) -> Self::Result
[src]
&self,
f: impl Fn(&Account<T>) -> LocalCall
) -> Self::Result
fn send_single_signed_transaction(
&self,
account: &Account<T>,
call: LocalCall
) -> Option<Result<(), ()>>
[src]
&self,
account: &Account<T>,
call: LocalCall
) -> Option<Result<(), ()>>
impl<T: SigningTypes + CreateSignedTransaction<LocalCall>, C: AppCrypto<T::Public, T::Signature>, LocalCall> SendSignedTransaction<T, C, LocalCall> for Signer<T, C, ForAll>
[src]
type Result = Vec<(Account<T>, Result<(), ()>)>
A submission result. Read more
fn send_signed_transaction(
&self,
f: impl Fn(&Account<T>) -> LocalCall
) -> Self::Result
[src]
&self,
f: impl Fn(&Account<T>) -> LocalCall
) -> Self::Result
fn send_single_signed_transaction(
&self,
account: &Account<T>,
call: LocalCall
) -> Option<Result<(), ()>>
[src]
&self,
account: &Account<T>,
call: LocalCall
) -> Option<Result<(), ()>>
impl<T: SigningTypes + SendTransactionTypes<LocalCall>, C: AppCrypto<T::Public, T::Signature>, LocalCall> SendUnsignedTransaction<T, LocalCall> for Signer<T, C, ForAny>
[src]
type Result = Option<(Account<T>, Result<(), ()>)>
A submission result. Read more
fn send_unsigned_transaction<TPayload, F>(
&self,
f: F,
f2: impl Fn(TPayload, T::Signature) -> LocalCall
) -> Self::Result where
F: Fn(&Account<T>) -> TPayload,
TPayload: SignedPayload<T>,
[src]
&self,
f: F,
f2: impl Fn(TPayload, T::Signature) -> LocalCall
) -> Self::Result where
F: Fn(&Account<T>) -> TPayload,
TPayload: SignedPayload<T>,
fn submit_unsigned_transaction(&self, call: LocalCall) -> Option<Result<(), ()>>
[src]
impl<T: SigningTypes + SendTransactionTypes<LocalCall>, C: AppCrypto<T::Public, T::Signature>, LocalCall> SendUnsignedTransaction<T, LocalCall> for Signer<T, C, ForAll>
[src]
type Result = Vec<(Account<T>, Result<(), ()>)>
A submission result. Read more
fn send_unsigned_transaction<TPayload, F>(
&self,
f: F,
f2: impl Fn(TPayload, T::Signature) -> LocalCall
) -> Self::Result where
F: Fn(&Account<T>) -> TPayload,
TPayload: SignedPayload<T>,
[src]
&self,
f: F,
f2: impl Fn(TPayload, T::Signature) -> LocalCall
) -> Self::Result where
F: Fn(&Account<T>) -> TPayload,
TPayload: SignedPayload<T>,
fn submit_unsigned_transaction(&self, call: LocalCall) -> Option<Result<(), ()>>
[src]
impl<T: SigningTypes, C: AppCrypto<T::Public, T::Signature>> SignMessage<T> for Signer<T, C, ForAll>
[src]
type SignatureData = Vec<(Account<T>, T::Signature)>
A signature data. Read more
fn sign_message(&self, message: &[u8]) -> Self::SignatureData
[src]
fn sign<TPayload, F>(&self, f: F) -> Self::SignatureData where
F: Fn(&Account<T>) -> TPayload,
TPayload: SignedPayload<T>,
[src]
F: Fn(&Account<T>) -> TPayload,
TPayload: SignedPayload<T>,
impl<T: SigningTypes, C: AppCrypto<T::Public, T::Signature>> SignMessage<T> for Signer<T, C, ForAny>
[src]
type SignatureData = Option<(Account<T>, T::Signature)>
A signature data. Read more
fn sign_message(&self, message: &[u8]) -> Self::SignatureData
[src]
fn sign<TPayload, F>(&self, f: F) -> Self::SignatureData where
F: Fn(&Account<T>) -> TPayload,
TPayload: SignedPayload<T>,
[src]
F: Fn(&Account<T>) -> TPayload,
TPayload: SignedPayload<T>,
Auto Trait Implementations
impl<T, C, X> RefUnwindSafe for Signer<T, C, X> where
C: RefUnwindSafe,
X: RefUnwindSafe,
<T as SigningTypes>::Public: RefUnwindSafe,
C: RefUnwindSafe,
X: RefUnwindSafe,
<T as SigningTypes>::Public: RefUnwindSafe,
impl<T, C, X> Send for Signer<T, C, X> where
C: Send,
X: Send,
<T as SigningTypes>::Public: Send,
C: Send,
X: Send,
<T as SigningTypes>::Public: Send,
impl<T, C, X> Sync for Signer<T, C, X> where
C: Sync,
X: Sync,
<T as SigningTypes>::Public: Sync,
C: Sync,
X: Sync,
<T as SigningTypes>::Public: Sync,
impl<T, C, X> Unpin for Signer<T, C, X> where
C: Unpin,
X: Unpin,
<T as SigningTypes>::Public: Unpin,
C: Unpin,
X: Unpin,
<T as SigningTypes>::Public: Unpin,
impl<T, C, X> UnwindSafe for Signer<T, C, X> where
C: UnwindSafe,
X: UnwindSafe,
<T as SigningTypes>::Public: UnwindSafe,
C: UnwindSafe,
X: UnwindSafe,
<T as SigningTypes>::Public: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> CheckedConversion for T
[src]
fn checked_from<T>(t: T) -> Option<Self> where
Self: TryFrom<T>,
[src]
Self: TryFrom<T>,
fn checked_into<T>(self) -> Option<T> where
Self: TryInto<T>,
[src]
Self: TryInto<T>,
impl<T> Clear for T where
T: InitializableFromZeroed + ?Sized,
[src]
T: InitializableFromZeroed + ?Sized,
impl<T> From<T> for T
[src]
impl<T> InitializableFromZeroed for T where
T: Default,
[src]
T: Default,
unsafe fn initialize(place: *mut T)
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> IsType<T> for T
[src]
fn from_ref(t: &T) -> &T
[src]
fn into_ref(&self) -> &T
[src]
fn from_mut(t: &mut T) -> &mut T
[src]
fn into_mut(&mut self) -> &mut T
[src]
impl<T, Outer> IsWrappedBy<Outer> for T where
Outer: AsRef<T> + AsMut<T> + From<T>,
T: From<Outer>,
[src]
Outer: AsRef<T> + AsMut<T> + From<T>,
T: From<Outer>,
fn from_ref(outer: &Outer) -> &T
[src]
Get a reference to the inner from the outer.
fn from_mut(outer: &mut Outer) -> &mut T
[src]
Get a mutable reference to the inner from the outer.
impl<T> MaybeDebug for T where
T: Debug,
[src]
T: Debug,
impl<T> MaybeDebug for T where
T: Debug,
[src]
T: Debug,
impl<T> MaybeRefUnwindSafe for T where
T: RefUnwindSafe,
[src]
T: RefUnwindSafe,
impl<T> Same<T> for T
[src]
type Output = T
Should always be Self
impl<T> SaturatedConversion for T
[src]
fn saturated_from<T>(t: T) -> Self where
Self: UniqueSaturatedFrom<T>,
[src]
Self: UniqueSaturatedFrom<T>,
fn saturated_into<T>(self) -> T where
Self: UniqueSaturatedInto<T>,
[src]
Self: UniqueSaturatedInto<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<S, T> UncheckedInto<T> for S where
T: UncheckedFrom<S>,
[src]
T: UncheckedFrom<S>,
fn unchecked_into(self) -> T
[src]
impl<T, S> UniqueSaturatedInto<T> for S where
S: TryInto<T>,
T: Bounded,
[src]
S: TryInto<T>,
T: Bounded,
fn unique_saturated_into(self) -> T
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
[src]
V: MultiLane<T>,