@artblocks/abx-sdk 0.1.0-alpha.2 → 0.1.0-alpha.21
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 +2203 -0
- package/README.md +131 -0
- package/dist/abi/generated.d.ts +8502 -129
- package/dist/abi/generated.d.ts.map +1 -1
- package/dist/abi/generated.js +40 -22
- package/dist/abi/generated.js.map +1 -1
- package/dist/abi/index.d.ts +2645 -168
- package/dist/abi/index.d.ts.map +1 -1
- package/dist/abi/index.js +34 -7
- package/dist/abi/index.js.map +1 -1
- package/dist/anchors.d.ts +319 -0
- package/dist/anchors.d.ts.map +1 -0
- package/dist/anchors.js +703 -0
- package/dist/anchors.js.map +1 -0
- package/dist/chains.d.ts +15 -9
- package/dist/chains.d.ts.map +1 -1
- package/dist/chains.js +19 -15
- package/dist/chains.js.map +1 -1
- package/dist/chunks.d.ts +53 -23
- package/dist/chunks.d.ts.map +1 -1
- package/dist/chunks.js +68 -6
- package/dist/chunks.js.map +1 -1
- package/dist/clients.d.ts +23 -11
- package/dist/clients.d.ts.map +1 -1
- package/dist/clients.js +17 -18
- package/dist/clients.js.map +1 -1
- package/dist/create2.d.ts +85 -1
- package/dist/create2.d.ts.map +1 -1
- package/dist/create2.js +159 -2
- package/dist/create2.js.map +1 -1
- package/dist/creator-token.d.ts +132 -0
- package/dist/creator-token.d.ts.map +1 -0
- package/dist/creator-token.js +183 -0
- package/dist/creator-token.js.map +1 -0
- package/dist/deploy.d.ts +234 -14
- package/dist/deploy.d.ts.map +1 -1
- package/dist/deploy.js +289 -111
- package/dist/deploy.js.map +1 -1
- package/dist/deployments.d.ts +63 -0
- package/dist/deployments.d.ts.map +1 -1
- package/dist/deployments.js +202 -28
- package/dist/deployments.js.map +1 -1
- package/dist/deps.d.ts +122 -5
- package/dist/deps.d.ts.map +1 -1
- package/dist/deps.js +248 -6
- package/dist/deps.js.map +1 -1
- package/dist/env.d.ts.map +1 -1
- package/dist/env.js +8 -0
- package/dist/env.js.map +1 -1
- package/dist/errors.d.ts +94 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +126 -0
- package/dist/errors.js.map +1 -0
- package/dist/execute.d.ts +115 -0
- package/dist/execute.d.ts.map +1 -0
- package/dist/execute.js +142 -0
- package/dist/execute.js.map +1 -0
- package/dist/gateways.d.ts +79 -0
- package/dist/gateways.d.ts.map +1 -0
- package/dist/gateways.js +156 -0
- package/dist/gateways.js.map +1 -0
- package/dist/generator-document.d.ts +58 -0
- package/dist/generator-document.d.ts.map +1 -0
- package/dist/generator-document.js +124 -0
- package/dist/generator-document.js.map +1 -0
- package/dist/generator.d.ts +43 -1
- package/dist/generator.d.ts.map +1 -1
- package/dist/generator.js +29 -0
- package/dist/generator.js.map +1 -1
- package/dist/index.d.ts +18 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -3
- package/dist/index.js.map +1 -1
- package/dist/inspect.d.ts +48 -0
- package/dist/inspect.d.ts.map +1 -0
- package/dist/inspect.js +295 -0
- package/dist/inspect.js.map +1 -0
- package/dist/migrate.d.ts +41 -0
- package/dist/migrate.d.ts.map +1 -0
- package/dist/migrate.js +142 -0
- package/dist/migrate.js.map +1 -0
- package/dist/mime.d.ts +11 -0
- package/dist/mime.d.ts.map +1 -0
- package/dist/mime.js +40 -0
- package/dist/mime.js.map +1 -0
- package/dist/node.d.ts +10 -0
- package/dist/node.d.ts.map +1 -0
- package/dist/node.js +24 -0
- package/dist/node.js.map +1 -0
- package/dist/onchain-uri.d.ts +110 -0
- package/dist/onchain-uri.d.ts.map +1 -0
- package/dist/onchain-uri.js +277 -0
- package/dist/onchain-uri.js.map +1 -0
- package/dist/ops.d.ts +507 -14
- package/dist/ops.d.ts.map +1 -1
- package/dist/ops.js +848 -32
- package/dist/ops.js.map +1 -1
- package/dist/policy.d.ts +58 -0
- package/dist/policy.d.ts.map +1 -0
- package/dist/policy.js +36 -0
- package/dist/policy.js.map +1 -0
- package/dist/probe.d.ts +29 -0
- package/dist/probe.d.ts.map +1 -1
- package/dist/probe.js +104 -9
- package/dist/probe.js.map +1 -1
- package/dist/reconstruct.d.ts +94 -2
- package/dist/reconstruct.d.ts.map +1 -1
- package/dist/reconstruct.js +432 -97
- package/dist/reconstruct.js.map +1 -1
- package/dist/resume.d.ts +96 -0
- package/dist/resume.d.ts.map +1 -0
- package/dist/resume.js +95 -0
- package/dist/resume.js.map +1 -0
- package/dist/script-chunks.d.ts +24 -0
- package/dist/script-chunks.d.ts.map +1 -0
- package/dist/script-chunks.js +63 -0
- package/dist/script-chunks.js.map +1 -0
- package/dist/service.d.ts +206 -9
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +228 -18
- package/dist/service.js.map +1 -1
- package/dist/spine.d.ts +47 -4
- package/dist/spine.d.ts.map +1 -1
- package/dist/spine.js +0 -0
- package/dist/spine.js.map +1 -1
- package/dist/staging.d.ts +124 -0
- package/dist/staging.d.ts.map +1 -0
- package/dist/staging.js +134 -0
- package/dist/staging.js.map +1 -0
- package/dist/tokendata.d.ts +62 -2
- package/dist/tokendata.d.ts.map +1 -1
- package/dist/tokendata.js +79 -17
- package/dist/tokendata.js.map +1 -1
- package/dist/tokens.d.ts +120 -0
- package/dist/tokens.d.ts.map +1 -0
- package/dist/tokens.js +317 -0
- package/dist/tokens.js.map +1 -0
- package/dist/types.d.ts +108 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/util.d.ts +74 -0
- package/dist/util.d.ts.map +1 -0
- package/dist/util.js +106 -0
- package/dist/util.js.map +1 -0
- package/package.json +11 -2
package/dist/service.js
CHANGED
|
@@ -8,24 +8,155 @@
|
|
|
8
8
|
* credential resolution is the caller's concern (the CLI's named-remote convention lives in
|
|
9
9
|
* packages/cli/src/remote.ts).
|
|
10
10
|
*/
|
|
11
|
+
import { linearBackoffDelay, sleep } from './util.js';
|
|
11
12
|
export const WELL_KNOWN_SERVICE_PATH = '/.well-known/abx-service';
|
|
12
|
-
/**
|
|
13
|
-
*
|
|
13
|
+
/**
|
|
14
|
+
* Versioned interface ids a service declares in its descriptor. Versions ride these ids
|
|
15
|
+
* (they track the `/v1` path prefix); the descriptor has no separate format version.
|
|
16
|
+
*
|
|
17
|
+
* There are exactly two, and they are **all-or-nothing**: declaring one asserts every route it names
|
|
18
|
+
* answers per the spec. The artifact-registry routes ride {@link CONTROL_PLANE_INTERFACE} rather
|
|
19
|
+
* than an id of their own — once referenced output is locator-only, accepting a registration is a
|
|
20
|
+
* database insert, so a separate capability flag would describe a distinction that doesn't exist.
|
|
21
|
+
* A service that won't take a given caller's artifacts refuses on the credential (`403`), which is
|
|
22
|
+
* the honest axis: interfaces describe wire grammar, tokens describe permission.
|
|
23
|
+
*/
|
|
14
24
|
export const TOKEN_API_INTERFACE = 'abx-token-api/v1';
|
|
15
25
|
export const CONTROL_PLANE_INTERFACE = 'abx-control-plane/v1';
|
|
16
|
-
|
|
26
|
+
/**
|
|
27
|
+
* Why this locator can't be accepted for a referenced artifact, or `null` if it passes.
|
|
28
|
+
*
|
|
29
|
+
* A locator is a **reachability** claim, not a durability one: it must resolve for a third party
|
|
30
|
+
* with no producer credentials and no private-network assumption. The protocol deliberately has
|
|
31
|
+
* **no preference among schemes** — `https://` (S3/R2, a producer's own public base, a chosen
|
|
32
|
+
* IPFS/Arweave gateway), `ipfs://` and `ar://` are peers, because derived output is re-creatable and
|
|
33
|
+
* a producer with an opinion about which gateway serves its content is making an operational call the
|
|
34
|
+
* protocol has no standing to override.
|
|
35
|
+
*
|
|
36
|
+
* Reachability can't be *proved* without fetching, and fetching a third-party URL while handling an
|
|
37
|
+
* authed write is byte custody through the back door plus an SSRF surface. So this checks the two
|
|
38
|
+
* things that are decidable from the string alone and are always wrong:
|
|
39
|
+
* - a private / loopback host — resolvable only from the producer's own network;
|
|
40
|
+
* - a presigned, expiring URL — resolvable now, dead later, which is the worst failure shape
|
|
41
|
+
* (it passes every check at publish time and rots silently).
|
|
42
|
+
*/
|
|
43
|
+
export function locatorRejectionReason(locator) {
|
|
44
|
+
const trimmed = locator.trim();
|
|
45
|
+
if (!/^(https?|ipfs|ar):/i.test(trimmed)) {
|
|
46
|
+
return `unsupported scheme — use https://, ipfs:// or ar://`;
|
|
47
|
+
}
|
|
48
|
+
if (/^https?:/i.test(trimmed)) {
|
|
49
|
+
let url;
|
|
50
|
+
try {
|
|
51
|
+
url = new URL(trimmed);
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
return 'not a parseable URL';
|
|
55
|
+
}
|
|
56
|
+
const host = url.hostname.toLowerCase().replace(/^\[|\]$/g, '');
|
|
57
|
+
const privateHost = host === 'localhost' ||
|
|
58
|
+
host.endsWith('.localhost') ||
|
|
59
|
+
host === '::1' ||
|
|
60
|
+
host === '0.0.0.0' ||
|
|
61
|
+
/^127\./.test(host) ||
|
|
62
|
+
/^10\./.test(host) ||
|
|
63
|
+
/^192\.168\./.test(host) ||
|
|
64
|
+
/^172\.(1[6-9]|2\d|3[01])\./.test(host) ||
|
|
65
|
+
/^169\.254\./.test(host) ||
|
|
66
|
+
/^f[cd][0-9a-f]{2}:/.test(host);
|
|
67
|
+
if (privateHost) {
|
|
68
|
+
return `'${url.hostname}' is a loopback/private host — a locator must resolve for anyone, not just from the producer's network`;
|
|
69
|
+
}
|
|
70
|
+
const q = url.searchParams;
|
|
71
|
+
if (q.has('X-Amz-Signature') || q.has('Signature') || q.has('X-Goog-Signature') || q.has('sig') || q.has('Expires') || q.has('X-Amz-Expires')) {
|
|
72
|
+
return 'looks like a presigned/expiring URL — it would resolve now and rot later; publish a durable public URL instead';
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
/** Statuses a caller can stop waiting on — see {@link AbxServiceClient.awaitIndexed}. */
|
|
78
|
+
export const TERMINAL_INDEX_STATUSES = ['live', 'failed'];
|
|
79
|
+
/** The one message per class. Fixed strings — an upstream error is never interpolated, because a
|
|
80
|
+
* keyed RPC URL *is* a credential and upstream messages routinely embed one. */
|
|
81
|
+
const INDEX_ERROR_MESSAGES = {
|
|
82
|
+
rpc_unavailable: 'upstream RPC unavailable; will retry',
|
|
83
|
+
rpc_rate_limited: 'upstream RPC rate-limited; will retry',
|
|
84
|
+
not_abx_contract: 'address emits no ABX event spine on this chain',
|
|
85
|
+
internal: 'indexing failed; see the service operator’s logs',
|
|
86
|
+
};
|
|
87
|
+
/** Map a catch-up failure to its wire form. Sniffs the underlying error's shape only to CHOOSE a
|
|
88
|
+
* class — nothing from it reaches the returned message. */
|
|
89
|
+
export function classifyIndexError(err) {
|
|
90
|
+
const raw = err instanceof Error ? `${err.name} ${err.message}` : String(err);
|
|
91
|
+
const text = raw.toLowerCase();
|
|
92
|
+
let cls = 'internal';
|
|
93
|
+
if (/rate.?limit|too many requests|\b429\b|quota|exceeded .*(?:compute|cu)|throttl/.test(text)) {
|
|
94
|
+
cls = 'rpc_rate_limited';
|
|
95
|
+
}
|
|
96
|
+
else if (/timeout|timed out|econnrefused|econnreset|enotfound|eai_again|socket hang up|fetch failed|network|502|503|504|http request failed/.test(text)) {
|
|
97
|
+
cls = 'rpc_unavailable';
|
|
98
|
+
}
|
|
99
|
+
return { class: cls, message: INDEX_ERROR_MESSAGES[cls] };
|
|
100
|
+
}
|
|
101
|
+
/** Narrow a register response to the deferred-catch-up branch. */
|
|
102
|
+
export function isAccepted(r) {
|
|
103
|
+
return r.accepted === true;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* How far along a BACKFILL is, from a status read — `null` when there is no meaningful ratio.
|
|
107
|
+
*
|
|
108
|
+
* Deliberately `null` for anything but `backfilling`, because `toBlock` measures two different things
|
|
109
|
+
* depending on the state. During an initial sync it advances monotonically, so `toBlock` vs head IS
|
|
110
|
+
* progress. Once a project is `live` it only moves when that project has *events* — so a perfectly
|
|
111
|
+
* current project on a busy chain sits at a tiny fraction of head, and rendering that as "3%" reads
|
|
112
|
+
* as broken when nothing is wrong. Same reason the reference measures staleness against its watcher's
|
|
113
|
+
* watermark rather than a project's `toBlock`.
|
|
114
|
+
*/
|
|
115
|
+
export function indexProgress(s) {
|
|
116
|
+
if (s.status !== 'backfilling')
|
|
117
|
+
return null;
|
|
118
|
+
if (!s.headBlock || !s.toBlock)
|
|
119
|
+
return null;
|
|
120
|
+
try {
|
|
121
|
+
const from = BigInt(s.fromBlock);
|
|
122
|
+
const to = BigInt(s.toBlock);
|
|
123
|
+
const head = BigInt(s.headBlock);
|
|
124
|
+
if (head <= from || to < from)
|
|
125
|
+
return null;
|
|
126
|
+
const total = head - from;
|
|
127
|
+
const done = (to > head ? head : to) - from;
|
|
128
|
+
return { done, total, percent: Number((done * 100n) / total) };
|
|
129
|
+
}
|
|
130
|
+
catch {
|
|
131
|
+
return null;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
17
134
|
/** A non-2xx control-plane response (or an unreachable service, after retries). `code` is the
|
|
18
135
|
* spec's machine code when the service sent one — key behavior off it, never off `message`. */
|
|
19
136
|
export class AbxServiceError extends Error {
|
|
20
137
|
status;
|
|
21
138
|
code;
|
|
22
139
|
url;
|
|
140
|
+
/** The failure CLASS when the service volunteered one (a credential-free hint about *why* — an
|
|
141
|
+
* exhausted RPC reads very differently from a broken service). Optional on the wire. */
|
|
142
|
+
class;
|
|
23
143
|
constructor(message, opts) {
|
|
24
144
|
super(message);
|
|
25
145
|
this.name = 'AbxServiceError';
|
|
26
146
|
this.status = opts.status;
|
|
27
147
|
this.code = opts.code;
|
|
28
148
|
this.url = opts.url;
|
|
149
|
+
this.class = opts.class;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
/** Waiting for a project to reach a terminal status ran out of time. The registration is durable —
|
|
153
|
+
* this is "still working", never "the add failed". */
|
|
154
|
+
export class AbxIndexTimeoutError extends Error {
|
|
155
|
+
last;
|
|
156
|
+
constructor(message, last) {
|
|
157
|
+
super(message);
|
|
158
|
+
this.name = 'AbxIndexTimeoutError';
|
|
159
|
+
this.last = last;
|
|
29
160
|
}
|
|
30
161
|
}
|
|
31
162
|
/**
|
|
@@ -51,11 +182,48 @@ export class AbxServiceClient {
|
|
|
51
182
|
}
|
|
52
183
|
/** The public service descriptor — no auth, safe to fetch before trusting a provider. */
|
|
53
184
|
async descriptor() {
|
|
54
|
-
return (await this.request('GET', WELL_KNOWN_SERVICE_PATH, undefined, DESCRIPTOR_ATTEMPTS));
|
|
185
|
+
return (await this.request('GET', WELL_KNOWN_SERVICE_PATH, undefined, { attempts: DESCRIPTOR_ATTEMPTS }));
|
|
55
186
|
}
|
|
56
|
-
/**
|
|
187
|
+
/**
|
|
188
|
+
* Register + index a project (the HTTP form of `abx add`; a re-POST is the nudge). Returns the
|
|
189
|
+
* completed summary (HTTP 200) or the accepted-and-still-working shape (HTTP 202) — narrow with
|
|
190
|
+
* {@link isAccepted}, and follow a 202 with {@link awaitIndexed}.
|
|
191
|
+
*
|
|
192
|
+
* A timed-out register is NOT retried blind. A conforming service persists the registration before
|
|
193
|
+
* it starts catching up, so a timeout usually means "it's in there, still working" — and re-POSTing
|
|
194
|
+
* would kick off a *second* full reconstruct against the RPC that was already too slow to answer.
|
|
195
|
+
* So we ask the status route whether it landed, and if it did we return the async shape instead.
|
|
196
|
+
*/
|
|
57
197
|
async registerProject(body) {
|
|
58
|
-
|
|
198
|
+
const landed = async () => {
|
|
199
|
+
const st = await this.projectStatus(body.chainId, body.address).catch(() => null);
|
|
200
|
+
if (!st)
|
|
201
|
+
return undefined; // not there (or the service is truly unreachable) — keep retrying
|
|
202
|
+
return { ok: true, accepted: true, project: { address: body.address, status: st.status } };
|
|
203
|
+
};
|
|
204
|
+
const { status, body: out } = await this.requestWithStatus('POST', '/v1/projects', body, { onTimeout: landed });
|
|
205
|
+
return normalizeRegisterResult(status, out, body.address);
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Poll a project's status until it reaches a terminal lifecycle state (`live` or `failed`) — the
|
|
209
|
+
* one implementation of the wait loop, so the CLI, the effects runner, and any hosted agent all
|
|
210
|
+
* behave identically against any provider. `stale` keeps polling: it means lagging, not caught up.
|
|
211
|
+
*/
|
|
212
|
+
async awaitIndexed(chainId, address, opts = {}) {
|
|
213
|
+
const timeoutMs = opts.timeoutMs ?? 300_000;
|
|
214
|
+
const intervalMs = opts.intervalMs ?? 3_000;
|
|
215
|
+
const deadline = Date.now() + timeoutMs;
|
|
216
|
+
let last;
|
|
217
|
+
for (;;) {
|
|
218
|
+
last = await this.projectStatus(chainId, address);
|
|
219
|
+
opts.onProgress?.(last);
|
|
220
|
+
if (TERMINAL_INDEX_STATUSES.includes(last.status))
|
|
221
|
+
return last;
|
|
222
|
+
if (Date.now() + intervalMs > deadline) {
|
|
223
|
+
throw new AbxIndexTimeoutError(`${address} was still '${last.status}' after ${Math.round(timeoutMs / 1000)}s — the registration is durable and the service keeps working; check back with \`abx status ${address} --remote\``, last);
|
|
224
|
+
}
|
|
225
|
+
await sleep(intervalMs);
|
|
226
|
+
}
|
|
59
227
|
}
|
|
60
228
|
/** The projects this token may see. */
|
|
61
229
|
async listProjects() {
|
|
@@ -75,9 +243,16 @@ export class AbxServiceClient {
|
|
|
75
243
|
throw err;
|
|
76
244
|
}
|
|
77
245
|
}
|
|
78
|
-
/** Nudge a re-index.
|
|
246
|
+
/** Nudge a re-index. Answers in the same two shapes as {@link registerProject} — a full replay is
|
|
247
|
+
* the *most* likely call to outlive one HTTP request. */
|
|
79
248
|
async reindexProject(chainId, address) {
|
|
80
|
-
|
|
249
|
+
const { status, body } = await this.requestWithStatus('POST', `/v1/projects/${chainId}/${address}/reindex`, undefined, {
|
|
250
|
+
onTimeout: async () => {
|
|
251
|
+
const st = await this.projectStatus(chainId, address).catch(() => null);
|
|
252
|
+
return st ? { ok: true, accepted: true, project: { address, status: st.status } } : undefined;
|
|
253
|
+
},
|
|
254
|
+
});
|
|
255
|
+
return normalizeRegisterResult(status, body, address);
|
|
81
256
|
}
|
|
82
257
|
/** Indexing freshness for one project. */
|
|
83
258
|
async projectStatus(chainId, address) {
|
|
@@ -91,7 +266,11 @@ export class AbxServiceClient {
|
|
|
91
266
|
async reportEffectStatus(body) {
|
|
92
267
|
await this.request('POST', '/v1/effect-status', body);
|
|
93
268
|
}
|
|
94
|
-
async request(method, path, body,
|
|
269
|
+
async request(method, path, body, opts) {
|
|
270
|
+
return (await this.requestWithStatus(method, path, body, opts)).body;
|
|
271
|
+
}
|
|
272
|
+
async requestWithStatus(method, path, body, opts) {
|
|
273
|
+
const attempts = opts?.attempts ?? ATTEMPTS;
|
|
95
274
|
const url = this.baseUrl + path;
|
|
96
275
|
const headers = {};
|
|
97
276
|
if (this.token)
|
|
@@ -101,6 +280,7 @@ export class AbxServiceClient {
|
|
|
101
280
|
let lastFailure = '';
|
|
102
281
|
let lastStatus = 0;
|
|
103
282
|
let lastCode;
|
|
283
|
+
let lastClass;
|
|
104
284
|
for (let attempt = 1; attempt <= attempts; attempt++) {
|
|
105
285
|
let resp;
|
|
106
286
|
try {
|
|
@@ -114,13 +294,21 @@ export class AbxServiceClient {
|
|
|
114
294
|
catch (err) {
|
|
115
295
|
lastFailure = err.message;
|
|
116
296
|
lastStatus = 0;
|
|
297
|
+
// "We waited the full timeout" and "nothing is listening" are different failures, and for a
|
|
298
|
+
// mutating POST the difference decides whether retrying is safe: the request may still be
|
|
299
|
+
// running on the service. Let the caller check before we hammer it again.
|
|
300
|
+
if (opts?.onTimeout && err.name === 'TimeoutError') {
|
|
301
|
+
const resolved = await opts.onTimeout();
|
|
302
|
+
if (resolved !== undefined)
|
|
303
|
+
return { status: 202, body: resolved };
|
|
304
|
+
}
|
|
117
305
|
if (attempt < attempts)
|
|
118
|
-
await sleep(this.retryDelayMs
|
|
306
|
+
await sleep(linearBackoffDelay(attempt, this.retryDelayMs));
|
|
119
307
|
continue;
|
|
120
308
|
}
|
|
121
309
|
if (resp.ok) {
|
|
122
310
|
const text = await resp.text();
|
|
123
|
-
return text ? JSON.parse(text) : {};
|
|
311
|
+
return { status: resp.status, body: text ? JSON.parse(text) : {} };
|
|
124
312
|
}
|
|
125
313
|
if (resp.status >= 500 || resp.status === 429) {
|
|
126
314
|
// Retryable — but KEEP the service's own words. A 5xx body carries the actual cause (an
|
|
@@ -129,9 +317,10 @@ export class AbxServiceClient {
|
|
|
129
317
|
const said = await bodyMessage(resp);
|
|
130
318
|
lastStatus = resp.status;
|
|
131
319
|
lastCode = said.code;
|
|
320
|
+
lastClass = said.class;
|
|
132
321
|
lastFailure = said.error ? `${resp.status} ${said.error}` : `${resp.status} ${resp.statusText}`;
|
|
133
322
|
if (attempt < attempts)
|
|
134
|
-
await sleep(this.retryDelayMs
|
|
323
|
+
await sleep(linearBackoffDelay(attempt, this.retryDelayMs));
|
|
135
324
|
continue;
|
|
136
325
|
}
|
|
137
326
|
// A genuine 4xx is an answer, not weather — surface the service's own words + code.
|
|
@@ -139,6 +328,7 @@ export class AbxServiceClient {
|
|
|
139
328
|
throw new AbxServiceError(`${method} ${url}: ${resp.status} ${detail.error ?? resp.statusText}`, {
|
|
140
329
|
status: resp.status,
|
|
141
330
|
code: detail.code,
|
|
331
|
+
class: detail.class,
|
|
142
332
|
url,
|
|
143
333
|
});
|
|
144
334
|
}
|
|
@@ -147,20 +337,40 @@ export class AbxServiceClient {
|
|
|
147
337
|
const summary = lastStatus
|
|
148
338
|
? `service failed after ${attempts} attempt(s) — last response ${lastFailure}`
|
|
149
339
|
: `nothing responded after ${attempts} attempt(s) (${lastFailure})`;
|
|
150
|
-
throw new AbxServiceError(`${method} ${url}: ${summary}`, { status: lastStatus, code: lastCode, url });
|
|
340
|
+
throw new AbxServiceError(`${method} ${url}: ${summary}`, { status: lastStatus, code: lastCode, class: lastClass, url });
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
/** Normalize a register/reindex response: the HTTP status is the authoritative discriminator, and
|
|
344
|
+
* the `accepted` flag is derived from it so callers switch on one field even against a service that
|
|
345
|
+
* doesn't send it. */
|
|
346
|
+
function normalizeRegisterResult(status, out, fallbackAddress) {
|
|
347
|
+
if (status === 202) {
|
|
348
|
+
const r = out;
|
|
349
|
+
return {
|
|
350
|
+
ok: r.ok ?? true,
|
|
351
|
+
accepted: true,
|
|
352
|
+
project: {
|
|
353
|
+
address: r.project?.address ?? fallbackAddress,
|
|
354
|
+
name: r.project?.name ?? null,
|
|
355
|
+
status: r.project?.status ?? 'backfilling',
|
|
356
|
+
},
|
|
357
|
+
};
|
|
151
358
|
}
|
|
359
|
+
return { ...out, accepted: false };
|
|
152
360
|
}
|
|
153
|
-
/** The service's own `{error, code}` from a non-2xx body (never throws — a body may be
|
|
361
|
+
/** The service's own `{error, code, class?}` from a non-2xx body (never throws — a body may be
|
|
362
|
+
* empty/HTML). `class` is the optional credential-free failure hint. */
|
|
154
363
|
async function bodyMessage(resp) {
|
|
155
364
|
try {
|
|
156
365
|
const parsed = (await resp.json());
|
|
157
|
-
return {
|
|
366
|
+
return {
|
|
367
|
+
error: parsed.error,
|
|
368
|
+
code: parsed.code,
|
|
369
|
+
class: parsed.class,
|
|
370
|
+
};
|
|
158
371
|
}
|
|
159
372
|
catch {
|
|
160
373
|
return {};
|
|
161
374
|
}
|
|
162
375
|
}
|
|
163
|
-
function sleep(ms) {
|
|
164
|
-
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
165
|
-
}
|
|
166
376
|
//# sourceMappingURL=service.js.map
|
package/dist/service.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
|
package/dist/spine.d.ts
CHANGED
|
@@ -19,6 +19,7 @@ export declare const EXTENSION_NAMES: {
|
|
|
19
19
|
readonly onChainScript: "abx.extension.onchain-script";
|
|
20
20
|
readonly dependencies: "abx.extension.dependencies";
|
|
21
21
|
readonly seedSource: "abx.extension.seed-source";
|
|
22
|
+
readonly editionSupply: "abx.extension.edition-supply";
|
|
22
23
|
};
|
|
23
24
|
export type ExtensionKey = keyof typeof EXTENSION_NAMES;
|
|
24
25
|
export declare const EXTENSION_ID: Record<ExtensionKey, Hex>;
|
|
@@ -45,12 +46,38 @@ export declare const METADATA_FIELD: {
|
|
|
45
46
|
readonly bannerImage: "banner_image";
|
|
46
47
|
readonly featuredImage: "featured_image";
|
|
47
48
|
readonly externalLink: "external_link";
|
|
48
|
-
readonly
|
|
49
|
-
readonly artist: "artist";
|
|
49
|
+
readonly creator: "creator";
|
|
50
50
|
readonly displayNotes: "display_notes";
|
|
51
|
-
readonly
|
|
51
|
+
readonly creatorLinks: "creator_links";
|
|
52
52
|
readonly license: "license";
|
|
53
|
+
readonly gatewayIpfs: "abx_gateway_ipfs";
|
|
54
|
+
readonly gatewayArweave: "abx_gateway_arweave";
|
|
53
55
|
};
|
|
56
|
+
/**
|
|
57
|
+
* The reserved collection-scope field carrying each scheme's preferred HTTPS prefix.
|
|
58
|
+
*
|
|
59
|
+
* A content-addressed field value (`ipfs` / `arweave`) is IDENTITY — the locator *is* the
|
|
60
|
+
* integrity hash — but no browser, wallet, or marketplace dereferences `ipfs://`. So the value
|
|
61
|
+
* stays the bare CID/txid and the serving prefix lives here, project-wide: `image` is projected as
|
|
62
|
+
* `prefix + cid` by the on-chain renderer, the canonical generator, and this resolver alike. A dead
|
|
63
|
+
* or slow gateway is then a REPOINT (one `setContractField`, one ERC-4906 ping, every token moved)
|
|
64
|
+
* and never a rewrite of the CID, and never rot.
|
|
65
|
+
*
|
|
66
|
+
* **Why the field store rather than `preferredIPFSGateway()` getters on the token** (the Art Blocks
|
|
67
|
+
* V3 Flex shape this otherwise mirrors): the store already provides every part of that surface on
|
|
68
|
+
* all six token kinds — an owner-gated setter, a `ContractFieldSet` event, the ERC-4906 refresh
|
|
69
|
+
* ping, and a per-field freeze — so this shipped as a two-singleton change with no token
|
|
70
|
+
* implementation, factory, or `initialize` ABI touched. The getter pair measured 909 bytes of
|
|
71
|
+
* runtime code and `SeriesCode` had 862 bytes of EIP-170 headroom.
|
|
72
|
+
*
|
|
73
|
+
* Collection scope only, and only the `inline` representation counts. A gateway is one answer per
|
|
74
|
+
* project; a token-scope override could only ever disagree with it.
|
|
75
|
+
*/
|
|
76
|
+
export declare const GATEWAY_FIELD: Record<'ipfs' | 'arweave', string>;
|
|
77
|
+
/** The public floors, used when a collection states no preference and the host names none.
|
|
78
|
+
* Byte-identical to `AbxMetadataRenderer.FLOOR_IPFS` / `.FLOOR_ARWEAVE` — the two planes must
|
|
79
|
+
* agree on the URL they emit for the same chain state. */
|
|
80
|
+
export declare const GATEWAY_FLOOR: Record<'ipfs' | 'arweave', string>;
|
|
54
81
|
/**
|
|
55
82
|
* Canonical representation tags — the *how* of an on-chain metadata field. These are
|
|
56
83
|
* protocol convention (the contract stores `bytes32` opaquely; it never branches on them).
|
|
@@ -78,7 +105,7 @@ export declare const METADATA_REPRESENTATION: {
|
|
|
78
105
|
*/
|
|
79
106
|
export declare const PARAM_TYPES: readonly ["Bool", "Select", "Uint256Range", "Int256Range", "DecimalRange", "HexColor", "Timestamp", "String", "Bytes"];
|
|
80
107
|
export type ParamTypeName = (typeof PARAM_TYPES)[number];
|
|
81
|
-
export declare const AUTH_OPTIONS: readonly ["
|
|
108
|
+
export declare const AUTH_OPTIONS: readonly ["Creator", "TokenOwner", "Address", "CreatorOrTokenOwner", "CreatorOrAddress", "TokenOwnerOrAddress", "CreatorOrTokenOwnerOrAddress"];
|
|
82
109
|
export type AuthOptionName = (typeof AUTH_OPTIONS)[number];
|
|
83
110
|
/** The canonical delegate.xyz v2 registry — the TokenOwner-auth-leg default (same address every chain). */
|
|
84
111
|
export declare const DELEGATE_REGISTRY_DEFAULT: Hex;
|
|
@@ -107,4 +134,20 @@ export declare const SPINE_EVENT_DOC: Record<string, {
|
|
|
107
134
|
register: 1 | 2;
|
|
108
135
|
what: string;
|
|
109
136
|
}>;
|
|
137
|
+
/**
|
|
138
|
+
* The events that deliberately reach **no field** of `ProjectState`, each with the reason — the
|
|
139
|
+
* complement of `foldSpine`'s `switch`. Between the two, every event the spine can decode is
|
|
140
|
+
* accounted for, and `spine-fold-coverage.test.ts` fails if one is in neither: a new event is
|
|
141
|
+
* unfolded and unexcused until someone decides which it is.
|
|
142
|
+
*
|
|
143
|
+
* This exists because the same mistake shipped twice in four days. `DefaultMaxSupplySet` was added
|
|
144
|
+
* so the log could tell an open edition from a capped one, reached the ABI, and folded nowhere
|
|
145
|
+
* (abx-services found it, 2026-08-17). We fixed that instance and added the test asserting every
|
|
146
|
+
* event is *described* — the half that was already true — while the fold gap it was written about
|
|
147
|
+
* stayed unguarded. `BurnConfigured` and `MaxRoyaltyBpsUpdated` then shipped described and unfolded,
|
|
148
|
+
* and the upgrade memo told consumers the description WAS the fold (it never has been:
|
|
149
|
+
* `SPINE_EVENT_DOC` supplies `register`/`what` on the event record and nothing else). Documenting a
|
|
150
|
+
* convention twice is not enforcing it once.
|
|
151
|
+
*/
|
|
152
|
+
export declare const SPINE_EVENT_NO_FOLD: Record<string, string>;
|
|
110
153
|
//# sourceMappingURL=spine.d.ts.map
|
package/dist/spine.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spine.d.ts","sourceRoot":"","sources":["../src/spine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyC,KAAK,GAAG,EAAC,MAAM,MAAM,CAAC;AAEtE;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe
|
|
1
|
+
{"version":3,"file":"spine.d.ts","sourceRoot":"","sources":["../src/spine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyC,KAAK,GAAG,EAAC,MAAM,MAAM,CAAC;AAEtE;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;CAmBlB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,MAAM,OAAO,eAAe,CAAC;AAExD,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,GAAG,CAErB,CAAC;AAM/B,6EAA6E;AAC7E,wBAAgB,aAAa,CAAC,EAAE,EAAE,GAAG,GAAG,MAAM,CAE7C;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,GAAG,GAAG,MAAM,CAM9C;AAED,gGAAgG;AAChG,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAE1C;AAED,wGAAwG;AACxG,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;CAiCjB,CAAC;AAEX;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,GAAG,SAAS,EAAE,MAAM,CAG5D,CAAC;AAEF;;2DAE2D;AAC3D,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,GAAG,SAAS,EAAE,MAAM,CAG5D,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;CAY1B,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,WAAW,wHAUd,CAAC;AACX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD,eAAO,MAAM,YAAY,iJAQf,CAAC;AACX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3D,2GAA2G;AAC3G,eAAO,MAAM,yBAAyB,EAAE,GAAkD,CAAC;AAK3F;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,GAAG,MAAM,GAAG,MAAM,CAoBvF;AAED,uFAAuF;AACvF,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAIpD;AAGD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,aAAa,EACxB,KAAK,EAAE,MAAM,EACb,aAAa,GAAE,MAAM,EAAO,GAC3B;IAAC,KAAK,EAAE,GAAG,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAC,CAoD/B;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE;IAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAC,CAgF3E,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAmDtD,CAAC"}
|
package/dist/spine.js
CHANGED
|
Binary file
|
package/dist/spine.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spine.js","sourceRoot":"","sources":["../src/spine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"spine.js","sourceRoot":"","sources":["../src/spine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import type { Address, Hex, PublicClient } from 'viem';
|
|
2
|
+
import { type ChunkStoreEvent, type ContentTxPlan } from './chunks.js';
|
|
3
|
+
import type { SendTx } from './execute.js';
|
|
4
|
+
/**
|
|
5
|
+
* Content staging — putting a field's bytes on-chain behind the shared multi-chunk store/reader
|
|
6
|
+
* (`AbxChunkStore`), the SDK-native counterpart of {@link ChunkStoreEvent}'s bootstrap: this module
|
|
7
|
+
* layers the *content* side (plan → resolve a store → write chunks → encode the `reader` value) on
|
|
8
|
+
* top of `chunks.ts`'s primitives (`planChunks`/`planContentTxs`/`stageContent`/`ensureChunkStore`)
|
|
9
|
+
* and `token.ts`'s `encodeReader`, so an integrator gets ONE call instead of hand-wiring all four —
|
|
10
|
+
* the same reasoning `ensureChunkStore`'s own doc comment gives for the store half.
|
|
11
|
+
*
|
|
12
|
+
* `gzip` is deliberately NOT performed here: it's a Node-only transform (`node:zlib`), and this
|
|
13
|
+
* module is reachable from the browser bundle (browser-bundle.test.ts) like the rest of the SDK
|
|
14
|
+
* core. Callers that support `compress: 'gzip'` (the CLI) gzip the bytes themselves and hand the
|
|
15
|
+
* already-compressed result in as `content` — see {@link planStagedContent}.
|
|
16
|
+
*/
|
|
17
|
+
/** How staged content is compressed before chunking. `fastlz` is per-chunk and pure-JS
|
|
18
|
+
* ({@link planChunks} does it right here); `gzip` compresses the WHOLE content off-chain (the
|
|
19
|
+
* caller's job — see the module doc) and decodes off-chain too, hence the `reader-gzip`
|
|
20
|
+
* representation rather than `reader`. */
|
|
21
|
+
export type Compress = 'none' | 'fastlz' | 'gzip';
|
|
22
|
+
export declare const ONCHAIN_IMAGE_SOFT_LIMIT: number;
|
|
23
|
+
export declare const ONCHAIN_PROJECT_SOFT_LIMIT: number;
|
|
24
|
+
/** Whether `bytesLen` is past the point where on-chain storage stops being the cost-sane choice to
|
|
25
|
+
* WRITE. Says nothing about readability — that's {@link classifyOnchainReadSize}. */
|
|
26
|
+
export declare function exceedsOnchainSoftLimit(bytesLen: number): boolean;
|
|
27
|
+
/** Measured `tokenURI` gas per KB at the BOTTOM of the readable range (10 KB). The rate is not
|
|
28
|
+
* flat — see the note above, and use {@link tokenUriGasEstimate} for a figure at a given size. */
|
|
29
|
+
export declare const TOKEN_URI_GAS_PER_KB_LOW = 360000;
|
|
30
|
+
/** Measured `tokenURI` gas per KB at the TOP of the readable range (100 KB). Past that the rate
|
|
31
|
+
* keeps climbing (~460,000/KB at 187 KB), so this is a range endpoint, not a ceiling. */
|
|
32
|
+
export declare const TOKEN_URI_GAS_PER_KB_HIGH = 405000;
|
|
33
|
+
/** From here up, reading the token needs a deliberately high-gas RPC (~15M gas at 40 KB). */
|
|
34
|
+
export declare const ONCHAIN_READ_WARN_BYTES: number;
|
|
35
|
+
/** Past here (~40M gas at 100 KB and climbing superlinearly) the read is beyond many hosted
|
|
36
|
+
* providers' `eth_call` caps — a deliberate margin below the ~120 KB where geth's own 50M default
|
|
37
|
+
* runs out. */
|
|
38
|
+
export declare const ONCHAIN_READ_REFUSE_BYTES: number;
|
|
39
|
+
/** Where geth's default `--rpc.gascap` (50,000,000) is actually exhausted, measured. Documented so
|
|
40
|
+
* the refusal above can be described honestly as the margin it is. */
|
|
41
|
+
export declare const ONCHAIN_READ_GETH_CAP_BYTES: number;
|
|
42
|
+
/**
|
|
43
|
+
* Rough `tokenURI` gas for `bytesLen` of on-chain content — orientation, not a quote.
|
|
44
|
+
*
|
|
45
|
+
* Fitted to the measurements above as `350,000·KB + 650·KB²`: within ~3% of measured from 10 KB to
|
|
46
|
+
* 256 KB, and slightly high rather than low, which is the right direction for a number that gates a
|
|
47
|
+
* warning. A flat per-KB rate was wrong at both ends — it overstated a 10 KB read by ~30% and
|
|
48
|
+
* understated a 256 KB one by ~10%.
|
|
49
|
+
*/
|
|
50
|
+
export declare function tokenUriGasEstimate(bytesLen: number): number;
|
|
51
|
+
/** `ok` = routine to read · `warn` = needs a high-gas RPC · `refuse` = a default node won't serve it. */
|
|
52
|
+
export type OnchainReadVerdict = 'ok' | 'warn' | 'refuse';
|
|
53
|
+
/** Classify `bytesLen` of on-chain content by whether normal RPC tooling can READ the token that
|
|
54
|
+
* carries it — the pure predicate behind the CLI's warn/refuse gate (kept here so the SDK and the
|
|
55
|
+
* CLI can't disagree about the threshold). */
|
|
56
|
+
export declare function classifyOnchainReadSize(bytesLen: number): OnchainReadVerdict;
|
|
57
|
+
/** The plan for staging one piece of content: how it chunks, how it compresses, and the
|
|
58
|
+
* transaction shape ({@link planContentTxs}) that staging it will take. */
|
|
59
|
+
export interface ContentPlan {
|
|
60
|
+
content: Uint8Array;
|
|
61
|
+
fastlz: boolean;
|
|
62
|
+
chunks: number;
|
|
63
|
+
stagedBytes: number;
|
|
64
|
+
plan: ContentTxPlan;
|
|
65
|
+
representation: string;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Pure staging plan for a piece of content — chunk count + transaction shape — with NO chain
|
|
69
|
+
* writes, no signer, no `ensureChunkStore`. Shared by {@link stageFieldContent} (which then
|
|
70
|
+
* actually stages) and a dry-run preview, so the count a human is told up front is the same one
|
|
71
|
+
* real staging produces. `content` must already be in its final pre-chunking form — gzipped when
|
|
72
|
+
* `compress === 'gzip'` (see the module doc for why that step isn't here). `chunkSize` defaults to
|
|
73
|
+
* {@link planChunks}'s default (currently 22 KB), so e.g. a 2.8 KB SVG is 1 chunk.
|
|
74
|
+
*/
|
|
75
|
+
export declare function planStagedContent(content: Uint8Array, compress: Compress): ContentPlan;
|
|
76
|
+
/** Progress from {@link stageFieldContent}, so a caller can narrate without the SDK printing
|
|
77
|
+
* anything itself (mirrors {@link ChunkStoreEvent} / `AnchorEvent`'s vocabulary). `chunk-store`
|
|
78
|
+
* simply forwards `ensureChunkStore`'s own event — staging always resolves one. */
|
|
79
|
+
export type StagingEvent = {
|
|
80
|
+
kind: 'chunk-store';
|
|
81
|
+
event: ChunkStoreEvent;
|
|
82
|
+
} | {
|
|
83
|
+
kind: 'planned';
|
|
84
|
+
field: string;
|
|
85
|
+
store: Address;
|
|
86
|
+
contentPlan: ContentPlan;
|
|
87
|
+
} | {
|
|
88
|
+
kind: 'staged';
|
|
89
|
+
field: string;
|
|
90
|
+
manifest: Address;
|
|
91
|
+
txHashes: Hex[];
|
|
92
|
+
};
|
|
93
|
+
export interface StageFieldContentArgs {
|
|
94
|
+
/** Content bytes, already in their final pre-chunking form (gzipped by the caller when
|
|
95
|
+
* `compress === 'gzip'` — see the module doc). */
|
|
96
|
+
content: Uint8Array;
|
|
97
|
+
compress: Compress;
|
|
98
|
+
/** The metadata field this content is destined for — narration only (e.g. `'image'`). */
|
|
99
|
+
field: string;
|
|
100
|
+
send: SendTx;
|
|
101
|
+
publicClient: PublicClient;
|
|
102
|
+
chainId: number;
|
|
103
|
+
/** Pre-resolved store (batch staging reuses one across files); else resolve/deploy via
|
|
104
|
+
* {@link ensureChunkStore}. */
|
|
105
|
+
store?: Address;
|
|
106
|
+
onEvent?: (e: StagingEvent) => void;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Put `content` on-chain as SSTORE2 chunks behind the shared reader, and return the field's
|
|
110
|
+
* `(representation, value)`. `fastlz` compresses per chunk (reader decodes on read → stays
|
|
111
|
+
* on-chain renderable); `gzip` compresses the whole content (off-chain decode → the
|
|
112
|
+
* `reader-gzip` representation, not on-chain renderable).
|
|
113
|
+
*
|
|
114
|
+
* Staging is one atomic `writeContent` (content fits a single tx's gas) or gas-bounded chunk-write
|
|
115
|
+
* `multicall`s plus a final manifest write — {@link stageContent} picks. These store writes use
|
|
116
|
+
* `send` (typically the env key on the hot lane, or the connected wallet on the wallet lane) — the
|
|
117
|
+
* data contracts are ownerless, so any funded signer may write them; the caller signs the field-set
|
|
118
|
+
* that references the manifest separately.
|
|
119
|
+
*/
|
|
120
|
+
export declare function stageFieldContent(args: StageFieldContentArgs): Promise<{
|
|
121
|
+
value: Hex;
|
|
122
|
+
representation: string;
|
|
123
|
+
}>;
|
|
124
|
+
//# sourceMappingURL=staging.d.ts.map
|