@antseed/node 0.2.84 → 0.2.86
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/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/node.d.ts +1 -0
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +21 -2
- package/dist/node.js.map +1 -1
- package/dist/payments/buyer-payment-manager.d.ts +4 -0
- package/dist/payments/buyer-payment-manager.d.ts.map +1 -1
- package/dist/payments/buyer-payment-manager.js +107 -91
- package/dist/payments/buyer-payment-manager.js.map +1 -1
- package/dist/payments/chain-config.d.ts +2 -0
- package/dist/payments/chain-config.d.ts.map +1 -1
- package/dist/payments/chain-config.js +3 -1
- package/dist/payments/chain-config.js.map +1 -1
- package/dist/payments/evm/emissions-client.d.ts +1 -0
- package/dist/payments/evm/emissions-client.d.ts.map +1 -1
- package/dist/payments/evm/emissions-client.js +6 -0
- package/dist/payments/evm/emissions-client.js.map +1 -1
- package/dist/payments/seller-payment-manager.d.ts +36 -5
- package/dist/payments/seller-payment-manager.d.ts.map +1 -1
- package/dist/payments/seller-payment-manager.js +179 -24
- package/dist/payments/seller-payment-manager.js.map +1 -1
- package/dist/reputation/on-chain-reputation.d.ts +46 -35
- package/dist/reputation/on-chain-reputation.d.ts.map +1 -1
- package/dist/reputation/on-chain-reputation.js +174 -67
- package/dist/reputation/on-chain-reputation.js.map +1 -1
- package/dist/seller-request-handler.d.ts.map +1 -1
- package/dist/seller-request-handler.js +7 -3
- package/dist/seller-request-handler.js.map +1 -1
- package/dist/types/peer.d.ts +13 -26
- package/dist/types/peer.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seller-payment-manager.d.ts","sourceRoot":"","sources":["../../src/payments/seller-payment-manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EACV,mBAAmB,EACnB,sBAAsB,EACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAU1D,OAAO,EAAE,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGtE,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,uBAAuB,EAAE,MAAM,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,uEAAuE;IACvE,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,2EAA2E;IAC3E,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAKD,wDAAwD;AACxD,eAAO,MAAM,4BAA4B,SAAS,CAAC;AAWnD;;;;;GAKG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAC9C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAC7C;;;;6EAIyE;IACzE,OAAO,CAAC,kBAAkB,CAKT;IACjB
|
|
1
|
+
{"version":3,"file":"seller-payment-manager.d.ts","sourceRoot":"","sources":["../../src/payments/seller-payment-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,8 +26,14 @@ export class SellerPaymentManager {
|
|
|
26
26
|
* this resolves to the underlying channels contract via the facade's
|
|
27
27
|
* `channelsAddress()` view. Otherwise equals the configured address. */
|
|
28
28
|
_resolvedAddresses = null;
|
|
29
|
-
/**
|
|
29
|
+
/**
|
|
30
|
+
* In-memory cache of buyer peerIds with an active payment session. Hydrated
|
|
31
|
+
* sessions are included for existing hasSession() semantics; `_hydratedChannelIds`
|
|
32
|
+
* lets timeout cleanup distinguish restart-only zero-auth zombies.
|
|
33
|
+
*/
|
|
30
34
|
_activeBuyers = new Set();
|
|
35
|
+
/** Channels restored from disk before the buyer has proven it reconnected. */
|
|
36
|
+
_hydratedChannelIds = new Set();
|
|
31
37
|
/** Per-buyer mutex to prevent concurrent handleSpendingAuth for the same buyer. */
|
|
32
38
|
_buyerLocks = new Map();
|
|
33
39
|
/** channelId -> highest accepted cumulativeAmount from buyer's SpendingAuth */
|
|
@@ -49,6 +55,12 @@ export class SellerPaymentManager {
|
|
|
49
55
|
_acceptedWaiters = new Map();
|
|
50
56
|
/** channelId -> number of failed close() attempts. In-memory only; resets on node restart. */
|
|
51
57
|
_closeRetryCount = new Map();
|
|
58
|
+
/** channelId -> deferred topUp params when on-chain topUp failed (e.g. TopUpThresholdNotMet).
|
|
59
|
+
* Retried after the next SpendingAuth raises the settle amount high enough.
|
|
60
|
+
* Latest / largest top-up intent wins: if multiple deferred ReserveAuths arrive
|
|
61
|
+
* before a retry succeeds, we keep the most recent higher ceiling because it
|
|
62
|
+
* subsumes the older request. */
|
|
63
|
+
_pendingTopUp = new Map();
|
|
52
64
|
/** channelIds with an in-flight close() tx/estimate. Prevents duplicate close submissions. */
|
|
53
65
|
_closingChannels = new Set();
|
|
54
66
|
/** channelId -> cumulative amount last successfully settled on-chain by this
|
|
@@ -88,6 +100,7 @@ export class SellerPaymentManager {
|
|
|
88
100
|
const activeChannels = this._channelStore.getActiveChannels('seller');
|
|
89
101
|
for (const channel of activeChannels) {
|
|
90
102
|
this._activeBuyers.add(channel.peerId);
|
|
103
|
+
this._hydratedChannelIds.add(channel.sessionId);
|
|
91
104
|
this._acceptedCumulative.set(channel.sessionId, BigInt(channel.authMax));
|
|
92
105
|
this._spent.set(channel.sessionId, BigInt(channel.tokensDelivered));
|
|
93
106
|
// Hydrate reserveMax from previousConsumption (repurposed field)
|
|
@@ -164,12 +177,41 @@ export class SellerPaymentManager {
|
|
|
164
177
|
this._latestAuth.delete(channelId);
|
|
165
178
|
this._closeRetryCount.delete(channelId);
|
|
166
179
|
this._closingChannels.delete(channelId);
|
|
180
|
+
this._hydratedChannelIds.delete(channelId);
|
|
167
181
|
this._reserveMax.delete(channelId);
|
|
182
|
+
this._pendingTopUp.delete(channelId);
|
|
168
183
|
this._lastSettledCumulative.delete(channelId);
|
|
169
184
|
this._releaseAcceptedWaiters(channelId);
|
|
170
185
|
this._activeBuyers.delete(peerId);
|
|
171
186
|
debugLog(`[SellerPayment] Evicted stale channel ${channelId.slice(0, 18)}... — ${reason}`);
|
|
172
187
|
}
|
|
188
|
+
/**
|
|
189
|
+
* Restore a persisted SpendingAuth after in-memory cleanup. This prevents the
|
|
190
|
+
* timeout checker from mistaking an active channel with a durable signed auth
|
|
191
|
+
* for a zero-auth zombie and closing it at the already-settled amount.
|
|
192
|
+
*/
|
|
193
|
+
_restorePersistedSpendingAuth(channel) {
|
|
194
|
+
const persistedCumulative = BigInt(channel.authMax || '0');
|
|
195
|
+
if (persistedCumulative <= 0n || !channel.latestSpendingAuthSig) {
|
|
196
|
+
return null;
|
|
197
|
+
}
|
|
198
|
+
this._acceptedCumulative.set(channel.sessionId, persistedCumulative);
|
|
199
|
+
this._latestAuth.set(channel.sessionId, {
|
|
200
|
+
spendingAuthSig: channel.latestSpendingAuthSig,
|
|
201
|
+
cumulativeAmount: persistedCumulative,
|
|
202
|
+
metadataHash: '',
|
|
203
|
+
metadata: channel.latestMetadata ?? '',
|
|
204
|
+
});
|
|
205
|
+
this._spent.set(channel.sessionId, BigInt(channel.tokensDelivered || '0'));
|
|
206
|
+
const storedReserveMax = BigInt(channel.previousConsumption || '0');
|
|
207
|
+
if (storedReserveMax > 0n) {
|
|
208
|
+
this._reserveMax.set(channel.sessionId, storedReserveMax);
|
|
209
|
+
}
|
|
210
|
+
this._hydratedChannelIds.delete(channel.sessionId);
|
|
211
|
+
this._notifyAcceptedUpdate(channel.sessionId, persistedCumulative);
|
|
212
|
+
debugLog(`[SellerPayment] Restored persisted SpendingAuth for ${channel.sessionId.slice(0, 18)}... cumulative=${persistedCumulative}`);
|
|
213
|
+
return persistedCumulative;
|
|
214
|
+
}
|
|
173
215
|
/**
|
|
174
216
|
* Block until `acceptedCumulative(channelId)` reaches `target`, or `timeoutMs`
|
|
175
217
|
* elapses. Returns true if the target was reached, false on timeout. Used by
|
|
@@ -374,17 +416,33 @@ export class SellerPaymentManager {
|
|
|
374
416
|
// Call topUp() on-chain — includes settle of current cumulative spend
|
|
375
417
|
const { amount: settleAmount, metadata: settleMetadata, sig: settleSig } = this._getSettleParams(channelId);
|
|
376
418
|
debugLog(`[SellerPayment] Top-up verified: channel=${channelId.slice(0, 18)}... ceiling ${currentReserveMax} → ${newMaxAmount} (settling cumulative=${settleAmount})`);
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
session
|
|
383
|
-
session
|
|
384
|
-
|
|
385
|
-
|
|
419
|
+
try {
|
|
420
|
+
await this._channelsClient.topUp(this._signer, channelId, settleAmount, settleMetadata, settleSig, newMaxAmount, BigInt(topUpDeadline), payload.spendingAuthSig);
|
|
421
|
+
// Update tracking
|
|
422
|
+
this._hydratedChannelIds.delete(channelId);
|
|
423
|
+
this._reserveMax.set(channelId, newMaxAmount);
|
|
424
|
+
const session = this._channelStore.getChannel(channelId);
|
|
425
|
+
if (session) {
|
|
426
|
+
session.previousConsumption = newMaxAmount.toString(); // repurposed: stores reserveMax
|
|
427
|
+
session.deadline = topUpDeadline;
|
|
428
|
+
session.updatedAt = Date.now();
|
|
429
|
+
this._channelStore.upsertChannel(session);
|
|
430
|
+
}
|
|
431
|
+
debugLog(`[SellerPayment] Top-up completed: channel=${channelId.slice(0, 18)}... new ceiling=${newMaxAmount}`);
|
|
432
|
+
}
|
|
433
|
+
catch (topUpErr) {
|
|
434
|
+
// On-chain topUp can fail (e.g. TopUpThresholdNotMet if not enough
|
|
435
|
+
// has been settled yet). Store the pending top-up so it can be
|
|
436
|
+
// retried after a subsequent SpendingAuth raises the settle amount.
|
|
437
|
+
debugWarn(`[SellerPayment] Top-up on-chain failed: channel=${channelId.slice(0, 18)}... ` +
|
|
438
|
+
`error=${topUpErr instanceof Error ? topUpErr.message : topUpErr} — ` +
|
|
439
|
+
`deferring topUp (will retry after next SpendingAuth)`);
|
|
440
|
+
this._pendingTopUp.set(channelId, {
|
|
441
|
+
newMaxAmount,
|
|
442
|
+
deadline: topUpDeadline,
|
|
443
|
+
reserveAuthSig: payload.spendingAuthSig,
|
|
444
|
+
});
|
|
386
445
|
}
|
|
387
|
-
debugLog(`[SellerPayment] Top-up completed: channel=${channelId.slice(0, 18)}... new ceiling=${newMaxAmount}`);
|
|
388
446
|
return 'accepted';
|
|
389
447
|
}
|
|
390
448
|
else {
|
|
@@ -418,13 +476,21 @@ export class SellerPaymentManager {
|
|
|
418
476
|
}
|
|
419
477
|
// Reject if cumulative exceeds on-chain deposit — the contract would revert
|
|
420
478
|
// and we'd lose the last valid auth signature that close() could use.
|
|
479
|
+
// Exception: if there's a pending topUp that would raise the ceiling high
|
|
480
|
+
// enough, accept the SpendingAuth (the topUp will be retried after).
|
|
421
481
|
const currentReserveMax = this._reserveMax.get(channelId) ?? 0n;
|
|
422
|
-
|
|
482
|
+
const pendingTopUpForCheck = this._pendingTopUp.get(channelId);
|
|
483
|
+
const effectiveMax = pendingTopUpForCheck
|
|
484
|
+
? (pendingTopUpForCheck.newMaxAmount > currentReserveMax ? pendingTopUpForCheck.newMaxAmount : currentReserveMax)
|
|
485
|
+
: currentReserveMax;
|
|
486
|
+
if (effectiveMax > 0n && cumulativeAmount > effectiveMax) {
|
|
423
487
|
debugWarn(`[SellerPayment] Rejecting SpendingAuth exceeding deposit ceiling: ` +
|
|
424
|
-
`cumulative=${cumulativeAmount} > reserveMax=${currentReserveMax}
|
|
488
|
+
`cumulative=${cumulativeAmount} > reserveMax=${currentReserveMax}` +
|
|
489
|
+
`${pendingTopUpForCheck ? ` (pending topUp to ${pendingTopUpForCheck.newMaxAmount})` : ''} channel=${channelId.slice(0, 18)}...`);
|
|
425
490
|
return 'rejected';
|
|
426
491
|
}
|
|
427
492
|
// Update tracking
|
|
493
|
+
this._hydratedChannelIds.delete(channelId);
|
|
428
494
|
this._acceptedCumulative.set(channelId, cumulativeAmount);
|
|
429
495
|
this._latestAuth.set(channelId, {
|
|
430
496
|
spendingAuthSig: payload.spendingAuthSig,
|
|
@@ -444,6 +510,31 @@ export class SellerPaymentManager {
|
|
|
444
510
|
this._channelStore.upsertChannel(session);
|
|
445
511
|
}
|
|
446
512
|
debugLog(`[SellerPayment] Budget updated: channel=${channelId.slice(0, 18)}... cumulative=${cumulativeAmount}`);
|
|
513
|
+
// Retry any deferred topUp now that we have a higher settle amount
|
|
514
|
+
const pendingTopUp = this._pendingTopUp.get(channelId);
|
|
515
|
+
if (pendingTopUp) {
|
|
516
|
+
this._pendingTopUp.delete(channelId);
|
|
517
|
+
const { amount: retrySettleAmount, metadata: retryMetadata, sig: retrySig } = this._getSettleParams(channelId);
|
|
518
|
+
debugLog(`[SellerPayment] Retrying deferred topUp: channel=${channelId.slice(0, 18)}... settling=${retrySettleAmount} newMax=${pendingTopUp.newMaxAmount}`);
|
|
519
|
+
try {
|
|
520
|
+
await this._channelsClient.topUp(this._signer, channelId, retrySettleAmount, retryMetadata, retrySig, pendingTopUp.newMaxAmount, BigInt(pendingTopUp.deadline), pendingTopUp.reserveAuthSig);
|
|
521
|
+
this._reserveMax.set(channelId, pendingTopUp.newMaxAmount);
|
|
522
|
+
const topUpSession = this._channelStore.getChannel(channelId);
|
|
523
|
+
if (topUpSession) {
|
|
524
|
+
topUpSession.previousConsumption = pendingTopUp.newMaxAmount.toString();
|
|
525
|
+
topUpSession.deadline = pendingTopUp.deadline;
|
|
526
|
+
topUpSession.updatedAt = Date.now();
|
|
527
|
+
this._channelStore.upsertChannel(topUpSession);
|
|
528
|
+
}
|
|
529
|
+
debugLog(`[SellerPayment] Deferred topUp succeeded: channel=${channelId.slice(0, 18)}... new ceiling=${pendingTopUp.newMaxAmount}`);
|
|
530
|
+
}
|
|
531
|
+
catch (retryErr) {
|
|
532
|
+
debugWarn(`[SellerPayment] Deferred topUp retry failed: channel=${channelId.slice(0, 18)}... ` +
|
|
533
|
+
`error=${retryErr instanceof Error ? retryErr.message : retryErr}`);
|
|
534
|
+
// Re-queue for next attempt
|
|
535
|
+
this._pendingTopUp.set(channelId, pendingTopUp);
|
|
536
|
+
}
|
|
537
|
+
}
|
|
447
538
|
return 'accepted';
|
|
448
539
|
}
|
|
449
540
|
}
|
|
@@ -512,6 +603,7 @@ export class SellerPaymentManager {
|
|
|
512
603
|
}
|
|
513
604
|
_activateSession(session, buyerPeerId, cumulativeAmount, reserveMaxAmount, spent, latestAuth) {
|
|
514
605
|
this._channelStore.upsertChannel(session);
|
|
606
|
+
this._hydratedChannelIds.delete(session.sessionId);
|
|
515
607
|
this._acceptedCumulative.set(session.sessionId, cumulativeAmount);
|
|
516
608
|
this._reserveMax.set(session.sessionId, reserveMaxAmount);
|
|
517
609
|
this._spent.set(session.sessionId, spent);
|
|
@@ -562,6 +654,7 @@ export class SellerPaymentManager {
|
|
|
562
654
|
debugWarn(`[SellerPayment] validateAndAcceptAuth: cumulative decreased from ${existingCumulative} to ${newCumulative}`);
|
|
563
655
|
return false;
|
|
564
656
|
}
|
|
657
|
+
this._hydratedChannelIds.delete(channelId);
|
|
565
658
|
// Update if strictly greater
|
|
566
659
|
if (newCumulative > existingCumulative) {
|
|
567
660
|
this._acceptedCumulative.set(channelId, newCumulative);
|
|
@@ -723,6 +816,7 @@ export class SellerPaymentManager {
|
|
|
723
816
|
this._closeRetryCount.delete(channelId);
|
|
724
817
|
this._closingChannels.delete(channelId);
|
|
725
818
|
this._lastSettledCumulative.delete(channelId);
|
|
819
|
+
this._hydratedChannelIds.delete(channelId);
|
|
726
820
|
this._releaseAcceptedWaiters(channelId);
|
|
727
821
|
this._activeBuyers.delete(buyerPeerId);
|
|
728
822
|
}
|
|
@@ -750,17 +844,22 @@ export class SellerPaymentManager {
|
|
|
750
844
|
// ── Stale session cleanup ────────────────────────────────────
|
|
751
845
|
/**
|
|
752
846
|
* Check for stale sessions and attempt to close them.
|
|
753
|
-
*
|
|
754
|
-
*
|
|
755
|
-
*
|
|
756
|
-
*
|
|
847
|
+
* - Channels with a buyer SpendingAuth go through `settleSession()`.
|
|
848
|
+
* - Zombie channels (buyer gone, no auth, deadline elapsed) can be closed
|
|
849
|
+
* on-chain with `finalAmount == channel.settled`, which intentionally
|
|
850
|
+
* skips SpendingAuth verification and lets the seller release the lock,
|
|
851
|
+
* decrement activeChannelCount, and advance channel stats without buyer
|
|
852
|
+
* cooperation.
|
|
757
853
|
* Called periodically and on startup for recovery.
|
|
758
854
|
*/
|
|
759
855
|
async checkTimeouts() {
|
|
760
856
|
const nowSecs = Math.floor(Date.now() / 1000);
|
|
761
857
|
const activeChannels = this._channelStore.getActiveChannels('seller');
|
|
762
858
|
for (const channel of activeChannels) {
|
|
763
|
-
|
|
859
|
+
let accepted = this._acceptedCumulative.get(channel.sessionId) ?? 0n;
|
|
860
|
+
if (accepted === 0n) {
|
|
861
|
+
accepted = this._restorePersistedSpendingAuth(channel) ?? accepted;
|
|
862
|
+
}
|
|
764
863
|
try {
|
|
765
864
|
// Validate on-chain state — evict if channel no longer exists
|
|
766
865
|
const onChainState = classifyOnChainChannel(await this._channelsClient.getSession(channel.sessionId));
|
|
@@ -768,16 +867,28 @@ export class SellerPaymentManager {
|
|
|
768
867
|
this._evictStaleChannel(channel.sessionId, channel.peerId, `periodic check: on-chain status=${onChainState.exists ? onChainState.status : 'missing'}`);
|
|
769
868
|
continue;
|
|
770
869
|
}
|
|
870
|
+
const buyerDisconnected = !this._activeBuyers.has(channel.peerId);
|
|
871
|
+
const hydratedZeroAuthExpired = accepted === 0n
|
|
872
|
+
&& this._hydratedChannelIds.has(channel.sessionId)
|
|
873
|
+
&& nowSecs > channel.deadline;
|
|
771
874
|
// If we have auths and the buyer is disconnected, try to close
|
|
772
|
-
if (accepted > 0n &&
|
|
875
|
+
if (accepted > 0n && buyerDisconnected) {
|
|
773
876
|
debugLog(`[SellerPayment] Channel ${channel.sessionId.slice(0, 18)}... buyer disconnected — attempting close`);
|
|
774
877
|
await this.settleSession(channel.peerId);
|
|
878
|
+
continue;
|
|
775
879
|
}
|
|
776
|
-
//
|
|
777
|
-
//
|
|
778
|
-
//
|
|
779
|
-
|
|
780
|
-
|
|
880
|
+
// No auths, buyer gone, deadline elapsed: close with the current
|
|
881
|
+
// on-chain settled amount. The contract skips signature verification
|
|
882
|
+
// when finalAmount == settled, so this safely cleans up zombie
|
|
883
|
+
// channels without claiming any unproven spend.
|
|
884
|
+
if (accepted === 0n && (buyerDisconnected || hydratedZeroAuthExpired) && nowSecs > channel.deadline) {
|
|
885
|
+
if (onChainState.status !== 'active') {
|
|
886
|
+
// 'unknown' means the RPC returned partial data. Evict locally
|
|
887
|
+
// rather than risking a close() against an ambiguous channel.
|
|
888
|
+
this._evictStaleChannel(channel.sessionId, channel.peerId, 'no auths, past deadline, on-chain status unknown', 'timeout');
|
|
889
|
+
continue;
|
|
890
|
+
}
|
|
891
|
+
await this._closeWithoutAuth(channel.sessionId, channel.peerId, onChainState.channel.settled);
|
|
781
892
|
}
|
|
782
893
|
}
|
|
783
894
|
catch (err) {
|
|
@@ -785,6 +896,38 @@ export class SellerPaymentManager {
|
|
|
785
896
|
}
|
|
786
897
|
}
|
|
787
898
|
}
|
|
899
|
+
/**
|
|
900
|
+
* Close a zombie channel (buyer gone, no signed auth) using the current
|
|
901
|
+
* on-chain settled cumulative as finalAmount. This intentionally settles no
|
|
902
|
+
* additional spend, but still marks the channel closed and releases the
|
|
903
|
+
* remaining reserved deposit back to the buyer.
|
|
904
|
+
*/
|
|
905
|
+
async _closeWithoutAuth(channelId, peerId, onChainSettled) {
|
|
906
|
+
if (this._closingChannels.has(channelId)) {
|
|
907
|
+
debugLog(`[SellerPayment] Close already in flight for ${channelId.slice(0, 18)}... — skipping zombie close`);
|
|
908
|
+
return;
|
|
909
|
+
}
|
|
910
|
+
const retries = this._closeRetryCount.get(channelId) ?? 0;
|
|
911
|
+
if (retries >= SellerPaymentManager.MAX_CLOSE_RETRIES) {
|
|
912
|
+
debugWarn(`[SellerPayment] Zombie close failed ${retries} times for ${channelId.slice(0, 18)}... — falling back to local eviction`);
|
|
913
|
+
this._evictStaleChannel(channelId, peerId, 'no auths, past deadline, close retries exhausted', 'timeout');
|
|
914
|
+
return;
|
|
915
|
+
}
|
|
916
|
+
this._closingChannels.add(channelId);
|
|
917
|
+
debugLog(`[SellerPayment] Closing zombie channel ${channelId.slice(0, 18)}... finalAmount=${onChainSettled} (attempt ${retries + 1}/${SellerPaymentManager.MAX_CLOSE_RETRIES})`);
|
|
918
|
+
try {
|
|
919
|
+
await this._channelsClient.close(this._signer, channelId, onChainSettled, '0x', '0x');
|
|
920
|
+
this._closeRetryCount.delete(channelId);
|
|
921
|
+
this._evictStaleChannel(channelId, peerId, 'zombie closed on-chain', 'settled');
|
|
922
|
+
}
|
|
923
|
+
catch (err) {
|
|
924
|
+
this._closeRetryCount.set(channelId, retries + 1);
|
|
925
|
+
debugWarn(`[SellerPayment] Zombie close failed (attempt ${retries + 1}): ${err instanceof Error ? err.message : err}`);
|
|
926
|
+
}
|
|
927
|
+
finally {
|
|
928
|
+
this._closingChannels.delete(channelId);
|
|
929
|
+
}
|
|
930
|
+
}
|
|
788
931
|
// ── Queries ───────────────────────────────────────────────────
|
|
789
932
|
hasSession(buyerPeerId) {
|
|
790
933
|
return this._activeBuyers.has(buyerPeerId);
|
|
@@ -805,6 +948,16 @@ export class SellerPaymentManager {
|
|
|
805
948
|
getReserveMax(sessionId) {
|
|
806
949
|
return this._reserveMax.get(sessionId) ?? 0n;
|
|
807
950
|
}
|
|
951
|
+
/** Get the effective reserve max, considering pending (not-yet-on-chain) topUps. */
|
|
952
|
+
getEffectiveReserveMax(sessionId) {
|
|
953
|
+
const onChain = this._reserveMax.get(sessionId) ?? 0n;
|
|
954
|
+
const pending = this._pendingTopUp.get(sessionId);
|
|
955
|
+
return pending && pending.newMaxAmount > onChain ? pending.newMaxAmount : onChain;
|
|
956
|
+
}
|
|
957
|
+
/** Whether a topUp is pending (on-chain call deferred). */
|
|
958
|
+
hasPendingTopUp(sessionId) {
|
|
959
|
+
return this._pendingTopUp.has(sessionId);
|
|
960
|
+
}
|
|
808
961
|
static DEFAULT_SUGGESTED_AMOUNT = 1000000n; // $1.00 — matches contract FIRST_SIGN_CAP and buyer default
|
|
809
962
|
/**
|
|
810
963
|
* Build the PaymentRequired payload for a buyer that doesn't have a session.
|
|
@@ -863,7 +1016,9 @@ export class SellerPaymentManager {
|
|
|
863
1016
|
this._closeRetryCount.delete(channelId);
|
|
864
1017
|
this._closingChannels.delete(channelId);
|
|
865
1018
|
this._reserveMax.delete(channelId);
|
|
1019
|
+
this._pendingTopUp.delete(channelId);
|
|
866
1020
|
this._lastSettledCumulative.delete(channelId);
|
|
1021
|
+
this._hydratedChannelIds.delete(channelId);
|
|
867
1022
|
this._releaseAcceptedWaiters(channelId);
|
|
868
1023
|
// Find and remove buyer from active set
|
|
869
1024
|
const channel = this._channelStore.getChannel(channelId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seller-payment-manager.js","sourceRoot":"","sources":["../../src/payments/seller-payment-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"seller-payment-manager.js","sourceRoot":"","sources":["../../src/payments/seller-payment-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,41 +1,52 @@
|
|
|
1
1
|
import type { PeerInfo } from '../types/peer.js';
|
|
2
|
-
export declare const
|
|
3
|
-
export declare const
|
|
4
|
-
export declare const
|
|
5
|
-
export declare const
|
|
6
|
-
export declare const
|
|
7
|
-
export declare const
|
|
8
|
-
export declare const
|
|
9
|
-
export declare const
|
|
10
|
-
export declare const
|
|
11
|
-
export declare const
|
|
12
|
-
export declare const
|
|
13
|
-
export declare const
|
|
14
|
-
export declare const
|
|
15
|
-
export
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
2
|
+
export declare const ON_CHAIN_TRUST_TICKET_TARGET_USDC = 2;
|
|
3
|
+
export declare const ON_CHAIN_TRUST_TICKET_MIN = 0.5;
|
|
4
|
+
export declare const ON_CHAIN_TRUST_TICKET_MAX = 1.5;
|
|
5
|
+
export declare const ON_CHAIN_TRUST_RECENCY_FRESH_DAYS = 14;
|
|
6
|
+
export declare const ON_CHAIN_TRUST_RECENCY_STALE_DAYS = 60;
|
|
7
|
+
export declare const ON_CHAIN_TRUST_RECENCY_DORMANT_FACTOR = 0.25;
|
|
8
|
+
export declare const ON_CHAIN_TRUST_STAKE_THRESHOLD_USDC = 1;
|
|
9
|
+
export declare const ON_CHAIN_TRUST_NO_STAKE_FACTOR = 0.5;
|
|
10
|
+
export declare const ON_CHAIN_SCORE_LOG_CAP_EXPONENT = 7;
|
|
11
|
+
export declare const SYBIL_WEIGHT_SUBFLOOR_TICKET = 0.3;
|
|
12
|
+
export declare const SYBIL_WEIGHT_BURN_RATE = 0.25;
|
|
13
|
+
export declare const SYBIL_WEIGHT_NARROW_CUSTOM = 0.25;
|
|
14
|
+
export declare const SYBIL_WEIGHT_YOUNG_HIGH_VOL = 0.2;
|
|
15
|
+
export declare const SYBIL_SUBFLOOR_TICKET_USDC = 1;
|
|
16
|
+
export declare const SYBIL_SUBFLOOR_MIN_CHANNELS = 50;
|
|
17
|
+
export declare const SYBIL_BURN_RATE_THRESHOLD = 30;
|
|
18
|
+
export declare const SYBIL_BURN_RATE_SATURATION = 80;
|
|
19
|
+
export declare const SYBIL_YOUNG_MAX_DAYS = 14;
|
|
20
|
+
export declare const SYBIL_YOUNG_CHANNEL_FLOOR = 100;
|
|
21
|
+
export declare const SYBIL_YOUNG_CHANNEL_SATURATION = 400;
|
|
22
|
+
export declare const SYBIL_ADVERTISED_CHEAP_INPUT_USD_PER_MILLION = 0.1;
|
|
23
|
+
export type SybilFlag = 'subfloor_ticket' | 'burn_rate' | 'narrow_custom' | 'young_high_vol';
|
|
24
|
+
export interface SybilRiskResult {
|
|
25
|
+
risk: number;
|
|
26
|
+
flags: SybilFlag[];
|
|
27
|
+
signals: Record<SybilFlag, number>;
|
|
28
|
+
}
|
|
29
|
+
export interface SybilContext {
|
|
30
|
+
serviceCounts: Map<string, number>;
|
|
31
|
+
}
|
|
32
|
+
export interface OnChainTrustBreakdown {
|
|
33
|
+
trust: number;
|
|
25
34
|
volumeUsdc: number;
|
|
35
|
+
channels: number;
|
|
26
36
|
avgChannelUsdc: number;
|
|
37
|
+
ticketBonus: number;
|
|
38
|
+
recencyGate: number;
|
|
39
|
+
stakeGate: number;
|
|
27
40
|
daysSinceLastSettled: number | null;
|
|
28
41
|
daysSinceStaked: number | null;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
export declare function computeOnChainReputationBreakdown(peer: Pick<PeerInfo, 'onChainChannelCount' | 'onChainGhostCount' | 'onChainTotalVolumeUsdcMicros' | 'onChainLastSettledAtSec' | 'onChainStakedAtSec'>, nowMs?: number): OnChainReputationBreakdown | null;
|
|
40
|
-
export declare function computeOnChainReputationScore(peer: Parameters<typeof computeOnChainReputationBreakdown>[0], nowMs?: number): number | null;
|
|
42
|
+
}
|
|
43
|
+
/** Compute raw on-chain trust, or `null` when chain stats are unavailable. */
|
|
44
|
+
export declare function computeOnChainTrustBreakdown(peer: Pick<PeerInfo, 'onChainChannelCount' | 'onChainTotalVolumeUsdcMicros' | 'onChainLastSettledAtSec' | 'onChainStakedAtSec' | 'onChainStakeUsdcMicros'>, nowMs?: number): OnChainTrustBreakdown | null;
|
|
45
|
+
export declare function computeOnChainTrust(peer: Parameters<typeof computeOnChainTrustBreakdown>[0], nowMs?: number): number | null;
|
|
46
|
+
export declare function buildSybilContext(peers: ReadonlyArray<PeerInfo>): SybilContext;
|
|
47
|
+
/** Heuristic wash-trading risk in [0, 1]. */
|
|
48
|
+
export declare function computeOnChainSybilRisk(peer: PeerInfo, ctx: SybilContext, nowMs?: number): SybilRiskResult;
|
|
49
|
+
export declare function scoreFromTrust(trust: number): number;
|
|
50
|
+
export declare function computeOnChainScore(peer: PeerInfo, ctx?: SybilContext, nowMs?: number): number | null;
|
|
51
|
+
export declare function computeOnChainReputationScore(peer: PeerInfo, nowMs?: number): number | null;
|
|
41
52
|
//# sourceMappingURL=on-chain-reputation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"on-chain-reputation.d.ts","sourceRoot":"","sources":["../../src/reputation/on-chain-reputation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"on-chain-reputation.d.ts","sourceRoot":"","sources":["../../src/reputation/on-chain-reputation.ts"],"names":[],"mappings":"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"}
|