pub struct Refound {
pub cut: u64,
pub base: BTreeSet<PublicKey>,
pub rumor_id: [u8; 32],
}Expand description
A Refounding’s guestbook replaces the old one. A local store appends across epochs, so without this a member whose Join predates a Refounding stays “Joined” forever on any client that never witnessed their Kick — and every client’s count drifts by whatever it happened to miss.
The guest list is the union of every honored snapshot ON THE LIVE EPOCH
(the minter’s refound snapshot plus any addendum it publishes later — within
one epoch, snapshots only ever add). Any Joined state won by an entry from
an EARLIER epoch, and not in that list, becomes Verdict::Refounded at the
refound’s time. Entries that never got an epoch stamp are judged by time:
older than the refounding means an earlier plane. Forward observation
re-admits as usual — posting after the cut needs the new key.
Nothing happens without an epoch-stamped, honored snapshot: a store that only knows one plane, or one that has not synced since a rotation, is left exactly as it was. The live epoch’s refounding, as a guest list plus the moment it took effect. The base is the union of every honored snapshot ON THE LIVE EPOCH (the refound snapshot plus any addendum — within one epoch snapshots only add); the cut is the earliest of them, the refound itself.
Fields§
§cut: u64§base: BTreeSet<PublicKey>§rumor_id: [u8; 32]Auto Trait Implementations§
impl Freeze for Refound
impl RefUnwindSafe for Refound
impl Send for Refound
impl Sync for Refound
impl Unpin for Refound
impl UnsafeUnpin for Refound
impl UnwindSafe for Refound
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
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