static StandardTokenHolder AddStandardTokenAccountHolder(StandardTokenComputedTable computedTable, StandardTokenHolder?holder, string address) { if (holder is not null) { return(holder); } holder = new StandardTokenHolder { Address = address }; computedTable.TokenHolders.Add(holder); return(holder); }
public void UpdateContractFromTransactionLog(CirrusContractTable contractTransaction, StandardTokenComputedTable computedTable) { string fromAddress = (string)contractTransaction.Logs.Single().Log.Data["from"]; string toAddress = (string)contractTransaction.Logs.Single().Log.Data["to"]; long amount = (long)contractTransaction.Logs.Single().Log.Data["amount"]; var fromHolder = computedTable.TokenHolders.Single(_ => _.Address == fromAddress); fromHolder.Amount -= amount; var toHolder = computedTable.TokenHolders.SingleOrDefault(_ => _.Address == toAddress); if (toHolder is null) { toHolder = new StandardTokenHolder { Address = toAddress }; computedTable.TokenHolders.Add(toHolder); } toHolder.Amount += amount; }