@cyberdrk/onchain 0.1.9 → 0.3.0

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.
Files changed (40) hide show
  1. package/LICENSE +1 -1
  2. package/SKILL.md +99 -4
  3. package/dist/cli/program.d.ts.map +1 -1
  4. package/dist/cli/program.js +4 -0
  5. package/dist/cli/program.js.map +1 -1
  6. package/dist/cli/setup-wizard.d.ts.map +1 -1
  7. package/dist/cli/setup-wizard.js +34 -0
  8. package/dist/cli/setup-wizard.js.map +1 -1
  9. package/dist/commands/gas.d.ts +4 -0
  10. package/dist/commands/gas.d.ts.map +1 -0
  11. package/dist/commands/gas.js +59 -0
  12. package/dist/commands/gas.js.map +1 -0
  13. package/dist/commands/polymarket.d.ts.map +1 -1
  14. package/dist/commands/polymarket.js +174 -3
  15. package/dist/commands/polymarket.js.map +1 -1
  16. package/dist/commands/search.d.ts +4 -0
  17. package/dist/commands/search.d.ts.map +1 -0
  18. package/dist/commands/search.js +50 -0
  19. package/dist/commands/search.js.map +1 -0
  20. package/dist/commands/setup.d.ts.map +1 -1
  21. package/dist/commands/setup.js +11 -0
  22. package/dist/commands/setup.js.map +1 -1
  23. package/dist/lib/config.d.ts +5 -0
  24. package/dist/lib/config.d.ts.map +1 -1
  25. package/dist/lib/config.js.map +1 -1
  26. package/dist/lib/mixins/coingecko.d.ts +2 -1
  27. package/dist/lib/mixins/coingecko.d.ts.map +1 -1
  28. package/dist/lib/mixins/coingecko.js +27 -0
  29. package/dist/lib/mixins/coingecko.js.map +1 -1
  30. package/dist/lib/mixins/etherscan.d.ts +2 -1
  31. package/dist/lib/mixins/etherscan.d.ts.map +1 -1
  32. package/dist/lib/mixins/etherscan.js +37 -0
  33. package/dist/lib/mixins/etherscan.js.map +1 -1
  34. package/dist/lib/mixins/polymarket.d.ts +8 -6
  35. package/dist/lib/mixins/polymarket.d.ts.map +1 -1
  36. package/dist/lib/mixins/polymarket.js +434 -6
  37. package/dist/lib/mixins/polymarket.js.map +1 -1
  38. package/dist/lib/onchain-client-types.d.ts +74 -0
  39. package/dist/lib/onchain-client-types.d.ts.map +1 -1
  40. package/package.json +5 -5
@@ -29,12 +29,107 @@ function parseOutcomePrices(prices) {
29
29
  return [0.5, 0.5];
30
30
  }
31
31
  }
32
+ function eventMatchesTags(event, options) {
33
+ if (!options) {
34
+ return true;
35
+ }
36
+ const eventTags = (event.tags ?? []).map((t) => t.slug.toLowerCase());
37
+ const categoryTag = event.category?.toLowerCase();
38
+ const allEventTags = categoryTag ? [...eventTags, categoryTag] : eventTags;
39
+ // Check excludes first
40
+ if (options.excludeTags && options.excludeTags.length > 0) {
41
+ const excludeLower = options.excludeTags.map((t) => t.toLowerCase());
42
+ for (const tag of allEventTags) {
43
+ if (excludeLower.includes(tag)) {
44
+ return false;
45
+ }
46
+ }
47
+ }
48
+ // Check includes (if specified, event must match at least one)
49
+ if (options.includeTags && options.includeTags.length > 0) {
50
+ const includeLower = options.includeTags.map((t) => t.toLowerCase());
51
+ let hasMatch = false;
52
+ for (const tag of allEventTags) {
53
+ if (includeLower.includes(tag)) {
54
+ hasMatch = true;
55
+ break;
56
+ }
57
+ }
58
+ if (!hasMatch) {
59
+ return false;
60
+ }
61
+ }
62
+ return true;
63
+ }
32
64
  export function withPolymarket(Base) {
33
65
  class PolymarketMixin extends Base {
66
+ async getPolymarketTags(options) {
67
+ try {
68
+ const url = `${POLYMARKET_API_BASE}/tags`;
69
+ const response = await this.fetchWithTimeout(url, {
70
+ headers: { Accept: 'application/json' },
71
+ });
72
+ if (!response.ok) {
73
+ return { success: false, error: `Polymarket API error: ${response.status}` };
74
+ }
75
+ const data = (await response.json());
76
+ // If popular, we need to count events per tag
77
+ if (options?.popular) {
78
+ const tagCounts = new Map();
79
+ // Initialize all tags with 0 count
80
+ for (const tag of data) {
81
+ tagCounts.set(tag.slug, {
82
+ tag: { id: tag.id, slug: tag.slug, label: tag.label, eventCount: 0 },
83
+ count: 0,
84
+ });
85
+ }
86
+ // Fetch events to count by tag (get more to get better counts)
87
+ const eventsUrl = `${POLYMARKET_API_BASE}/events?active=true&closed=false&limit=100&related_tags=true`;
88
+ const eventsResponse = await this.fetchWithTimeout(eventsUrl, {
89
+ headers: { Accept: 'application/json' },
90
+ });
91
+ if (eventsResponse.ok) {
92
+ const events = (await eventsResponse.json());
93
+ for (const event of events) {
94
+ if (event.tags) {
95
+ for (const eventTag of event.tags) {
96
+ const existing = tagCounts.get(eventTag.slug);
97
+ if (existing) {
98
+ existing.count++;
99
+ existing.tag.eventCount = existing.count;
100
+ }
101
+ }
102
+ }
103
+ }
104
+ }
105
+ // Sort by count descending, filter out zero counts
106
+ const tags = Array.from(tagCounts.values())
107
+ .filter((t) => t.count > 0)
108
+ .sort((a, b) => b.count - a.count)
109
+ .map((t) => t.tag);
110
+ return { success: true, tags };
111
+ }
112
+ // Return all tags sorted by label
113
+ const tags = data
114
+ .map((t) => ({ id: t.id, slug: t.slug, label: t.label }))
115
+ .sort((a, b) => a.label.localeCompare(b.label));
116
+ return { success: true, tags };
117
+ }
118
+ catch (error) {
119
+ return {
120
+ success: false,
121
+ error: `Failed to fetch tags: ${error instanceof Error ? error.message : String(error)}`,
122
+ };
123
+ }
124
+ }
34
125
  async getPolymarketTrending(options) {
35
126
  try {
36
127
  const limit = options?.limit ?? 10;
37
- const url = `${POLYMARKET_API_BASE}/events?active=true&closed=false&limit=${limit}&order=volume&ascending=false`;
128
+ const hasFilters = (options?.excludeTags && options.excludeTags.length > 0) ||
129
+ (options?.includeTags && options.includeTags.length > 0);
130
+ // Fetch more events if we need to filter client-side
131
+ const fetchLimit = hasFilters ? Math.max(limit * 3, 50) : limit;
132
+ const url = `${POLYMARKET_API_BASE}/events?active=true&closed=false&limit=${fetchLimit}&order=volume&ascending=false&related_tags=true`;
38
133
  const response = await this.fetchWithTimeout(url, {
39
134
  headers: { Accept: 'application/json' },
40
135
  });
@@ -44,8 +139,21 @@ export function withPolymarket(Base) {
44
139
  const data = (await response.json());
45
140
  const markets = [];
46
141
  for (const event of data) {
142
+ // Apply tag filters at the event level
143
+ if (!eventMatchesTags(event, options)) {
144
+ continue;
145
+ }
47
146
  const eventMarkets = event.markets ?? [];
48
147
  for (const market of eventMarkets) {
148
+ const volume = Number.parseFloat(market.volume ?? event.volume ?? '0');
149
+ const liquidity = Number.parseFloat(market.liquidity ?? event.liquidity ?? '0');
150
+ // Apply volume/liquidity filters
151
+ if (options?.minVolume && volume < options.minVolume) {
152
+ continue;
153
+ }
154
+ if (options?.minLiquidity && liquidity < options.minLiquidity) {
155
+ continue;
156
+ }
49
157
  const outcomes = parseOutcomes(market.outcomes);
50
158
  const outcomePrices = parseOutcomePrices(market.outcomePrices);
51
159
  markets.push({
@@ -53,14 +161,15 @@ export function withPolymarket(Base) {
53
161
  question: market.question || event.title,
54
162
  description: market.description || event.description,
55
163
  endDate: market.endDate || event.endDate,
56
- volume: Number.parseFloat(market.volume ?? event.volume ?? '0'),
57
- liquidity: Number.parseFloat(market.liquidity ?? event.liquidity ?? '0'),
164
+ volume,
165
+ liquidity,
58
166
  outcomes: outcomes.map((outcome, i) => ({
59
167
  name: outcome,
60
168
  price: outcomePrices[i] ?? 0.5,
61
169
  })),
62
170
  category: event.category,
63
171
  slug: event.slug,
172
+ tags: event.tags?.map((t) => t.slug),
64
173
  });
65
174
  }
66
175
  }
@@ -141,7 +250,11 @@ export function withPolymarket(Base) {
141
250
  async searchPolymarkets(query, options) {
142
251
  try {
143
252
  const limit = options?.limit ?? 10;
144
- const url = `${POLYMARKET_API_BASE}/events?title_contains=${encodeURIComponent(query)}&active=true&closed=false&limit=${limit}`;
253
+ const hasFilters = (options?.excludeTags && options.excludeTags.length > 0) ||
254
+ (options?.includeTags && options.includeTags.length > 0);
255
+ // Fetch more events if we need to filter client-side
256
+ const fetchLimit = hasFilters ? Math.max(limit * 3, 50) : limit;
257
+ const url = `${POLYMARKET_API_BASE}/events?title_contains=${encodeURIComponent(query)}&active=true&closed=false&limit=${fetchLimit}&related_tags=true`;
145
258
  const response = await this.fetchWithTimeout(url, {
146
259
  headers: { Accept: 'application/json' },
147
260
  });
@@ -151,8 +264,21 @@ export function withPolymarket(Base) {
151
264
  const data = (await response.json());
152
265
  const markets = [];
153
266
  for (const event of data) {
267
+ // Apply tag filters at the event level
268
+ if (!eventMatchesTags(event, options)) {
269
+ continue;
270
+ }
154
271
  const eventMarkets = event.markets ?? [];
155
272
  for (const market of eventMarkets) {
273
+ const volume = Number.parseFloat(market.volume ?? event.volume ?? '0');
274
+ const liquidity = Number.parseFloat(market.liquidity ?? event.liquidity ?? '0');
275
+ // Apply volume/liquidity filters
276
+ if (options?.minVolume && volume < options.minVolume) {
277
+ continue;
278
+ }
279
+ if (options?.minLiquidity && liquidity < options.minLiquidity) {
280
+ continue;
281
+ }
156
282
  const outcomes = parseOutcomes(market.outcomes);
157
283
  const outcomePrices = parseOutcomePrices(market.outcomePrices);
158
284
  markets.push({
@@ -160,14 +286,15 @@ export function withPolymarket(Base) {
160
286
  question: market.question || event.title,
161
287
  description: market.description || event.description,
162
288
  endDate: market.endDate || event.endDate,
163
- volume: Number.parseFloat(market.volume ?? event.volume ?? '0'),
164
- liquidity: Number.parseFloat(market.liquidity ?? event.liquidity ?? '0'),
289
+ volume,
290
+ liquidity,
165
291
  outcomes: outcomes.map((outcome, i) => ({
166
292
  name: outcome,
167
293
  price: outcomePrices[i] ?? 0.5,
168
294
  })),
169
295
  category: event.category,
170
296
  slug: event.slug,
297
+ tags: event.tags?.map((t) => t.slug),
171
298
  });
172
299
  }
173
300
  }
@@ -180,7 +307,308 @@ export function withPolymarket(Base) {
180
307
  };
181
308
  }
182
309
  }
310
+ async getPolymarketSentiment(topic, options) {
311
+ try {
312
+ const limit = options?.limit ?? 20;
313
+ const topicLower = topic.toLowerCase();
314
+ // Expand topic to better search terms for common queries
315
+ const searchTerms = expandTopicToSearchTerms(topicLower);
316
+ // Gather markets from multiple sources
317
+ const allMarkets = [];
318
+ // Search for each expanded term
319
+ for (const term of searchTerms) {
320
+ const searchResult = await this.searchPolymarkets(term, { limit: 30 });
321
+ if (searchResult.success) {
322
+ for (const market of searchResult.markets) {
323
+ // Avoid duplicates
324
+ if (!allMarkets.some((m) => m.id === market.id)) {
325
+ allMarkets.push(market);
326
+ }
327
+ }
328
+ }
329
+ }
330
+ // Also check trending markets for the topic
331
+ const trendingResult = await this.getPolymarketTrending({ limit: 50 });
332
+ if (trendingResult.success) {
333
+ for (const market of trendingResult.markets) {
334
+ if (!allMarkets.some((m) => m.id === market.id)) {
335
+ // Check if market is relevant to topic
336
+ if (isMarketRelevantToTopic(market, topicLower, searchTerms)) {
337
+ allMarkets.push(market);
338
+ }
339
+ }
340
+ }
341
+ }
342
+ if (allMarkets.length === 0) {
343
+ return {
344
+ success: false,
345
+ error: `No prediction markets found for "${topic}"`,
346
+ };
347
+ }
348
+ const signals = [];
349
+ // Analyze each market to extract sentiment signals
350
+ for (const market of allMarkets) {
351
+ const signal = analyzeMarketSentiment(market, topicLower, searchTerms);
352
+ if (signal) {
353
+ signals.push(signal);
354
+ }
355
+ }
356
+ if (signals.length === 0) {
357
+ return {
358
+ success: false,
359
+ error: `Found markets for "${topic}" but couldn't extract sentiment signals`,
360
+ };
361
+ }
362
+ // Sort by volume (most liquid markets first)
363
+ signals.sort((a, b) => b.volume - a.volume);
364
+ // Take top signals
365
+ const topSignals = signals.slice(0, limit);
366
+ // Calculate overall sentiment
367
+ const sentiment = calculateOverallSentiment(topic, topSignals);
368
+ return { success: true, sentiment };
369
+ }
370
+ catch (error) {
371
+ return {
372
+ success: false,
373
+ error: `Failed to analyze sentiment: ${error instanceof Error ? error.message : String(error)}`,
374
+ };
375
+ }
376
+ }
183
377
  }
184
378
  return PolymarketMixin;
185
379
  }
380
+ // Topic expansion for better search results
381
+ const TOPIC_EXPANSIONS = {
382
+ fed: ['fed', 'interest rate', 'fomc', 'federal reserve', 'rate cut', 'rate hike'],
383
+ rates: ['interest rate', 'fed', 'fomc', 'rate cut', 'rate hike'],
384
+ 'interest rate': ['interest rate', 'fed', 'fomc', 'rate cut', 'rate hike'],
385
+ btc: ['bitcoin', 'btc'],
386
+ bitcoin: ['bitcoin', 'btc'],
387
+ eth: ['ethereum', 'eth'],
388
+ ethereum: ['ethereum', 'eth'],
389
+ sol: ['solana', 'sol'],
390
+ solana: ['solana', 'sol'],
391
+ trump: ['trump', 'donald trump', 'president trump'],
392
+ biden: ['biden', 'joe biden', 'president biden'],
393
+ ai: ['artificial intelligence', 'ai', 'openai', 'chatgpt', 'gpt'],
394
+ crypto: ['crypto', 'cryptocurrency', 'bitcoin', 'ethereum'],
395
+ recession: ['recession', 'economy', 'gdp'],
396
+ inflation: ['inflation', 'cpi', 'prices'],
397
+ };
398
+ // Keywords that indicate relevance for each topic
399
+ const TOPIC_KEYWORDS = {
400
+ fed: ['fed', 'interest', 'rate', 'fomc', 'powell', 'monetary', 'bps', 'basis point'],
401
+ rates: ['rate', 'interest', 'fed', 'fomc', 'bps', 'basis point'],
402
+ 'interest rate': ['rate', 'interest', 'fed', 'fomc', 'bps', 'basis point'],
403
+ btc: ['bitcoin', 'btc', 'satoshi'],
404
+ bitcoin: ['bitcoin', 'btc', 'satoshi'],
405
+ eth: ['ethereum', 'eth', 'vitalik'],
406
+ ethereum: ['ethereum', 'eth', 'vitalik'],
407
+ sol: ['solana', 'sol'],
408
+ solana: ['solana', 'sol'],
409
+ trump: ['trump'],
410
+ biden: ['biden'],
411
+ ai: ['ai', 'artificial intelligence', 'openai', 'gpt', 'llm', 'chatgpt', 'claude', 'gemini'],
412
+ crypto: ['crypto', 'bitcoin', 'ethereum', 'token', 'coin'],
413
+ recession: ['recession', 'economy', 'gdp', 'contraction'],
414
+ inflation: ['inflation', 'cpi', 'prices', 'deflation'],
415
+ };
416
+ function expandTopicToSearchTerms(topic) {
417
+ const expanded = TOPIC_EXPANSIONS[topic];
418
+ if (expanded) {
419
+ return expanded;
420
+ }
421
+ return [topic];
422
+ }
423
+ function isMarketRelevantToTopic(market, topic, searchTerms) {
424
+ const questionLower = market.question.toLowerCase();
425
+ const descLower = market.description?.toLowerCase() ?? '';
426
+ const combined = `${questionLower} ${descLower}`;
427
+ // Check if any search term appears
428
+ for (const term of searchTerms) {
429
+ if (combined.includes(term.toLowerCase())) {
430
+ return true;
431
+ }
432
+ }
433
+ // Check topic-specific keywords
434
+ const keywords = TOPIC_KEYWORDS[topic] ?? [topic];
435
+ for (const keyword of keywords) {
436
+ if (combined.includes(keyword.toLowerCase())) {
437
+ return true;
438
+ }
439
+ }
440
+ return false;
441
+ }
442
+ // Patterns for detecting bullish/bearish market questions
443
+ const BULLISH_PATTERNS = [
444
+ /above \$[\d,]+/i,
445
+ /over \$[\d,]+/i,
446
+ /reach \$[\d,]+/i,
447
+ /hit \$[\d,]+/i,
448
+ /exceed/i,
449
+ /increase/i,
450
+ /rise/i,
451
+ /rally/i,
452
+ /bull/i,
453
+ /new all[- ]?time high/i,
454
+ /ath/i,
455
+ /rate cut/i,
456
+ /decrease.*rate/i,
457
+ /lower.*rate/i,
458
+ /win/i,
459
+ /approve/i,
460
+ /pass/i,
461
+ /launch/i,
462
+ /release/i,
463
+ /adopt/i,
464
+ /accept/i,
465
+ /buy/i,
466
+ /acquire/i,
467
+ /no change.*rate/i, // No change is neutral-bullish for markets
468
+ ];
469
+ const BEARISH_PATTERNS = [
470
+ /below \$[\d,]+/i,
471
+ /under \$[\d,]+/i,
472
+ /fall/i,
473
+ /drop/i,
474
+ /crash/i,
475
+ /bear/i,
476
+ /recession/i,
477
+ /rate hike/i,
478
+ /increase.*rate/i,
479
+ /raise.*rate/i,
480
+ /lose/i,
481
+ /reject/i,
482
+ /fail/i,
483
+ /ban/i,
484
+ /sell/i,
485
+ /dump/i,
486
+ /liquidat/i,
487
+ ];
488
+ // Patterns that indicate neutral sentiment (informational, not directional)
489
+ const NEUTRAL_OVERRIDE_PATTERNS = [/who will/i, /which.*will/i, /when will/i, /what will/i];
490
+ function analyzeMarketSentiment(market, topic, searchTerms) {
491
+ // Check relevance using search terms and keywords
492
+ if (!isMarketRelevantToTopic(market, topic, searchTerms)) {
493
+ return null;
494
+ }
495
+ // Skip questions that are purely informational
496
+ for (const pattern of NEUTRAL_OVERRIDE_PATTERNS) {
497
+ if (pattern.test(market.question)) {
498
+ return null;
499
+ }
500
+ }
501
+ // Find the "Yes" outcome probability
502
+ const yesOutcome = market.outcomes.find((o) => o.name.toLowerCase() === 'yes' || o.name.toLowerCase() === 'true');
503
+ const yesProbability = yesOutcome?.price ?? 0.5;
504
+ // Determine if the question is bullish or bearish in nature
505
+ let questionSentiment = 'neutral';
506
+ for (const pattern of BULLISH_PATTERNS) {
507
+ if (pattern.test(market.question)) {
508
+ questionSentiment = 'bullish';
509
+ break;
510
+ }
511
+ }
512
+ if (questionSentiment === 'neutral') {
513
+ for (const pattern of BEARISH_PATTERNS) {
514
+ if (pattern.test(market.question)) {
515
+ questionSentiment = 'bearish';
516
+ break;
517
+ }
518
+ }
519
+ }
520
+ // Calculate signal sentiment based on question type and probability
521
+ let signalSentiment;
522
+ let signalProbability;
523
+ if (questionSentiment === 'bullish') {
524
+ // For bullish questions, high "Yes" probability = bullish signal
525
+ signalSentiment = yesProbability > 0.5 ? 'bullish' : yesProbability < 0.3 ? 'bearish' : 'neutral';
526
+ signalProbability = yesProbability;
527
+ }
528
+ else if (questionSentiment === 'bearish') {
529
+ // For bearish questions, high "Yes" probability = bearish signal
530
+ signalSentiment = yesProbability > 0.5 ? 'bearish' : yesProbability < 0.3 ? 'bullish' : 'neutral';
531
+ signalProbability = yesProbability;
532
+ }
533
+ else {
534
+ // Neutral question - can't determine sentiment
535
+ return null;
536
+ }
537
+ // Confidence is based on how extreme the probability is (away from 50%)
538
+ const confidence = Math.abs(yesProbability - 0.5) * 200; // 0-100 scale
539
+ return {
540
+ question: market.question,
541
+ sentiment: signalSentiment,
542
+ confidence: Math.round(confidence),
543
+ probability: signalProbability,
544
+ volume: market.volume,
545
+ slug: market.slug,
546
+ };
547
+ }
548
+ function calculateOverallSentiment(topic, signals) {
549
+ // Weight signals by volume
550
+ let weightedBullish = 0;
551
+ let weightedBearish = 0;
552
+ let totalWeight = 0;
553
+ for (const signal of signals) {
554
+ const weight = Math.log10(signal.volume + 1); // Log scale for volume weighting
555
+ totalWeight += weight;
556
+ if (signal.sentiment === 'bullish') {
557
+ weightedBullish += weight * (signal.confidence / 100);
558
+ }
559
+ else if (signal.sentiment === 'bearish') {
560
+ weightedBearish += weight * (signal.confidence / 100);
561
+ }
562
+ }
563
+ // Calculate sentiment score (-100 to +100)
564
+ let sentimentScore = 0;
565
+ if (totalWeight > 0) {
566
+ const normalizedBullish = weightedBullish / totalWeight;
567
+ const normalizedBearish = weightedBearish / totalWeight;
568
+ sentimentScore = Math.round((normalizedBullish - normalizedBearish) * 100);
569
+ }
570
+ // Determine overall sentiment
571
+ let overallSentiment;
572
+ if (sentimentScore > 20) {
573
+ overallSentiment = 'bullish';
574
+ }
575
+ else if (sentimentScore < -20) {
576
+ overallSentiment = 'bearish';
577
+ }
578
+ else if (weightedBullish > 0 && weightedBearish > 0) {
579
+ overallSentiment = 'mixed';
580
+ }
581
+ else {
582
+ overallSentiment = 'neutral';
583
+ }
584
+ // Calculate confidence based on signal agreement and volume
585
+ const bullishCount = signals.filter((s) => s.sentiment === 'bullish').length;
586
+ const bearishCount = signals.filter((s) => s.sentiment === 'bearish').length;
587
+ const agreement = Math.abs(bullishCount - bearishCount) / signals.length;
588
+ const avgConfidence = signals.reduce((sum, s) => sum + s.confidence, 0) / signals.length;
589
+ const confidence = Math.round(agreement * 50 + avgConfidence * 0.5);
590
+ // Generate summary
591
+ const topSignal = signals[0];
592
+ let summary;
593
+ if (overallSentiment === 'bullish') {
594
+ summary = `Polymarket shows bullish expectations for ${topic}. Top signal: "${topSignal.question}" at ${Math.round(topSignal.probability * 100)}% probability.`;
595
+ }
596
+ else if (overallSentiment === 'bearish') {
597
+ summary = `Polymarket shows bearish expectations for ${topic}. Top signal: "${topSignal.question}" at ${Math.round(topSignal.probability * 100)}% probability.`;
598
+ }
599
+ else if (overallSentiment === 'mixed') {
600
+ summary = `Polymarket shows mixed sentiment for ${topic} with ${bullishCount} bullish and ${bearishCount} bearish signals.`;
601
+ }
602
+ else {
603
+ summary = `Polymarket shows neutral expectations for ${topic} based on ${signals.length} markets analyzed.`;
604
+ }
605
+ return {
606
+ topic,
607
+ overallSentiment,
608
+ sentimentScore,
609
+ confidence,
610
+ signals,
611
+ summary,
612
+ };
613
+ }
186
614
  //# sourceMappingURL=polymarket.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"polymarket.js","sourceRoot":"","sources":["../../../src/lib/mixins/polymarket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"polymarket.js","sourceRoot":"","sources":["../../../src/lib/mixins/polymarket.ts"],"names":[],"mappings":"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"}
@@ -131,6 +131,36 @@ export interface PolymarketMarket {
131
131
  }>;
132
132
  category?: string;
133
133
  slug?: string;
134
+ tags?: string[];
135
+ }
136
+ export interface PolymarketTag {
137
+ id: string;
138
+ slug: string;
139
+ label: string;
140
+ eventCount?: number;
141
+ }
142
+ export interface PolymarketFilterOptions {
143
+ limit?: number;
144
+ excludeTags?: string[];
145
+ includeTags?: string[];
146
+ minVolume?: number;
147
+ minLiquidity?: number;
148
+ }
149
+ export interface PolymarketSentimentSignal {
150
+ question: string;
151
+ sentiment: 'bullish' | 'bearish' | 'neutral';
152
+ confidence: number;
153
+ probability: number;
154
+ volume: number;
155
+ slug?: string;
156
+ }
157
+ export interface PolymarketSentiment {
158
+ topic: string;
159
+ overallSentiment: 'bullish' | 'bearish' | 'neutral' | 'mixed';
160
+ sentimentScore: number;
161
+ confidence: number;
162
+ signals: PolymarketSentimentSignal[];
163
+ summary: string;
134
164
  }
135
165
  export interface TransactionDetail {
136
166
  hash: string;
@@ -259,6 +289,20 @@ export type PolymarketDetailResult = {
259
289
  success: false;
260
290
  error: string;
261
291
  };
292
+ export type PolymarketTagsResult = {
293
+ success: true;
294
+ tags: PolymarketTag[];
295
+ } | {
296
+ success: false;
297
+ error: string;
298
+ };
299
+ export type PolymarketSentimentResult = {
300
+ success: true;
301
+ sentiment: PolymarketSentiment;
302
+ } | {
303
+ success: false;
304
+ error: string;
305
+ };
262
306
  export type TransactionDetailResult = {
263
307
  success: true;
264
308
  transaction: TransactionDetail;
@@ -275,6 +319,36 @@ export type MultiChainTxSearchResult = {
275
319
  error: string;
276
320
  triedChains: EtherscanChain[];
277
321
  };
322
+ export interface GasEstimate {
323
+ chain: EtherscanChain;
324
+ safeGasPrice: number;
325
+ proposeGasPrice: number;
326
+ fastGasPrice: number;
327
+ suggestBaseFee?: number;
328
+ gasUsedRatio?: string;
329
+ }
330
+ export type GasEstimateResult = {
331
+ success: true;
332
+ gas: GasEstimate;
333
+ } | {
334
+ success: false;
335
+ error: string;
336
+ };
337
+ export interface TokenSearchItem {
338
+ id: string;
339
+ symbol: string;
340
+ name: string;
341
+ marketCapRank?: number;
342
+ thumb?: string;
343
+ large?: string;
344
+ }
345
+ export type TokenSearchResult = {
346
+ success: true;
347
+ tokens: TokenSearchItem[];
348
+ } | {
349
+ success: false;
350
+ error: string;
351
+ };
278
352
  export interface OnchainClientOptions {
279
353
  debankApiKey?: string;
280
354
  heliusApiKey?: string;