@artblocks/abx-cli 0.1.0-alpha.4 → 0.1.0-alpha.40

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 (180) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/assets/renderer-scaffold/README.md +29 -11
  3. package/assets/renderer-scaffold/foundry.toml +1 -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/src/MyHooks.sol +20 -0
  7. package/assets/renderer-scaffold/src/MyRenderer.sol +4 -4
  8. package/assets/renderer-scaffold/src/MyTraits.sol +2 -2
  9. package/assets/renderer-scaffold/test/MyRenderer.t.sol +60 -3
  10. package/dist/bin.d.ts +26 -0
  11. package/dist/bin.d.ts.map +1 -0
  12. package/dist/bin.js +63 -0
  13. package/dist/bin.js.map +1 -0
  14. package/dist/capabilities.d.ts +94 -0
  15. package/dist/capabilities.d.ts.map +1 -0
  16. package/dist/capabilities.js +135 -0
  17. package/dist/capabilities.js.map +1 -0
  18. package/dist/commands/auth.d.ts +54 -0
  19. package/dist/commands/auth.d.ts.map +1 -0
  20. package/dist/commands/auth.js +447 -0
  21. package/dist/commands/auth.js.map +1 -0
  22. package/dist/commands/deploy.d.ts +242 -0
  23. package/dist/commands/deploy.d.ts.map +1 -0
  24. package/dist/commands/deploy.js +4763 -0
  25. package/dist/commands/deploy.js.map +1 -0
  26. package/dist/commands/feedback.d.ts +7 -0
  27. package/dist/commands/feedback.d.ts.map +1 -0
  28. package/dist/commands/feedback.js +147 -0
  29. package/dist/commands/feedback.js.map +1 -0
  30. package/dist/commands/project.d.ts +257 -0
  31. package/dist/commands/project.d.ts.map +1 -0
  32. package/dist/commands/project.js +1414 -0
  33. package/dist/commands/project.js.map +1 -0
  34. package/dist/commands/reads.d.ts +64 -0
  35. package/dist/commands/reads.d.ts.map +1 -0
  36. package/dist/commands/reads.js +701 -0
  37. package/dist/commands/reads.js.map +1 -0
  38. package/dist/commands/scaffold.d.ts +89 -0
  39. package/dist/commands/scaffold.d.ts.map +1 -0
  40. package/dist/commands/scaffold.js +733 -0
  41. package/dist/commands/scaffold.js.map +1 -0
  42. package/dist/commands/service.d.ts +67 -0
  43. package/dist/commands/service.d.ts.map +1 -0
  44. package/dist/commands/service.js +741 -0
  45. package/dist/commands/service.js.map +1 -0
  46. package/dist/commands/storage.d.ts +51 -0
  47. package/dist/commands/storage.d.ts.map +1 -0
  48. package/dist/commands/storage.js +370 -0
  49. package/dist/commands/storage.js.map +1 -0
  50. package/dist/commands/submit-app.d.ts +59 -0
  51. package/dist/commands/submit-app.d.ts.map +1 -0
  52. package/dist/commands/submit-app.js +513 -0
  53. package/dist/commands/submit-app.js.map +1 -0
  54. package/dist/config.d.ts +90 -2
  55. package/dist/config.d.ts.map +1 -1
  56. package/dist/config.js +284 -11
  57. package/dist/config.js.map +1 -1
  58. package/dist/conformance.d.ts +31 -0
  59. package/dist/conformance.d.ts.map +1 -0
  60. package/dist/conformance.js +390 -0
  61. package/dist/conformance.js.map +1 -0
  62. package/dist/contract-read-error.d.ts +5 -0
  63. package/dist/contract-read-error.d.ts.map +1 -0
  64. package/dist/contract-read-error.js +37 -0
  65. package/dist/contract-read-error.js.map +1 -0
  66. package/dist/deps.d.ts +6 -39
  67. package/dist/deps.d.ts.map +1 -1
  68. package/dist/deps.js +4 -68
  69. package/dist/deps.js.map +1 -1
  70. package/dist/errors.d.ts +20 -0
  71. package/dist/errors.d.ts.map +1 -0
  72. package/dist/errors.js +25 -0
  73. package/dist/errors.js.map +1 -0
  74. package/dist/flag-allowlists.d.ts +53 -0
  75. package/dist/flag-allowlists.d.ts.map +1 -0
  76. package/dist/flag-allowlists.js +180 -0
  77. package/dist/flag-allowlists.js.map +1 -0
  78. package/dist/flags.d.ts +41 -0
  79. package/dist/flags.d.ts.map +1 -1
  80. package/dist/flags.js +111 -1
  81. package/dist/flags.js.map +1 -1
  82. package/dist/jsonout.d.ts +37 -0
  83. package/dist/jsonout.d.ts.map +1 -0
  84. package/dist/jsonout.js +68 -0
  85. package/dist/jsonout.js.map +1 -0
  86. package/dist/kind.d.ts +57 -0
  87. package/dist/kind.d.ts.map +1 -0
  88. package/dist/kind.js +122 -0
  89. package/dist/kind.js.map +1 -0
  90. package/dist/main.js +747 -4838
  91. package/dist/main.js.map +1 -1
  92. package/dist/mintpage.d.ts +17 -2
  93. package/dist/mintpage.d.ts.map +1 -1
  94. package/dist/mintpage.js +241 -54
  95. package/dist/mintpage.js.map +1 -1
  96. package/dist/output.d.ts +179 -0
  97. package/dist/output.d.ts.map +1 -0
  98. package/dist/output.js +780 -0
  99. package/dist/output.js.map +1 -0
  100. package/dist/ownerops.d.ts +312 -57
  101. package/dist/ownerops.d.ts.map +1 -1
  102. package/dist/ownerops.js +1808 -357
  103. package/dist/ownerops.js.map +1 -1
  104. package/dist/preview.d.ts +23 -5
  105. package/dist/preview.d.ts.map +1 -1
  106. package/dist/preview.js +95 -43
  107. package/dist/preview.js.map +1 -1
  108. package/dist/prompt.d.ts +17 -0
  109. package/dist/prompt.d.ts.map +1 -0
  110. package/dist/prompt.js +19 -0
  111. package/dist/prompt.js.map +1 -0
  112. package/dist/provision.d.ts +3 -13
  113. package/dist/provision.d.ts.map +1 -1
  114. package/dist/provision.js +19 -21
  115. package/dist/provision.js.map +1 -1
  116. package/dist/remote.d.ts +157 -52
  117. package/dist/remote.d.ts.map +1 -1
  118. package/dist/remote.js +435 -46
  119. package/dist/remote.js.map +1 -1
  120. package/dist/riskgate.d.ts +62 -0
  121. package/dist/riskgate.d.ts.map +1 -0
  122. package/dist/riskgate.js +234 -0
  123. package/dist/riskgate.js.map +1 -0
  124. package/dist/scaffold.d.ts +12 -0
  125. package/dist/scaffold.d.ts.map +1 -0
  126. package/dist/scaffold.js +56 -0
  127. package/dist/scaffold.js.map +1 -0
  128. package/dist/schema.d.ts +36 -1
  129. package/dist/schema.d.ts.map +1 -1
  130. package/dist/schema.js +121 -26
  131. package/dist/schema.js.map +1 -1
  132. package/dist/script-chunks.d.ts +8 -0
  133. package/dist/script-chunks.d.ts.map +1 -0
  134. package/dist/script-chunks.js +35 -0
  135. package/dist/script-chunks.js.map +1 -0
  136. package/dist/served.d.ts +30 -0
  137. package/dist/served.d.ts.map +1 -0
  138. package/dist/served.js +112 -0
  139. package/dist/served.js.map +1 -0
  140. package/dist/signer.d.ts +13 -0
  141. package/dist/signer.d.ts.map +1 -1
  142. package/dist/signer.js +84 -15
  143. package/dist/signer.js.map +1 -1
  144. package/dist/update-check.d.ts +86 -5
  145. package/dist/update-check.d.ts.map +1 -1
  146. package/dist/update-check.js +161 -20
  147. package/dist/update-check.js.map +1 -1
  148. package/package.json +13 -12
  149. package/skill/SKILL.md +179 -347
  150. package/skill/agents/openai.yaml +4 -0
  151. package/skill/reference/capabilities.md +188 -0
  152. package/skill/reference/code.md +211 -0
  153. package/skill/reference/creator-token.md +94 -0
  154. package/skill/reference/deploy.md +167 -0
  155. package/skill/reference/diagnose.md +165 -0
  156. package/skill/reference/hosting.md +161 -94
  157. package/skill/reference/operate.md +181 -0
  158. package/skill/reference/services.md +121 -0
  159. package/skill/reference/setup.md +140 -36
  160. package/assets/renderer-scaffold/src/interfaces/IAbxFieldRenderer.sol +0 -32
  161. package/assets/renderer-scaffold/src/interfaces/IAbxParams.sol +0 -26
  162. package/dist/inspect.d.ts +0 -48
  163. package/dist/inspect.d.ts.map +0 -1
  164. package/dist/inspect.js +0 -184
  165. package/dist/inspect.js.map +0 -1
  166. package/dist/migrate.d.ts +0 -65
  167. package/dist/migrate.d.ts.map +0 -1
  168. package/dist/migrate.js +0 -180
  169. package/dist/migrate.js.map +0 -1
  170. package/dist/onchain-uri.d.ts +0 -97
  171. package/dist/onchain-uri.d.ts.map +0 -1
  172. package/dist/onchain-uri.js +0 -243
  173. package/dist/onchain-uri.js.map +0 -1
  174. package/dist/upload.d.ts +0 -28
  175. package/dist/upload.d.ts.map +0 -1
  176. package/dist/upload.js +0 -41
  177. package/dist/upload.js.map +0 -1
  178. package/skill/reference/code-projects.md +0 -246
  179. package/skill/reference/operating.md +0 -116
  180. package/skill/reference/troubleshooting.md +0 -28
@@ -0,0 +1,147 @@
1
+ import { readFileSync } from 'node:fs';
2
+ import { ABX_FEEDBACK_AREAS, AbxServiceClient, FEEDBACK_KINDS, FEEDBACK_SEVERITIES, SERVICE_FEEDBACK_INTERFACE, } from '@artblocks/abx-sdk';
3
+ import { bold, dim, info, ok } from '../output.js';
4
+ import { ABX_SERVICES_URL, requireRemoteToken, resolveRemote, serviceClient, } from '../remote.js';
5
+ import { readCliVersion } from '../update-check.js';
6
+ function value(flags, key) {
7
+ const raw = flags[key];
8
+ return typeof raw === 'string' && raw !== 'true' ? raw : undefined;
9
+ }
10
+ function oneOf(raw, choices, flag) {
11
+ if (raw === undefined)
12
+ return undefined;
13
+ if (choices.includes(raw))
14
+ return raw;
15
+ throw new Error(`${flag} must be one of: ${choices.join(', ')}`);
16
+ }
17
+ function jsonObject(text, source) {
18
+ let parsed;
19
+ try {
20
+ parsed = JSON.parse(text);
21
+ }
22
+ catch {
23
+ throw new Error(`${source} must contain valid JSON`);
24
+ }
25
+ if (!parsed || Array.isArray(parsed) || typeof parsed !== 'object') {
26
+ throw new Error(`${source} must be a JSON object`);
27
+ }
28
+ return parsed;
29
+ }
30
+ function fileOrFlag(flags, flag, fileFlag) {
31
+ const direct = value(flags, flag);
32
+ const path = value(flags, fileFlag);
33
+ if (direct && path)
34
+ throw new Error(`use --${flag} or --${fileFlag}, not both`);
35
+ return path ? readFileSync(path, 'utf8') : direct;
36
+ }
37
+ /** Pure report construction: validate locally so a preview is the exact body that --yes sends. */
38
+ export function buildFeedbackReport(flags, target) {
39
+ const summary = value(flags, 'summary');
40
+ if (!summary)
41
+ return null;
42
+ const kind = oneOf(value(flags, 'kind'), FEEDBACK_KINDS, '--kind');
43
+ if (!kind)
44
+ throw new Error(`--kind is required with --summary (${FEEDBACK_KINDS.join(', ')})`);
45
+ const severity = oneOf(value(flags, 'severity'), FEEDBACK_SEVERITIES, '--severity');
46
+ const via = oneOf(value(flags, 'via'), ['agent', 'human'], '--via');
47
+ const detail = fileOrFlag(flags, 'detail', 'detail-file');
48
+ const contextRaw = fileOrFlag(flags, 'context', 'context-file');
49
+ const context = {
50
+ ...(contextRaw ? jsonObject(contextRaw, value(flags, 'context-file') ? '--context-file' : '--context') : {}),
51
+ cliVersion: readCliVersion(),
52
+ };
53
+ const shared = { kind: kind, summary, detail, severity: severity, via, context };
54
+ if (target === 'abx') {
55
+ if (value(flags, 'component'))
56
+ throw new Error('--component is for --remote provider feedback; use --area for core ABX');
57
+ const area = oneOf(value(flags, 'area'), ABX_FEEDBACK_AREAS, '--area');
58
+ if (!area)
59
+ throw new Error(`--area is required for core ABX feedback (${ABX_FEEDBACK_AREAS.join(', ')})`);
60
+ return { area, ...shared };
61
+ }
62
+ if (value(flags, 'area'))
63
+ throw new Error('--area is for core ABX feedback; use --component with --remote');
64
+ return { component: value(flags, 'component'), ...shared };
65
+ }
66
+ async function targetFor(flags, env = process.env) {
67
+ const tokenFlag = value(flags, 'remote-token');
68
+ if (flags.remote === undefined) {
69
+ const remote = resolveRemote('abx', tokenFlag, env);
70
+ return {
71
+ kind: 'abx',
72
+ label: 'core ABX',
73
+ endpoint: `${ABX_SERVICES_URL}/abx/feedback`,
74
+ remote,
75
+ // The generic SDK feedback paths become /abx/feedback and /abx/feedback/mine.
76
+ client: new AbxServiceClient({ baseUrl: `${ABX_SERVICES_URL}/abx`, token: remote.token }),
77
+ };
78
+ }
79
+ const remote = resolveRemote(String(flags.remote), tokenFlag, env);
80
+ if (!remote)
81
+ throw new Error('--remote needs a provider name or URL');
82
+ const client = serviceClient(remote);
83
+ const descriptor = await client.descriptor();
84
+ if (!descriptor.interfaces?.includes(SERVICE_FEEDBACK_INTERFACE)) {
85
+ throw new Error(`${remote.url} does not declare ${SERVICE_FEEDBACK_INTERFACE}; provider feedback is not supported there. ` +
86
+ `Core ABX feedback is the default: run abx feedback without --remote.`);
87
+ }
88
+ return { kind: 'service', label: `provider ${remote.name?.toLowerCase() ?? remote.url}`, endpoint: `${remote.url}/feedback`, remote, client };
89
+ }
90
+ /** Core ABX by default; `--remote <provider>` switches to that provider's standard feedback path. */
91
+ export async function cmdFeedback(flags) {
92
+ const target = await targetFor(flags);
93
+ const report = buildFeedbackReport(flags, target.kind);
94
+ const mine = flags.mine !== undefined;
95
+ const json = flags.json !== undefined;
96
+ if (mine && report)
97
+ throw new Error('--mine cannot be combined with --summary');
98
+ if (mine) {
99
+ requireRemoteToken(target.remote);
100
+ const limitRaw = value(flags, 'limit');
101
+ const limit = limitRaw === undefined ? undefined : Number(limitRaw);
102
+ if (limit !== undefined && (!Number.isInteger(limit) || limit <= 0))
103
+ throw new Error('--limit must be a positive integer');
104
+ const rows = await target.client.listFeedback({
105
+ area: target.kind === 'abx' ? value(flags, 'area') : undefined,
106
+ component: target.kind === 'service' ? value(flags, 'component') : undefined,
107
+ kind: oneOf(value(flags, 'kind'), FEEDBACK_KINDS, '--kind'),
108
+ limit,
109
+ });
110
+ if (json)
111
+ console.log(JSON.stringify({ target: target.kind, feedback: rows }, null, 2));
112
+ else {
113
+ console.log(`\n ${bold(`${target.label} feedback`)} ${dim(`${rows.length} report(s)`)}`);
114
+ for (const row of rows)
115
+ console.log(` ${row.id} ${row.kind} ${row.summary}`);
116
+ console.log('');
117
+ }
118
+ return;
119
+ }
120
+ if (!report) {
121
+ const instructions = await target.client.feedbackInstructions();
122
+ if (json)
123
+ console.log(JSON.stringify(instructions, null, 2));
124
+ else
125
+ console.log(`\n${JSON.stringify(instructions, null, 2)}\n`);
126
+ return;
127
+ }
128
+ if (flags.yes === undefined) {
129
+ const preview = { submitted: false, target: target.kind, endpoint: target.endpoint, report };
130
+ if (json)
131
+ console.log(JSON.stringify(preview, null, 2));
132
+ else {
133
+ console.log(`\n ${bold('feedback preview')} ${dim(`→ ${target.endpoint}`)}`);
134
+ console.log(JSON.stringify(report, null, 2));
135
+ info('Report content not sent. Review/redact it, obtain human approval, then re-run with --yes.');
136
+ console.log('');
137
+ }
138
+ return;
139
+ }
140
+ requireRemoteToken(target.remote);
141
+ const result = await target.client.submitFeedback(report);
142
+ if (json)
143
+ console.log(JSON.stringify({ submitted: true, target: target.kind, ...result }, null, 2));
144
+ else
145
+ ok(`${target.label} feedback recorded (${result.id})`);
146
+ }
147
+ //# sourceMappingURL=feedback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feedback.js","sourceRoot":"","sources":["../../src/commands/feedback.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,257 @@
1
+ import { type Address } 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 declare function cmdVerifyBody(address: Address, flags: Flags, emit: (p: Record<string, unknown>) => void): Promise<void>;
9
+ export declare function cmdVerifyRemote(address: Address, remote: RemoteTarget): Promise<void>;
10
+ /**
11
+ * The half `abx verify --remote` was missing: do the served BYTES still hash to the on-chain
12
+ * commitment? Everything above it checks renders (is a thumbnail current, is it a placeholder) — a
13
+ * different question, and a green ✓ there was reading as "the image is correct" when the bytes could
14
+ * genuinely mismatch.
15
+ *
16
+ * The service is the right place to answer it: it holds both the bytes and the chain, and it already
17
+ * exposes exactly this check (`GET /api/project/:addr/verify`, bearer-gated because it triggers
18
+ * outbound fetches). When we can't reach that — no credential, or an older node — say plainly that
19
+ * byte integrity was NOT checked rather than leaving the ✓ above to imply it was.
20
+ */
21
+ export declare function reportRemoteByteIntegrity(address: Address, remote: RemoteTarget, base: string): Promise<void>;
22
+ export declare const STATE_ABI: readonly [{
23
+ readonly type: "function";
24
+ readonly name: "owner";
25
+ readonly stateMutability: "view";
26
+ readonly inputs: readonly [];
27
+ readonly outputs: readonly [{
28
+ readonly type: "address";
29
+ }];
30
+ }, {
31
+ readonly type: "function";
32
+ readonly name: "totalSupply";
33
+ readonly stateMutability: "view";
34
+ readonly inputs: readonly [];
35
+ readonly outputs: readonly [{
36
+ readonly type: "uint256";
37
+ }];
38
+ }, {
39
+ readonly type: "function";
40
+ readonly name: "nextTokenId";
41
+ readonly stateMutability: "view";
42
+ readonly inputs: readonly [];
43
+ readonly outputs: readonly [{
44
+ readonly type: "uint256";
45
+ }];
46
+ }, {
47
+ readonly type: "function";
48
+ readonly name: "maxInvocations";
49
+ readonly stateMutability: "view";
50
+ readonly inputs: readonly [];
51
+ readonly outputs: readonly [{
52
+ readonly type: "uint256";
53
+ }];
54
+ }, {
55
+ readonly type: "function";
56
+ readonly name: "paused";
57
+ readonly stateMutability: "view";
58
+ readonly inputs: readonly [];
59
+ readonly outputs: readonly [{
60
+ readonly type: "bool";
61
+ }];
62
+ }, {
63
+ readonly type: "function";
64
+ readonly name: "minter";
65
+ readonly stateMutability: "view";
66
+ readonly inputs: readonly [];
67
+ readonly outputs: readonly [{
68
+ readonly type: "address";
69
+ }];
70
+ }, {
71
+ readonly type: "function";
72
+ readonly name: "primaryPayee";
73
+ readonly stateMutability: "view";
74
+ readonly inputs: readonly [];
75
+ readonly outputs: readonly [{
76
+ readonly type: "address";
77
+ }];
78
+ }, {
79
+ readonly type: "function";
80
+ readonly name: "tokenURIRenderer";
81
+ readonly stateMutability: "view";
82
+ readonly inputs: readonly [];
83
+ readonly outputs: readonly [{
84
+ readonly type: "address";
85
+ }];
86
+ }, {
87
+ readonly type: "function";
88
+ readonly name: "royaltyInfo";
89
+ readonly stateMutability: "view";
90
+ readonly inputs: readonly [{
91
+ readonly type: "uint256";
92
+ }, {
93
+ readonly type: "uint256";
94
+ }];
95
+ readonly outputs: readonly [{
96
+ readonly type: "address";
97
+ }, {
98
+ readonly type: "uint256";
99
+ }];
100
+ }, {
101
+ readonly type: "function";
102
+ readonly name: "supportsInterface";
103
+ readonly stateMutability: "view";
104
+ readonly inputs: readonly [{
105
+ readonly type: "bytes4";
106
+ }];
107
+ readonly outputs: readonly [{
108
+ readonly type: "bool";
109
+ }];
110
+ }, {
111
+ readonly type: "function";
112
+ readonly name: "getTransferValidator";
113
+ readonly stateMutability: "view";
114
+ readonly inputs: readonly [];
115
+ readonly outputs: readonly [{
116
+ readonly type: "address";
117
+ }];
118
+ }, {
119
+ readonly type: "function";
120
+ readonly name: "seedSource";
121
+ readonly stateMutability: "view";
122
+ readonly inputs: readonly [];
123
+ readonly outputs: readonly [{
124
+ readonly type: "address";
125
+ }];
126
+ }];
127
+ /** The edition twin of {@link STATE_ABI} — `owner`/`maxInvocations`/`paused`/`minter`/
128
+ * `primaryPayee`/`tokenURIRenderer`/`royaltyInfo` are shared, unchanged, function names (see
129
+ * `kind.ts`'s own note on why); `totalSupply`/`maxSupply` take an id. The creator-token probe is
130
+ * ALSO shared, unchanged: Limit Break uses the identical `ICreatorToken` ERC-165 id (0xad0d7f6c)
131
+ * and `getTransferValidator()` surface for 721C and 1155C, and `CreatorToken1155` advertises them
132
+ * the same way when enrolled — so an enrolled edition reports its validator exactly like a 721. */
133
+ export declare const EDITION_STATE_ABI: readonly [{
134
+ readonly type: "function";
135
+ readonly name: "owner";
136
+ readonly stateMutability: "view";
137
+ readonly inputs: readonly [];
138
+ readonly outputs: readonly [{
139
+ readonly type: "address";
140
+ }];
141
+ }, {
142
+ readonly type: "function";
143
+ readonly name: "maxInvocations";
144
+ readonly stateMutability: "view";
145
+ readonly inputs: readonly [];
146
+ readonly outputs: readonly [{
147
+ readonly type: "uint256";
148
+ }];
149
+ }, {
150
+ readonly type: "function";
151
+ readonly name: "totalSupply";
152
+ readonly stateMutability: "view";
153
+ readonly inputs: readonly [{
154
+ readonly type: "uint256";
155
+ }];
156
+ readonly outputs: readonly [{
157
+ readonly type: "uint256";
158
+ }];
159
+ }, {
160
+ readonly type: "function";
161
+ readonly name: "maxSupply";
162
+ readonly stateMutability: "view";
163
+ readonly inputs: readonly [{
164
+ readonly type: "uint256";
165
+ }];
166
+ readonly outputs: readonly [{
167
+ readonly type: "uint256";
168
+ }];
169
+ }, {
170
+ readonly type: "function";
171
+ readonly name: "paused";
172
+ readonly stateMutability: "view";
173
+ readonly inputs: readonly [];
174
+ readonly outputs: readonly [{
175
+ readonly type: "bool";
176
+ }];
177
+ }, {
178
+ readonly type: "function";
179
+ readonly name: "minter";
180
+ readonly stateMutability: "view";
181
+ readonly inputs: readonly [];
182
+ readonly outputs: readonly [{
183
+ readonly type: "address";
184
+ }];
185
+ }, {
186
+ readonly type: "function";
187
+ readonly name: "primaryPayee";
188
+ readonly stateMutability: "view";
189
+ readonly inputs: readonly [];
190
+ readonly outputs: readonly [{
191
+ readonly type: "address";
192
+ }];
193
+ }, {
194
+ readonly type: "function";
195
+ readonly name: "tokenURIRenderer";
196
+ readonly stateMutability: "view";
197
+ readonly inputs: readonly [];
198
+ readonly outputs: readonly [{
199
+ readonly type: "address";
200
+ }];
201
+ }, {
202
+ readonly type: "function";
203
+ readonly name: "royaltyInfo";
204
+ readonly stateMutability: "view";
205
+ readonly inputs: readonly [{
206
+ readonly type: "uint256";
207
+ }, {
208
+ readonly type: "uint256";
209
+ }];
210
+ readonly outputs: readonly [{
211
+ readonly type: "address";
212
+ }, {
213
+ readonly type: "uint256";
214
+ }];
215
+ }, {
216
+ readonly type: "function";
217
+ readonly name: "supportsInterface";
218
+ readonly stateMutability: "view";
219
+ readonly inputs: readonly [{
220
+ readonly type: "bytes4";
221
+ }];
222
+ readonly outputs: readonly [{
223
+ readonly type: "bool";
224
+ }];
225
+ }, {
226
+ readonly type: "function";
227
+ readonly name: "getTransferValidator";
228
+ readonly stateMutability: "view";
229
+ readonly inputs: readonly [];
230
+ readonly outputs: readonly [{
231
+ readonly type: "address";
232
+ }];
233
+ }, {
234
+ readonly type: "function";
235
+ readonly name: "seedSource";
236
+ readonly stateMutability: "view";
237
+ readonly inputs: readonly [];
238
+ readonly outputs: readonly [{
239
+ readonly type: "address";
240
+ }];
241
+ }];
242
+ export declare function cmdState(address: Address | undefined, flags: Flags): Promise<void>;
243
+ export declare function cmdStateBody(address: Address, flags: Flags, emit: (p: Record<string, unknown>) => void): Promise<void>;
244
+ /**
245
+ * `abx status [address] [--remote [name|url]] [--watch]` — INDEXING status: where a project sits in
246
+ * the lifecycle (`queued | backfilling | live | stale | failed`) and how far behind head it is.
247
+ *
248
+ * One vocabulary for both sides of the membrane, which is the point: bare = this node, `--remote` =
249
+ * ask the service, and the same five words either way. Distinct from `abx state <address>`, which
250
+ * reads the CHAIN (owner, royalty, locks) and knows nothing about who is serving it.
251
+ */
252
+ export declare function cmdStatus(address: Address | undefined, flags: Flags): Promise<void>;
253
+ /** The `--remote` half of {@link cmdStatus}: one project, or the roll-up for every project the token
254
+ * can see. `--watch` tails until everything reaches a terminal state. */
255
+ export declare function cmdStatusRemote(address: Address | undefined, remote: RemoteTarget, flags: Flags): Promise<void>;
256
+ export declare function cmdForget(address: Address | undefined, flags: Flags): Promise<void>;
257
+ //# 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,EA+Bb,MAAM,oBAAoB,CAAC;AAgB5B,OAAO,EAAC,KAAK,KAAK,EAA0B,MAAM,aAAa,CAAC;AAOhE,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,iBAoCxE;AAMD,wBAAsB,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,EAAE,KAAK,EAAE,KAAK,iBAazE;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,CAwQf;AAMD,wBAAsB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,iBA+F3E;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,yBAAyB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA6CnH;AAqBD,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmBZ,CAAC;AAEX;;;;;oGAKoG;AACpG,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBpB,CAAC;AAsHX,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,CA2Mf;AA2KD;;;;;;;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"}