1.0.7 Added new column to token database to calculate address balances quickly
This commit is contained in:
parent
eaad8d88b8
commit
c3c423429b
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
Reference in New Issue
Block a user