mirror of
https://github.com/logos-storage/logos-storage-nim-cs-dist-tests.git
synced 2026-01-05 06:53:07 +00:00
46 lines
1.4 KiB
C#
46 lines
1.4 KiB
C#
using CodexClient;
|
|
using FileUtils;
|
|
using Utils;
|
|
|
|
namespace AutoClient
|
|
{
|
|
public class CodexWrapper
|
|
{
|
|
private readonly App app;
|
|
|
|
public CodexWrapper(App app, ICodexNode node)
|
|
{
|
|
this.app = app;
|
|
Node = node;
|
|
}
|
|
|
|
public ICodexNode Node { get; }
|
|
|
|
public ContentId UploadFile(string filepath)
|
|
{
|
|
return Node.UploadFile(TrackedFile.FromPath(app.Log, filepath));
|
|
}
|
|
|
|
public IStoragePurchaseContract RequestStorage(ContentId cid)
|
|
{
|
|
app.Log.Debug("Requesting storage for " + cid.Id);
|
|
var result = Node.Marketplace.RequestStorage(new StoragePurchaseRequest(cid)
|
|
{
|
|
RequiredCollateral = app.Config.RequiredCollateral.Tst(),
|
|
Duration = TimeSpan.FromMinutes(app.Config.ContractDurationMinutes),
|
|
Expiry = TimeSpan.FromMinutes(app.Config.ContractExpiryMinutes),
|
|
MinRequiredNumberOfNodes = Convert.ToUInt32(app.Config.NumHosts),
|
|
NodeFailureTolerance = Convert.ToUInt32(app.Config.HostTolerance),
|
|
PricePerSlotPerSecond = app.Config.Price.Tst(),
|
|
ProofProbability = 15
|
|
});
|
|
return result;
|
|
}
|
|
|
|
public StoragePurchase? GetStoragePurchase(string pid)
|
|
{
|
|
return Node.GetPurchaseStatus(pid);
|
|
}
|
|
}
|
|
}
|