@artblocks/abx-sdk 0.1.0-alpha.22 → 0.1.0-alpha.24
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 +125 -0
- package/README.md +1 -1
- package/dist/chunks.d.ts +23 -3
- package/dist/chunks.d.ts.map +1 -1
- package/dist/chunks.js +23 -3
- package/dist/chunks.js.map +1 -1
- package/dist/probe.d.ts +29 -0
- package/dist/probe.d.ts.map +1 -1
- package/dist/probe.js +111 -0
- package/dist/probe.js.map +1 -1
- package/dist/staging.d.ts +40 -16
- package/dist/staging.d.ts.map +1 -1
- package/dist/staging.js +58 -28
- package/dist/staging.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,130 @@
|
|
|
1
1
|
# @artblocks/abx-sdk
|
|
2
2
|
|
|
3
|
+
## 0.1.0-alpha.24
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 61503c3: On-chain content: measure the RPC instead of guessing, and refuse no size.
|
|
8
|
+
|
|
9
|
+
`deploy --onchain-image`, `deploy-series --onchain-image` and `set-field --file` refused content past
|
|
10
|
+
**100 KB per token**. That threshold was reasoned from geth's 50M `--rpc.gascap` default minus a
|
|
11
|
+
margin, on the stated theory that "hosted providers commonly cap well below geth's default".
|
|
12
|
+
|
|
13
|
+
Measured 2026-08-24, with a state-override `eth_call` that reports the gas a node actually provisions:
|
|
14
|
+
|
|
15
|
+
| Endpoint | `eth_call` cap | Content it serves |
|
|
16
|
+
| ------------------------------------------------------------------ | --------------- | ----------------- |
|
|
17
|
+
| **`sepolia.base.org`** — the default endpoint of our default chain | **600,000,000** | **~729 KB** |
|
|
18
|
+
| `base-sepolia.publicnode.com` · `base-sepolia.drpc.org` | 50,000,000 | ~117 KB |
|
|
19
|
+
| `ethereum-sepolia.publicnode.com` | 50,000,000 | ~117 KB |
|
|
20
|
+
|
|
21
|
+
Providers do not commonly cap lower — **50M is the floor**, and the chain we ship as the default serves
|
|
22
|
+
twelve times that. So the refusal sat _below every endpoint that could be found_: it blocked content all
|
|
23
|
+
of them could read, and was 7x too strict on the default chain. A creator who wanted a 312 KB image
|
|
24
|
+
permanently on-chain was told no by a number about somebody else's infrastructure.
|
|
25
|
+
|
|
26
|
+
**There is now no refusal at any size**, and `--allow-unreadable-onchain` is gone with it (it existed
|
|
27
|
+
only to skip the refusal). In its place the toolkit states both costs and measures the one that varies:
|
|
28
|
+
|
|
29
|
+
- **Write** is chunked into 22,000-byte SSTORE2 transactions, so no block gas limit binds it at any
|
|
30
|
+
size. It is purely money at ~200 gas/byte, and the CLI now says so instead of implying a ceiling.
|
|
31
|
+
- **Read** is one `eth_call`, and whether it succeeds belongs to whoever's endpoint is asking. Below
|
|
32
|
+
~117 KB (~50M gas) every endpoint measured serves it, and the CLI prints a plain note. Above that it
|
|
33
|
+
probes the RPC you are actually on — no transaction, no key, one call — and reports its real
|
|
34
|
+
allowance beside the estimate.
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
⚠ big.png is 312KB on-chain — reading tokenURI costs ~172M gas, which is past the ~50M gas floor
|
|
38
|
+
that every endpoint serves.
|
|
39
|
+
Your RPC allows ~600M gas (sepolia.base.org), so it reads for you — up to ~729KB. A 50M-capped
|
|
40
|
+
provider stops at ~117KB, and marketplaces or indexers on one will see a REVERT rather than your
|
|
41
|
+
token. Writing is unaffected: ~64M gas, chunked, no block-limit issue. This is the
|
|
42
|
+
permanence-vs-reach trade — --backend arweave is the other side of it.
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
The distinction the output keeps making, because it is the one that matters: **your RPC is not the
|
|
46
|
+
marketplace's RPC.** A measured cap proves _you_ can read the token, never that OpenSea can. Past even
|
|
47
|
+
your own endpoint's cap the CLI says that plainly — and still does not stop you, because bytes someone
|
|
48
|
+
wants permanent are their call, not ours.
|
|
49
|
+
|
|
50
|
+
New in the SDK: `probeEthCallGasCap` / `probeBestEthCallGasCap` (in `probe.ts`, alongside the existing
|
|
51
|
+
getLogs capability probe that already argued this exact principle — measure the endpoint, don't trust a
|
|
52
|
+
table), `ETH_CALL_GAS_FLOOR`, and `readableBytesAtGas`. `classifyOnchainReadSize(bytesLen, capGas?)`
|
|
53
|
+
now returns `'ok' | 'endpoint-dependent' | 'beyond-local-rpc'` — none of them a refusal — and
|
|
54
|
+
`ONCHAIN_READ_REFUSE_BYTES` / `ONCHAIN_READ_GETH_CAP_BYTES` are removed.
|
|
55
|
+
|
|
56
|
+
An endpoint that rejects state overrides yields "unknown", which degrades to the conservative floor and
|
|
57
|
+
is tested to never throw and never block.
|
|
58
|
+
|
|
59
|
+
## Follow-up audit: the other hardcoded third-party assumptions
|
|
60
|
+
|
|
61
|
+
**Three different limits were being called "the gas limit", and they differ by orders of magnitude on
|
|
62
|
+
the same endpoint.** Measured 2026-08-24:
|
|
63
|
+
|
|
64
|
+
| | `eth_call` cap | `eth_estimateGas` cap | block `gasLimit` |
|
|
65
|
+
| --------------------------------- | ------------------------ | --------------------- | ------------------------ |
|
|
66
|
+
| Base Sepolia — `sepolia.base.org` | 600,000,000 | 16,777,216 | 1,200,000,000 |
|
|
67
|
+
| Base Sepolia — publicnode · drpc | 50,000,000 | 16,777,216 | 1,200,000,000 |
|
|
68
|
+
| Sepolia — publicnode | 50,000,000–2,000,000,000 | 16,777,216 | 60,000,000 |
|
|
69
|
+
| Base mainnet · Ethereum mainnet | — | — | 400,000,000 · 60,000,000 |
|
|
70
|
+
|
|
71
|
+
- **"L1 block limits sit in the mid-30-millions"** (SDK, docs) was stale in the direction that makes
|
|
72
|
+
on-chain look worse than it is. It is 60M on Ethereum and Sepolia, 400M on Base, and **1,200M on Base
|
|
73
|
+
Sepolia** — so the claim that _"past ~90 KB no contract can read the token inside a transaction"_ was
|
|
74
|
+
off by more than 12x on our own default chain, where the real figure is ~1,100 KB. Removed everywhere.
|
|
75
|
+
- **`DEFAULT_TX_GAS_BUDGET = 8M` was right for the wrong reason, and the wrong reason was dangerous.**
|
|
76
|
+
It said "comfortably under mainnet's ~30M block limit". The limit that actually binds is
|
|
77
|
+
`eth_estimateGas`, capped at **16,777,216 (2²⁴)** on every endpoint tried — every send estimates
|
|
78
|
+
first, so a batch planned above that fails before anything is sent. Anyone correcting the stale block
|
|
79
|
+
figure would have raised the budget and broken every deploy. The constant is unchanged; its rationale
|
|
80
|
+
now names the limit that holds it, and says not to raise it toward a block limit.
|
|
81
|
+
- **A measured cap is point-in-time, not a property.** Sepolia's publicnode endpoint measured 50M one
|
|
82
|
+
hour and 2,000M the next — pooled endpoints rotate between backends with different configs. The probe
|
|
83
|
+
and the output now say so.
|
|
84
|
+
- **The probe could not tell "capped at exactly my ask" from "not capped at all".** A node that returns
|
|
85
|
+
the full 2,000,000,000 it was asked for did not clamp; reporting that as a 2,000M cap invents a limit
|
|
86
|
+
out of our own request. It now returns `Infinity` and the CLI prints "no eth_call cap at all".
|
|
87
|
+
|
|
88
|
+
## And the reframe that makes the whole question smaller
|
|
89
|
+
|
|
90
|
+
A large read is a **serving** problem, not a preservation one — and the resolver already solves it.
|
|
91
|
+
`resolveFieldBytes` reads `inline` / `inline-gzip` / `reader` / `reader-gzip` with the resolver's own
|
|
92
|
+
RPC and serves the result as ordinary HTTP, so a marketplace fetches a URL and never makes the large
|
|
93
|
+
`eth_call`. `abx set-renderer <addr> --off` points `tokenURI` at it with every byte left where it is.
|
|
94
|
+
|
|
95
|
+
Every warning now says this, because it changes the decision: **storage and serving are separate.**
|
|
96
|
+
On-chain is the strongest storage answer available at any size; self-resolving-versus-a-resolver is a
|
|
97
|
+
serving choice the creator can change later. A token whose read is too large for some endpoint is not a
|
|
98
|
+
lost token — it is one that wants a reader in front of it.
|
|
99
|
+
|
|
100
|
+
And the framing that replaces the old false precision: **we can measure your RPC; we cannot know a
|
|
101
|
+
marketplace's or an indexer's**, and theirs are the ones that decide whether the token displays.
|
|
102
|
+
|
|
103
|
+
## 0.1.0-alpha.23
|
|
104
|
+
|
|
105
|
+
### Patch Changes
|
|
106
|
+
|
|
107
|
+
- bd77ba2: Correct the Node floor to 22.13, and refuse to start with a remedy instead of a stack trace.
|
|
108
|
+
|
|
109
|
+
Every package declared `engines.node: ">=22.5.0"` — the version `node:sqlite` was **added**, not the
|
|
110
|
+
version it became usable. It shipped in v22.5.0 behind `--experimental-sqlite` and lost the flag in
|
|
111
|
+
v22.13.0 / v23.4.0. So `npm i -g @artblocks/abx-cli` on Node 22.5 installed silently (the engine
|
|
112
|
+
range was satisfied) and then `abx doctor` — the first command we tell everyone to run — died with a
|
|
113
|
+
raw `ERR_UNKNOWN_BUILTIN_MODULE: No such built-in module: node:sqlite` stack trace naming neither
|
|
114
|
+
abx nor a fix. Reported 2026-08-24; the floor is now `>=22.13.0` everywhere, so npm warns at install
|
|
115
|
+
time.
|
|
116
|
+
|
|
117
|
+
The crash happened while ESM _linked_ `main.ts`'s import graph (`output.ts` →
|
|
118
|
+
`@artblocks/abx-indexer` → `node:sqlite`), before any of our code ran, so no guard inside the CLI
|
|
119
|
+
could have caught it. The published binary is now a deliberately import-free shim (`dist/bin.js`)
|
|
120
|
+
that probes for `node:sqlite` and hands off to `main.js` — it prints the running version, the real
|
|
121
|
+
floor, and the upgrade command. It probes the **capability**, not the version number: an old Node
|
|
122
|
+
launched with `NODE_OPTIONS=--experimental-sqlite` genuinely works, and refusing that would be a
|
|
123
|
+
false negative. `engines` states what we support; the guard blocks only what is actually broken.
|
|
124
|
+
|
|
125
|
+
`abx doctor`'s header now also reports the running Node, since its output is what people paste when
|
|
126
|
+
something is wrong.
|
|
127
|
+
|
|
3
128
|
## 0.1.0-alpha.22
|
|
4
129
|
|
|
5
130
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -8,7 +8,7 @@ this same public library. If you're scripting one-off operations, the CLI is usu
|
|
|
8
8
|
reach for — install with `abx skill install` and let an agent drive it. Reach for the SDK when you're
|
|
9
9
|
building something programmatic: a server, a mint endpoint, a scheduled job.
|
|
10
10
|
|
|
11
|
-
ESM-only, built on [viem](https://viem.sh), requires Node 22.
|
|
11
|
+
ESM-only, built on [viem](https://viem.sh), requires Node 22.13+. The package's main entry is
|
|
12
12
|
**browser-safe** — bundled and tested under `platform: 'browser'` on every change.
|
|
13
13
|
|
|
14
14
|
## Install
|
package/dist/chunks.d.ts
CHANGED
|
@@ -35,11 +35,31 @@ export declare function planChunks(content: Uint8Array, opts?: {
|
|
|
35
35
|
chunkSize?: number;
|
|
36
36
|
}): PlannedChunk[];
|
|
37
37
|
/**
|
|
38
|
-
* A per-transaction gas ceiling for packing chunk writes
|
|
39
|
-
*
|
|
40
|
-
*
|
|
38
|
+
* A per-transaction gas ceiling for packing chunk writes; the planner splits content across
|
|
39
|
+
* multiple transactions to stay beneath it.
|
|
40
|
+
*
|
|
41
|
+
* **The binding constraint is `eth_estimateGas`, NOT the block gas limit.** This comment used to say
|
|
42
|
+
* "comfortably under mainnet's ~30M block limit", which was both stale and the wrong limit — and the
|
|
43
|
+
* wrong limit in the dangerous direction, because block limits are now far HIGHER (measured
|
|
44
|
+
* 2026-08-24: 60M on Ethereum/Sepolia, 400M on Base, 1,200M on Base Sepolia), so anyone correcting
|
|
45
|
+
* the stale number would raise this budget and break every deploy.
|
|
46
|
+
*
|
|
47
|
+
* What actually binds: every send estimates first, and `eth_estimateGas` is capped at **16,777,216
|
|
48
|
+
* (2^24)** — measured identically on sepolia.base.org, base-sepolia publicnode and
|
|
49
|
+
* ethereum-sepolia publicnode, independent of their `eth_call` caps (600M / 50M / 50M-2000M) and of
|
|
50
|
+
* the block limit. A batch planned above that fails at the estimate, before anything is sent.
|
|
51
|
+
*
|
|
52
|
+
* 8M leaves room for the base + calldata cost under that 16.7M ceiling. **Do not raise it toward a
|
|
53
|
+
* block limit.** If you raise it at all, measure the estimate allowance first — and note that these
|
|
54
|
+
* are third-party numbers that move.
|
|
41
55
|
*/
|
|
42
56
|
export declare const DEFAULT_TX_GAS_BUDGET = 8000000;
|
|
57
|
+
/**
|
|
58
|
+
* The measured `eth_estimateGas` allowance — 2^24 — identical on every endpoint tried on both
|
|
59
|
+
* supported chains (2026-08-24). Recorded so {@link DEFAULT_TX_GAS_BUDGET} can be justified by the
|
|
60
|
+
* limit that actually binds it rather than by a block limit that does not.
|
|
61
|
+
*/
|
|
62
|
+
export declare const MEASURED_ESTIMATE_GAS_ALLOWANCE = 16777216;
|
|
43
63
|
/**
|
|
44
64
|
* Rough gas for writing one chunk as an SSTORE2 data contract: a fixed CREATE + base
|
|
45
65
|
* overhead plus the code-deposit cost (~200 gas/byte) and calldata. Deliberately an
|
package/dist/chunks.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunks.d.ts","sourceRoot":"","sources":["../src/chunks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiD,KAAK,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,YAAY,EAAC,MAAM,MAAM,CAAC;AAM/G,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,cAAc,CAAC;AAEzC;;;;;;;;;GASG;AAEH;2FAC2F;AAC3F,eAAO,MAAM,kBAAkB,QAAS,CAAC;AAEzC,iFAAiF;AACjF,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,UAAU,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;GAMG;AAEH;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,UAAU,EACnB,IAAI,GAAE;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAM,GAChD,YAAY,EAAE,CAehB;AAID
|
|
1
|
+
{"version":3,"file":"chunks.d.ts","sourceRoot":"","sources":["../src/chunks.ts"],"names":[],"mappings":"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"}
|
package/dist/chunks.js
CHANGED
|
@@ -47,11 +47,31 @@ export function planChunks(content, opts = {}) {
|
|
|
47
47
|
}
|
|
48
48
|
const toHex = (b) => bytesToHex(b);
|
|
49
49
|
/**
|
|
50
|
-
* A per-transaction gas ceiling for packing chunk writes
|
|
51
|
-
*
|
|
52
|
-
*
|
|
50
|
+
* A per-transaction gas ceiling for packing chunk writes; the planner splits content across
|
|
51
|
+
* multiple transactions to stay beneath it.
|
|
52
|
+
*
|
|
53
|
+
* **The binding constraint is `eth_estimateGas`, NOT the block gas limit.** This comment used to say
|
|
54
|
+
* "comfortably under mainnet's ~30M block limit", which was both stale and the wrong limit — and the
|
|
55
|
+
* wrong limit in the dangerous direction, because block limits are now far HIGHER (measured
|
|
56
|
+
* 2026-08-24: 60M on Ethereum/Sepolia, 400M on Base, 1,200M on Base Sepolia), so anyone correcting
|
|
57
|
+
* the stale number would raise this budget and break every deploy.
|
|
58
|
+
*
|
|
59
|
+
* What actually binds: every send estimates first, and `eth_estimateGas` is capped at **16,777,216
|
|
60
|
+
* (2^24)** — measured identically on sepolia.base.org, base-sepolia publicnode and
|
|
61
|
+
* ethereum-sepolia publicnode, independent of their `eth_call` caps (600M / 50M / 50M-2000M) and of
|
|
62
|
+
* the block limit. A batch planned above that fails at the estimate, before anything is sent.
|
|
63
|
+
*
|
|
64
|
+
* 8M leaves room for the base + calldata cost under that 16.7M ceiling. **Do not raise it toward a
|
|
65
|
+
* block limit.** If you raise it at all, measure the estimate allowance first — and note that these
|
|
66
|
+
* are third-party numbers that move.
|
|
53
67
|
*/
|
|
54
68
|
export const DEFAULT_TX_GAS_BUDGET = 8_000_000;
|
|
69
|
+
/**
|
|
70
|
+
* The measured `eth_estimateGas` allowance — 2^24 — identical on every endpoint tried on both
|
|
71
|
+
* supported chains (2026-08-24). Recorded so {@link DEFAULT_TX_GAS_BUDGET} can be justified by the
|
|
72
|
+
* limit that actually binds it rather than by a block limit that does not.
|
|
73
|
+
*/
|
|
74
|
+
export const MEASURED_ESTIMATE_GAS_ALLOWANCE = 16_777_216;
|
|
55
75
|
/**
|
|
56
76
|
* Rough gas for writing one chunk as an SSTORE2 data contract: a fixed CREATE + base
|
|
57
77
|
* overhead plus the code-deposit cost (~200 gas/byte) and calldata. Deliberately an
|
package/dist/chunks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunks.js","sourceRoot":"","sources":["../src/chunks.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"chunks.js","sourceRoot":"","sources":["../src/chunks.ts"],"names":[],"mappings":"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"}
|
package/dist/probe.d.ts
CHANGED
|
@@ -56,4 +56,33 @@ export declare function probeHistoryAt(client: PublicClient, blockNumber: bigint
|
|
|
56
56
|
retained: boolean;
|
|
57
57
|
reason?: string;
|
|
58
58
|
}>;
|
|
59
|
+
/**
|
|
60
|
+
* Measure an endpoint's real `eth_call` gas allowance, or `null` if it can't be determined.
|
|
61
|
+
*
|
|
62
|
+
* Returns `Infinity` when the node applied no cap at all (it handed back everything asked for).
|
|
63
|
+
*
|
|
64
|
+
* `null` is a normal outcome, not an error: an endpoint may reject state overrides, be behind a
|
|
65
|
+
* proxy that strips them, or be unreachable. Callers MUST treat `null` as "unknown" and fall back
|
|
66
|
+
* to {@link ETH_CALL_GAS_FLOOR} for guidance — never as a reason to block anything.
|
|
67
|
+
*
|
|
68
|
+
* Two limits on what this result means, and both belong in anything shown to a creator:
|
|
69
|
+
* 1. It measures what YOUR endpoint serves. It says nothing about the endpoint a marketplace or
|
|
70
|
+
* an indexer uses, and those are the ones that decide whether the token displays.
|
|
71
|
+
* 2. It is point-in-time. Pooled endpoints rotate between backends with different configs —
|
|
72
|
+
* ethereum-sepolia publicnode measured 50M and 2000M an hour apart — so this is an
|
|
73
|
+
* observation of third-party infrastructure, not a property you can rely on tomorrow.
|
|
74
|
+
*/
|
|
75
|
+
export declare function probeEthCallGasCap(url: string, timeoutMs?: number): Promise<number | null>;
|
|
76
|
+
/**
|
|
77
|
+
* The best `eth_call` gas cap available across the configured endpoints — the toolkit fails over
|
|
78
|
+
* between them, so the one that can serve the read is the one that matters. `null` when none could
|
|
79
|
+
* be measured.
|
|
80
|
+
*/
|
|
81
|
+
export declare function probeBestEthCallGasCap(opts?: {
|
|
82
|
+
chainKey?: string;
|
|
83
|
+
urls?: string[];
|
|
84
|
+
}): Promise<{
|
|
85
|
+
gasCap: number | null;
|
|
86
|
+
label: string | null;
|
|
87
|
+
}>;
|
|
59
88
|
//# sourceMappingURL=probe.d.ts.map
|
package/dist/probe.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"probe.d.ts","sourceRoot":"","sources":["../src/probe.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6E,KAAK,YAAY,EAAC,MAAM,MAAM,CAAC;AAInH;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC;AAExD,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,UAAU,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAeD,wBAAsB,iBAAiB,CACrC,IAAI,GAAE;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CAAM,GAC9C,OAAO,CAAC,QAAQ,EAAE,CAAC,CAIrB;AAyDD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAC,CAAC,CAgD/C"}
|
|
1
|
+
{"version":3,"file":"probe.d.ts","sourceRoot":"","sources":["../src/probe.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6E,KAAK,YAAY,EAAC,MAAM,MAAM,CAAC;AAInH;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC;AAExD,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,UAAU,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAeD,wBAAsB,iBAAiB,CACrC,IAAI,GAAE;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CAAM,GAC9C,OAAO,CAAC,QAAQ,EAAE,CAAC,CAIrB;AAyDD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAC,CAAC,CAgD/C;AAiED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,SAAQ,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAiC/F;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,GAAE;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CAAM,GAAG,OAAO,CAAC;IACrG,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,CAAC,CAOD"}
|
package/dist/probe.js
CHANGED
|
@@ -166,4 +166,115 @@ function looksLikeReceiptMissing(err) {
|
|
|
166
166
|
function firstLine(err) {
|
|
167
167
|
return (err?.message ?? String(err)).split('\n')[0].slice(0, 100);
|
|
168
168
|
}
|
|
169
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
170
|
+
// eth_call gas cap — the number that decides whether a big on-chain token can be READ
|
|
171
|
+
//
|
|
172
|
+
// The toolkit used to gate on-chain content against a hardcoded assumption: geth's
|
|
173
|
+
// `--rpc.gascap` default of 50,000,000, minus a margin because "hosted providers commonly cap
|
|
174
|
+
// lower". Measured on 2026-08-24, that assumption was wrong in both directions and the gate it
|
|
175
|
+
// produced (refuse past 100 KB) sat BELOW every endpoint tested:
|
|
176
|
+
//
|
|
177
|
+
// sepolia.base.org (the default endpoint of our default chain) 600,000,000 ~729 KB
|
|
178
|
+
// base-sepolia.publicnode.com 50,000,000 ~117 KB
|
|
179
|
+
// base-sepolia.drpc.org 50,000,000 ~117 KB
|
|
180
|
+
// ethereum-sepolia.publicnode.com 50,000,000 ~117 KB
|
|
181
|
+
//
|
|
182
|
+
// So providers do not "commonly cap lower" — 50M is the FLOOR, and the chain we ship as default
|
|
183
|
+
// serves 12x that. A fixed byte threshold cannot express this; the honest move is the same one
|
|
184
|
+
// this module already makes for getLogs: measure the endpoint instead of trusting a table.
|
|
185
|
+
//
|
|
186
|
+
// THREE DIFFERENT LIMITS get called "the gas limit", and on one endpoint they span three orders of
|
|
187
|
+
// magnitude. Conflating them is the single most common way to get this wrong:
|
|
188
|
+
//
|
|
189
|
+
// eth_call cap eth_estimateGas block gasLimit
|
|
190
|
+
// sepolia.base.org 600M 16.7M 1,200M
|
|
191
|
+
// base-sepolia publicnode 50M 16.7M 1,200M
|
|
192
|
+
// ethereum-sepolia publicnode 50M-2000M 16.7M 60M
|
|
193
|
+
//
|
|
194
|
+
// • eth_call cap — bounds a READ. Varies wildly by provider; what this function measures.
|
|
195
|
+
// • estimateGas cap — bounds what can be ESTIMATED, so in practice what can be SENT. Measured at
|
|
196
|
+
// 16,777,216 (2^24) on every endpoint tried, independent of the other two.
|
|
197
|
+
// This, not the block limit, is what keeps DEFAULT_TX_GAS_BUDGET where it is.
|
|
198
|
+
// • block gasLimit — bounds a contract reading another contract INSIDE a transaction. Nothing
|
|
199
|
+
// to do with an off-chain read.
|
|
200
|
+
//
|
|
201
|
+
// Note the row for ethereum-sepolia publicnode: it measured 50M one hour and 2000M the next. Pooled
|
|
202
|
+
// endpoints rotate between backends with different configs, so a measurement is a point-in-time
|
|
203
|
+
// observation of somebody else's infrastructure, never a guarantee. Report it as what it is.
|
|
204
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
205
|
+
/** A contract whose entire body is `GAS; PUSH1 0; MSTORE; PUSH1 32; PUSH1 0; RETURN` — it returns
|
|
206
|
+
* the gas the node actually provisioned for the call. Injected via an `eth_call` state override,
|
|
207
|
+
* so the probe deploys nothing, sends nothing, and needs no key. */
|
|
208
|
+
const GAS_REPORTER_CODE = '0x5a60005260206000f3';
|
|
209
|
+
/** An address nothing else will occupy, for the state override to write the reporter into. */
|
|
210
|
+
const GAS_REPORTER_ADDR = '0x00000000000000000000000000000000000c0de0';
|
|
211
|
+
/** Ask for more than any node grants, so the answer is the node's cap rather than our request.
|
|
212
|
+
* geth clamps silently (it logs "Caller gas above allowance, capping"), which is exactly the
|
|
213
|
+
* behavior that makes this readable as a measurement. */
|
|
214
|
+
const GAS_PROBE_ASK = 2_000_000_000;
|
|
215
|
+
/**
|
|
216
|
+
* Measure an endpoint's real `eth_call` gas allowance, or `null` if it can't be determined.
|
|
217
|
+
*
|
|
218
|
+
* Returns `Infinity` when the node applied no cap at all (it handed back everything asked for).
|
|
219
|
+
*
|
|
220
|
+
* `null` is a normal outcome, not an error: an endpoint may reject state overrides, be behind a
|
|
221
|
+
* proxy that strips them, or be unreachable. Callers MUST treat `null` as "unknown" and fall back
|
|
222
|
+
* to {@link ETH_CALL_GAS_FLOOR} for guidance — never as a reason to block anything.
|
|
223
|
+
*
|
|
224
|
+
* Two limits on what this result means, and both belong in anything shown to a creator:
|
|
225
|
+
* 1. It measures what YOUR endpoint serves. It says nothing about the endpoint a marketplace or
|
|
226
|
+
* an indexer uses, and those are the ones that decide whether the token displays.
|
|
227
|
+
* 2. It is point-in-time. Pooled endpoints rotate between backends with different configs —
|
|
228
|
+
* ethereum-sepolia publicnode measured 50M and 2000M an hour apart — so this is an
|
|
229
|
+
* observation of third-party infrastructure, not a property you can rely on tomorrow.
|
|
230
|
+
*/
|
|
231
|
+
export async function probeEthCallGasCap(url, timeoutMs = 6_000) {
|
|
232
|
+
const signal = AbortSignal.timeout(timeoutMs);
|
|
233
|
+
try {
|
|
234
|
+
const res = await fetch(url, {
|
|
235
|
+
method: 'POST',
|
|
236
|
+
headers: { 'content-type': 'application/json' },
|
|
237
|
+
signal,
|
|
238
|
+
body: JSON.stringify({
|
|
239
|
+
jsonrpc: '2.0',
|
|
240
|
+
id: 1,
|
|
241
|
+
method: 'eth_call',
|
|
242
|
+
params: [
|
|
243
|
+
{ to: GAS_REPORTER_ADDR, gas: `0x${GAS_PROBE_ASK.toString(16)}` },
|
|
244
|
+
'latest',
|
|
245
|
+
{ [GAS_REPORTER_ADDR]: { code: GAS_REPORTER_CODE } },
|
|
246
|
+
],
|
|
247
|
+
}),
|
|
248
|
+
});
|
|
249
|
+
if (!res.ok)
|
|
250
|
+
return null;
|
|
251
|
+
const body = (await res.json());
|
|
252
|
+
if (typeof body.result !== 'string' || !/^0x[0-9a-f]+$/i.test(body.result))
|
|
253
|
+
return null;
|
|
254
|
+
const gas = Number(BigInt(body.result));
|
|
255
|
+
// A node that ignored the override returns 0x (empty) or a nonsense value; a node that honored
|
|
256
|
+
// it reports something in the tens-of-millions. Anything below the floor means the override did
|
|
257
|
+
// not take, not that the node is unusually stingy.
|
|
258
|
+
if (!Number.isFinite(gas) || gas <= 1_000_000)
|
|
259
|
+
return null;
|
|
260
|
+
// If the node handed back (nearly) everything asked for, it did not clamp — so it is uncapped,
|
|
261
|
+
// or capped somewhere above the ask. Either way GAS_PROBE_ASK is OUR number, not a measurement,
|
|
262
|
+
// and reporting it as the node's cap would be inventing a limit that does not exist.
|
|
263
|
+
return gas >= GAS_PROBE_ASK * 0.99 ? Number.POSITIVE_INFINITY : gas;
|
|
264
|
+
}
|
|
265
|
+
catch {
|
|
266
|
+
return null;
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* The best `eth_call` gas cap available across the configured endpoints — the toolkit fails over
|
|
271
|
+
* between them, so the one that can serve the read is the one that matters. `null` when none could
|
|
272
|
+
* be measured.
|
|
273
|
+
*/
|
|
274
|
+
export async function probeBestEthCallGasCap(opts = {}) {
|
|
275
|
+
const urls = opts.urls ?? resolveRpcUrls(opts.chainKey);
|
|
276
|
+
const results = await Promise.all(urls.map(async (url) => ({ label: redactRpcUrl(url), gasCap: await probeEthCallGasCap(url) })));
|
|
277
|
+
const best = results.filter((r) => r.gasCap != null).sort((a, b) => b.gasCap - a.gasCap)[0];
|
|
278
|
+
return best ? { gasCap: best.gasCap, label: best.label } : { gasCap: null, label: null };
|
|
279
|
+
}
|
|
169
280
|
//# sourceMappingURL=probe.js.map
|
package/dist/probe.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"probe.js","sourceRoot":"","sources":["../src/probe.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"probe.js","sourceRoot":"","sources":["../src/probe.ts"],"names":[],"mappings":"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"}
|
package/dist/staging.d.ts
CHANGED
|
@@ -30,30 +30,54 @@ export declare const TOKEN_URI_GAS_PER_KB_LOW = 360000;
|
|
|
30
30
|
/** Measured `tokenURI` gas per KB at the TOP of the readable range (100 KB). Past that the rate
|
|
31
31
|
* keeps climbing (~460,000/KB at 187 KB), so this is a range endpoint, not a ceiling. */
|
|
32
32
|
export declare const TOKEN_URI_GAS_PER_KB_HIGH = 405000;
|
|
33
|
-
/** From here up,
|
|
33
|
+
/** From here up, the read is worth NAMING a number for (~15M gas at 40 KB) — a note about cost, not
|
|
34
|
+
* a statement about whether the token can be read. Every endpoint measured serves well past this. */
|
|
34
35
|
export declare const ONCHAIN_READ_WARN_BYTES: number;
|
|
35
|
-
/**
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
*
|
|
41
|
-
|
|
36
|
+
/**
|
|
37
|
+
* The `eth_call` gas allowance we can count on being available essentially anywhere: geth's
|
|
38
|
+
* `--rpc.gascap` default, and the measured cap of publicnode and drpc on both supported chains
|
|
39
|
+
* (2026-08-24). Content whose `tokenURI` read fits under this renders on any endpoint tested.
|
|
40
|
+
*
|
|
41
|
+
* It is a FLOOR, not a ceiling, and the difference is the whole point. The toolkit previously
|
|
42
|
+
* refused on-chain content past 100 KB on the theory that "hosted providers commonly cap lower"
|
|
43
|
+
* than this — they do not, and `sepolia.base.org` (the default endpoint of the default chain)
|
|
44
|
+
* measures 600,000,000, twelve times higher and good for ~729 KB. The refusal therefore sat below
|
|
45
|
+
* every endpoint we could find, blocking content all of them could read. Use
|
|
46
|
+
* {@link probeEthCallGasCap} to learn what an endpoint actually serves; use this only as the
|
|
47
|
+
* conservative reference for "will it render for everyone else".
|
|
48
|
+
*/
|
|
49
|
+
export declare const ETH_CALL_GAS_FLOOR = 50000000;
|
|
42
50
|
/**
|
|
43
51
|
* Rough `tokenURI` gas for `bytesLen` of on-chain content — orientation, not a quote.
|
|
44
52
|
*
|
|
45
53
|
* 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
|
|
47
|
-
*
|
|
54
|
+
* 256 KB, and slightly high rather than low, which is the right direction for a number a creator
|
|
55
|
+
* plans against. A flat per-KB rate was wrong at both ends — it overstated a 10 KB read by ~30% and
|
|
48
56
|
* understated a 256 KB one by ~10%.
|
|
49
57
|
*/
|
|
50
58
|
export declare function tokenUriGasEstimate(bytesLen: number): number;
|
|
51
|
-
/**
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
*
|
|
56
|
-
|
|
59
|
+
/** How much on-chain content a node with `gasCap` can serve in one `tokenURI` — the inverse of
|
|
60
|
+
* {@link tokenUriGasEstimate}, solved for bytes. Orientation, same ~3% fit. */
|
|
61
|
+
export declare function readableBytesAtGas(gasCap: number): number;
|
|
62
|
+
/**
|
|
63
|
+
* `ok` = every endpoint measured serves this read · `endpoint-dependent` = your RPC serves it but a
|
|
64
|
+
* 50M-capped one does not, so some marketplaces and indexers will see a revert · `beyond-local-rpc`
|
|
65
|
+
* = past what even your own measured endpoint allows.
|
|
66
|
+
*
|
|
67
|
+
* None of these is a refusal. Reads happen off-chain and a read that is too large for one node is an
|
|
68
|
+
* RPC-capability problem, not a reason to stop a creator writing bytes they want permanent — and any
|
|
69
|
+
* fixed byte threshold is a guess about third-party infrastructure that will be wrong in both
|
|
70
|
+
* directions (ours was: it blocked 100 KB while the default chain's own endpoint served 729 KB).
|
|
71
|
+
*/
|
|
72
|
+
export type OnchainReadVerdict = 'ok' | 'endpoint-dependent' | 'beyond-local-rpc';
|
|
73
|
+
/**
|
|
74
|
+
* Classify `bytesLen` of on-chain content by who can READ the token carrying it.
|
|
75
|
+
*
|
|
76
|
+
* `capGas` is the caller's measured `eth_call` allowance ({@link probeEthCallGasCap}); pass `null`
|
|
77
|
+
* or omit it when it could not be measured, and the verdict degrades to the two bands that do not
|
|
78
|
+
* need it. Kept in the SDK so the SDK and the CLI cannot disagree about the boundary.
|
|
79
|
+
*/
|
|
80
|
+
export declare function classifyOnchainReadSize(bytesLen: number, capGas?: number | null): OnchainReadVerdict;
|
|
57
81
|
/** The plan for staging one piece of content: how it chunks, how it compresses, and the
|
|
58
82
|
* transaction shape ({@link planContentTxs}) that staging it will take. */
|
|
59
83
|
export interface ContentPlan {
|
package/dist/staging.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"staging.d.ts","sourceRoot":"","sources":["../src/staging.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,OAAO,EAAE,GAAG,EAAE,YAAY,EAAC,MAAM,MAAM,CAAC;AACrD,OAAO,EAA6D,KAAK,eAAe,EAAE,KAAK,aAAa,EAAC,MAAM,aAAa,CAAC;AAGjI,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,cAAc,CAAC;AAEzC;;;;;;;;;;;;GAYG;AAEH;;;2CAG2C;AAC3C,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;AASlD,eAAO,MAAM,wBAAwB,QAAY,CAAC;AAClD,eAAO,MAAM,0BAA0B,QAAa,CAAC;AAErD;sFACsF;AACtF,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEjE;
|
|
1
|
+
{"version":3,"file":"staging.d.ts","sourceRoot":"","sources":["../src/staging.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,OAAO,EAAE,GAAG,EAAE,YAAY,EAAC,MAAM,MAAM,CAAC;AACrD,OAAO,EAA6D,KAAK,eAAe,EAAE,KAAK,aAAa,EAAC,MAAM,aAAa,CAAC;AAGjI,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,cAAc,CAAC;AAEzC;;;;;;;;;;;;GAYG;AAEH;;;2CAG2C;AAC3C,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;AASlD,eAAO,MAAM,wBAAwB,QAAY,CAAC;AAClD,eAAO,MAAM,0BAA0B,QAAa,CAAC;AAErD;sFACsF;AACtF,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEjE;AAkDD;mGACmG;AACnG,eAAO,MAAM,wBAAwB,SAAU,CAAC;AAChD;0FAC0F;AAC1F,eAAO,MAAM,yBAAyB,SAAU,CAAC;AACjD;sGACsG;AACtG,eAAO,MAAM,uBAAuB,QAAY,CAAC;AAEjD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,kBAAkB,WAAa,CAAC;AAE7C;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAG5D;AAED;gFACgF;AAChF,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAIzD;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,kBAAkB,GAAG,IAAI,GAAG,oBAAoB,GAAG,kBAAkB,CAAC;AAElF;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,kBAAkB,CAKpG;AAED;4EAC4E;AAC5E,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,UAAU,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,aAAa,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,GAAG,WAAW,CAOtF;AAED;;oFAEoF;AACpF,MAAM,MAAM,YAAY,GACpB;IAAC,IAAI,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,eAAe,CAAA;CAAC,GAC7C;IAAC,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,WAAW,CAAA;CAAC,GAC1E;IAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,GAAG,EAAE,CAAA;CAAC,CAAC;AAExE,MAAM,WAAW,qBAAqB;IACpC;uDACmD;IACnD,OAAO,EAAE,UAAU,CAAC;IACpB,QAAQ,EAAE,QAAQ,CAAC;IACnB,yFAAyF;IACzF,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,YAAY,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB;oCACgC;IAChC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,YAAY,KAAK,IAAI,CAAC;CACrC;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC;IAAC,KAAK,EAAE,GAAG,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAC,CAAC,CAalH"}
|
package/dist/staging.js
CHANGED
|
@@ -44,51 +44,81 @@ export function exceedsOnchainSoftLimit(bytesLen) {
|
|
|
44
44
|
// at 128 KB, 5.5% at 187 KB, 9.6% at 256 KB) because the store's read loop is quadratic in chunk
|
|
45
45
|
// count.
|
|
46
46
|
//
|
|
47
|
-
//
|
|
48
|
-
//
|
|
49
|
-
//
|
|
50
|
-
//
|
|
51
|
-
//
|
|
52
|
-
//
|
|
53
|
-
//
|
|
54
|
-
//
|
|
55
|
-
// the
|
|
47
|
+
// What that gas figure means for READABILITY is a property of the endpoint, not of the chain, so it
|
|
48
|
+
// is MEASURED rather than assumed — see `probeEthCallGasCap` in probe.ts. Measured 2026-08-24:
|
|
49
|
+
// `sepolia.base.org` allows 600,000,000 (~729 KB), while publicnode and drpc allow 50,000,000
|
|
50
|
+
// (~117 KB) on both supported chains.
|
|
51
|
+
//
|
|
52
|
+
// Do not conflate that with the BLOCK gas limit, which bounds a contract reading another contract
|
|
53
|
+
// inside a transaction and is a different number again — measured 2026-08-24: 60,000,000 on Ethereum
|
|
54
|
+
// and Sepolia, 400,000,000 on Base, and 1,200,000,000 on Base Sepolia. So on our default chain a
|
|
55
|
+
// contract can read ~1,100 KB inside a transaction, not the ~90 KB this comment used to claim from a
|
|
56
|
+
// stale "mid-30-millions" figure. And a third limit binds what can be SENT: `eth_estimateGas` caps at
|
|
57
|
+
// 16,777,216 everywhere measured (see chunks.ts). Three limits, three orders of magnitude, one name.
|
|
58
|
+
//
|
|
59
|
+
// The toolkit used to REFUSE past 100 KB, reasoning from geth's 50M default minus a margin because
|
|
60
|
+
// "hosted providers commonly cap lower". They do not: 50M is the floor, and the default endpoint of
|
|
61
|
+
// our default chain is twelve times above it. That refusal therefore sat below every endpoint we
|
|
62
|
+
// could measure — it blocked content all of them could read. There is now no refusal at any size,
|
|
63
|
+
// here or on-chain: reads happen off-chain, a too-large read is an RPC-capability problem rather
|
|
64
|
+
// than a reason to stop someone writing bytes they want permanent, and the toolkit's job is to state
|
|
65
|
+
// the cost before the bytes are written, not to decide the trade for the creator.
|
|
56
66
|
/** Measured `tokenURI` gas per KB at the BOTTOM of the readable range (10 KB). The rate is not
|
|
57
67
|
* flat — see the note above, and use {@link tokenUriGasEstimate} for a figure at a given size. */
|
|
58
68
|
export const TOKEN_URI_GAS_PER_KB_LOW = 360_000;
|
|
59
69
|
/** Measured `tokenURI` gas per KB at the TOP of the readable range (100 KB). Past that the rate
|
|
60
70
|
* keeps climbing (~460,000/KB at 187 KB), so this is a range endpoint, not a ceiling. */
|
|
61
71
|
export const TOKEN_URI_GAS_PER_KB_HIGH = 405_000;
|
|
62
|
-
/** From here up,
|
|
72
|
+
/** From here up, the read is worth NAMING a number for (~15M gas at 40 KB) — a note about cost, not
|
|
73
|
+
* a statement about whether the token can be read. Every endpoint measured serves well past this. */
|
|
63
74
|
export const ONCHAIN_READ_WARN_BYTES = 40 * 1024;
|
|
64
|
-
/**
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
*
|
|
70
|
-
|
|
75
|
+
/**
|
|
76
|
+
* The `eth_call` gas allowance we can count on being available essentially anywhere: geth's
|
|
77
|
+
* `--rpc.gascap` default, and the measured cap of publicnode and drpc on both supported chains
|
|
78
|
+
* (2026-08-24). Content whose `tokenURI` read fits under this renders on any endpoint tested.
|
|
79
|
+
*
|
|
80
|
+
* It is a FLOOR, not a ceiling, and the difference is the whole point. The toolkit previously
|
|
81
|
+
* refused on-chain content past 100 KB on the theory that "hosted providers commonly cap lower"
|
|
82
|
+
* than this — they do not, and `sepolia.base.org` (the default endpoint of the default chain)
|
|
83
|
+
* measures 600,000,000, twelve times higher and good for ~729 KB. The refusal therefore sat below
|
|
84
|
+
* every endpoint we could find, blocking content all of them could read. Use
|
|
85
|
+
* {@link probeEthCallGasCap} to learn what an endpoint actually serves; use this only as the
|
|
86
|
+
* conservative reference for "will it render for everyone else".
|
|
87
|
+
*/
|
|
88
|
+
export const ETH_CALL_GAS_FLOOR = 50_000_000;
|
|
71
89
|
/**
|
|
72
90
|
* Rough `tokenURI` gas for `bytesLen` of on-chain content — orientation, not a quote.
|
|
73
91
|
*
|
|
74
92
|
* Fitted to the measurements above as `350,000·KB + 650·KB²`: within ~3% of measured from 10 KB to
|
|
75
|
-
* 256 KB, and slightly high rather than low, which is the right direction for a number
|
|
76
|
-
*
|
|
93
|
+
* 256 KB, and slightly high rather than low, which is the right direction for a number a creator
|
|
94
|
+
* plans against. A flat per-KB rate was wrong at both ends — it overstated a 10 KB read by ~30% and
|
|
77
95
|
* understated a 256 KB one by ~10%.
|
|
78
96
|
*/
|
|
79
97
|
export function tokenUriGasEstimate(bytesLen) {
|
|
80
98
|
const kb = bytesLen / 1024;
|
|
81
99
|
return Math.round(kb * 350_000 + kb * kb * 650);
|
|
82
100
|
}
|
|
83
|
-
/**
|
|
84
|
-
*
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
101
|
+
/** How much on-chain content a node with `gasCap` can serve in one `tokenURI` — the inverse of
|
|
102
|
+
* {@link tokenUriGasEstimate}, solved for bytes. Orientation, same ~3% fit. */
|
|
103
|
+
export function readableBytesAtGas(gasCap) {
|
|
104
|
+
// 650·KB² + 350,000·KB − gasCap = 0
|
|
105
|
+
const kb = (-350_000 + Math.sqrt(350_000 ** 2 + 4 * 650 * gasCap)) / (2 * 650);
|
|
106
|
+
return Math.max(0, Math.round(kb * 1024));
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Classify `bytesLen` of on-chain content by who can READ the token carrying it.
|
|
110
|
+
*
|
|
111
|
+
* `capGas` is the caller's measured `eth_call` allowance ({@link probeEthCallGasCap}); pass `null`
|
|
112
|
+
* or omit it when it could not be measured, and the verdict degrades to the two bands that do not
|
|
113
|
+
* need it. Kept in the SDK so the SDK and the CLI cannot disagree about the boundary.
|
|
114
|
+
*/
|
|
115
|
+
export function classifyOnchainReadSize(bytesLen, capGas) {
|
|
116
|
+
const gas = tokenUriGasEstimate(bytesLen);
|
|
117
|
+
if (gas <= ETH_CALL_GAS_FLOOR)
|
|
118
|
+
return 'ok';
|
|
119
|
+
if (capGas != null && gas > capGas)
|
|
120
|
+
return 'beyond-local-rpc';
|
|
121
|
+
return 'endpoint-dependent';
|
|
92
122
|
}
|
|
93
123
|
/**
|
|
94
124
|
* Pure staging plan for a piece of content — chunk count + transaction shape — with NO chain
|
package/dist/staging.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"staging.js","sourceRoot":"","sources":["../src/staging.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,gBAAgB,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,EAA2C,MAAM,aAAa,CAAC;AACjI,OAAO,EAAC,YAAY,EAAC,MAAM,YAAY,CAAC;AACxC,OAAO,EAAC,uBAAuB,IAAI,CAAC,EAAC,MAAM,YAAY,CAAC;AAuBxD,gFAAgF;AAChF,EAAE;AACF,+FAA+F;AAC/F,oGAAoG;AACpG,+FAA+F;AAC/F,kGAAkG;AAClG,kCAAkC;AAClC,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW;AAC9D,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,oCAAoC;AAE1F;sFACsF;AACtF,MAAM,UAAU,uBAAuB,CAAC,QAAgB;IACtD,OAAO,QAAQ,GAAG,wBAAwB,CAAC;AAC7C,CAAC;AAED,2FAA2F;AAC3F,oGAAoG;AACpG,kGAAkG;AAClG,oGAAoG;AACpG,kEAAkE;AAClE,EAAE;AACF,2FAA2F;AAC3F,gGAAgG;AAChG,yFAAyF;AACzF,EAAE;AACF,6EAA6E;AAC7E,8EAA8E;AAC9E,8EAA8E;AAC9E,8EAA8E;AAC9E,8EAA8E;AAC9E,wCAAwC;AACxC,wCAAwC;AACxC,wCAAwC;AACxC,EAAE;AACF,kGAAkG;AAClG,iGAAiG;AACjG,0DAA0D;AAC1D,EAAE;AACF,6FAA6F;AAC7F,iGAAiG;AACjG,oGAAoG;AACpG,iGAAiG;AACjG,SAAS;AACT,EAAE;AACF,
|
|
1
|
+
{"version":3,"file":"staging.js","sourceRoot":"","sources":["../src/staging.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@artblocks/abx-sdk",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
3
|
+
"version": "0.1.0-alpha.24",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "ABX SDK (Layer 2) — the neutral, low-level library that turns protocol operations into typed function calls. No provider, no chain, no UX baked in.",
|
|
6
6
|
"type": "module",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
],
|
|
28
28
|
"sideEffects": false,
|
|
29
29
|
"engines": {
|
|
30
|
-
"node": ">=22.
|
|
30
|
+
"node": ">=22.13.0"
|
|
31
31
|
},
|
|
32
32
|
"repository": {
|
|
33
33
|
"type": "git",
|