@antseed/node 0.2.64 → 0.2.66
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/discovery/announcer.d.ts +25 -0
- package/dist/discovery/announcer.d.ts.map +1 -1
- package/dist/discovery/announcer.js +85 -10
- package/dist/discovery/announcer.js.map +1 -1
- package/dist/discovery/metadata-codec.d.ts.map +1 -1
- package/dist/discovery/metadata-codec.js +25 -0
- package/dist/discovery/metadata-codec.js.map +1 -1
- package/dist/discovery/metadata-validator.d.ts +1 -1
- package/dist/discovery/metadata-validator.d.ts.map +1 -1
- package/dist/discovery/metadata-validator.js +24 -12
- package/dist/discovery/metadata-validator.js.map +1 -1
- package/dist/discovery/peer-metadata.d.ts +8 -1
- package/dist/discovery/peer-metadata.d.ts.map +1 -1
- package/dist/discovery/peer-metadata.js +1 -1
- package/dist/discovery/seller-address-resolver.d.ts +50 -0
- package/dist/discovery/seller-address-resolver.d.ts.map +1 -0
- package/dist/discovery/seller-address-resolver.js +115 -0
- package/dist/discovery/seller-address-resolver.js.map +1 -0
- package/dist/node.d.ts +8 -0
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +85 -8
- package/dist/node.js.map +1 -1
- package/dist/payments/buyer-payment-manager.d.ts +5 -2
- package/dist/payments/buyer-payment-manager.d.ts.map +1 -1
- package/dist/payments/buyer-payment-manager.js +8 -4
- package/dist/payments/buyer-payment-manager.js.map +1 -1
- package/dist/payments/buyer-payment-negotiator.d.ts +17 -1
- package/dist/payments/buyer-payment-negotiator.d.ts.map +1 -1
- package/dist/payments/buyer-payment-negotiator.js +80 -13
- package/dist/payments/buyer-payment-negotiator.js.map +1 -1
- package/dist/payments/evm/channels-client.d.ts +34 -1
- package/dist/payments/evm/channels-client.d.ts.map +1 -1
- package/dist/payments/evm/channels-client.js +100 -7
- package/dist/payments/evm/channels-client.js.map +1 -1
- package/dist/payments/readiness.d.ts +1 -1
- package/dist/payments/readiness.d.ts.map +1 -1
- package/dist/payments/readiness.js +10 -6
- package/dist/payments/readiness.js.map +1 -1
- package/dist/payments/seller-payment-manager.d.ts +6 -1
- package/dist/payments/seller-payment-manager.d.ts.map +1 -1
- package/dist/payments/seller-payment-manager.js +27 -8
- package/dist/payments/seller-payment-manager.js.map +1 -1
- package/dist/seller-request-handler.d.ts.map +1 -1
- package/dist/seller-request-handler.js +34 -23
- package/dist/seller-request-handler.js.map +1 -1
- package/dist/types/peer.d.ts +34 -2
- package/dist/types/peer.d.ts.map +1 -1
- package/dist/types/peer.js.map +1 -1
- package/package.json +2 -2
|
@@ -2,8 +2,10 @@ import { PaymentMux } from '../p2p/payment-mux.js';
|
|
|
2
2
|
import { classifyOnChainChannel } from './channel-session-state.js';
|
|
3
3
|
import { peerIdToAddress } from '../types/peer.js';
|
|
4
4
|
import { debugLog, debugWarn } from '../utils/debug.js';
|
|
5
|
+
import { SellerAuthorizationError } from '../discovery/seller-address-resolver.js';
|
|
5
6
|
import { parseResponseUsage } from '../utils/response-usage.js';
|
|
6
7
|
import { computeCostUsdc } from './pricing.js';
|
|
8
|
+
import { formatUsdc } from './usdc-utils.js';
|
|
7
9
|
function parsePaymentRequiredBody(body) {
|
|
8
10
|
try {
|
|
9
11
|
const parsed = JSON.parse(new TextDecoder().decode(body));
|
|
@@ -27,6 +29,7 @@ export class BuyerPaymentNegotiator {
|
|
|
27
29
|
_channelStore;
|
|
28
30
|
_identity;
|
|
29
31
|
_emit;
|
|
32
|
+
_sellerAddressResolver;
|
|
30
33
|
/** Tracks which seller peers the buyer has already negotiated payment for. */
|
|
31
34
|
_lockedPeers = new Set();
|
|
32
35
|
/** Pending PaymentRequired payloads from sellers, keyed by peerId. */
|
|
@@ -43,17 +46,31 @@ export class BuyerPaymentNegotiator {
|
|
|
43
46
|
_muxes = new Map();
|
|
44
47
|
/** In-flight NeedAuth handlers keyed by seller peerId. */
|
|
45
48
|
_pendingNeedAuth = new Map();
|
|
46
|
-
constructor(identity, bpm, depositsClient, channelsClient, channelStore, _config, emitter) {
|
|
49
|
+
constructor(identity, bpm, depositsClient, channelsClient, channelStore, _config, emitter, sellerAddressResolver) {
|
|
47
50
|
this._identity = identity;
|
|
48
51
|
this._bpm = bpm;
|
|
49
52
|
this._depositsClient = depositsClient;
|
|
50
53
|
this._channelsClient = channelsClient;
|
|
51
54
|
this._channelStore = channelStore;
|
|
52
55
|
this._emit = emitter;
|
|
56
|
+
this._sellerAddressResolver = sellerAddressResolver;
|
|
53
57
|
}
|
|
54
58
|
get bpm() {
|
|
55
59
|
return this._bpm;
|
|
56
60
|
}
|
|
61
|
+
async _resolveSellerAddr(peer) {
|
|
62
|
+
if (!this._sellerAddressResolver)
|
|
63
|
+
return peerIdToAddress(peer.peerId);
|
|
64
|
+
try {
|
|
65
|
+
return await this._sellerAddressResolver.resolveSellerAddress(peer.peerId, peer.metadata);
|
|
66
|
+
}
|
|
67
|
+
catch (err) {
|
|
68
|
+
if (err instanceof SellerAuthorizationError) {
|
|
69
|
+
debugWarn(`[BuyerNegotiator] Dropping peer ${peer.peerId.slice(0, 12)}...: ${err.message}`);
|
|
70
|
+
}
|
|
71
|
+
throw err;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
57
74
|
getOrCreatePaymentMux(peerId, conn) {
|
|
58
75
|
const existing = this._muxes.get(peerId);
|
|
59
76
|
if (existing)
|
|
@@ -314,6 +331,7 @@ export class BuyerPaymentNegotiator {
|
|
|
314
331
|
throw new Error('Invalid x-antseed-spending-auth header: failed to decode');
|
|
315
332
|
}
|
|
316
333
|
debugLog(`[BuyerNegotiator] External SpendingAuth: channel=${payload.channelId.slice(0, 18)}... amount=${payload.cumulativeAmount}`);
|
|
334
|
+
const sellerEvmAddrExternal = await this._resolveSellerAddr(peer);
|
|
317
335
|
// Store session so handleAuthAck can find it
|
|
318
336
|
if (this._channelStore) {
|
|
319
337
|
const reserveDeadline = payload.reserveDeadline ?? (Math.floor(Date.now() / 1000) + 3600);
|
|
@@ -321,7 +339,7 @@ export class BuyerPaymentNegotiator {
|
|
|
321
339
|
sessionId: payload.channelId,
|
|
322
340
|
peerId: peer.peerId,
|
|
323
341
|
role: 'buyer',
|
|
324
|
-
sellerEvmAddr:
|
|
342
|
+
sellerEvmAddr: sellerEvmAddrExternal,
|
|
325
343
|
buyerEvmAddr: this._identity.wallet.address,
|
|
326
344
|
nonce: 0,
|
|
327
345
|
authMax: payload.cumulativeAmount,
|
|
@@ -343,12 +361,21 @@ export class BuyerPaymentNegotiator {
|
|
|
343
361
|
}
|
|
344
362
|
pmux.sendSpendingAuth(payload);
|
|
345
363
|
debugLog(`[BuyerNegotiator] External SpendingAuth sent to seller ${peer.peerId.slice(0, 12)}..., waiting for AuthAck...`);
|
|
346
|
-
|
|
364
|
+
let reserveCtxAmount;
|
|
365
|
+
try {
|
|
366
|
+
reserveCtxAmount = payload.reserveMaxAmount != null
|
|
367
|
+
? BigInt(payload.reserveMaxAmount)
|
|
368
|
+
: BigInt(payload.cumulativeAmount);
|
|
369
|
+
}
|
|
370
|
+
catch {
|
|
371
|
+
reserveCtxAmount = undefined;
|
|
372
|
+
}
|
|
373
|
+
await this._waitForLockConfirmation(peer.peerId, { requestedReserve: reserveCtxAmount });
|
|
347
374
|
debugLog(`[BuyerNegotiator] AuthAck received from seller ${peer.peerId.slice(0, 12)}...`);
|
|
348
375
|
this._lockedPeers.add(peer.peerId);
|
|
349
376
|
this._emit.emit('payment:signed', {
|
|
350
377
|
peerId: peer.peerId,
|
|
351
|
-
sellerEvmAddr:
|
|
378
|
+
sellerEvmAddr: sellerEvmAddrExternal,
|
|
352
379
|
amount: payload.cumulativeAmount,
|
|
353
380
|
});
|
|
354
381
|
}
|
|
@@ -470,9 +497,10 @@ export class BuyerPaymentNegotiator {
|
|
|
470
497
|
if (amount <= 0n) {
|
|
471
498
|
throw new Error(`Invalid reserve amount for payment to ${peer.peerId.slice(0, 12)}...`);
|
|
472
499
|
}
|
|
500
|
+
const sellerEvmAddr = await this._resolveSellerAddr(peer);
|
|
473
501
|
this._emit.emit('payment:required', {
|
|
474
502
|
peerId: peer.peerId,
|
|
475
|
-
sellerEvmAddr
|
|
503
|
+
sellerEvmAddr,
|
|
476
504
|
minBudgetPerRequest: requirements.minBudgetPerRequest,
|
|
477
505
|
suggestedAmount: amount.toString(),
|
|
478
506
|
});
|
|
@@ -493,14 +521,14 @@ export class BuyerPaymentNegotiator {
|
|
|
493
521
|
// Build full pricing map from peer metadata (defaults + all per-service overrides)
|
|
494
522
|
const pricingMap = this._buildPricingMap(peer);
|
|
495
523
|
try {
|
|
496
|
-
await this._bpm.authorizeSpending(peer.peerId, pmux, minBudgetPerRequest, amount, pricing, pricingMap);
|
|
524
|
+
await this._bpm.authorizeSpending(peer.peerId, pmux, minBudgetPerRequest, amount, pricing, pricingMap, peer.metadata);
|
|
497
525
|
debugLog(`[BuyerNegotiator] SpendingAuth sent to seller ${peer.peerId.slice(0, 12)}..., waiting for AuthAck...`);
|
|
498
|
-
await this._waitForLockConfirmation(peer.peerId);
|
|
526
|
+
await this._waitForLockConfirmation(peer.peerId, { requestedReserve: amount, minBudgetPerRequest });
|
|
499
527
|
debugLog(`[BuyerNegotiator] AuthAck received from seller ${peer.peerId.slice(0, 12)}...`);
|
|
500
528
|
this._lockedPeers.add(peer.peerId);
|
|
501
529
|
this._emit.emit('payment:signed', {
|
|
502
530
|
peerId: peer.peerId,
|
|
503
|
-
sellerEvmAddr
|
|
531
|
+
sellerEvmAddr,
|
|
504
532
|
amount: amount.toString(),
|
|
505
533
|
});
|
|
506
534
|
}
|
|
@@ -595,7 +623,9 @@ export class BuyerPaymentNegotiator {
|
|
|
595
623
|
if (this._bpm.canReplayReserveAuth(peer.peerId)) {
|
|
596
624
|
const pmux = this.getOrCreatePaymentMux(peer.peerId, conn);
|
|
597
625
|
await this._bpm.resendReserveAuth(peer.peerId, pmux);
|
|
598
|
-
await this._waitForLockConfirmation(peer.peerId
|
|
626
|
+
await this._waitForLockConfirmation(peer.peerId, {
|
|
627
|
+
minBudgetPerRequest: minBudgetPerRequest ?? undefined,
|
|
628
|
+
});
|
|
599
629
|
this._lockedPeers.add(peer.peerId);
|
|
600
630
|
return true;
|
|
601
631
|
}
|
|
@@ -634,7 +664,9 @@ export class BuyerPaymentNegotiator {
|
|
|
634
664
|
else {
|
|
635
665
|
await this._bpm.resendCurrentSpendingAuth(peer.peerId, pmux);
|
|
636
666
|
}
|
|
637
|
-
await this._waitForLockConfirmation(peer.peerId
|
|
667
|
+
await this._waitForLockConfirmation(peer.peerId, {
|
|
668
|
+
minBudgetPerRequest: minBudgetPerRequest ?? undefined,
|
|
669
|
+
});
|
|
638
670
|
this._lockedPeers.add(peer.peerId);
|
|
639
671
|
return true;
|
|
640
672
|
}
|
|
@@ -666,7 +698,7 @@ export class BuyerPaymentNegotiator {
|
|
|
666
698
|
return null;
|
|
667
699
|
}
|
|
668
700
|
}
|
|
669
|
-
async _waitForLockConfirmation(sellerPeerId) {
|
|
701
|
+
async _waitForLockConfirmation(sellerPeerId, ctx) {
|
|
670
702
|
const pollIntervalMs = 200;
|
|
671
703
|
const timeoutMs = 30_000;
|
|
672
704
|
const deadline = Date.now() + timeoutMs;
|
|
@@ -674,11 +706,46 @@ export class BuyerPaymentNegotiator {
|
|
|
674
706
|
if (this._bpm.isLockConfirmed(sellerPeerId))
|
|
675
707
|
return;
|
|
676
708
|
if (this._bpm.isLockRejected(sellerPeerId)) {
|
|
677
|
-
throw new Error(`Lock rejected by seller ${sellerPeerId.slice(0, 12)}
|
|
709
|
+
throw new Error(`Lock rejected by seller ${sellerPeerId.slice(0, 12)}...${this._buildLockFailureHint(ctx)}`);
|
|
678
710
|
}
|
|
679
711
|
await new Promise((resolve) => setTimeout(resolve, pollIntervalMs));
|
|
680
712
|
}
|
|
681
|
-
throw new Error(`Lock confirmation timed out for seller ${sellerPeerId.slice(0, 12)}... (${timeoutMs}ms)`);
|
|
713
|
+
throw new Error(`Lock confirmation timed out for seller ${sellerPeerId.slice(0, 12)}... (${timeoutMs}ms).${this._buildLockFailureHint(ctx)}`);
|
|
714
|
+
}
|
|
715
|
+
/**
|
|
716
|
+
* Build a human-readable hint appended to lock-confirmation failures,
|
|
717
|
+
* listing the most likely causes so operators don't have to guess.
|
|
718
|
+
*
|
|
719
|
+
* Note: this intentionally does NOT call the buyer's RPC. The buyer's RPC
|
|
720
|
+
* is typically less reliable than the seller's, and the seller is the one
|
|
721
|
+
* making the on-chain call that is failing — it has the exact revert reason
|
|
722
|
+
* and a fresh deposits snapshot. A follow-up will plumb a structured
|
|
723
|
+
* AuthNack frame from the seller carrying that information; this hint
|
|
724
|
+
* exists so the surrounding error shape is already in place when that
|
|
725
|
+
* lands.
|
|
726
|
+
*/
|
|
727
|
+
_buildLockFailureHint(ctx) {
|
|
728
|
+
const lines = [];
|
|
729
|
+
// We don't know the buyer's live balance here — only what we asked for.
|
|
730
|
+
// The binding on-chain constraint is lockForChannel(buyer, maxAmount) in
|
|
731
|
+
// reserve() / topUp(); settle()/close() cannot throw InsufficientBalance
|
|
732
|
+
// because their charges come from already-locked reserve. So the ceiling
|
|
733
|
+
// we need the buyer to have covered is requestedReserve.
|
|
734
|
+
const reserve = ctx?.requestedReserve;
|
|
735
|
+
const min = ctx?.minBudgetPerRequest;
|
|
736
|
+
if (reserve != null && reserve > 0n) {
|
|
737
|
+
lines.push(`- Deposits may be below the reserve ceiling the seller will lock ` +
|
|
738
|
+
`(${formatUsdc(reserve)} USDC). The seller's on-chain reserve() reverts ` +
|
|
739
|
+
`with InsufficientBalance before AuthAck. ` +
|
|
740
|
+
`Check with "antseed buyer status"; top up with "antseed buyer deposit <amount>".`);
|
|
741
|
+
}
|
|
742
|
+
else if (min != null && min > 0n) {
|
|
743
|
+
lines.push(`- Deposits may be below seller minBudgetPerRequest (${formatUsdc(min)} USDC). ` +
|
|
744
|
+
`Check with "antseed buyer status"; top up with "antseed buyer deposit <amount>".`);
|
|
745
|
+
}
|
|
746
|
+
lines.push('- Seller may be overloaded or gated on subscription (try another peer).');
|
|
747
|
+
lines.push('- Seller may be online but the payment process stalled (retry, or pin a different peer).');
|
|
748
|
+
return `\nLikely causes:\n ${lines.join('\n ')}`;
|
|
682
749
|
}
|
|
683
750
|
}
|
|
684
751
|
//# sourceMappingURL=buyer-payment-negotiator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buyer-payment-negotiator.js","sourceRoot":"","sources":["../../src/payments/buyer-payment-negotiator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"buyer-payment-negotiator.js","sourceRoot":"","sources":["../../src/payments/buyer-payment-negotiator.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,7 +28,40 @@ export interface CloseRequestedEvent {
|
|
|
28
28
|
buyer: string;
|
|
29
29
|
}
|
|
30
30
|
export declare class ChannelsClient extends BaseEvmClient {
|
|
31
|
+
/**
|
|
32
|
+
* The underlying AntseedChannels address used for reads + event filters.
|
|
33
|
+
* When the configured `contractAddress` is a seller facade (e.g.
|
|
34
|
+
* DiemStakingProxy), this resolves to the real channels contract via the
|
|
35
|
+
* facade's `channelsAddress()` view. Otherwise it equals `_contractAddress`.
|
|
36
|
+
* Probed lazily on first read.
|
|
37
|
+
*/
|
|
38
|
+
private _readAddressPromise;
|
|
31
39
|
constructor(config: ChannelsClientConfig);
|
|
40
|
+
/**
|
|
41
|
+
* Resolve the read address (underlying AntseedChannels). If the configured
|
|
42
|
+
* contract exposes `channelsAddress()` (i.e. is a seller facade), use that.
|
|
43
|
+
* Otherwise fall back to the configured address.
|
|
44
|
+
*
|
|
45
|
+
* Three outcomes:
|
|
46
|
+
* 1. Probe returns a single ABI-encoded address word → cache that
|
|
47
|
+
* (facade if it differs from the configured address, non-facade
|
|
48
|
+
* otherwise).
|
|
49
|
+
* 2. Probe returns `0x`, a CALL_EXCEPTION revert, or an obviously
|
|
50
|
+
* non-address payload (wrong length, non-string) → cache as
|
|
51
|
+
* non-facade. These are all "selector isn't implemented" signals.
|
|
52
|
+
* 3. Probe throws a non-CALL_EXCEPTION error (network timeout, RPC
|
|
53
|
+
* 5xx, rate limit) → *transient*. Return the configured address for
|
|
54
|
+
* this call only and do **not** memoize. Subsequent calls retry.
|
|
55
|
+
*
|
|
56
|
+
* Prior implementation memoized the fallback on any throw, which
|
|
57
|
+
* permanently wedged facade mode after a single transient RPC blip —
|
|
58
|
+
* signing every subsequent SpendingAuth against the wrong EIP-712 domain.
|
|
59
|
+
* At worst a facade seller now mis-signs *one* auth during an RPC outage
|
|
60
|
+
* (buyer verification fails, buyer retries, probe recovers, all good).
|
|
61
|
+
*/
|
|
62
|
+
private _getReadAddress;
|
|
63
|
+
/** The resolved underlying channels address. Triggers the probe if not yet resolved. */
|
|
64
|
+
get readAddress(): Promise<string>;
|
|
32
65
|
reserve(signer: AbstractSigner, buyer: string, salt: string, maxAmount: bigint, deadline: bigint, buyerSig: string): Promise<string>;
|
|
33
66
|
settle(signer: AbstractSigner, channelId: string, cumulativeAmount: bigint, metadata: string, buyerSig: string): Promise<string>;
|
|
34
67
|
close(signer: AbstractSigner, channelId: string, finalAmount: bigint, metadata: string, buyerSig: string): Promise<string>;
|
|
@@ -41,7 +74,7 @@ export declare class ChannelsClient extends BaseEvmClient {
|
|
|
41
74
|
computeChannelId(buyer: string, seller: string, salt: string): Promise<string>;
|
|
42
75
|
getAgentStats(agentId: number): Promise<AgentStats>;
|
|
43
76
|
/**
|
|
44
|
-
* Query CloseRequested events from the
|
|
77
|
+
* Query CloseRequested events from the underlying AntseedChannels contract.
|
|
45
78
|
* Returns matching events between fromBlock and toBlock (inclusive).
|
|
46
79
|
*/
|
|
47
80
|
getCloseRequestedEvents(fromBlock: number | 'latest', toBlock?: number | 'latest'): Promise<CloseRequestedEvent[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channels-client.d.ts","sourceRoot":"","sources":["../../../src/payments/evm/channels-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAoB,MAAM,QAAQ,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB;
|
|
1
|
+
{"version":3,"file":"channels-client.d.ts","sourceRoot":"","sources":["../../../src/payments/evm/channels-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,10 +14,103 @@ const CHANNELS_ABI = [
|
|
|
14
14
|
'function FIRST_SIGN_CAP() external view returns (uint256)',
|
|
15
15
|
'event CloseRequested(bytes32 indexed channelId, address indexed buyer, address indexed seller, uint256 gracePeriodEnd)',
|
|
16
16
|
];
|
|
17
|
+
/// @dev Probe ABI for the seller-facade passthrough. Present on
|
|
18
|
+
/// AntseedSellerDelegation (and derivatives like DiemStakingProxy); absent
|
|
19
|
+
/// on plain AntseedChannels. Used at init to discover the underlying
|
|
20
|
+
/// channels contract when the configured address is a seller facade.
|
|
21
|
+
const SELLER_FACADE_PROBE_ABI = [
|
|
22
|
+
'function channelsAddress() external view returns (address)',
|
|
23
|
+
];
|
|
17
24
|
export class ChannelsClient extends BaseEvmClient {
|
|
25
|
+
/**
|
|
26
|
+
* The underlying AntseedChannels address used for reads + event filters.
|
|
27
|
+
* When the configured `contractAddress` is a seller facade (e.g.
|
|
28
|
+
* DiemStakingProxy), this resolves to the real channels contract via the
|
|
29
|
+
* facade's `channelsAddress()` view. Otherwise it equals `_contractAddress`.
|
|
30
|
+
* Probed lazily on first read.
|
|
31
|
+
*/
|
|
32
|
+
_readAddressPromise = null;
|
|
18
33
|
constructor(config) {
|
|
19
34
|
super(config.rpcUrl, config.contractAddress, config.fallbackRpcUrls, config.evmChainId);
|
|
20
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
* Resolve the read address (underlying AntseedChannels). If the configured
|
|
38
|
+
* contract exposes `channelsAddress()` (i.e. is a seller facade), use that.
|
|
39
|
+
* Otherwise fall back to the configured address.
|
|
40
|
+
*
|
|
41
|
+
* Three outcomes:
|
|
42
|
+
* 1. Probe returns a single ABI-encoded address word → cache that
|
|
43
|
+
* (facade if it differs from the configured address, non-facade
|
|
44
|
+
* otherwise).
|
|
45
|
+
* 2. Probe returns `0x`, a CALL_EXCEPTION revert, or an obviously
|
|
46
|
+
* non-address payload (wrong length, non-string) → cache as
|
|
47
|
+
* non-facade. These are all "selector isn't implemented" signals.
|
|
48
|
+
* 3. Probe throws a non-CALL_EXCEPTION error (network timeout, RPC
|
|
49
|
+
* 5xx, rate limit) → *transient*. Return the configured address for
|
|
50
|
+
* this call only and do **not** memoize. Subsequent calls retry.
|
|
51
|
+
*
|
|
52
|
+
* Prior implementation memoized the fallback on any throw, which
|
|
53
|
+
* permanently wedged facade mode after a single transient RPC blip —
|
|
54
|
+
* signing every subsequent SpendingAuth against the wrong EIP-712 domain.
|
|
55
|
+
* At worst a facade seller now mis-signs *one* auth during an RPC outage
|
|
56
|
+
* (buyer verification fails, buyer retries, probe recovers, all good).
|
|
57
|
+
*/
|
|
58
|
+
_getReadAddress() {
|
|
59
|
+
if (this._readAddressPromise)
|
|
60
|
+
return this._readAddressPromise;
|
|
61
|
+
const attempt = (async () => {
|
|
62
|
+
const iface = new ethers.Interface(SELLER_FACADE_PROBE_ABI);
|
|
63
|
+
const callData = iface.encodeFunctionData('channelsAddress');
|
|
64
|
+
let raw;
|
|
65
|
+
try {
|
|
66
|
+
raw = await this._provider.call({
|
|
67
|
+
to: this._contractAddress,
|
|
68
|
+
data: callData,
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
catch (err) {
|
|
72
|
+
const code = err?.code;
|
|
73
|
+
if (code === 'CALL_EXCEPTION') {
|
|
74
|
+
// Contract didn't implement the selector — cache non-facade.
|
|
75
|
+
return { value: this._contractAddress, cache: true };
|
|
76
|
+
}
|
|
77
|
+
// Transient network/RPC error — don't cache.
|
|
78
|
+
return { value: this._contractAddress, cache: false };
|
|
79
|
+
}
|
|
80
|
+
// Treat any non-66-char response (including `0x`, tuples, malformed
|
|
81
|
+
// payloads) as "selector not implemented" — safe to cache as non-facade.
|
|
82
|
+
if (typeof raw !== 'string' || raw.length !== 66) {
|
|
83
|
+
return { value: this._contractAddress, cache: true };
|
|
84
|
+
}
|
|
85
|
+
const [resolved] = iface.decodeFunctionResult('channelsAddress', raw);
|
|
86
|
+
const value = resolved.toLowerCase() === this._contractAddress.toLowerCase()
|
|
87
|
+
? this._contractAddress
|
|
88
|
+
: resolved;
|
|
89
|
+
return { value, cache: true };
|
|
90
|
+
})();
|
|
91
|
+
// Memoize the promise that resolves to the *value* only when the probe
|
|
92
|
+
// reports a cacheable outcome. Otherwise clear the memo post-resolution
|
|
93
|
+
// so the next caller re-probes.
|
|
94
|
+
const valuePromise = attempt.then(({ value, cache }) => {
|
|
95
|
+
if (!cache && this._readAddressPromise === valuePromise) {
|
|
96
|
+
this._readAddressPromise = null;
|
|
97
|
+
}
|
|
98
|
+
return value;
|
|
99
|
+
});
|
|
100
|
+
// If `attempt` itself rejects (shouldn't, since we catch above, but
|
|
101
|
+
// defence in depth), clear the memo.
|
|
102
|
+
valuePromise.catch(() => {
|
|
103
|
+
if (this._readAddressPromise === valuePromise) {
|
|
104
|
+
this._readAddressPromise = null;
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
this._readAddressPromise = valuePromise;
|
|
108
|
+
return valuePromise;
|
|
109
|
+
}
|
|
110
|
+
/** The resolved underlying channels address. Triggers the probe if not yet resolved. */
|
|
111
|
+
get readAddress() {
|
|
112
|
+
return this._getReadAddress();
|
|
113
|
+
}
|
|
21
114
|
async reserve(signer, buyer, salt, maxAmount, deadline, buyerSig) {
|
|
22
115
|
return this._execWrite(signer, CHANNELS_ABI, 'reserve', buyer, salt, maxAmount, deadline, buyerSig);
|
|
23
116
|
}
|
|
@@ -37,7 +130,7 @@ export class ChannelsClient extends BaseEvmClient {
|
|
|
37
130
|
return this._execWrite(signer, CHANNELS_ABI, 'withdraw', channelId);
|
|
38
131
|
}
|
|
39
132
|
async getSession(channelId) {
|
|
40
|
-
const contract = new Contract(this.
|
|
133
|
+
const contract = new Contract(await this._getReadAddress(), CHANNELS_ABI, this._provider);
|
|
41
134
|
const result = await contract.getFunction('channels')(channelId);
|
|
42
135
|
return {
|
|
43
136
|
buyer: result[0],
|
|
@@ -52,19 +145,19 @@ export class ChannelsClient extends BaseEvmClient {
|
|
|
52
145
|
};
|
|
53
146
|
}
|
|
54
147
|
async domainSeparator() {
|
|
55
|
-
const contract = new Contract(this.
|
|
148
|
+
const contract = new Contract(await this._getReadAddress(), CHANNELS_ABI, this._provider);
|
|
56
149
|
return contract.getFunction('domainSeparator')();
|
|
57
150
|
}
|
|
58
151
|
async getFirstSignCap() {
|
|
59
|
-
const contract = new Contract(this.
|
|
152
|
+
const contract = new Contract(await this._getReadAddress(), CHANNELS_ABI, this._provider);
|
|
60
153
|
return contract.getFunction('FIRST_SIGN_CAP')();
|
|
61
154
|
}
|
|
62
155
|
async computeChannelId(buyer, seller, salt) {
|
|
63
|
-
const contract = new Contract(this.
|
|
156
|
+
const contract = new Contract(await this._getReadAddress(), CHANNELS_ABI, this._provider);
|
|
64
157
|
return contract.getFunction('computeChannelId')(buyer, seller, salt);
|
|
65
158
|
}
|
|
66
159
|
async getAgentStats(agentId) {
|
|
67
|
-
const contract = new Contract(this.
|
|
160
|
+
const contract = new Contract(await this._getReadAddress(), CHANNELS_ABI, this._provider);
|
|
68
161
|
const result = await contract.getFunction('getAgentStats')(agentId);
|
|
69
162
|
return {
|
|
70
163
|
channelCount: Number(result[0]),
|
|
@@ -74,14 +167,14 @@ export class ChannelsClient extends BaseEvmClient {
|
|
|
74
167
|
};
|
|
75
168
|
}
|
|
76
169
|
/**
|
|
77
|
-
* Query CloseRequested events from the
|
|
170
|
+
* Query CloseRequested events from the underlying AntseedChannels contract.
|
|
78
171
|
* Returns matching events between fromBlock and toBlock (inclusive).
|
|
79
172
|
*/
|
|
80
173
|
async getCloseRequestedEvents(fromBlock, toBlock = 'latest') {
|
|
81
174
|
const iface = new ethers.Interface(CHANNELS_ABI);
|
|
82
175
|
const eventTopic = iface.getEvent('CloseRequested').topicHash;
|
|
83
176
|
const logs = await this._provider.getLogs({
|
|
84
|
-
address: this.
|
|
177
|
+
address: await this._getReadAddress(),
|
|
85
178
|
topics: [eventTopic],
|
|
86
179
|
fromBlock,
|
|
87
180
|
toBlock,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channels-client.js","sourceRoot":"","sources":["../../../src/payments/evm/channels-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,QAAQ,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AA4BrD,MAAM,YAAY,GAAG;IACnB,6GAA6G;IAC7G,uGAAuG;IACvG,iGAAiG;IACjG,mKAAmK;IACnK,mDAAmD;IACnD,+CAA+C;IAC/C,iOAAiO;IACjO,wGAAwG;IACxG,uJAAuJ;IACvJ,4DAA4D;IAC5D,2DAA2D;IAC3D,wHAAwH;CAChH,CAAC;AAOX,MAAM,OAAO,cAAe,SAAQ,aAAa;IAC/C,YAAY,MAA4B;QACtC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IAC1F,CAAC;IAED,KAAK,CAAC,OAAO,CACX,MAAsB,EACtB,KAAa,EACb,IAAY,EACZ,SAAiB,EACjB,QAAgB,EAChB,QAAgB;QAEhB,OAAO,IAAI,CAAC,UAAU,CACpB,MAAM,EAAE,YAAY,EAAE,SAAS,EAC/B,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAC3C,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CACV,MAAsB,EACtB,SAAiB,EACjB,gBAAwB,EACxB,QAAgB,EAChB,QAAgB;QAEhB,OAAO,IAAI,CAAC,UAAU,CACpB,MAAM,EAAE,YAAY,EAAE,QAAQ,EAC9B,SAAS,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,CAChD,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,KAAK,CACT,MAAsB,EACtB,SAAiB,EACjB,WAAmB,EACnB,QAAgB,EAChB,QAAgB;QAEhB,OAAO,IAAI,CAAC,UAAU,CACpB,MAAM,EAAE,YAAY,EAAE,OAAO,EAC7B,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,CAC3C,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,KAAK,CACT,MAAsB,EACtB,SAAiB,EACjB,gBAAwB,EACxB,QAAgB,EAChB,WAAmB,EACnB,YAAoB,EACpB,QAAgB,EAChB,UAAkB;QAElB,OAAO,IAAI,CAAC,UAAU,CACpB,MAAM,EAAE,YAAY,EAAE,OAAO,EAC7B,SAAS,EAAE,gBAAgB,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,CACvF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAsB,EAAE,SAAiB;QAC1D,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAsB,EAAE,SAAiB;QACtD,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,SAAiB;QAChC,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"channels-client.js","sourceRoot":"","sources":["../../../src/payments/evm/channels-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,6 @@ export interface ReadinessCheck {
|
|
|
8
8
|
message: string;
|
|
9
9
|
command?: string;
|
|
10
10
|
}
|
|
11
|
-
export declare function checkSellerReadiness(identity: Identity, identityClient: IdentityClient, stakingClient: StakingClient): Promise<ReadinessCheck[]>;
|
|
11
|
+
export declare function checkSellerReadiness(identity: Identity, identityClient: IdentityClient, stakingClient: StakingClient, sellerContract?: string): Promise<ReadinessCheck[]>;
|
|
12
12
|
export declare function checkBuyerReadiness(identity: Identity, depositsClient: DepositsClient): Promise<ReadinessCheck[]>;
|
|
13
13
|
//# sourceMappingURL=readiness.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readiness.d.ts","sourceRoot":"","sources":["../../src/payments/readiness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAG7D,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc,EAC9B,aAAa,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"readiness.d.ts","sourceRoot":"","sources":["../../src/payments/readiness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAG7D,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc,EAC9B,aAAa,EAAE,aAAa,EAC5B,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,cAAc,EAAE,CAAC,CAsC3B;AAED,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,cAAc,EAAE,CAAC,CA0B3B"}
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import { formatEther } from 'ethers';
|
|
2
|
-
export async function checkSellerReadiness(identity, identityClient, stakingClient) {
|
|
2
|
+
export async function checkSellerReadiness(identity, identityClient, stakingClient, sellerContract) {
|
|
3
3
|
const checks = [];
|
|
4
4
|
const evmAddr = identity.wallet.address;
|
|
5
|
-
//
|
|
5
|
+
// When the peer is fronted by a seller contract, stake and agent registration
|
|
6
|
+
// live under the proxy address — not the peer's wallet. ETH gas still comes
|
|
7
|
+
// from the peer's wallet regardless.
|
|
8
|
+
const sellerAddr = sellerContract ?? evmAddr;
|
|
9
|
+
// 1. ETH for gas (always the peer wallet)
|
|
6
10
|
const ethBalance = await stakingClient.provider.getBalance(evmAddr);
|
|
7
11
|
checks.push({
|
|
8
12
|
name: 'Gas balance',
|
|
@@ -11,16 +15,16 @@ export async function checkSellerReadiness(identity, identityClient, stakingClie
|
|
|
11
15
|
? `ETH balance: ${formatEther(ethBalance)}`
|
|
12
16
|
: `No ETH for gas fees. Send ETH to ${evmAddr}`,
|
|
13
17
|
});
|
|
14
|
-
// 2. Registered
|
|
15
|
-
const isReg = await identityClient.isRegistered(
|
|
18
|
+
// 2. Registered (seller on-chain address = proxy when configured)
|
|
19
|
+
const isReg = await identityClient.isRegistered(sellerAddr);
|
|
16
20
|
checks.push({
|
|
17
21
|
name: 'Peer registration',
|
|
18
22
|
passed: isReg,
|
|
19
23
|
message: isReg ? 'Registered' : 'Not registered. Run: antseed seller register',
|
|
20
24
|
command: isReg ? undefined : 'antseed seller register',
|
|
21
25
|
});
|
|
22
|
-
// 3. Staked
|
|
23
|
-
const stake = await stakingClient.getStake(
|
|
26
|
+
// 3. Staked (seller on-chain address = proxy when configured)
|
|
27
|
+
const stake = await stakingClient.getStake(sellerAddr);
|
|
24
28
|
const hasStake = stake > 0n;
|
|
25
29
|
checks.push({
|
|
26
30
|
name: 'Stake',
|