@@ -838,6 +838,39 @@ export class WalletTransactionConsensus {
...
@@ -838,6 +838,39 @@ export class WalletTransactionConsensus {
console.log('[wallet-transaction-consensus] the transaction ',transactionID,' was not validated (due to double spend) during consensus round number ',consensusData.consensus_round_count);
console.log('[wallet-transaction-consensus] the transaction ',transactionID,' was not validated (due to double spend) during consensus round number ',consensusData.consensus_round_count);
@@ -871,7 +904,6 @@ export class WalletTransactionConsensus {
...
@@ -871,7 +904,6 @@ export class WalletTransactionConsensus {
consensusData.active=false;
consensusData.active=false;
console.log('[wallet-transaction-consensus] the transaction ',transactionID,' was not validated (due to not invalid tx) during consensus round number ',consensusData.consensus_round_count);
console.log('[wallet-transaction-consensus] the transaction ',transactionID,' was not validated (due to not invalid tx) during consensus round number ',consensusData.consensus_round_count);
this.database.all('SELECT * FROM `transaction` INNER JOIN transaction_input ON `transaction`.transaction_id = transaction_input.transaction_id WHERE output_transaction_id = ? AND output_position = ?',
this.database.all('SELECT t.*, o.is_double_spend, o.is_spent FROM `transaction` t INNER JOIN transaction_input i ON t.transaction_id = i.transaction_id INNER JOIN transaction_output o ON o.transaction_id = t.transaction_id '+
'WHERE i.output_transaction_id = ? AND i.output_position = ?',
[
[
transactionID,
transactionID,
outputPosition
outputPosition
...
@@ -2016,21 +2057,21 @@ export default class Transaction {
...
@@ -2016,21 +2057,21 @@ export default class Transaction {
WHERE i.output_transaction_id = o.transaction_id AND i.output_position = o.output_position AND
WHERE i.output_transaction_id = o.transaction_id AND i.output_position = o.output_position AND
o2.status != 3 and o2.is_double_spend = 0
o2.status != 3 and o2.is_double_spend = 0
)
)
WHERE transaction_id IN (SELECT output_transaction_id FROM transaction_input WHERE transaction_id = "${transactionID}");
WHERE transaction_id = "${transactionID}";
UPDATE transaction_output AS o
UPDATE transaction_output AS o
SET is_double_spend = 0, double_spend_date = NULL, is_stable = 1, stable_date = CAST(strftime('%s', 'now') AS INTEGER), is_spent = EXISTS (
SET is_double_spend = 0, double_spend_date = NULL, is_stable = 1, stable_date = CAST(strftime('%s', 'now') AS INTEGER), is_spent = EXISTS (
SELECT i.output_transaction_id FROM transaction_input i
SELECT i.output_transaction_id FROM transaction_input i
INNER JOIN transaction_output o2 ON i.transaction_id = o2.transaction_id
INNER JOIN transaction_output o2 ON i.transaction_id = o2.transaction_id
WHERE i.output_transaction_id = o.transaction_id AND i.output_position = o.output_position AND
WHERE i.output_transaction_id = o.transaction_id AND i.output_position = o.output_position AND
o2.status != 3 AND o2.is_double_spend = 0
o2.status != 3 AND o2.is_double_spend = 0
), spent_date = (
), spent_date = (
SELECT t.transaction_date FROM 'transaction' t
SELECT t.transaction_date FROM 'transaction' t
INNER JOIN transaction_input i ON i.transaction_id = t.transaction_id
INNER JOIN transaction_input i ON i.transaction_id = t.transaction_id
INNER JOIN transaction_output o2 ON i.transaction_id = o2.transaction_id
INNER JOIN transaction_output o2 ON i.transaction_id = o2.transaction_id
WHERE i.output_transaction_id = o.transaction_id AND i.output_position = o.output_position AND
WHERE i.output_transaction_id = o.transaction_id AND i.output_position = o.output_position AND
o2.status != 3 and o2.is_double_spend = 0
o2.status != 3 and o2.is_double_spend = 0
)
)
WHERE transaction_id = "${transactionID}";
WHERE transaction_id IN (SELECT output_transaction_id FROM transaction_input WHERE transaction_id = "${transactionID}");