@artblocks/abx-cli 0.1.0-alpha.2 → 0.1.0-alpha.21

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 (137) hide show
  1. package/CHANGELOG.md +1991 -0
  2. package/assets/renderer-scaffold/src/interfaces/IAbxParams.sol +17 -0
  3. package/assets/renderer-scaffold/test/MyRenderer.t.sol +51 -2
  4. package/dist/commands/deploy.d.ts +206 -0
  5. package/dist/commands/deploy.d.ts.map +1 -0
  6. package/dist/commands/deploy.js +4273 -0
  7. package/dist/commands/deploy.js.map +1 -0
  8. package/dist/commands/project.d.ts +241 -0
  9. package/dist/commands/project.d.ts.map +1 -0
  10. package/dist/commands/project.js +1060 -0
  11. package/dist/commands/project.js.map +1 -0
  12. package/dist/commands/reads.d.ts +64 -0
  13. package/dist/commands/reads.d.ts.map +1 -0
  14. package/dist/commands/reads.js +697 -0
  15. package/dist/commands/reads.js.map +1 -0
  16. package/dist/commands/scaffold.d.ts +71 -0
  17. package/dist/commands/scaffold.d.ts.map +1 -0
  18. package/dist/commands/scaffold.js +552 -0
  19. package/dist/commands/scaffold.js.map +1 -0
  20. package/dist/commands/service.d.ts +41 -0
  21. package/dist/commands/service.d.ts.map +1 -0
  22. package/dist/commands/service.js +618 -0
  23. package/dist/commands/service.js.map +1 -0
  24. package/dist/commands/storage.d.ts +37 -0
  25. package/dist/commands/storage.d.ts.map +1 -0
  26. package/dist/commands/storage.js +343 -0
  27. package/dist/commands/storage.js.map +1 -0
  28. package/dist/config.d.ts +91 -2
  29. package/dist/config.d.ts.map +1 -1
  30. package/dist/config.js +244 -11
  31. package/dist/config.js.map +1 -1
  32. package/dist/conformance.d.ts +31 -0
  33. package/dist/conformance.d.ts.map +1 -0
  34. package/dist/conformance.js +371 -0
  35. package/dist/conformance.js.map +1 -0
  36. package/dist/deps.d.ts +6 -39
  37. package/dist/deps.d.ts.map +1 -1
  38. package/dist/deps.js +4 -68
  39. package/dist/deps.js.map +1 -1
  40. package/dist/errors.d.ts +20 -0
  41. package/dist/errors.d.ts.map +1 -0
  42. package/dist/errors.js +25 -0
  43. package/dist/errors.js.map +1 -0
  44. package/dist/flag-allowlists.d.ts +53 -0
  45. package/dist/flag-allowlists.d.ts.map +1 -0
  46. package/dist/flag-allowlists.js +148 -0
  47. package/dist/flag-allowlists.js.map +1 -0
  48. package/dist/flags.d.ts +41 -0
  49. package/dist/flags.d.ts.map +1 -1
  50. package/dist/flags.js +94 -1
  51. package/dist/flags.js.map +1 -1
  52. package/dist/jsonout.d.ts +37 -0
  53. package/dist/jsonout.d.ts.map +1 -0
  54. package/dist/jsonout.js +68 -0
  55. package/dist/jsonout.js.map +1 -0
  56. package/dist/kind.d.ts +53 -0
  57. package/dist/kind.d.ts.map +1 -0
  58. package/dist/kind.js +94 -0
  59. package/dist/kind.js.map +1 -0
  60. package/dist/main.js +534 -4708
  61. package/dist/main.js.map +1 -1
  62. package/dist/mintpage.d.ts +17 -2
  63. package/dist/mintpage.d.ts.map +1 -1
  64. package/dist/mintpage.js +214 -52
  65. package/dist/mintpage.js.map +1 -1
  66. package/dist/output.d.ts +148 -0
  67. package/dist/output.d.ts.map +1 -0
  68. package/dist/output.js +634 -0
  69. package/dist/output.js.map +1 -0
  70. package/dist/ownerops.d.ts +132 -44
  71. package/dist/ownerops.d.ts.map +1 -1
  72. package/dist/ownerops.js +1151 -329
  73. package/dist/ownerops.js.map +1 -1
  74. package/dist/preview.d.ts +81 -0
  75. package/dist/preview.d.ts.map +1 -0
  76. package/dist/preview.js +535 -0
  77. package/dist/preview.js.map +1 -0
  78. package/dist/prompt.d.ts +17 -0
  79. package/dist/prompt.d.ts.map +1 -0
  80. package/dist/prompt.js +19 -0
  81. package/dist/prompt.js.map +1 -0
  82. package/dist/provision.d.ts.map +1 -1
  83. package/dist/provision.js +10 -7
  84. package/dist/provision.js.map +1 -1
  85. package/dist/remote.d.ts +134 -53
  86. package/dist/remote.d.ts.map +1 -1
  87. package/dist/remote.js +358 -46
  88. package/dist/remote.js.map +1 -1
  89. package/dist/riskgate.d.ts +29 -0
  90. package/dist/riskgate.d.ts.map +1 -0
  91. package/dist/riskgate.js +91 -0
  92. package/dist/riskgate.js.map +1 -0
  93. package/dist/scaffold.d.ts +10 -0
  94. package/dist/scaffold.d.ts.map +1 -0
  95. package/dist/scaffold.js +52 -0
  96. package/dist/scaffold.js.map +1 -0
  97. package/dist/schema.d.ts +18 -1
  98. package/dist/schema.d.ts.map +1 -1
  99. package/dist/schema.js +74 -23
  100. package/dist/schema.js.map +1 -1
  101. package/dist/served.d.ts +30 -0
  102. package/dist/served.d.ts.map +1 -0
  103. package/dist/served.js +112 -0
  104. package/dist/served.js.map +1 -0
  105. package/dist/signer.d.ts +13 -0
  106. package/dist/signer.d.ts.map +1 -1
  107. package/dist/signer.js +80 -14
  108. package/dist/signer.js.map +1 -1
  109. package/dist/update-check.d.ts +83 -4
  110. package/dist/update-check.d.ts.map +1 -1
  111. package/dist/update-check.js +132 -17
  112. package/dist/update-check.js.map +1 -1
  113. package/package.json +10 -6
  114. package/skill/SKILL.md +108 -62
  115. package/skill/reference/code-projects.md +109 -13
  116. package/skill/reference/creator-token.md +86 -0
  117. package/skill/reference/decisions.md +87 -0
  118. package/skill/reference/hosting.md +48 -15
  119. package/skill/reference/operating.md +32 -8
  120. package/skill/reference/setup.md +10 -3
  121. package/skill/reference/troubleshooting.md +31 -4
  122. package/dist/inspect.d.ts +0 -48
  123. package/dist/inspect.d.ts.map +0 -1
  124. package/dist/inspect.js +0 -184
  125. package/dist/inspect.js.map +0 -1
  126. package/dist/migrate.d.ts +0 -65
  127. package/dist/migrate.d.ts.map +0 -1
  128. package/dist/migrate.js +0 -180
  129. package/dist/migrate.js.map +0 -1
  130. package/dist/onchain-uri.d.ts +0 -97
  131. package/dist/onchain-uri.d.ts.map +0 -1
  132. package/dist/onchain-uri.js +0 -243
  133. package/dist/onchain-uri.js.map +0 -1
  134. package/dist/upload.d.ts +0 -28
  135. package/dist/upload.d.ts.map +0 -1
  136. package/dist/upload.js +0 -41
  137. package/dist/upload.js.map +0 -1
package/dist/kind.js ADDED
@@ -0,0 +1,94 @@
1
+ /** ERC-165 id of ERC-1155 itself — what sorts a clone into the edition family (anchors.ts's
2
+ * `ERC1155_INTERFACE_ID`, restated here rather than imported: it's a fixed standard id, not SDK
3
+ * surface). */
4
+ const ERC1155_INTERFACE_ID = '0xd9b67a26';
5
+ const KIND_PROBE_ABI = [
6
+ { type: 'function', name: 'supportsInterface', stateMutability: 'view', inputs: [{ type: 'bytes4' }], outputs: [{ type: 'bool' }] },
7
+ { type: 'function', name: 'maxInvocations', stateMutability: 'view', inputs: [], outputs: [{ type: 'uint256' }] },
8
+ { type: 'function', name: 'paramHooks', stateMutability: 'view', inputs: [], outputs: [{ type: 'address' }, { type: 'address' }, { type: 'address' }] },
9
+ ];
10
+ /**
11
+ * Refuse to infer a kind for an address that holds no contract. Without this the three negative
12
+ * probes below are indistinguishable from "nothing deployed here", and the ladder's `1of1` default
13
+ * becomes a confident lie about a specific contract type (see the file docstring).
14
+ *
15
+ * Deliberately silent when the check itself can't run (an RPC hiccup → `getCode` throws): a network
16
+ * blip must not become a "no contract" claim, so we fall through to the probes exactly as before and
17
+ * let whatever the caller was doing surface its own error. Same stance as `assertContractExists`.
18
+ */
19
+ async function assertHasCode(client, address) {
20
+ let code;
21
+ try {
22
+ code = await client.getCode({ address });
23
+ }
24
+ catch {
25
+ return; // can't tell — don't manufacture a verdict
26
+ }
27
+ if (code && code !== '0x')
28
+ return;
29
+ const chain = client.chain?.name ?? 'the active chain';
30
+ throw new Error(`no contract at ${address} on ${chain} — so there is no token type to read. ` +
31
+ `Check the address, and check the network: a contract that lives on another chain reads as empty here ` +
32
+ `(the chain is picked with ABX_CHAIN; base-sepolia is the default). Owner ops run AFTER deploy.`);
33
+ }
34
+ async function supportsErc1155(client, address) {
35
+ try {
36
+ return (await client.readContract({ address, abi: KIND_PROBE_ABI, functionName: 'supportsInterface', args: [ERC1155_INTERFACE_ID] }));
37
+ }
38
+ catch {
39
+ return false;
40
+ }
41
+ }
42
+ async function hasMaxInvocations(client, address) {
43
+ try {
44
+ await client.readContract({ address, abi: KIND_PROBE_ABI, functionName: 'maxInvocations' });
45
+ return true;
46
+ }
47
+ catch {
48
+ return false;
49
+ }
50
+ }
51
+ /** The Params/ConfigurableParams surface probe — `paramHooks()` exists only on SeriesCode/
52
+ * EditionCode (mirrors the exact check `ownerops.ts`'s `cmdSetParamHooks` already ran ad-hoc). */
53
+ async function hasConfigurableParams(client, address) {
54
+ try {
55
+ await client.readContract({ address, abi: KIND_PROBE_ABI, functionName: 'paramHooks' });
56
+ return true;
57
+ }
58
+ catch {
59
+ return false;
60
+ }
61
+ }
62
+ /**
63
+ * Which of the six concrete ABX token types `address` is — the shared discriminator every command
64
+ * that branches on kind should call instead of re-deriving its own probe. Three live `eth_call`s,
65
+ * in the order that lets each short-circuit the next: ERC-165 first (edition family or not), then
66
+ * `maxInvocations()` (multi-id or not), then the Params surface (code or not).
67
+ */
68
+ export async function detectTokenKind(client, address) {
69
+ await assertHasCode(client, address);
70
+ const isEdition = await supportsErc1155(client, address);
71
+ const capped = await hasMaxInvocations(client, address);
72
+ if (isEdition) {
73
+ if (!capped)
74
+ return { kind: '1of1-edition', isEdition: true, label: 'OneOfOneEdition' };
75
+ const code = await hasConfigurableParams(client, address);
76
+ return code ? { kind: 'edition-code', isEdition: true, label: 'EditionCode' } : { kind: 'edition', isEdition: true, label: 'EditionImage' };
77
+ }
78
+ if (!capped)
79
+ return { kind: '1of1', isEdition: false, label: 'OneOfOneImage' };
80
+ const code = await hasConfigurableParams(client, address);
81
+ return code ? { kind: 'code', isEdition: false, label: 'SeriesCode' } : { kind: 'series', isEdition: false, label: 'SeriesImage' };
82
+ }
83
+ /** Convenience for a call site that only needs the one boolean (is this an ERC-1155 edition, at
84
+ * all) — the cheapest single probe, so a guard that doesn't need the full breakdown doesn't pay
85
+ * for the other two calls. */
86
+ export async function isEditionContract(client, address) {
87
+ return supportsErc1155(client, address);
88
+ }
89
+ /** Human, one-line description of a kind — `"EditionImage (edition)"`, `"SeriesImage (series)"` —
90
+ * the shared phrasing for a readout header (`state`, `tokens`). */
91
+ export function describeKind(info) {
92
+ return `${info.label} (${info.kind === '1of1' ? '1/1' : info.kind === '1of1-edition' ? 'edition' : info.kind})`;
93
+ }
94
+ //# sourceMappingURL=kind.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kind.js","sourceRoot":"","sources":["../src/kind.ts"],"names":[],"mappings":"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"}