@artblocks/abx-token-api 0.1.0-alpha.5 → 0.1.0-alpha.51
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/CHANGELOG.md +165 -0
- package/dist/code.d.ts +33 -12
- package/dist/code.d.ts.map +1 -1
- package/dist/code.js +68 -56
- package/dist/code.js.map +1 -1
- package/dist/{art.d.ts → content.d.ts} +5 -5
- package/dist/content.d.ts.map +1 -0
- package/dist/{art.js → content.js} +6 -6
- package/dist/content.js.map +1 -0
- package/dist/control-plane.d.ts +24 -13
- package/dist/control-plane.d.ts.map +1 -1
- package/dist/control-plane.js +289 -43
- package/dist/control-plane.js.map +1 -1
- package/dist/dashboard.d.ts.map +1 -1
- package/dist/dashboard.js +55 -8
- package/dist/dashboard.js.map +1 -1
- package/dist/deps.d.ts +28 -110
- package/dist/deps.d.ts.map +1 -1
- package/dist/deps.js +34 -184
- package/dist/deps.js.map +1 -1
- package/dist/index.d.ts +8 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -11
- package/dist/index.js.map +1 -1
- package/dist/metadata.d.ts +87 -4
- package/dist/metadata.d.ts.map +1 -1
- package/dist/metadata.js +343 -105
- package/dist/metadata.js.map +1 -1
- package/dist/resolve.d.ts +0 -2
- package/dist/resolve.d.ts.map +1 -1
- package/dist/resolve.js +0 -5
- package/dist/resolve.js.map +1 -1
- package/dist/server.d.ts +5 -2
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +282 -71
- package/dist/server.js.map +1 -1
- package/dist/watcher.d.ts +1 -1
- package/dist/watcher.d.ts.map +1 -1
- package/dist/watcher.js +137 -8
- package/dist/watcher.js.map +1 -1
- package/package.json +9 -8
- package/dist/abxjs.d.ts +0 -13
- package/dist/abxjs.d.ts.map +0 -1
- package/dist/abxjs.js +0 -49
- package/dist/abxjs.js.map +0 -1
- package/dist/art.d.ts.map +0 -1
- package/dist/art.js.map +0 -1
- package/dist/inline.d.ts +0 -19
- package/dist/inline.d.ts.map +0 -1
- package/dist/inline.js +0 -23
- package/dist/inline.js.map +0 -1
package/dist/control-plane.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The /v1 control plane + the service descriptor — the resolver's ONE write surface, speaking the
|
|
3
|
-
* provider-neutral interface pinned by
|
|
4
|
-
* is index/metadata control (register, list, deregister, reindex, status,
|
|
3
|
+
* provider-neutral interface pinned by site/content/docs/using-abx/remote-services.mdx. Everything here
|
|
4
|
+
* is index/metadata control (register, list, deregister, reindex, status, artifact registration): the
|
|
5
5
|
* bearer token never signs anything on-chain, so the "no signing key on the host" rule is intact.
|
|
6
6
|
*
|
|
7
7
|
* This module never imports server.ts (one-way dependency), which is why the shared HTTP helpers
|
|
@@ -11,17 +11,64 @@ import { timingSafeEqual } from 'node:crypto';
|
|
|
11
11
|
import { readFileSync } from 'node:fs';
|
|
12
12
|
import { join, resolve } from 'node:path';
|
|
13
13
|
import { fileURLToPath } from 'node:url';
|
|
14
|
-
import { discoverDeployBlock, normalizeAttributes, renderArtifactKey, resolveChain,
|
|
14
|
+
import { discoverDeployBlock, findAnchorGenerationById, findAnchorGenerationForProject, isBoundOutput, locatorRejectionReason, normalizeAttributes, renderArtifactKey, resolveChain, summarizeAnchorGeneration, BOUND_ARTIFACT_MAX_BYTES, CONTROL_PLANE_INTERFACE, TOKEN_API_INTERFACE, } from '@artblocks/abx-sdk';
|
|
15
15
|
import { notifyEffects, watchIntervalMs } from './watcher.js';
|
|
16
16
|
export function sendJson(res, status, body) {
|
|
17
17
|
res.writeHead(status, { 'content-type': 'application/json; charset=utf-8' });
|
|
18
18
|
res.end(JSON.stringify(body, null, 2));
|
|
19
19
|
}
|
|
20
20
|
/** Every non-2xx control-plane response: `{error: <human>, code: <machine>}` — clients key off
|
|
21
|
-
* `code`, never off prose (
|
|
22
|
-
function sendError(res, status, code, message, extra) {
|
|
21
|
+
* `code`, never off prose (site/content/docs/using-abx/remote-services.mdx → Errors). */
|
|
22
|
+
export function sendError(res, status, code, message, extra) {
|
|
23
23
|
sendJson(res, status, { error: message, code, ...extra });
|
|
24
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* How long a register/reindex may hold the HTTP request open before answering `202 backfilling` and
|
|
27
|
+
* finishing in the background. Registration is durable BEFORE catch-up starts, so the deadline only
|
|
28
|
+
* decides who waits — never whether the add survives.
|
|
29
|
+
*
|
|
30
|
+
* The default keeps the common case synchronous (a fresh deploy is a few-hundred-block window: the
|
|
31
|
+
* client gets real counts, which is the honest answer) and stops the pathological case from holding a
|
|
32
|
+
* socket for minutes (a cold replay of an old contract on a rate-limited RPC — the case where the
|
|
33
|
+
* client used to time out and re-POST, doubling the load on the RPC that was already the problem).
|
|
34
|
+
*/
|
|
35
|
+
function registerDeadlineMs() {
|
|
36
|
+
const raw = process.env.ABX_REGISTER_DEADLINE_MS;
|
|
37
|
+
if (raw === undefined || raw === '')
|
|
38
|
+
return 8_000;
|
|
39
|
+
const n = Number(raw);
|
|
40
|
+
return Number.isFinite(n) && n >= 0 ? n : 8_000;
|
|
41
|
+
}
|
|
42
|
+
/** Resolve to the catch-up result if it finishes within the deadline, else `undefined` — the work
|
|
43
|
+
* keeps running either way (the caller must attach its own completion/failure handling). */
|
|
44
|
+
async function withinDeadline(work, ms) {
|
|
45
|
+
let timer;
|
|
46
|
+
const deadline = new Promise((resolve) => {
|
|
47
|
+
timer = setTimeout(() => resolve(undefined), ms);
|
|
48
|
+
});
|
|
49
|
+
try {
|
|
50
|
+
// The rejection case belongs to the caller's handler; here a failure just means "not finished
|
|
51
|
+
// in time with a result", and the caller reports the recorded status instead.
|
|
52
|
+
return await Promise.race([work.catch(() => undefined), deadline]);
|
|
53
|
+
}
|
|
54
|
+
finally {
|
|
55
|
+
clearTimeout(timer);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/** The lifecycle state to report for a project right now — never a silent nothing (see
|
|
59
|
+
* `SelfHostIndexer.indexStatus` for what an unstamped registration reads as). */
|
|
60
|
+
function indexStatusOf(ctx, address) {
|
|
61
|
+
return ctx.indexer.indexStatus(address).status;
|
|
62
|
+
}
|
|
63
|
+
/** The lifecycle fields shared by the status route and the register/reindex responses. */
|
|
64
|
+
function lifecycle(ctx, address) {
|
|
65
|
+
const row = ctx.indexer.indexStatus(address);
|
|
66
|
+
return {
|
|
67
|
+
status: row.status,
|
|
68
|
+
...(row.errorClass ? { error: { class: row.errorClass, ...(row.errorMessage ? { message: row.errorMessage } : {}) } } : {}),
|
|
69
|
+
attempts: row.attempts,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
25
72
|
/**
|
|
26
73
|
* The ONE bearer guard for every gated route: 404 code `disabled` when no token is configured on
|
|
27
74
|
* the host (the write surface honestly doesn't exist — the descriptor omits the control-plane
|
|
@@ -70,8 +117,67 @@ async function readJsonBody(req, maxBytes = 64 * 1024) {
|
|
|
70
117
|
return JSON.parse(Buffer.concat(chunks).toString('utf8'));
|
|
71
118
|
}
|
|
72
119
|
const ADDRESS_RE = /^0x[0-9a-fA-F]{40}$/;
|
|
120
|
+
/** Is this an ERC-1155 edition contract type (any of the three)? Mirrors the SDK's own
|
|
121
|
+
* three-way check (`reconstruct.ts`'s `isEdition`) — kept local rather than exported from the
|
|
122
|
+
* SDK, since this phase's SDK edits are additive-only in `service.ts`. */
|
|
123
|
+
function isEditionContractType(contractType) {
|
|
124
|
+
return contractType === '1of1-edition' || contractType === 'edition' || contractType === 'edition-code';
|
|
125
|
+
}
|
|
126
|
+
/** Sum of every token's current supply — the collector-facing "how many copies exist right now"
|
|
127
|
+
* figure, additive alongside `mintedCount` (which keeps meaning unchanged: `supply > 0`).
|
|
128
|
+
* `undefined` for a non-edition project, so a 721 status response is byte-identical to before. */
|
|
129
|
+
function copiesOf(s) {
|
|
130
|
+
if (!isEditionContractType(s.contractType))
|
|
131
|
+
return undefined;
|
|
132
|
+
let total = 0n;
|
|
133
|
+
for (const t of s.tokens)
|
|
134
|
+
total += BigInt(t.supply ?? '0');
|
|
135
|
+
return total.toString();
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* How many ids are live, and how many were destroyed.
|
|
139
|
+
*
|
|
140
|
+
* `mintedCount` counts live ids, so it decreases when a burnable token is destroyed.
|
|
141
|
+
* `burnedCount` is omitted when zero, deliberately: a project with no burns serves byte-identical
|
|
142
|
+
* JSON to before, which keeps a consumer's fixtures (and their parity audit) honest about what
|
|
143
|
+
* actually changed. Both figures are the same shape the hosted resolver settled on, so the two
|
|
144
|
+
* implementations agree on the wire rather than each inventing a name.
|
|
145
|
+
*/
|
|
146
|
+
function tokenCounts(s) {
|
|
147
|
+
let live = 0;
|
|
148
|
+
let burned = 0;
|
|
149
|
+
for (const t of s.tokens) {
|
|
150
|
+
if (t.lifecycle === 'live')
|
|
151
|
+
live++;
|
|
152
|
+
// `'burned'` is terminal and 721-only, so this counts destroyed tokens and nothing else. An
|
|
153
|
+
// edition's zero-supply ids fold to `'no-live-copies'` and are deliberately not counted here:
|
|
154
|
+
// they may mint again, and `copies` already reports live copies for that lane.
|
|
155
|
+
else if (t.lifecycle === 'burned')
|
|
156
|
+
burned++;
|
|
157
|
+
}
|
|
158
|
+
return { mintedCount: live, ...(burned ? { burnedCount: burned } : {}) };
|
|
159
|
+
}
|
|
160
|
+
/** Explicit adapter/support claim for this service build. Append only after its tests pass. */
|
|
161
|
+
export const SUPPORTED_CONTRACT_GENERATION_IDS = ['abx-core-v3', 'abx-core-v2'];
|
|
162
|
+
const supportedGenerationIds = new Set(SUPPORTED_CONTRACT_GENERATION_IDS);
|
|
163
|
+
function supportedContractGenerations() {
|
|
164
|
+
return SUPPORTED_CONTRACT_GENERATION_IDS.map((id) => {
|
|
165
|
+
const generation = findAnchorGenerationById(id);
|
|
166
|
+
if (!generation)
|
|
167
|
+
throw new Error(`Unknown supported contract generation: ${id}`);
|
|
168
|
+
return summarizeAnchorGeneration(generation);
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
function contractGenerationOf(s) {
|
|
172
|
+
const generation = findAnchorGenerationForProject(s);
|
|
173
|
+
return generation && supportedGenerationIds.has(generation.id)
|
|
174
|
+
? summarizeAnchorGeneration(generation)
|
|
175
|
+
: undefined;
|
|
176
|
+
}
|
|
73
177
|
/** The one-line project summary shared by `GET /api/projects` and the register/reindex responses. */
|
|
74
178
|
export function summarize(s) {
|
|
179
|
+
const copies = copiesOf(s);
|
|
180
|
+
const contractGeneration = contractGenerationOf(s);
|
|
75
181
|
return {
|
|
76
182
|
address: s.address,
|
|
77
183
|
name: s.name,
|
|
@@ -79,10 +185,12 @@ export function summarize(s) {
|
|
|
79
185
|
owner: s.owner,
|
|
80
186
|
abxVersion: s.abxVersion,
|
|
81
187
|
isCanonical: s.isCanonical,
|
|
188
|
+
...(contractGeneration ? { contractGeneration } : {}),
|
|
82
189
|
extensions: s.extensions.map((e) => e.name),
|
|
83
190
|
eventCount: s.eventCount,
|
|
84
191
|
tokenCount: s.tokens.length,
|
|
85
|
-
|
|
192
|
+
...tokenCounts(s),
|
|
193
|
+
...(copies !== undefined ? { copies } : {}),
|
|
86
194
|
reconstructedAt: s.reconstructedAt,
|
|
87
195
|
};
|
|
88
196
|
}
|
|
@@ -165,21 +273,23 @@ async function probeRunnerEffects(url) {
|
|
|
165
273
|
}
|
|
166
274
|
/**
|
|
167
275
|
* `GET /.well-known/abx-service` — what this node supports, agent-readably (public, no auth).
|
|
168
|
-
* The control-plane
|
|
169
|
-
*
|
|
170
|
-
*
|
|
171
|
-
*
|
|
172
|
-
*
|
|
276
|
+
* The control-plane interface (and `auth`) appears iff the bearer token is configured: a token-less
|
|
277
|
+
* self-host node honestly advertises no remote control surface — which is how a client tells
|
|
278
|
+
* "disabled" from "wrong URL". The artifact-registry routes ride `abx-control-plane/v1` rather than
|
|
279
|
+
* an id of their own: once referenced output is locator-only, accepting a registration is a database
|
|
280
|
+
* insert, so there is no infrastructure a node could lack that would justify a separate capability
|
|
281
|
+
* flag. `render` appears when a runner rides behind this resolver (ABX_EFFECTS_URL); its declared
|
|
282
|
+
* effects come from a best-effort `/health` probe. Provider identity (name, signup/docs URLs) is
|
|
283
|
+
* deployment env — no provider ships in this code.
|
|
173
284
|
*/
|
|
174
285
|
export async function serviceDescriptor(ctx) {
|
|
175
286
|
const controlPlane = !!process.env.ABX_RESOLVER_ADMIN_TOKEN;
|
|
176
287
|
const pkg = packageIdentity();
|
|
177
288
|
const descriptor = {
|
|
178
289
|
service: { name: process.env.ABX_SERVICE_NAME ?? pkg.name, version: pkg.version },
|
|
179
|
-
interfaces: controlPlane
|
|
180
|
-
? [TOKEN_API_INTERFACE, CONTROL_PLANE_INTERFACE, EFFECTS_PUBLISH_INTERFACE]
|
|
181
|
-
: [TOKEN_API_INTERFACE],
|
|
290
|
+
interfaces: controlPlane ? [TOKEN_API_INTERFACE, CONTROL_PLANE_INTERFACE] : [TOKEN_API_INTERFACE],
|
|
182
291
|
chains: [ctx.chainId],
|
|
292
|
+
contractGenerations: supportedContractGenerations(),
|
|
183
293
|
baseUrl: ctx.baseUrl,
|
|
184
294
|
};
|
|
185
295
|
if (controlPlane) {
|
|
@@ -274,8 +384,8 @@ function checkChain(res, ctx, value) {
|
|
|
274
384
|
* post-deploy "nudge" that pulls events that landed since.
|
|
275
385
|
*
|
|
276
386
|
* We deliberately do NOT factory-scope here: if you operate this node and you tell it a contract,
|
|
277
|
-
* it does its best to index it.
|
|
278
|
-
*
|
|
387
|
+
* it does its best to index it. Factory allowlisting is a multi-tenant-provider policy, not a
|
|
388
|
+
* self-hosting requirement.
|
|
279
389
|
*/
|
|
280
390
|
async function registerProject(req, res, ctx) {
|
|
281
391
|
const { indexer } = ctx;
|
|
@@ -335,6 +445,8 @@ async function registerProject(req, res, ctx) {
|
|
|
335
445
|
if (body.contentLocators !== undefined) {
|
|
336
446
|
contentLocators = mergeLocators(existing?.contentLocators, body.contentLocators);
|
|
337
447
|
}
|
|
448
|
+
// DURABLE FIRST (normative): the registration is written before any catch-up, so a flaky RPC
|
|
449
|
+
// mid-reconstruct can never lose the add — it becomes a slower backfill, not a failed request.
|
|
338
450
|
indexer.register({
|
|
339
451
|
address: address,
|
|
340
452
|
chainKey: ctx.chainKey,
|
|
@@ -347,9 +459,62 @@ async function registerProject(req, res, ctx) {
|
|
|
347
459
|
tokenAttributes,
|
|
348
460
|
contentLocators,
|
|
349
461
|
});
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
462
|
+
return catchUpAndRespond(res, ctx, address, { full });
|
|
463
|
+
}
|
|
464
|
+
/**
|
|
465
|
+
* Start (or join) catch-up and answer in one of the two conformant shapes: `200` with the completed
|
|
466
|
+
* summary when it lands inside the deadline, `202` + the lifecycle state when it doesn't. Shared by
|
|
467
|
+
* register and reindex so both branches behave identically.
|
|
468
|
+
*
|
|
469
|
+
* Single process, no queue: the work continues on the same event loop after the 202 goes out, and
|
|
470
|
+
* `reindexShared` guarantees a second POST joins that run instead of starting a rival reconstruct.
|
|
471
|
+
*/
|
|
472
|
+
async function catchUpAndRespond(res, ctx, address, opts) {
|
|
473
|
+
const { indexer } = ctx;
|
|
474
|
+
const work = indexer.reindexShared(address, opts);
|
|
475
|
+
// Attach terminal handling ONCE, up front: whichever way we answer, a completed catch-up must
|
|
476
|
+
// notify the effects layer and a failed one must not surface as an unhandled rejection (its status
|
|
477
|
+
// is already recorded by reindex()).
|
|
478
|
+
let finished = false;
|
|
479
|
+
const settled = work.then((r) => {
|
|
480
|
+
finished = true;
|
|
481
|
+
notifyEffects(address);
|
|
482
|
+
return r;
|
|
483
|
+
}, (err) => {
|
|
484
|
+
finished = true;
|
|
485
|
+
console.error(`[control-plane] catch-up failed for ${address}: ${err.message}`);
|
|
486
|
+
return undefined;
|
|
487
|
+
});
|
|
488
|
+
const done = await withinDeadline(settled, registerDeadlineMs());
|
|
489
|
+
if (!done && !finished) {
|
|
490
|
+
// About to tell the client "wait": make sure the stored state says so. An INCREMENTAL catch-up
|
|
491
|
+
// deliberately keeps its prior status (so a live project doesn't flicker on every watcher tick) —
|
|
492
|
+
// but a client polling a run we deferred must not read `live` and stop waiting on stale counts.
|
|
493
|
+
// Guarded by `finished` so a run that just completed keeps its own `live`/`failed`.
|
|
494
|
+
const current = indexStatusOf(ctx, address);
|
|
495
|
+
if (current !== 'backfilling' && current !== 'failed') {
|
|
496
|
+
indexer.store.setIndexStatus(address, { status: 'backfilling' });
|
|
497
|
+
}
|
|
498
|
+
}
|
|
499
|
+
if (done) {
|
|
500
|
+
return sendJson(res, 200, {
|
|
501
|
+
ok: true,
|
|
502
|
+
mode: done.mode,
|
|
503
|
+
elapsedMs: done.elapsedMs,
|
|
504
|
+
project: { ...summarize(done.state), status: indexStatusOf(ctx, address) },
|
|
505
|
+
});
|
|
506
|
+
}
|
|
507
|
+
// Still working (or it failed and the client should read the class from status, not from a 500 that
|
|
508
|
+
// would imply the registration didn't land).
|
|
509
|
+
return sendJson(res, 202, {
|
|
510
|
+
ok: true,
|
|
511
|
+
accepted: true,
|
|
512
|
+
project: {
|
|
513
|
+
address,
|
|
514
|
+
name: indexer.getProject(address)?.name ?? null,
|
|
515
|
+
...lifecycle(ctx, address),
|
|
516
|
+
},
|
|
517
|
+
});
|
|
353
518
|
}
|
|
354
519
|
/** `GET /v1/projects` — the projects visible to this token. Single-tenant reference: the token IS
|
|
355
520
|
* the node's one credential, so it sees every registration. */
|
|
@@ -363,14 +528,23 @@ function listProjects(res, ctx) {
|
|
|
363
528
|
catch {
|
|
364
529
|
/* unknown stored key — fall back to the node's chain */
|
|
365
530
|
}
|
|
531
|
+
// `status` (+ the error CLASS, never the hint) rides the list so a client renders
|
|
532
|
+
// "3 live, 1 backfilling, 1 failed (rpc_rate_limited)" without a round trip per project.
|
|
533
|
+
const life = lifecycle(ctx, reg.address);
|
|
534
|
+
const copies = state ? copiesOf(state) : undefined;
|
|
535
|
+
const contractGeneration = state ? contractGenerationOf(state) : undefined;
|
|
366
536
|
return {
|
|
367
537
|
chainId,
|
|
368
538
|
address: reg.address,
|
|
369
539
|
label: reg.label ?? null,
|
|
370
540
|
name: state?.name ?? null,
|
|
541
|
+
status: life.status,
|
|
542
|
+
...(life.error ? { error: { class: life.error.class } } : {}),
|
|
371
543
|
eventCount: state?.eventCount ?? 0,
|
|
372
544
|
tokenCount: state?.tokens.length ?? 0,
|
|
373
|
-
|
|
545
|
+
...(state ? tokenCounts(state) : { mintedCount: 0 }),
|
|
546
|
+
...(copies !== undefined ? { copies } : {}),
|
|
547
|
+
...(contractGeneration ? { contractGeneration } : {}),
|
|
374
548
|
reconstructedAt: state?.reconstructedAt ?? null,
|
|
375
549
|
};
|
|
376
550
|
});
|
|
@@ -390,50 +564,91 @@ async function reindexProject(res, ctx, address) {
|
|
|
390
564
|
if (!ctx.indexer.store.getRegistration(address)) {
|
|
391
565
|
return sendError(res, 404, 'not_registered', 'not registered');
|
|
392
566
|
}
|
|
393
|
-
|
|
394
|
-
notifyEffects(address);
|
|
395
|
-
return sendJson(res, 200, { ok: true, mode, elapsedMs, project: summarize(state) });
|
|
567
|
+
return catchUpAndRespond(res, ctx, address, { full: true });
|
|
396
568
|
}
|
|
397
569
|
/** `GET /v1/projects/{chainId}/{address}/status` — indexing freshness: the registration's floor,
|
|
398
570
|
* the projection's watermarks, and the chain watcher's liveness (all already in the store). */
|
|
399
|
-
function projectStatus(res, ctx, address) {
|
|
571
|
+
async function projectStatus(res, ctx, address) {
|
|
400
572
|
const reg = ctx.indexer.store.getRegistration(address);
|
|
401
573
|
if (!reg)
|
|
402
574
|
return sendError(res, 404, 'not_registered', 'not registered');
|
|
403
575
|
const state = ctx.indexer.getProject(address);
|
|
404
576
|
const pollAt = ctx.indexer.store.getMeta('watch:pollAt');
|
|
577
|
+
// The head the watcher last saw. Top-level (not just under `watcher`) because it's what a client
|
|
578
|
+
// computes lag / "N of M blocks" from, and it must not require knowing this node HAS a watcher.
|
|
579
|
+
const watcherHead = ctx.indexer.store.getMeta(`watch:${reg.chainKey}:head`);
|
|
580
|
+
// No watcher head yet (a fresh node's first backfill — exactly when a client most wants a
|
|
581
|
+
// percentage, and when it's most likely to be polling) ⇒ read head once, cached.
|
|
582
|
+
const head = watcherHead ?? (await cachedHead(ctx, reg.chainKey));
|
|
583
|
+
const copies = state ? copiesOf(state) : undefined;
|
|
584
|
+
const contractGeneration = state ? contractGenerationOf(state) : undefined;
|
|
405
585
|
return sendJson(res, 200, {
|
|
406
586
|
chainId: ctx.chainId,
|
|
407
587
|
address: reg.address,
|
|
588
|
+
...lifecycle(ctx, address),
|
|
408
589
|
fromBlock: reg.fromBlock,
|
|
409
590
|
toBlock: state?.toBlock ?? null,
|
|
591
|
+
headBlock: head,
|
|
410
592
|
eventCount: state?.eventCount ?? 0,
|
|
411
593
|
tokenCount: state?.tokens.length ?? 0,
|
|
412
|
-
|
|
594
|
+
...(state ? tokenCounts(state) : { mintedCount: 0 }),
|
|
595
|
+
...(copies !== undefined ? { copies } : {}),
|
|
596
|
+
...(contractGeneration ? { contractGeneration } : {}),
|
|
413
597
|
reconstructedAt: state?.reconstructedAt ?? null,
|
|
414
598
|
watcher: {
|
|
415
599
|
watching: pollAt !== null,
|
|
416
600
|
pollAt,
|
|
417
|
-
head:
|
|
601
|
+
head: watcherHead,
|
|
418
602
|
intervalMs: watchIntervalMs(),
|
|
419
603
|
},
|
|
420
604
|
});
|
|
421
605
|
}
|
|
606
|
+
// Head is per-chain and moves slowly relative to a client's poll cadence, so one cached read serves
|
|
607
|
+
// a whole wait loop. Best-effort by design: a status read must never fail because the RPC is down —
|
|
608
|
+
// that's precisely when a caller needs the status.
|
|
609
|
+
let headCache = null;
|
|
610
|
+
const HEAD_CACHE_MS = 5_000;
|
|
611
|
+
async function cachedHead(ctx, chainKey) {
|
|
612
|
+
if (headCache && headCache.chainKey === chainKey && Date.now() - headCache.at < HEAD_CACHE_MS)
|
|
613
|
+
return headCache.head;
|
|
614
|
+
try {
|
|
615
|
+
const head = (await ctx.indexer.publicClient(chainKey).getBlockNumber()).toString();
|
|
616
|
+
headCache = { at: Date.now(), chainKey, head };
|
|
617
|
+
return head;
|
|
618
|
+
}
|
|
619
|
+
catch {
|
|
620
|
+
return null;
|
|
621
|
+
}
|
|
622
|
+
}
|
|
422
623
|
/**
|
|
423
624
|
* `POST /v1/effect-artifacts {chainId, address, tokenId, inputsHash, output?, effectKey?, locator? |
|
|
424
|
-
* bytes_base64?, contentType?}` — a conforming
|
|
425
|
-
*
|
|
426
|
-
*
|
|
427
|
-
*
|
|
428
|
-
*
|
|
625
|
+
* bytes_base64?, contentType?}` — a conforming producer REGISTERS one render output so a resolver
|
|
626
|
+
* that does NOT share the producer's storage disk can serve it. A pointer registry, not an upload
|
|
627
|
+
* endpoint: which form is legal is decided by the output's BINDING, never by the producer
|
|
628
|
+
* (`site/content/docs/protocol/effects.mdx → Bound vs referenced`):
|
|
629
|
+
* - **referenced** (`render/image`, a video, a model, any output this node can't stitch) → `locator`
|
|
630
|
+
* (ipfs://<cid> | ar://<txid> | https://…), stored as a pointer; the read plane 302-redirects to
|
|
631
|
+
* it and never proxies. `bytes_base64` here is a 400: this node would gain no capability from the
|
|
632
|
+
* bytes (it redirects either way) and would acquire an object store, retention and egress.
|
|
633
|
+
* - **bound** (`render/traits`) → `bytes_base64`, ≤64KB, held next to the row. A locator here is
|
|
634
|
+
* also a 400 — the content stitches into the metadata JSON, so a locator would put a third-party
|
|
635
|
+
* fetch on `tokenURI` (and, historically, was recorded and then silently never stitched).
|
|
636
|
+
* Both refusals are loud on purpose: accept-and-drop leaves a token permanently unrenderable, or
|
|
637
|
+
* serves a confidently wrong answer, with nothing for the producer to act on.
|
|
638
|
+
* This node NEVER fetches a locator while handling the request — that would be byte custody through
|
|
639
|
+
* the back door plus an SSRF surface on an authed route.
|
|
640
|
+
* The artifact key is computed from the producer-supplied `inputsHash` — NOT recomputed from current
|
|
429
641
|
* state — so a render is never re-addressed to a state it doesn't depict (a param change instead makes
|
|
430
642
|
* it unreachable, the correct self-invalidation). Bearer-gated; never signs on-chain.
|
|
431
643
|
*/
|
|
432
644
|
async function publishEffectArtifact(req, res, ctx) {
|
|
433
|
-
const { indexer
|
|
645
|
+
const { indexer } = ctx;
|
|
434
646
|
let body;
|
|
435
647
|
try {
|
|
436
|
-
|
|
648
|
+
// Bound bytes are capped at 64KB; base64 inflates by 4/3, and the rest of the body is small.
|
|
649
|
+
// (This used to allow 8MB so a thumbnail could be pushed as bytes — exactly the custody this
|
|
650
|
+
// route no longer accepts.)
|
|
651
|
+
body = await readJsonBody(req, Math.ceil((BOUND_ARTIFACT_MAX_BYTES * 4) / 3) + 8 * 1024);
|
|
437
652
|
}
|
|
438
653
|
catch (err) {
|
|
439
654
|
return sendError(res, 400, 'invalid_request', err.message);
|
|
@@ -458,22 +673,53 @@ async function publishEffectArtifact(req, res, ctx) {
|
|
|
458
673
|
const effectKey = typeof body.effectKey === 'string' && body.effectKey ? body.effectKey : 'render';
|
|
459
674
|
const contentType = body.contentType ?? (output === 'traits' ? 'application/json' : 'image/png');
|
|
460
675
|
const key = renderArtifactKey(ctx.chainId, address, tokenId, inputsHashHex, output, effectKey);
|
|
461
|
-
// BOTH
|
|
462
|
-
//
|
|
676
|
+
// BOTH classes register a row — the row is the `artifacts` manifest's enumeration surface. What
|
|
677
|
+
// differs is what rides with it: a locator (referenced) or the content itself (bound).
|
|
463
678
|
const row = { key, address, tokenId, effectKey, outputKey: output, inputsHash: inputsHashHex, contentType };
|
|
679
|
+
const bound = isBoundOutput(effectKey, output);
|
|
464
680
|
const locator = typeof body.locator === 'string' && body.locator ? body.locator : undefined;
|
|
465
|
-
if (locator) {
|
|
466
|
-
indexer.store.putEffectArtifact({ ...row, locator });
|
|
467
|
-
return sendJson(res, 200, { ok: true, mode: 'locator', key, output, locator });
|
|
468
|
-
}
|
|
469
681
|
const bytesB64 = typeof body.bytes_base64 === 'string' && body.bytes_base64 ? body.bytes_base64 : undefined;
|
|
470
|
-
if (
|
|
682
|
+
if (bound) {
|
|
683
|
+
// Bound: content only. A locator can never work here — the bytes stitch into the metadata JSON.
|
|
684
|
+
if (locator) {
|
|
685
|
+
return sendError(res, 400, 'invalid_request', `'${effectKey}/${output}' is a BOUND output — its content stitches into the token JSON, so it must be published as body.bytes_base64, not a locator. ` +
|
|
686
|
+
`A locator would be recorded here and then never stitch (a wrong answer served confidently), and it would put a third-party fetch on tokenURI.`);
|
|
687
|
+
}
|
|
688
|
+
if (!bytesB64) {
|
|
689
|
+
return sendError(res, 400, 'invalid_request', `'${effectKey}/${output}' is a BOUND output — provide body.bytes_base64 (≤${BOUND_ARTIFACT_MAX_BYTES} bytes)`);
|
|
690
|
+
}
|
|
471
691
|
const bytes = new Uint8Array(Buffer.from(bytesB64, 'base64'));
|
|
472
|
-
|
|
473
|
-
|
|
692
|
+
if (bytes.length > BOUND_ARTIFACT_MAX_BYTES) {
|
|
693
|
+
return sendError(res, 400, 'invalid_request', `bound output '${effectKey}/${output}' is ${bytes.length} bytes — the cap is ${BOUND_ARTIFACT_MAX_BYTES}. ` +
|
|
694
|
+
`An output this size belongs in the producer's own storage, registered as a locator.`);
|
|
695
|
+
}
|
|
696
|
+
indexer.store.putEffectArtifact({ ...row, locator: null, bytes });
|
|
697
|
+
// Retention is this node's POLICY, not a conformance rule (the normative half is that superseded
|
|
698
|
+
// content is never served or stitched — so nothing may read it). We drop eagerly: rows at older
|
|
699
|
+
// hashes stay as provenance, their content goes. Otherwise every param change would add another
|
|
700
|
+
// copy and held bytes would grow without bound instead of being capped by supply.
|
|
701
|
+
indexer.store.pruneBoundArtifactBytes(address, tokenId, effectKey, output, inputsHashHex);
|
|
474
702
|
return sendJson(res, 200, { ok: true, mode: 'bytes', key, output, bytes: bytes.length });
|
|
475
703
|
}
|
|
476
|
-
|
|
704
|
+
// Referenced: locator only. We store the pointer and never fetch it — the read plane 302s.
|
|
705
|
+
if (bytesB64) {
|
|
706
|
+
return sendError(res, 400, 'invalid_request', `'${effectKey}/${output}' is a REFERENCED output — publish it as body.locator (an https://, ipfs:// or ar:// URI reachable without your credentials). ` +
|
|
707
|
+
`This node serves referenced output by redirect, so holding its bytes would gain it nothing and cost it object storage. ` +
|
|
708
|
+
`A producer that can't expose a locator needs a storage backend that can (S3/R2, IPFS, Arweave, or its own public base), or to run co-located with the resolver.`);
|
|
709
|
+
}
|
|
710
|
+
if (!locator) {
|
|
711
|
+
return sendError(res, 400, 'invalid_request', `'${effectKey}/${output}' is a REFERENCED output — provide body.locator (an https://, ipfs:// or ar:// URI)`);
|
|
712
|
+
}
|
|
713
|
+
// A locator is a REACHABILITY claim (any scheme; no durability preference — a gateway URL and an
|
|
714
|
+
// ipfs:// are peers here). We can't prove reachability without fetching, and fetching a
|
|
715
|
+
// third-party URL while handling an authed write is exactly the custody/SSRF surface this route
|
|
716
|
+
// refuses — so we reject what's decidable from the string: private hosts, and presigned URLs that
|
|
717
|
+
// would pass today and rot later.
|
|
718
|
+
const bad = locatorRejectionReason(locator);
|
|
719
|
+
if (bad)
|
|
720
|
+
return sendError(res, 400, 'invalid_request', `body.locator rejected: ${bad}`);
|
|
721
|
+
indexer.store.putEffectArtifact({ ...row, locator });
|
|
722
|
+
return sendJson(res, 200, { ok: true, mode: 'locator', key, output, locator });
|
|
477
723
|
}
|
|
478
724
|
/**
|
|
479
725
|
* `POST /v1/effect-status {chainId, key, address, tokenId, effectKey, status, error?, attempts?}` —
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"control-plane.js","sourceRoot":"","sources":["../src/control-plane.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"control-plane.js","sourceRoot":"","sources":["../src/control-plane.ts"],"names":[],"mappings":"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"}
|
package/dist/dashboard.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../src/dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../src/dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,YAAY,EAAkB,MAAM,oBAAoB,CAAC;AAsBjG;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAQ/F;AAED;wFACwF;AACxF,wBAAgB,WAAW,CAAC,QAAQ,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAe9F"}
|