merged new updates
This commit is contained in:
@@ -267,7 +267,7 @@ impl Utxo {
|
||||
let mut address_bytes = vec![0; address_len as usize];
|
||||
reader.read_exact(&mut address_bytes)?;
|
||||
let address = String::from_utf8(address_bytes).unwrap();
|
||||
assert_eq!(address.chars().take(1).collect::<Vec<char>>()[0], 'R');
|
||||
assert_eq!(address.chars().take(1).collect::<Vec<char>>()[0], 't');
|
||||
|
||||
let mut txid_bytes = [0; 32];
|
||||
reader.read_exact(&mut txid_bytes)?;
|
||||
@@ -362,8 +362,12 @@ impl OutgoingTxMetadata {
|
||||
}
|
||||
|
||||
pub struct WalletTx {
|
||||
// Block in which this tx was included
|
||||
pub block: i32,
|
||||
|
||||
// Timestamp of Tx. Added in v4
|
||||
pub datetime: u64,
|
||||
|
||||
// Txid of this transaction. It's duplicated here (It is also the Key in the HashMap that points to this
|
||||
// WalletTx in LightWallet::txs)
|
||||
pub txid: TxId,
|
||||
@@ -386,17 +390,19 @@ pub struct WalletTx {
|
||||
// All outgoing sapling sends to addresses outside this wallet
|
||||
pub outgoing_metadata: Vec<OutgoingTxMetadata>,
|
||||
|
||||
// Whether this TxID was downloaded from the server and scanned for Memos
|
||||
pub full_tx_scanned: bool,
|
||||
}
|
||||
|
||||
impl WalletTx {
|
||||
pub fn serialized_version() -> u64 {
|
||||
return 3;
|
||||
return 4;
|
||||
}
|
||||
|
||||
pub fn new(height: i32, txid: &TxId) -> Self {
|
||||
pub fn new(height: i32, datetime: u64, txid: &TxId) -> Self {
|
||||
WalletTx {
|
||||
block: height,
|
||||
datetime,
|
||||
txid: txid.clone(),
|
||||
notes: vec![],
|
||||
utxos: vec![],
|
||||
@@ -413,6 +419,12 @@ impl WalletTx {
|
||||
|
||||
let block = reader.read_i32::<LittleEndian>()?;
|
||||
|
||||
let datetime = if version >= 4 {
|
||||
reader.read_u64::<LittleEndian>()?
|
||||
} else {
|
||||
0
|
||||
};
|
||||
|
||||
let mut txid_bytes = [0u8; 32];
|
||||
reader.read_exact(&mut txid_bytes)?;
|
||||
|
||||
@@ -431,6 +443,7 @@ impl WalletTx {
|
||||
|
||||
Ok(WalletTx{
|
||||
block,
|
||||
datetime,
|
||||
txid,
|
||||
notes,
|
||||
utxos,
|
||||
@@ -446,6 +459,8 @@ impl WalletTx {
|
||||
|
||||
writer.write_i32::<LittleEndian>(self.block)?;
|
||||
|
||||
writer.write_u64::<LittleEndian>(self.datetime)?;
|
||||
|
||||
writer.write_all(&self.txid.0)?;
|
||||
|
||||
Vector::write(&mut writer, &self.notes, |w, nd| nd.write(w))?;
|
||||
@@ -475,7 +490,8 @@ pub struct SpendableNote {
|
||||
impl SpendableNote {
|
||||
pub fn from(txid: TxId, nd: &SaplingNoteData, anchor_offset: usize, extsk: &ExtendedSpendingKey) -> Option<Self> {
|
||||
// Include only notes that haven't been spent, or haven't been included in an unconfirmed spend yet.
|
||||
if nd.spent.is_none() && nd.unconfirmed_spent.is_none() {
|
||||
if nd.spent.is_none() && nd.unconfirmed_spent.is_none() &&
|
||||
nd.witnesses.len() >= (anchor_offset + 1) {
|
||||
let witness = nd.witnesses.get(nd.witnesses.len() - anchor_offset - 1);
|
||||
|
||||
witness.map(|w| SpendableNote {
|
||||
|
||||
Reference in New Issue
Block a user