@artblocks/abx-cli 0.1.0-alpha.23 → 0.1.0-alpha.25
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 +199 -0
- package/dist/commands/deploy.d.ts +15 -0
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +155 -59
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/scaffold.d.ts.map +1 -1
- package/dist/commands/scaffold.js +8 -1
- package/dist/commands/scaffold.js.map +1 -1
- package/dist/kind.d.ts +8 -0
- package/dist/kind.d.ts.map +1 -1
- package/dist/kind.js +17 -0
- package/dist/kind.js.map +1 -1
- package/dist/main.js +21 -6
- package/dist/main.js.map +1 -1
- package/dist/output.d.ts.map +1 -1
- package/dist/output.js +59 -2
- package/dist/output.js.map +1 -1
- package/dist/ownerops.d.ts +34 -0
- package/dist/ownerops.d.ts.map +1 -1
- package/dist/ownerops.js +136 -5
- package/dist/ownerops.js.map +1 -1
- package/dist/riskgate.d.ts +19 -0
- package/dist/riskgate.d.ts.map +1 -1
- package/dist/riskgate.js +31 -1
- package/dist/riskgate.js.map +1 -1
- package/dist/schema.js +4 -4
- package/dist/schema.js.map +1 -1
- package/dist/script-chunks.d.ts +8 -0
- package/dist/script-chunks.d.ts.map +1 -0
- package/dist/script-chunks.js +35 -0
- package/dist/script-chunks.js.map +1 -0
- package/package.json +6 -6
- package/skill/SKILL.md +10 -7
- package/skill/reference/code-projects.md +3 -3
- package/skill/reference/decisions.md +1 -1
- package/skill/reference/hosting.md +4 -2
- package/skill/reference/operating.md +6 -0
- package/skill/reference/setup.md +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,204 @@
|
|
|
1
1
|
# @artblocks/abx-cli
|
|
2
2
|
|
|
3
|
+
## 0.1.0-alpha.25
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- c5b8ec3: `ipfs` and `arweave` metadata fields now resolve on both planes, through a gateway the collection
|
|
8
|
+
chooses — renderer **spec v11**.
|
|
9
|
+
|
|
10
|
+
These are the two representations that are content-addressed, the two where the locator IS the
|
|
11
|
+
integrity hash, and the two this protocol tells creators to prefer. They were also the two the
|
|
12
|
+
on-chain renderer could not serve. So `abx deploy --onchain-uri --backend ipfs|arweave` worked around
|
|
13
|
+
it by baking a gateway HOST into a `url` field, which welded a hostname the creator could never
|
|
14
|
+
migrate and made `abx_provenance` report `source: url` for bytes that live on IPFS.
|
|
15
|
+
|
|
16
|
+
The fix separates the two facts that the baked URL had fused. The CID/txid stays in the field, as
|
|
17
|
+
identity, under that field's own lock. The HTTPS prefix becomes a project-wide preference in two
|
|
18
|
+
reserved collection-scope fields, `abx_gateway_ipfs` / `abx_gateway_arweave`, with `https://ipfs.io/ipfs/`
|
|
19
|
+
and `https://arweave.net/` as floors. The renderer, the canonical generator, and the off-chain
|
|
20
|
+
resolver all read those two fields and apply the same wrap, so a token served from the chain and from
|
|
21
|
+
a resolver produces the same URL.
|
|
22
|
+
|
|
23
|
+
A dead or slow gateway is now a **repoint**, not a rewrite:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
abx set-gateway 0xYourContract --ipfs https://your-dedicated.mypinata.cloud/ipfs/
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
One transaction, every token, no re-upload — and it works on fields you have already locked, because
|
|
30
|
+
the locked value is the CID and the gateway was never in it.
|
|
31
|
+
|
|
32
|
+
**What changes for you**
|
|
33
|
+
|
|
34
|
+
- `--onchain-uri --backend ipfs|arweave` writes the bare CID (or `cid/{id}.ext` for the O(1) directory)
|
|
35
|
+
as an `ipfs`/`arweave` field instead of a gateway URL as `url`/`url-template`. `--backend cloud` is
|
|
36
|
+
unchanged — an HTTPS CDN locator _is_ the address.
|
|
37
|
+
- New `abx set-gateway <addr> [--ipfs <prefix>] [--arweave <prefix>]` (`none` clears to the public
|
|
38
|
+
default). Two flags, so a project can pay for a dedicated IPFS gateway and leave Arweave public.
|
|
39
|
+
- New `--ipfs-gateway` / `--arweave-gateway` on every deploy command. Plain `--gateway` (the
|
|
40
|
+
storage/upload gateway) seeds the preference for the backend in use, so passing it still does what
|
|
41
|
+
you meant. Nothing is written when no gateway is named — silence keeps the floor live.
|
|
42
|
+
- `abx set-field` refuses the two gateway keys and points at `set-gateway`, which validates the
|
|
43
|
+
prefix, the scope and the representation. Every way to set them by hand fails silently.
|
|
44
|
+
- The `display.gateway` contract param is **superseded and no longer read**. It could name only one
|
|
45
|
+
prefix for both schemes and existed only on code projects.
|
|
46
|
+
- SDK: `projectGatewayPrefix`, `projectGatewayUrl`, `gatewayPrefixFrom`, `contentIdFromLocator`,
|
|
47
|
+
`GATEWAY_FIELD`, `GATEWAY_FLOOR`. For a host running its own resolver, `ABX_IPFS_GATEWAY` /
|
|
48
|
+
`ABX_ARWEAVE_GATEWAY` are now a **floor**: a project that stated a preference on chain gets that
|
|
49
|
+
preference from every conforming resolver, and host config only fills a silence.
|
|
50
|
+
|
|
51
|
+
**New canonical addresses** (both testnets; nothing else moved — no token implementation, factory, or
|
|
52
|
+
`initialize` ABI changed):
|
|
53
|
+
|
|
54
|
+
| Contract | Address |
|
|
55
|
+
| -------------------------------- | -------------------------------------------- |
|
|
56
|
+
| `AbxMetadataRenderer` (spec v11) | `0x85C1aE1F076d808fF7c1729F21B85038Fa16105E` |
|
|
57
|
+
| `AbxGenerator` (Sepolia) | `0xb7104AdFa6Fb5615e46E2a681A2Ff043B08fADB5` |
|
|
58
|
+
| `AbxGenerator` (Base Sepolia) | `0x2c1b7Cf6C54E4acBcB54FCc395f7Af88eB4fC8Ce` |
|
|
59
|
+
|
|
60
|
+
Also fixes a crash on `abx deploy-code --copies`: an undefined `bytes` reference threw a
|
|
61
|
+
`ReferenceError` at the end of the dry-run plan and, worse, at the confirmation prompt of a real
|
|
62
|
+
deploy.
|
|
63
|
+
|
|
64
|
+
### Patch Changes
|
|
65
|
+
|
|
66
|
+
- Updated dependencies [c5b8ec3]
|
|
67
|
+
- Updated dependencies [5b29f53]
|
|
68
|
+
- @artblocks/abx-sdk@0.1.0-alpha.17
|
|
69
|
+
- @artblocks/abx-token-api@0.1.0-alpha.20
|
|
70
|
+
- @artblocks/abx-indexer@0.1.0-alpha.18
|
|
71
|
+
- @artblocks/abx-storage@0.1.0-alpha.17
|
|
72
|
+
|
|
73
|
+
## 0.1.0-alpha.24
|
|
74
|
+
|
|
75
|
+
### Patch Changes
|
|
76
|
+
|
|
77
|
+
- 9c287c0: The CLI no longer double-wraps a data URI, lie about managed rendering, or hand zsh an unquoted schema.
|
|
78
|
+
|
|
79
|
+
- Inline `image` that is already a `data:` URI is refused — the renderer wraps bytes itself, and
|
|
80
|
+
storing one produced a blank token with no warning.
|
|
81
|
+
- Surfaces consult `render.attached` on the public resolver before warning that local `fs` means
|
|
82
|
+
"placeholder forever".
|
|
83
|
+
- Undeclared-param advice no longer tells you to schema-declare keys an augment hook supplies.
|
|
84
|
+
- `--schema` Select/Range examples (help and errors) are quoted so zsh does not glob them.
|
|
85
|
+
- `attach --help` states URI pairs and `--file` are mutually exclusive.
|
|
86
|
+
- The skill refuses unfilled `⟨your idea⟩` placeholders and documents one-EOA nonce serialization
|
|
87
|
+
plus "no replace-script CLI".
|
|
88
|
+
|
|
89
|
+
Reported in the 2026-08-18 tester batch (feedback 111e2489, a07e0449, 4cedba82, 52487cde, d5423af5, 58984086, 735ed464, 7ff05a6b).
|
|
90
|
+
|
|
91
|
+
- b5744a1: `deploy-series` no longer uploads your art before checking it can sign the deploy
|
|
92
|
+
|
|
93
|
+
The signing lanes were checked at _signing_ time, which is the end of a deploy. Off-chain custody
|
|
94
|
+
(`--backend arweave|ipfs|cloud`) uploads the art near the start, before any transaction exists. So
|
|
95
|
+
`abx deploy-series --dir … --onchain-uri --backend arweave` with no key and no `--dry-run` minted a
|
|
96
|
+
Turbo identity and pushed the files, then discovered it could never have deployed. Under Turbo's
|
|
97
|
+
100 KB free tier that upload _succeeds_ — so a run that was always going to fail published the
|
|
98
|
+
creator's work permanently.
|
|
99
|
+
|
|
100
|
+
`assertLaneCanSign` refuses the keyless hot lane and names all three lanes plus the preview. The rule
|
|
101
|
+
it enforces is the sibling of the `--dry-run` guard on every signing choke point: **a spend or a
|
|
102
|
+
publish never precedes the check that this run can be signed at all.**
|
|
103
|
+
|
|
104
|
+
It sits at the spend, not at the front door. A _validation_ refusal (an ipfs-shaped `--image-base`, a
|
|
105
|
+
missing `--name`, off-chain metadata with no public URL) must still reach a creator who has no key,
|
|
106
|
+
because it costs nothing to check and is the more specific answer — so the four image deploy bodies
|
|
107
|
+
assert just before their first byte leaves. `abx deploy` (1/1) turned out never to have been exposed:
|
|
108
|
+
it needs the deployer address to predict the clone, so it already refused before uploading.
|
|
109
|
+
`deploy-code` has no deploy-time upload and is untouched.
|
|
110
|
+
|
|
111
|
+
Found by a cold agent that forgot `--dry-run` once and watched it try to spend anyway.
|
|
112
|
+
|
|
113
|
+
- 9c287c0: PostParams commands refuse unsupported contract kinds before any signing prompt.
|
|
114
|
+
|
|
115
|
+
`set-schema`, `configure-param`, and `retire-param` used to surface a raw viem revert on a 1/1 or
|
|
116
|
+
plain Series. They now detect the kind first and fail as a capability mismatch: SeriesCode /
|
|
117
|
+
EditionCode only. Help text says the same.
|
|
118
|
+
|
|
119
|
+
Reported in the 2026-08-18 tester batch (feedback e47b8ed5, 018ec58a).
|
|
120
|
+
|
|
121
|
+
- b5744a1: An RPC that has pruned its log history is now detected, named, and routed around
|
|
122
|
+
|
|
123
|
+
A public endpoint that no longer holds old logs does not fail your scan — it answers `eth_getLogs`
|
|
124
|
+
with `[]` and HTTP 200, which is a success. Everything downstream believed it:
|
|
125
|
+
|
|
126
|
+
- **`abx doctor` graded it `best`.** The archive probe was
|
|
127
|
+
`getLogs({address: zeroAddress, fromBlock: old, toBlock: old})` and counted any non-throw as archive
|
|
128
|
+
access — but `zeroAddress` never emits logs, so an empty result is exactly what a _perfect_ archive
|
|
129
|
+
node returns too. The assertion could not fail; it only ever caught endpoints that _error_ on old
|
|
130
|
+
blocks. `ARCHIVE_DEPTH` was also 100k blocks, which on a 2-second chain is inside the retained window
|
|
131
|
+
of the very endpoints that prune.
|
|
132
|
+
- **The client never failed over.** The read transport is a viem `fallback` across every configured
|
|
133
|
+
endpoint, and `fallback` rotates on an _error_. So every retry asked the same endpoint the same
|
|
134
|
+
question, and a project whose logs sit ready on the SECOND configured endpoint reconstructed as
|
|
135
|
+
empty.
|
|
136
|
+
- **`abx add` then registered the project with no state at all**, after grinding half a million blocks,
|
|
137
|
+
and suggested re-running `--full` "in a minute" — advice that can never work for a pruned index.
|
|
138
|
+
|
|
139
|
+
Measured on the two default Base Sepolia endpoints, same address and same window: one returns zero
|
|
140
|
+
logs for the project's entire history, the other returns them instantly. Ethereum Sepolia's keyless
|
|
141
|
+
default endpoint shows the same shape past a few hundred thousand blocks.
|
|
142
|
+
|
|
143
|
+
- **The probe asserts on something that must come back.** Blocks are retained by everyone; receipts
|
|
144
|
+
and the log index are what get pruned. `probeHistoryAt` (new SDK export) reads the probe block, asks
|
|
145
|
+
for one of its transactions' receipts, and — when that receipt carries a log — requires `getLogs` to
|
|
146
|
+
return that same log. No hardcoded address, no fixture block. `ARCHIVE_DEPTH` is now 500k.
|
|
147
|
+
It fails **safe**: a probe block with no transactions, or whose transactions logged nothing, keeps the
|
|
148
|
+
old lenient verdict rather than inventing a failure.
|
|
149
|
+
- **`abx doctor` names a reachable endpoint that can't serve history**, with the fault and the fix
|
|
150
|
+
("history pruned ~500000 blocks back … list a full-archive endpoint FIRST in `ABX_RPC_URLS_<CHAIN>`").
|
|
151
|
+
Collapsing to the best endpoint hid this, and ordering is what decides who answers the scan.
|
|
152
|
+
- **An empty scan now retries each endpoint on its own** before giving up, and says which one served
|
|
153
|
+
the logs. Cheap by construction: each endpoint is first asked whether it holds history at _this
|
|
154
|
+
project's_ deploy block — three calls — and only one that passes gets a scan.
|
|
155
|
+
- **`SelfHostIndexer.reindex(address, {rpcUrl})`** pins a single endpoint instead of the pool, which is
|
|
156
|
+
what makes that rotation expressible. Clients are pooled per (chain, endpoint), so the default path
|
|
157
|
+
is unchanged.
|
|
158
|
+
- The final failure message now separates the two cases it had merged: a project you _just_ deployed
|
|
159
|
+
(transient, retry) from one that is not new (retention — check `abx doctor`).
|
|
160
|
+
|
|
161
|
+
Found by direct probing during the 2026-08-17 agent sweep, after an `abx add` of a 12-day-old Base
|
|
162
|
+
Sepolia edition reconstructed zero of its 18 events.
|
|
163
|
+
|
|
164
|
+
- 9c287c0: On-chain script chunks no longer insert a newline in the middle of a token.
|
|
165
|
+
|
|
166
|
+
The generator joins chunks with `'\n'`. A fixed 22 kB slice could split `mass` into `ma` + `ss`,
|
|
167
|
+
producing a SyntaxError on chain while `abx verify` still went green. Template-mode deploys now
|
|
168
|
+
split at an existing newline so that join is byte-identical to the source, refuse a 22 kB+ span
|
|
169
|
+
with no newline, and parse the program before any gas.
|
|
170
|
+
|
|
171
|
+
Reported in the 2026-08-18 tester batch (feedback 38455765, 038d7ed2, 8c256d9d, 50e53193).
|
|
172
|
+
|
|
173
|
+
- b5744a1: Four wording fixes from the 2026-08-17 agent sweep
|
|
174
|
+
|
|
175
|
+
- **A broken sentence at a decision point.** An edition's allocation warning read _"To sell 250, raise
|
|
176
|
+
this id's cap is not possible (caps only decrease) — set --allocation 15"_ — pattern-matched off the
|
|
177
|
+
721 branch, where "redeploy a Series with a higher `--max`" fits the grammar and an edition's
|
|
178
|
+
decrease-only cap does not. Now: _"Selling 250 isn't reachable: this id's cap can only ever
|
|
179
|
+
DECREASE."_ The warning stays a warning: allocation is a ceiling, over-allocating isn't destructive,
|
|
180
|
+
and holding reserves is legitimate.
|
|
181
|
+
- **`abx help`'s `--copies` line promised a guard that doesn't exist**, claiming deploy-code's edition
|
|
182
|
+
lane is "--script only, no --dep/--code-dir/--image-renderer". `--dep`/`--dep-registry` are fully
|
|
183
|
+
wired on EditionCode and `abx help deploy-code` already documented them as working — only the
|
|
184
|
+
top-level summary was stale, which is the line an agent reads first. The flag allowlist's comment
|
|
185
|
+
said the same thing and is corrected too.
|
|
186
|
+
- **`reference/decisions.md` pattern 4** stated `--onchain-uri` for a 1/1 inline SVG without the size
|
|
187
|
+
crossover the same file gives 58 lines later, so the row alone pointed the wrong way for the 2.4 KB
|
|
188
|
+
example art.
|
|
189
|
+
- **The eval harness** now allowlists `ABX_CHAIN=<chain> abx …` in a clean room (`Bash(abx:*)` does not
|
|
190
|
+
match an env-prefixed command, which left three rooms unable to reach a contract on the non-default
|
|
191
|
+
chain), and `docs/agent-eval/README.md` records both that trap and the one where a room reaches
|
|
192
|
+
outside its sandbox via `abx skill install --global`.
|
|
193
|
+
|
|
194
|
+
- Updated dependencies [9c287c0]
|
|
195
|
+
- Updated dependencies [b5744a1]
|
|
196
|
+
- Updated dependencies [9c287c0]
|
|
197
|
+
- @artblocks/abx-sdk@0.1.0-alpha.16
|
|
198
|
+
- @artblocks/abx-indexer@0.1.0-alpha.17
|
|
199
|
+
- @artblocks/abx-storage@0.1.0-alpha.16
|
|
200
|
+
- @artblocks/abx-token-api@0.1.0-alpha.19
|
|
201
|
+
|
|
3
202
|
## 0.1.0-alpha.23
|
|
4
203
|
|
|
5
204
|
### Patch Changes
|
|
@@ -64,6 +64,21 @@ export declare const imageUrlField: (url: string) => OnChainFieldInput;
|
|
|
64
64
|
/** An `image` field as a `url-template` — `{id}` is substituted with the tokenId at render, so ONE
|
|
65
65
|
* (collection-scope) field addresses a whole pinned directory / Arweave manifest. */
|
|
66
66
|
export declare const imageUrlTemplateField: (template: string) => OnChainFieldInput;
|
|
67
|
+
/**
|
|
68
|
+
* An `image` field carrying a CONTENT-ADDRESSED identity — the bare CID / txid, with the serving
|
|
69
|
+
* gateway supplied at read time from the collection's `abx_gateway_*` preference (renderer spec v11).
|
|
70
|
+
*
|
|
71
|
+
* This replaces what `--onchain-uri --backend ipfs|arweave` used to write. That path stored the
|
|
72
|
+
* backend's gateway HTTPS URL as a `url` field, which looked identical in a marketplace and was
|
|
73
|
+
* wrong in two ways that only showed up later: the creator's chosen gateway host was welded into a
|
|
74
|
+
* value they might have locked, so a dead gateway became a dead token rather than a repoint; and
|
|
75
|
+
* `abx_provenance` reported `source: url` for bytes that live on IPFS, so the chain stopped saying
|
|
76
|
+
* where the work actually was. The CID is identity and the gateway is a preference — one field each.
|
|
77
|
+
*
|
|
78
|
+
* `{id}` in the value still substitutes at read (the O(1) directory pattern), so a collection-scope
|
|
79
|
+
* `ipfs` field addresses a whole pinned folder exactly as `url-template` does for a plain CDN.
|
|
80
|
+
*/
|
|
81
|
+
export declare const imageContentAddressedField: (network: "ipfs" | "arweave", contentId: string) => OnChainFieldInput;
|
|
67
82
|
export declare const looksLikeSvg: (s: string) => boolean;
|
|
68
83
|
/**
|
|
69
84
|
* Does the IMAGE itself end up on-chain for this deploy? Two ways it can:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAC,eAAe,EAAC,MAAM,wBAAwB,CAAC;AACvD,OAAO,EACL,KAAK,OAAO,
|
|
1
|
+
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"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"}
|