),
Error::ValueOverflow => write!(f, "arithmetic overflow calculating value"),
Error::DuplicateAddress(address) => write!(f, "duplicate input address: {address}"),
}
}
}
impl std::error::Error for Error {}
#[derive(Debug, PartialEq)]
pub struct TransactionBuilder {
amounts: BTreeMap<OutPoint, Amount>,
change_addresses: BTreeSet<Address>,
fee_rate: FeeRate,
inputs: Vec<OutPoint>,
inscriptions: BTreeMap<SatPoint, InscriptionId>,
outgoing: SatPoint,
outputs: Vec<(Address, Amount)>,
recipient: Address,
unused_change_addresses: Vec<Address>,
utxos: BTreeSet<OutPoint>,
locked_utxos: BTreeSet<OutPoint>,
target: Target,
}
type Result<T> = std::result::Result<T, Error>;
impl TransactionBuilder {
const ADDITIONAL_INPUT_VBYTES: usize = 58;
const ADDITIONAL_OUTPUT_VBYTES: usize = 43;
const SCHNORR_SIGNATURE_SIZE: usize = 64;
pub(crate) const TARGET_POSTAGE: Amount = Amount::from_sat(10_000);
pub(crate) const MAX_POSTAGE: Amount = Amount::from_sat(2 * 10_000);