Store creation time and expiry height in transactions table
- Creation time can be used in the UI before a transaction gets mined. - Expiry height enables the UI to indicate expired transactions.
This commit is contained in:
parent
bc88f5cd2a
commit
45adb0af4a
|
@ -738,6 +738,7 @@ dependencies = [
|
||||||
"rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rusqlite 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rusqlite 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"sapling-crypto 0.0.1 (git+https://github.com/str4d/librustzcash.git?rev=89cfef8515d5d88809c485a44fdc54572b9e5666)",
|
"sapling-crypto 0.0.1 (git+https://github.com/str4d/librustzcash.git?rev=89cfef8515d5d88809c485a44fdc54572b9e5666)",
|
||||||
|
"time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"zcash_client_backend 0.0.0 (git+https://github.com/str4d/librustzcash.git?rev=89cfef8515d5d88809c485a44fdc54572b9e5666)",
|
"zcash_client_backend 0.0.0 (git+https://github.com/str4d/librustzcash.git?rev=89cfef8515d5d88809c485a44fdc54572b9e5666)",
|
||||||
"zcash_primitives 0.0.0 (git+https://github.com/str4d/librustzcash.git?rev=89cfef8515d5d88809c485a44fdc54572b9e5666)",
|
"zcash_primitives 0.0.0 (git+https://github.com/str4d/librustzcash.git?rev=89cfef8515d5d88809c485a44fdc54572b9e5666)",
|
||||||
"zip32 0.0.0 (git+https://github.com/str4d/librustzcash.git?rev=89cfef8515d5d88809c485a44fdc54572b9e5666)",
|
"zip32 0.0.0 (git+https://github.com/str4d/librustzcash.git?rev=89cfef8515d5d88809c485a44fdc54572b9e5666)",
|
||||||
|
|
|
@ -17,6 +17,7 @@ log-panics = "2.0.0"
|
||||||
protobuf = "2"
|
protobuf = "2"
|
||||||
rand = "0.4"
|
rand = "0.4"
|
||||||
rusqlite = { version = "0.15", features = ["bundled"] }
|
rusqlite = { version = "0.15", features = ["bundled"] }
|
||||||
|
time = "0.1"
|
||||||
|
|
||||||
[dependencies.ff]
|
[dependencies.ff]
|
||||||
git = "https://github.com/str4d/librustzcash.git"
|
git = "https://github.com/str4d/librustzcash.git"
|
||||||
|
|
|
@ -11,6 +11,7 @@ extern crate pairing;
|
||||||
extern crate protobuf;
|
extern crate protobuf;
|
||||||
extern crate rusqlite;
|
extern crate rusqlite;
|
||||||
extern crate sapling_crypto;
|
extern crate sapling_crypto;
|
||||||
|
extern crate time;
|
||||||
extern crate zcash_client_backend;
|
extern crate zcash_client_backend;
|
||||||
extern crate zcash_primitives;
|
extern crate zcash_primitives;
|
||||||
extern crate zip32;
|
extern crate zip32;
|
||||||
|
|
|
@ -54,8 +54,10 @@ pub fn init_data_database(db_data: &str) -> rusqlite::Result<()> {
|
||||||
"CREATE TABLE IF NOT EXISTS transactions (
|
"CREATE TABLE IF NOT EXISTS transactions (
|
||||||
id_tx INTEGER PRIMARY KEY,
|
id_tx INTEGER PRIMARY KEY,
|
||||||
txid BLOB NOT NULL UNIQUE,
|
txid BLOB NOT NULL UNIQUE,
|
||||||
|
created TEXT,
|
||||||
block INTEGER,
|
block INTEGER,
|
||||||
tx_index INTEGER,
|
tx_index INTEGER,
|
||||||
|
expiry_height INTEGER,
|
||||||
raw BLOB,
|
raw BLOB,
|
||||||
FOREIGN KEY (block) REFERENCES blocks(height)
|
FOREIGN KEY (block) REFERENCES blocks(height)
|
||||||
)",
|
)",
|
||||||
|
@ -574,15 +576,21 @@ pub fn send_to_address(
|
||||||
let (tx, tx_metadata) = builder.build(consensus_branch_id, prover)?;
|
let (tx, tx_metadata) = builder.build(consensus_branch_id, prover)?;
|
||||||
// We only called add_sapling_output() once.
|
// We only called add_sapling_output() once.
|
||||||
let output_index = tx_metadata.output_index(0).unwrap() as i64;
|
let output_index = tx_metadata.output_index(0).unwrap() as i64;
|
||||||
|
let created = time::get_time();
|
||||||
|
|
||||||
// Save the transaction in the database.
|
// Save the transaction in the database.
|
||||||
let mut raw_tx = vec![];
|
let mut raw_tx = vec![];
|
||||||
tx.write(&mut raw_tx)?;
|
tx.write(&mut raw_tx)?;
|
||||||
let mut stmt_insert_tx = data.prepare(
|
let mut stmt_insert_tx = data.prepare(
|
||||||
"INSERT INTO transactions (txid, raw)
|
"INSERT INTO transactions (txid, created, expiry_height, raw)
|
||||||
VALUES (?, ?)",
|
VALUES (?, ?, ?, ?)",
|
||||||
)?;
|
)?;
|
||||||
stmt_insert_tx.execute(&[&tx.txid().0[..], &raw_tx[..]])?;
|
stmt_insert_tx.execute(&[
|
||||||
|
tx.txid().0.to_sql()?,
|
||||||
|
created.to_sql()?,
|
||||||
|
tx.expiry_height.to_sql()?,
|
||||||
|
raw_tx.to_sql()?,
|
||||||
|
])?;
|
||||||
let id_tx = data.last_insert_rowid();
|
let id_tx = data.last_insert_rowid();
|
||||||
|
|
||||||
// Save the sent note in the database.
|
// Save the sent note in the database.
|
||||||
|
|
Loading…
Reference in New Issue