@artblocks/abx-cli 0.1.0-alpha.21 → 0.1.0-alpha.23
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 +906 -0
- package/assets/renderer-scaffold/README.md +2 -2
- package/assets/renderer-scaffold/src/MyRenderer.sol +2 -2
- package/assets/renderer-scaffold/src/interfaces/IAbxFieldRenderer.sol +1 -1
- package/assets/renderer-scaffold/src/interfaces/IAbxParams.sol +2 -2
- package/assets/renderer-scaffold/test/MyRenderer.t.sol +1 -1
- package/dist/commands/deploy.d.ts +30 -17
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +234 -97
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/project.d.ts +16 -0
- package/dist/commands/project.d.ts.map +1 -1
- package/dist/commands/project.js +150 -10
- package/dist/commands/project.js.map +1 -1
- package/dist/commands/reads.d.ts.map +1 -1
- package/dist/commands/reads.js +8 -4
- package/dist/commands/reads.js.map +1 -1
- package/dist/commands/scaffold.d.ts +3 -1
- package/dist/commands/scaffold.d.ts.map +1 -1
- package/dist/commands/scaffold.js +64 -20
- package/dist/commands/scaffold.js.map +1 -1
- package/dist/commands/service.js +1 -1
- package/dist/commands/service.js.map +1 -1
- package/dist/commands/submit-app.d.ts +58 -0
- package/dist/commands/submit-app.d.ts.map +1 -0
- package/dist/commands/submit-app.js +512 -0
- package/dist/commands/submit-app.js.map +1 -0
- package/dist/config.d.ts +1 -15
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +18 -1
- package/dist/config.js.map +1 -1
- package/dist/flag-allowlists.d.ts.map +1 -1
- package/dist/flag-allowlists.js +5 -1
- package/dist/flag-allowlists.js.map +1 -1
- package/dist/flags.d.ts +4 -0
- package/dist/flags.d.ts.map +1 -1
- package/dist/flags.js +23 -0
- package/dist/flags.js.map +1 -1
- package/dist/main.js +125 -37
- package/dist/main.js.map +1 -1
- package/dist/mintpage.d.ts.map +1 -1
- package/dist/mintpage.js +29 -4
- package/dist/mintpage.js.map +1 -1
- package/dist/output.d.ts +32 -1
- package/dist/output.d.ts.map +1 -1
- package/dist/output.js +74 -9
- package/dist/output.js.map +1 -1
- package/dist/ownerops.d.ts +101 -13
- package/dist/ownerops.d.ts.map +1 -1
- package/dist/ownerops.js +357 -89
- package/dist/ownerops.js.map +1 -1
- package/dist/preview.d.ts +1 -1
- package/dist/preview.js +1 -1
- package/dist/schema.d.ts +18 -0
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +37 -2
- package/dist/schema.js.map +1 -1
- package/dist/served.js +1 -1
- package/dist/update-check.d.ts.map +1 -1
- package/dist/update-check.js +9 -3
- package/dist/update-check.js.map +1 -1
- package/package.json +6 -6
- package/skill/SKILL.md +62 -32
- package/skill/reference/code-projects.md +78 -24
- package/skill/reference/creator-token.md +16 -3
- package/skill/reference/decisions.md +59 -13
- package/skill/reference/hosting.md +1 -1
- package/skill/reference/operating.md +33 -13
- package/skill/reference/setup.md +1 -1
- package/skill/reference/troubleshooting.md +16 -6
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# ABX in-chain renderer scaffold
|
|
2
2
|
|
|
3
|
-
A ready-to-build Foundry project for the **fully on-chain Solidity
|
|
3
|
+
A ready-to-build Foundry project for the **fully on-chain Solidity renderer lane** — the work is a
|
|
4
4
|
smart contract that computes an SVG (and traits) from the token's `seed` and collector-set
|
|
5
5
|
PostParams. No JavaScript, no browser, no bucket, no resolver, no effect runner: once the renderer
|
|
6
6
|
is deployed and wired, `tokenURI` — name, image, traits — resolves from chain forever.
|
|
@@ -11,7 +11,7 @@ Foundry, then hand the deployed address(es) to `abx deploy-code`, which verifies
|
|
|
11
11
|
## What's here
|
|
12
12
|
|
|
13
13
|
- `src/MyRenderer.sol` — the **image** renderer: seed → geometry, a `palette` HexColor PostParam →
|
|
14
|
-
tint. **Fork the geometry/palette math for your own
|
|
14
|
+
tint. **Fork the geometry/palette math for your own work.**
|
|
15
15
|
- `src/MyTraits.sol` — the **attributes** renderer: reads the *same* seed math so traits agree with
|
|
16
16
|
the image by construction.
|
|
17
17
|
- `src/interfaces/` — the two ABX interfaces you implement/read (`IAbxFieldRenderer`, `IAbxParams`).
|
|
@@ -19,7 +19,7 @@ import {IAbxParams} from "abx/IAbxParams.sol";
|
|
|
19
19
|
/// (declare the `palette` schema, or the param is fixed at the default and collectors
|
|
20
20
|
/// can't set it.) Pair with MyTraits.sol so image AND traits read the SAME seed math.
|
|
21
21
|
///
|
|
22
|
-
/// Swap the geometry/palette math below for your own
|
|
22
|
+
/// Swap the geometry/palette math below for your own work. Keep the FIVE INVARIANTS in
|
|
23
23
|
/// IAbxFieldRenderer — above all, NEVER revert (a revert bricks the whole tokenURI).
|
|
24
24
|
contract MyRenderer is IAbxFieldRenderer {
|
|
25
25
|
using LibString for uint256;
|
|
@@ -53,7 +53,7 @@ contract MyRenderer is IAbxFieldRenderer {
|
|
|
53
53
|
return (CONTENT_TYPE, bytes(_svg(seed, palette)));
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
// ── the
|
|
56
|
+
// ── the work: seed → geometry, palette → tint (replace with your own) ─────────
|
|
57
57
|
|
|
58
58
|
function _svg(bytes32 seed, string memory palette) private pure returns (string memory) {
|
|
59
59
|
uint256 rings = 3 + (uint8(seed[0]) % 6); // 3..8 rings (MUST match MyTraits' math)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
|
2
2
|
pragma solidity ^0.8.20;
|
|
3
3
|
|
|
4
|
-
/// @title IAbxFieldRenderer — the contract your in-chain
|
|
4
|
+
/// @title IAbxFieldRenderer — the contract your in-chain work implements
|
|
5
5
|
/// @notice A field renderer returns ONE metadata field's value, COMPUTED from chain state
|
|
6
6
|
/// (the token's seed + PostParams, its owner, anything readable on-chain). The ABX
|
|
7
7
|
/// metadata renderer staticcalls it to build `tokenURI` — e.g. an `image` renderer's
|
|
@@ -16,7 +16,7 @@ pragma solidity ^0.8.20;
|
|
|
16
16
|
/// `contractParam`. The two payload types, **`Bytes` and `String`**, do NOT: their
|
|
17
17
|
/// `bytes32` is a keccak COMMITMENT (`valueIsHash == true`) and the content is fetched with
|
|
18
18
|
/// `tokenParamData` / `contractParamData` below. Reading a `Bytes` param with `tokenParam`
|
|
19
|
-
/// hands you a hash, not the
|
|
19
|
+
/// hands you a hash, not the work — that is the tell you want the data reader.
|
|
20
20
|
interface IAbxParams {
|
|
21
21
|
/// Returns the token-scope param: its bytes32 `value`, `valueIsHash` (true if it commits to
|
|
22
22
|
/// off-chain bytes — a literal scalar like a seed/HexColor is false), and `isSet` (does it exist).
|
|
@@ -35,7 +35,7 @@ interface IAbxParams {
|
|
|
35
35
|
/// Returns empty bytes for a literal scalar or an unset key, so an empty return is your
|
|
36
36
|
/// "fall back to a default" signal. When non-empty, `keccak256(returned bytes)` equals
|
|
37
37
|
/// the `value` that `tokenParam` reports — verify it if you want the commitment proof.
|
|
38
|
-
/// Up to ~24KB per key: enough to carry an actual
|
|
38
|
+
/// Up to ~24KB per key: enough to carry an actual work payload on-chain.
|
|
39
39
|
function tokenParamData(uint256 tokenId, bytes32 key) external view returns (bytes memory);
|
|
40
40
|
|
|
41
41
|
/// @notice The contract-scope (collection-wide) blob — the fallback when a token has none.
|
|
@@ -131,7 +131,7 @@ contract MyRendererTest is Test {
|
|
|
131
131
|
assertTrue(data.length > 0);
|
|
132
132
|
}
|
|
133
133
|
|
|
134
|
-
/// READING A PAYLOAD PARAM (`Bytes`/`String`) — the pattern for carrying an actual
|
|
134
|
+
/// READING A PAYLOAD PARAM (`Bytes`/`String`) — the pattern for carrying an actual work
|
|
135
135
|
/// payload on-chain. The scalar reader hands you a keccak COMMITMENT with `valueIsHash == true`;
|
|
136
136
|
/// the content only comes from `tokenParamData`. If your renderer reads a `Bytes` param through
|
|
137
137
|
/// `tokenParam` it will draw from a hash and produce garbage, silently — hence this test.
|
|
@@ -126,22 +126,6 @@ export declare const tokenFieldOf: (tokenId: number, f: OnChainFieldInput) => Se
|
|
|
126
126
|
export declare function cmdDeploySeries(flags: Flags): Promise<void>;
|
|
127
127
|
export declare function cmdDeploySeriesBody(flags: Flags, emit: (p: Record<string, unknown>) => void): Promise<void>;
|
|
128
128
|
export declare function cmdDeployEditionImageBody(flags: Flags, emit: (p: Record<string, unknown>) => void): Promise<void>;
|
|
129
|
-
/**
|
|
130
|
-
* `abx deploy-code` — deploy a code project ({SeriesCode}) end to end, hot lane:
|
|
131
|
-
* the canonical factory + seed source from the manifest, fat initialize (the `code`
|
|
132
|
-
* field rides it in directory mode), then ONE post-deploy multicall for the script
|
|
133
|
-
* chunks (template mode) + any PostParam schemas, optional reserve mints, and local
|
|
134
|
-
* register + index. Grown directly from the Sepolia drop rehearsal
|
|
135
|
-
* (`packages/cli/scripts/code-drop-rehearsal.ts`).
|
|
136
|
-
*
|
|
137
|
-
* Modes (exactly one):
|
|
138
|
-
* --script <file> template mode — the program stored on-chain in chunks
|
|
139
|
-
* --code-dir <dir> directory mode — the build uploaded via the storage backend
|
|
140
|
-
* (`putDirectory`; ipfs/arweave), its root as the `code` field
|
|
141
|
-
*
|
|
142
|
-
* Schemas: --schema key:Type:Auth[,key:Type:Auth…] (e.g. palette:HexColor:TokenOwner).
|
|
143
|
-
* Seeds: canonical randomizer by default; --no-seed opts out.
|
|
144
|
-
*/
|
|
145
129
|
/**
|
|
146
130
|
* The deterministic part of a projection: everything that is a pure function of the chain.
|
|
147
131
|
* Deliberately EXCLUDES `reconstructedAt`, `rpcUrl` and `toBlock` — a timestamp, the endpoint that
|
|
@@ -169,7 +153,7 @@ export declare function walkthroughRebuild(indexer: SelfHostIndexer, address: Ad
|
|
|
169
153
|
* Which is genuinely a different act per lane, so it reads from the real source in each case rather
|
|
170
154
|
* than always going through the local server:
|
|
171
155
|
* • fully on-chain → call `tokenURI(0)` on the contract. That IS what a marketplace does, and on
|
|
172
|
-
* this lane the whole answer (
|
|
156
|
+
* this lane the whole answer (content included) comes back from the chain with nothing else running.
|
|
173
157
|
* • off-chain custody → fetch the resolver, because that's what the baked URI points at.
|
|
174
158
|
* Reading the on-chain lane over HTTP would have quietly implied the local server was load-bearing
|
|
175
159
|
* when it isn't — the opposite of the lesson.
|
|
@@ -203,4 +187,33 @@ export declare function cmdDeployEditionCodeBody(flags: Flags, emit: (p: Record<
|
|
|
203
187
|
* pass `'1155C'`; every 721 call site keeps the default, so their output is unchanged.
|
|
204
188
|
*/
|
|
205
189
|
export declare function resolveTransferValidatorFlag(flags: Flags, publicClient: PublicClient, dryRun: boolean, standard?: '721C' | '1155C'): Promise<Address>;
|
|
190
|
+
/**
|
|
191
|
+
* Resolve the three-way seed decision into the InitParams `seedSource`, for both code lanes:
|
|
192
|
+
*
|
|
193
|
+
* - `--no-seed` → `zeroAddress`. No mint-time seed at all.
|
|
194
|
+
* - nothing, or `canonical` → the canonical `AbxSeedSource` via `ensureSeedSource` (manifest →
|
|
195
|
+
* self-heal to the deterministic address → CREATE2-deploy it). This
|
|
196
|
+
* is today's behaviour, byte-for-byte, and stays the default.
|
|
197
|
+
* - `--seed-source 0x…` → the creator's own `IAbxSeedSource`, **probed first**.
|
|
198
|
+
*
|
|
199
|
+
* The flag exists because we tell creators, in the docs and in this command's own help, that the fix
|
|
200
|
+
* for "the canonical seed isn't strong enough for my raffle" is to point `seedSource` at a
|
|
201
|
+
* commit-reveal / VRF-backed source of their own. Until now the only route was an `ABX_SEED_SOURCE`
|
|
202
|
+
* env var checked for nothing but code length, which made a first-class promise out of a
|
|
203
|
+
* side entrance.
|
|
204
|
+
*
|
|
205
|
+
* **Everything that isn't the canonical singleton gets probed**, including an address that arrived
|
|
206
|
+
* via `ABX_SEED_SOURCE` — so the env lane keeps working and stops being the unchecked one. The
|
|
207
|
+
* comparison is against the deterministic canonical address rather than "did a flag say so", because
|
|
208
|
+
* that is the actual question (is this our audited bytecode, or someone's contract we know nothing
|
|
209
|
+
* about?). A dry run tolerates an unreachable RPC and says the check is deferred; a real deploy
|
|
210
|
+
* refuses to bake a seed source it couldn't verify.
|
|
211
|
+
*
|
|
212
|
+
* The probe here runs with **no `from`**, unlike the owner op's (which calls as the token). That is
|
|
213
|
+
* not an oversight: the clone's address is a function of the CREATE2 salt, which isn't reserved yet
|
|
214
|
+
* at this point, so a source that gates on `msg.sender` could not have been told about this token in
|
|
215
|
+
* the first place. A gated/commit-reveal source is a deploy-then-`abx set-seed-source` flow by
|
|
216
|
+
* construction, and the `reverted` refusal says exactly that.
|
|
217
|
+
*/
|
|
218
|
+
export declare function resolveSeedSourceFlag(flags: Flags, publicClient: PublicClient, dryRun: boolean, chainId: number): Promise<Address>;
|
|
206
219
|
//# sourceMappingURL=deploy.d.ts.map
|
|
@@ -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,EAKZ,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,YAAY,EAKjB,KAAK,qBAAqB,
|
|
1
|
+
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"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"}
|