@artblocks/abx-cli 0.1.0-alpha.56 → 0.1.0-alpha.58
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 +15 -0
- package/dist/capabilities.d.ts +1 -1
- package/dist/capabilities.js +1 -1
- package/dist/capabilities.js.map +1 -1
- package/dist/commands/deploy.d.ts +2 -1
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +31 -9
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/project.d.ts.map +1 -1
- package/dist/commands/project.js +3 -1
- package/dist/commands/project.js.map +1 -1
- package/dist/creator-signer.d.ts.map +1 -1
- package/dist/creator-signer.js +3 -3
- package/dist/creator-signer.js.map +1 -1
- package/dist/flags.d.ts +7 -1
- package/dist/flags.d.ts.map +1 -1
- package/dist/flags.js +26 -0
- package/dist/flags.js.map +1 -1
- package/dist/main.js +4 -4
- package/dist/main.js.map +1 -1
- package/dist/signer.d.ts +1 -1
- package/package.json +2 -2
- package/skill/SKILL.md +9 -4
- package/skill/reference/services.md +12 -3
- package/skill/reference/setup.md +21 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# @artblocks/abx-cli
|
|
2
2
|
|
|
3
|
+
## 0.1.0-alpha.58
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- b8f2876: Keep sponsored deploy guidance consistent: an ABX creator wallet no longer receives a faucet warning when its native balance is intentionally zero.
|
|
8
|
+
- e89896a: Reject deterministic deploy salts reserved to a different signer before authorization or broadcast.
|
|
9
|
+
- cf2708c: Allow the beta creator-wallet sponsorship lane on Base mainnet when the live provider and account explicitly advertise eligibility, while retaining Base Sepolia as the recommended first run.
|
|
10
|
+
|
|
11
|
+
## 0.1.0-alpha.57
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- 5164922: Teach the bundled agent skill to prefer live-advertised gas sponsorship for eligible operations while
|
|
16
|
+
keeping hot-key, browser-wallet, and unsigned signing as first-class choices.
|
|
17
|
+
|
|
3
18
|
## 0.1.0-alpha.56
|
|
4
19
|
|
|
5
20
|
### Minor Changes
|
package/dist/capabilities.d.ts
CHANGED
|
@@ -29,7 +29,7 @@ export declare const ABX_CAPABILITIES: {
|
|
|
29
29
|
readonly flag: "--sponsor";
|
|
30
30
|
readonly summary: "account-bound ABX creator wallet; ABX Services pays eligible gas";
|
|
31
31
|
readonly supportLevel: "beta";
|
|
32
|
-
readonly chainIds: readonly [84532];
|
|
32
|
+
readonly chainIds: readonly [8453, 84532];
|
|
33
33
|
readonly limits: readonly ["zero value", "3,000,000 gas per transaction", "no direct CREATE", "no staged --onchain-image"];
|
|
34
34
|
};
|
|
35
35
|
readonly unsigned: {
|
package/dist/capabilities.js
CHANGED
|
@@ -21,7 +21,7 @@ export const ABX_CAPABILITIES = {
|
|
|
21
21
|
flag: '--sponsor',
|
|
22
22
|
summary: 'account-bound ABX creator wallet; ABX Services pays eligible gas',
|
|
23
23
|
supportLevel: 'beta',
|
|
24
|
-
chainIds: [84_532],
|
|
24
|
+
chainIds: [8_453, 84_532],
|
|
25
25
|
limits: ['zero value', '3,000,000 gas per transaction', 'no direct CREATE', 'no staged --onchain-image'],
|
|
26
26
|
},
|
|
27
27
|
unsigned: { flag: '--unsigned', summary: 'print for an external signer', supportLevel: 'supported' },
|
package/dist/capabilities.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../src/capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAE,iBAAiB,EAAE,gBAAgB,EAAC,MAAM,oBAAoB,CAAC;AAGtF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,aAAa,EAAE,CAAC;IAChB,YAAY,EAAE,iBAAiB;IAC/B,MAAM,EAAE,aAAa;IACrB,8EAA8E;IAC9E,eAAe,EAAE,CAAC,GAAG,gBAAgB,CAAC;IACtC,YAAY,EAAE;QACZ,IAAI,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,gCAAgC,EAAE,YAAY,EAAE,WAAW,EAAC;QAC5F,IAAI,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,mCAAmC,EAAE,YAAY,EAAE,WAAW,EAAC;QAC/F,OAAO,EAAE;YACP,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,kEAAkE;YAC3E,YAAY,EAAE,MAAM;YACpB,QAAQ,EAAE,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../src/capabilities.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import { type Address, type OnChainFieldInput, type OpenSeaAttribute, type Proje
|
|
|
3
3
|
import { type Hex } from 'viem';
|
|
4
4
|
import { type StorageOverrides } from '../config.js';
|
|
5
5
|
import { type Flags } from '../flags.js';
|
|
6
|
+
import { type Lane } from '../signer.js';
|
|
6
7
|
export declare const DIMENSIONS: Record<string, {
|
|
7
8
|
label: string;
|
|
8
9
|
aliases: string[];
|
|
@@ -52,7 +53,7 @@ export declare function assertRealIdentity(flags: Flags, o: {
|
|
|
52
53
|
dryRun: boolean;
|
|
53
54
|
}): void;
|
|
54
55
|
export declare function assertPreviewDeployer(flags: Flags): void;
|
|
55
|
-
export declare function warnUnfunded(publicClient: PublicClient, address: Address): Promise<void>;
|
|
56
|
+
export declare function warnUnfunded(publicClient: PublicClient, address: Address, lane: Lane): Promise<void>;
|
|
56
57
|
export declare function shArg(v: string): string;
|
|
57
58
|
export declare function deployCommandLine(flags: Flags, salt: string): string;
|
|
58
59
|
export declare function deploySeriesCommandLine(flags: Flags, salt: string): string;
|
|
@@ -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,EAMZ,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,YAAY,EAMjB,KAAK,qBAAqB,EAE1B,KAAK,aAAa,EAMlB,KAAK,UAAU,EAoDhB,MAAM,oBAAoB,CAAC;AAY5B,OAAO,EAAC,KAAK,GAAG,EAAqD,MAAM,MAAM,CAAC;AAClF,OAAO,EAGL,KAAK,gBAAgB,EAmBtB,MAAM,cAAc,CAAC;AAEtB,OAAO,
|
|
1
|
+
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/deploy.js
CHANGED
|
@@ -21,7 +21,7 @@ import { DEFAULT_PORT, contentHash, generateContent, resolveBaseUrl, startTokenA
|
|
|
21
21
|
import { encodeFunctionData, getAddress, toHex, zeroAddress } from 'viem';
|
|
22
22
|
import { CHAIN, explorerBase, assertTurboFundsForUpload, backendResolution, collectContentLocators, ensureArweaveIdentityForUpload, factoryAddress, faucetHint, localIndexer, loopbackBaseUrl, noteArweavePlan, noteStorageReadiness, rendererAddress, seriesFactoryAddress, oneOfOneEditionFactoryAddress, editionFactoryAddress, editionCodeFactoryAddress, storageOptions, storageOverrides, storageSignerChoice, } from '../config.js';
|
|
23
23
|
import { parseDepFlag } from '../deps.js';
|
|
24
|
-
import { isDryRun, parseSaltFlag, refuseStrayFlags, warnSignWithoutFor } from '../flags.js';
|
|
24
|
+
import { assertSaltGuardForDeployer, isDryRun, parseSaltFlag, refuseStrayFlags, warnSignWithoutFor, } from '../flags.js';
|
|
25
25
|
import { isEditionContract } from '../kind.js';
|
|
26
26
|
import { jsonSafe, withJson } from '../jsonout.js';
|
|
27
27
|
import { planOnChainScript } from '../script-chunks.js';
|
|
@@ -168,7 +168,11 @@ export function assertPreviewDeployer(flags) {
|
|
|
168
168
|
}
|
|
169
169
|
// Funding preflight — a 0-balance signer fails only at the tx, with a confusing error. Surface it
|
|
170
170
|
// up front. Especially the wallet lane (--sign/--for), which has no env key for `doctor` to check.
|
|
171
|
-
|
|
171
|
+
// The sponsored lane is deliberately allowed to have a zero balance: funding is the service's job,
|
|
172
|
+
// and telling that creator to visit a faucet contradicts the lane they explicitly selected.
|
|
173
|
+
export async function warnUnfunded(publicClient, address, lane) {
|
|
174
|
+
if (lane === 'sponsor')
|
|
175
|
+
return;
|
|
172
176
|
try {
|
|
173
177
|
const bal = await publicClient.getBalance({ address });
|
|
174
178
|
if (bal === 0n)
|
|
@@ -745,7 +749,7 @@ export async function cmdDeployBody(flags, serveAfter, emit) {
|
|
|
745
749
|
catch { /* no key yet — later steps handle it */ }
|
|
746
750
|
}
|
|
747
751
|
if (signer)
|
|
748
|
-
await warnUnfunded(publicClient, signer);
|
|
752
|
+
await warnUnfunded(publicClient, signer, lane);
|
|
749
753
|
}
|
|
750
754
|
// `deploy` surfaces the trust anchor as a step; the demo does NOT. It briefly opened on "only this
|
|
751
755
|
// factory can make a token that IS an ABX token", which is simply false — anything that follows the
|
|
@@ -974,6 +978,8 @@ export async function cmdDeployBody(flags, serveAfter, emit) {
|
|
|
974
978
|
const buildForDeployer = async (deployer) => {
|
|
975
979
|
assertLaneCanSign(flags); // no upload before we know this run can be signed — see `assertLaneCanSign`
|
|
976
980
|
const salt = explicitSalt ?? saltFor(deployer);
|
|
981
|
+
if (explicitSalt)
|
|
982
|
+
assertSaltGuardForDeployer(explicitSalt, deployer);
|
|
977
983
|
const clone = await predictClone(publicClient, { factory, salt });
|
|
978
984
|
// A baked on-chain image (--onchain-image) replaces prepareContent's image field —
|
|
979
985
|
// the bytes already live on-chain behind the reader, nothing to custody or hash. On a
|
|
@@ -1039,7 +1045,7 @@ export async function cmdDeployBody(flags, serveAfter, emit) {
|
|
|
1039
1045
|
}
|
|
1040
1046
|
const { clone: predicted, params, salt, contentNote } = await buildForDeployer(deployer);
|
|
1041
1047
|
info(`deployer ${deployer}`);
|
|
1042
|
-
await warnUnfunded(publicClient, deployer); // advisory
|
|
1048
|
+
await warnUnfunded(publicClient, deployer, lane); // advisory for self-funded signing lanes
|
|
1043
1049
|
// The address is a pure function of (factory, salt), and without --salt this salt was just
|
|
1044
1050
|
// freshly randomly reserved (saltFor mixes in entropy) — a plain re-run gets a DIFFERENT one, so
|
|
1045
1051
|
// the address below is real for THIS preview but not reproducible by habit. Rather than print an
|
|
@@ -1464,7 +1470,7 @@ export async function cmdDeployOneOfOneEditionBody(flags, emit) {
|
|
|
1464
1470
|
}
|
|
1465
1471
|
}
|
|
1466
1472
|
if (signer)
|
|
1467
|
-
await warnUnfunded(publicClient, signer);
|
|
1473
|
+
await warnUnfunded(publicClient, signer, lane);
|
|
1468
1474
|
}
|
|
1469
1475
|
step('Trust anchor');
|
|
1470
1476
|
let factory;
|
|
@@ -1576,6 +1582,8 @@ export async function cmdDeployOneOfOneEditionBody(flags, emit) {
|
|
|
1576
1582
|
const buildForDeployer = async (deployer) => {
|
|
1577
1583
|
assertLaneCanSign(flags); // no upload before we know this run can be signed — see `assertLaneCanSign`
|
|
1578
1584
|
const salt = explicitSalt ?? saltFor(deployer);
|
|
1585
|
+
if (explicitSalt)
|
|
1586
|
+
assertSaltGuardForDeployer(explicitSalt, deployer);
|
|
1579
1587
|
const clone = await predictClone(publicClient, { factory, salt });
|
|
1580
1588
|
const { tokenFields, contentNote } = bakedImage
|
|
1581
1589
|
? { tokenFields: [bakedImage], contentNote: 'content: image staged ON-CHAIN via reader (self-resolving, no custody)' }
|
|
@@ -1631,7 +1639,7 @@ export async function cmdDeployOneOfOneEditionBody(flags, emit) {
|
|
|
1631
1639
|
}
|
|
1632
1640
|
const { clone: predicted, params, salt, contentNote } = await buildForDeployer(deployer);
|
|
1633
1641
|
info(`deployer ${deployer}`);
|
|
1634
|
-
await warnUnfunded(publicClient, deployer);
|
|
1642
|
+
await warnUnfunded(publicClient, deployer, lane);
|
|
1635
1643
|
if (explicitSalt)
|
|
1636
1644
|
info(`deterministic address: ${predicted}`);
|
|
1637
1645
|
info(`name "${name}"${flags.name ? '' : dim(' (default — pass --name)')}`);
|
|
@@ -2169,6 +2177,8 @@ export async function cmdDeploySeriesBody(flags, emit) {
|
|
|
2169
2177
|
const buildForDeployer = async (deployer) => {
|
|
2170
2178
|
assertLaneCanSign(flags); // no upload before we know this run can be signed — see `assertLaneCanSign`
|
|
2171
2179
|
const salt = explicitSalt ?? saltFor(deployer);
|
|
2180
|
+
if (explicitSalt)
|
|
2181
|
+
assertSaltGuardForDeployer(explicitSalt, deployer);
|
|
2172
2182
|
const clone = await predictClone(publicClient, { factory, salt });
|
|
2173
2183
|
const params = {
|
|
2174
2184
|
owner: deployer,
|
|
@@ -2795,6 +2805,8 @@ export async function cmdDeployEditionImageBody(flags, emit) {
|
|
|
2795
2805
|
const buildForDeployer = async (deployer) => {
|
|
2796
2806
|
assertLaneCanSign(flags); // no upload before we know this run can be signed — see `assertLaneCanSign`
|
|
2797
2807
|
const salt = explicitSalt ?? saltFor(deployer);
|
|
2808
|
+
if (explicitSalt)
|
|
2809
|
+
assertSaltGuardForDeployer(explicitSalt, deployer);
|
|
2798
2810
|
const clone = await predictClone(publicClient, { factory, salt });
|
|
2799
2811
|
const params = {
|
|
2800
2812
|
owner: deployer,
|
|
@@ -2842,7 +2854,7 @@ export async function cmdDeployEditionImageBody(flags, emit) {
|
|
|
2842
2854
|
}
|
|
2843
2855
|
const { clone: predicted, params, salt } = await buildForDeployer(deployer);
|
|
2844
2856
|
info(`deployer ${deployer}`);
|
|
2845
|
-
await warnUnfunded(publicClient, deployer);
|
|
2857
|
+
await warnUnfunded(publicClient, deployer, lane);
|
|
2846
2858
|
if (explicitSalt)
|
|
2847
2859
|
info(`deterministic address: ${predicted}`);
|
|
2848
2860
|
info(`name "${name}"${flags.name ? '' : dim(' (default — pass --name)')}`);
|
|
@@ -3271,7 +3283,8 @@ export const SHARED_DEPLOY_FLAGS = [
|
|
|
3271
3283
|
// these override it when the two should differ. Every deploy path takes them.
|
|
3272
3284
|
'ipfs-gateway', 'arweave-gateway',
|
|
3273
3285
|
// `--send` is the DEFAULT lane, and it is accepted explicitly because every deploy's own help
|
|
3274
|
-
// advertises it by name ("signing: --send hot/env key · --sign wallet page · --
|
|
3286
|
+
// advertises it by name ("signing: --send hot/env key · --sign wallet page · --sponsor
|
|
3287
|
+
// ABX creator wallet · --unsigned print tx").
|
|
3275
3288
|
// It was the one of the three the parser rejected, so a reader who typed what the help showed got
|
|
3276
3289
|
// `unrecognized flag(s): --send` from the guard whose whole job is catching flags that would be
|
|
3277
3290
|
// ignored — the guard firing on the tool's own documentation. Explicit is also better than bare for
|
|
@@ -4018,6 +4031,8 @@ export async function cmdDeployCodeBody(flags, emit) {
|
|
|
4018
4031
|
}
|
|
4019
4032
|
const explicitSalt = parseSaltFlag(flags.salt);
|
|
4020
4033
|
const salt = deployer ? (explicitSalt ?? saltFor(deployer)) : null;
|
|
4034
|
+
if (explicitSalt && deployer)
|
|
4035
|
+
assertSaltGuardForDeployer(explicitSalt, deployer);
|
|
4021
4036
|
const predicted = salt
|
|
4022
4037
|
? (await publicClient.readContract({ address: factory, abi: seriesCodeFactoryAbi, functionName: 'predictDeterministicAddress', args: [salt] }))
|
|
4023
4038
|
: null;
|
|
@@ -4354,7 +4369,10 @@ export async function cmdDeployCodeBody(flags, emit) {
|
|
|
4354
4369
|
// identical split — see `planCodeSetupBatches`'s doc), this time with real mint calldata.
|
|
4355
4370
|
const cid = resolveChain(CHAIN).id;
|
|
4356
4371
|
const preparedFor = async (owner) => {
|
|
4357
|
-
const
|
|
4372
|
+
const explicitSalt = parseSaltFlag(flags.salt);
|
|
4373
|
+
if (explicitSalt)
|
|
4374
|
+
assertSaltGuardForDeployer(explicitSalt, owner);
|
|
4375
|
+
const salt = explicitSalt ?? saltFor(owner);
|
|
4358
4376
|
const clone = (await publicClient.readContract({ address: factory, abi: seriesCodeFactoryAbi, functionName: 'predictDeterministicAddress', args: [salt] }));
|
|
4359
4377
|
const g = setupLegGroups(owner);
|
|
4360
4378
|
const batches = planCodeSetupBatches({
|
|
@@ -5273,6 +5291,8 @@ export async function cmdDeployEditionCodeBody(flags, emit) {
|
|
|
5273
5291
|
const editionSetupBatches = planCodeSetupBatches({ chunks: chunkLegs, config: configLegs, mints: mintLegsFor(zeroAddress) });
|
|
5274
5292
|
const preparedFor = async (owner) => {
|
|
5275
5293
|
const salt = explicitSalt ?? saltFor(owner);
|
|
5294
|
+
if (explicitSalt)
|
|
5295
|
+
assertSaltGuardForDeployer(explicitSalt, owner);
|
|
5276
5296
|
const clone = await predictClone(publicClient, { factory, salt });
|
|
5277
5297
|
const setupTxs = codeSetupTxsFromBatches(planCodeSetupBatches({ chunks: chunkLegs, config: configLegs, mints: mintLegsFor(owner) }), { contract: clone, chainId, deps: deps.map((d) => d.display) });
|
|
5278
5298
|
const txs = [prepareDeployEditionCode({ factory, params: initParamsFor(owner), salt, chainId, clone }), ...setupTxs];
|
|
@@ -5322,6 +5342,8 @@ export async function cmdDeployEditionCodeBody(flags, emit) {
|
|
|
5322
5342
|
}
|
|
5323
5343
|
}
|
|
5324
5344
|
const salt = deployer ? (explicitSalt ?? saltFor(deployer)) : null;
|
|
5345
|
+
if (explicitSalt && deployer)
|
|
5346
|
+
assertSaltGuardForDeployer(explicitSalt, deployer);
|
|
5325
5347
|
const predicted = salt ? await predictClone(publicClient, { factory, salt }) : null;
|
|
5326
5348
|
const shownAddr = explicitSalt ? predicted : null;
|
|
5327
5349
|
step(`Deploy plan — up to ${max} id(s), ${editionSize === 0n ? 'open' : editionSize.toString()} cop${editionSize === 1n ? 'y' : 'ies'} each, to ${CHAIN}`);
|