@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.
- package/dist/abi/challengeAccount.d.ts +1855 -0
- package/dist/abi/challengeAccount.d.ts.map +1 -0
- package/dist/abi/challengeAccount.js +2365 -0
- package/dist/abi/challengeAccount.js.map +1 -0
- package/dist/abi/challengeFactory.d.ts +1351 -0
- package/dist/abi/challengeFactory.d.ts.map +1 -0
- package/dist/abi/challengeFactory.js +1727 -0
- package/dist/abi/challengeFactory.js.map +1 -0
- package/dist/abi/challengeVault.d.ts +1392 -0
- package/dist/abi/challengeVault.d.ts.map +1 -0
- package/dist/abi/challengeVault.js +1793 -0
- package/dist/abi/challengeVault.js.map +1 -0
- package/dist/abi/factory.d.ts +4 -0
- package/dist/abi/factory.d.ts.map +1 -1
- package/dist/abi/factory.js +5 -0
- package/dist/abi/factory.js.map +1 -1
- package/dist/abi/fundedAccount.d.ts +49 -10
- package/dist/abi/fundedAccount.d.ts.map +1 -1
- package/dist/abi/fundedAccount.js +62 -13
- package/dist/abi/fundedAccount.js.map +1 -1
- package/dist/abi/mainVault.d.ts +409 -20
- package/dist/abi/mainVault.d.ts.map +1 -1
- package/dist/abi/mainVault.js +523 -20
- package/dist/abi/mainVault.js.map +1 -1
- package/dist/abi/priceOracle.d.ts +497 -0
- package/dist/abi/priceOracle.d.ts.map +1 -0
- package/dist/abi/priceOracle.js +644 -0
- package/dist/abi/priceOracle.js.map +1 -0
- package/dist/account.d.ts.map +1 -1
- package/dist/account.js +6 -0
- package/dist/account.js.map +1 -1
- package/dist/challenge/account.d.ts +95 -0
- package/dist/challenge/account.d.ts.map +1 -0
- package/dist/challenge/account.js +375 -0
- package/dist/challenge/account.js.map +1 -0
- package/dist/challenge/api.d.ts +49 -0
- package/dist/challenge/api.d.ts.map +1 -0
- package/dist/challenge/api.js +173 -0
- package/dist/challenge/api.js.map +1 -0
- package/dist/challenge/factory.d.ts +165 -0
- package/dist/challenge/factory.d.ts.map +1 -0
- package/dist/challenge/factory.js +392 -0
- package/dist/challenge/factory.js.map +1 -0
- package/dist/challenge/intents.d.ts +137 -0
- package/dist/challenge/intents.d.ts.map +1 -0
- package/dist/challenge/intents.js +218 -0
- package/dist/challenge/intents.js.map +1 -0
- package/dist/challenge/oracle.d.ts +50 -0
- package/dist/challenge/oracle.d.ts.map +1 -0
- package/dist/challenge/oracle.js +117 -0
- package/dist/challenge/oracle.js.map +1 -0
- package/dist/challenge/types.d.ts +652 -0
- package/dist/challenge/types.d.ts.map +1 -0
- package/dist/challenge/types.js +64 -0
- package/dist/challenge/types.js.map +1 -0
- package/dist/challenge/vault.d.ts +87 -0
- package/dist/challenge/vault.d.ts.map +1 -0
- package/dist/challenge/vault.js +299 -0
- package/dist/challenge/vault.js.map +1 -0
- package/dist/constants.d.ts +7 -3
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +21 -3
- package/dist/constants.js.map +1 -1
- package/dist/factory.d.ts +1 -1
- package/dist/factory.d.ts.map +1 -1
- package/dist/factory.js +12 -0
- package/dist/factory.js.map +1 -1
- package/dist/forwarder.d.ts +58 -0
- package/dist/forwarder.d.ts.map +1 -0
- package/dist/forwarder.js +145 -0
- package/dist/forwarder.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -1
- package/dist/indexer.d.ts +52 -0
- package/dist/indexer.d.ts.map +1 -1
- package/dist/indexer.js +219 -4
- package/dist/indexer.js.map +1 -1
- package/dist/sdk.d.ts +23 -1
- package/dist/sdk.d.ts.map +1 -1
- package/dist/sdk.js +122 -35
- package/dist/sdk.js.map +1 -1
- package/dist/types.d.ts +50 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utils.d.ts +35 -2
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +86 -7
- package/dist/utils.js.map +1 -1
- package/dist/vault.d.ts +44 -4
- package/dist/vault.d.ts.map +1 -1
- package/dist/vault.js +143 -9
- package/dist/vault.js.map +1 -1
- 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
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
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);
|
package/dist/indexer.js.map
CHANGED
|
@@ -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;
|
|
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
|
-
|
|
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
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
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/
|
|
108
|
+
catch { /* fall back to indexer/lazy resolvers below */ }
|
|
61
109
|
}
|
|
62
|
-
//
|
|
63
|
-
//
|
|
64
|
-
|
|
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
|
|
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();
|