Adds transaction links to mint output

This commit is contained in:
benbierens 2023-12-15 11:02:06 +01:00
parent d67ddab290
commit beaa67c280
No known key found for this signature in database
GPG Key ID: FE44815D96D0A1AA
5 changed files with 34 additions and 27 deletions

View File

@ -17,11 +17,12 @@ namespace NethereumWorkflow
this.web3 = web3;
}
public void SendEth(string toAddress, decimal ethAmount)
public string SendEth(string toAddress, decimal ethAmount)
{
log.Debug();
var receipt = Time.Wait(web3.Eth.GetEtherTransferService().TransferEtherAndWaitForReceiptAsync(toAddress, ethAmount));
if (!receipt.Succeeded()) throw new Exception("Unable to send Eth");
return receipt.TransactionHash;
}
public decimal GetEthBalance()
@ -44,12 +45,13 @@ namespace NethereumWorkflow
return Time.Wait(handler.QueryAsync<TResult>(contractAddress, function));
}
public void SendTransaction<TFunction>(string contractAddress, TFunction function) where TFunction : FunctionMessage, new()
public string SendTransaction<TFunction>(string contractAddress, TFunction function) where TFunction : FunctionMessage, new()
{
log.Debug();
var handler = web3.Eth.GetContractTransactionHandler<TFunction>();
var receipt = Time.Wait(handler.SendRequestAndWaitForReceiptAsync(contractAddress, function));
if (!receipt.Succeeded()) throw new Exception("Unable to perform contract transaction.");
return receipt.TransactionHash;
}
public decimal? GetSyncedBlockNumber()

View File

@ -7,8 +7,8 @@ namespace CodexContractsPlugin
{
CodexContractsDeployment Deployment { get; }
void MintTestTokens(IHasEthAddress owner, TestToken testTokens);
void MintTestTokens(EthAddress ethAddress, TestToken testTokens);
string MintTestTokens(IHasEthAddress owner, TestToken testTokens);
string MintTestTokens(EthAddress ethAddress, TestToken testTokens);
TestToken GetTestTokenBalance(IHasEthAddress owner);
TestToken GetTestTokenBalance(EthAddress ethAddress);
}
@ -27,15 +27,15 @@ namespace CodexContractsPlugin
public CodexContractsDeployment Deployment { get; }
public void MintTestTokens(IHasEthAddress owner, TestToken testTokens)
public string MintTestTokens(IHasEthAddress owner, TestToken testTokens)
{
MintTestTokens(owner.EthAddress, testTokens);
return MintTestTokens(owner.EthAddress, testTokens);
}
public void MintTestTokens(EthAddress ethAddress, TestToken testTokens)
public string MintTestTokens(EthAddress ethAddress, TestToken testTokens)
{
var interaction = new ContractInteractions(log, gethNode);
interaction.MintTestTokens(ethAddress, testTokens.Amount, Deployment.TokenAddress);
return interaction.MintTestTokens(ethAddress, testTokens.Amount, Deployment.TokenAddress);
}
public TestToken GetTestTokenBalance(IHasEthAddress owner)

View File

@ -26,10 +26,10 @@ namespace CodexContractsPlugin
return gethNode.Call<GetTokenFunction, string>(marketplaceAddress, function);
}
public void MintTestTokens(EthAddress address, decimal amount, string tokenAddress)
public string MintTestTokens(EthAddress address, decimal amount, string tokenAddress)
{
log.Debug($"{amount} -> {address} (token: {tokenAddress})");
MintTokens(address.Address, amount, tokenAddress);
return MintTokens(address.Address, amount, tokenAddress);
}
public decimal GetBalance(string tokenAddress, string account)
@ -56,7 +56,7 @@ namespace CodexContractsPlugin
}
}
private void MintTokens(string account, decimal amount, string tokenAddress)
private string MintTokens(string account, decimal amount, string tokenAddress)
{
log.Debug($"({tokenAddress}) {amount} --> {account}");
if (string.IsNullOrEmpty(account)) throw new ArgumentException("Invalid arguments for MintTestTokens");
@ -67,7 +67,7 @@ namespace CodexContractsPlugin
Amount = amount.ToBig()
};
gethNode.SendTransaction(tokenAddress, function);
return gethNode.SendTransaction(tokenAddress, function);
}
private bool IsBlockNumberOK()

View File

@ -13,10 +13,10 @@ namespace GethPlugin
Ether GetEthBalance();
Ether GetEthBalance(IHasEthAddress address);
Ether GetEthBalance(EthAddress address);
void SendEth(IHasEthAddress account, Ether eth);
void SendEth(EthAddress account, Ether eth);
string SendEth(IHasEthAddress account, Ether eth);
string SendEth(EthAddress account, Ether eth);
TResult Call<TFunction, TResult>(string contractAddress, TFunction function) where TFunction : FunctionMessage, new();
void SendTransaction<TFunction>(string contractAddress, TFunction function) where TFunction : FunctionMessage, new();
string SendTransaction<TFunction>(string contractAddress, TFunction function) where TFunction : FunctionMessage, new();
decimal? GetSyncedBlockNumber();
bool IsContractAvailable(string abi, string contractAddress);
GethBootstrapNode GetBootstrapRecord();
@ -103,14 +103,14 @@ namespace GethPlugin
return StartInteraction().GetEthBalance(address.Address).Eth();
}
public void SendEth(IHasEthAddress owner, Ether eth)
public string SendEth(IHasEthAddress owner, Ether eth)
{
SendEth(owner.EthAddress, eth);
return SendEth(owner.EthAddress, eth);
}
public void SendEth(EthAddress account, Ether eth)
public string SendEth(EthAddress account, Ether eth)
{
StartInteraction().SendEth(account.Address, eth.Eth);
return StartInteraction().SendEth(account.Address, eth.Eth);
}
public TResult Call<TFunction, TResult>(string contractAddress, TFunction function) where TFunction : FunctionMessage, new()
@ -118,9 +118,9 @@ namespace GethPlugin
return StartInteraction().Call<TFunction, TResult>(contractAddress, function);
}
public void SendTransaction<TFunction>(string contractAddress, TFunction function) where TFunction : FunctionMessage, new()
public string SendTransaction<TFunction>(string contractAddress, TFunction function) where TFunction : FunctionMessage, new()
{
StartInteraction().SendTransaction(contractAddress, function);
return StartInteraction().SendTransaction(contractAddress, function);
}
public decimal? GetSyncedBlockNumber()

View File

@ -47,12 +47,12 @@ namespace BiblioTech.Commands
{
if (ShouldMintTestTokens(contracts, addr))
{
contracts.MintTestTokens(addr, defaultTestTokensToMint);
report.Add($"Minted {defaultTestTokensToMint}.");
var transaction = contracts.MintTestTokens(addr, defaultTestTokensToMint);
report.Add($"Minted {defaultTestTokensToMint}. ({FormatTransactionLink(transaction)})");
return defaultTestTokensToMint;
}
report.Add("TestToken balance over threshold.");
report.Add("TestToken balance over threshold. (No TestTokens minted.)");
return 0.TestTokens();
}
@ -60,11 +60,11 @@ namespace BiblioTech.Commands
{
if (ShouldSendEth(gethNode, addr))
{
gethNode.SendEth(addr, defaultEthToSend);
report.Add($"Sent {defaultEthToSend}.");
var transaction = gethNode.SendEth(addr, defaultEthToSend);
report.Add($"Sent {defaultEthToSend}. ({FormatTransactionLink(transaction)})");
return defaultEthToSend;
}
report.Add("Eth balance is over threshold.");
report.Add("Eth balance is over threshold. (No Eth sent.)");
return 0.Eth();
}
@ -79,5 +79,10 @@ namespace BiblioTech.Commands
var eth = gethNode.GetEthBalance(addr);
return eth.Eth < 1.0m;
}
private string FormatTransactionLink(string transaction)
{
return $"https://explorer.testnet.codex.storage/tx/{transaction}";
}
}
}