bulletin-deploy 0.18.3 → 0.18.4-rc.2

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 (40) hide show
  1. package/bin/bulletin-deploy +1 -0
  2. package/dist/auth-config.js +3 -3
  3. package/dist/bug-report.js +4 -4
  4. package/dist/chain-health.js +3 -3
  5. package/dist/{chunk-OAK27JU4.js → chunk-6TO75DSM.js} +1 -1
  6. package/dist/{chunk-WW5ZYNRW.js → chunk-A4YRVJMN.js} +3 -3
  7. package/dist/{chunk-RIX2ONAK.js → chunk-KFNOKPEZ.js} +1 -1
  8. package/dist/{chunk-TD7YC2J4.js → chunk-KO5LIAMS.js} +2 -2
  9. package/dist/{chunk-625RAZOO.js → chunk-P27K7MWU.js} +1 -1
  10. package/dist/{chunk-ZPRB4VPV.js → chunk-PCQJOYBN.js} +1 -1
  11. package/dist/{chunk-WS24CSBF.js → chunk-PNCFEZSU.js} +5 -1
  12. package/dist/{chunk-R3CYLFRY.js → chunk-QVTHAHEK.js} +72 -4
  13. package/dist/{chunk-OUQHR6K6.js → chunk-SNUKPVXK.js} +1 -1
  14. package/dist/{chunk-N3N5OPHD.js → chunk-W7G7OYKQ.js} +1 -1
  15. package/dist/{chunk-HLRFKKX3.js → chunk-WT6W4U4F.js} +27 -24
  16. package/dist/{chunk-BJ4EAHBA.js → chunk-XN6TMZJA.js} +10 -7
  17. package/dist/chunk-probe.js +3 -3
  18. package/dist/commands/login.js +11 -11
  19. package/dist/commands/logout.js +4 -4
  20. package/dist/commands/transfer.js +4 -4
  21. package/dist/commands/whoami.js +3 -3
  22. package/dist/deploy-actors.js +6 -6
  23. package/dist/deploy.d.ts +2 -1
  24. package/dist/deploy.js +13 -11
  25. package/dist/dotns.d.ts +14 -1
  26. package/dist/dotns.js +6 -4
  27. package/dist/index.js +12 -12
  28. package/dist/manifest/publish.d.ts +12 -5
  29. package/dist/manifest/publish.js +14 -12
  30. package/dist/memory-report.js +2 -2
  31. package/dist/merkle.js +11 -11
  32. package/dist/personhood/bootstrap.js +4 -4
  33. package/dist/personhood/people-client.js +4 -4
  34. package/dist/run-state.js +1 -1
  35. package/dist/sss-allowance-cache.js +4 -4
  36. package/dist/storage-signer.js +11 -11
  37. package/dist/telemetry.d.ts +1 -1
  38. package/dist/telemetry.js +2 -2
  39. package/dist/version-check.js +3 -3
  40. package/package.json +1 -1
@@ -580,6 +580,7 @@ try {
580
580
  rpc: flags.rpc,
581
581
  mnemonic: effectiveMnemonic,
582
582
  derivationPath: flags.derivationPath,
583
+ productName: flags.productName,
583
584
  });
584
585
  } catch (err) {
585
586
  console.error(`Manifest publish failed: ${err?.message ?? err}`);
@@ -9,12 +9,12 @@ import {
9
9
  getPeopleChainEndpoints,
10
10
  hasPersistedSession,
11
11
  resolveBulletinEndpoints
12
- } from "./chunk-N3N5OPHD.js";
12
+ } from "./chunk-W7G7OYKQ.js";
13
13
  import "./chunk-TSPERKUS.js";
14
14
  import "./chunk-HDGD5FYX.js";
15
15
  import "./chunk-ZOC4GITL.js";
16
- import "./chunk-WS24CSBF.js";
17
- import "./chunk-OUQHR6K6.js";
16
+ import "./chunk-PNCFEZSU.js";
17
+ import "./chunk-SNUKPVXK.js";
18
18
  export {
19
19
  DOT_DAPP_ID,
20
20
  DOT_DERIVATION_INDEX,
@@ -10,10 +10,10 @@ import {
10
10
  offerBugReport,
11
11
  scrubSecrets,
12
12
  setDeployContext
13
- } from "./chunk-WW5ZYNRW.js";
14
- import "./chunk-OAK27JU4.js";
15
- import "./chunk-WS24CSBF.js";
16
- import "./chunk-OUQHR6K6.js";
13
+ } from "./chunk-A4YRVJMN.js";
14
+ import "./chunk-6TO75DSM.js";
15
+ import "./chunk-PNCFEZSU.js";
16
+ import "./chunk-SNUKPVXK.js";
17
17
  export {
18
18
  buildCliFlagsSummary,
19
19
  buildLabels,
@@ -3,9 +3,9 @@ import {
3
3
  DEFAULT_WINDOW_BLOCKS,
4
4
  MAX_SPANS_PER_SAMPLER,
5
5
  endpointHost
6
- } from "./chunk-RIX2ONAK.js";
7
- import "./chunk-WS24CSBF.js";
8
- import "./chunk-OUQHR6K6.js";
6
+ } from "./chunk-KFNOKPEZ.js";
7
+ import "./chunk-PNCFEZSU.js";
8
+ import "./chunk-SNUKPVXK.js";
9
9
  export {
10
10
  ChainHealthSampler,
11
11
  DEFAULT_WINDOW_BLOCKS,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  VERSION
3
- } from "./chunk-WS24CSBF.js";
3
+ } from "./chunk-PNCFEZSU.js";
4
4
 
5
5
  // src/version-check.ts
6
6
  import { execSync, execFileSync } from "child_process";
@@ -2,15 +2,15 @@ import {
2
2
  classifyErrorArea,
3
3
  isInteractive,
4
4
  promptYesNo
5
- } from "./chunk-OAK27JU4.js";
5
+ } from "./chunk-6TO75DSM.js";
6
6
  import {
7
7
  VERSION,
8
8
  getCurrentSentryTraceId,
9
9
  resolveIssueRepoSlug
10
- } from "./chunk-WS24CSBF.js";
10
+ } from "./chunk-PNCFEZSU.js";
11
11
  import {
12
12
  package_default
13
- } from "./chunk-OUQHR6K6.js";
13
+ } from "./chunk-SNUKPVXK.js";
14
14
 
15
15
  // src/bug-report.ts
16
16
  import { execSync, execFileSync } from "child_process";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  emitIntervalSpan,
3
3
  setDeployAttribute
4
- } from "./chunk-WS24CSBF.js";
4
+ } from "./chunk-PNCFEZSU.js";
5
5
 
6
6
  // src/chain-health.ts
7
7
  var DEFAULT_WINDOW_BLOCKS = 10;
@@ -4,10 +4,10 @@ import {
4
4
  } from "./chunk-5FLTDWWP.js";
5
5
  import {
6
6
  DEFAULT_MNEMONIC
7
- } from "./chunk-R3CYLFRY.js";
7
+ } from "./chunk-QVTHAHEK.js";
8
8
  import {
9
9
  DOT_PRODUCT_ID
10
- } from "./chunk-N3N5OPHD.js";
10
+ } from "./chunk-W7G7OYKQ.js";
11
11
 
12
12
  // src/deploy-actors.ts
13
13
  var DEFAULT_WORKER_SURI = DEFAULT_MNEMONIC;
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  captureWarning
3
- } from "./chunk-WS24CSBF.js";
3
+ } from "./chunk-PNCFEZSU.js";
4
4
 
5
5
  // src/chunk-probe.ts
6
6
  import { Twox128, Blake2128Concat, decAnyMetadata, unifyMetadata } from "@polkadot-api/substrate-bindings";
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-GRPLHUYC.js";
4
4
  import {
5
5
  DOT_DAPP_ID
6
- } from "./chunk-N3N5OPHD.js";
6
+ } from "./chunk-W7G7OYKQ.js";
7
7
 
8
8
  // src/sss-allowance-cache.ts
9
9
  import { mkdir, readFile, writeFile, unlink } from "fs/promises";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  package_default,
3
3
  writeRunState
4
- } from "./chunk-OUQHR6K6.js";
4
+ } from "./chunk-SNUKPVXK.js";
5
5
 
6
6
  // src/memory-report.ts
7
7
  import * as fs2 from "fs";
@@ -408,6 +408,10 @@ var ERROR_KIND_RULES = [
408
408
  // src/deploy.ts truncate the inner chain error at 100 chars.
409
409
  [/BadProof/i, "chain.bad_proof"],
410
410
  [/heartbeat timeout|WS halt|Unable to connect|ChainHead disjointed|websocket.*closed|socket closed|disconnect/i, "connection"],
411
+ // Our preflight wording and the chain's own revert. Kept separate from
412
+ // pop_required: grouping them would hide a config change behind a label the
413
+ // user can act on.
414
+ [/short names are not on sale on|Short names are not for sale/i, "naming.short_names_closed"],
411
415
  [/requires ProofOfPersonhood(?:Full|Lite|Light),\s*but this signer is NoStatus/i, "naming.pop_required"],
412
416
  [/requires NoStatus,\s*but this signer is ProofOfPersonhood/i, "naming.nostatus_required"],
413
417
  // #1345 (2026-09-01 previewnet TLD change, fixed in #1324): checkTldNodeConsistency's
@@ -13,7 +13,7 @@ import {
13
13
  } from "./chunk-ZOC4GITL.js";
14
14
  import {
15
15
  ChainHealthSampler
16
- } from "./chunk-RIX2ONAK.js";
16
+ } from "./chunk-KFNOKPEZ.js";
17
17
  import {
18
18
  captureWarning,
19
19
  markCodePath,
@@ -21,7 +21,7 @@ import {
21
21
  setDeploySentryTag,
22
22
  truncateAddress,
23
23
  withSpan
24
- } from "./chunk-WS24CSBF.js";
24
+ } from "./chunk-PNCFEZSU.js";
25
25
  import {
26
26
  POP_CONTROLLER_PROBE_ABI,
27
27
  PROTOCOL_PROBE_LABEL,
@@ -378,7 +378,11 @@ var POP_RULES_ABI = [
378
378
  { inputs: [{ name: "name", type: "string" }, { name: "userAddress", type: "address" }], name: "priceWithCheck", outputs: [{ name: "metadata", type: "tuple", components: [{ name: "price", type: "uint256" }, { name: "status", type: "uint8" }, { name: "userStatus", type: "uint8" }, { name: "message", type: "string" }] }], stateMutability: "view", type: "function" },
379
379
  { inputs: [{ name: "name", type: "string" }, { name: "userAddress", type: "address" }], name: "priceWithoutCheck", outputs: [{ name: "metadata", type: "tuple", components: [{ name: "price", type: "uint256" }, { name: "status", type: "uint8" }, { name: "userStatus", type: "uint8" }, { name: "message", type: "string" }] }], stateMutability: "view", type: "function" },
380
380
  { inputs: [{ name: "name", type: "string" }], name: "isBaseNameReserved", outputs: [{ name: "isReserved", type: "bool" }, { name: "reservationOwner", type: "address" }, { name: "expiryTimestamp", type: "uint64" }], stateMutability: "view", type: "function" },
381
- { inputs: [{ name: "name", type: "string" }, { name: "from", type: "address" }, { name: "to", type: "address" }], name: "transferFloor", outputs: [{ name: "", type: "uint256" }], stateMutability: "view", type: "function" }
381
+ { inputs: [{ name: "name", type: "string" }, { name: "from", type: "address" }, { name: "to", type: "address" }], name: "transferFloor", outputs: [{ name: "", type: "uint256" }], stateMutability: "view", type: "function" },
382
+ // Auto-getter for PopRules' `bool public shortNamesEnabled`. Older deployments
383
+ // predate it and revert on this call, which readShortNamesEnabled reports as
384
+ // unknown rather than off.
385
+ { inputs: [], name: "shortNamesEnabled", outputs: [{ name: "", type: "bool" }], stateMutability: "view", type: "function" }
382
386
  // No startingPrice entry here: #1338 rewired the NoStatus deposit-gate read
383
387
  // through this._adapter.popRulesAbi + deposit.functionName, so no call site
384
388
  // reaches startingPrice through this shared ABI any more (grep-verified —
@@ -811,6 +815,13 @@ function exampleNoStatusLabel(label, tld = DEFAULT_TLD) {
811
815
  const base = stripTrailingDigits(label).replace(/[^a-z0-9-]/g, "x");
812
816
  return `${noStatusFallbackBase(base)}.${tld}`;
813
817
  }
818
+ var READ_NEVER_COMPLETED_RE = /timed out after \d+ms|heartbeat timeout|WS halt|Unable to connect|ChainHead disjointed|websocket.*closed|socket closed|disconnect/i;
819
+ function isShortNameBand(baseLength) {
820
+ return baseLength >= 6 && baseLength <= 8;
821
+ }
822
+ function shortNamesClosedReason(label, baseLength, tld, environmentId) {
823
+ return `${label}.${tld} has a ${baseLength}-character base and short names are not on sale on ${environmentId ?? "this environment"}. PopRules.shortNamesEnabled is off, which closes the 6 to 8 character band to every signer, whatever their personhood status. Use a base of 9 characters or more, for example ${exampleNoStatusLabel(label, tld)}.`;
824
+ }
814
825
  function parseDomainName(input, tld = DEFAULT_TLD) {
815
826
  const configuredSuffix = `.${tld}`;
816
827
  let name;
@@ -1352,6 +1363,8 @@ var DotNS = class _DotNS {
1352
1363
  // trusting this default or a previous connection's stale verdict — see
1353
1364
  // the reset next to detectProtocolVersion() below.
1354
1365
  _subnodeOwnerShape = "legacy";
1366
+ // null is unread; "unknown" is a completed read with no usable answer.
1367
+ _shortNamesEnabled = null;
1355
1368
  _onPhoneSigningRequired = void 0;
1356
1369
  _confirmPhoneReady = void 0;
1357
1370
  /** Total phone-signature count for this DotNS session (drives the `total` field passed to confirmPhoneReady). */
@@ -1389,6 +1402,10 @@ var DotNS = class _DotNS {
1389
1402
  this._protocolVersion = profile;
1390
1403
  this._adapter = getAdapter(profile);
1391
1404
  }
1405
+ /** Test-only: pin the cached PopRules.shortNamesEnabled value so a scenario can reach the personhood branch for a 6-8 char label on a chain where the band is closed. */
1406
+ __setShortNamesEnabledForTest(value) {
1407
+ this._shortNamesEnabled = value;
1408
+ }
1392
1409
  /** #1435 test-only: pin the setSubnodeOwner shape cache directly ("legacy", "v07", or null to force resolveSubnodeOwnerShape to re-probe), bypassing the live dry-run probe — for unit tests that stub the probe or exercise the fallback/caching logic itself. */
1393
1410
  __setSubnodeOwnerShapeForTest(shape) {
1394
1411
  this._subnodeOwnerShape = shape;
@@ -1575,6 +1592,7 @@ var DotNS = class _DotNS {
1575
1592
  await this.resolveAndVerifyTld(options.tld);
1576
1593
  await this.detectProtocolVersion();
1577
1594
  this._subnodeOwnerShape = null;
1595
+ this._shortNamesEnabled = null;
1578
1596
  if (options.dotnsProtocol && options.dotnsProtocol !== this._protocolVersion) {
1579
1597
  this.connected = false;
1580
1598
  throw new Error(
@@ -2126,6 +2144,31 @@ var DotNS = class _DotNS {
2126
2144
  }
2127
2145
  throw new Error("contractTransaction: unreachable \u2014 phone-silence re-arm loop exited without resolving");
2128
2146
  }
2147
+ /**
2148
+ * PopRules gates short names with `require(shortNamesEnabled || baseLength >= 9)`,
2149
+ * independently of personhood.
2150
+ *
2151
+ * `null` means no usable answer and must never be read as "off". Only a decoded
2152
+ * `false` closes the band; refusing a name the chain would accept is worse than
2153
+ * letting the chain refuse it.
2154
+ */
2155
+ async readShortNamesEnabled() {
2156
+ if (this._shortNamesEnabled === null) {
2157
+ try {
2158
+ const value = await withTimeout(
2159
+ this.contractCall(this._contracts.POP_RULES, POP_RULES_ABI, "shortNamesEnabled", []),
2160
+ 3e4,
2161
+ "shortNamesEnabled"
2162
+ );
2163
+ this._shortNamesEnabled = typeof value === "boolean" ? value : "unknown";
2164
+ } catch (e) {
2165
+ if (READ_NEVER_COMPLETED_RE.test(e?.message ?? String(e))) throw e;
2166
+ this._shortNamesEnabled = "unknown";
2167
+ }
2168
+ }
2169
+ setDeployAttribute("deploy.dotns.short_names_enabled", String(this._shortNamesEnabled));
2170
+ return this._shortNamesEnabled === "unknown" ? null : this._shortNamesEnabled;
2171
+ }
2129
2172
  /**
2130
2173
  * #1435: resolve — once per connection — which `setSubnodeOwner` tuple
2131
2174
  * shape this chain's DOTNS_REGISTRY accepts, and cache the verdict on
@@ -3188,7 +3231,7 @@ var DotNS = class _DotNS {
3188
3231
  return await withTimeout(this.contractCall(this._contracts.POP_RULES, POP_RULES_ABI, "isBaseNameReserved", [baseName]), 3e4, "isBaseNameReserved");
3189
3232
  } catch (e) {
3190
3233
  const msg = e?.message ?? String(e);
3191
- if (/timed out after \d+ms|heartbeat timeout|WS halt|Unable to connect|ChainHead disjointed|websocket.*closed|socket closed|disconnect/i.test(msg)) {
3234
+ if (READ_NEVER_COMPLETED_RE.test(msg)) {
3192
3235
  throw e;
3193
3236
  }
3194
3237
  return [false, zeroAddress, 0n];
@@ -3306,6 +3349,26 @@ var DotNS = class _DotNS {
3306
3349
  };
3307
3350
  }
3308
3351
  const targetPopStatus = userStatus;
3352
+ if (isShortNameBand(baselength) && await this.readShortNamesEnabled() === false) {
3353
+ return {
3354
+ label: validated,
3355
+ classification,
3356
+ userStatus,
3357
+ trailingDigits,
3358
+ baselength,
3359
+ isAvailable: true,
3360
+ existingOwner: null,
3361
+ isBaseNameReserved: isReserved,
3362
+ reservationOwner,
3363
+ isTestnet,
3364
+ canProceed: false,
3365
+ reason: shortNamesClosedReason(validated, baselength, this._tld, this._environmentId),
3366
+ plannedAction: "abort",
3367
+ needsPopUpgrade: false,
3368
+ targetPopStatus,
3369
+ signerFreeBalance
3370
+ };
3371
+ }
3309
3372
  if (!canRegister(classification.status, userStatus)) {
3310
3373
  if (userStatus === ProofOfPersonhoodStatus.NoStatus && isTestnet && this._popSelfServe?.stateAwareGuidance === true && this.substrateAddress) {
3311
3374
  const aliasState = await this.classifyAliasAccountState(this.substrateAddress);
@@ -3492,6 +3555,10 @@ var DotNS = class _DotNS {
3492
3555
  const decision = decideRegistrabilityOutcome({ label, registrability, existingOwner: null, selfAddress: this.evmAddress.toLowerCase(), tld: this._tld, profile: this._protocolVersion });
3493
3556
  throw new NonRetryableError(decision.reason);
3494
3557
  }
3558
+ const registerBaseLength = classifyLabelStatus(label, this._protocolVersion).baseLength;
3559
+ if (isShortNameBand(registerBaseLength) && await this.readShortNamesEnabled() === false) {
3560
+ throw new NonRetryableError(shortNamesClosedReason(label, registerBaseLength, this._tld, this._environmentId));
3561
+ }
3495
3562
  const isTestnet = await this.isTestnet();
3496
3563
  const registerAliasState = isTestnet && this._popSelfServe?.stateAwareGuidance === true && this.substrateAddress ? await this.classifyAliasAccountState(this.substrateAddress) : null;
3497
3564
  const rejectIneligible = (statusRequired, userStatus2) => {
@@ -3740,6 +3807,7 @@ export {
3740
3807
  isCommitmentTimingBarerevert,
3741
3808
  classifyDotnsLabel,
3742
3809
  canRegister,
3810
+ shortNamesClosedReason,
3743
3811
  parseDomainName,
3744
3812
  parseProofOfPersonhoodStatus,
3745
3813
  popStatusName,
@@ -6,7 +6,7 @@ import * as path from "path";
6
6
  // package.json
7
7
  var package_default = {
8
8
  name: "bulletin-deploy",
9
- version: "0.18.3",
9
+ version: "0.18.4-rc.2",
10
10
  private: false,
11
11
  repository: {
12
12
  type: "git",
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-HDGD5FYX.js";
7
7
  import {
8
8
  VERSION
9
- } from "./chunk-WS24CSBF.js";
9
+ } from "./chunk-PNCFEZSU.js";
10
10
 
11
11
  // src/auth-config.ts
12
12
  import { existsSync, readdirSync } from "fs";
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-M5AKL3FL.js";
7
7
  import {
8
8
  preflightSssAllowance
9
- } from "./chunk-ZPRB4VPV.js";
9
+ } from "./chunk-PCQJOYBN.js";
10
10
  import {
11
11
  statementSigningAccount
12
12
  } from "./chunk-GRPLHUYC.js";
@@ -32,18 +32,18 @@ import {
32
32
  } from "./chunk-WPC2PUCV.js";
33
33
  import {
34
34
  setDeployContext
35
- } from "./chunk-WW5ZYNRW.js";
35
+ } from "./chunk-A4YRVJMN.js";
36
36
  import {
37
37
  getBestBlockNumber,
38
38
  probeChunks,
39
39
  probeFinalityGap
40
- } from "./chunk-625RAZOO.js";
40
+ } from "./chunk-P27K7MWU.js";
41
41
  import {
42
42
  packSection
43
43
  } from "./chunk-C2TS5MER.js";
44
44
  import {
45
45
  resolveStorageSigner
46
- } from "./chunk-TD7YC2J4.js";
46
+ } from "./chunk-KO5LIAMS.js";
47
47
  import {
48
48
  createSlotAccountSigner,
49
49
  requestResourceAllocation
@@ -59,7 +59,7 @@ import {
59
59
  parseDomainName,
60
60
  popStatusName,
61
61
  verifyNonceAdvanced
62
- } from "./chunk-R3CYLFRY.js";
62
+ } from "./chunk-QVTHAHEK.js";
63
63
  import {
64
64
  derivePoolAccounts,
65
65
  detectTestnet,
@@ -73,7 +73,7 @@ import {
73
73
  STALE_SESSION_MESSAGE,
74
74
  getPeopleChainEndpoints,
75
75
  hasPersistedSession
76
- } from "./chunk-N3N5OPHD.js";
76
+ } from "./chunk-W7G7OYKQ.js";
77
77
  import {
78
78
  CLI_NAME
79
79
  } from "./chunk-TSPERKUS.js";
@@ -88,7 +88,7 @@ import {
88
88
  } from "./chunk-ZOC4GITL.js";
89
89
  import {
90
90
  ChainHealthSampler
91
- } from "./chunk-RIX2ONAK.js";
91
+ } from "./chunk-KFNOKPEZ.js";
92
92
  import {
93
93
  VERSION,
94
94
  captureWarning,
@@ -102,7 +102,7 @@ import {
102
102
  truncateAddress,
103
103
  withDeploySpan,
104
104
  withSpan
105
- } from "./chunk-WS24CSBF.js";
105
+ } from "./chunk-PNCFEZSU.js";
106
106
 
107
107
  // src/merkle.ts
108
108
  import * as fs2 from "fs";
@@ -1993,6 +1993,23 @@ async function storeDirectoryV2(directoryPath, opts = {}) {
1993
1993
  }
1994
1994
  return { storageCid, ipfsCid: phaseB.cid, carBytes: phaseB.carBytes };
1995
1995
  }
1996
+ function resolveProductSigner(options) {
1997
+ if (!options.productName) return null;
1998
+ if (options.signer || options.signerAddress || options.suri || options.derivationPath) {
1999
+ throw new NonRetryableError("--product-name derives the signer itself; it cannot be combined with --suri, --derivation-path, or an external signer.");
2000
+ }
2001
+ const productMnemonic = resolveEffectiveMnemonic({
2002
+ flagMnemonic: options.mnemonic,
2003
+ envMnemonic: process.env.MNEMONIC,
2004
+ envDotnsMnemonic: process.env.DOTNS_MNEMONIC
2005
+ });
2006
+ if (!productMnemonic) {
2007
+ throw new NonRetryableError("--product-name needs a mnemonic (--mnemonic or the MNEMONIC env var) to derive the product account from.");
2008
+ }
2009
+ const product = deriveProductSigner(productMnemonic, options.productName);
2010
+ console.log(` Product deployer: ${product.ss58} (product ${product.productName}, index 0)`);
2011
+ return { signer: product.signer, signerAddress: product.ss58, mnemonic: void 0, localSigner: true };
2012
+ }
1996
2013
  function resolveDotnsConnectOptions(options, assetHubEndpoints, autoAccountMapping, contracts, nativeToEthRatio, environmentId, popSelfServe, registerStorageDeposit, tld, network) {
1997
2014
  const tail = assetHubEndpoints && assetHubEndpoints.length > 0 ? { assetHubEndpoints } : {};
1998
2015
  const mappingTail = autoAccountMapping ? { autoAccountMapping } : {};
@@ -2111,22 +2128,7 @@ async function deploy(content, domainName = null, options = {}) {
2111
2128
  if (options.signer && options.signerAddress && options.mnemonic) {
2112
2129
  throw new NonRetryableError("Pass either a mnemonic or an external signer, not both \u2014 they identify the signing account and only one can win.");
2113
2130
  }
2114
- if (options.productName) {
2115
- if (options.signer || options.signerAddress || options.suri || options.derivationPath) {
2116
- throw new NonRetryableError("--product-name derives the signer itself; it cannot be combined with --suri, --derivation-path, or an external signer.");
2117
- }
2118
- const productMnemonic = resolveEffectiveMnemonic({
2119
- flagMnemonic: options.mnemonic,
2120
- envMnemonic: process.env.MNEMONIC,
2121
- envDotnsMnemonic: process.env.DOTNS_MNEMONIC
2122
- });
2123
- if (!productMnemonic) {
2124
- throw new NonRetryableError("--product-name needs a mnemonic (--mnemonic or the MNEMONIC env var) to derive the product account from.");
2125
- }
2126
- const product = deriveProductSigner(productMnemonic, options.productName);
2127
- console.log(` Product deployer: ${product.ss58} (product ${product.productName}, index 0)`);
2128
- options = { ...options, signer: product.signer, signerAddress: product.ss58, mnemonic: void 0, localSigner: true };
2129
- }
2131
+ options = { ...options, ...resolveProductSigner(options) };
2130
2132
  const envId = options.env ?? DEFAULT_ENV_ID;
2131
2133
  let envBulletin = [DEFAULT_BULLETIN_RPC];
2132
2134
  let envAssetHub;
@@ -3140,6 +3142,7 @@ export {
3140
3142
  resolveReproducibleTimestamp,
3141
3143
  applyManifestFetchAttributes,
3142
3144
  storeDirectoryV2,
3145
+ resolveProductSigner,
3143
3146
  resolveDotnsConnectOptions,
3144
3147
  estimateUploadBytes,
3145
3148
  assertSubdomainOwnerMatchesSigner,
@@ -10,16 +10,17 @@ import {
10
10
  encodeContenthash,
11
11
  resolveBulletinEndpoints,
12
12
  resolveDotnsConnectOptions,
13
+ resolveProductSigner,
13
14
  setBulletinEndpoints,
14
15
  storeDirectory,
15
16
  storeFile
16
- } from "./chunk-HLRFKKX3.js";
17
+ } from "./chunk-WT6W4U4F.js";
17
18
  import {
18
19
  DEFAULT_TLD,
19
20
  DotNS,
20
21
  TX_KIND_SKIPPED,
21
22
  stripTldSuffix
22
- } from "./chunk-R3CYLFRY.js";
23
+ } from "./chunk-QVTHAHEK.js";
23
24
  import {
24
25
  DEFAULT_ENV_ID,
25
26
  getPopSelfServeConfig,
@@ -33,7 +34,7 @@ import {
33
34
  setDeployAttribute,
34
35
  withManifestSpan,
35
36
  withSpan
36
- } from "./chunk-WS24CSBF.js";
37
+ } from "./chunk-PNCFEZSU.js";
37
38
 
38
39
  // src/manifest/publish.ts
39
40
  import * as fs2 from "fs/promises";
@@ -323,11 +324,12 @@ async function readFileOrThrow(p, label) {
323
324
  );
324
325
  }
325
326
  }
327
+ function manifestSignerOptions(opts) {
328
+ const product = resolveProductSigner({ productName: opts.productName, mnemonic: opts.mnemonic, derivationPath: opts.derivationPath });
329
+ return product ?? { mnemonic: opts.mnemonic, derivationPath: opts.derivationPath };
330
+ }
326
331
  async function connectDotNS(opts, resolved, popSelfServe, envId) {
327
- const deployOptsShim = {
328
- mnemonic: opts.mnemonic,
329
- derivationPath: opts.derivationPath
330
- };
332
+ const deployOptsShim = manifestSignerOptions(opts);
331
333
  const connectOpts = resolveDotnsConnectOptions(
332
334
  deployOptsShim,
333
335
  resolved.assetHub,
@@ -394,5 +396,6 @@ export {
394
396
  preflightProductConfig,
395
397
  publishManifest,
396
398
  registerOrEnsureResolver,
399
+ manifestSignerOptions,
397
400
  domainMatchesEnvTld
398
401
  };
@@ -8,9 +8,9 @@ import {
8
8
  getBestBlockNumber,
9
9
  probeChunks,
10
10
  probeFinalityGap
11
- } from "./chunk-625RAZOO.js";
12
- import "./chunk-WS24CSBF.js";
13
- import "./chunk-OUQHR6K6.js";
11
+ } from "./chunk-P27K7MWU.js";
12
+ import "./chunk-PNCFEZSU.js";
13
+ import "./chunk-SNUKPVXK.js";
14
14
  export {
15
15
  ChainProbeCrossValidationError,
16
16
  ChainProbeMetadataError,
@@ -4,12 +4,12 @@ import {
4
4
  import {
5
5
  isBenignTeardownError,
6
6
  waitForBulletinAuthorization
7
- } from "../chunk-HLRFKKX3.js";
7
+ } from "../chunk-WT6W4U4F.js";
8
8
  import "../chunk-HNJWIY55.js";
9
9
  import "../chunk-M5AKL3FL.js";
10
10
  import {
11
11
  preflightSssAllowance
12
- } from "../chunk-ZPRB4VPV.js";
12
+ } from "../chunk-PCQJOYBN.js";
13
13
  import {
14
14
  statementSigningAccount
15
15
  } from "../chunk-GRPLHUYC.js";
@@ -17,11 +17,11 @@ import "../chunk-IW3X2MJF.js";
17
17
  import "../chunk-LPTKBQII.js";
18
18
  import "../chunk-3MAIF2SF.js";
19
19
  import "../chunk-WPC2PUCV.js";
20
- import "../chunk-WW5ZYNRW.js";
21
- import "../chunk-OAK27JU4.js";
22
- import "../chunk-625RAZOO.js";
20
+ import "../chunk-A4YRVJMN.js";
21
+ import "../chunk-6TO75DSM.js";
22
+ import "../chunk-P27K7MWU.js";
23
23
  import "../chunk-C2TS5MER.js";
24
- import "../chunk-TD7YC2J4.js";
24
+ import "../chunk-KO5LIAMS.js";
25
25
  import "../chunk-JQKKMUCT.js";
26
26
  import {
27
27
  BULLETIN_RESOURCE,
@@ -33,7 +33,7 @@ import {
33
33
  import {
34
34
  renderLoginStatus
35
35
  } from "../chunk-RIRDBSBG.js";
36
- import "../chunk-R3CYLFRY.js";
36
+ import "../chunk-QVTHAHEK.js";
37
37
  import "../chunk-SI2ZUOYD.js";
38
38
  import "../chunk-AYAVRPAP.js";
39
39
  import {
@@ -41,7 +41,7 @@ import {
41
41
  getAuthClient,
42
42
  getPeopleChainEndpoints,
43
43
  resolveBulletinEndpoints
44
- } from "../chunk-N3N5OPHD.js";
44
+ } from "../chunk-W7G7OYKQ.js";
45
45
  import {
46
46
  CLI_NAME
47
47
  } from "../chunk-TSPERKUS.js";
@@ -49,9 +49,9 @@ import {
49
49
  loadEnvironments
50
50
  } from "../chunk-HDGD5FYX.js";
51
51
  import "../chunk-ZOC4GITL.js";
52
- import "../chunk-RIX2ONAK.js";
53
- import "../chunk-WS24CSBF.js";
54
- import "../chunk-OUQHR6K6.js";
52
+ import "../chunk-KFNOKPEZ.js";
53
+ import "../chunk-PNCFEZSU.js";
54
+ import "../chunk-SNUKPVXK.js";
55
55
  import "../chunk-7I3MTGOR.js";
56
56
 
57
57
  // src/commands/login.ts
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  clearSssAllowanceCache
3
- } from "../chunk-ZPRB4VPV.js";
3
+ } from "../chunk-PCQJOYBN.js";
4
4
  import "../chunk-GRPLHUYC.js";
5
5
  import "../chunk-JQKKMUCT.js";
6
6
  import "../chunk-5FLTDWWP.js";
@@ -9,12 +9,12 @@ import {
9
9
  } from "../chunk-RIRDBSBG.js";
10
10
  import {
11
11
  getAuthClient
12
- } from "../chunk-N3N5OPHD.js";
12
+ } from "../chunk-W7G7OYKQ.js";
13
13
  import "../chunk-TSPERKUS.js";
14
14
  import "../chunk-HDGD5FYX.js";
15
15
  import "../chunk-ZOC4GITL.js";
16
- import "../chunk-WS24CSBF.js";
17
- import "../chunk-OUQHR6K6.js";
16
+ import "../chunk-PNCFEZSU.js";
17
+ import "../chunk-SNUKPVXK.js";
18
18
 
19
19
  // src/commands/logout.ts
20
20
  function formatLogout(status) {
@@ -3,7 +3,7 @@ import {
3
3
  DEFAULT_TLD,
4
4
  DotNS,
5
5
  parseDomainName
6
- } from "../chunk-R3CYLFRY.js";
6
+ } from "../chunk-QVTHAHEK.js";
7
7
  import "../chunk-SI2ZUOYD.js";
8
8
  import "../chunk-AYAVRPAP.js";
9
9
  import {
@@ -15,9 +15,9 @@ import {
15
15
  resolveEndpoints
16
16
  } from "../chunk-HDGD5FYX.js";
17
17
  import "../chunk-ZOC4GITL.js";
18
- import "../chunk-RIX2ONAK.js";
19
- import "../chunk-WS24CSBF.js";
20
- import "../chunk-OUQHR6K6.js";
18
+ import "../chunk-KFNOKPEZ.js";
19
+ import "../chunk-PNCFEZSU.js";
20
+ import "../chunk-SNUKPVXK.js";
21
21
  import "../chunk-7I3MTGOR.js";
22
22
 
23
23
  // src/commands/transfer.ts
@@ -2,14 +2,14 @@ import {
2
2
  STALE_SESSION_MESSAGE,
3
3
  getAuthClient,
4
4
  hasPersistedSession
5
- } from "../chunk-N3N5OPHD.js";
5
+ } from "../chunk-W7G7OYKQ.js";
6
6
  import {
7
7
  CLI_NAME
8
8
  } from "../chunk-TSPERKUS.js";
9
9
  import "../chunk-HDGD5FYX.js";
10
10
  import "../chunk-ZOC4GITL.js";
11
- import "../chunk-WS24CSBF.js";
12
- import "../chunk-OUQHR6K6.js";
11
+ import "../chunk-PNCFEZSU.js";
12
+ import "../chunk-SNUKPVXK.js";
13
13
 
14
14
  // src/commands/whoami.ts
15
15
  function formatWhoami(addresses) {
@@ -2,20 +2,20 @@ import {
2
2
  MainnetDefaultWorkerError,
3
3
  resolveDeployActors,
4
4
  resolveStorageSigner
5
- } from "./chunk-TD7YC2J4.js";
5
+ } from "./chunk-KO5LIAMS.js";
6
6
  import "./chunk-JQKKMUCT.js";
7
7
  import "./chunk-5FLTDWWP.js";
8
8
  import "./chunk-RIRDBSBG.js";
9
- import "./chunk-R3CYLFRY.js";
9
+ import "./chunk-QVTHAHEK.js";
10
10
  import "./chunk-SI2ZUOYD.js";
11
11
  import "./chunk-AYAVRPAP.js";
12
- import "./chunk-N3N5OPHD.js";
12
+ import "./chunk-W7G7OYKQ.js";
13
13
  import "./chunk-TSPERKUS.js";
14
14
  import "./chunk-HDGD5FYX.js";
15
15
  import "./chunk-ZOC4GITL.js";
16
- import "./chunk-RIX2ONAK.js";
17
- import "./chunk-WS24CSBF.js";
18
- import "./chunk-OUQHR6K6.js";
16
+ import "./chunk-KFNOKPEZ.js";
17
+ import "./chunk-PNCFEZSU.js";
18
+ import "./chunk-SNUKPVXK.js";
19
19
  import "./chunk-7I3MTGOR.js";
20
20
  export {
21
21
  MainnetDefaultWorkerError,
package/dist/deploy.d.ts CHANGED
@@ -621,6 +621,7 @@ interface DeployOptions {
621
621
  reason?: "resign" | "silence";
622
622
  }) => Promise<void>;
623
623
  }
624
+ declare function resolveProductSigner(options: Pick<DeployOptions, "productName" | "mnemonic" | "signer" | "signerAddress" | "suri" | "derivationPath">): Pick<DeployOptions, "signer" | "signerAddress" | "mnemonic" | "localSigner"> | null;
624
625
  declare function resolveDotnsConnectOptions(options: Pick<DeployOptions, "mnemonic" | "derivationPath" | "signer" | "signerAddress">, assetHubEndpoints?: string[], autoAccountMapping?: boolean, contracts?: Record<string, string>, nativeToEthRatio?: bigint, environmentId?: string, popSelfServe?: PopSelfServeConfig | null, registerStorageDeposit?: bigint, tld?: string, network?: string): Pick<DotNSConnectOptions, "signer" | "signerAddress" | "mnemonic" | "derivationPath" | "assetHubEndpoints" | "autoAccountMapping" | "contracts" | "nativeToEthRatio" | "environmentId" | "popSelfServe" | "registerStorageDeposit" | "tld" | "network">;
625
626
  declare function estimateUploadBytes(content: DeployContent): Promise<number | null>;
626
627
  /**
@@ -722,4 +723,4 @@ declare function computePhoneSigningSteps(dotnsPreflight: {
722
723
  needsPopUpgrade: boolean;
723
724
  } | null): string[];
724
725
 
725
- export { BLAKE2B_256_MULTIHASH_CODE, BULLETIN_ENDPOINTS, type BitswapErrorVariant, type BitswapProbeResult, CHUNK_MORTALITY_PERIOD, type ChainError, DEFAULT_BULLETIN_RPC, DEFAULT_POOL_SIZE, type DeployContent, type DeployOptions, type DeployResult, ENCRYPT_KEY_LEN, ENCRYPT_MAGIC, ENCRYPT_NONCE_LEN, ENCRYPT_PBKDF2_ITERATIONS, ENCRYPT_SALT_LEN, ENCRYPT_TAG_LEN, NonRetryableError, PhoneSignatureStep, SHA256_MULTIHASH_CODE, type SizeDecision, type StoreDirectoryOptions, WS_HEARTBEAT_TIMEOUT_MS, __assignDenseNoncesForTest, __chunkFailureErrorForTest, __selectStorageProviderModeForTest, __storeChunkForTest, __waitForChainLivenessForTest, applyManifestFetchAttributes, assertSubdomainOwnerMatchesSigner, browserUrlFor, buildFilesMap, checkDeploySize, chooseSignerInput, chunk, computePhoneSigningSteps, computeStorageCid, createCID, deploy, deriveRootSigner, describeSlotFallbackReason, detectFramework, encodeContenthash, encryptContent, estimateUploadBytes, extractInvalidTransactionVariant, formatStorageSignerLine, formatSubdomainParentError, formatTransferModeDotnsLine, formatTransferModeStorageSignerLine, friendlyChainError, hasIPFS, interpretBitswapResult, isBenignTeardownError, isConnectionError, isPhoneSignerActive, makeBulletinStatusHandler, merkleize, nonInteractivePhoneConfirmationError, partitionFinalityProbe, probeP2pRetrieval, reconcileTimedOutChunk, resolveBulletinEndpoints, resolveDotnsConnectOptions, resolveEffectiveMnemonic, resolveEnvId, resolveReproducibleTimestamp, retryBudgetExhausted, setBulletinEndpoints, setWsHaltCallback, shouldHandoverName, shouldPublishManifest, storeChunkedContent, storeDirectory, storeDirectoryV2, storeFile };
726
+ export { BLAKE2B_256_MULTIHASH_CODE, BULLETIN_ENDPOINTS, type BitswapErrorVariant, type BitswapProbeResult, CHUNK_MORTALITY_PERIOD, type ChainError, DEFAULT_BULLETIN_RPC, DEFAULT_POOL_SIZE, type DeployContent, type DeployOptions, type DeployResult, ENCRYPT_KEY_LEN, ENCRYPT_MAGIC, ENCRYPT_NONCE_LEN, ENCRYPT_PBKDF2_ITERATIONS, ENCRYPT_SALT_LEN, ENCRYPT_TAG_LEN, NonRetryableError, PhoneSignatureStep, SHA256_MULTIHASH_CODE, type SizeDecision, type StoreDirectoryOptions, WS_HEARTBEAT_TIMEOUT_MS, __assignDenseNoncesForTest, __chunkFailureErrorForTest, __selectStorageProviderModeForTest, __storeChunkForTest, __waitForChainLivenessForTest, applyManifestFetchAttributes, assertSubdomainOwnerMatchesSigner, browserUrlFor, buildFilesMap, checkDeploySize, chooseSignerInput, chunk, computePhoneSigningSteps, computeStorageCid, createCID, deploy, deriveRootSigner, describeSlotFallbackReason, detectFramework, encodeContenthash, encryptContent, estimateUploadBytes, extractInvalidTransactionVariant, formatStorageSignerLine, formatSubdomainParentError, formatTransferModeDotnsLine, formatTransferModeStorageSignerLine, friendlyChainError, hasIPFS, interpretBitswapResult, isBenignTeardownError, isConnectionError, isPhoneSignerActive, makeBulletinStatusHandler, merkleize, nonInteractivePhoneConfirmationError, partitionFinalityProbe, probeP2pRetrieval, reconcileTimedOutChunk, resolveBulletinEndpoints, resolveDotnsConnectOptions, resolveEffectiveMnemonic, resolveEnvId, resolveProductSigner, resolveReproducibleTimestamp, retryBudgetExhausted, setBulletinEndpoints, setWsHaltCallback, shouldHandoverName, shouldPublishManifest, storeChunkedContent, storeDirectory, storeDirectoryV2, storeFile };
package/dist/deploy.js CHANGED
@@ -55,6 +55,7 @@ import {
55
55
  resolveDotnsConnectOptions,
56
56
  resolveEffectiveMnemonic,
57
57
  resolveEnvId,
58
+ resolveProductSigner,
58
59
  resolveReproducibleTimestamp,
59
60
  retryBudgetExhausted,
60
61
  setBulletinEndpoints,
@@ -65,36 +66,36 @@ import {
65
66
  storeDirectory,
66
67
  storeDirectoryV2,
67
68
  storeFile
68
- } from "./chunk-HLRFKKX3.js";
69
+ } from "./chunk-WT6W4U4F.js";
69
70
  import "./chunk-HNJWIY55.js";
70
71
  import "./chunk-M5AKL3FL.js";
71
- import "./chunk-ZPRB4VPV.js";
72
+ import "./chunk-PCQJOYBN.js";
72
73
  import "./chunk-GRPLHUYC.js";
73
74
  import "./chunk-IW3X2MJF.js";
74
75
  import "./chunk-LPTKBQII.js";
75
76
  import "./chunk-3MAIF2SF.js";
76
77
  import "./chunk-WPC2PUCV.js";
77
- import "./chunk-WW5ZYNRW.js";
78
- import "./chunk-OAK27JU4.js";
79
- import "./chunk-625RAZOO.js";
78
+ import "./chunk-A4YRVJMN.js";
79
+ import "./chunk-6TO75DSM.js";
80
+ import "./chunk-P27K7MWU.js";
80
81
  import "./chunk-C2TS5MER.js";
81
- import "./chunk-TD7YC2J4.js";
82
+ import "./chunk-KO5LIAMS.js";
82
83
  import "./chunk-JQKKMUCT.js";
83
84
  import "./chunk-5FLTDWWP.js";
84
85
  import "./chunk-RIRDBSBG.js";
85
- import "./chunk-R3CYLFRY.js";
86
+ import "./chunk-QVTHAHEK.js";
86
87
  import "./chunk-SI2ZUOYD.js";
87
88
  import "./chunk-AYAVRPAP.js";
88
- import "./chunk-N3N5OPHD.js";
89
+ import "./chunk-W7G7OYKQ.js";
89
90
  import "./chunk-TSPERKUS.js";
90
91
  import "./chunk-HDGD5FYX.js";
91
92
  import {
92
93
  EXIT_CODE_NO_RETRY,
93
94
  NonRetryableError
94
95
  } from "./chunk-ZOC4GITL.js";
95
- import "./chunk-RIX2ONAK.js";
96
- import "./chunk-WS24CSBF.js";
97
- import "./chunk-OUQHR6K6.js";
96
+ import "./chunk-KFNOKPEZ.js";
97
+ import "./chunk-PNCFEZSU.js";
98
+ import "./chunk-SNUKPVXK.js";
98
99
  import "./chunk-7I3MTGOR.js";
99
100
  export {
100
101
  BLAKE2B_256_MULTIHASH_CODE,
@@ -155,6 +156,7 @@ export {
155
156
  resolveDotnsConnectOptions,
156
157
  resolveEffectiveMnemonic,
157
158
  resolveEnvId,
159
+ resolveProductSigner,
158
160
  resolveReproducibleTimestamp,
159
161
  retryBudgetExhausted,
160
162
  setBulletinEndpoints,
package/dist/dotns.d.ts CHANGED
@@ -492,6 +492,7 @@ declare function classifyDotnsLabel(label: string, tld?: string, profile?: Dotns
492
492
  message: string;
493
493
  };
494
494
  declare function canRegister(requiredStatus: number, userStatus: number): boolean;
495
+ declare function shortNamesClosedReason(label: string, baseLength: number, tld: string, environmentId: string | null | undefined): string;
495
496
  declare function parseDomainName(input: string, tld?: string): ParsedDomainName;
496
497
  declare function parseProofOfPersonhoodStatus(status: string): number;
497
498
  declare function popStatusName(status: number): string;
@@ -644,6 +645,7 @@ declare class DotNS {
644
645
  private _protocolVersion;
645
646
  private _adapter;
646
647
  private _subnodeOwnerShape;
648
+ private _shortNamesEnabled;
647
649
  private _onPhoneSigningRequired;
648
650
  private _confirmPhoneReady;
649
651
  /** Total phone-signature count for this DotNS session (drives the `total` field passed to confirmPhoneReady). */
@@ -669,6 +671,8 @@ declare class DotNS {
669
671
  get protocolVersion(): DotnsAbiProfile;
670
672
  /** Test-only: bypass connect()'s live probe and pin the adapter directly, for unit tests that stub chain calls without going through connect(). */
671
673
  __setProtocolVersionForTest(profile: DotnsAbiProfile): void;
674
+ /** Test-only: pin the cached PopRules.shortNamesEnabled value so a scenario can reach the personhood branch for a 6-8 char label on a chain where the band is closed. */
675
+ __setShortNamesEnabledForTest(value: boolean | "unknown" | null): void;
672
676
  /** #1435 test-only: pin the setSubnodeOwner shape cache directly ("legacy", "v07", or null to force resolveSubnodeOwnerShape to re-probe), bypassing the live dry-run probe — for unit tests that stub the probe or exercise the fallback/caching logic itself. */
673
677
  __setSubnodeOwnerShapeForTest(shape: "legacy" | "v07" | null): void;
674
678
  constructor();
@@ -849,6 +853,15 @@ declare class DotNS {
849
853
  feeAsset?: "pgas";
850
854
  phoneLabel?: string;
851
855
  }): Promise<TxResolution>;
856
+ /**
857
+ * PopRules gates short names with `require(shortNamesEnabled || baseLength >= 9)`,
858
+ * independently of personhood.
859
+ *
860
+ * `null` means no usable answer and must never be read as "off". Only a decoded
861
+ * `false` closes the band; refusing a name the chain would accept is worse than
862
+ * letting the chain refuse it.
863
+ */
864
+ private readShortNamesEnabled;
852
865
  /**
853
866
  * #1435: resolve — once per connection — which `setSubnodeOwner` tuple
854
867
  * shape this chain's DOTNS_REGISTRY accepts, and cache the verdict on
@@ -1118,4 +1131,4 @@ declare class DotNS {
1118
1131
  }
1119
1132
  declare const dotns: DotNS;
1120
1133
 
1121
- export { ATTR_TX_RESOLUTION_KIND, type AliasAccountClassification, type AliasAccountState, type AuthorizationResult, CONNECTION_TIMEOUT_MS, CONTENTHASH_VERIFY_ATTEMPTS, CONTRACTS, ContractDryRunRevertError, DECIMALS, DEFAULT_DOTNS_PROFILE, DEFAULT_MNEMONIC, DEFAULT_TLD, DOTNS_BEST_BLOCK_GRACE_MS, DOTNS_NONCE_CONTENTION_MAX_ATTEMPTS, DOTNS_TX_MAX_ATTEMPTS, type DomainLabelAlternative, DotNS, type DotNSConnectOptions, type DotnsPreflightResult, type DotnsSuccessAction, KNOWN_TLDS, MINIMUM_REGISTER_STORAGE_DEPOSIT, NATIVE_TO_ETH_RATIO, NONCE_ADVANCE_VERIFY_RETRIES, NONCE_ADVANCE_VERIFY_RETRY_INTERVAL_MS, OPERATION_TIMEOUT_MS, type OwnershipResult, PHONE_APPROVAL_MS, PHONE_SILENCE_MAX_REARMS, type ParsedDomainName, type PhoneSignatureStep, PhoneSilenceNonRetryableError, type PriceValidationResult, ProofOfPersonhoodStatus, REVIVE_ADDRESS_ATTEMPTS, RPC_ENDPOINTS, type Registrability, type RegistryDryRunResult, ReviveClientWrapper, TX_CHAIN_TIME_BUDGET_MS, TX_KIND_BEST_BLOCK, TX_KIND_HASH, TX_KIND_NONCE_ADVANCED, TX_KIND_SKIPPED, TX_NO_PROGRESS_MS, TX_TIMEOUT_MS, TX_WALL_CLOCK_CEILING_MS, type TxResolution, VERIFY_EFFECT_CHAIN_SECONDS, WS_HEARTBEAT_TIMEOUT_MS, WatcherSilentNoEventError, __formatContractDryRunFailureForTest, assertNotZeroRecipient, bufferedWeiToNative, buildLabelAlternatives, canRegister, checkTldNodeConsistency, classifyAliasAccountRow, classifyDotnsLabel, classifyRegistrability, classifyTxRetryDecision, classifyWatcherSilentFastFail, computeDomainNode, computeDomainTokenId, computeSubnodeIds, convertToHexString, convertWeiToNative, countTrailingDigits, decideRegistrabilityOutcome, dotns, dotnsRetryBackoffMs, feeFloorFor, fetchNonce, fmtPas, formatDispatchError, formatPersonhoodRemediation, formatPopShortfallReason, formatUnregistrableReason, isCommitmentMature, isCommitmentTimingBarerevert, isNonceContentionAmbiguous, makeRetryStatusFilter, nonceContentionBackoffMs, normalizeOnChainTld, parseDomainName, parseProofOfPersonhoodStatus, pickVerifyEndpoint, popStatusName, reacquireNonceOnContention, registerDepositWei, resolveTldFromRegistryResult, sanitizeDomainLabel, shouldRegateBeforeResign, shouldRetryTxAttempt, shouldSkipTextWrite, stripTldSuffix, stripTrailingDigits, validateDomainLabel, verifyEffectWithGrace, verifyNonceAdvanced, weiToNative, withRetry };
1134
+ export { ATTR_TX_RESOLUTION_KIND, type AliasAccountClassification, type AliasAccountState, type AuthorizationResult, CONNECTION_TIMEOUT_MS, CONTENTHASH_VERIFY_ATTEMPTS, CONTRACTS, ContractDryRunRevertError, DECIMALS, DEFAULT_DOTNS_PROFILE, DEFAULT_MNEMONIC, DEFAULT_TLD, DOTNS_BEST_BLOCK_GRACE_MS, DOTNS_NONCE_CONTENTION_MAX_ATTEMPTS, DOTNS_TX_MAX_ATTEMPTS, type DomainLabelAlternative, DotNS, type DotNSConnectOptions, type DotnsPreflightResult, type DotnsSuccessAction, KNOWN_TLDS, MINIMUM_REGISTER_STORAGE_DEPOSIT, NATIVE_TO_ETH_RATIO, NONCE_ADVANCE_VERIFY_RETRIES, NONCE_ADVANCE_VERIFY_RETRY_INTERVAL_MS, OPERATION_TIMEOUT_MS, type OwnershipResult, PHONE_APPROVAL_MS, PHONE_SILENCE_MAX_REARMS, type ParsedDomainName, type PhoneSignatureStep, PhoneSilenceNonRetryableError, type PriceValidationResult, ProofOfPersonhoodStatus, REVIVE_ADDRESS_ATTEMPTS, RPC_ENDPOINTS, type Registrability, type RegistryDryRunResult, ReviveClientWrapper, TX_CHAIN_TIME_BUDGET_MS, TX_KIND_BEST_BLOCK, TX_KIND_HASH, TX_KIND_NONCE_ADVANCED, TX_KIND_SKIPPED, TX_NO_PROGRESS_MS, TX_TIMEOUT_MS, TX_WALL_CLOCK_CEILING_MS, type TxResolution, VERIFY_EFFECT_CHAIN_SECONDS, WS_HEARTBEAT_TIMEOUT_MS, WatcherSilentNoEventError, __formatContractDryRunFailureForTest, assertNotZeroRecipient, bufferedWeiToNative, buildLabelAlternatives, canRegister, checkTldNodeConsistency, classifyAliasAccountRow, classifyDotnsLabel, classifyRegistrability, classifyTxRetryDecision, classifyWatcherSilentFastFail, computeDomainNode, computeDomainTokenId, computeSubnodeIds, convertToHexString, convertWeiToNative, countTrailingDigits, decideRegistrabilityOutcome, dotns, dotnsRetryBackoffMs, feeFloorFor, fetchNonce, fmtPas, formatDispatchError, formatPersonhoodRemediation, formatPopShortfallReason, formatUnregistrableReason, isCommitmentMature, isCommitmentTimingBarerevert, isNonceContentionAmbiguous, makeRetryStatusFilter, nonceContentionBackoffMs, normalizeOnChainTld, parseDomainName, parseProofOfPersonhoodStatus, pickVerifyEndpoint, popStatusName, reacquireNonceOnContention, registerDepositWei, resolveTldFromRegistryResult, sanitizeDomainLabel, shortNamesClosedReason, shouldRegateBeforeResign, shouldRetryTxAttempt, shouldSkipTextWrite, stripTldSuffix, stripTrailingDigits, validateDomainLabel, verifyEffectWithGrace, verifyNonceAdvanced, weiToNative, withRetry };
package/dist/dotns.js CHANGED
@@ -77,6 +77,7 @@ import {
77
77
  registerDepositWei,
78
78
  resolveTldFromRegistryResult,
79
79
  sanitizeDomainLabel,
80
+ shortNamesClosedReason,
80
81
  shouldRegateBeforeResign,
81
82
  shouldRetryTxAttempt,
82
83
  shouldSkipTextWrite,
@@ -87,14 +88,14 @@ import {
87
88
  verifyNonceAdvanced,
88
89
  weiToNative,
89
90
  withRetry
90
- } from "./chunk-R3CYLFRY.js";
91
+ } from "./chunk-QVTHAHEK.js";
91
92
  import "./chunk-SI2ZUOYD.js";
92
93
  import "./chunk-AYAVRPAP.js";
93
94
  import "./chunk-HDGD5FYX.js";
94
95
  import "./chunk-ZOC4GITL.js";
95
- import "./chunk-RIX2ONAK.js";
96
- import "./chunk-WS24CSBF.js";
97
- import "./chunk-OUQHR6K6.js";
96
+ import "./chunk-KFNOKPEZ.js";
97
+ import "./chunk-PNCFEZSU.js";
98
+ import "./chunk-SNUKPVXK.js";
98
99
  import "./chunk-7I3MTGOR.js";
99
100
  export {
100
101
  ATTR_TX_RESOLUTION_KIND,
@@ -175,6 +176,7 @@ export {
175
176
  registerDepositWei,
176
177
  resolveTldFromRegistryResult,
177
178
  sanitizeDomainLabel,
179
+ shortNamesClosedReason,
178
180
  shouldRegateBeforeResign,
179
181
  shouldRetryTxAttempt,
180
182
  shouldSkipTextWrite,
package/dist/index.js CHANGED
@@ -4,7 +4,7 @@ import {
4
4
  publishManifest,
5
5
  verifyEmbeddedAppManifests,
6
6
  writeEmbeddedAppManifests
7
- } from "./chunk-BJ4EAHBA.js";
7
+ } from "./chunk-XN6TMZJA.js";
8
8
  import {
9
9
  DEFAULT_TEXT_RECORD_BUDGET_BYTES,
10
10
  PLACEHOLDER_CID,
@@ -29,10 +29,10 @@ import {
29
29
  deploy,
30
30
  merkleizeJS,
31
31
  merkleizeWithStableOrder
32
- } from "./chunk-HLRFKKX3.js";
32
+ } from "./chunk-WT6W4U4F.js";
33
33
  import "./chunk-HNJWIY55.js";
34
34
  import "./chunk-M5AKL3FL.js";
35
- import "./chunk-ZPRB4VPV.js";
35
+ import "./chunk-PCQJOYBN.js";
36
36
  import "./chunk-GRPLHUYC.js";
37
37
  import {
38
38
  computeStats,
@@ -55,13 +55,13 @@ import {
55
55
  isVolatilePath,
56
56
  parseManifest
57
57
  } from "./chunk-WPC2PUCV.js";
58
- import "./chunk-WW5ZYNRW.js";
59
- import "./chunk-OAK27JU4.js";
58
+ import "./chunk-A4YRVJMN.js";
59
+ import "./chunk-6TO75DSM.js";
60
60
  import {
61
61
  probeChunks
62
- } from "./chunk-625RAZOO.js";
62
+ } from "./chunk-P27K7MWU.js";
63
63
  import "./chunk-C2TS5MER.js";
64
- import "./chunk-TD7YC2J4.js";
64
+ import "./chunk-KO5LIAMS.js";
65
65
  import "./chunk-JQKKMUCT.js";
66
66
  import "./chunk-5FLTDWWP.js";
67
67
  import "./chunk-RIRDBSBG.js";
@@ -70,7 +70,7 @@ import {
70
70
  DotNS,
71
71
  parseDomainName,
72
72
  sanitizeDomainLabel
73
- } from "./chunk-R3CYLFRY.js";
73
+ } from "./chunk-QVTHAHEK.js";
74
74
  import "./chunk-SI2ZUOYD.js";
75
75
  import {
76
76
  BULLETIN_BLOCKS_PER_DAY,
@@ -86,7 +86,7 @@ import {
86
86
  poolAccountDerivationPath,
87
87
  selectAccount
88
88
  } from "./chunk-AYAVRPAP.js";
89
- import "./chunk-N3N5OPHD.js";
89
+ import "./chunk-W7G7OYKQ.js";
90
90
  import "./chunk-TSPERKUS.js";
91
91
  import {
92
92
  DEFAULT_ENV_ID,
@@ -100,8 +100,8 @@ import {
100
100
  validateContractAddresses
101
101
  } from "./chunk-HDGD5FYX.js";
102
102
  import "./chunk-ZOC4GITL.js";
103
- import "./chunk-RIX2ONAK.js";
104
- import "./chunk-WS24CSBF.js";
103
+ import "./chunk-KFNOKPEZ.js";
104
+ import "./chunk-PNCFEZSU.js";
105
105
  import {
106
106
  VERSION,
107
107
  loadRunState,
@@ -111,7 +111,7 @@ import {
111
111
  shouldSkipStaleWarning,
112
112
  stateFilePath,
113
113
  writeRunState
114
- } from "./chunk-OUQHR6K6.js";
114
+ } from "./chunk-SNUKPVXK.js";
115
115
  import "./chunk-7I3MTGOR.js";
116
116
  export {
117
117
  BULLETIN_BLOCKS_PER_DAY,
@@ -1,14 +1,18 @@
1
+ import { DeployOptions } from '../deploy.js';
1
2
  import { OwnershipResult } from '../dotns.js';
2
3
  import { LoadedProductConfig } from './config-load.js';
3
- import '../personhood/bootstrap.js';
4
+ import 'polkadot-api/ws';
5
+ import 'multiformats/cid';
6
+ import '../manifest.js';
7
+ import '../dotns-protocol.js';
8
+ import '../environments.js';
4
9
  import 'polkadot-api';
10
+ import '../errors.js';
11
+ import '../personhood/bootstrap.js';
5
12
  import '../personhood/bind-personal-id.js';
6
13
  import '../personhood/claim-pgas.js';
7
14
  import '../personhood/bind-paid-alias.js';
8
15
  import '../personhood/chain-prereqs.js';
9
- import '../environments.js';
10
- import '../errors.js';
11
- import '../dotns-protocol.js';
12
16
  import './types.js';
13
17
 
14
18
  /**
@@ -49,6 +53,8 @@ interface PublishManifestOptions {
49
53
  mnemonic?: string;
50
54
  /** Optional Substrate-style derivation path. */
51
55
  derivationPath?: string;
56
+ /** Sign as the RFC-0022 product account, the same key deploy() registers the name with. */
57
+ productName?: string;
52
58
  }
53
59
  interface PublishManifestResult {
54
60
  iconCid: string;
@@ -95,6 +101,7 @@ interface RegisterOrEnsureResolverDeps {
95
101
  declare function registerOrEnsureResolver(dotns: RegisterOrEnsureResolverDeps, ownership: OwnershipResult, execKind: string, baseLabel: string, domain: string): Promise<{
96
102
  registered: boolean;
97
103
  }>;
104
+ declare function manifestSignerOptions(opts: Pick<PublishManifestOptions, "mnemonic" | "derivationPath" | "productName">): Pick<DeployOptions, "mnemonic" | "derivationPath" | "signer" | "signerAddress" | "localSigner">;
98
105
  declare function domainMatchesEnvTld(domain: string, tld: string): boolean;
99
106
 
100
- export { type PublishManifestOptions, type PublishManifestResult, type RegisterOrEnsureResolverDeps, domainMatchesEnvTld, publishManifest, registerOrEnsureResolver };
107
+ export { type PublishManifestOptions, type PublishManifestResult, type RegisterOrEnsureResolverDeps, domainMatchesEnvTld, manifestSignerOptions, publishManifest, registerOrEnsureResolver };
@@ -1,41 +1,43 @@
1
1
  import {
2
2
  domainMatchesEnvTld,
3
+ manifestSignerOptions,
3
4
  publishManifest,
4
5
  registerOrEnsureResolver
5
- } from "../chunk-BJ4EAHBA.js";
6
+ } from "../chunk-XN6TMZJA.js";
6
7
  import "../chunk-RXV677CJ.js";
7
8
  import "../chunk-WEVSXHII.js";
8
9
  import "../chunk-CVQ7DJHG.js";
9
- import "../chunk-HLRFKKX3.js";
10
+ import "../chunk-WT6W4U4F.js";
10
11
  import "../chunk-HNJWIY55.js";
11
12
  import "../chunk-M5AKL3FL.js";
12
- import "../chunk-ZPRB4VPV.js";
13
+ import "../chunk-PCQJOYBN.js";
13
14
  import "../chunk-GRPLHUYC.js";
14
15
  import "../chunk-IW3X2MJF.js";
15
16
  import "../chunk-LPTKBQII.js";
16
17
  import "../chunk-3MAIF2SF.js";
17
18
  import "../chunk-WPC2PUCV.js";
18
- import "../chunk-WW5ZYNRW.js";
19
- import "../chunk-OAK27JU4.js";
20
- import "../chunk-625RAZOO.js";
19
+ import "../chunk-A4YRVJMN.js";
20
+ import "../chunk-6TO75DSM.js";
21
+ import "../chunk-P27K7MWU.js";
21
22
  import "../chunk-C2TS5MER.js";
22
- import "../chunk-TD7YC2J4.js";
23
+ import "../chunk-KO5LIAMS.js";
23
24
  import "../chunk-JQKKMUCT.js";
24
25
  import "../chunk-5FLTDWWP.js";
25
26
  import "../chunk-RIRDBSBG.js";
26
- import "../chunk-R3CYLFRY.js";
27
+ import "../chunk-QVTHAHEK.js";
27
28
  import "../chunk-SI2ZUOYD.js";
28
29
  import "../chunk-AYAVRPAP.js";
29
- import "../chunk-N3N5OPHD.js";
30
+ import "../chunk-W7G7OYKQ.js";
30
31
  import "../chunk-TSPERKUS.js";
31
32
  import "../chunk-HDGD5FYX.js";
32
33
  import "../chunk-ZOC4GITL.js";
33
- import "../chunk-RIX2ONAK.js";
34
- import "../chunk-WS24CSBF.js";
35
- import "../chunk-OUQHR6K6.js";
34
+ import "../chunk-KFNOKPEZ.js";
35
+ import "../chunk-PNCFEZSU.js";
36
+ import "../chunk-SNUKPVXK.js";
36
37
  import "../chunk-7I3MTGOR.js";
37
38
  export {
38
39
  domainMatchesEnvTld,
40
+ manifestSignerOptions,
39
41
  publishManifest,
40
42
  registerOrEnsureResolver
41
43
  };
@@ -5,8 +5,8 @@ import {
5
5
  maybeWriteMemoryReport,
6
6
  safeHeap,
7
7
  sampleFromBytes
8
- } from "./chunk-WS24CSBF.js";
9
- import "./chunk-OUQHR6K6.js";
8
+ } from "./chunk-PNCFEZSU.js";
9
+ import "./chunk-SNUKPVXK.js";
10
10
  export {
11
11
  DEFAULT_THRESHOLD_MB,
12
12
  buildMemoryReport,
package/dist/merkle.js CHANGED
@@ -6,33 +6,33 @@ import {
6
6
  merkleizeKuboBackend,
7
7
  merkleizeWithStableOrder,
8
8
  rebuildOrderedCarFromBytes
9
- } from "./chunk-HLRFKKX3.js";
9
+ } from "./chunk-WT6W4U4F.js";
10
10
  import "./chunk-HNJWIY55.js";
11
11
  import "./chunk-M5AKL3FL.js";
12
- import "./chunk-ZPRB4VPV.js";
12
+ import "./chunk-PCQJOYBN.js";
13
13
  import "./chunk-GRPLHUYC.js";
14
14
  import "./chunk-IW3X2MJF.js";
15
15
  import "./chunk-LPTKBQII.js";
16
16
  import "./chunk-3MAIF2SF.js";
17
17
  import "./chunk-WPC2PUCV.js";
18
- import "./chunk-WW5ZYNRW.js";
19
- import "./chunk-OAK27JU4.js";
20
- import "./chunk-625RAZOO.js";
18
+ import "./chunk-A4YRVJMN.js";
19
+ import "./chunk-6TO75DSM.js";
20
+ import "./chunk-P27K7MWU.js";
21
21
  import "./chunk-C2TS5MER.js";
22
- import "./chunk-TD7YC2J4.js";
22
+ import "./chunk-KO5LIAMS.js";
23
23
  import "./chunk-JQKKMUCT.js";
24
24
  import "./chunk-5FLTDWWP.js";
25
25
  import "./chunk-RIRDBSBG.js";
26
- import "./chunk-R3CYLFRY.js";
26
+ import "./chunk-QVTHAHEK.js";
27
27
  import "./chunk-SI2ZUOYD.js";
28
28
  import "./chunk-AYAVRPAP.js";
29
- import "./chunk-N3N5OPHD.js";
29
+ import "./chunk-W7G7OYKQ.js";
30
30
  import "./chunk-TSPERKUS.js";
31
31
  import "./chunk-HDGD5FYX.js";
32
32
  import "./chunk-ZOC4GITL.js";
33
- import "./chunk-RIX2ONAK.js";
34
- import "./chunk-WS24CSBF.js";
35
- import "./chunk-OUQHR6K6.js";
33
+ import "./chunk-KFNOKPEZ.js";
34
+ import "./chunk-PNCFEZSU.js";
35
+ import "./chunk-SNUKPVXK.js";
36
36
  import "./chunk-7I3MTGOR.js";
37
37
  export {
38
38
  buildOrderedCar,
@@ -24,7 +24,7 @@ import {
24
24
  import "../chunk-UPWEOGLQ.js";
25
25
  import {
26
26
  WS_HEARTBEAT_TIMEOUT_MS
27
- } from "../chunk-R3CYLFRY.js";
27
+ } from "../chunk-QVTHAHEK.js";
28
28
  import {
29
29
  DOTNS_CONTEXT_BYTES,
30
30
  PEOPLE_MEMBER_IDENTIFIER_HEX,
@@ -35,9 +35,9 @@ import {
35
35
  loadEnvironments
36
36
  } from "../chunk-HDGD5FYX.js";
37
37
  import "../chunk-ZOC4GITL.js";
38
- import "../chunk-RIX2ONAK.js";
39
- import "../chunk-WS24CSBF.js";
40
- import "../chunk-OUQHR6K6.js";
38
+ import "../chunk-KFNOKPEZ.js";
39
+ import "../chunk-PNCFEZSU.js";
40
+ import "../chunk-SNUKPVXK.js";
41
41
  import "../chunk-7I3MTGOR.js";
42
42
 
43
43
  // src/personhood/bootstrap.ts
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  WS_HEARTBEAT_TIMEOUT_MS
3
- } from "../chunk-R3CYLFRY.js";
3
+ } from "../chunk-QVTHAHEK.js";
4
4
  import "../chunk-SI2ZUOYD.js";
5
5
  import "../chunk-AYAVRPAP.js";
6
6
  import {
7
7
  loadEnvironments
8
8
  } from "../chunk-HDGD5FYX.js";
9
9
  import "../chunk-ZOC4GITL.js";
10
- import "../chunk-RIX2ONAK.js";
11
- import "../chunk-WS24CSBF.js";
12
- import "../chunk-OUQHR6K6.js";
10
+ import "../chunk-KFNOKPEZ.js";
11
+ import "../chunk-PNCFEZSU.js";
12
+ import "../chunk-SNUKPVXK.js";
13
13
  import "../chunk-7I3MTGOR.js";
14
14
 
15
15
  // src/personhood/people-client.ts
package/dist/run-state.js CHANGED
@@ -7,7 +7,7 @@ import {
7
7
  shouldSkipStaleWarning,
8
8
  stateFilePath,
9
9
  writeRunState
10
- } from "./chunk-OUQHR6K6.js";
10
+ } from "./chunk-SNUKPVXK.js";
11
11
  export {
12
12
  VERSION,
13
13
  loadRunState,
@@ -4,14 +4,14 @@ import {
4
4
  preflightSssAllowance,
5
5
  sssPeriodEndSec,
6
6
  writeSssAllowanceCache
7
- } from "./chunk-ZPRB4VPV.js";
7
+ } from "./chunk-PCQJOYBN.js";
8
8
  import "./chunk-GRPLHUYC.js";
9
- import "./chunk-N3N5OPHD.js";
9
+ import "./chunk-W7G7OYKQ.js";
10
10
  import "./chunk-TSPERKUS.js";
11
11
  import "./chunk-HDGD5FYX.js";
12
12
  import "./chunk-ZOC4GITL.js";
13
- import "./chunk-WS24CSBF.js";
14
- import "./chunk-OUQHR6K6.js";
13
+ import "./chunk-PNCFEZSU.js";
14
+ import "./chunk-SNUKPVXK.js";
15
15
  export {
16
16
  clearSssAllowanceCache,
17
17
  isSssAllowanceCacheValid,
@@ -8,33 +8,33 @@ import {
8
8
  waitForBulletinAuthorization,
9
9
  withTransientRetry,
10
10
  writeBulletinSlotKey
11
- } from "./chunk-HLRFKKX3.js";
11
+ } from "./chunk-WT6W4U4F.js";
12
12
  import "./chunk-HNJWIY55.js";
13
13
  import "./chunk-M5AKL3FL.js";
14
- import "./chunk-ZPRB4VPV.js";
14
+ import "./chunk-PCQJOYBN.js";
15
15
  import "./chunk-GRPLHUYC.js";
16
16
  import "./chunk-IW3X2MJF.js";
17
17
  import "./chunk-LPTKBQII.js";
18
18
  import "./chunk-3MAIF2SF.js";
19
19
  import "./chunk-WPC2PUCV.js";
20
- import "./chunk-WW5ZYNRW.js";
21
- import "./chunk-OAK27JU4.js";
22
- import "./chunk-625RAZOO.js";
20
+ import "./chunk-A4YRVJMN.js";
21
+ import "./chunk-6TO75DSM.js";
22
+ import "./chunk-P27K7MWU.js";
23
23
  import "./chunk-C2TS5MER.js";
24
- import "./chunk-TD7YC2J4.js";
24
+ import "./chunk-KO5LIAMS.js";
25
25
  import "./chunk-JQKKMUCT.js";
26
26
  import "./chunk-5FLTDWWP.js";
27
27
  import "./chunk-RIRDBSBG.js";
28
- import "./chunk-R3CYLFRY.js";
28
+ import "./chunk-QVTHAHEK.js";
29
29
  import "./chunk-SI2ZUOYD.js";
30
30
  import "./chunk-AYAVRPAP.js";
31
- import "./chunk-N3N5OPHD.js";
31
+ import "./chunk-W7G7OYKQ.js";
32
32
  import "./chunk-TSPERKUS.js";
33
33
  import "./chunk-HDGD5FYX.js";
34
34
  import "./chunk-ZOC4GITL.js";
35
- import "./chunk-RIX2ONAK.js";
36
- import "./chunk-WS24CSBF.js";
37
- import "./chunk-OUQHR6K6.js";
35
+ import "./chunk-KFNOKPEZ.js";
36
+ import "./chunk-PNCFEZSU.js";
37
+ import "./chunk-SNUKPVXK.js";
38
38
  import "./chunk-7I3MTGOR.js";
39
39
  export {
40
40
  BulletinSlotAuthError,
@@ -79,7 +79,7 @@ declare function isExpectedError(msg: string, variant?: string): boolean;
79
79
  declare function classifyDeployError(msg: string, variant?: string): DeployErrorCategory;
80
80
  declare function classifySadReason(message: string): string;
81
81
  declare function computeDeployOutcome(errorCategory: DeployErrorCategory | null, isSad: boolean, sadReason: string): string;
82
- type DeployErrorKind = 'contract-revert' | 'chain-timeout' | 'nonce-stale' | 'connection' | 'naming.pop_required' | 'naming.nostatus_required' | 'naming.contract_unavailable' | 'naming.contract_function_removed' | 'dotns.abi_decode_empty' | 'naming.already_owned' | 'naming.governance_reserved' | 'naming.subdomain_orphan' | 'naming.tld_mismatch' | 'funding.insufficient_balance' | 'verify.contenthash_mismatch' | 'verify.dagpb_not_finalised' | 'network.recovery_exhausted' | 'account.mapping_pending' | 'chain.api_timeout' | 'chain.tx_timeout' | 'chain.tx_silent' | 'chain.extrinsic_expired' | 'chain.quota_exhausted' | 'chain.bad_proof' | 'signer.message_too_large' | 'storage.rejected' | 'user.aborted' | 'signer.phone_confirmation_unavailable' | 'tool.invariant' | 'unknown';
82
+ type DeployErrorKind = 'contract-revert' | 'chain-timeout' | 'nonce-stale' | 'connection' | 'naming.pop_required' | 'naming.nostatus_required' | 'naming.contract_unavailable' | 'naming.contract_function_removed' | 'dotns.abi_decode_empty' | 'naming.already_owned' | 'naming.governance_reserved' | 'naming.short_names_closed' | 'naming.subdomain_orphan' | 'naming.tld_mismatch' | 'funding.insufficient_balance' | 'verify.contenthash_mismatch' | 'verify.dagpb_not_finalised' | 'network.recovery_exhausted' | 'account.mapping_pending' | 'chain.api_timeout' | 'chain.tx_timeout' | 'chain.tx_silent' | 'chain.extrinsic_expired' | 'chain.quota_exhausted' | 'chain.bad_proof' | 'signer.message_too_large' | 'storage.rejected' | 'user.aborted' | 'signer.phone_confirmation_unavailable' | 'tool.invariant' | 'unknown';
83
83
  /**
84
84
  * Every kind that some rule below can produce. Exported so the test suite can
85
85
  * assert the fall-through guard actually covers all of them — without that,
package/dist/telemetry.js CHANGED
@@ -41,8 +41,8 @@ import {
41
41
  withDeploySpan,
42
42
  withManifestSpan,
43
43
  withSpan
44
- } from "./chunk-WS24CSBF.js";
45
- import "./chunk-OUQHR6K6.js";
44
+ } from "./chunk-PNCFEZSU.js";
45
+ import "./chunk-SNUKPVXK.js";
46
46
  export {
47
47
  VERSION,
48
48
  __setDeployRootSpanForTest,
@@ -12,9 +12,9 @@ import {
12
12
  isPreReleaseVersion,
13
13
  preReleaseWarning,
14
14
  promptYesNo
15
- } from "./chunk-OAK27JU4.js";
16
- import "./chunk-WS24CSBF.js";
17
- import "./chunk-OUQHR6K6.js";
15
+ } from "./chunk-6TO75DSM.js";
16
+ import "./chunk-PNCFEZSU.js";
17
+ import "./chunk-SNUKPVXK.js";
18
18
  export {
19
19
  assessVersion,
20
20
  checkNodeVersion,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bulletin-deploy",
3
- "version": "0.18.3",
3
+ "version": "0.18.4-rc.2",
4
4
  "private": false,
5
5
  "repository": {
6
6
  "type": "git",