Beispiel #1
0
        private async Task <List <byte[]> > GetUnhandledTx()
        {
            var retries = 1;

            while (true)
            {
                try
                {
                    var limit        = 200;
                    var unhandledTxs = new List <byte[]>();
                    var pageResult   = await Global.StellarNetwork.Server.GetTransactionsRequestBuilder(Global.Constellation.Vault.ToString(), Global.TxCursorManager.TxCursor, limit).Execute();

                    while (pageResult.Records.Count > 0)
                    {
                        unhandledTxs.AddRange(pageResult.Records.Select(r => ByteArrayExtensions.FromHexString(r.Hash)));
                        if (pageResult.Records.Count != limit)
                        {
                            break;
                        }
                        pageResult = await pageResult.NextPage();
                    }
                    return(unhandledTxs);
                }
                catch
                {
                    if (retries == 5)
                    {
                        throw;
                    }
                    await Task.Delay(retries * 1000);

                    retries++;
                }
            }
        }
Beispiel #2
0
        private async Task <List <byte[]> > GetUnhandledTx()
        {
            var retries = 1;

            while (true)
            {
                try
                {
                    var limit        = 200;
                    var unhandledTxs = new List <byte[]>();
                    var result       = await StellarDataProvider.GetTransactions(Constellation.Vault.ToString(), TxCursorManager.TxCursor, limit);

                    while (result.Count > 0)
                    {
                        unhandledTxs.AddRange(result.Select(r => ByteArrayExtensions.FromHexString(r.Hash)));
                        if (result.Count != limit)
                        {
                            break;
                        }
                        result = await StellarDataProvider.GetTransactions(Constellation.Vault.ToString(), result.Last().PagingToken, limit);
                    }
                    return(unhandledTxs);
                }
                catch
                {
                    if (retries == 5)
                    {
                        throw;
                    }
                    await Task.Delay(retries * 1000);

                    retries++;
                }
            }
        }
 Resource ReadScriptElement(XElement element)
 {
     return(new Resource(
                element.Attribute("path").Value,
                ByteArrayExtensions.FromHexString(element.Attribute("hash").Value),
                new string[0]
                ));
 }
Beispiel #4
0
        byte[] GetHash(XElement bundleElement)
        {
            var attribute = bundleElement.Attribute("Hash");

            if (attribute == null)
            {
                return(null);
            }
            return(ByteArrayExtensions.FromHexString(attribute.Value));
        }
Beispiel #5
0
 byte[] GetHashAttribute()
 {
     try
     {
         return(ByteArrayExtensions.FromHexString(GetRequiredAttribute("Hash")));
     }
     catch (ArgumentException ex)
     {
         throw new CassetteDeserializationException("Bundle manifest element has invalid Hash attribute.", ex);
     }
     catch (FormatException ex)
     {
         throw new CassetteDeserializationException("Bundle manifest element has invalid Hash attribute.", ex);
     }
 }