wip: marketplace test is starting to work with annoying sleep and unused code in NethereumInteraction.cs
This commit is contained in:
parent
9db35be2ec
commit
929fdb1157
|
@ -31,9 +31,9 @@ namespace DistTestCore.Codex
|
||||||
return Http().HttpPostJson<CodexSalesAvailabilityRequest, CodexSalesAvailabilityResponse>("sales/availability", request);
|
return Http().HttpPostJson<CodexSalesAvailabilityRequest, CodexSalesAvailabilityResponse>("sales/availability", request);
|
||||||
}
|
}
|
||||||
|
|
||||||
public CodexSalesRequestStorageResponse RequestStorage(CodexSalesRequestStorageRequest request, string contentId)
|
public string RequestStorage(CodexSalesRequestStorageRequest request, string contentId)
|
||||||
{
|
{
|
||||||
return Http().HttpPostJson<CodexSalesRequestStorageRequest, CodexSalesRequestStorageResponse>($"storage/request/{contentId}", request);
|
return Http().HttpPostJson($"storage/request/{contentId}", request);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Http Http()
|
private Http Http()
|
||||||
|
@ -91,9 +91,4 @@ namespace DistTestCore.Codex
|
||||||
public uint? nodes { get; set; }
|
public uint? nodes { get; set; }
|
||||||
public uint? tolerance { get; set;}
|
public uint? tolerance { get; set;}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class CodexSalesRequestStorageResponse
|
|
||||||
{
|
|
||||||
public string purchaseId { get; set; } = string.Empty;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,7 +41,13 @@ namespace DistTestCore
|
||||||
|
|
||||||
public TResponse HttpPostJson<TRequest, TResponse>(string route, TRequest body)
|
public TResponse HttpPostJson<TRequest, TResponse>(string route, TRequest body)
|
||||||
{
|
{
|
||||||
var json = Retry(() =>
|
var json = HttpPostJson(route, body);
|
||||||
|
return TryJsonDeserialize<TResponse>(json);
|
||||||
|
}
|
||||||
|
|
||||||
|
public string HttpPostJson<TRequest>(string route, TRequest body)
|
||||||
|
{
|
||||||
|
return Retry(() =>
|
||||||
{
|
{
|
||||||
using var client = GetClient();
|
using var client = GetClient();
|
||||||
var url = GetUrl() + route;
|
var url = GetUrl() + route;
|
||||||
|
@ -49,8 +55,6 @@ namespace DistTestCore
|
||||||
var result = Time.Wait(client.PostAsync(url, content));
|
var result = Time.Wait(client.PostAsync(url, content));
|
||||||
return Time.Wait(result.Content.ReadAsStringAsync());
|
return Time.Wait(result.Content.ReadAsStringAsync());
|
||||||
});
|
});
|
||||||
|
|
||||||
return TryJsonDeserialize<TResponse>(json);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public string HttpPostStream(string route, Stream stream)
|
public string HttpPostStream(string route, Stream stream)
|
||||||
|
|
|
@ -41,8 +41,15 @@ namespace DistTestCore.Marketplace
|
||||||
|
|
||||||
private void EnsureCompanionNodeIsSynced(GethCompanionNodeInfo node, MarketplaceNetwork marketplace)
|
private void EnsureCompanionNodeIsSynced(GethCompanionNodeInfo node, MarketplaceNetwork marketplace)
|
||||||
{
|
{
|
||||||
var interaction = node.StartInteraction(lifecycle.Log);
|
try
|
||||||
interaction.EnsureSynced(marketplace.Marketplace.Address, marketplace.Marketplace.Abi);
|
{
|
||||||
|
var interaction = node.StartInteraction(lifecycle.Log);
|
||||||
|
interaction.EnsureSynced(marketplace.Marketplace.Address, marketplace.Marketplace.Abi);
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
throw new Exception("Geth companion node did not sync within timeout. Test infra failure.", e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private StartupConfig CreateCompanionNodeStartupConfig(GethBootstrapNodeInfo bootstrapNode)
|
private StartupConfig CreateCompanionNodeStartupConfig(GethBootstrapNodeInfo bootstrapNode)
|
||||||
|
|
|
@ -52,9 +52,14 @@ namespace DistTestCore.Marketplace
|
||||||
|
|
||||||
var response = codexAccess.RequestStorage(request, contentId.Id);
|
var response = codexAccess.RequestStorage(request, contentId.Id);
|
||||||
|
|
||||||
Log($"Storage requested successfully. PurchaseId: {response.purchaseId}");
|
if (response == "Purchasing not available")
|
||||||
|
{
|
||||||
|
throw new InvalidOperationException(response);
|
||||||
|
}
|
||||||
|
|
||||||
return response.purchaseId;
|
Log($"Storage requested successfully. PurchaseId: {response}");
|
||||||
|
|
||||||
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
public string MakeStorageAvailable(ByteSize size, TestToken minPricePerBytePerSecond, TestToken maxCollateral, TimeSpan maxDuration)
|
public string MakeStorageAvailable(ByteSize size, TestToken minPricePerBytePerSecond, TestToken maxCollateral, TimeSpan maxDuration)
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
namespace DistTestCore
|
namespace DistTestCore
|
||||||
{
|
{
|
||||||
public class Ether
|
public class Ether : IComparable<Ether>
|
||||||
{
|
{
|
||||||
public Ether(decimal wei)
|
public Ether(decimal wei)
|
||||||
{
|
{
|
||||||
|
@ -9,6 +9,11 @@
|
||||||
|
|
||||||
public decimal Wei { get; }
|
public decimal Wei { get; }
|
||||||
|
|
||||||
|
public int CompareTo(Ether? other)
|
||||||
|
{
|
||||||
|
return Wei.CompareTo(other!.Wei);
|
||||||
|
}
|
||||||
|
|
||||||
public override bool Equals(object? obj)
|
public override bool Equals(object? obj)
|
||||||
{
|
{
|
||||||
return obj is Ether ether && Wei == ether.Wei;
|
return obj is Ether ether && Wei == ether.Wei;
|
||||||
|
@ -25,7 +30,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class TestToken
|
public class TestToken : IComparable<TestToken>
|
||||||
{
|
{
|
||||||
public TestToken(decimal amount)
|
public TestToken(decimal amount)
|
||||||
{
|
{
|
||||||
|
@ -34,6 +39,11 @@
|
||||||
|
|
||||||
public decimal Amount { get; }
|
public decimal Amount { get; }
|
||||||
|
|
||||||
|
public int CompareTo(TestToken? other)
|
||||||
|
{
|
||||||
|
return Amount.CompareTo(other!.Amount);
|
||||||
|
}
|
||||||
|
|
||||||
public override bool Equals(object? obj)
|
public override bool Equals(object? obj)
|
||||||
{
|
{
|
||||||
return obj is TestToken token && Amount == token.Amount;
|
return obj is TestToken token && Amount == token.Amount;
|
||||||
|
|
|
@ -85,6 +85,19 @@ namespace NethereumWorkflow
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var contract = web3.Eth.GetContract(marketplaceAbi, marketplaceAddress);
|
var contract = web3.Eth.GetContract(marketplaceAbi, marketplaceAddress);
|
||||||
|
|
||||||
|
if (contract != null)
|
||||||
|
{
|
||||||
|
var aaa = 0;
|
||||||
|
|
||||||
|
var func = contract.GetFunction("myRequests");
|
||||||
|
var input = func.CreateCallInput();
|
||||||
|
var result = Time.Wait(func.CallAsync(input));
|
||||||
|
|
||||||
|
var eeee = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return contract != null;
|
return contract != null;
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
|
@ -92,6 +105,8 @@ namespace NethereumWorkflow
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}, TimeSpan.FromMinutes(1), TimeSpan.FromSeconds(1));
|
}, TimeSpan.FromMinutes(1), TimeSpan.FromSeconds(1));
|
||||||
|
|
||||||
|
Thread.Sleep(TimeSpan.FromMinutes(2));
|
||||||
}
|
}
|
||||||
|
|
||||||
private HexBigInteger ToHexBig(decimal amount)
|
private HexBigInteger ToHexBig(decimal amount)
|
||||||
|
|
Loading…
Reference in New Issue