clodds 1.6.21 → 1.6.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Market Scanner — Round-based
|
|
2
|
+
* Market Scanner — Round-based market discovery and rotation
|
|
3
3
|
*
|
|
4
|
-
* Tracks round slots (unix_ts /
|
|
4
|
+
* Tracks round slots (unix_ts / roundDurationSec) and automatically fetches new markets
|
|
5
5
|
* when rounds transition. Enforces timing gates: min round age, min time left.
|
|
6
|
+
*
|
|
7
|
+
* Discovery method: Direct slug-based queries (e.g., btc-updown-5m-1770935700)
|
|
8
|
+
* This ensures reliable discovery of time-duration-specific markets.
|
|
6
9
|
*/
|
|
7
10
|
import type { CryptoMarket, CryptoHftConfig, RoundState } from './types.js';
|
|
8
11
|
export interface MarketScanner {
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* Market Scanner — Round-based
|
|
3
|
+
* Market Scanner — Round-based market discovery and rotation
|
|
4
4
|
*
|
|
5
|
-
* Tracks round slots (unix_ts /
|
|
5
|
+
* Tracks round slots (unix_ts / roundDurationSec) and automatically fetches new markets
|
|
6
6
|
* when rounds transition. Enforces timing gates: min round age, min time left.
|
|
7
|
+
*
|
|
8
|
+
* Discovery method: Direct slug-based queries (e.g., btc-updown-5m-1770935700)
|
|
9
|
+
* This ensures reliable discovery of time-duration-specific markets.
|
|
7
10
|
*/
|
|
8
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
12
|
exports.createMarketScanner = createMarketScanner;
|
|
@@ -39,45 +42,86 @@ function createMarketScanner(config) {
|
|
|
39
42
|
async function fetchMarkets() {
|
|
40
43
|
const cfg = getConfig();
|
|
41
44
|
const found = [];
|
|
45
|
+
// Determine duration label (5m or 15m)
|
|
46
|
+
const durationLabel = cfg.roundDurationSec === 300 ? '5m' : '15m';
|
|
42
47
|
for (const asset of cfg.assets) {
|
|
43
48
|
try {
|
|
44
|
-
|
|
49
|
+
// Calculate current market slot and build slug
|
|
50
|
+
// E.g., for 5-min: btc-updown-5m-1770935700
|
|
51
|
+
// The timestamp is floored to the slot boundary: floor(now / 300) * 300
|
|
52
|
+
const nowSec = Math.floor(Date.now() / 1000);
|
|
53
|
+
const slotStart = Math.floor(nowSec / cfg.roundDurationSec) * cfg.roundDurationSec;
|
|
54
|
+
const slug = `${asset.toLowerCase()}-updown-${durationLabel}-${slotStart}`;
|
|
55
|
+
// Try direct slug query first (most reliable)
|
|
56
|
+
const slugRes = await fetch(`${GAMMA_URL}/markets?slug=${encodeURIComponent(slug)}&active=true&closed=false`);
|
|
57
|
+
if (slugRes.ok) {
|
|
58
|
+
const slugData = (await slugRes.json());
|
|
59
|
+
if (slugData.length > 0) {
|
|
60
|
+
const m = slugData[0]; // slug should return exactly 1 result
|
|
61
|
+
if (!m.closed && m.active && m.tokens && m.tokens.length >= 2) {
|
|
62
|
+
const upToken = m.tokens.find((t) => t.outcome.toLowerCase() === 'yes' || t.outcome.toLowerCase() === 'up');
|
|
63
|
+
const downToken = m.tokens.find((t) => t.outcome.toLowerCase() === 'no' || t.outcome.toLowerCase() === 'down');
|
|
64
|
+
if (upToken && downToken) {
|
|
65
|
+
const expiresAt = new Date(m.end_date_iso).getTime();
|
|
66
|
+
const roundSlot = Math.floor(expiresAt / 1000 / cfg.roundDurationSec);
|
|
67
|
+
found.push({
|
|
68
|
+
asset: asset.toUpperCase(),
|
|
69
|
+
conditionId: m.condition_id,
|
|
70
|
+
questionId: m.question_id,
|
|
71
|
+
upTokenId: upToken.token_id,
|
|
72
|
+
downTokenId: downToken.token_id,
|
|
73
|
+
upPrice: upToken.price,
|
|
74
|
+
downPrice: downToken.price,
|
|
75
|
+
expiresAt,
|
|
76
|
+
roundSlot,
|
|
77
|
+
negRisk: m.neg_risk ?? true,
|
|
78
|
+
question: m.question,
|
|
79
|
+
});
|
|
80
|
+
logger_js_1.logger.debug({ asset, slug, slot: roundSlot }, 'Found market by slug');
|
|
81
|
+
continue; // Successfully found, move to next asset
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
// Fallback: try generic search if slug query fails (between rounds, market not yet live)
|
|
87
|
+
const searchQueries = [
|
|
45
88
|
`Will ${asset} go up`,
|
|
46
89
|
`${asset} price`,
|
|
47
|
-
|
|
90
|
+
`${asset}-updown`,
|
|
48
91
|
];
|
|
49
|
-
for (const query of
|
|
50
|
-
const
|
|
51
|
-
if (!
|
|
92
|
+
for (const query of searchQueries) {
|
|
93
|
+
const searchRes = await fetch(`${GAMMA_URL}/markets?_limit=10&active=true&closed=false&_q=${encodeURIComponent(query)}`);
|
|
94
|
+
if (!searchRes.ok)
|
|
52
95
|
continue;
|
|
53
|
-
const
|
|
54
|
-
for (const m of
|
|
96
|
+
const searchData = (await searchRes.json());
|
|
97
|
+
for (const m of searchData) {
|
|
55
98
|
if (m.closed || !m.active)
|
|
56
99
|
continue;
|
|
57
100
|
if (!m.tokens || m.tokens.length < 2)
|
|
58
101
|
continue;
|
|
59
|
-
//
|
|
102
|
+
// Verify this is the right duration market
|
|
60
103
|
const q = m.question.toLowerCase();
|
|
61
104
|
if (!q.includes(asset.toLowerCase()))
|
|
62
105
|
continue;
|
|
63
|
-
//
|
|
106
|
+
// Filter by duration: must expire within roundDuration + buffer
|
|
64
107
|
const expiresAt = new Date(m.end_date_iso).getTime();
|
|
65
108
|
const now = Date.now();
|
|
66
109
|
const secsLeft = (expiresAt - now) / 1000;
|
|
67
|
-
// Skip expired or too-far-out markets
|
|
68
110
|
if (secsLeft <= 0 || secsLeft > cfg.roundDurationSec + 60)
|
|
69
111
|
continue;
|
|
112
|
+
// Verify slug matches expected pattern
|
|
113
|
+
if (!m.slug.includes(`-${durationLabel}-`))
|
|
114
|
+
continue;
|
|
70
115
|
// Find UP/YES and DOWN/NO tokens
|
|
71
116
|
const upToken = m.tokens.find((t) => t.outcome.toLowerCase() === 'yes' || t.outcome.toLowerCase() === 'up');
|
|
72
117
|
const downToken = m.tokens.find((t) => t.outcome.toLowerCase() === 'no' || t.outcome.toLowerCase() === 'down');
|
|
73
118
|
if (!upToken || !downToken)
|
|
74
119
|
continue;
|
|
75
|
-
// Skip if
|
|
120
|
+
// Skip if already found a closer-expiry market for this asset
|
|
76
121
|
const existing = found.find((f) => f.asset === asset.toUpperCase());
|
|
77
122
|
if (existing && existing.expiresAt <= expiresAt)
|
|
78
123
|
continue;
|
|
79
124
|
if (existing) {
|
|
80
|
-
// Replace with closer expiry
|
|
81
125
|
const idx = found.indexOf(existing);
|
|
82
126
|
found.splice(idx, 1);
|
|
83
127
|
}
|
|
@@ -95,6 +139,7 @@ function createMarketScanner(config) {
|
|
|
95
139
|
negRisk: m.neg_risk ?? true,
|
|
96
140
|
question: m.question,
|
|
97
141
|
});
|
|
142
|
+
logger_js_1.logger.debug({ asset, slug: m.slug, slot: roundSlot }, 'Found market by search');
|
|
98
143
|
}
|
|
99
144
|
// Found one for this asset, stop trying queries
|
|
100
145
|
if (found.some((f) => f.asset === asset.toUpperCase()))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"market-scanner.js","sourceRoot":"","sources":["../../../src/strategies/crypto-hft/market-scanner.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"market-scanner.js","sourceRoot":"","sources":["../../../src/strategies/crypto-hft/market-scanner.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "clodds",
|
|
3
|
-
"version": "1.6.
|
|
3
|
+
"version": "1.6.22",
|
|
4
4
|
"description": "Open-source AI trading terminal. Trade Polymarket, Kalshi, Betfair, Binance, Bybit, Hyperliquid, Solana DEXs from Telegram, Discord, Slack or web. Arbitrage detection, whale tracking, copy trading, perpetual futures up to 200x, DeFi swaps, MEV protection. Self-hosted, 119 skills, powered by Claude.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|