usecrate::config::Config;/// Signing transactions requires a [`Signer`]. This is responsible for
/// providing the "from" account that the transaction is being signed by,
/// as well as actually signing a SCALE encoded payload.
pubtraitSigner<T: Config> {/// Return the "from" account ID.
fnaccount_id(&self)->T::AccountId;/// Takes a signer payload for an extrinsic, and returns a signature based on it.
////// Some signers may fail, for instance because the hardware on which the keys are located has
/// refused the operation.
fnsign(&self, signer_payload:&[u8])->T::Signature;}