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 import create_engine, func
|
||||||
from sqlalchemy.orm import sessionmaker
|
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
|
import json
|
||||||
from tracktokens_smartcontracts import processTransaction
|
from tracktokens_smartcontracts import processTransaction
|
||||||
import os
|
import os
|
||||||
|
|||||||
@ -251,16 +251,16 @@ def transferToken(tokenIdentification, tokenAmount, inputAddress, outputAddress,
|
|||||||
consumedpid_string = consumedpid_string[:-1]
|
consumedpid_string = consumedpid_string[:-1]
|
||||||
|
|
||||||
# Make new entry
|
# Make new entry
|
||||||
receiverAddress_details = session.query(ActiveTable).filter_by(address=outputAddress).order_by(ActiveTable.id.desc()).first()
|
receiverAddress_details = session.query(ActiveTable).filter(ActiveTable.address==outputAddress, ActiveTable.addressBalance!=None).order_by(ActiveTable.id.desc()).first()
|
||||||
senderAddress_details = session.query(ActiveTable).filter_by(address=inputAddress).order_by(ActiveTable.id.desc()).first()
|
|
||||||
if receiverAddress_details is None:
|
if receiverAddress_details is None:
|
||||||
addressBalance = commentTransferAmount
|
addressBalance = commentTransferAmount
|
||||||
else:
|
else:
|
||||||
addressBalance = receiverAddress_details.addressBalance + commentTransferAmount
|
addressBalance = receiverAddress_details.addressBalance + commentTransferAmount
|
||||||
receiverAddress_details.addressBalance = None
|
receiverAddress_details.addressBalance = None
|
||||||
|
|
||||||
session.add(ActiveTable(address=outputAddress, consumedpid=str(piddict), transferBalance=commentTransferAmount, addressBalance = addressBalance))
|
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
|
# Migration
|
||||||
# shift pid of used utxos from active to consumed
|
# shift pid of used utxos from active to consumed
|
||||||
@ -307,15 +307,15 @@ def transferToken(tokenIdentification, tokenAmount, inputAddress, outputAddress,
|
|||||||
consumedpid_string = consumedpid_string[:-1]
|
consumedpid_string = consumedpid_string[:-1]
|
||||||
|
|
||||||
# Make new entry
|
# Make new entry
|
||||||
receiverAddress_details = session.query(ActiveTable).filter_by(address=outputAddress).order_by(ActiveTable.id.desc()).first()
|
receiverAddress_details = session.query(ActiveTable).filter(ActiveTable.address==outputAddress, ActiveTable.addressBalance!=None).order_by(ActiveTable.id.desc()).first()
|
||||||
senderAddress_details = session.query(ActiveTable).filter_by(address=inputAddress).order_by(ActiveTable.id.desc()).first()
|
|
||||||
if receiverAddress_details is None:
|
if receiverAddress_details is None:
|
||||||
addressBalance = commentTransferAmount
|
addressBalance = commentTransferAmount
|
||||||
else:
|
else:
|
||||||
addressBalance = receiverAddress_details.addressBalance + commentTransferAmount
|
addressBalance = receiverAddress_details.addressBalance + commentTransferAmount
|
||||||
receiverAddress_details.addressBalance = None
|
receiverAddress_details.addressBalance = None
|
||||||
|
|
||||||
session.add(ActiveTable(address=outputAddress, consumedpid=str(piddict), transferBalance=commentTransferAmount, addressBalance = addressBalance))
|
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
|
senderAddress_details.addressBalance = senderAddress_details.addressBalance - commentTransferAmount
|
||||||
|
|
||||||
# Migration
|
# Migration
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user