Adds method for checking of codex contracts are deployed
This commit is contained in:
parent
2c026f99ca
commit
87e84ae90d
|
@ -7,6 +7,7 @@ namespace CodexContractsPlugin
|
||||||
{
|
{
|
||||||
CodexContractsDeployment Deployment { get; }
|
CodexContractsDeployment Deployment { get; }
|
||||||
|
|
||||||
|
bool IsDeployed();
|
||||||
string MintTestTokens(IHasEthAddress owner, TestToken testTokens);
|
string MintTestTokens(IHasEthAddress owner, TestToken testTokens);
|
||||||
string MintTestTokens(EthAddress ethAddress, TestToken testTokens);
|
string MintTestTokens(EthAddress ethAddress, TestToken testTokens);
|
||||||
TestToken GetTestTokenBalance(IHasEthAddress owner);
|
TestToken GetTestTokenBalance(IHasEthAddress owner);
|
||||||
|
@ -27,6 +28,12 @@ namespace CodexContractsPlugin
|
||||||
|
|
||||||
public CodexContractsDeployment Deployment { get; }
|
public CodexContractsDeployment Deployment { get; }
|
||||||
|
|
||||||
|
public bool IsDeployed()
|
||||||
|
{
|
||||||
|
var interaction = new ContractInteractions(log, gethNode);
|
||||||
|
return !string.IsNullOrEmpty(interaction.GetTokenName(Deployment.TokenAddress));
|
||||||
|
}
|
||||||
|
|
||||||
public string MintTestTokens(IHasEthAddress owner, TestToken testTokens)
|
public string MintTestTokens(IHasEthAddress owner, TestToken testTokens)
|
||||||
{
|
{
|
||||||
return MintTestTokens(owner.EthAddress, testTokens);
|
return MintTestTokens(owner.EthAddress, testTokens);
|
||||||
|
|
|
@ -26,6 +26,22 @@ namespace CodexContractsPlugin
|
||||||
return gethNode.Call<GetTokenFunction, string>(marketplaceAddress, function);
|
return gethNode.Call<GetTokenFunction, string>(marketplaceAddress, function);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public string GetTokenName(string tokenAddress)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
log.Debug(tokenAddress);
|
||||||
|
var function = new GetTokenNameFunction();
|
||||||
|
|
||||||
|
return gethNode.Call<GetTokenNameFunction, string>(tokenAddress, function);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
log.Log("Failed to get token name: " + ex);
|
||||||
|
return string.Empty;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public string MintTestTokens(EthAddress address, decimal amount, string tokenAddress)
|
public string MintTestTokens(EthAddress address, decimal amount, string tokenAddress)
|
||||||
{
|
{
|
||||||
log.Debug($"{amount} -> {address} (token: {tokenAddress})");
|
log.Debug($"{amount} -> {address} (token: {tokenAddress})");
|
||||||
|
@ -87,6 +103,11 @@ namespace CodexContractsPlugin
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Function("name", "string")]
|
||||||
|
public class GetTokenNameFunction : FunctionMessage
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
[Function("mint")]
|
[Function("mint")]
|
||||||
public class MintTokensFunction : FunctionMessage
|
public class MintTokensFunction : FunctionMessage
|
||||||
{
|
{
|
||||||
|
|
|
@ -59,12 +59,10 @@ namespace BiblioTech
|
||||||
{
|
{
|
||||||
protected override async Task Invoke(CommandContext context)
|
protected override async Task Invoke(CommandContext context)
|
||||||
{
|
{
|
||||||
var log = new ConsoleLog();
|
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(GethInput.LoadError))
|
if (!string.IsNullOrEmpty(GethInput.LoadError))
|
||||||
{
|
{
|
||||||
var msg = "Geth input incorrect: " + GethInput.LoadError;
|
var msg = "Geth input incorrect: " + GethInput.LoadError;
|
||||||
log.Error(msg);
|
Program.Log.Error(msg);
|
||||||
if (IsInAdminChannel(context.Command))
|
if (IsInAdminChannel(context.Command))
|
||||||
{
|
{
|
||||||
await context.Followup(msg);
|
await context.Followup(msg);
|
||||||
|
@ -82,8 +80,14 @@ namespace BiblioTech
|
||||||
tokenAddress: GethInput.TokenAddress
|
tokenAddress: GethInput.TokenAddress
|
||||||
);
|
);
|
||||||
|
|
||||||
var gethNode = new CustomGethNode(log, GethInput.GethHost, GethInput.GethPort, GethInput.PrivateKey);
|
var gethNode = new CustomGethNode(Program.Log, GethInput.GethHost, GethInput.GethPort, GethInput.PrivateKey);
|
||||||
var contracts = new CodexContractsAccess(log, gethNode, contractsDeployment);
|
var contracts = new CodexContractsAccess(Program.Log, gethNode, contractsDeployment);
|
||||||
|
|
||||||
|
if (!contracts.IsDeployed())
|
||||||
|
{
|
||||||
|
await context.Followup("I'm sorry, the Codex SmartContracts are not currently deployed.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
await Execute(context, gethNode, contracts);
|
await Execute(context, gethNode, contracts);
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
|
|
||||||
public static string Get()
|
public static string Get()
|
||||||
{
|
{
|
||||||
return "Hold on: " + messages[random.Next(messages.Length)];
|
return "(⏳): " + messages[random.Next(messages.Length)];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue