2
0
mirror of synced 2025-01-14 10:34:26 +00:00

54 lines
1.7 KiB
C#
Raw Normal View History

2023-09-19 13:39:24 +02:00
using GethPlugin;
using Logging;
namespace CodexContractsPlugin
2023-09-19 10:24:43 +02:00
{
public interface ICodexContracts
{
2023-09-20 10:13:29 +02:00
CodexContractsDeployment Deployment { get; }
2023-09-19 13:39:24 +02:00
2023-12-15 11:02:06 +01:00
string MintTestTokens(IHasEthAddress owner, TestToken testTokens);
string MintTestTokens(EthAddress ethAddress, TestToken testTokens);
2023-10-30 13:30:14 +01:00
TestToken GetTestTokenBalance(IHasEthAddress owner);
TestToken GetTestTokenBalance(EthAddress ethAddress);
2023-09-19 10:24:43 +02:00
}
public class CodexContractsAccess : ICodexContracts
{
2023-09-19 13:39:24 +02:00
private readonly ILog log;
2023-10-30 13:30:14 +01:00
private readonly IGethNode gethNode;
2023-09-19 13:39:24 +02:00
2023-10-30 13:30:14 +01:00
public CodexContractsAccess(ILog log, IGethNode gethNode, CodexContractsDeployment deployment)
2023-09-19 10:24:43 +02:00
{
2023-09-19 13:39:24 +02:00
this.log = log;
2023-10-30 13:30:14 +01:00
this.gethNode = gethNode;
Deployment = deployment;
2023-09-19 10:24:43 +02:00
}
2023-09-20 10:13:29 +02:00
public CodexContractsDeployment Deployment { get; }
2023-09-19 13:39:24 +02:00
2023-12-15 11:02:06 +01:00
public string MintTestTokens(IHasEthAddress owner, TestToken testTokens)
2023-09-19 16:22:07 +02:00
{
2023-12-15 11:02:06 +01:00
return MintTestTokens(owner.EthAddress, testTokens);
2023-09-19 16:22:07 +02:00
}
2023-12-15 11:02:06 +01:00
public string MintTestTokens(EthAddress ethAddress, TestToken testTokens)
2023-09-19 13:39:24 +02:00
{
var interaction = new ContractInteractions(log, gethNode);
2023-12-15 11:02:06 +01:00
return interaction.MintTestTokens(ethAddress, testTokens.Amount, Deployment.TokenAddress);
2023-09-19 13:39:24 +02:00
}
2023-10-30 13:30:14 +01:00
public TestToken GetTestTokenBalance(IHasEthAddress owner)
2023-09-19 16:22:07 +02:00
{
2023-10-30 13:30:14 +01:00
return GetTestTokenBalance(owner.EthAddress);
2023-09-19 16:22:07 +02:00
}
2023-10-30 13:30:14 +01:00
public TestToken GetTestTokenBalance(EthAddress ethAddress)
2023-09-19 13:39:24 +02:00
{
var interaction = new ContractInteractions(log, gethNode);
var balance = interaction.GetBalance(Deployment.TokenAddress, ethAddress.Address);
2023-09-19 13:39:24 +02:00
return balance.TestTokens();
}
2023-09-19 10:24:43 +02:00
}
}