@kehtus/proportion-sdk 0.5.0 → 1.2.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 (95) hide show
  1. package/dist/abi/challengeAccount.d.ts +1855 -0
  2. package/dist/abi/challengeAccount.d.ts.map +1 -0
  3. package/dist/abi/challengeAccount.js +2365 -0
  4. package/dist/abi/challengeAccount.js.map +1 -0
  5. package/dist/abi/challengeFactory.d.ts +1351 -0
  6. package/dist/abi/challengeFactory.d.ts.map +1 -0
  7. package/dist/abi/challengeFactory.js +1727 -0
  8. package/dist/abi/challengeFactory.js.map +1 -0
  9. package/dist/abi/challengeVault.d.ts +1392 -0
  10. package/dist/abi/challengeVault.d.ts.map +1 -0
  11. package/dist/abi/challengeVault.js +1793 -0
  12. package/dist/abi/challengeVault.js.map +1 -0
  13. package/dist/abi/factory.d.ts +4 -0
  14. package/dist/abi/factory.d.ts.map +1 -1
  15. package/dist/abi/factory.js +5 -0
  16. package/dist/abi/factory.js.map +1 -1
  17. package/dist/abi/fundedAccount.d.ts +49 -10
  18. package/dist/abi/fundedAccount.d.ts.map +1 -1
  19. package/dist/abi/fundedAccount.js +62 -13
  20. package/dist/abi/fundedAccount.js.map +1 -1
  21. package/dist/abi/mainVault.d.ts +409 -20
  22. package/dist/abi/mainVault.d.ts.map +1 -1
  23. package/dist/abi/mainVault.js +523 -20
  24. package/dist/abi/mainVault.js.map +1 -1
  25. package/dist/abi/priceOracle.d.ts +497 -0
  26. package/dist/abi/priceOracle.d.ts.map +1 -0
  27. package/dist/abi/priceOracle.js +644 -0
  28. package/dist/abi/priceOracle.js.map +1 -0
  29. package/dist/account.d.ts.map +1 -1
  30. package/dist/account.js +6 -0
  31. package/dist/account.js.map +1 -1
  32. package/dist/challenge/account.d.ts +95 -0
  33. package/dist/challenge/account.d.ts.map +1 -0
  34. package/dist/challenge/account.js +375 -0
  35. package/dist/challenge/account.js.map +1 -0
  36. package/dist/challenge/api.d.ts +49 -0
  37. package/dist/challenge/api.d.ts.map +1 -0
  38. package/dist/challenge/api.js +173 -0
  39. package/dist/challenge/api.js.map +1 -0
  40. package/dist/challenge/factory.d.ts +165 -0
  41. package/dist/challenge/factory.d.ts.map +1 -0
  42. package/dist/challenge/factory.js +392 -0
  43. package/dist/challenge/factory.js.map +1 -0
  44. package/dist/challenge/intents.d.ts +137 -0
  45. package/dist/challenge/intents.d.ts.map +1 -0
  46. package/dist/challenge/intents.js +218 -0
  47. package/dist/challenge/intents.js.map +1 -0
  48. package/dist/challenge/oracle.d.ts +50 -0
  49. package/dist/challenge/oracle.d.ts.map +1 -0
  50. package/dist/challenge/oracle.js +117 -0
  51. package/dist/challenge/oracle.js.map +1 -0
  52. package/dist/challenge/types.d.ts +652 -0
  53. package/dist/challenge/types.d.ts.map +1 -0
  54. package/dist/challenge/types.js +64 -0
  55. package/dist/challenge/types.js.map +1 -0
  56. package/dist/challenge/vault.d.ts +87 -0
  57. package/dist/challenge/vault.d.ts.map +1 -0
  58. package/dist/challenge/vault.js +299 -0
  59. package/dist/challenge/vault.js.map +1 -0
  60. package/dist/constants.d.ts +7 -3
  61. package/dist/constants.d.ts.map +1 -1
  62. package/dist/constants.js +21 -3
  63. package/dist/constants.js.map +1 -1
  64. package/dist/factory.d.ts +1 -1
  65. package/dist/factory.d.ts.map +1 -1
  66. package/dist/factory.js +12 -0
  67. package/dist/factory.js.map +1 -1
  68. package/dist/forwarder.d.ts +58 -0
  69. package/dist/forwarder.d.ts.map +1 -0
  70. package/dist/forwarder.js +145 -0
  71. package/dist/forwarder.js.map +1 -0
  72. package/dist/index.d.ts +13 -0
  73. package/dist/index.d.ts.map +1 -1
  74. package/dist/index.js +14 -0
  75. package/dist/index.js.map +1 -1
  76. package/dist/indexer.d.ts +52 -0
  77. package/dist/indexer.d.ts.map +1 -1
  78. package/dist/indexer.js +219 -4
  79. package/dist/indexer.js.map +1 -1
  80. package/dist/sdk.d.ts +23 -1
  81. package/dist/sdk.d.ts.map +1 -1
  82. package/dist/sdk.js +122 -35
  83. package/dist/sdk.js.map +1 -1
  84. package/dist/types.d.ts +50 -0
  85. package/dist/types.d.ts.map +1 -1
  86. package/dist/types.js.map +1 -1
  87. package/dist/utils.d.ts +35 -2
  88. package/dist/utils.d.ts.map +1 -1
  89. package/dist/utils.js +86 -7
  90. package/dist/utils.js.map +1 -1
  91. package/dist/vault.d.ts +44 -4
  92. package/dist/vault.d.ts.map +1 -1
  93. package/dist/vault.js +143 -9
  94. package/dist/vault.js.map +1 -1
  95. package/package.json +42 -42
package/dist/indexer.js CHANGED
@@ -23,6 +23,22 @@ export class IndexerModule {
23
23
  static CONFIG_CHANGE_FIELDS = `id contractAddress contractType field oldValue newValue blockNumber timestamp txHash`;
24
24
  static VAULT_DAY_DATA_FIELDS = `id date dayNumber evmBalance totalAllocated totalAssets totalShares sharePrice dailyDeposits dailyWithdrawals dailyNetLpFlow dailyActivationFees dailyActivationFeesToVault dailyProfitShares dailyCancelledProfit dailySubscriptionFees dailyProtocolFeesRouted dailyHypercoreFees dailyRescuedFunds dailyAccountReturnAmount dailyAccountPrincipalReturned dailyAccountGains dailyAccountLosses dailyPerformancePnl dailyClosedAccountNetPnl cumulativeRealizedPnl totalAccountsActivated totalAccountsActive totalAccountsClosed accountsActivatedToday accountsClosedToday navChange24h sharePriceChange24h return24hBps realizedReturn24hBps paused updatedAt`;
25
25
  static LP_DAY_DATA_FIELDS = `id lp { id } date dayNumber shares sharesValue dailyDeposits dailyWithdrawals depositCount withdrawCount`;
26
+ // ── Challenge / B-book field sets (envio-unified schema) ──
27
+ static CHALLENGE_FIELDS = `id trader { id } builder { id address } payer vaultAddress allocation6 initialBalance6 phase failReason currentPhase reduceOnly totalPhases targetProfitBps finalTargetProfitBps drawdownBps dailyDrawdownEnabled tradingDaysEnabled profitableDaysRequired maxLeverageBps maxNotional6 maxOpenPositions minHoldBlocks freeBalance6 realizedPnl6 totalTradingFees6 equity6 highWaterMark6 dayStartEquity6 profitableDaysCount positionCount openPositionCount liquidationCount tradeCount totalVolume6 challengeFee6 builderAmount6 quoteHash quoteNonce quoteDeadline totalPayoutGross6 payoutCount promotedFundedAccount { id } activationFeePaid6 activatedAt challengeExpiry passedAt paperFundedAt failedAt closedAt promotedAt createdAt updatedAt`;
28
+ static CHALLENGE_BUILDER_FIELDS = `id address balance6 pendingPayouts6 delinquentSince isDelinquent activeChallengeExposure6 passedExposure6 paperFundedExposure6 queuedPayoutExposure6 pendingPassedAccounts pendingPayoutCount quoteEpoch totalFeesCollected6 totalDeposited6 totalWithdrawn6 totalInstantPaid6 totalQueuedPaid6 totalActivationFeesDebited6 challengesSold challengesPassed challengesPromoted registeredAt updatedAt`;
29
+ static CHALLENGE_POSITION_FIELDS = `id challenge { id } positionId market isLong status entryPrice marginOpen6 notionalOpen6 marginCurrent6 notionalCurrent6 cumulativeReducedNotional6 realizedPnl6 openFee6 closeFee6 exitPrice stopLossPrice takeProfitPrice exitOrderExecutedKind exitOrderTriggerPrice exitOrderRiskPrice exitOrderExecutedAt openedAtBlock openTx closeTx openedAt closedAt updatedAt`;
30
+ static CHALLENGE_TRADE_FIELDS = `id challenge { id } positionId kind market isLong margin6 notional6 price pnl6 fee6 freeBalanceAfter6 blockNumber timestamp txHash`;
31
+ static CHALLENGE_CHECKPOINT_FIELDS = `id challenge { id } kind equity6 highWaterMark6 dayStartEquity6 profitableDaysCount blockNumber timestamp txHash`;
32
+ static CHALLENGE_PAYOUT_FIELDS = `id challenge { id } trader { id } builderAddress requestedGross6 instantPaid6 queuedGross6 queuedPaid6 queueId fullyPaid requestedAt blockNumber txHash`;
33
+ static CHALLENGE_QUEUE_ENTRY_FIELDS = `id queueId challenge { id } builder { id } payoutId traderAddress originalGross6 remainingGross6 paidGross6 fullyPaid queuedAt lastPaidAt updatedAt`;
34
+ static CHALLENGE_DAY_DATA_FIELDS = `id date dayNumber challengesSold challengesPassed challengesPaperFunded challengesPromoted challengesFailed challengesClosed dailyChallengeFees6 dailyBuilderFees6 dailyPayoutGross6 dailyTradingVolume6 dailyTradingFees6 tradeCount updatedAt`;
35
+ static TRADER_FIELDS = `id challengesBought challengesPassed challengesPaperFunded challengesPromoted challengesFailed totalChallengeFeesPaid6 totalChallengePayoutGross6 firstSeenAt lastActionAt updatedAt`;
36
+ static JOURNEY_EVENT_FIELDS = `id trader { id } builderAddress kind challenge { id } fundedAccount { id } amount6 blockNumber timestamp txHash`;
37
+ static FOUNDER_PARTICIPANT_FIELDS = `id wallet firstSeenAt firstQualifiedAt firstQualifiedWeek founderRank founderTier founderBoostBps boostActive totalRawPoints totalFinalPoints totalPenaltyPoints challengePoints fundedPoints lpPoints spendPoints performancePoints lastActionAt updatedAt`;
38
+ static FOUNDER_WALLET_WEEK_FIELDS = `id wallet weekStart weekEnd rawSpendPoints rawPerformancePoints rawLpPoints rawPenaltyPoints finalSpendPoints finalPerformancePoints finalLpPoints finalPenaltyPoints totalFinalPoints liquidationCount breachCount founderTier founderBoostBps maturityBps updatedAt`;
39
+ static FOUNDER_POINT_EVENT_FIELDS = `id wallet weekStart source kind category rawPoints adjustedPoints finalPoints penaltyPoints maturityBps founderBoostBps qualityBps saturationBps walletMultiplierBps weeklyBoostBps amount accountSize relatedAccount builder txHash blockNumber timestamp`;
40
+ static FOUNDER_MULTIPLIER_FIELDS = `id wallet passExpiresAt activeFundedAccounts payoutBps payoutExpiresAt updatedAt`;
41
+ static FOUNDER_WEEKLY_BOOST_FIELDS = `id weekStart kind targetKind boostBps lpNeedBps utilizationBps updatedAt`;
26
42
  async getCachedProtocol() {
27
43
  if (this.cachedProtocol !== undefined)
28
44
  return this.cachedProtocol;
@@ -290,10 +306,21 @@ export class IndexerModule {
290
306
  }
291
307
  // ── PROTOCOL CONFIG ─────────────────────────────
292
308
  async getProtocolConfig() {
293
- const data = await this.query(`{
294
- ProtocolConfig { id vaultAddress factoryAddress updatedAt }
295
- }`);
296
- return data.ProtocolConfig[0] ?? null;
309
+ try {
310
+ const data = await this.query(`{
311
+ ProtocolConfig { id vaultAddress factoryAddress challengeFactoryAddress updatedAt }
312
+ }`);
313
+ return data.ProtocolConfig[0] ?? null;
314
+ }
315
+ catch {
316
+ // Indexer deployments predating the challengeFactoryAddress field reject the whole
317
+ // query — retry without it so funded-address resolution keeps working against them.
318
+ const data = await this.query(`{
319
+ ProtocolConfig { id vaultAddress factoryAddress updatedAt }
320
+ }`);
321
+ const legacy = data.ProtocolConfig[0];
322
+ return legacy ? { ...legacy, challengeFactoryAddress: null } : null;
323
+ }
297
324
  }
298
325
  // ── CONFIG ────────────────────────────────────────
299
326
  async getMainVaultConfig(vaultAddress) {
@@ -414,6 +441,186 @@ export class IndexerModule {
414
441
  `, { vaultAddress: resolved });
415
442
  return data.AllowedPerp;
416
443
  }
444
+ // ── CHALLENGE / B-BOOK (envio-unified) ────────────
445
+ async getChallenge(address) {
446
+ const data = await this.query(`
447
+ query($id: String!) { Challenge(where: { id: { _ilike: $id } }) { ${IndexerModule.CHALLENGE_FIELDS} } }
448
+ `, { id: address });
449
+ return data.Challenge[0] ?? null;
450
+ }
451
+ async getChallengesByTrader(trader, p) {
452
+ const data = await this.query(`
453
+ query($trader: String!, $limit: Int, $offset: Int) {
454
+ Challenge(where: { trader_id: { _ilike: $trader } }, order_by: { createdAt: desc }, limit: $limit, offset: $offset) { ${IndexerModule.CHALLENGE_FIELDS} }
455
+ }
456
+ `, { trader, limit: p?.limit ?? 50, offset: p?.offset ?? 0 });
457
+ return data.Challenge;
458
+ }
459
+ async getChallengesByBuilder(builder, p) {
460
+ const data = await this.query(`
461
+ query($builder: String!, $limit: Int, $offset: Int) {
462
+ Challenge(where: { builder_id: { _ilike: $builder } }, order_by: { createdAt: desc }, limit: $limit, offset: $offset) { ${IndexerModule.CHALLENGE_FIELDS} }
463
+ }
464
+ `, { builder, limit: p?.limit ?? 50, offset: p?.offset ?? 0 });
465
+ return data.Challenge;
466
+ }
467
+ async getChallengesByPhase(phase, p) {
468
+ const data = await this.query(`
469
+ query($phase: challengephase!, $limit: Int, $offset: Int) {
470
+ Challenge(where: { phase: { _eq: $phase } }, order_by: { updatedAt: desc }, limit: $limit, offset: $offset) { ${IndexerModule.CHALLENGE_FIELDS} }
471
+ }
472
+ `, { phase, limit: p?.limit ?? 50, offset: p?.offset ?? 0 });
473
+ return data.Challenge;
474
+ }
475
+ async getChallengeBuilder(address) {
476
+ const data = await this.query(`
477
+ query($id: String!) { ChallengeBuilder(where: { id: { _ilike: $id } }) { ${IndexerModule.CHALLENGE_BUILDER_FIELDS} } }
478
+ `, { id: address });
479
+ return data.ChallengeBuilder[0] ?? null;
480
+ }
481
+ async getChallengePositions(challenge, p) {
482
+ const openFilter = p?.openOnly ? `status: { _eq: Open }` : "";
483
+ const data = await this.query(`
484
+ query($challenge: String!, $limit: Int, $offset: Int) {
485
+ ChallengePosition(where: { challenge_id: { _ilike: $challenge } ${openFilter} }, order_by: { openedAt: desc }, limit: $limit, offset: $offset) { ${IndexerModule.CHALLENGE_POSITION_FIELDS} }
486
+ }
487
+ `, { challenge, limit: p?.limit ?? 50, offset: p?.offset ?? 0 });
488
+ return data.ChallengePosition;
489
+ }
490
+ async getChallengeTrades(challenge, p) {
491
+ const data = await this.query(`
492
+ query($challenge: String!, $limit: Int, $offset: Int) {
493
+ ChallengeTrade(where: { challenge_id: { _ilike: $challenge } }, order_by: { timestamp: desc }, limit: $limit, offset: $offset) { ${IndexerModule.CHALLENGE_TRADE_FIELDS} }
494
+ }
495
+ `, { challenge, limit: p?.limit ?? 50, offset: p?.offset ?? 0 });
496
+ return data.ChallengeTrade;
497
+ }
498
+ async getChallengeCheckpoints(challenge, p) {
499
+ const data = await this.query(`
500
+ query($challenge: String!, $limit: Int, $offset: Int) {
501
+ ChallengeCheckpoint(where: { challenge_id: { _ilike: $challenge } }, order_by: { timestamp: desc }, limit: $limit, offset: $offset) { ${IndexerModule.CHALLENGE_CHECKPOINT_FIELDS} }
502
+ }
503
+ `, { challenge, limit: p?.limit ?? 50, offset: p?.offset ?? 0 });
504
+ return data.ChallengeCheckpoint;
505
+ }
506
+ async getChallengePayouts(filter, p) {
507
+ const clauses = [];
508
+ const variableDefs = ["$limit: Int", "$offset: Int"];
509
+ const variables = { limit: p?.limit ?? 50, offset: p?.offset ?? 0 };
510
+ if (filter.challenge) {
511
+ variableDefs.push("$challenge: String!");
512
+ clauses.push("challenge_id: { _ilike: $challenge }");
513
+ variables.challenge = filter.challenge;
514
+ }
515
+ if (filter.trader) {
516
+ variableDefs.push("$trader: String!");
517
+ clauses.push("trader_id: { _ilike: $trader }");
518
+ variables.trader = filter.trader;
519
+ }
520
+ if (filter.builder) {
521
+ variableDefs.push("$builder: String!");
522
+ clauses.push("builderAddress: { _ilike: $builder }");
523
+ variables.builder = filter.builder;
524
+ }
525
+ const whereBlock = clauses.length > 0 ? `where: { ${clauses.join(" ")} }` : "";
526
+ const data = await this.query(`
527
+ query(${variableDefs.join(", ")}) {
528
+ ChallengePayout(${whereBlock} order_by: { requestedAt: desc }, limit: $limit, offset: $offset) { ${IndexerModule.CHALLENGE_PAYOUT_FIELDS} }
529
+ }
530
+ `, variables);
531
+ return data.ChallengePayout;
532
+ }
533
+ /** Live FIFO payout queue of a builder (unpaid entries, oldest first). */
534
+ async getPayoutQueue(builder, p) {
535
+ const data = await this.query(`
536
+ query($builder: String!, $limit: Int, $offset: Int) {
537
+ ChallengePayoutQueueEntry(where: { builder_id: { _ilike: $builder } fullyPaid: { _eq: false } }, order_by: { queueId: asc }, limit: $limit, offset: $offset) { ${IndexerModule.CHALLENGE_QUEUE_ENTRY_FIELDS} }
538
+ }
539
+ `, { builder, limit: p?.limit ?? 50, offset: p?.offset ?? 0 });
540
+ return data.ChallengePayoutQueueEntry;
541
+ }
542
+ async getChallengeDayData(p) {
543
+ const data = await this.query(`
544
+ query($limit: Int, $offset: Int) {
545
+ ChallengeDayData(order_by: { date: desc }, limit: $limit, offset: $offset) { ${IndexerModule.CHALLENGE_DAY_DATA_FIELDS} }
546
+ }
547
+ `, { limit: p?.limit ?? 50, offset: p?.offset ?? 0 });
548
+ return data.ChallengeDayData;
549
+ }
550
+ // ── BRIDGE / JOURNEY ──────────────────────────────
551
+ async getTrader(address) {
552
+ const data = await this.query(`
553
+ query($id: String!) { Trader(where: { id: { _ilike: $id } }) { ${IndexerModule.TRADER_FIELDS} } }
554
+ `, { id: address });
555
+ return data.Trader[0] ?? null;
556
+ }
557
+ /** Cross-system timeline (challenge ↔ funded) of a trader, newest first. */
558
+ async getTraderJourney(trader, p) {
559
+ const data = await this.query(`
560
+ query($trader: String!, $limit: Int, $offset: Int) {
561
+ JourneyEvent(where: { trader_id: { _ilike: $trader } }, order_by: { timestamp: desc }, limit: $limit, offset: $offset) { ${IndexerModule.JOURNEY_EVENT_FIELDS} }
562
+ }
563
+ `, { trader, limit: p?.limit ?? 50, offset: p?.offset ?? 0 });
564
+ return data.JourneyEvent;
565
+ }
566
+ // ── FOUNDER POINTS ────────────────────────────────
567
+ async getFounderParticipant(wallet) {
568
+ const data = await this.query(`
569
+ query($id: String!) { FounderParticipant(where: { id: { _ilike: $id } }) { ${IndexerModule.FOUNDER_PARTICIPANT_FIELDS} } }
570
+ `, { id: wallet });
571
+ return data.FounderParticipant[0] ?? null;
572
+ }
573
+ /** Lifetime leaderboard by total final points. */
574
+ async getFounderLeaderboard(p) {
575
+ const data = await this.query(`
576
+ query($limit: Int, $offset: Int) {
577
+ FounderParticipant(order_by: { totalFinalPoints: desc }, limit: $limit, offset: $offset) { ${IndexerModule.FOUNDER_PARTICIPANT_FIELDS} }
578
+ }
579
+ `, { limit: p?.limit ?? 50, offset: p?.offset ?? 0 });
580
+ return data.FounderParticipant;
581
+ }
582
+ /** Weekly leaderboard for one epoch week (weekStart = unix seconds of the week boundary). */
583
+ async getFounderWeeklyLeaderboard(weekStart, p) {
584
+ const data = await this.query(`
585
+ query($weekStart: numeric!, $limit: Int, $offset: Int) {
586
+ FounderWalletWeek(where: { weekStart: { _eq: $weekStart } }, order_by: { totalFinalPoints: desc }, limit: $limit, offset: $offset) { ${IndexerModule.FOUNDER_WALLET_WEEK_FIELDS} }
587
+ }
588
+ `, { weekStart, limit: p?.limit ?? 50, offset: p?.offset ?? 0 });
589
+ return data.FounderWalletWeek;
590
+ }
591
+ async getFounderWalletWeeks(wallet, p) {
592
+ const data = await this.query(`
593
+ query($wallet: String!, $limit: Int, $offset: Int) {
594
+ FounderWalletWeek(where: { wallet: { _ilike: $wallet } }, order_by: { weekStart: desc }, limit: $limit, offset: $offset) { ${IndexerModule.FOUNDER_WALLET_WEEK_FIELDS} }
595
+ }
596
+ `, { wallet, limit: p?.limit ?? 50, offset: p?.offset ?? 0 });
597
+ return data.FounderWalletWeek;
598
+ }
599
+ /** Canonical append-only point journal of a wallet, newest first. */
600
+ async getFounderPointEvents(wallet, p) {
601
+ const data = await this.query(`
602
+ query($wallet: String!, $limit: Int, $offset: Int) {
603
+ FounderPointEvent(where: { wallet: { _ilike: $wallet } }, order_by: { timestamp: desc }, limit: $limit, offset: $offset) { ${IndexerModule.FOUNDER_POINT_EVENT_FIELDS} }
604
+ }
605
+ `, { wallet, limit: p?.limit ?? 50, offset: p?.offset ?? 0 });
606
+ return data.FounderPointEvent;
607
+ }
608
+ /** Active skill multipliers (pass/activation/realization) of a wallet. */
609
+ async getFounderMultiplier(wallet) {
610
+ const data = await this.query(`
611
+ query($id: String!) { FounderMultiplier(where: { id: { _ilike: $id } }) { ${IndexerModule.FOUNDER_MULTIPLIER_FIELDS} } }
612
+ `, { id: wallet });
613
+ return data.FounderMultiplier[0] ?? null;
614
+ }
615
+ /** Weekly rotating boost entries (deterministic calendar), newest first. */
616
+ async getFounderWeeklyBoosts(p) {
617
+ const data = await this.query(`
618
+ query($limit: Int, $offset: Int) {
619
+ FounderWeeklyBoost(order_by: { weekStart: desc }, limit: $limit, offset: $offset) { ${IndexerModule.FOUNDER_WEEKLY_BOOST_FIELDS} }
620
+ }
621
+ `, { limit: p?.limit ?? 50, offset: p?.offset ?? 0 });
622
+ return data.FounderWeeklyBoost;
623
+ }
417
624
  // ── SUBSCRIPTIONS (Hasura graphql-transport-ws) ───
418
625
  ensureWs() {
419
626
  const WebSocketCtor = (this.transports.webSocketCtor ?? globalThis.WebSocket);
@@ -493,6 +700,14 @@ export class IndexerModule {
493
700
  subscribeAllowedPerps(cb) {
494
701
  return this.subscribe(`subscription { AllowedPerp(where: { allowed: { _eq: true } }) { id vaultAddress perpIndex allowed } }`, undefined, (data) => cb(data.AllowedPerp));
495
702
  }
703
+ subscribeChallenge(address, cb) {
704
+ return this.subscribe(`subscription($id: String!) { Challenge(where: { id: { _ilike: $id } }) { ${IndexerModule.CHALLENGE_FIELDS} } }`, { id: address }, (data) => { if (data.Challenge[0])
705
+ cb(data.Challenge[0]); });
706
+ }
707
+ /** Live view of a builder's unpaid FIFO payout queue. */
708
+ subscribePayoutQueue(builder, cb) {
709
+ return this.subscribe(`subscription($builder: String!) { ChallengePayoutQueueEntry(where: { builder_id: { _ilike: $builder } fullyPaid: { _eq: false } }, order_by: { queueId: asc }) { ${IndexerModule.CHALLENGE_QUEUE_ENTRY_FIELDS} } }`, { builder }, (data) => cb(data.ChallengePayoutQueueEntry));
710
+ }
496
711
  disconnect() {
497
712
  if (this.reconnectTimer) {
498
713
  clearTimeout(this.reconnectTimer);
@@ -1 +1 @@
1
- {"version":3,"file":"indexer.js","sourceRoot":"","sources":["../src/indexer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"indexer.js","sourceRoot":"","sources":["../src/indexer.ts"],"names":[],"mappings":"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"}
package/dist/sdk.d.ts CHANGED
@@ -1,22 +1,44 @@
1
1
  import { VaultModule } from "./vault.js";
2
2
  import { AccountModule } from "./account.js";
3
3
  import { FactoryModule } from "./factory.js";
4
+ import { ForwarderModule } from "./forwarder.js";
4
5
  import { IndexerModule } from "./indexer.js";
6
+ import { ChallengeAccountModule } from "./challenge/account.js";
7
+ import { ChallengeVaultModule } from "./challenge/vault.js";
8
+ import { ChallengeFactoryModule } from "./challenge/factory.js";
9
+ import { ChallengePricesModule } from "./challenge/oracle.js";
10
+ import { ChallengeIntentsModule } from "./challenge/intents.js";
11
+ import { ChallengeApiClient } from "./challenge/api.js";
5
12
  import type { SDKConfig } from "./types.js";
6
13
  export declare class ProportionSDK {
7
14
  readonly vault: VaultModule;
8
15
  readonly account: AccountModule;
9
16
  readonly factory: FactoryModule;
17
+ readonly forwarder: ForwarderModule;
10
18
  readonly indexer: IndexerModule;
19
+ readonly challenge: ChallengeAccountModule;
20
+ readonly challengeVault: ChallengeVaultModule;
21
+ readonly challengeFactory: ChallengeFactoryModule;
22
+ readonly challengeIntents: ChallengeIntentsModule;
23
+ readonly prices: ChallengePricesModule;
24
+ /** Present only when SDKConfig.challengeApiUrl is set. */
25
+ readonly challengeApi?: ChallengeApiClient;
11
26
  /**
12
27
  * Async factory: resolves addresses from explicit config > ENV > MainVault RPC > ProtocolConfig > hardcoded constants.
13
28
  *
14
29
  * MainVault is the stable protocol root. The active factory is read from MainVault.factory()
15
30
  * so factory redeploys do not require an SDK release.
16
31
  *
32
+ * CHALLENGE_FACTORY has no hardcoded fallback (it has already moved twice in ten days —
33
+ * see CHANGELOG.md): config.addresses > ENV > the indexer's ProtocolConfig.challengeFactoryAddress.
34
+ * If none resolve it here, construction still succeeds — ChallengeFactoryModule resolves it
35
+ * lazily from the same indexer on first actual challenge.* call, and only throws then.
36
+ *
17
37
  * ProtocolConfig is only a convenience fallback from the indexer. It is not the source of truth.
18
38
  *
19
- * ENV vars: PROPORTION_VAULT_ADDRESS, PROPORTION_FACTORY_ADDRESS, PROPORTION_USDC_ADDRESS
39
+ * ENV vars: PROPORTION_VAULT_ADDRESS, PROPORTION_FACTORY_ADDRESS, PROPORTION_USDC_ADDRESS,
40
+ * PROPORTION_FORWARDER_ADDRESS, PROPORTION_CHALLENGE_FACTORY_ADDRESS,
41
+ * PROPORTION_CHALLENGE_VAULT_ADDRESS, PROPORTION_CHALLENGE_ORACLE_ADDRESS
20
42
  */
21
43
  static create(config: SDKConfig): Promise<ProportionSDK>;
22
44
  constructor(config: SDKConfig);
package/dist/sdk.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../src/sdk.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,qBAAa,aAAa;IACxB,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAEhC;;;;;;;;;OASG;WACU,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC;gBAoElD,MAAM,EAAE,SAAS;IAiC7B,UAAU,IAAI,IAAI;CAGnB"}
1
+ {"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../src/sdk.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,qBAAa,aAAa;IACxB,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAEhC,QAAQ,CAAC,SAAS,EAAE,sBAAsB,CAAC;IAC3C,QAAQ,CAAC,cAAc,EAAE,oBAAoB,CAAC;IAC9C,QAAQ,CAAC,gBAAgB,EAAE,sBAAsB,CAAC;IAClD,QAAQ,CAAC,gBAAgB,EAAE,sBAAsB,CAAC;IAClD,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;IACvC,0DAA0D;IAC1D,QAAQ,CAAC,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAE3C;;;;;;;;;;;;;;;;OAgBG;WACU,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC;gBAqFlD,MAAM,EAAE,SAAS;IAgG7B,UAAU,IAAI,IAAI;CAGnB"}
package/dist/sdk.js CHANGED
@@ -3,22 +3,46 @@ import { ADDRESSES, hyperEvm } from "./constants.js";
3
3
  import { VaultModule } from "./vault.js";
4
4
  import { AccountModule } from "./account.js";
5
5
  import { FactoryModule } from "./factory.js";
6
+ import { ForwarderModule } from "./forwarder.js";
6
7
  import { IndexerModule } from "./indexer.js";
8
+ import { ChallengeAccountModule } from "./challenge/account.js";
9
+ import { ChallengeVaultModule } from "./challenge/vault.js";
10
+ import { ChallengeFactoryModule } from "./challenge/factory.js";
11
+ import { ChallengePricesModule } from "./challenge/oracle.js";
12
+ import { ChallengeIntentsModule } from "./challenge/intents.js";
13
+ import { ChallengeApiClient } from "./challenge/api.js";
7
14
  import { mainVaultAbi } from "./abi/mainVault.js";
15
+ import { challengeFactoryAbi } from "./abi/challengeFactory.js";
8
16
  export class ProportionSDK {
9
17
  vault;
10
18
  account;
11
19
  factory;
20
+ forwarder;
12
21
  indexer;
22
+ // Challenge / B-book modules
23
+ challenge;
24
+ challengeVault;
25
+ challengeFactory;
26
+ challengeIntents;
27
+ prices;
28
+ /** Present only when SDKConfig.challengeApiUrl is set. */
29
+ challengeApi;
13
30
  /**
14
31
  * Async factory: resolves addresses from explicit config > ENV > MainVault RPC > ProtocolConfig > hardcoded constants.
15
32
  *
16
33
  * MainVault is the stable protocol root. The active factory is read from MainVault.factory()
17
34
  * so factory redeploys do not require an SDK release.
18
35
  *
36
+ * CHALLENGE_FACTORY has no hardcoded fallback (it has already moved twice in ten days —
37
+ * see CHANGELOG.md): config.addresses > ENV > the indexer's ProtocolConfig.challengeFactoryAddress.
38
+ * If none resolve it here, construction still succeeds — ChallengeFactoryModule resolves it
39
+ * lazily from the same indexer on first actual challenge.* call, and only throws then.
40
+ *
19
41
  * ProtocolConfig is only a convenience fallback from the indexer. It is not the source of truth.
20
42
  *
21
- * ENV vars: PROPORTION_VAULT_ADDRESS, PROPORTION_FACTORY_ADDRESS, PROPORTION_USDC_ADDRESS
43
+ * ENV vars: PROPORTION_VAULT_ADDRESS, PROPORTION_FACTORY_ADDRESS, PROPORTION_USDC_ADDRESS,
44
+ * PROPORTION_FORWARDER_ADDRESS, PROPORTION_CHALLENGE_FACTORY_ADDRESS,
45
+ * PROPORTION_CHALLENGE_VAULT_ADDRESS, PROPORTION_CHALLENGE_ORACLE_ADDRESS
22
46
  */
23
47
  static async create(config) {
24
48
  const resolved = { ...config.addresses };
@@ -30,38 +54,63 @@ export class ProportionSDK {
30
54
  resolved.FACTORY = env.PROPORTION_FACTORY_ADDRESS;
31
55
  if (!resolved.USDC && env?.PROPORTION_USDC_ADDRESS)
32
56
  resolved.USDC = env.PROPORTION_USDC_ADDRESS;
57
+ if (!resolved.FORWARDER && env?.PROPORTION_FORWARDER_ADDRESS)
58
+ resolved.FORWARDER = env.PROPORTION_FORWARDER_ADDRESS;
59
+ if (!resolved.CHALLENGE_FACTORY && env?.PROPORTION_CHALLENGE_FACTORY_ADDRESS) {
60
+ resolved.CHALLENGE_FACTORY = env.PROPORTION_CHALLENGE_FACTORY_ADDRESS;
61
+ }
62
+ if (!resolved.CHALLENGE_VAULT && env?.PROPORTION_CHALLENGE_VAULT_ADDRESS) {
63
+ resolved.CHALLENGE_VAULT = env.PROPORTION_CHALLENGE_VAULT_ADDRESS;
64
+ }
65
+ if (!resolved.CHALLENGE_PRICE_ORACLE && env?.PROPORTION_CHALLENGE_ORACLE_ADDRESS) {
66
+ resolved.CHALLENGE_PRICE_ORACLE = env.PROPORTION_CHALLENGE_ORACLE_ADDRESS;
67
+ }
33
68
  if (!resolved.MAIN_VAULT)
34
69
  resolved.MAIN_VAULT = ADDRESSES.MAIN_VAULT;
35
70
  const publicClient = createPublicClient({
36
71
  chain: hyperEvm,
37
72
  transport: http(config.rpcUrl ?? hyperEvm.rpcUrls.default.http[0]),
73
+ batch: { multicall: true },
38
74
  });
39
- if (resolved.MAIN_VAULT && (!resolved.FACTORY || !resolved.USDC)) {
75
+ // Resolve missing on-chain addresses in one multicall (funded + challenge roots).
76
+ // allowFailure: each field falls back independently (indexer/lazy resolvers below).
77
+ // CHALLENGE_VAULT/CHALLENGE_PRICE_ORACLE are only looked up here when a CHALLENGE_FACTORY
78
+ // was pinned via config/ENV — otherwise there is no factory address to query them from yet,
79
+ // and they fall through to ChallengeVaultModule/ChallengePricesModule's lazy resolvers
80
+ // (which wait on the indexer-resolved factory).
81
+ const mainVault = resolved.MAIN_VAULT;
82
+ const challengeFactory = resolved.CHALLENGE_FACTORY;
83
+ const lookups = [];
84
+ if (!resolved.FACTORY)
85
+ lookups.push({ key: "FACTORY", contract: { address: mainVault, abi: mainVaultAbi, functionName: "factory" } });
86
+ if (!resolved.USDC)
87
+ lookups.push({ key: "USDC", contract: { address: mainVault, abi: mainVaultAbi, functionName: "usdc" } });
88
+ if (!resolved.FORWARDER)
89
+ lookups.push({ key: "FORWARDER", contract: { address: mainVault, abi: mainVaultAbi, functionName: "forwarder" } });
90
+ if (challengeFactory && !resolved.CHALLENGE_VAULT) {
91
+ lookups.push({ key: "CHALLENGE_VAULT", contract: { address: challengeFactory, abi: challengeFactoryAbi, functionName: "vault" } });
92
+ }
93
+ if (challengeFactory && !resolved.CHALLENGE_PRICE_ORACLE) {
94
+ lookups.push({ key: "CHALLENGE_PRICE_ORACLE", contract: { address: challengeFactory, abi: challengeFactoryAbi, functionName: "oracle" } });
95
+ }
96
+ if (lookups.length > 0) {
40
97
  try {
41
- const [factory, usdc] = await Promise.all([
42
- resolved.FACTORY
43
- ? Promise.resolve(resolved.FACTORY)
44
- : publicClient.readContract({
45
- address: resolved.MAIN_VAULT,
46
- abi: mainVaultAbi,
47
- functionName: "factory",
48
- }),
49
- resolved.USDC
50
- ? Promise.resolve(resolved.USDC)
51
- : publicClient.readContract({
52
- address: resolved.MAIN_VAULT,
53
- abi: mainVaultAbi,
54
- functionName: "usdc",
55
- }),
56
- ]);
57
- resolved.FACTORY = factory;
58
- resolved.USDC = usdc;
98
+ const results = (await publicClient.multicall({
99
+ contracts: lookups.map((l) => l.contract),
100
+ allowFailure: true,
101
+ }));
102
+ for (let i = 0; i < lookups.length; i++) {
103
+ const r = results[i];
104
+ if (r.status === "success")
105
+ resolved[lookups[i].key] = r.result;
106
+ }
59
107
  }
60
- catch { /* fall back to indexer/constants below */ }
108
+ catch { /* fall back to indexer/lazy resolvers below */ }
61
109
  }
62
- // Fetch missing addresses from the indexer only as a convenience fallback.
63
- // Primary dynamic source for factory/usdc is MainVault RPC.
64
- if (!resolved.MAIN_VAULT || !resolved.FACTORY) {
110
+ // Indexer ProtocolConfig as a convenience fallback. For MAIN_VAULT/FACTORY it stays LAST
111
+ // (MainVault RPC is the primary dynamic source). For CHALLENGE_FACTORY it is the only
112
+ // dynamic source — there is no on-chain root to read it from and no hardcoded default.
113
+ if (!resolved.MAIN_VAULT || !resolved.FACTORY || !resolved.CHALLENGE_FACTORY) {
65
114
  try {
66
115
  const indexer = new IndexerModule(config.graphqlUrl, undefined, {
67
116
  fetchFn: config.fetchFn,
@@ -73,31 +122,28 @@ export class ProportionSDK {
73
122
  resolved.MAIN_VAULT = protocol.vaultAddress;
74
123
  if (!resolved.FACTORY && protocol.factoryAddress)
75
124
  resolved.FACTORY = protocol.factoryAddress;
125
+ if (!resolved.CHALLENGE_FACTORY && protocol.challengeFactoryAddress) {
126
+ resolved.CHALLENGE_FACTORY = protocol.challengeFactoryAddress;
127
+ }
76
128
  }
77
129
  }
78
- catch { /* fall back to hardcoded constants */ }
79
- }
80
- if (resolved.MAIN_VAULT && !resolved.USDC) {
81
- try {
82
- resolved.USDC = await publicClient.readContract({
83
- address: resolved.MAIN_VAULT,
84
- abi: mainVaultAbi,
85
- functionName: "usdc",
86
- });
87
- }
88
- catch { /* fall back to hardcoded constants */ }
130
+ catch { /* fall back to lazy resolvers in the constructor */ }
89
131
  }
90
132
  return new ProportionSDK({ ...config, addresses: resolved });
91
133
  }
92
134
  constructor(config) {
135
+ // batch.multicall coalesces concurrent readContract calls (across ALL modules) into
136
+ // single multicall3 eth_calls — one RPC request instead of N for parallel reads.
93
137
  const publicClient = createPublicClient({
94
138
  chain: hyperEvm,
95
139
  transport: http(config.rpcUrl ?? hyperEvm.rpcUrls.default.http[0]),
140
+ batch: { multicall: true },
96
141
  });
97
142
  const addresses = {
98
143
  vault: (config.addresses?.MAIN_VAULT ?? ADDRESSES.MAIN_VAULT),
99
144
  usdc: (config.addresses?.USDC ?? ADDRESSES.USDC),
100
145
  factory: config.addresses?.FACTORY,
146
+ forwarder: (config.addresses?.FORWARDER ?? ADDRESSES.FORWARDER),
101
147
  };
102
148
  this.vault = new VaultModule(publicClient, config.walletClient, hyperEvm, {
103
149
  vault: addresses.vault,
@@ -110,10 +156,51 @@ export class ProportionSDK {
110
156
  abi: mainVaultAbi,
111
157
  functionName: "factory",
112
158
  })));
159
+ this.forwarder = new ForwarderModule(publicClient, config.walletClient, hyperEvm, addresses.forwarder);
113
160
  this.indexer = new IndexerModule(config.graphqlUrl, config.graphqlWsUrl, {
114
161
  fetchFn: config.fetchFn,
115
162
  webSocketCtor: config.webSocketCtor,
116
163
  });
164
+ // ── Challenge / B-book ──
165
+ // CHALLENGE_FACTORY has no hardcoded fallback (see constants.ts — it has already moved
166
+ // twice in ten days). Resolution: config.addresses > ENV > the indexer's
167
+ // ProtocolConfig.challengeFactoryAddress, the last one resolved lazily (only on the first
168
+ // actual challenge.* call) so funded-only consumers never pay for it or need it set.
169
+ const envChallengeFactory = typeof process !== "undefined" ? process.env?.PROPORTION_CHALLENGE_FACTORY_ADDRESS : undefined;
170
+ const challengeFactoryResolver = config.addresses?.CHALLENGE_FACTORY ??
171
+ envChallengeFactory ??
172
+ (async () => {
173
+ const protocol = await this.indexer.getProtocolConfig();
174
+ if (protocol?.challengeFactoryAddress)
175
+ return protocol.challengeFactoryAddress;
176
+ throw new Error("CHALLENGE_FACTORY address is not configured. Set config.addresses.CHALLENGE_FACTORY, " +
177
+ "the PROPORTION_CHALLENGE_FACTORY_ADDRESS env var, or ensure the indexer's " +
178
+ "ProtocolConfig.challengeFactoryAddress is populated.");
179
+ });
180
+ this.challengeFactory = new ChallengeFactoryModule(publicClient, config.walletClient, hyperEvm, challengeFactoryResolver);
181
+ this.challenge = new ChallengeAccountModule(publicClient, config.walletClient, hyperEvm);
182
+ this.challengeIntents = new ChallengeIntentsModule(publicClient, config.walletClient, hyperEvm);
183
+ this.challengeVault = new ChallengeVaultModule(publicClient, config.walletClient, hyperEvm, config.addresses?.CHALLENGE_VAULT ??
184
+ (async () => {
185
+ const factoryAddress = await this.challengeFactory.getAddress();
186
+ return publicClient.readContract({
187
+ address: factoryAddress,
188
+ abi: challengeFactoryAbi,
189
+ functionName: "vault",
190
+ });
191
+ }), addresses.usdc);
192
+ this.prices = new ChallengePricesModule(publicClient, config.addresses?.CHALLENGE_PRICE_ORACLE ??
193
+ (async () => {
194
+ const factoryAddress = await this.challengeFactory.getAddress();
195
+ return publicClient.readContract({
196
+ address: factoryAddress,
197
+ abi: challengeFactoryAbi,
198
+ functionName: "oracle",
199
+ });
200
+ }));
201
+ if (config.challengeApiUrl) {
202
+ this.challengeApi = new ChallengeApiClient(config.challengeApiUrl, config.fetchFn);
203
+ }
117
204
  }
118
205
  disconnect() {
119
206
  this.indexer.disconnect();