1.0.7 Added new column to token database to calculate address balances quickly

This commit is contained in:
Vivek Teega 2022-01-17 20:56:48 +05:30
parent eaad8d88b8
commit c3c423429b
2 changed files with 9 additions and 9 deletions

View File

@ -1,6 +1,6 @@
from sqlalchemy import create_engine, func
from sqlalchemy.orm import sessionmaker
from models import SystemData, ActiveTable, ConsumedTable, TransferLogs, TransactionHistory, RejectedTransactionHistory, Base, ContractStructure, ContractBase, ContractParticipants, SystemBase, ActiveContracts, ContractAddressMapping, LatestCacheBase, ContractTransactionHistory, RejectedContractTransactionHistory, TokenContractAssociation, ContinuosContractBase, ContractStructure1, ContractParticipants1, ContractDeposits1, ContractTransactionHistory1, LatestCacheBase, LatestTransactions, LatestBlocks
from models import SystemData, ActiveTable, ConsumedTable, TransferLogs, TransactionHistory, RejectedTransactionHistory, Base, ContractStructure, ContractBase, ContractParticipants, SystemBase, ActiveContracts, ContractAddressMapping, LatestCacheBase, ContractTransactionHistory, RejectedContractTransactionHistory, TokenContractAssociation, ContinuosContractBase, ContractStructure1, ContractParticipants1, ContractDeposits1, ContractTransactionHistory1, LatestTransactions, LatestBlocks, DatabaseAddressMapping
import json
from tracktokens_smartcontracts import processTransaction
import os

View File

@ -251,16 +251,16 @@ def transferToken(tokenIdentification, tokenAmount, inputAddress, outputAddress,
consumedpid_string = consumedpid_string[:-1]
# Make new entry
receiverAddress_details = session.query(ActiveTable).filter_by(address=outputAddress).order_by(ActiveTable.id.desc()).first()
senderAddress_details = session.query(ActiveTable).filter_by(address=inputAddress).order_by(ActiveTable.id.desc()).first()
receiverAddress_details = session.query(ActiveTable).filter(ActiveTable.address==outputAddress, ActiveTable.addressBalance!=None).order_by(ActiveTable.id.desc()).first()
if receiverAddress_details is None:
addressBalance = commentTransferAmount
else:
addressBalance = receiverAddress_details.addressBalance + commentTransferAmount
receiverAddress_details.addressBalance = None
session.add(ActiveTable(address=outputAddress, consumedpid=str(piddict), transferBalance=commentTransferAmount, addressBalance = addressBalance))
senderAddress_details.addressBalance = senderAddress_details.addressBalance - commentTransferAmount
senderAddress_details = session.query(ActiveTable).filter_by(address=inputAddress).order_by(ActiveTable.id.desc()).first()
senderAddress_details.addressBalance = senderAddress_details.addressBalance - commentTransferAmount
# Migration
# shift pid of used utxos from active to consumed
@ -307,15 +307,15 @@ def transferToken(tokenIdentification, tokenAmount, inputAddress, outputAddress,
consumedpid_string = consumedpid_string[:-1]
# Make new entry
receiverAddress_details = session.query(ActiveTable).filter_by(address=outputAddress).order_by(ActiveTable.id.desc()).first()
senderAddress_details = session.query(ActiveTable).filter_by(address=inputAddress).order_by(ActiveTable.id.desc()).first()
receiverAddress_details = session.query(ActiveTable).filter(ActiveTable.address==outputAddress, ActiveTable.addressBalance!=None).order_by(ActiveTable.id.desc()).first()
if receiverAddress_details is None:
addressBalance = commentTransferAmount
else:
addressBalance = receiverAddress_details.addressBalance + commentTransferAmount
addressBalance = receiverAddress_details.addressBalance + commentTransferAmount
receiverAddress_details.addressBalance = None
session.add(ActiveTable(address=outputAddress, consumedpid=str(piddict), transferBalance=commentTransferAmount, addressBalance = addressBalance))
senderAddress_details = session.query(ActiveTable).filter_by(address=inputAddress).order_by(ActiveTable.id.desc()).first()
senderAddress_details.addressBalance = senderAddress_details.addressBalance - commentTransferAmount
# Migration