@artblocks/abx-cli 0.1.0-alpha.61 → 0.1.0-alpha.62

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 CHANGED
@@ -1,5 +1,21 @@
1
1
  # @artblocks/abx-cli
2
2
 
3
+ ## 0.1.0-alpha.62
4
+
5
+ ### Minor Changes
6
+
7
+ - 22abce8: Generalize the creator-wallet sponsorship lane to direct zero-value contract creation and
8
+ receipt-dependent on-chain image staging. Add `abx deploy-contract` for exact Foundry artifact or
9
+ initcode deployment through any signing lane.
10
+
11
+ ### Patch Changes
12
+
13
+ - Updated dependencies [22abce8]
14
+ - @artblocks/abx-sdk@0.1.0-alpha.44
15
+ - @artblocks/abx-indexer@0.1.0-alpha.45
16
+ - @artblocks/abx-storage@0.1.0-alpha.44
17
+ - @artblocks/abx-token-api@0.1.0-alpha.47
18
+
3
19
  ## 0.1.0-alpha.61
4
20
 
5
21
  ### Patch Changes
@@ -6,8 +6,9 @@ and read-time augmentation. Use only the roles your project needs. There is inte
6
6
  "minter hook": minting is an external-minter capability, while the three PostParam hooks are
7
7
  configure, transfer and augment.
8
8
 
9
- `abx` does **not** compile or deploy Solidity for you; you build, test, and deploy this project with
10
- Foundry, then hand the deployed address(es) to `abx deploy-code`, which verifies they have code.
9
+ `abx` does **not** compile Solidity for you. Build and test with Foundry, then either deploy with
10
+ Foundry or pass exact compiled creation bytecode to `abx deploy-contract`. Hand the deployed
11
+ address(es) to `abx deploy-code`, which verifies they have code.
11
12
 
12
13
  ## What's here
13
14
 
@@ -9,7 +9,7 @@ import type { Flags } from './flags.js';
9
9
  * matrices in prose.
10
10
  */
11
11
  export declare const ABX_CAPABILITIES: {
12
- readonly schemaVersion: 3;
12
+ readonly schemaVersion: 4;
13
13
  readonly defaultChain: string;
14
14
  readonly chains: readonly import("@artblocks/abx-sdk").ChainSupport[];
15
15
  /** Compatibility field for consumers that only need selectable chain keys. */
@@ -30,7 +30,7 @@ export declare const ABX_CAPABILITIES: {
30
30
  readonly summary: "account-bound ABX creator wallet; ABX Services pays eligible gas";
31
31
  readonly supportLevel: "beta";
32
32
  readonly chainIds: readonly [8453, 84532];
33
- readonly limits: readonly ["zero value", "network and provider gas policy", "no direct CREATE", "no staged --onchain-image"];
33
+ readonly limits: readonly ["zero value", "network and provider gas policy"];
34
34
  };
35
35
  readonly unsigned: {
36
36
  readonly flag: "--unsigned";
@@ -49,7 +49,7 @@ export declare const ABX_CAPABILITIES: {
49
49
  readonly contract: "OneOfOneEdition (ERC-1155)";
50
50
  readonly selector: "--copies <n|open>";
51
51
  readonly summary: "one work × copies; supports on-chain bytes, on-chain JSON with external media, or a resolver";
52
- readonly supported: readonly ["--onchain-image (hot or wallet signing)", "--onchain-uri", "--backend", "--public-base-url"];
52
+ readonly supported: readonly ["--onchain-image (hot, wallet, or sponsored signing)", "--onchain-uri", "--backend", "--public-base-url"];
53
53
  readonly unsupported: readonly ["--onchain-image with --unsigned"];
54
54
  };
55
55
  };
@@ -63,7 +63,7 @@ export declare const ABX_CAPABILITIES: {
63
63
  readonly contract: "EditionImage (ERC-1155)";
64
64
  readonly selector: "--copies <n|open>";
65
65
  readonly summary: "N folder items × copies per id; supports on-chain bytes, on-chain JSON with external media, or a resolver";
66
- readonly supported: readonly ["--onchain-image (hot or wallet signing)", "--onchain-uri", "--backend", "--public-base-url"];
66
+ readonly supported: readonly ["--onchain-image (hot, wallet, or sponsored signing)", "--onchain-uri", "--backend", "--public-base-url"];
67
67
  readonly unsupported: readonly ["--onchain-image with --unsigned"];
68
68
  };
69
69
  };
@@ -82,6 +82,12 @@ export declare const ABX_CAPABILITIES: {
82
82
  };
83
83
  };
84
84
  };
85
+ readonly customContractDeployment: {
86
+ readonly command: "abx deploy-contract";
87
+ readonly input: "exact EVM creation bytecode or a Foundry artifact plus already ABI-encoded constructor arguments";
88
+ readonly signingLanes: readonly ["--send", "--sign", "--sponsor", "--unsigned"];
89
+ readonly boundaries: readonly ["ABX does not compile, link, audit, or infer constructor types", "zero value under --sponsor"];
90
+ };
85
91
  readonly extensionRoutes: readonly [{
86
92
  readonly route: "custom minter";
87
93
  readonly command: "abx set-minter";
@@ -89,22 +95,22 @@ export declare const ABX_CAPABILITIES: {
89
95
  readonly useFor: readonly ["auctions", "allowlists", "raffles", "free claims", "ERC-20 pricing"];
90
96
  }, {
91
97
  readonly route: "configure hook";
92
- readonly command: "abx set-param-hooks --configure";
98
+ readonly command: "abx deploy-contract, then abx set-param-hooks --configure";
93
99
  readonly availableOn: "SeriesCode and EditionCode";
94
100
  readonly useFor: readonly ["validated writes", "monotonic values", "structured collector input"];
95
101
  }, {
96
102
  readonly route: "transfer hook";
97
- readonly command: "abx set-param-hooks --transfer";
103
+ readonly command: "abx deploy-contract, then abx set-param-hooks --transfer";
98
104
  readonly availableOn: "SeriesCode and EditionCode";
99
105
  readonly useFor: readonly ["transfer restrictions", "soulbinding", "vesting", "redemption", "escrow"];
100
106
  }, {
101
107
  readonly route: "augment hook";
102
- readonly command: "abx set-param-hooks --augment";
108
+ readonly command: "abx deploy-contract, then abx set-param-hooks --augment";
103
109
  readonly availableOn: "SeriesCode and EditionCode";
104
110
  readonly useFor: readonly ["live derived data", "oracle-fed state", "read-time metadata"];
105
111
  }, {
106
112
  readonly route: "field renderer";
107
- readonly command: "abx deploy-code --image-renderer/--attributes-renderer";
113
+ readonly command: "abx deploy-contract, then abx deploy-code --image-renderer/--attributes-renderer";
108
114
  readonly availableOn: "SeriesCode and EditionCode";
109
115
  readonly useFor: readonly ["on-chain SVG images", "on-chain computed traits"];
110
116
  }, {
@@ -114,7 +120,7 @@ export declare const ABX_CAPABILITIES: {
114
120
  readonly useFor: readonly ["shipping a fix to a live generative program", "iterating pre-lock without a full redeploy"];
115
121
  }];
116
122
  readonly deployTimeChoices: readonly ["contract shape and token standard (--copies)", "code-capable versus static contract type", "burnability (--burnable)", "ERC-721C/ERC-1155C enrollment (--721c)"];
117
- readonly unsupportedToday: readonly ["chains whose support level is disabled", "unsupported chains", "secondary-market listings or an order book", "compiling or deploying custom Solidity through abx", "retrofitting a deploy-time choice on an existing collection"];
123
+ readonly unsupportedToday: readonly ["chains whose support level is disabled", "unsupported chains", "secondary-market listings or an order book", "compiling, linking, or auditing custom Solidity through abx", "retrofitting a deploy-time choice on an existing collection"];
118
124
  readonly interpretation: {
119
125
  readonly native: "A documented command/flag combination performs the request directly.";
120
126
  readonly extension: "A canonical extension seam performs it while the token remains a factory clone.";
@@ -1 +1 @@
1
- {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../src/capabilities.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,YAAY,CAAC;AAEtC;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB;;;;IAI3B,8EAA8E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuHtE,CAAC;AAEX,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAoClD"}
1
+ {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../src/capabilities.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,YAAY,CAAC;AAEtC;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB;;;;IAI3B,8EAA8E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6HtE,CAAC;AAEX,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAqClD"}
@@ -9,7 +9,7 @@ import { CHAIN_SUPPORT, DEFAULT_CHAIN_KEY, KNOWN_CHAIN_KEYS } from '@artblocks/a
9
9
  * matrices in prose.
10
10
  */
11
11
  export const ABX_CAPABILITIES = {
12
- schemaVersion: 3,
12
+ schemaVersion: 4,
13
13
  defaultChain: DEFAULT_CHAIN_KEY,
14
14
  chains: CHAIN_SUPPORT,
15
15
  /** Compatibility field for consumers that only need selectable chain keys. */
@@ -22,7 +22,7 @@ export const ABX_CAPABILITIES = {
22
22
  summary: 'account-bound ABX creator wallet; ABX Services pays eligible gas',
23
23
  supportLevel: 'beta',
24
24
  chainIds: [8_453, 84_532],
25
- limits: ['zero value', 'network and provider gas policy', 'no direct CREATE', 'no staged --onchain-image'],
25
+ limits: ['zero value', 'network and provider gas policy'],
26
26
  },
27
27
  unsigned: { flag: '--unsigned', summary: 'print for an external signer', supportLevel: 'supported' },
28
28
  },
@@ -37,7 +37,7 @@ export const ABX_CAPABILITIES = {
37
37
  contract: 'OneOfOneEdition (ERC-1155)',
38
38
  selector: '--copies <n|open>',
39
39
  summary: 'one work × copies; supports on-chain bytes, on-chain JSON with external media, or a resolver',
40
- supported: ['--onchain-image (hot or wallet signing)', '--onchain-uri', '--backend', '--public-base-url'],
40
+ supported: ['--onchain-image (hot, wallet, or sponsored signing)', '--onchain-uri', '--backend', '--public-base-url'],
41
41
  unsupported: ['--onchain-image with --unsigned'],
42
42
  },
43
43
  },
@@ -51,7 +51,7 @@ export const ABX_CAPABILITIES = {
51
51
  contract: 'EditionImage (ERC-1155)',
52
52
  selector: '--copies <n|open>',
53
53
  summary: 'N folder items × copies per id; supports on-chain bytes, on-chain JSON with external media, or a resolver',
54
- supported: ['--onchain-image (hot or wallet signing)', '--onchain-uri', '--backend', '--public-base-url'],
54
+ supported: ['--onchain-image (hot, wallet, or sponsored signing)', '--onchain-uri', '--backend', '--public-base-url'],
55
55
  unsupported: ['--onchain-image with --unsigned'],
56
56
  },
57
57
  },
@@ -74,6 +74,12 @@ export const ABX_CAPABILITIES = {
74
74
  },
75
75
  },
76
76
  },
77
+ customContractDeployment: {
78
+ command: 'abx deploy-contract',
79
+ input: 'exact EVM creation bytecode or a Foundry artifact plus already ABI-encoded constructor arguments',
80
+ signingLanes: ['--send', '--sign', '--sponsor', '--unsigned'],
81
+ boundaries: ['ABX does not compile, link, audit, or infer constructor types', 'zero value under --sponsor'],
82
+ },
77
83
  extensionRoutes: [
78
84
  {
79
85
  route: 'custom minter',
@@ -83,25 +89,25 @@ export const ABX_CAPABILITIES = {
83
89
  },
84
90
  {
85
91
  route: 'configure hook',
86
- command: 'abx set-param-hooks --configure',
92
+ command: 'abx deploy-contract, then abx set-param-hooks --configure',
87
93
  availableOn: 'SeriesCode and EditionCode',
88
94
  useFor: ['validated writes', 'monotonic values', 'structured collector input'],
89
95
  },
90
96
  {
91
97
  route: 'transfer hook',
92
- command: 'abx set-param-hooks --transfer',
98
+ command: 'abx deploy-contract, then abx set-param-hooks --transfer',
93
99
  availableOn: 'SeriesCode and EditionCode',
94
100
  useFor: ['transfer restrictions', 'soulbinding', 'vesting', 'redemption', 'escrow'],
95
101
  },
96
102
  {
97
103
  route: 'augment hook',
98
- command: 'abx set-param-hooks --augment',
104
+ command: 'abx deploy-contract, then abx set-param-hooks --augment',
99
105
  availableOn: 'SeriesCode and EditionCode',
100
106
  useFor: ['live derived data', 'oracle-fed state', 'read-time metadata'],
101
107
  },
102
108
  {
103
109
  route: 'field renderer',
104
- command: 'abx deploy-code --image-renderer/--attributes-renderer',
110
+ command: 'abx deploy-contract, then abx deploy-code --image-renderer/--attributes-renderer',
105
111
  availableOn: 'SeriesCode and EditionCode',
106
112
  useFor: ['on-chain SVG images', 'on-chain computed traits'],
107
113
  },
@@ -122,7 +128,7 @@ export const ABX_CAPABILITIES = {
122
128
  'chains whose support level is disabled',
123
129
  'unsupported chains',
124
130
  'secondary-market listings or an order book',
125
- 'compiling or deploying custom Solidity through abx',
131
+ 'compiling, linking, or auditing custom Solidity through abx',
126
132
  'retrofitting a deploy-time choice on an existing collection',
127
133
  ],
128
134
  interpretation: {
@@ -155,6 +161,7 @@ export function cmdCapabilities(flags) {
155
161
  if (lane.edition.unsupported.length)
156
162
  console.log(` limits ${lane.edition.unsupported.join(' · ')}`);
157
163
  }
164
+ console.log(` deploy-contract: ${ABX_CAPABILITIES.customContractDeployment.input}`);
158
165
  console.log('\nCanonical extension routes:');
159
166
  for (const seam of ABX_CAPABILITIES.extensionRoutes) {
160
167
  console.log(` ${seam.route}: ${seam.availableOn} — ${seam.useFor.join(', ')}`);
@@ -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,KAAK,EAAE,MAAM,CAAC;YACzB,MAAM,EAAE,CAAC,YAAY,EAAE,iCAAiC,EAAE,kBAAkB,EAAE,2BAA2B,CAAC;SAC3G;QACD,QAAQ,EAAE,EAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,8BAA8B,EAAE,YAAY,EAAE,WAAW,EAAC;KACnG;IACD,kBAAkB,EAAE;QAClB,MAAM,EAAE;YACN,QAAQ,EAAE,iBAAiB;YAC3B,MAAM,EAAE;gBACN,QAAQ,EAAE,yBAAyB;gBACnC,MAAM,EAAE,CAAC,SAAS,CAAC;aACpB;YACD,OAAO,EAAE;gBACP,QAAQ,EAAE,4BAA4B;gBACtC,QAAQ,EAAE,mBAAmB;gBAC7B,OAAO,EAAE,8FAA8F;gBACvG,SAAS,EAAE,CAAC,yCAAyC,EAAE,eAAe,EAAE,WAAW,EAAE,mBAAmB,CAAC;gBACzG,WAAW,EAAE,CAAC,iCAAiC,CAAC;aACjD;SACF;QACD,YAAY,EAAE;YACZ,QAAQ,EAAE,mCAAmC;YAC7C,MAAM,EAAE;gBACN,QAAQ,EAAE,uBAAuB;gBACjC,MAAM,EAAE,CAAC,OAAO,CAAC;aAClB;YACD,OAAO,EAAE;gBACP,QAAQ,EAAE,yBAAyB;gBACnC,QAAQ,EAAE,mBAAmB;gBAC7B,OAAO,EAAE,2GAA2G;gBACpH,SAAS,EAAE,CAAC,yCAAyC,EAAE,eAAe,EAAE,WAAW,EAAE,mBAAmB,CAAC;gBACzG,WAAW,EAAE,CAAC,iCAAiC,CAAC;aACjD;SACF;QACD,UAAU,EAAE;YACV,QAAQ,EAAE,iEAAiE;YAC3E,MAAM,EAAE;gBACN,QAAQ,EAAE,sBAAsB;gBAChC,MAAM,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,kBAAkB,EAAE,uBAAuB,CAAC;aAChF;YACD,OAAO,EAAE;gBACP,QAAQ,EAAE,wBAAwB;gBAClC,QAAQ,EAAE,mBAAmB;gBAC7B,OAAO,EAAE,8JAA8J;gBACvK,SAAS,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,cAAc,EAAE,eAAe,EAAE,mBAAmB,CAAC;gBACnK,8FAA8F;gBAC9F,+FAA+F;gBAC/F,8FAA8F;gBAC9F,qEAAqE;gBACrE,WAAW,EAAE,CAAC,iBAAiB,CAAC;aACjC;SACF;KACF;IACD,eAAe,EAAE;QACf;YACE,KAAK,EAAE,eAAe;YACtB,OAAO,EAAE,gBAAgB;YACzB,WAAW,EAAE,qBAAqB;YAClC,MAAM,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,gBAAgB,CAAC;SAC/E;QACD;YACE,KAAK,EAAE,gBAAgB;YACvB,OAAO,EAAE,iCAAiC;YAC1C,WAAW,EAAE,4BAA4B;YACzC,MAAM,EAAE,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,4BAA4B,CAAC;SAC/E;QACD;YACE,KAAK,EAAE,eAAe;YACtB,OAAO,EAAE,gCAAgC;YACzC,WAAW,EAAE,4BAA4B;YACzC,MAAM,EAAE,CAAC,uBAAuB,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,CAAC;SACpF;QACD;YACE,KAAK,EAAE,cAAc;YACrB,OAAO,EAAE,+BAA+B;YACxC,WAAW,EAAE,4BAA4B;YACzC,MAAM,EAAE,CAAC,mBAAmB,EAAE,kBAAkB,EAAE,oBAAoB,CAAC;SACxE;QACD;YACE,KAAK,EAAE,gBAAgB;YACvB,OAAO,EAAE,wDAAwD;YACjE,WAAW,EAAE,4BAA4B;YACzC,MAAM,EAAE,CAAC,qBAAqB,EAAE,0BAA0B,CAAC;SAC5D;QACD;YACE,KAAK,EAAE,4BAA4B;YACnC,OAAO,EAAE,oBAAoB;YAC7B,WAAW,EAAE,sDAAsD;YACnE,MAAM,EAAE,CAAC,6CAA6C,EAAE,4CAA4C,CAAC;SACtG;KACF;IACD,iBAAiB,EAAE;QACjB,8CAA8C;QAC9C,0CAA0C;QAC1C,0BAA0B;QAC1B,wCAAwC;KACzC;IACD,gBAAgB,EAAE;QAChB,wCAAwC;QACxC,oBAAoB;QACpB,4CAA4C;QAC5C,oDAAoD;QACpD,6DAA6D;KAC9D;IACD,cAAc,EAAE;QACd,MAAM,EAAE,sEAAsE;QAC9E,SAAS,EAAE,iFAAiF;QAC5F,WAAW,EAAE,oGAAoG;QACjH,OAAO,EAAE,sIAAsI;KAChJ;CACO,CAAC;AAEX,MAAM,UAAU,eAAe,CAAC,KAAY;IAC1C,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACvD,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,4BAA4B,gBAAgB,CAAC,aAAa,IAAI,CAAC,CAAC;IAC5E,OAAO,CAAC,GAAG,CAAC,kBAAkB,gBAAgB,CAAC,YAAY,EAAE,CAAC,CAAC;IAC/D,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACzB,KAAK,MAAM,KAAK,IAAI,gBAAgB,CAAC,MAAM,EAAE,CAAC;QAC5C,OAAO,CAAC,GAAG,CACT,KAAK,KAAK,CAAC,GAAG,KAAK,KAAK,CAAC,OAAO,MAAM,KAAK,CAAC,WAAW,MAAM,KAAK,CAAC,YAAY,gBAAgB,KAAK,CAAC,cAAc,EAAE,CACtH,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC9B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,YAAY,CAAC,EAAE,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IACxC,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAC/E,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,MAAM,CAAC,QAAQ,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACvF,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,OAAO,CAAC,QAAQ,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9E,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM;YAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC1G,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAC7C,KAAK,MAAM,IAAI,IAAI,gBAAgB,CAAC,eAAe,EAAE,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,WAAW,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClF,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IACpC,KAAK,MAAM,IAAI,IAAI,gBAAgB,CAAC,gBAAgB;QAAE,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IAEjF,OAAO,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC;IACrF,OAAO,CAAC,GAAG,CAAC,sGAAsG,CAAC,CAAC;AACtH,CAAC"}
1
+ {"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../src/capabilities.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { type Hex } from 'viem';
2
+ import { type Flags } from '../flags.js';
3
+ /** Resolve exact creation initcode. ABX deliberately does not compile Solidity or infer constructor
4
+ * types: Foundry produces the artifact and the caller supplies already-ABI-encoded constructor
5
+ * arguments. That keeps the transaction reviewable and toolchain-neutral. */
6
+ export declare function contractInitcode(flags: Flags): Hex;
7
+ export declare function cmdDeployContract(flags: Flags): Promise<void>;
8
+ //# sourceMappingURL=contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src/commands/contract.ts"],"names":[],"mappings":"AAEA,OAAO,EAA0B,KAAK,GAAG,EAAC,MAAM,MAAM,CAAC;AAIvD,OAAO,EAAC,KAAK,KAAK,EAAW,MAAM,aAAa,CAAC;AAgCjD;;6EAE6E;AAC7E,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,GAAG,CAwBlD;AAED,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAgDnE"}
@@ -0,0 +1,114 @@
1
+ import { readFileSync } from 'node:fs';
2
+ import { resolve as resolvePath } from 'node:path';
3
+ import { keccak256 } from 'viem';
4
+ import { resolveChain } from '@artblocks/abx-sdk';
5
+ import { CHAIN, explorerBase } from '../config.js';
6
+ import { sponsoredPreviewAddress } from '../creator-signer.js';
7
+ import { isDryRun } from '../flags.js';
8
+ import { bold, dim, info, ok } from '../output.js';
9
+ import { gatedSend, laneFromFlags } from '../riskgate.js';
10
+ const MAX_INITCODE_BYTES = 49_152;
11
+ function exactHex(value, label, allowEmpty = false) {
12
+ if (typeof value !== 'string')
13
+ throw new Error(`${label} must be a hex string.`);
14
+ const normalized = value.trim();
15
+ if (!/^0x(?:[0-9a-fA-F]{2})*$/.test(normalized)) {
16
+ throw new Error(`${label} must be complete byte-aligned hex (unlinked library placeholders are not deployable).`);
17
+ }
18
+ if (!allowEmpty && normalized === '0x')
19
+ throw new Error(`${label} is empty.`);
20
+ return normalized.toLowerCase();
21
+ }
22
+ function artifactBytecode(path) {
23
+ let parsed;
24
+ try {
25
+ parsed = JSON.parse(readFileSync(resolvePath(path), 'utf8'));
26
+ }
27
+ catch (cause) {
28
+ throw new Error(`Could not read Foundry artifact ${path}: ${cause instanceof Error ? cause.message : String(cause)}`);
29
+ }
30
+ const object = parsed;
31
+ const bytecode = typeof object.bytecode === 'string' ? object.bytecode : object.bytecode?.object;
32
+ return exactHex(bytecode, `bytecode in ${path}`);
33
+ }
34
+ function hexFile(path, label, allowEmpty = false) {
35
+ return exactHex(readFileSync(resolvePath(path), 'utf8'), label, allowEmpty);
36
+ }
37
+ /** Resolve exact creation initcode. ABX deliberately does not compile Solidity or infer constructor
38
+ * types: Foundry produces the artifact and the caller supplies already-ABI-encoded constructor
39
+ * arguments. That keeps the transaction reviewable and toolchain-neutral. */
40
+ export function contractInitcode(flags) {
41
+ const artifact = flags.artifact;
42
+ const initcodeFile = flags.initcode;
43
+ if (Boolean(artifact) === Boolean(initcodeFile)) {
44
+ throw new Error('deploy-contract needs exactly one of --artifact <Foundry JSON> or --initcode <hex file>.');
45
+ }
46
+ const constructorArgs = flags['constructor-args'];
47
+ const constructorArgsFile = flags['constructor-args-file'];
48
+ if (constructorArgs !== undefined && constructorArgsFile !== undefined) {
49
+ throw new Error('Pass constructor arguments once: --constructor-args <hex> or --constructor-args-file <path>.');
50
+ }
51
+ if (initcodeFile && (constructorArgs !== undefined || constructorArgsFile !== undefined)) {
52
+ throw new Error('--initcode is already complete creation bytecode; constructor arguments are accepted only with --artifact.');
53
+ }
54
+ const base = artifact ? artifactBytecode(artifact) : hexFile(initcodeFile, `initcode in ${initcodeFile}`);
55
+ const args = constructorArgsFile
56
+ ? hexFile(constructorArgsFile, `constructor arguments in ${constructorArgsFile}`, true)
57
+ : exactHex(constructorArgs ?? '0x', 'constructor arguments', true);
58
+ const combined = (`0x${base.slice(2)}${args.slice(2)}`);
59
+ const bytes = (combined.length - 2) / 2;
60
+ if (bytes > MAX_INITCODE_BYTES) {
61
+ throw new Error(`Contract initcode is ${bytes} bytes; EIP-3860 permits at most ${MAX_INITCODE_BYTES}.`);
62
+ }
63
+ return combined;
64
+ }
65
+ export async function cmdDeployContract(flags) {
66
+ const data = contractInitcode(flags);
67
+ const bytes = (data.length - 2) / 2;
68
+ const label = flags.label?.trim() || 'custom contract';
69
+ const lane = laneFromFlags(flags);
70
+ const expectedSigner = flags.for;
71
+ const previewSigner = isDryRun(flags) && lane === 'sponsor'
72
+ ? await sponsoredPreviewAddress(CHAIN)
73
+ : expectedSigner;
74
+ const prepared = {
75
+ op: 'deploy-contract',
76
+ to: null,
77
+ data,
78
+ value: '0x0',
79
+ chainId: resolveChain(CHAIN).id,
80
+ summary: `Deploy ${label} from exact EVM initcode`,
81
+ fields: {
82
+ label,
83
+ initcode: `${bytes} bytes`,
84
+ hash: keccak256(data),
85
+ value: '0 ETH',
86
+ },
87
+ };
88
+ info(`${bold('direct CREATE')} · ${bytes} initcode bytes · ${dim(keccak256(data))}`);
89
+ info('ABX sends these exact bytes; it does not compile, link, or infer constructor arguments.');
90
+ const result = await gatedSend(prepared, flags, {
91
+ chainKey: CHAIN,
92
+ expectedSigner: previewSigner,
93
+ });
94
+ if (!result)
95
+ return;
96
+ if (!result.contractAddress) {
97
+ throw new Error(`Transaction ${result.txHash} confirmed but its receipt has no contract address.`);
98
+ }
99
+ ok(`deployed ${label} → ${result.contractAddress}`);
100
+ info(`tx ${explorerBase()}/tx/${result.txHash}`);
101
+ if (flags.json !== undefined) {
102
+ console.log(JSON.stringify({
103
+ command: 'deploy-contract',
104
+ chain: CHAIN,
105
+ chainId: resolveChain(CHAIN).id,
106
+ address: result.contractAddress,
107
+ txHash: result.txHash,
108
+ deployBlock: result.blockNumber.toString(),
109
+ initcodeHash: keccak256(data),
110
+ initcodeBytes: bytes,
111
+ }, null, 2));
112
+ }
113
+ }
114
+ //# sourceMappingURL=contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../src/commands/contract.ts"],"names":[],"mappings":"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"}
@@ -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,EAEL,KAAK,KAAK,EAMX,MAAM,aAAa,CAAC;AAgErB,OAAO,EAA6C,KAAK,IAAI,EAAkB,MAAM,cAAc,CAAC;AA2BpG,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAC,CAGzE,CAAC;AACF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOrD;AAQD;;;gEAGgE;AAChE,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAQ3D;AAED;;;0CAG0C;AAC1C,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED;oFACoF;AACpF,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAGzE;AAED;;;;;GAKG;AACH;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAShH;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAC,GAAG,IAAI,CASzG;AAED,wBAAsB,sBAAsB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,UAAO,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAsB/G;AAMD,wBAAsB,YAAY,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ1G;AAUD,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAEvC;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAmBpE;AAKD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAkB1E;AAID,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAoBxE;AAOD,eAAO,MAAM,gBAAgB,GAAI,OAAO,GAAG,KAAG,iBAI5C,CAAC;AAEH,eAAO,MAAM,gBAAgB,GAAI,KAAK,MAAM,KAAG,iBAO9C,CAAC;AAEF,sFAAsF;AACtF,eAAO,MAAM,aAAa,GAAI,KAAK,MAAM,KAAG,iBAI1C,CAAC;AAEH;sFACsF;AACtF,eAAO,MAAM,qBAAqB,GAAI,UAAU,MAAM,KAAG,iBAIvD,CAAC;AAEH;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,0BAA0B,GACrC,SAAS,MAAM,GAAG,SAAS,EAC3B,WAAW,MAAM,KAChB,iBAID,CAAC;AA6DH,eAAO,MAAM,YAAY,GAAI,GAAG,MAAM,KAAG,OAAsC,CAAC;AAEhF;;;;;;;;GAQG;AACH;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,GAAG,OAAO,CAGvF;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,GAAG,OAAO,CAY/E;AAED;mGACmG;AACnG,MAAM,MAAM,eAAe,GAAG;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;CAAC,CAAC;AAExG,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,gBAAgB,EAC3B,KAAK,UAAO,EAAE,gEAAgE;AAC9E,OAAO,UAAQ,EAAE,gFAAgF;AACjG,SAAS,CAAC,EAAE,eAAe,EAAE,wEAAwE;AACrG,UAAU,CAAC,EAAE,MAAM,EAAE,uFAAuF;AAC5G,YAAY,GAAE,KAAU,GACvB,OAAO,CAAC;IAAC,WAAW,EAAE,iBAAiB,EAAE,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAC,CAAC,CAkGlE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG,gBAAgB,EAAE,CAQlE;AAED,6GAA6G;AAC7G,eAAO,MAAM,qBAAqB,GAAI,OAAO,gBAAgB,EAAE,KAAG,iBAIhE,CAAC;AAEH;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,IAAI,CAY/D;AAED;oEACoE;AACpE,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAGtG;AAED;kGACkG;AAClG,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,EAAE,CAExD;AAED,kGAAkG;AAClG,wBAAgB,cAAc,CAAC,MAAM,EAAE,gBAAgB,EAAE,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAInF;AAGD,wBAAsB,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,iBAiBhE;AAED,wBAAsB,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,iBA2tBhH;AAiBD,wBAAsB,4BAA4B,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAib1H;AAgBD,eAAO,MAAM,YAAY,GAAI,SAAS,MAAM,EAAE,GAAG,iBAAiB,KAAG,qBAKnE,CAAC;AAEH,wBAAsB,eAAe,CAAC,KAAK,EAAE,KAAK,iBAMjD;AAED,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,iBAsnBjG;AAcD,wBAAsB,yBAAyB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAmhBvH;AAiED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM,CAgB7D;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAmB1D;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBxH;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAmDlH;AAED;iGACiG;AACjG,eAAO,MAAM,iBAAiB,aAuB5B,CAAC;AAGH,eAAO,MAAM,mBAAmB,UAkB/B,CAAC;AAEF,eAAO,MAAM,YAAY,aAKvB,CAAC;AAEH,eAAO,MAAM,mBAAmB,aAM9B,CAAC;AASH,eAAO,MAAM,oBAAoB,aAAqG,CAAC;AACvI,eAAO,MAAM,2BAA2B,aAAqE,CAAC;AAuB9G;;;;;oGAKoG;AACpG,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,GAAG,EAAE,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;IACnD,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,KAAG,QAGlE,CAAC;AACF,eAAO,MAAM,cAAc,GAAI,KAAK,MAAM,EAAE,MAAM,GAAG,KAAG,QAEtD,CAAC;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,GAAG,EAAE,KAAG,QAE1C,CAAC;AACH,eAAO,MAAM,WAAW,GAAI,OAAO,GAAG,EAAE,KAAG,QAEzC,CAAC;AACH,eAAO,MAAM,YAAY,GAAI,MAAM,GAAG,KAAG,QAA2F,CAAC;AAErI;;;;6FAI6F;AAC7F,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa,GAAG;IAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;IAAC,MAAM,EAAE,QAAQ,EAAE,CAAA;CAAC,CAS3F;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;IAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;IAAC,KAAK,EAAE,QAAQ,EAAE,CAAA;CAAC,GAAG,QAAQ,EAAE,EAAE,CAkBtH;AAED;;mFAEmF;AACnF,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAC,GAAG,UAAU,EAAE,CAavI;AAED,wBAAsB,aAAa,CAAC,KAAK,EAAE,KAAK,iBAiB/C;AAED,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,iBAi7C/F;AAiBD,eAAO,MAAM,yBAAyB,aAuBpC,CAAC;AAEH,wBAAsB,wBAAwB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA+nBtH;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,4BAA4B,CAChD,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,OAAO,EACf,QAAQ,GAAE,MAAM,GAAG,OAAgB,GAClC,OAAO,CAAC,OAAO,CAAC,CAmClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,CAAC,CAoDlB"}
1
+ {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"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"}
@@ -918,9 +918,9 @@ export async function cmdDeployBody(flags, serveAfter, emit) {
918
918
  throw new Error('--onchain-image needs --image <path> (the bytes to put on-chain)');
919
919
  // On-chain staging is a SEQUENCE (chunk write(s) → the deploy that references the manifest)
920
920
  // where each tx's receipt feeds the next, so it can't be signed offline in one run.
921
- if (lane === 'unsigned' || lane === 'sponsor') {
921
+ if (lane === 'unsigned') {
922
922
  throw new Error('Staging an on-chain image (--onchain-image) needs interactive signing — each chunk tx feeds ' +
923
- "the next. Use the hot lane (a funded key) or --sign (browser wallet); --unsigned and the initial --sponsor beta do not stage content.");
923
+ 'the next. Use the hot lane (a funded key), --sign (browser wallet), or --sponsor; --unsigned cannot stage content.');
924
924
  }
925
925
  step('Stage on-chain image');
926
926
  if (dryRun) {
@@ -1185,6 +1185,32 @@ export async function cmdDeployBody(flags, serveAfter, emit) {
1185
1185
  ok(`deployed ${clone}`);
1186
1186
  info(`tx ${explorerBase()}/tx/${r.txHash} (block ${blockNumber})`);
1187
1187
  }
1188
+ else if (lane === 'sponsor' && onchainImage) {
1189
+ info(`your ABX creator wallet will stage ${approvals - 1} image transaction(s), then deploy the collection in one authorization session.`);
1190
+ const session = await openSponsoredSession(CHAIN);
1191
+ let r;
1192
+ try {
1193
+ if (flags.for && flags.for.toLowerCase() !== session.address.toLowerCase()) {
1194
+ throw new Error(`The ABX creator wallet ${session.address} is not the required signer ${flags.for}.`);
1195
+ }
1196
+ deployerAddr = session.address;
1197
+ const { field, note } = await stageImageField(flags.image, parseCompress(flags.compress), sessionStagingSender(session));
1198
+ bakedImage = field;
1199
+ info(note);
1200
+ const { clone: predicted, params, salt, contentNote } = await buildForDeployer(session.address);
1201
+ info(contentNote);
1202
+ info(noMint ? 'mint: deferred — mint later with `abx mint`' : `mint: token #0 → ${session.address} at deploy`);
1203
+ const sent = await session.send(prepareDeployOneOfOne({ factory, params, salt, chainId: resolveChain(CHAIN).id, clone: predicted }));
1204
+ r = { txHash: sent.txHash, blockNumber: sent.receipt.blockNumber };
1205
+ clone = predicted;
1206
+ }
1207
+ finally {
1208
+ session.close();
1209
+ }
1210
+ blockNumber = r.blockNumber;
1211
+ ok(`deployed ${clone}`);
1212
+ info(`tx ${explorerBase()}/tx/${r.txHash} (block ${blockNumber})`);
1213
+ }
1188
1214
  else if (lane === 'sign' && remoteEthUpload) {
1189
1215
  // wallet lane + Arweave uploads paid by the CONNECTING wallet's Turbo credits (--storage-signer
1190
1216
  // eth + --sign). ONE session signs each upload's data-item (personal_sign, no gas) AND the deploy
@@ -1391,7 +1417,7 @@ export async function cmdDeployBody(flags, serveAfter, emit) {
1391
1417
  // own function rather than threaded into `cmdDeployBody` with `if (copies)` branches throughout —
1392
1418
  // so the 721 lane, above, stays provably byte-identical whether or not editions exist.
1393
1419
  //
1394
- // `--onchain-image` (chunk-store staging) works in the hot and wallet lanes. The cold/unsigned lane
1420
+ // `--onchain-image` (chunk-store staging) works in the hot, wallet, and sponsored lanes. The cold/unsigned lane
1395
1421
  // is refused because each staged chunk transaction feeds the next; it cannot produce one independent
1396
1422
  // offline bundle. Every other custody/signing combination the 1/1 lane supports works identically.
1397
1423
  // (`DEPLOY_EDITION_FLAGS` — the allowlist this function's `refuseStrayFlags` checks against — is
@@ -1444,9 +1470,9 @@ export async function cmdDeployOneOfOneEditionBody(flags, emit) {
1444
1470
  // every lineage, 721 and edition alike. The wallet lane CAN do it (one session signs the chunk
1445
1471
  // writes and the deploy); this edition path was hot-lane-only purely because it lacked that
1446
1472
  // session branch, which it now has.
1447
- if (onchainImage && (lane === 'unsigned' || lane === 'sponsor')) {
1473
+ if (onchainImage && lane === 'unsigned') {
1448
1474
  throw new Error('Staging an on-chain image (--onchain-image) needs interactive signing — each chunk tx feeds ' +
1449
- "the next. Use the hot lane (a funded key) or --sign (browser wallet); --unsigned and the initial --sponsor beta do not stage content.");
1475
+ 'the next. Use the hot lane (a funded key), --sign (browser wallet), or --sponsor; --unsigned cannot stage content.');
1450
1476
  }
1451
1477
  const previewDeployer = dryRun ? await resolvePreviewDeployer(flags, lane) : null;
1452
1478
  const publicClient = makePublicClient({ chainKey: CHAIN });
@@ -1734,6 +1760,30 @@ export async function cmdDeployOneOfOneEditionBody(flags, emit) {
1734
1760
  ok(`deployed ${clone}`);
1735
1761
  info(`tx ${explorerBase()}/tx/${r.txHash} (block ${blockNumber})`);
1736
1762
  }
1763
+ else if (lane === 'sponsor' && onchainImage) {
1764
+ info(`your ABX creator wallet will stage ${approvals - 1} image transaction(s), then deploy the edition in one authorization session.`);
1765
+ const session = await openSponsoredSession(CHAIN);
1766
+ let r;
1767
+ try {
1768
+ if (flags.for && flags.for.toLowerCase() !== session.address.toLowerCase()) {
1769
+ throw new Error(`The ABX creator wallet ${session.address} is not the required signer ${flags.for}.`);
1770
+ }
1771
+ deployerAddr = session.address;
1772
+ await stageOnChainImage(sessionStagingSender(session));
1773
+ const { clone: predicted, params, salt, contentNote } = await buildForDeployer(session.address);
1774
+ info(contentNote);
1775
+ info(mintAmount > 0n ? `mint: ${mintAmount} cop${mintAmount === 1n ? 'y' : 'ies'} of #0 → ${session.address} at deploy` : 'mint: deferred — mint later with `abx mint`');
1776
+ const sent = await session.send(prepareDeployOneOfOneEdition({ factory, params, salt, chainId: resolveChain(CHAIN).id, clone: predicted }));
1777
+ r = { txHash: sent.txHash, blockNumber: sent.receipt.blockNumber };
1778
+ clone = predicted;
1779
+ }
1780
+ finally {
1781
+ session.close();
1782
+ }
1783
+ blockNumber = r.blockNumber;
1784
+ ok(`deployed ${clone}`);
1785
+ info(`tx ${explorerBase()}/tx/${r.txHash} (block ${blockNumber})`);
1786
+ }
1737
1787
  else {
1738
1788
  // wallet lane without staging, or the cold lane: a single deploy tx.
1739
1789
  info(onChainUri ? 'a wallet will become the owner; the token resolves from chain — no URI base is baked in.' : `a wallet will become the owner; URIs point at ${baseUrl}`);
@@ -1832,7 +1882,7 @@ export async function cmdDeployOneOfOneEditionBody(flags, emit) {
1832
1882
  // Mint timing: `--mint-all` / `--mint-count N` / default deferred (deploy → warm → mint).
1833
1883
  // `--minter` delegates minting; `--primary-payee` declares sale proceeds. Content is
1834
1884
  // deployer-independent (hashes / inline bytes / chunk manifests don't depend on the clone
1835
- // address), so it's prepared once; --onchain-image staging runs on the hot or wallet lane
1885
+ // address), so it's prepared once; --onchain-image staging runs on the hot, wallet, or sponsored lane
1836
1886
  // (the cold lane can't stage interactively — same as the 1/1).
1837
1887
  export const tokenFieldOf = (tokenId, f) => ({
1838
1888
  tokenId,
@@ -1910,9 +1960,9 @@ export async function cmdDeploySeriesBody(flags, emit) {
1910
1960
  // Staging is a SEQUENCE (chunk write(s) → the deploy that references each manifest) where each
1911
1961
  // receipt feeds the next, so it can't be signed offline in one pass — reject the cold lane
1912
1962
  // up front (same rule as the 1/1's --onchain-image).
1913
- if (onchainImage && (lane === 'unsigned' || lane === 'sponsor')) {
1963
+ if (onchainImage && lane === 'unsigned') {
1914
1964
  throw new Error('Staging on-chain images (--onchain-image) needs interactive signing — each chunk tx feeds ' +
1915
- "the next. Use the hot lane (a funded key) or --sign (browser wallet); --unsigned and the initial --sponsor beta do not stage content.");
1965
+ 'the next. Use the hot lane (a funded key), --sign (browser wallet), or --sponsor; --unsigned cannot stage content.');
1916
1966
  }
1917
1967
  // Whole-collection WRITE-cost guard: a set of many small files can still sum to an expensive
1918
1968
  // on-chain deploy, so flag the total once, up front. This is a cost signal only — the READ gate is
@@ -2326,6 +2376,25 @@ export async function cmdDeploySeriesBody(flags, emit) {
2326
2376
  }
2327
2377
  ok(`deployed ${clone}`);
2328
2378
  }
2379
+ else if (lane === 'sponsor' && onchainImage) {
2380
+ info(`your ABX creator wallet will stage ${approvals - 1} image transaction(s), then deploy the series in one authorization session.`);
2381
+ const session = await openSponsoredSession(CHAIN);
2382
+ try {
2383
+ if (flags.for && flags.for.toLowerCase() !== session.address.toLowerCase()) {
2384
+ throw new Error(`The ABX creator wallet ${session.address} is not the required signer ${flags.for}.`);
2385
+ }
2386
+ deployerAddr = session.address;
2387
+ await buildFields(sessionStagingSender(session));
2388
+ const { clone: predicted, params, salt } = await buildForDeployer(session.address);
2389
+ const sent = await session.send(prepareDeploySeries({ factory, params, salt, chainId: resolveChain(CHAIN).id, clone: predicted }));
2390
+ clone = predicted;
2391
+ blockNumber = sent.receipt.blockNumber;
2392
+ }
2393
+ finally {
2394
+ session.close();
2395
+ }
2396
+ ok(`deployed ${clone}`);
2397
+ }
2329
2398
  else if (lane === 'sign' && remoteEthUpload) {
2330
2399
  // wallet lane + Arweave uploads paid by the CONNECTING wallet's Turbo credits: ONE session signs
2331
2400
  // each token's upload data-item (personal_sign, no gas) AND the deploy tx. Uploads are deferred to
@@ -2480,7 +2549,7 @@ export async function cmdDeploySeriesBody(flags, emit) {
2480
2549
  //
2481
2550
  // Custody matches the 721 Series lane: off-chain per-file uploads, O(1) uniform-extension directory
2482
2551
  // templates under `--onchain-uri`, inline SVG, hosted resolution, and `--onchain-image` chunk staging.
2483
- // The last uses hot or wallet signing; cold/unsigned staging is refused because each chunk feeds the
2552
+ // The last uses hot, wallet, or sponsored signing; cold/unsigned staging is refused because each chunk feeds the
2484
2553
  // next transaction.
2485
2554
  // (`DEPLOY_SERIES_EDITION_FLAGS` is declared further down, beside `DEPLOY_EDITION_FLAGS` — see that
2486
2555
  // const's own note on why.)
@@ -2535,10 +2604,10 @@ export async function cmdDeployEditionImageBody(flags, emit) {
2535
2604
  const compress = parseCompress(flags.compress);
2536
2605
  // Staging is a SEQUENCE (chunk writes → the deploy that references each manifest) where every tx's
2537
2606
  // receipt feeds the next, so it can't be signed offline in one run. Refused on the cold lane for the
2538
- // same reason on every lineage, 721 and edition alike; hot + wallet both work.
2539
- if (onchainImage && (lane === 'unsigned' || lane === 'sponsor')) {
2607
+ // same reason on every lineage, 721 and edition alike; hot + wallet + sponsor all work.
2608
+ if (onchainImage && lane === 'unsigned') {
2540
2609
  throw new Error('Staging on-chain images (--onchain-image) needs interactive signing — each chunk tx feeds ' +
2541
- "the next. Use the hot lane (a funded key) or --sign (browser wallet); --unsigned and the initial --sponsor beta do not stage content.");
2610
+ 'the next. Use the hot lane (a funded key), --sign (browser wallet), or --sponsor; --unsigned cannot stage content.');
2542
2611
  }
2543
2612
  const publicClient = makePublicClient({ chainKey: CHAIN });
2544
2613
  await assertChainId(CHAIN, { allowUnreachable: dryRun });
@@ -2924,6 +2993,29 @@ export async function cmdDeployEditionImageBody(flags, emit) {
2924
2993
  ok(`deployed ${clone}`);
2925
2994
  info(`tx ${explorerBase()}/tx/${r.txHash} (block ${blockNumber})`);
2926
2995
  }
2996
+ else if (lane === 'sponsor' && onchainImage) {
2997
+ info(`your ABX creator wallet will stage ${approvals - 1} image transaction(s), then deploy the edition series in one authorization session.`);
2998
+ const session = await openSponsoredSession(CHAIN);
2999
+ let r;
3000
+ try {
3001
+ if (flags.for && flags.for.toLowerCase() !== session.address.toLowerCase()) {
3002
+ throw new Error(`The ABX creator wallet ${session.address} is not the required signer ${flags.for}.`);
3003
+ }
3004
+ deployerAddr = session.address;
3005
+ await buildFields(sessionStagingSender(session));
3006
+ const { clone: predicted, params, salt } = await buildForDeployer(session.address);
3007
+ info(`mint: ${effectiveMintCount > 0 ? `${effectiveMintCount} id(s) × ${mintAmount} cop${mintAmount === 1n ? 'y' : 'ies'} → ${session.address} at deploy` : 'deferred'}`);
3008
+ const sent = await session.send(prepareDeployEditionImage({ factory, params, salt, chainId: resolveChain(CHAIN).id, clone: predicted }));
3009
+ r = { txHash: sent.txHash, blockNumber: sent.receipt.blockNumber };
3010
+ clone = predicted;
3011
+ }
3012
+ finally {
3013
+ session.close();
3014
+ }
3015
+ blockNumber = r.blockNumber;
3016
+ ok(`deployed ${clone}`);
3017
+ info(`tx ${explorerBase()}/tx/${r.txHash} (block ${blockNumber})`);
3018
+ }
2927
3019
  else {
2928
3020
  info(onChainUri ? 'a wallet will become the owner; the tokens resolve from chain — no URI base is baked in.' : `a wallet will become the owner; URIs point at ${baseUrl}`);
2929
3021
  const result = await signTx(async (signer) => {