From 03283414cb9654581c4025ec7f0806850d9bd4e1 Mon Sep 17 00:00:00 2001 From: benbierens Date: Fri, 15 Dec 2023 11:09:15 +0100 Subject: [PATCH] Adds transaction ID to record of user activity --- Tools/BiblioTech/Commands/MintCommand.cs | 12 ++++++------ Tools/BiblioTech/Transaction.cs | 14 ++++++++++++++ Tools/BiblioTech/UserRepo.cs | 17 ++++++++++++----- 3 files changed, 32 insertions(+), 11 deletions(-) create mode 100644 Tools/BiblioTech/Transaction.cs diff --git a/Tools/BiblioTech/Commands/MintCommand.cs b/Tools/BiblioTech/Commands/MintCommand.cs index 125ade8..2481aa0 100644 --- a/Tools/BiblioTech/Commands/MintCommand.cs +++ b/Tools/BiblioTech/Commands/MintCommand.cs @@ -43,29 +43,29 @@ namespace BiblioTech.Commands await context.Followup(string.Join(Environment.NewLine, report)); } - private TestToken ProcessTokens(ICodexContracts contracts, EthAddress addr, List report) + private Transaction? ProcessTokens(ICodexContracts contracts, EthAddress addr, List report) { if (ShouldMintTestTokens(contracts, addr)) { var transaction = contracts.MintTestTokens(addr, defaultTestTokensToMint); report.Add($"Minted {defaultTestTokensToMint}. ({FormatTransactionLink(transaction)})"); - return defaultTestTokensToMint; + return new Transaction(defaultTestTokensToMint, transaction); } report.Add("TestToken balance over threshold. (No TestTokens minted.)"); - return 0.TestTokens(); + return null; } - private Ether ProcessEth(IGethNode gethNode, EthAddress addr, List report) + private Transaction? ProcessEth(IGethNode gethNode, EthAddress addr, List report) { if (ShouldSendEth(gethNode, addr)) { var transaction = gethNode.SendEth(addr, defaultEthToSend); report.Add($"Sent {defaultEthToSend}. ({FormatTransactionLink(transaction)})"); - return defaultEthToSend; + return new Transaction(defaultEthToSend, transaction); } report.Add("Eth balance is over threshold. (No Eth sent.)"); - return 0.Eth(); + return null; } private bool ShouldMintTestTokens(ICodexContracts contracts, EthAddress addr) diff --git a/Tools/BiblioTech/Transaction.cs b/Tools/BiblioTech/Transaction.cs new file mode 100644 index 0000000..a19814a --- /dev/null +++ b/Tools/BiblioTech/Transaction.cs @@ -0,0 +1,14 @@ +namespace BiblioTech +{ + public class Transaction + { + public Transaction(T tokenAmount, string transactionHash) + { + TokenAmount = tokenAmount; + TransactionHash = transactionHash; + } + + public T TokenAmount { get; } + public string TransactionHash { get; } + } +} diff --git a/Tools/BiblioTech/UserRepo.cs b/Tools/BiblioTech/UserRepo.cs index 237f0a5..23b25d5 100644 --- a/Tools/BiblioTech/UserRepo.cs +++ b/Tools/BiblioTech/UserRepo.cs @@ -25,7 +25,7 @@ namespace BiblioTech } } - public void AddMintEventForUser(IUser user, EthAddress usedAddress, Ether eth, TestToken tokens) + public void AddMintEventForUser(IUser user, EthAddress usedAddress, Transaction? eth, Transaction? tokens) { lock (repoLock) { @@ -67,7 +67,14 @@ namespace BiblioTech } foreach (var me in userData.MintEvents) { - result.Add($"{me.Utc.ToString("o")} - Minted {me.EthReceived} and {me.TestTokensMinted} to {me.UsedAddress}."); + if (me.EthReceived != null) + { + result.Add($"{me.Utc.ToString("o")} - Sent {me.EthReceived.TokenAmount} to {me.UsedAddress}. ({me.EthReceived.TransactionHash})"); + } + if (me.TestTokensMinted != null) + { + result.Add($"{me.Utc.ToString("o")} - Minted {me.TestTokensMinted.TokenAmount} to {me.UsedAddress}. ({me.TestTokensMinted.TransactionHash})"); + } } } } @@ -221,7 +228,7 @@ namespace BiblioTech public class UserMintEvent { - public UserMintEvent(DateTime utc, EthAddress usedAddress, Ether ethReceived, TestToken testTokensMinted) + public UserMintEvent(DateTime utc, EthAddress usedAddress, Transaction? ethReceived, Transaction? testTokensMinted) { Utc = utc; UsedAddress = usedAddress; @@ -231,7 +238,7 @@ namespace BiblioTech public DateTime Utc { get; } public EthAddress UsedAddress { get; } - public Ether EthReceived { get; } - public TestToken TestTokensMinted { get; } + public Transaction? EthReceived { get; } + public Transaction? TestTokensMinted { get; } } }