2023-04-25 09:31:15 +00:00
|
|
|
|
using Logging;
|
|
|
|
|
using Nethereum.Web3;
|
2023-04-14 08:51:35 +00:00
|
|
|
|
|
|
|
|
|
namespace NethereumWorkflow
|
|
|
|
|
{
|
2023-04-14 10:37:05 +00:00
|
|
|
|
public class NethereumInteractionCreator
|
2023-04-14 08:51:35 +00:00
|
|
|
|
{
|
2023-09-15 14:27:08 +00:00
|
|
|
|
private readonly ILog log;
|
2023-04-14 08:51:35 +00:00
|
|
|
|
private readonly string ip;
|
|
|
|
|
private readonly int port;
|
2023-04-18 11:22:41 +00:00
|
|
|
|
private readonly string privateKey;
|
2023-04-14 08:51:35 +00:00
|
|
|
|
|
2023-09-15 14:27:08 +00:00
|
|
|
|
public NethereumInteractionCreator(ILog log, string ip, int port, string privateKey)
|
2023-04-14 08:51:35 +00:00
|
|
|
|
{
|
2023-04-25 09:31:15 +00:00
|
|
|
|
this.log = log;
|
2023-04-14 08:51:35 +00:00
|
|
|
|
this.ip = ip;
|
|
|
|
|
this.port = port;
|
2023-04-18 11:22:41 +00:00
|
|
|
|
this.privateKey = privateKey;
|
2023-04-14 08:51:35 +00:00
|
|
|
|
}
|
|
|
|
|
|
2023-04-14 10:37:05 +00:00
|
|
|
|
public NethereumInteraction CreateWorkflow()
|
2023-04-14 08:51:35 +00:00
|
|
|
|
{
|
2023-10-23 14:04:50 +00:00
|
|
|
|
log.Debug("Starting interaction to " + ip + ":" + port);
|
2023-05-03 08:21:15 +00:00
|
|
|
|
return new NethereumInteraction(log, CreateWeb3());
|
2023-04-14 08:51:35 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private Web3 CreateWeb3()
|
|
|
|
|
{
|
2023-04-18 11:22:41 +00:00
|
|
|
|
var account = new Nethereum.Web3.Accounts.Account(privateKey);
|
2023-06-01 07:35:18 +00:00
|
|
|
|
return new Web3(account, $"{ip}:{port}");
|
2023-04-14 08:51:35 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|