@artblocks/abx-cli 0.1.0-alpha.5 → 0.1.0-alpha.50

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.
Files changed (189) hide show
  1. package/CHANGELOG.md +88 -0
  2. package/assets/renderer-scaffold/README.md +41 -11
  3. package/assets/renderer-scaffold/foundry.toml +5 -0
  4. package/assets/renderer-scaffold/remappings.txt +1 -1
  5. package/assets/renderer-scaffold/script/DeployHooks.s.sol +24 -0
  6. package/assets/renderer-scaffold/script/Preview.s.sol +99 -0
  7. package/assets/renderer-scaffold/src/MyHooks.sol +20 -0
  8. package/assets/renderer-scaffold/src/MyRenderer.sol +4 -4
  9. package/assets/renderer-scaffold/src/MyTraits.sol +2 -2
  10. package/assets/renderer-scaffold/test/MyRenderer.t.sol +60 -3
  11. package/dist/bin.d.ts +26 -0
  12. package/dist/bin.d.ts.map +1 -0
  13. package/dist/bin.js +63 -0
  14. package/dist/bin.js.map +1 -0
  15. package/dist/capabilities.d.ts +102 -0
  16. package/dist/capabilities.d.ts.map +1 -0
  17. package/dist/capabilities.js +152 -0
  18. package/dist/capabilities.js.map +1 -0
  19. package/dist/commands/auth.d.ts +54 -0
  20. package/dist/commands/auth.d.ts.map +1 -0
  21. package/dist/commands/auth.js +447 -0
  22. package/dist/commands/auth.js.map +1 -0
  23. package/dist/commands/deploy.d.ts +292 -0
  24. package/dist/commands/deploy.d.ts.map +1 -0
  25. package/dist/commands/deploy.js +5603 -0
  26. package/dist/commands/deploy.js.map +1 -0
  27. package/dist/commands/feedback.d.ts +7 -0
  28. package/dist/commands/feedback.d.ts.map +1 -0
  29. package/dist/commands/feedback.js +147 -0
  30. package/dist/commands/feedback.js.map +1 -0
  31. package/dist/commands/maintenance.d.ts +4 -0
  32. package/dist/commands/maintenance.d.ts.map +1 -0
  33. package/dist/commands/maintenance.js +114 -0
  34. package/dist/commands/maintenance.js.map +1 -0
  35. package/dist/commands/project.d.ts +431 -0
  36. package/dist/commands/project.d.ts.map +1 -0
  37. package/dist/commands/project.js +1794 -0
  38. package/dist/commands/project.js.map +1 -0
  39. package/dist/commands/reads.d.ts +85 -0
  40. package/dist/commands/reads.d.ts.map +1 -0
  41. package/dist/commands/reads.js +869 -0
  42. package/dist/commands/reads.js.map +1 -0
  43. package/dist/commands/scaffold.d.ts +89 -0
  44. package/dist/commands/scaffold.d.ts.map +1 -0
  45. package/dist/commands/scaffold.js +738 -0
  46. package/dist/commands/scaffold.js.map +1 -0
  47. package/dist/commands/service.d.ts +67 -0
  48. package/dist/commands/service.d.ts.map +1 -0
  49. package/dist/commands/service.js +749 -0
  50. package/dist/commands/service.js.map +1 -0
  51. package/dist/commands/storage.d.ts +51 -0
  52. package/dist/commands/storage.d.ts.map +1 -0
  53. package/dist/commands/storage.js +399 -0
  54. package/dist/commands/storage.js.map +1 -0
  55. package/dist/commands/submit-app.d.ts +102 -0
  56. package/dist/commands/submit-app.d.ts.map +1 -0
  57. package/dist/commands/submit-app.js +622 -0
  58. package/dist/commands/submit-app.js.map +1 -0
  59. package/dist/config.d.ts +105 -2
  60. package/dist/config.d.ts.map +1 -1
  61. package/dist/config.js +351 -12
  62. package/dist/config.js.map +1 -1
  63. package/dist/conformance.d.ts +31 -0
  64. package/dist/conformance.d.ts.map +1 -0
  65. package/dist/conformance.js +390 -0
  66. package/dist/conformance.js.map +1 -0
  67. package/dist/contract-read-error.d.ts +5 -0
  68. package/dist/contract-read-error.d.ts.map +1 -0
  69. package/dist/contract-read-error.js +37 -0
  70. package/dist/contract-read-error.js.map +1 -0
  71. package/dist/deploy-plan.d.ts +218 -0
  72. package/dist/deploy-plan.d.ts.map +1 -0
  73. package/dist/deploy-plan.js +20 -0
  74. package/dist/deploy-plan.js.map +1 -0
  75. package/dist/deps.d.ts +6 -39
  76. package/dist/deps.d.ts.map +1 -1
  77. package/dist/deps.js +4 -68
  78. package/dist/deps.js.map +1 -1
  79. package/dist/errors.d.ts +22 -0
  80. package/dist/errors.d.ts.map +1 -0
  81. package/dist/errors.js +32 -0
  82. package/dist/errors.js.map +1 -0
  83. package/dist/flag-allowlists.d.ts +53 -0
  84. package/dist/flag-allowlists.d.ts.map +1 -0
  85. package/dist/flag-allowlists.js +184 -0
  86. package/dist/flag-allowlists.js.map +1 -0
  87. package/dist/flags.d.ts +47 -0
  88. package/dist/flags.d.ts.map +1 -1
  89. package/dist/flags.js +125 -1
  90. package/dist/flags.js.map +1 -1
  91. package/dist/jsonout.d.ts +37 -0
  92. package/dist/jsonout.d.ts.map +1 -0
  93. package/dist/jsonout.js +79 -0
  94. package/dist/jsonout.js.map +1 -0
  95. package/dist/kind.d.ts +57 -0
  96. package/dist/kind.d.ts.map +1 -0
  97. package/dist/kind.js +122 -0
  98. package/dist/kind.js.map +1 -0
  99. package/dist/main.js +831 -5058
  100. package/dist/main.js.map +1 -1
  101. package/dist/mintpage.d.ts +17 -2
  102. package/dist/mintpage.d.ts.map +1 -1
  103. package/dist/mintpage.js +241 -54
  104. package/dist/mintpage.js.map +1 -1
  105. package/dist/output.d.ts +179 -0
  106. package/dist/output.d.ts.map +1 -0
  107. package/dist/output.js +780 -0
  108. package/dist/output.js.map +1 -0
  109. package/dist/ownerops.d.ts +450 -57
  110. package/dist/ownerops.d.ts.map +1 -1
  111. package/dist/ownerops.js +2198 -368
  112. package/dist/ownerops.js.map +1 -1
  113. package/dist/preview.d.ts +23 -5
  114. package/dist/preview.d.ts.map +1 -1
  115. package/dist/preview.js +95 -43
  116. package/dist/preview.js.map +1 -1
  117. package/dist/prompt.d.ts +17 -0
  118. package/dist/prompt.d.ts.map +1 -0
  119. package/dist/prompt.js +19 -0
  120. package/dist/prompt.js.map +1 -0
  121. package/dist/provision.d.ts +3 -13
  122. package/dist/provision.d.ts.map +1 -1
  123. package/dist/provision.js +19 -21
  124. package/dist/provision.js.map +1 -1
  125. package/dist/remote.d.ts +157 -52
  126. package/dist/remote.d.ts.map +1 -1
  127. package/dist/remote.js +435 -46
  128. package/dist/remote.js.map +1 -1
  129. package/dist/riskgate.d.ts +101 -0
  130. package/dist/riskgate.d.ts.map +1 -0
  131. package/dist/riskgate.js +324 -0
  132. package/dist/riskgate.js.map +1 -0
  133. package/dist/scaffold.d.ts +12 -0
  134. package/dist/scaffold.d.ts.map +1 -0
  135. package/dist/scaffold.js +56 -0
  136. package/dist/scaffold.js.map +1 -0
  137. package/dist/schema.d.ts +36 -1
  138. package/dist/schema.d.ts.map +1 -1
  139. package/dist/schema.js +121 -26
  140. package/dist/schema.js.map +1 -1
  141. package/dist/script-chunks.d.ts +8 -0
  142. package/dist/script-chunks.d.ts.map +1 -0
  143. package/dist/script-chunks.js +35 -0
  144. package/dist/script-chunks.js.map +1 -0
  145. package/dist/served.d.ts +30 -0
  146. package/dist/served.d.ts.map +1 -0
  147. package/dist/served.js +112 -0
  148. package/dist/served.js.map +1 -0
  149. package/dist/signer.d.ts +13 -0
  150. package/dist/signer.d.ts.map +1 -1
  151. package/dist/signer.js +84 -15
  152. package/dist/signer.js.map +1 -1
  153. package/dist/update-check.d.ts +86 -5
  154. package/dist/update-check.d.ts.map +1 -1
  155. package/dist/update-check.js +161 -20
  156. package/dist/update-check.js.map +1 -1
  157. package/package.json +13 -12
  158. package/skill/SKILL.md +188 -347
  159. package/skill/agents/openai.yaml +4 -0
  160. package/skill/reference/capabilities.md +188 -0
  161. package/skill/reference/code.md +234 -0
  162. package/skill/reference/creator-token.md +94 -0
  163. package/skill/reference/deploy.md +174 -0
  164. package/skill/reference/diagnose.md +178 -0
  165. package/skill/reference/hosting.md +186 -93
  166. package/skill/reference/operate.md +232 -0
  167. package/skill/reference/services.md +121 -0
  168. package/skill/reference/setup.md +162 -36
  169. package/assets/renderer-scaffold/src/interfaces/IAbxFieldRenderer.sol +0 -32
  170. package/assets/renderer-scaffold/src/interfaces/IAbxParams.sol +0 -26
  171. package/dist/inspect.d.ts +0 -48
  172. package/dist/inspect.d.ts.map +0 -1
  173. package/dist/inspect.js +0 -184
  174. package/dist/inspect.js.map +0 -1
  175. package/dist/migrate.d.ts +0 -65
  176. package/dist/migrate.d.ts.map +0 -1
  177. package/dist/migrate.js +0 -180
  178. package/dist/migrate.js.map +0 -1
  179. package/dist/onchain-uri.d.ts +0 -97
  180. package/dist/onchain-uri.d.ts.map +0 -1
  181. package/dist/onchain-uri.js +0 -243
  182. package/dist/onchain-uri.js.map +0 -1
  183. package/dist/upload.d.ts +0 -28
  184. package/dist/upload.d.ts.map +0 -1
  185. package/dist/upload.js +0 -41
  186. package/dist/upload.js.map +0 -1
  187. package/skill/reference/code-projects.md +0 -246
  188. package/skill/reference/operating.md +0 -116
  189. package/skill/reference/troubleshooting.md +0 -28
@@ -0,0 +1,431 @@
1
+ import { type Address, type PublicClient, type MetadataField } from '@artblocks/abx-sdk';
2
+ import { type Flags } from '../flags.js';
3
+ import { type RemoteTarget } from '../remote.js';
4
+ export declare function cmdPredict(flags: Flags): Promise<void>;
5
+ export declare function cmdAdd(address: Address | undefined, flags: Flags): Promise<void>;
6
+ export declare function cmdIndex(address: Address | undefined, flags: Flags): Promise<void>;
7
+ export declare function cmdVerify(address: Address | undefined, flags: Flags): Promise<void>;
8
+ export type AvailabilityStatus = 'available' | 'partial' | 'unavailable' | 'unknown';
9
+ export interface AvailabilityVerdict {
10
+ status: AvailabilityStatus;
11
+ note: string;
12
+ }
13
+ /**
14
+ * Pure by design — every caller (`cmdVerifyBody`'s local lane and `cmdVerifyRemote`'s hosted lane)
15
+ * feeds it facts it already gathered rather than each re-deriving its own verdict, so the two
16
+ * lanes' JSON payloads read the same word for the same situation.
17
+ *
18
+ * `isCode` selects which signal decides the verdict: a code project's render presence
19
+ * (`minted`/`present`), or — for everything else — whether a byte-check actually ran
20
+ * (`anyCheck`) versus a locator this run could not independently re-hash (`unrecomputablePointers`).
21
+ * The two signals are never combined into one number on purpose: "3 of 5 renders present" and "2
22
+ * locator commitments unconfirmed" are different facts about different projects, and mixing them
23
+ * would produce a verdict that answers neither question honestly.
24
+ */
25
+ export declare function computeAvailability(opts: {
26
+ isCode: boolean;
27
+ minted: number;
28
+ present: number;
29
+ anyCheck: boolean;
30
+ unrecomputablePointers: number;
31
+ onChainContent?: number;
32
+ }): AvailabilityVerdict;
33
+ export declare function onChainImageSource(fields: MetadataField[]): string | null;
34
+ /**
35
+ * Does this token's `image` field carry a locator commitment `verifyProject` never produced a
36
+ * check for? Exported and pure (a plain `fields` array in, a verdict out — no chain, no indexer)
37
+ * so the three-way distinction is unit-testable directly, rather than only reachable through a
38
+ * full `cmdVerifyBody` run against real chain state.
39
+ *
40
+ * Returns the representation name to report (`ipfs`/`arweave`/`url`/`url-template`) when the image
41
+ * field is a bare locator, else `null` — including when there's no `image` field at all, which is
42
+ * "no commitment", a different fact from "an unrecomputable one".
43
+ */
44
+ export declare function pointerOnlyImageCheck(fields: MetadataField[]): string | null;
45
+ export declare function cmdVerifyBody(address: Address, flags: Flags, emit: (p: Record<string, unknown>) => void): Promise<void>;
46
+ export declare function cmdVerifyRemote(address: Address, remote: RemoteTarget, emit: (p: Record<string, unknown>) => void): Promise<void>;
47
+ /** What {@link reportRemoteByteIntegrity} found, structured for the JSON payload as well as its own
48
+ * prose. `status` deliberately has a 4th value the local lane's `contentIntegrity` doesn't need:
49
+ * `'not-checked'` — no credential, a rejected token, an older node with no `/verify` route, or an
50
+ * unreachable endpoint. That is a DIFFERENT fact from `'no-commitments'` (the route answered and
51
+ * said there's nothing to check) and must never collapse into it — "we didn't ask" and "we asked
52
+ * and there was nothing" are different reasons for the same empty result. */
53
+ export interface RemoteByteIntegrity {
54
+ status: 'ok' | 'mismatch' | 'no-commitments' | 'not-checked';
55
+ checks: Array<{
56
+ tokenId: string;
57
+ kind: string;
58
+ verified: boolean;
59
+ }>;
60
+ }
61
+ /**
62
+ * The half `abx verify --remote` was missing: do the served BYTES still hash to the on-chain
63
+ * commitment? Everything above it checks renders (is a thumbnail current, is it a placeholder) — a
64
+ * different question, and a green ✓ there was reading as "the image is correct" when the bytes could
65
+ * genuinely mismatch.
66
+ *
67
+ * The service is the right place to answer it: it holds both the bytes and the chain, and it already
68
+ * exposes exactly this check (`GET /api/project/:addr/verify`, bearer-gated because it triggers
69
+ * outbound fetches). When we can't reach that — no credential, or an older node — say plainly that
70
+ * byte integrity was NOT checked rather than leaving the ✓ above to imply it was.
71
+ */
72
+ export declare function reportRemoteByteIntegrity(address: Address, remote: RemoteTarget, base: string, onChainRepresentations?: string[]): Promise<RemoteByteIntegrity>;
73
+ export declare const STATE_ABI: readonly [{
74
+ readonly type: "function";
75
+ readonly name: "owner";
76
+ readonly stateMutability: "view";
77
+ readonly inputs: readonly [];
78
+ readonly outputs: readonly [{
79
+ readonly type: "address";
80
+ }];
81
+ }, {
82
+ readonly type: "function";
83
+ readonly name: "totalSupply";
84
+ readonly stateMutability: "view";
85
+ readonly inputs: readonly [];
86
+ readonly outputs: readonly [{
87
+ readonly type: "uint256";
88
+ }];
89
+ }, {
90
+ readonly type: "function";
91
+ readonly name: "nextTokenId";
92
+ readonly stateMutability: "view";
93
+ readonly inputs: readonly [];
94
+ readonly outputs: readonly [{
95
+ readonly type: "uint256";
96
+ }];
97
+ }, {
98
+ readonly type: "function";
99
+ readonly name: "maxInvocations";
100
+ readonly stateMutability: "view";
101
+ readonly inputs: readonly [];
102
+ readonly outputs: readonly [{
103
+ readonly type: "uint256";
104
+ }];
105
+ }, {
106
+ readonly type: "function";
107
+ readonly name: "paused";
108
+ readonly stateMutability: "view";
109
+ readonly inputs: readonly [];
110
+ readonly outputs: readonly [{
111
+ readonly type: "bool";
112
+ }];
113
+ }, {
114
+ readonly type: "function";
115
+ readonly name: "minter";
116
+ readonly stateMutability: "view";
117
+ readonly inputs: readonly [];
118
+ readonly outputs: readonly [{
119
+ readonly type: "address";
120
+ }];
121
+ }, {
122
+ readonly type: "function";
123
+ readonly name: "primaryPayee";
124
+ readonly stateMutability: "view";
125
+ readonly inputs: readonly [];
126
+ readonly outputs: readonly [{
127
+ readonly type: "address";
128
+ }];
129
+ }, {
130
+ readonly type: "function";
131
+ readonly name: "tokenURIRenderer";
132
+ readonly stateMutability: "view";
133
+ readonly inputs: readonly [];
134
+ readonly outputs: readonly [{
135
+ readonly type: "address";
136
+ }];
137
+ }, {
138
+ readonly type: "function";
139
+ readonly name: "royaltyInfo";
140
+ readonly stateMutability: "view";
141
+ readonly inputs: readonly [{
142
+ readonly type: "uint256";
143
+ }, {
144
+ readonly type: "uint256";
145
+ }];
146
+ readonly outputs: readonly [{
147
+ readonly type: "address";
148
+ }, {
149
+ readonly type: "uint256";
150
+ }];
151
+ }, {
152
+ readonly type: "function";
153
+ readonly name: "supportsInterface";
154
+ readonly stateMutability: "view";
155
+ readonly inputs: readonly [{
156
+ readonly type: "bytes4";
157
+ }];
158
+ readonly outputs: readonly [{
159
+ readonly type: "bool";
160
+ }];
161
+ }, {
162
+ readonly type: "function";
163
+ readonly name: "getTransferValidator";
164
+ readonly stateMutability: "view";
165
+ readonly inputs: readonly [];
166
+ readonly outputs: readonly [{
167
+ readonly type: "address";
168
+ }];
169
+ }, {
170
+ readonly type: "function";
171
+ readonly name: "seedSource";
172
+ readonly stateMutability: "view";
173
+ readonly inputs: readonly [];
174
+ readonly outputs: readonly [{
175
+ readonly type: "address";
176
+ }];
177
+ }, {
178
+ readonly type: "function";
179
+ readonly name: "tokenURILocked";
180
+ readonly stateMutability: "view";
181
+ readonly inputs: readonly [];
182
+ readonly outputs: readonly [{
183
+ readonly type: "bool";
184
+ }];
185
+ }, {
186
+ readonly type: "function";
187
+ readonly name: "contractURILocked";
188
+ readonly stateMutability: "view";
189
+ readonly inputs: readonly [];
190
+ readonly outputs: readonly [{
191
+ readonly type: "bool";
192
+ }];
193
+ }, {
194
+ readonly type: "function";
195
+ readonly name: "scriptLocked";
196
+ readonly stateMutability: "view";
197
+ readonly inputs: readonly [];
198
+ readonly outputs: readonly [{
199
+ readonly type: "bool";
200
+ }];
201
+ }, {
202
+ readonly type: "function";
203
+ readonly name: "dependenciesLocked";
204
+ readonly stateMutability: "view";
205
+ readonly inputs: readonly [];
206
+ readonly outputs: readonly [{
207
+ readonly type: "bool";
208
+ }];
209
+ }, {
210
+ readonly type: "function";
211
+ readonly name: "contractFieldLocked";
212
+ readonly stateMutability: "view";
213
+ readonly inputs: readonly [{
214
+ readonly type: "bytes32";
215
+ }];
216
+ readonly outputs: readonly [{
217
+ readonly type: "bool";
218
+ }];
219
+ }];
220
+ /** The edition twin of {@link STATE_ABI} — `owner`/`maxInvocations`/`paused`/`minter`/
221
+ * `primaryPayee`/`tokenURIRenderer`/`royaltyInfo` are shared, unchanged, function names (see
222
+ * `kind.ts`'s own note on why); `totalSupply`/`maxSupply` take an id. The creator-token probe is
223
+ * ALSO shared, unchanged: Limit Break uses the identical `ICreatorToken` ERC-165 id (0xad0d7f6c)
224
+ * and `getTransferValidator()` surface for 721C and 1155C, and `CreatorToken1155` advertises them
225
+ * the same way when enrolled — so an enrolled edition reports its validator exactly like a 721. */
226
+ export declare const EDITION_STATE_ABI: readonly [{
227
+ readonly type: "function";
228
+ readonly name: "owner";
229
+ readonly stateMutability: "view";
230
+ readonly inputs: readonly [];
231
+ readonly outputs: readonly [{
232
+ readonly type: "address";
233
+ }];
234
+ }, {
235
+ readonly type: "function";
236
+ readonly name: "maxInvocations";
237
+ readonly stateMutability: "view";
238
+ readonly inputs: readonly [];
239
+ readonly outputs: readonly [{
240
+ readonly type: "uint256";
241
+ }];
242
+ }, {
243
+ readonly type: "function";
244
+ readonly name: "totalSupply";
245
+ readonly stateMutability: "view";
246
+ readonly inputs: readonly [{
247
+ readonly type: "uint256";
248
+ }];
249
+ readonly outputs: readonly [{
250
+ readonly type: "uint256";
251
+ }];
252
+ }, {
253
+ readonly type: "function";
254
+ readonly name: "maxSupply";
255
+ readonly stateMutability: "view";
256
+ readonly inputs: readonly [{
257
+ readonly type: "uint256";
258
+ }];
259
+ readonly outputs: readonly [{
260
+ readonly type: "uint256";
261
+ }];
262
+ }, {
263
+ readonly type: "function";
264
+ readonly name: "paused";
265
+ readonly stateMutability: "view";
266
+ readonly inputs: readonly [];
267
+ readonly outputs: readonly [{
268
+ readonly type: "bool";
269
+ }];
270
+ }, {
271
+ readonly type: "function";
272
+ readonly name: "minter";
273
+ readonly stateMutability: "view";
274
+ readonly inputs: readonly [];
275
+ readonly outputs: readonly [{
276
+ readonly type: "address";
277
+ }];
278
+ }, {
279
+ readonly type: "function";
280
+ readonly name: "primaryPayee";
281
+ readonly stateMutability: "view";
282
+ readonly inputs: readonly [];
283
+ readonly outputs: readonly [{
284
+ readonly type: "address";
285
+ }];
286
+ }, {
287
+ readonly type: "function";
288
+ readonly name: "tokenURIRenderer";
289
+ readonly stateMutability: "view";
290
+ readonly inputs: readonly [];
291
+ readonly outputs: readonly [{
292
+ readonly type: "address";
293
+ }];
294
+ }, {
295
+ readonly type: "function";
296
+ readonly name: "royaltyInfo";
297
+ readonly stateMutability: "view";
298
+ readonly inputs: readonly [{
299
+ readonly type: "uint256";
300
+ }, {
301
+ readonly type: "uint256";
302
+ }];
303
+ readonly outputs: readonly [{
304
+ readonly type: "address";
305
+ }, {
306
+ readonly type: "uint256";
307
+ }];
308
+ }, {
309
+ readonly type: "function";
310
+ readonly name: "supportsInterface";
311
+ readonly stateMutability: "view";
312
+ readonly inputs: readonly [{
313
+ readonly type: "bytes4";
314
+ }];
315
+ readonly outputs: readonly [{
316
+ readonly type: "bool";
317
+ }];
318
+ }, {
319
+ readonly type: "function";
320
+ readonly name: "getTransferValidator";
321
+ readonly stateMutability: "view";
322
+ readonly inputs: readonly [];
323
+ readonly outputs: readonly [{
324
+ readonly type: "address";
325
+ }];
326
+ }, {
327
+ readonly type: "function";
328
+ readonly name: "seedSource";
329
+ readonly stateMutability: "view";
330
+ readonly inputs: readonly [];
331
+ readonly outputs: readonly [{
332
+ readonly type: "address";
333
+ }];
334
+ }, {
335
+ readonly type: "function";
336
+ readonly name: "tokenURILocked";
337
+ readonly stateMutability: "view";
338
+ readonly inputs: readonly [];
339
+ readonly outputs: readonly [{
340
+ readonly type: "bool";
341
+ }];
342
+ }, {
343
+ readonly type: "function";
344
+ readonly name: "contractURILocked";
345
+ readonly stateMutability: "view";
346
+ readonly inputs: readonly [];
347
+ readonly outputs: readonly [{
348
+ readonly type: "bool";
349
+ }];
350
+ }, {
351
+ readonly type: "function";
352
+ readonly name: "scriptLocked";
353
+ readonly stateMutability: "view";
354
+ readonly inputs: readonly [];
355
+ readonly outputs: readonly [{
356
+ readonly type: "bool";
357
+ }];
358
+ }, {
359
+ readonly type: "function";
360
+ readonly name: "dependenciesLocked";
361
+ readonly stateMutability: "view";
362
+ readonly inputs: readonly [];
363
+ readonly outputs: readonly [{
364
+ readonly type: "bool";
365
+ }];
366
+ }, {
367
+ readonly type: "function";
368
+ readonly name: "contractFieldLocked";
369
+ readonly stateMutability: "view";
370
+ readonly inputs: readonly [{
371
+ readonly type: "bytes32";
372
+ }];
373
+ readonly outputs: readonly [{
374
+ readonly type: "bool";
375
+ }];
376
+ }];
377
+ /** One boolean lock, tri-state: `true` (frozen forever) · `false` (open — the owner can still
378
+ * change it) · `null` (the read failed — an RPC refusal, or a wrong dialect). Never collapse
379
+ * `null` into `false`: an unread lock is not proof it's off, and `state`'s whole job here is to
380
+ * keep that distinction visible all the way to the JSON payload. */
381
+ type LockRead = boolean | null;
382
+ /** Every irreversible lock a collection can carry, as read straight from chain. */
383
+ export interface CollectionLocks {
384
+ tokenURI: LockRead;
385
+ contractURI: LockRead;
386
+ /** The bounded METADATA_FIELD scan — see {@link readFieldLocks}'s doc for the caveat this carries. */
387
+ fields: {
388
+ field: string;
389
+ locked: LockRead;
390
+ }[];
391
+ /** `null` (the OBJECT, not the inner `locked`) ⇒ not applicable: this contract has no on-chain
392
+ * script surface at all (not a code project), a different fact from "unknown" ({@link LockRead}'s
393
+ * `null`), which is reserved for "the surface exists but the read failed". */
394
+ script: {
395
+ locked: LockRead;
396
+ } | null;
397
+ dependencies: {
398
+ locked: LockRead;
399
+ } | null;
400
+ }
401
+ /**
402
+ * Read every applicable irreversible lock for one collection: token/contract URI config, the
403
+ * bounded standard field set, and — for a code project — the script and dependency freezes.
404
+ * `paramHooks.locked` is deliberately NOT read here: `cmdStateBody`/`cmdStateEditionBody` already
405
+ * read it (`readParamHooksLocked`) as part of the existing param-hooks readout, and re-reading it
406
+ * would cost a second `eth_call` for a fact already on hand — see the callers, which pass it into
407
+ * {@link printLocks} instead.
408
+ *
409
+ * `isCode` gates `scriptLocked`/`dependenciesLocked`: those getters exist ONLY on the two code
410
+ * twins (SeriesCode/EditionCode), so asking a plain image/Series contract for them isn't a failed
411
+ * read to report as "unknown" — it's a surface that was never there, reported as `null` (not
412
+ * applicable) via the OUTER object rather than the boolean inside it.
413
+ */
414
+ export declare function readCollectionLocks(publicClient: PublicClient, address: Address, abi: readonly unknown[], isCode: boolean): Promise<CollectionLocks>;
415
+ export declare function cmdState(address: Address | undefined, flags: Flags): Promise<void>;
416
+ export declare function cmdStateBody(address: Address, flags: Flags, emit: (p: Record<string, unknown>) => void): Promise<void>;
417
+ /**
418
+ * `abx status [address] [--remote [name|url]] [--watch]` — INDEXING status: where a project sits in
419
+ * the lifecycle (`queued | backfilling | live | stale | failed`) and how far behind head it is.
420
+ *
421
+ * One vocabulary for both sides of the membrane, which is the point: bare = this node, `--remote` =
422
+ * ask the service, and the same five words either way. Distinct from `abx state <address>`, which
423
+ * reads the CHAIN (owner, royalty, locks) and knows nothing about who is serving it.
424
+ */
425
+ export declare function cmdStatus(address: Address | undefined, flags: Flags): Promise<void>;
426
+ /** The `--remote` half of {@link cmdStatus}: one project, or the roll-up for every project the token
427
+ * can see. `--watch` tails until everything reaches a terminal state. */
428
+ export declare function cmdStatusRemote(address: Address | undefined, remote: RemoteTarget, flags: Flags): Promise<void>;
429
+ export declare function cmdForget(address: Address | undefined, flags: Flags): Promise<void>;
430
+ export {};
431
+ //# sourceMappingURL=project.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/commands/project.ts"],"names":[],"mappings":"AAQA,OAAO,EAGL,KAAK,OAAO,EAGZ,KAAK,YAAY,EAkCjB,KAAK,aAAa,EACnB,MAAM,oBAAoB,CAAC;AAgB5B,OAAO,EAAC,KAAK,KAAK,EAA6C,MAAM,aAAa,CAAC;AAOnF,OAAO,EACL,KAAK,YAAY,EAalB,MAAM,cAAc,CAAC;AAQtB,wBAAsB,UAAU,CAAC,KAAK,EAAE,KAAK,iBA+E5C;AAMD,wBAAsB,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,EAAE,KAAK,EAAE,KAAK,iBA4GtE;AAED,wBAAsB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,EAAE,KAAK,EAAE,KAAK,iBA0CxE;AAMD,wBAAsB,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,EAAE,KAAK,EAAE,KAAK,iBAmBzE;AAiBD,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,SAAS,GAAG,aAAa,GAAG,SAAS,CAAC;AAErF,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACxC,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,GAAG,mBAAmB,CAuBtB;AAYD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,GAAG,IAAI,CAIzE;AAcD;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,GAAG,IAAI,CAI5E;AAED,wBAAsB,aAAa,CACjC,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,GACzC,OAAO,CAAC,IAAI,CAAC,CAuWf;AAMD,wBAAsB,eAAe,CACnC,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,GACzC,OAAO,CAAC,IAAI,CAAC,CAwKf;AAED;;;;;8EAK8E;AAC9E,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,IAAI,GAAG,UAAU,GAAG,gBAAgB,GAAG,aAAa,CAAC;IAC7D,MAAM,EAAE,KAAK,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAC,CAAC,CAAC;CACnE;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,MAAM,EACZ,sBAAsB,GAAE,MAAM,EAAO,GACpC,OAAO,CAAC,mBAAmB,CAAC,CAsD9B;AAqBD,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6BZ,CAAC;AAEX;;;;;oGAKoG;AACpG,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwBpB,CAAC;AA4HX;;;qEAGqE;AACrE,KAAK,QAAQ,GAAG,OAAO,GAAG,IAAI,CAAC;AAwB/B,mFAAmF;AACnF,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,EAAE,QAAQ,CAAC;IACtB,sGAAsG;IACtG,MAAM,EAAE;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,QAAQ,CAAA;KAAC,EAAE,CAAC;IAC5C;;mFAE+E;IAC/E,MAAM,EAAE;QAAC,MAAM,EAAE,QAAQ,CAAA;KAAC,GAAG,IAAI,CAAC;IAClC,YAAY,EAAE;QAAC,MAAM,EAAE,QAAQ,CAAA;KAAC,GAAG,IAAI,CAAC;CACzC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,mBAAmB,CACvC,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,SAAS,OAAO,EAAE,EACvB,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,eAAe,CAAC,CAgB1B;AAiED,wBAAsB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,EAAE,KAAK,EAAE,KAAK,iBASxE;AAED,wBAAsB,YAAY,CAChC,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,GACzC,OAAO,CAAC,IAAI,CAAC,CAoNf;AAgLD;;;;;;;GAOG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,EAAE,KAAK,EAAE,KAAK,iBAqDzE;AAED;0EAC0E;AAC1E,wBAAsB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,iBAgErG;AAKD,wBAAsB,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,EAAE,KAAK,EAAE,KAAK,iBA2BzE"}