@dvmkit/sdk 0.3.1-rc.10 → 0.3.3-rc.10
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/{chunk-2D75MNNG.js → chunk-2SD2W2BG.js} +8 -5
- package/dist/{chunk-XZ7LW4S5.js → chunk-4J32DTLT.js} +20 -16
- package/dist/{chunk-XMDQOXHO.js → chunk-4UZN2GP5.js} +4 -1
- package/dist/{chunk-YO56VCTQ.js → chunk-6DOGTAHA.js} +190 -75
- package/dist/{chunk-VA7GT6C6.js → chunk-7X6UDVCQ.js} +56 -53
- package/dist/{chunk-4A2RAKCW.js → chunk-BYCEKO65.js} +7 -3
- package/dist/{chunk-MMCE7XSR.js → chunk-C2AGARLM.js} +1 -13
- package/dist/{chunk-H2MEFVH6.js → chunk-CE7XEHYC.js} +7 -4
- package/dist/{chunk-D7YQYLLM.js → chunk-EAMZZ2B4.js} +1 -1
- package/dist/chunk-ETXDTUJO.js +1438 -0
- package/dist/{chunk-FDKRXOZO.js → chunk-FI4CST2D.js} +57 -49
- package/dist/{chunk-HHTL3ZFT.js → chunk-JDFLRNAZ.js} +16 -13
- package/dist/{chunk-U5VNEALI.js → chunk-M4QDXD2A.js} +1 -1
- package/dist/{chunk-GAIPXGM3.js → chunk-O3QDFPKM.js} +1 -1
- package/dist/{chunk-MD3H3BF7.js → chunk-O5AT6S5T.js} +1 -1
- package/dist/{chunk-C3MTFLC6.js → chunk-P6QON7ER.js} +14 -12
- package/dist/{chunk-CC3UY6OS.js → chunk-UZC4A4DM.js} +379 -374
- package/dist/{chunk-QX52F6IB.js → chunk-VAMSJRJT.js} +7 -4
- package/dist/{chunk-AJNFXR7J.js → chunk-VHNPVGSA.js} +4 -1
- package/dist/{chunk-N5B66UOS.js → chunk-YHN3WMMF.js} +4 -1
- package/dist/{chunk-O6D72KYA.js → chunk-YRDA7EWN.js} +1 -1
- package/dist/{chunk-VIVXB4CD.js → chunk-YYQG4R7T.js} +1 -1
- package/dist/{chunk-FPOLJRBF.js → chunk-Z3EHBW2G.js} +2 -2
- package/dist/{credit-ledger-MHA652TV.js → credit-ledger-A35WH2TI.js} +3 -2
- package/dist/index.js +4 -3
- package/dist/internal/caller.d.ts +32 -3
- package/dist/internal/caller.js +22 -12
- package/dist/internal/index.js +1 -1
- package/dist/internal/server.js +16 -15
- package/dist/memory-credit-ledger-2LBZVMKJ.js +10 -0
- package/dist/{mpp-setup-MPP3ST5X.js → mpp-setup-7CGBKNUP.js} +2 -1
- package/dist/{payout-reporter-KEMUXEUO.js → payout-reporter-ZMOA37GN.js} +2 -1
- package/dist/{postgres-consumed-credential-store-6N2V5MJN.js → postgres-consumed-credential-store-CUQJKRSL.js} +4 -1
- package/dist/{postgres-job-store-VE2JRUEC.js → postgres-job-store-MSD2HZOI.js} +2 -1
- package/dist/{postgres-replay-store-ZF4JNZOW.js → postgres-replay-store-ARZSQ45X.js} +2 -1
- package/dist/{pricing-MU5GNUJZ.js → pricing-XT2IAPNE.js} +2 -1
- package/dist/{revenue-reporter-O75BGYFK.js → revenue-reporter-EKJOGQYR.js} +2 -1
- package/dist/server/index.d.ts +1 -1
- package/dist/server/index.js +112 -112
- package/dist/{tempo-charge-store-SDTUNTKA.js → tempo-charge-store-4WX7FPOV.js} +2 -1
- package/dist/{tempo-lifecycle-G5SB4HFC.js → tempo-lifecycle-TJ62A7UX.js} +3 -3
- package/dist/{tempo-session-store-WF3VZXNF.js → tempo-session-store-LCSDHB7G.js} +3 -2
- package/dist/{tempo-wallet-ZFNUDFVO.js → tempo-wallet-RCGBBAJH.js} +1 -1
- package/dist/testing/index.js +4 -3
- package/dist/{x402-CI6PSHNO.js → x402-S47Q77UE.js} +2 -2
- package/package.json +1 -1
- package/dist/memory-credit-ledger-BYBATRN3.js +0 -9
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
withSdkInitLock
|
|
3
3
|
} from "./chunk-COYKJRMM.js";
|
|
4
|
+
import {
|
|
5
|
+
diagnosticConsole
|
|
6
|
+
} from "./chunk-ETXDTUJO.js";
|
|
4
7
|
|
|
5
8
|
// src/sdk/server/revenue-reporter.ts
|
|
6
9
|
import { randomUUID } from "crypto";
|
|
@@ -214,21 +217,21 @@ var RevenueReporter = class _RevenueReporter {
|
|
|
214
217
|
signal: AbortSignal.timeout(1e4)
|
|
215
218
|
});
|
|
216
219
|
if (!res.ok) {
|
|
217
|
-
|
|
218
|
-
|
|
220
|
+
diagnosticConsole.warn(
|
|
221
|
+
{
|
|
219
222
|
level: "payout_pending_report_failed",
|
|
220
223
|
rail: payload.rail,
|
|
221
224
|
status: res.status
|
|
222
|
-
}
|
|
225
|
+
}
|
|
223
226
|
);
|
|
224
227
|
}
|
|
225
|
-
} catch (
|
|
226
|
-
|
|
227
|
-
|
|
228
|
+
} catch (_err) {
|
|
229
|
+
diagnosticConsole.warn(
|
|
230
|
+
{
|
|
228
231
|
level: "payout_pending_report_failed",
|
|
229
232
|
rail: payload.rail,
|
|
230
|
-
error:
|
|
231
|
-
}
|
|
233
|
+
error: void 0
|
|
234
|
+
}
|
|
232
235
|
);
|
|
233
236
|
}
|
|
234
237
|
}
|
|
@@ -261,21 +264,21 @@ var RevenueReporter = class _RevenueReporter {
|
|
|
261
264
|
signal: AbortSignal.timeout(1e4)
|
|
262
265
|
});
|
|
263
266
|
if (!res.ok) {
|
|
264
|
-
|
|
265
|
-
|
|
267
|
+
diagnosticConsole.warn(
|
|
268
|
+
{
|
|
266
269
|
level: "paid_job_death_report_failed",
|
|
267
270
|
jobId: payload.jobId,
|
|
268
271
|
status: res.status
|
|
269
|
-
}
|
|
272
|
+
}
|
|
270
273
|
);
|
|
271
274
|
}
|
|
272
|
-
} catch (
|
|
273
|
-
|
|
274
|
-
|
|
275
|
+
} catch (_err) {
|
|
276
|
+
diagnosticConsole.warn(
|
|
277
|
+
{
|
|
275
278
|
level: "paid_job_death_report_failed",
|
|
276
279
|
jobId: payload.jobId,
|
|
277
|
-
error:
|
|
278
|
-
}
|
|
280
|
+
error: void 0
|
|
281
|
+
}
|
|
279
282
|
);
|
|
280
283
|
}
|
|
281
284
|
}
|
|
@@ -298,25 +301,25 @@ var RevenueReporter = class _RevenueReporter {
|
|
|
298
301
|
signal: AbortSignal.timeout(1e4)
|
|
299
302
|
});
|
|
300
303
|
if (!res.ok) {
|
|
301
|
-
|
|
302
|
-
|
|
304
|
+
diagnosticConsole.warn(
|
|
305
|
+
{
|
|
303
306
|
level: "revenue_skipped_no_rail_report_failed",
|
|
304
307
|
jobId: payload.jobId,
|
|
305
308
|
drawId: payload.drawId,
|
|
306
309
|
reason: payload.reason,
|
|
307
310
|
status: res.status
|
|
308
|
-
}
|
|
311
|
+
}
|
|
309
312
|
);
|
|
310
313
|
}
|
|
311
|
-
} catch (
|
|
312
|
-
|
|
313
|
-
|
|
314
|
+
} catch (_err) {
|
|
315
|
+
diagnosticConsole.warn(
|
|
316
|
+
{
|
|
314
317
|
level: "revenue_skipped_no_rail_report_failed",
|
|
315
318
|
jobId: payload.jobId,
|
|
316
319
|
drawId: payload.drawId,
|
|
317
320
|
reason: payload.reason,
|
|
318
|
-
error:
|
|
319
|
-
}
|
|
321
|
+
error: void 0
|
|
322
|
+
}
|
|
320
323
|
);
|
|
321
324
|
}
|
|
322
325
|
}
|
|
@@ -333,21 +336,21 @@ var RevenueReporter = class _RevenueReporter {
|
|
|
333
336
|
signal: AbortSignal.timeout(1e4)
|
|
334
337
|
});
|
|
335
338
|
if (!res.ok) {
|
|
336
|
-
|
|
337
|
-
|
|
339
|
+
diagnosticConsole.warn(
|
|
340
|
+
{
|
|
338
341
|
level: "x402_self_relay_gas_balance_report_failed",
|
|
339
342
|
address: payload.address,
|
|
340
343
|
status: res.status
|
|
341
|
-
}
|
|
344
|
+
}
|
|
342
345
|
);
|
|
343
346
|
}
|
|
344
|
-
} catch (
|
|
345
|
-
|
|
346
|
-
|
|
347
|
+
} catch (_err) {
|
|
348
|
+
diagnosticConsole.warn(
|
|
349
|
+
{
|
|
347
350
|
level: "x402_self_relay_gas_balance_report_failed",
|
|
348
351
|
address: payload.address,
|
|
349
|
-
error:
|
|
350
|
-
}
|
|
352
|
+
error: void 0
|
|
353
|
+
}
|
|
351
354
|
);
|
|
352
355
|
}
|
|
353
356
|
}
|
|
@@ -364,21 +367,21 @@ var RevenueReporter = class _RevenueReporter {
|
|
|
364
367
|
signal: AbortSignal.timeout(1e4)
|
|
365
368
|
});
|
|
366
369
|
if (!res.ok) {
|
|
367
|
-
|
|
368
|
-
|
|
370
|
+
diagnosticConsole.warn(
|
|
371
|
+
{
|
|
369
372
|
level: "x402_self_relay_rpc_health_report_failed",
|
|
370
373
|
address: payload.address,
|
|
371
374
|
status: res.status
|
|
372
|
-
}
|
|
375
|
+
}
|
|
373
376
|
);
|
|
374
377
|
}
|
|
375
378
|
} catch {
|
|
376
|
-
|
|
377
|
-
|
|
379
|
+
diagnosticConsole.warn(
|
|
380
|
+
{
|
|
378
381
|
level: "x402_self_relay_rpc_health_report_failed",
|
|
379
382
|
address: payload.address,
|
|
380
383
|
reason: "transport"
|
|
381
|
-
}
|
|
384
|
+
}
|
|
382
385
|
);
|
|
383
386
|
}
|
|
384
387
|
}
|
|
@@ -401,23 +404,23 @@ var RevenueReporter = class _RevenueReporter {
|
|
|
401
404
|
signal: AbortSignal.timeout(1e4)
|
|
402
405
|
});
|
|
403
406
|
if (!res.ok) {
|
|
404
|
-
|
|
405
|
-
|
|
407
|
+
diagnosticConsole.warn(
|
|
408
|
+
{
|
|
406
409
|
level: "tempo_settlement_readiness_report_failed",
|
|
407
410
|
kind,
|
|
408
411
|
address: payload.address,
|
|
409
412
|
status: res.status
|
|
410
|
-
}
|
|
413
|
+
}
|
|
411
414
|
);
|
|
412
415
|
}
|
|
413
416
|
} catch {
|
|
414
|
-
|
|
415
|
-
|
|
417
|
+
diagnosticConsole.warn(
|
|
418
|
+
{
|
|
416
419
|
level: "tempo_settlement_readiness_report_failed",
|
|
417
420
|
kind,
|
|
418
421
|
address: payload.address,
|
|
419
422
|
reason: "transport"
|
|
420
|
-
}
|
|
423
|
+
}
|
|
421
424
|
);
|
|
422
425
|
}
|
|
423
426
|
}
|
|
@@ -482,8 +485,8 @@ var RevenueReporter = class _RevenueReporter {
|
|
|
482
485
|
const retryCount = row.retry_count + 1;
|
|
483
486
|
if (Date.now() - Number(row.created_at) >= _RevenueReporter.ABANDON_AFTER_MS) {
|
|
484
487
|
await this.markStale(row.id, "abandoned");
|
|
485
|
-
|
|
486
|
-
|
|
488
|
+
diagnosticConsole.warn(
|
|
489
|
+
{
|
|
487
490
|
level: "revenue_reporter_abandoned",
|
|
488
491
|
id: row.id,
|
|
489
492
|
kind: row.kind,
|
|
@@ -494,7 +497,7 @@ var RevenueReporter = class _RevenueReporter {
|
|
|
494
497
|
// carries `rail`. An abandoned row is the one place an
|
|
495
498
|
// operator sees this payload at all, so don't log it blank.
|
|
496
499
|
rail: row.payload.rail ?? row.payload.method
|
|
497
|
-
}
|
|
500
|
+
}
|
|
498
501
|
);
|
|
499
502
|
continue;
|
|
500
503
|
}
|
|
@@ -511,7 +514,7 @@ var RevenueReporter = class _RevenueReporter {
|
|
|
511
514
|
}
|
|
512
515
|
}
|
|
513
516
|
} catch (err) {
|
|
514
|
-
|
|
517
|
+
diagnosticConsole.error("[revenue-reporter] Retry loop error:", err);
|
|
515
518
|
}
|
|
516
519
|
}
|
|
517
520
|
async enqueue(kind, payload, label) {
|
|
@@ -543,31 +546,31 @@ var RevenueReporter = class _RevenueReporter {
|
|
|
543
546
|
});
|
|
544
547
|
} catch (err) {
|
|
545
548
|
const reason = err instanceof Error ? err.message : String(err);
|
|
546
|
-
|
|
549
|
+
diagnosticConsole.warn(
|
|
547
550
|
`[revenue-reporter] delivery failed for ${id}: transport error (${reason}) \u2014 will retry`
|
|
548
551
|
);
|
|
549
552
|
throw err;
|
|
550
553
|
}
|
|
551
554
|
if (res.ok) {
|
|
552
555
|
await this.db.query(`DELETE FROM ${PENDING_DVM_REPORTS_TABLE} WHERE id = $1`, [id]);
|
|
553
|
-
|
|
556
|
+
diagnosticConsole.log(`[revenue-reporter] reported ${kind} ${label}`);
|
|
554
557
|
return;
|
|
555
558
|
}
|
|
556
559
|
if (res.status === 401) {
|
|
557
560
|
await this.markStale(id, "token_rotated");
|
|
558
|
-
|
|
561
|
+
diagnosticConsole.warn(
|
|
559
562
|
`[revenue-reporter] Report ${id} got 401 \u2014 marking stale (token likely rotated)`
|
|
560
563
|
);
|
|
561
564
|
return;
|
|
562
565
|
}
|
|
563
566
|
if (res.status >= 400 && res.status < 500) {
|
|
564
567
|
await this.markStale(id, `client_error:${res.status}`);
|
|
565
|
-
|
|
568
|
+
diagnosticConsole.warn(
|
|
566
569
|
`[revenue-reporter] Report ${id} got HTTP ${res.status} \u2014 marking stale (permanent client error, will not retry)`
|
|
567
570
|
);
|
|
568
571
|
return;
|
|
569
572
|
}
|
|
570
|
-
|
|
573
|
+
diagnosticConsole.warn(`[revenue-reporter] delivery failed for ${id}: HTTP ${res.status} \u2014 will retry`);
|
|
571
574
|
throw new Error(`Platform returned ${res.status}`);
|
|
572
575
|
}
|
|
573
576
|
async markStale(id, reason) {
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import {
|
|
2
|
+
diagnosticConsole
|
|
3
|
+
} from "./chunk-ETXDTUJO.js";
|
|
4
|
+
|
|
1
5
|
// src/sdk/pricing/currency.ts
|
|
2
6
|
var InvalidCurrencyError = class extends Error {
|
|
3
7
|
code = "invalid_currency";
|
|
@@ -212,14 +216,14 @@ function warnPartialRates(source, snapshot, episode) {
|
|
|
212
216
|
if (carried.length === 0 && unavailable.length === 0) return null;
|
|
213
217
|
const key = `${carried.join(",")}|${unavailable.join(",")}`;
|
|
214
218
|
if (key === episode) return episode;
|
|
215
|
-
|
|
216
|
-
|
|
219
|
+
diagnosticConsole.warn(
|
|
220
|
+
{
|
|
217
221
|
level: "warn",
|
|
218
222
|
event: "fx_rates_partial",
|
|
219
223
|
source,
|
|
220
224
|
...carried.length > 0 && { carried_forward: carried },
|
|
221
225
|
...unavailable.length > 0 && { unavailable }
|
|
222
|
-
}
|
|
226
|
+
}
|
|
223
227
|
);
|
|
224
228
|
return key;
|
|
225
229
|
}
|
|
@@ -765,7 +765,7 @@ function recordPendingDrain(endpoint, callerPubkey, drain, identity) {
|
|
|
765
765
|
);
|
|
766
766
|
if (index === -1) drains.push(drain);
|
|
767
767
|
else drains[index] = drain;
|
|
768
|
-
record.pendingDrains =
|
|
768
|
+
record.pendingDrains = drains;
|
|
769
769
|
return void 0;
|
|
770
770
|
});
|
|
771
771
|
}
|
|
@@ -879,7 +879,6 @@ function adoptCreditId(record, creditId) {
|
|
|
879
879
|
delete record.discrepancy;
|
|
880
880
|
delete record.lastReceiptJobId;
|
|
881
881
|
}
|
|
882
|
-
var MAX_PENDING_DRAINS = 8;
|
|
883
882
|
var MAX_SETTLED_DRAIN_EVIDENCE = 8;
|
|
884
883
|
var MAX_LOST_IMPLICIT_CREDITS = 8;
|
|
885
884
|
var MAX_DATE_MS = 864e13;
|
|
@@ -1285,17 +1284,6 @@ function isEvidenceish(value) {
|
|
|
1285
1284
|
function isDrainish(value) {
|
|
1286
1285
|
return typeof value === "object" && value !== null && typeof value.drainId === "string";
|
|
1287
1286
|
}
|
|
1288
|
-
function capPendingDrains(drains, creditId) {
|
|
1289
|
-
if (drains.length <= MAX_PENDING_DRAINS) return drains;
|
|
1290
|
-
const evictable = drains.filter((d) => d.creditId !== creditId).sort((a, b) => a.requestedAt - b.requestedAt);
|
|
1291
|
-
const dropped = new Set(evictable.slice(0, drains.length - MAX_PENDING_DRAINS));
|
|
1292
|
-
for (const d of dropped) {
|
|
1293
|
-
info(
|
|
1294
|
-
`Dropping the oldest unclaimed drain record (${d.drainId}${d.creditId ? ` on credit ${d.creditId}` : ""}) \u2014 ${String(MAX_PENDING_DRAINS)} is the most this DVM's record keeps.`
|
|
1295
|
-
);
|
|
1296
|
-
}
|
|
1297
|
-
return drains.filter((d) => !dropped.has(d));
|
|
1298
|
-
}
|
|
1299
1287
|
function capDrainEvidence(evidence, endpoint) {
|
|
1300
1288
|
const settled = evidence.filter((e) => e.settledAt !== void 0).sort((a, b) => (a.settledAt ?? 0) - (b.settledAt ?? 0));
|
|
1301
1289
|
if (settled.length <= MAX_SETTLED_DRAIN_EVIDENCE) return evidence;
|
|
@@ -5,6 +5,9 @@ import {
|
|
|
5
5
|
signedRequestStatementHeader,
|
|
6
6
|
testOnlySignedRequestDomain
|
|
7
7
|
} from "./chunk-KXZUCCEY.js";
|
|
8
|
+
import {
|
|
9
|
+
diagnosticConsole
|
|
10
|
+
} from "./chunk-ETXDTUJO.js";
|
|
8
11
|
|
|
9
12
|
// src/sdk/server/zod-error.ts
|
|
10
13
|
function humanizeZodError(err, opts) {
|
|
@@ -292,14 +295,14 @@ function createDefaultReplayStore() {
|
|
|
292
295
|
if (entries.size >= DEFAULT_REPLAY_CAP) {
|
|
293
296
|
if (t - lastSaturationWarnAt >= SATURATION_WARN_INTERVAL_SECONDS) {
|
|
294
297
|
lastSaturationWarnAt = t;
|
|
295
|
-
|
|
296
|
-
|
|
298
|
+
diagnosticConsole.warn(
|
|
299
|
+
{
|
|
297
300
|
level: "warn",
|
|
298
301
|
event: "signed_request_replay_store_saturated",
|
|
299
|
-
message:
|
|
302
|
+
message: void 0,
|
|
300
303
|
cap: DEFAULT_REPLAY_CAP,
|
|
301
304
|
window_seconds: DEFAULT_REPLAY_WINDOW_SECONDS
|
|
302
|
-
}
|
|
305
|
+
}
|
|
303
306
|
);
|
|
304
307
|
}
|
|
305
308
|
return Promise.resolve(true);
|