Retrieve nullifiers for all unconfirmed notes.
Previously we were retrieving nullifiers for notes that were not marked spent, but not checking against whether the spending transaction had been included in a block.
This commit is contained in:
parent
ebadc8c44c
commit
309d83af57
|
@ -470,13 +470,21 @@ pub fn get_witnesses<P>(
|
|||
Ok(res)
|
||||
}
|
||||
|
||||
/// Retrieve the nullifiers for notes that the wallet is tracking
|
||||
/// that have not yet been confirmed as a consequence of the spending
|
||||
/// transaction being included in a block.
|
||||
pub fn get_nullifiers<P>(
|
||||
wdb: &WalletDB<P>,
|
||||
) -> Result<Vec<(AccountId, Nullifier)>, SqliteClientError> {
|
||||
// Get the nullifiers for the notes we are tracking
|
||||
let mut stmt_fetch_nullifiers = wdb
|
||||
.conn
|
||||
.prepare("SELECT id_note, account, nf FROM received_notes WHERE spent IS NULL")?;
|
||||
.prepare(
|
||||
"SELECT rn.id_note, rn.account, rn.nf, tx.block as block
|
||||
FROM received_notes rn
|
||||
LEFT OUTER JOIN transactions tx
|
||||
ON tx.id_tx = rn.spent
|
||||
WHERE block IS NULL")?;
|
||||
let nullifiers = stmt_fetch_nullifiers.query_map(NO_PARAMS, |row| {
|
||||
let account = AccountId(row.get(1)?);
|
||||
let nf_bytes: Vec<u8> = row.get(2)?;
|
||||
|
|
Loading…
Reference in New Issue