pub struct Sequence(pub u32);
Expand description
Bitcoin transaction input sequence number.
The sequence field is used for:
- Indicating whether absolute lock-time (specified in
lock_time
field ofTransaction
) is enabled. - Indicating and encoding BIP-68 relative lock-times.
- Indicating whether a transcation opts-in to BIP-125 replace-by-fee.
Note that transactions spending an output with OP_CHECKLOCKTIMEVERIFY
MUST NOT use
Sequence::MAX
for the corresponding input. BIP-65
Tuple Fields
0: u32
Implementations
sourceimpl Sequence
impl Sequence
sourcepub const MAX: Self = _
pub const MAX: Self = _
The maximum allowable sequence number.
This sequence number disables lock-time and replace-by-fee.
sourcepub const ZERO: Self = _
pub const ZERO: Self = _
Zero value sequence.
This sequence number enables replace-by-fee and lock-time.
sourcepub const ENABLE_LOCKTIME_NO_RBF: Self = Sequence::MIN_NO_RBF
pub const ENABLE_LOCKTIME_NO_RBF: Self = Sequence::MIN_NO_RBF
The sequence number that enables absolute lock-time but disables replace-by-fee and relative lock-time.
sourcepub const ENABLE_RBF_NO_LOCKTIME: Self = _
pub const ENABLE_RBF_NO_LOCKTIME: Self = _
The sequence number that enables replace-by-fee and absolute lock-time but disables relative lock-time.
sourcepub fn is_final(&self) -> bool
pub fn is_final(&self) -> bool
Retuns true
if the sequence number indicates that the transaction is finalised.
The sequence number being equal to 0xffffffff on all txin sequences indicates that the transaction is finalised.
sourcepub fn is_rbf(&self) -> bool
pub fn is_rbf(&self) -> bool
Returns true if the transaction opted-in to BIP125 replace-by-fee.
Replace by fee is signaled by the sequence being less than 0xfffffffe which is checked by this method.
sourcepub fn is_relative_lock_time(&self) -> bool
pub fn is_relative_lock_time(&self) -> bool
Returns true
if the sequence has a relative lock-time.
sourcepub fn is_height_locked(&self) -> bool
pub fn is_height_locked(&self) -> bool
Returns true
if the sequence number encodes a block based relative lock-time.
sourcepub fn is_time_locked(&self) -> bool
pub fn is_time_locked(&self) -> bool
Returns true
if the sequene number encodes a time interval based relative lock-time.
sourcepub fn from_height(height: u16) -> Self
pub fn from_height(height: u16) -> Self
Create a relative lock-time using block height.
sourcepub fn from_512_second_intervals(intervals: u16) -> Self
pub fn from_512_second_intervals(intervals: u16) -> Self
Create a relative lock-time using time intervals where each interval is equivalent to 512 seconds.
Encoding finer granularity of time for relative lock-times is not supported in Bitcoin
sourcepub fn from_seconds_floor(seconds: u32) -> Result<Self, RelativeLockTimeError>
pub fn from_seconds_floor(seconds: u32) -> Result<Self, RelativeLockTimeError>
Create a relative lock-time from seconds, converting the seconds into 512 second interval with floor division.
Will return an error if the input cannot be encoded in 16 bits.
sourcepub fn from_seconds_ceil(seconds: u32) -> Result<Self, RelativeLockTimeError>
pub fn from_seconds_ceil(seconds: u32) -> Result<Self, RelativeLockTimeError>
Create a relative lock-time from seconds, converting the seconds into 512 second interval with ceiling division.
Will return an error if the input cannot be encoded in 16 bits.
sourcepub fn enables_absolute_lock_time(&self) -> bool
pub fn enables_absolute_lock_time(&self) -> bool
Returns true
if the sequence number enables absolute lock-time (Transaction::lock_time
).
sourcepub fn from_consensus(n: u32) -> Self
pub fn from_consensus(n: u32) -> Self
Create a sequence from a u32 value.
sourcepub fn to_consensus_u32(self) -> u32
pub fn to_consensus_u32(self) -> u32
Returns the inner 32bit integer value of Sequence.
Trait Implementations
sourceimpl<'de> Deserialize<'de> for Sequence
impl<'de> Deserialize<'de> for Sequence
sourcefn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
sourceimpl Ord for Sequence
impl Ord for Sequence
1.21.0 · sourcefn max(self, other: Self) -> Self
fn max(self, other: Self) -> Self
Compares and returns the maximum of two values. Read more
1.21.0 · sourcefn min(self, other: Self) -> Self
fn min(self, other: Self) -> Self
Compares and returns the minimum of two values. Read more
1.50.0 · sourcefn clamp(self, min: Self, max: Self) -> Self where
Self: PartialOrd<Self>,
fn clamp(self, min: Self, max: Self) -> Self where
Self: PartialOrd<Self>,
Restrict a value to a certain interval. Read more
sourceimpl PartialOrd<Sequence> for Sequence
impl PartialOrd<Sequence> for Sequence
sourcefn partial_cmp(&self, other: &Sequence) -> Option<Ordering>
fn partial_cmp(&self, other: &Sequence) -> Option<Ordering>
This method returns an ordering between self
and other
values if one exists. Read more
1.0.0 · sourcefn lt(&self, other: &Rhs) -> bool
fn lt(&self, other: &Rhs) -> bool
This method tests less than (for self
and other
) and is used by the <
operator. Read more
1.0.0 · sourcefn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
impl Copy for Sequence
impl Eq for Sequence
impl StructuralEq for Sequence
impl StructuralPartialEq for Sequence
Auto Trait Implementations
impl RefUnwindSafe for Sequence
impl Send for Sequence
impl Sync for Sequence
impl Unpin for Sequence
impl UnwindSafe for Sequence
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more