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}