Struct bdk_chain::tx_graph::ChangeSet

source ·
pub struct ChangeSet<A = ()> {
    pub txs: BTreeSet<Arc<Transaction>>,
    pub txouts: BTreeMap<OutPoint, TxOut>,
    pub anchors: BTreeSet<(A, Txid)>,
    pub last_seen: BTreeMap<Txid, u64>,
}
Expand description

The ChangeSet represents changes to a TxGraph.

Since TxGraph is monotone, the “changeset” can only contain transactions to be added and not removed.

Refer to module-level documentation for more.

Fields§

§txs: BTreeSet<Arc<Transaction>>

Added transactions.

§txouts: BTreeMap<OutPoint, TxOut>

Added txouts.

§anchors: BTreeSet<(A, Txid)>

Added anchors.

§last_seen: BTreeMap<Txid, u64>

Added last-seen unix timestamps of transactions.

Implementations§

source§

impl<A> ChangeSet<A>

source

pub fn txouts(&self) -> impl Iterator<Item = (OutPoint, &TxOut)>

Iterates over all outpoints contained within ChangeSet.

source

pub fn anchor_heights(&self) -> impl Iterator<Item = u32> + '_
where A: Anchor,

Iterates over the heights of that the new transaction anchors in this changeset.

This is useful if you want to find which heights you need to fetch data about in order to confirm or exclude these anchors.

source§

impl<A: Ord> ChangeSet<A>

source

pub fn map_anchors<A2: Ord, F>(self, f: F) -> ChangeSet<A2>
where F: FnMut(A) -> A2,

Transform the ChangeSet to have Anchors of another type.

This takes in a closure of signature FnMut(A) -> A2 which is called for each Anchor to transform it.

source§

impl<A> ChangeSet<A>

source

pub const SCHEMA_NAME: &'static str = "bdk_txgraph"

Schema name for tx_graph::ChangeSet.

source

pub const TXS_TABLE_NAME: &'static str = "bdk_txs"

Name of table that stores full transactions and last_seen timestamps.

source

pub const TXOUTS_TABLE_NAME: &'static str = "bdk_txouts"

Name of table that stores floating txouts.

source

pub const ANCHORS_TABLE_NAME: &'static str = "bdk_anchors"

Name of table that stores Anchors.

source

pub fn init_sqlite_tables(db_tx: &Transaction<'_>) -> Result<()>

Initialize sqlite tables.

source

pub fn from_sqlite(db_tx: &Transaction<'_>) -> Result<Self>

Construct a TxGraph from an sqlite database.

Remember to call Self::init_sqlite_tables beforehand.

source

pub fn persist_to_sqlite(&self, db_tx: &Transaction<'_>) -> Result<()>

Persist changeset to the sqlite database.

Remember to call Self::init_sqlite_tables beforehand.

Trait Implementations§

source§

impl<A: Clone> Clone for ChangeSet<A>

source§

fn clone(&self) -> ChangeSet<A>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<A: Debug> Debug for ChangeSet<A>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<A> Default for ChangeSet<A>

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl<'de, A> Deserialize<'de> for ChangeSet<A>
where A: Ord + Deserialize<'de>,

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl<A, IA: Default> From<ChangeSet<A>> for ChangeSet<A, IA>

source§

fn from(graph: ChangeSet<A>) -> Self

Converts to this type from the input type.
source§

impl<A: Ord> Merge for ChangeSet<A>

source§

fn merge(&mut self, other: Self)

Merge another object of the same type onto self.
source§

fn is_empty(&self) -> bool

Returns whether the structure is considered empty.
source§

fn take(&mut self) -> Option<Self>

Take the value, replacing it with the default value.
source§

impl<A: PartialEq> PartialEq for ChangeSet<A>

source§

fn eq(&self, other: &ChangeSet<A>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<A> Serialize for ChangeSet<A>
where A: Ord + Serialize,

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl<A> StructuralPartialEq for ChangeSet<A>

Auto Trait Implementations§

§

impl<A> Freeze for ChangeSet<A>

§

impl<A> RefUnwindSafe for ChangeSet<A>
where A: RefUnwindSafe,

§

impl<A> Send for ChangeSet<A>
where A: Send,

§

impl<A> Sync for ChangeSet<A>
where A: Sync,

§

impl<A> Unpin for ChangeSet<A>

§

impl<A> UnwindSafe for ChangeSet<A>
where A: RefUnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,