fix: Polymarket API offset limit crash in CopytradingEstimator

This commit is contained in:
Richard
2026-07-06 13:01:06 +02:00
parent a564c016bb
commit 33a52ed173
@@ -201,7 +201,9 @@ public class CopytradingEstimator : ICopytradingEstimator
int limit = 1000; int limit = 1000;
int offset = 0; int offset = 0;
while (true) while (offset <= 4000)
{
try
{ {
var page = await _polymarketClient.GetMarketTradesAsync(traderTrade.MarketId, limit, offset, ct); var page = await _polymarketClient.GetMarketTradesAsync(traderTrade.MarketId, limit, offset, ct);
if (page.Count == 0) break; if (page.Count == 0) break;
@@ -220,6 +222,11 @@ public class CopytradingEstimator : ICopytradingEstimator
} }
offset += limit; offset += limit;
} }
catch (Exception)
{
break; // Offset exceeded limit or API error
}
}
var relevantTrades = tape var relevantTrades = tape
.Where(t => t.Asset == traderTrade.AssetId && t.Timestamp >= windowStart && t.Timestamp <= windowEnd) .Where(t => t.Asset == traderTrade.AssetId && t.Timestamp >= windowStart && t.Timestamp <= windowEnd)
@@ -316,7 +323,9 @@ public class CopytradingEstimator : ICopytradingEstimator
int limit = 1000; int limit = 1000;
int offset = 0; int offset = 0;
while (true) while (offset <= 4000)
{
try
{ {
var page = await _polymarketClient.GetMarketTradesAsync(tradeEvent.MarketId, limit, offset, ct); var page = await _polymarketClient.GetMarketTradesAsync(tradeEvent.MarketId, limit, offset, ct);
if (page.Count == 0) break; if (page.Count == 0) break;
@@ -330,6 +339,11 @@ public class CopytradingEstimator : ICopytradingEstimator
} }
offset += limit; offset += limit;
} }
catch (Exception)
{
break; // Offset exceeded limit or API error
}
}
var relevantTrades = tape var relevantTrades = tape
.Where(t => t.Asset == tradeEvent.AssetId && t.Timestamp >= startUnix && t.Timestamp <= endUnix) .Where(t => t.Asset == tradeEvent.AssetId && t.Timestamp >= startUnix && t.Timestamp <= endUnix)