Struct lightning::ln::chan_utils::CounterpartyCommitmentSecrets
source · pub struct CounterpartyCommitmentSecrets { /* private fields */ }
Expand description
Implements the per-commitment secret storage scheme from BOLT 3.
Allows us to keep track of all of the revocation secrets of our counterparty in just 50*32 bytes or so.
Implementations§
source§impl CounterpartyCommitmentSecrets
impl CounterpartyCommitmentSecrets
sourcepub fn get_min_seen_secret(&self) -> u64
pub fn get_min_seen_secret(&self) -> u64
Returns the minimum index of all stored secrets. Note that indexes start at 1 << 48 and get decremented by one for each new secret.
sourcepub fn provide_secret(&mut self, idx: u64, secret: [u8; 32]) -> Result<(), ()>
pub fn provide_secret(&mut self, idx: u64, secret: [u8; 32]) -> Result<(), ()>
Inserts the secret
at idx
. Returns Ok(())
if the secret
was generated in accordance with BOLT 3 and is consistent with previous secrets.
sourcepub fn get_secret(&self, idx: u64) -> Option<[u8; 32]>
pub fn get_secret(&self, idx: u64) -> Option<[u8; 32]>
Returns the secret at idx
.
Returns None
if idx
is < CounterpartyCommitmentSecrets::get_min_seen_secret
.
Trait Implementations§
source§impl Clone for CounterpartyCommitmentSecrets
impl Clone for CounterpartyCommitmentSecrets
source§fn clone(&self) -> CounterpartyCommitmentSecrets
fn clone(&self) -> CounterpartyCommitmentSecrets
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read more