spark_sdk/wallet/utils/
sequence.rs

1use bitcoin::Sequence;
2
3use crate::constants::spark::{INITIAL_TIME_LOCK, TIME_LOCK_INTERVAL};
4
5pub(crate) fn initial_sequence() -> Sequence {
6    let sequence = (1 << 30) | INITIAL_TIME_LOCK;
7    Sequence(sequence)
8}
9
10pub(crate) fn next_sequence(curr_sequence: u32) -> u32 {
11    let mask = curr_sequence & 0xFFFF;
12    if TIME_LOCK_INTERVAL >= mask {
13        return 0;
14    };
15
16    (1 << 30) | (mask - TIME_LOCK_INTERVAL)
17}