pub trait Encodable {
    // Required method
    fn consensus_encode<W: Write>(&self, writer: &mut W) -> Result<usize, Error>;

    // Provided methods
    fn consensus_encode_to_vec(&self) -> Result<Vec<u8>, Error> { ... }
    fn consensus_encode_to_hex(&self) -> Result<String, Error> { ... }
    fn consensus_hash<H>(&self) -> H
       where H: Hash,
             H::Engine: Write { ... }
}
Expand description

Data which can be encoded in a consensus-consistent way

Required Methods§

source

fn consensus_encode<W: Write>(&self, writer: &mut W) -> Result<usize, Error>

Encode an object with a well-defined format. Returns the number of bytes written on success.

The only errors returned are errors propagated from the writer.

Provided Methods§

source

fn consensus_encode_to_vec(&self) -> Result<Vec<u8>, Error>

Self::consensus_encode to newly allocated Vec<u8>

source

fn consensus_encode_to_hex(&self) -> Result<String, Error>

source

fn consensus_hash<H>(&self) -> H
where H: Hash, H::Engine: Write,

Generate a SHA256 hash of the consensus encoding using the default hash engine for H.

Can be used to validate all federation members agree on state without revealing the object

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl Encodable for &str

source§

impl Encodable for Cow<'static, str>

source§

impl Encodable for Network

source§

impl Encodable for bool

source§

impl Encodable for u8

source§

impl Encodable for u16

source§

impl Encodable for u32

source§

impl Encodable for u64

source§

impl Encodable for ()

source§

fn consensus_encode<W: Write>(&self, _writer: &mut W) -> Result<usize, Error>

source§

impl Encodable for Box<dyn DynEncodable>

source§

impl Encodable for String

source§

impl Encodable for Duration

source§

impl Encodable for SystemTime

source§

impl Encodable for BlockHeader

source§

impl Encodable for Script

source§

impl Encodable for OutPoint

source§

impl Encodable for Transaction

source§

impl Encodable for BlockHash

source§

impl Encodable for Txid

source§

impl Encodable for Address

source§

impl Encodable for Amount

source§

impl Encodable for PartialMerkleTree

source§

impl Encodable for PartiallySignedTransaction

source§

impl Encodable for Hash

source§

impl Encodable for AggregatePublicKey

source§

impl Encodable for BlindedMessage

source§

impl Encodable for BlindedSignature

source§

impl Encodable for BlindedSignatureShare

source§

impl Encodable for BlindingKey

source§

impl Encodable for PublicKeyShare

source§

impl Encodable for Signature

source§

impl Encodable for Ciphertext

source§

impl Encodable for DecryptionShare

source§

impl Encodable for PublicKey

source§

impl Encodable for PublicKeySet

source§

impl Encodable for Bolt11Invoice

source§

impl Encodable for RoutingFees

source§

impl Encodable for Certificate

source§

impl Encodable for PublicKey

source§

impl Encodable for SecretKey

source§

impl Encodable for Signature

source§

impl Encodable for Signature

source§

impl<K> Encodable for Descriptor<K>
where K: MiniscriptKey,

source§

impl<K> Encodable for BTreeSet<K>
where K: Encodable,

source§

impl<K, V> Encodable for BTreeMap<K, V>
where K: Encodable, V: Encodable,

source§

impl<T1: Encodable, T2: Encodable> Encodable for (T1, T2)

source§

impl<T1: Encodable, T2: Encodable, T3: Encodable> Encodable for (T1, T2, T3)

source§

impl<T1: Encodable, T2: Encodable, T3: Encodable, T4: Encodable> Encodable for (T1, T2, T3, T4)

source§

impl<T> Encodable for &[T]
where T: Encodable,

source§

impl<T> Encodable for Option<T>
where T: Encodable,

source§

impl<T> Encodable for Box<T>
where T: Encodable,

source§

impl<T> Encodable for Vec<T>
where T: Encodable,

source§

impl<T, E> Encodable for Result<T, E>
where T: Encodable, E: Encodable,

source§

impl<T, const SIZE: usize> Encodable for [T; SIZE]
where T: Encodable,

Implementors§

source§

impl Encodable for ConsensusItem

source§

impl Encodable for SessionStatus

source§

impl Encodable for TransactionError

source§

impl Encodable for TransactionSignature

source§

impl Encodable for ApiVersionSet

source§

impl Encodable for InviteCode

source§

impl Encodable for ClientBackupKey

source§

impl Encodable for ClientBackupKeyPrefix

source§

impl Encodable for ClientBackupSnapshot

source§

impl Encodable for BitcoinRpcConfig

source§

impl Encodable for ClientConfig

source§

impl Encodable for ClientModuleConfig

source§

impl Encodable for FederationId

source§

impl Encodable for FederationIdPrefix

source§

impl Encodable for GlobalClientConfig

source§

impl Encodable for PeerUrl

source§

impl Encodable for ServerModuleConsensusConfig

source§

impl Encodable for BackupRequest

source§

impl Encodable for DynClientConfig

source§

impl Encodable for DynInput

source§

impl Encodable for DynInputError

source§

impl Encodable for DynModuleConsensusItem

source§

impl Encodable for DynOutput

source§

impl Encodable for DynOutputError

source§

impl Encodable for DynOutputOutcome

source§

impl Encodable for DynUnknown

source§

impl Encodable for KeyPair

source§

impl Encodable for ModuleKind

source§

impl Encodable for OperationId

source§

impl Encodable for DatabaseVersion

source§

impl Encodable for DatabaseVersionKey

source§

impl Encodable for ApiVersion

source§

impl Encodable for CoreConsensusVersion

source§

impl Encodable for ModuleConsensusVersion

source§

impl Encodable for AcceptedItem

source§

impl Encodable for SchnorrSignature

source§

impl Encodable for SessionOutcome

source§

impl Encodable for SignedSessionOutcome

source§

impl Encodable for fedimint_core::Amount

source§

impl Encodable for Feerate

source§

impl Encodable for fedimint_core::OutPoint

source§

impl Encodable for PeerId

source§

impl Encodable for TransactionId

source§

impl Encodable for fedimint_core::transaction::Transaction

source§

impl Encodable for TxOutProof

source§

impl Encodable for SafeUrl

source§

impl Encodable for BigSize

source§

impl Encodable for dyn DynEncodable

source§

impl<C> Encodable for Tiered<C>
where C: Encodable,

source§

impl<C> Encodable for TieredMulti<C>
where C: Encodable,

source§

impl<T> Encodable for DynRawFallback<T>
where T: Encodable,