@@ -131,7 +143,7 @@ export default class Transaction {
getWalletBalance(keyIdentifier,stable){
returnnewPromise((resolve)=>{
this.database.get('SELECT SUM(amount) as amount FROM transaction_output '+
this.database.get('SELECT COALESCE(SUM(AMOUNT), 0) as amount FROM transaction_output '+
'INNER JOIN `transaction` ON `transaction`.transaction_id = transaction_output.transaction_id '+
'WHERE transaction_output.address_key_identifier=? AND transaction_output.is_stable = '+(stable?1:0)+
' AND is_spent = 0 AND is_double_spend = 0 AND `transaction`.status != 3',[keyIdentifier],
...
...
@@ -143,7 +155,7 @@ export default class Transaction {
getAddressBalance(address,stable){
returnnewPromise((resolve)=>{
this.database.get('SELECT SUM(amount) as amount FROM transaction_output INNER JOIN `transaction` ON `transaction`.transaction_id = transaction_output.transaction_id '+
this.database.get('SELECT COALESCE(SUM(AMOUNT), 0) as amount FROM transaction_output INNER JOIN `transaction` ON `transaction`.transaction_id = transaction_output.transaction_id '+
'WHERE address=? AND transaction_output.is_stable = '+(stable?1:0)+' AND is_spent = 0 AND is_double_spend = 0 AND `transaction`.status != 3',[address],
(err,row)=>{
resolve(row?row.amount||0:0);
...
...
@@ -157,7 +169,7 @@ export default class Transaction {
SELECT address_key_identifier,
SUM(${stable?'balance_stable':'balance_pending'}) as ${stable?'balance_stable':'balance_pending'}
FROM (SELECT address_key_identifier,
SUM(amount) as ${stable?'balance_stable':'balance_pending'}
COALESCE(SUM(AMOUNT), 0) as ${stable?'balance_stable':'balance_pending'}
FROM transaction_output
WHERE is_stable = ${stable?1:0}
AND is_double_spend = 0
...
...
@@ -166,7 +178,7 @@ export default class Transaction {
GROUP BY address_key_identifier
UNION ALL
SELECT address_key_identifier,
SUM(amount) as ${stable?'balance_stable':'balance_pending'}
COALESCE(SUM(AMOUNT), 0) as ${stable?'balance_stable':'balance_pending'}
FROM shard_zero.transaction_output
WHERE is_stable = ${stable?1:0}
AND is_double_spend = 0
...
...
@@ -191,7 +203,7 @@ export default class Transaction {
SELECT address,
SUM(${stable?'balance_stable':'balance_pending'}) as ${stable?'balance_stable':'balance_pending'}
FROM (SELECT address,
SUM(amount) as ${stable?'balance_stable':'balance_pending'}
COALESCE(SUM(AMOUNT), 0) as ${stable?'balance_stable':'balance_pending'}
FROM transaction_output
WHERE is_stable = ${stable?1:0}
AND is_double_spend = 0
...
...
@@ -200,7 +212,7 @@ export default class Transaction {
GROUP BY address
UNION ALL
SELECT address,
SUM(amount) as ${stable?'balance_stable':'balance_pending'}
COALESCE(SUM(AMOUNT), 0) as ${stable?'balance_stable':'balance_pending'}
FROM shard_zero.transaction_output
WHERE is_stable = ${stable?1:0}
AND is_double_spend = 0
...
...
@@ -323,6 +335,56 @@ export default class Transaction {
});
}
getTransactionToSyncWallet(addressKeyIdentifier){
returnnewPromise((resolve,reject)=>{
this.database.all(`select distinct transaction_id
from (select o.transaction_id
from shard_zero.transaction_output o
left join shard_zero.transaction_input i
on o.transaction_id =
i.output_transaction_id and
o.output_position =
i.output_position
where i.transaction_id is null
and o.address_key_identifier = ?1
union
select o.transaction_id
from transaction_output o
left join transaction_input i
on o.transaction_id =
i.output_transaction_id and
o.output_position =
i.output_position
where i.transaction_id is null
and o.address_key_identifier = ?1
union
select i.transaction_id
from transaction_input i
left join transaction_output o
on i.transaction_id =
o.transaction_id and
o.address_key_identifier =
?1
where o.transaction_id is NULL
and i.address_key_identifier = ?1
union
select i.transaction_id
from shard_zero.transaction_input i
left join shard_zero.transaction_output o
on i.transaction_id =
o.transaction_id and
o.address_key_identifier =
?1
where o.transaction_id is NULL
and i.address_key_identifier = ?1)`,[addressKeyIdentifier],(err,data)=>{
@@ -414,11 +476,11 @@ export default class Transaction {
WHERE transaction_output.address_key_identifier = ? AND transaction_output.status != 3 \
), \
transaction_amount AS ( \
SELECT transaction_id, SUM(amount) as amount FROM transaction_output \
SELECT transaction_id, COALESCE(SUM(amount), 0) as amount FROM transaction_output \
WHERE transaction_id IN (SELECT transaction_id FROM transaction_wallet) \
GROUP BY transaction_id \
) \
SELECT t.transaction_id, t.transaction_date, a.amount, SUM(w.withdrawal) as withdrawal, t.stable_date, t.parent_date FROM `transaction` t \
SELECT t.transaction_id, t.transaction_date, a.amount, COALESCE(SUM(w.withdrawal), 0) as withdrawal, t.stable_date, t.parent_date FROM `transaction` t \
JOIN transaction_wallet w ON w.transaction_id = t.transaction_id \
JOIN transaction_amount a ON a.transaction_id = t.transaction_id \