[chain_redesign] Remove old structures
Other changes: * The `async-https` feature of `bdk_esplora` is no longer default. * Rename `ObservedAs` to `ChainPosition`. * Set temporary MSRV to 1.60.0 to compile all workspace members will all features.
This commit is contained in:
@@ -56,8 +56,8 @@
|
||||
//! ```
|
||||
|
||||
use crate::{
|
||||
collections::*, keychain::Balance, Anchor, Append, BlockId, ChainOracle, ForEachTxOut,
|
||||
FullTxOut, ObservedAs,
|
||||
collections::*, keychain::Balance, Anchor, Append, BlockId, ChainOracle, ChainPosition,
|
||||
ForEachTxOut, FullTxOut,
|
||||
};
|
||||
use alloc::vec::Vec;
|
||||
use bitcoin::{OutPoint, Script, Transaction, TxOut, Txid};
|
||||
@@ -135,7 +135,7 @@ impl Default for TxNodeInternal {
|
||||
#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord)]
|
||||
pub struct CanonicalTx<'a, T, A> {
|
||||
/// How the transaction is observed as (confirmed or unconfirmed).
|
||||
pub observed_as: ObservedAs<&'a A>,
|
||||
pub observed_as: ChainPosition<&'a A>,
|
||||
/// The transaction node (as part of the graph).
|
||||
pub node: TxNode<'a, T, A>,
|
||||
}
|
||||
@@ -614,7 +614,7 @@ impl<A: Anchor> TxGraph<A> {
|
||||
chain: &C,
|
||||
chain_tip: BlockId,
|
||||
txid: Txid,
|
||||
) -> Result<Option<ObservedAs<&A>>, C::Error> {
|
||||
) -> Result<Option<ChainPosition<&A>>, C::Error> {
|
||||
let (tx_node, anchors, last_seen) = match self.txs.get(&txid) {
|
||||
Some(v) => v,
|
||||
None => return Ok(None),
|
||||
@@ -622,7 +622,7 @@ impl<A: Anchor> TxGraph<A> {
|
||||
|
||||
for anchor in anchors {
|
||||
match chain.is_block_in_chain(anchor.anchor_block(), chain_tip)? {
|
||||
Some(true) => return Ok(Some(ObservedAs::Confirmed(anchor))),
|
||||
Some(true) => return Ok(Some(ChainPosition::Confirmed(anchor))),
|
||||
_ => continue,
|
||||
}
|
||||
}
|
||||
@@ -651,7 +651,7 @@ impl<A: Anchor> TxGraph<A> {
|
||||
}
|
||||
}
|
||||
|
||||
Ok(Some(ObservedAs::Unconfirmed(*last_seen)))
|
||||
Ok(Some(ChainPosition::Unconfirmed(*last_seen)))
|
||||
}
|
||||
|
||||
/// Get the position of the transaction in `chain` with tip `chain_tip`.
|
||||
@@ -664,7 +664,7 @@ impl<A: Anchor> TxGraph<A> {
|
||||
chain: &C,
|
||||
chain_tip: BlockId,
|
||||
txid: Txid,
|
||||
) -> Option<ObservedAs<&A>> {
|
||||
) -> Option<ChainPosition<&A>> {
|
||||
self.try_get_chain_position(chain, chain_tip, txid)
|
||||
.expect("error is infallible")
|
||||
}
|
||||
@@ -686,7 +686,7 @@ impl<A: Anchor> TxGraph<A> {
|
||||
chain: &C,
|
||||
chain_tip: BlockId,
|
||||
outpoint: OutPoint,
|
||||
) -> Result<Option<(ObservedAs<&A>, Txid)>, C::Error> {
|
||||
) -> Result<Option<(ChainPosition<&A>, Txid)>, C::Error> {
|
||||
if self
|
||||
.try_get_chain_position(chain, chain_tip, outpoint.txid)?
|
||||
.is_none()
|
||||
@@ -714,7 +714,7 @@ impl<A: Anchor> TxGraph<A> {
|
||||
chain: &C,
|
||||
static_block: BlockId,
|
||||
outpoint: OutPoint,
|
||||
) -> Option<(ObservedAs<&A>, Txid)> {
|
||||
) -> Option<(ChainPosition<&A>, Txid)> {
|
||||
self.try_get_chain_spend(chain, static_block, outpoint)
|
||||
.expect("error is infallible")
|
||||
}
|
||||
@@ -786,7 +786,7 @@ impl<A: Anchor> TxGraph<A> {
|
||||
chain: &'a C,
|
||||
chain_tip: BlockId,
|
||||
outpoints: impl IntoIterator<Item = (OI, OutPoint)> + 'a,
|
||||
) -> impl Iterator<Item = Result<(OI, FullTxOut<ObservedAs<A>>), C::Error>> + 'a {
|
||||
) -> impl Iterator<Item = Result<(OI, FullTxOut<A>), C::Error>> + 'a {
|
||||
outpoints
|
||||
.into_iter()
|
||||
.map(
|
||||
@@ -837,7 +837,7 @@ impl<A: Anchor> TxGraph<A> {
|
||||
chain: &'a C,
|
||||
chain_tip: BlockId,
|
||||
outpoints: impl IntoIterator<Item = (OI, OutPoint)> + 'a,
|
||||
) -> impl Iterator<Item = (OI, FullTxOut<ObservedAs<A>>)> + 'a {
|
||||
) -> impl Iterator<Item = (OI, FullTxOut<A>)> + 'a {
|
||||
self.try_filter_chain_txouts(chain, chain_tip, outpoints)
|
||||
.map(|r| r.expect("oracle is infallible"))
|
||||
}
|
||||
@@ -865,7 +865,7 @@ impl<A: Anchor> TxGraph<A> {
|
||||
chain: &'a C,
|
||||
chain_tip: BlockId,
|
||||
outpoints: impl IntoIterator<Item = (OI, OutPoint)> + 'a,
|
||||
) -> impl Iterator<Item = Result<(OI, FullTxOut<ObservedAs<A>>), C::Error>> + 'a {
|
||||
) -> impl Iterator<Item = Result<(OI, FullTxOut<A>), C::Error>> + 'a {
|
||||
self.try_filter_chain_txouts(chain, chain_tip, outpoints)
|
||||
.filter(|r| match r {
|
||||
// keep unspents, drop spents
|
||||
@@ -886,7 +886,7 @@ impl<A: Anchor> TxGraph<A> {
|
||||
chain: &'a C,
|
||||
chain_tip: BlockId,
|
||||
txouts: impl IntoIterator<Item = (OI, OutPoint)> + 'a,
|
||||
) -> impl Iterator<Item = (OI, FullTxOut<ObservedAs<A>>)> + 'a {
|
||||
) -> impl Iterator<Item = (OI, FullTxOut<A>)> + 'a {
|
||||
self.try_filter_chain_unspents(chain, chain_tip, txouts)
|
||||
.map(|r| r.expect("oracle is infallible"))
|
||||
}
|
||||
@@ -919,14 +919,14 @@ impl<A: Anchor> TxGraph<A> {
|
||||
let (spk_i, txout) = res?;
|
||||
|
||||
match &txout.chain_position {
|
||||
ObservedAs::Confirmed(_) => {
|
||||
ChainPosition::Confirmed(_) => {
|
||||
if txout.is_confirmed_and_spendable(chain_tip.height) {
|
||||
confirmed += txout.txout.value;
|
||||
} else if !txout.is_mature(chain_tip.height) {
|
||||
immature += txout.txout.value;
|
||||
}
|
||||
}
|
||||
ObservedAs::Unconfirmed(_) => {
|
||||
ChainPosition::Unconfirmed(_) => {
|
||||
if trust_predicate(&spk_i, &txout.txout.script_pubkey) {
|
||||
trusted_pending += txout.txout.value;
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user