bulletin-deploy 0.18.3 → 0.18.4-rc.1

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-RIX2ONAK.js → chunk-5OJHLX6X.js} +1 -1
  6. package/dist/{chunk-HLRFKKX3.js → chunk-BBKCSI5P.js} +27 -24
  7. package/dist/{chunk-625RAZOO.js → chunk-DE27YHI6.js} +1 -1
  8. package/dist/{chunk-BJ4EAHBA.js → chunk-DOU4O6G4.js} +10 -7
  9. package/dist/{chunk-N3N5OPHD.js → chunk-IWBMW4OF.js} +1 -1
  10. package/dist/{chunk-R3CYLFRY.js → chunk-M5HFOW3Q.js} +68 -4
  11. package/dist/{chunk-TD7YC2J4.js → chunk-NJAFJGUB.js} +2 -2
  12. package/dist/{chunk-OUQHR6K6.js → chunk-PFRIPXIE.js} +1 -1
  13. package/dist/{chunk-OAK27JU4.js → chunk-PVA2PZQM.js} +1 -1
  14. package/dist/{chunk-WW5ZYNRW.js → chunk-RTOCEQDS.js} +3 -3
  15. package/dist/{chunk-WS24CSBF.js → chunk-XAXSK6TJ.js} +5 -1
  16. package/dist/{chunk-ZPRB4VPV.js → chunk-ZBI5XNP3.js} +1 -1
  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 +12 -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-IWBMW4OF.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-XAXSK6TJ.js";
17
+ import "./chunk-PFRIPXIE.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-RTOCEQDS.js";
14
+ import "./chunk-PVA2PZQM.js";
15
+ import "./chunk-XAXSK6TJ.js";
16
+ import "./chunk-PFRIPXIE.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-5OJHLX6X.js";
7
+ import "./chunk-XAXSK6TJ.js";
8
+ import "./chunk-PFRIPXIE.js";
9
9
  export {
10
10
  ChainHealthSampler,
11
11
  DEFAULT_WINDOW_BLOCKS,
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  emitIntervalSpan,
3
3
  setDeployAttribute
4
- } from "./chunk-WS24CSBF.js";
4
+ } from "./chunk-XAXSK6TJ.js";
5
5
 
6
6
  // src/chain-health.ts
7
7
  var DEFAULT_WINDOW_BLOCKS = 10;
@@ -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-ZBI5XNP3.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-RTOCEQDS.js";
36
36
  import {
37
37
  getBestBlockNumber,
38
38
  probeChunks,
39
39
  probeFinalityGap
40
- } from "./chunk-625RAZOO.js";
40
+ } from "./chunk-DE27YHI6.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-NJAFJGUB.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-M5HFOW3Q.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-IWBMW4OF.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-5OJHLX6X.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-XAXSK6TJ.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,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  captureWarning
3
- } from "./chunk-WS24CSBF.js";
3
+ } from "./chunk-XAXSK6TJ.js";
4
4
 
5
5
  // src/chunk-probe.ts
6
6
  import { Twox128, Blake2128Concat, decAnyMetadata, unifyMetadata } from "@polkadot-api/substrate-bindings";
@@ -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-BBKCSI5P.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-M5HFOW3Q.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-XAXSK6TJ.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
  };
@@ -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-XAXSK6TJ.js";
10
10
 
11
11
  // src/auth-config.ts
12
12
  import { existsSync, readdirSync } from "fs";
@@ -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-5OJHLX6X.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-XAXSK6TJ.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). */
@@ -1575,6 +1588,7 @@ var DotNS = class _DotNS {
1575
1588
  await this.resolveAndVerifyTld(options.tld);
1576
1589
  await this.detectProtocolVersion();
1577
1590
  this._subnodeOwnerShape = null;
1591
+ this._shortNamesEnabled = null;
1578
1592
  if (options.dotnsProtocol && options.dotnsProtocol !== this._protocolVersion) {
1579
1593
  this.connected = false;
1580
1594
  throw new Error(
@@ -2126,6 +2140,31 @@ var DotNS = class _DotNS {
2126
2140
  }
2127
2141
  throw new Error("contractTransaction: unreachable \u2014 phone-silence re-arm loop exited without resolving");
2128
2142
  }
2143
+ /**
2144
+ * PopRules gates short names with `require(shortNamesEnabled || baseLength >= 9)`,
2145
+ * independently of personhood.
2146
+ *
2147
+ * `null` means no usable answer and must never be read as "off". Only a decoded
2148
+ * `false` closes the band; refusing a name the chain would accept is worse than
2149
+ * letting the chain refuse it.
2150
+ */
2151
+ async readShortNamesEnabled() {
2152
+ if (this._shortNamesEnabled === null) {
2153
+ try {
2154
+ const value = await withTimeout(
2155
+ this.contractCall(this._contracts.POP_RULES, POP_RULES_ABI, "shortNamesEnabled", []),
2156
+ 3e4,
2157
+ "shortNamesEnabled"
2158
+ );
2159
+ this._shortNamesEnabled = typeof value === "boolean" ? value : "unknown";
2160
+ } catch (e) {
2161
+ if (READ_NEVER_COMPLETED_RE.test(e?.message ?? String(e))) throw e;
2162
+ this._shortNamesEnabled = "unknown";
2163
+ }
2164
+ }
2165
+ setDeployAttribute("deploy.dotns.short_names_enabled", String(this._shortNamesEnabled));
2166
+ return this._shortNamesEnabled === "unknown" ? null : this._shortNamesEnabled;
2167
+ }
2129
2168
  /**
2130
2169
  * #1435: resolve — once per connection — which `setSubnodeOwner` tuple
2131
2170
  * shape this chain's DOTNS_REGISTRY accepts, and cache the verdict on
@@ -3188,7 +3227,7 @@ var DotNS = class _DotNS {
3188
3227
  return await withTimeout(this.contractCall(this._contracts.POP_RULES, POP_RULES_ABI, "isBaseNameReserved", [baseName]), 3e4, "isBaseNameReserved");
3189
3228
  } catch (e) {
3190
3229
  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)) {
3230
+ if (READ_NEVER_COMPLETED_RE.test(msg)) {
3192
3231
  throw e;
3193
3232
  }
3194
3233
  return [false, zeroAddress, 0n];
@@ -3306,6 +3345,26 @@ var DotNS = class _DotNS {
3306
3345
  };
3307
3346
  }
3308
3347
  const targetPopStatus = userStatus;
3348
+ if (isShortNameBand(baselength) && await this.readShortNamesEnabled() === false) {
3349
+ return {
3350
+ label: validated,
3351
+ classification,
3352
+ userStatus,
3353
+ trailingDigits,
3354
+ baselength,
3355
+ isAvailable: true,
3356
+ existingOwner: null,
3357
+ isBaseNameReserved: isReserved,
3358
+ reservationOwner,
3359
+ isTestnet,
3360
+ canProceed: false,
3361
+ reason: shortNamesClosedReason(validated, baselength, this._tld, this._environmentId),
3362
+ plannedAction: "abort",
3363
+ needsPopUpgrade: false,
3364
+ targetPopStatus,
3365
+ signerFreeBalance
3366
+ };
3367
+ }
3309
3368
  if (!canRegister(classification.status, userStatus)) {
3310
3369
  if (userStatus === ProofOfPersonhoodStatus.NoStatus && isTestnet && this._popSelfServe?.stateAwareGuidance === true && this.substrateAddress) {
3311
3370
  const aliasState = await this.classifyAliasAccountState(this.substrateAddress);
@@ -3492,6 +3551,10 @@ var DotNS = class _DotNS {
3492
3551
  const decision = decideRegistrabilityOutcome({ label, registrability, existingOwner: null, selfAddress: this.evmAddress.toLowerCase(), tld: this._tld, profile: this._protocolVersion });
3493
3552
  throw new NonRetryableError(decision.reason);
3494
3553
  }
3554
+ const registerBaseLength = classifyLabelStatus(label, this._protocolVersion).baseLength;
3555
+ if (isShortNameBand(registerBaseLength) && await this.readShortNamesEnabled() === false) {
3556
+ throw new NonRetryableError(shortNamesClosedReason(label, registerBaseLength, this._tld, this._environmentId));
3557
+ }
3495
3558
  const isTestnet = await this.isTestnet();
3496
3559
  const registerAliasState = isTestnet && this._popSelfServe?.stateAwareGuidance === true && this.substrateAddress ? await this.classifyAliasAccountState(this.substrateAddress) : null;
3497
3560
  const rejectIneligible = (statusRequired, userStatus2) => {
@@ -3740,6 +3803,7 @@ export {
3740
3803
  isCommitmentTimingBarerevert,
3741
3804
  classifyDotnsLabel,
3742
3805
  canRegister,
3806
+ shortNamesClosedReason,
3743
3807
  parseDomainName,
3744
3808
  parseProofOfPersonhoodStatus,
3745
3809
  popStatusName,
@@ -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-M5HFOW3Q.js";
8
8
  import {
9
9
  DOT_PRODUCT_ID
10
- } from "./chunk-N3N5OPHD.js";
10
+ } from "./chunk-IWBMW4OF.js";
11
11
 
12
12
  // src/deploy-actors.ts
13
13
  var DEFAULT_WORKER_SURI = DEFAULT_MNEMONIC;
@@ -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.1",
10
10
  private: false,
11
11
  repository: {
12
12
  type: "git",
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  VERSION
3
- } from "./chunk-WS24CSBF.js";
3
+ } from "./chunk-XAXSK6TJ.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-PVA2PZQM.js";
6
6
  import {
7
7
  VERSION,
8
8
  getCurrentSentryTraceId,
9
9
  resolveIssueRepoSlug
10
- } from "./chunk-WS24CSBF.js";
10
+ } from "./chunk-XAXSK6TJ.js";
11
11
  import {
12
12
  package_default
13
- } from "./chunk-OUQHR6K6.js";
13
+ } from "./chunk-PFRIPXIE.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
  package_default,
3
3
  writeRunState
4
- } from "./chunk-OUQHR6K6.js";
4
+ } from "./chunk-PFRIPXIE.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
@@ -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-IWBMW4OF.js";
7
7
 
8
8
  // src/sss-allowance-cache.ts
9
9
  import { mkdir, readFile, writeFile, unlink } from "fs/promises";
@@ -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-DE27YHI6.js";
12
+ import "./chunk-XAXSK6TJ.js";
13
+ import "./chunk-PFRIPXIE.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-BBKCSI5P.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-ZBI5XNP3.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-RTOCEQDS.js";
21
+ import "../chunk-PVA2PZQM.js";
22
+ import "../chunk-DE27YHI6.js";
23
23
  import "../chunk-C2TS5MER.js";
24
- import "../chunk-TD7YC2J4.js";
24
+ import "../chunk-NJAFJGUB.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-M5HFOW3Q.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-IWBMW4OF.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-5OJHLX6X.js";
53
+ import "../chunk-XAXSK6TJ.js";
54
+ import "../chunk-PFRIPXIE.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-ZBI5XNP3.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-IWBMW4OF.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-XAXSK6TJ.js";
17
+ import "../chunk-PFRIPXIE.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-M5HFOW3Q.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-5OJHLX6X.js";
19
+ import "../chunk-XAXSK6TJ.js";
20
+ import "../chunk-PFRIPXIE.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-IWBMW4OF.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-XAXSK6TJ.js";
12
+ import "../chunk-PFRIPXIE.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-NJAFJGUB.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-M5HFOW3Q.js";
10
10
  import "./chunk-SI2ZUOYD.js";
11
11
  import "./chunk-AYAVRPAP.js";
12
- import "./chunk-N3N5OPHD.js";
12
+ import "./chunk-IWBMW4OF.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-5OJHLX6X.js";
17
+ import "./chunk-XAXSK6TJ.js";
18
+ import "./chunk-PFRIPXIE.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-BBKCSI5P.js";
69
70
  import "./chunk-HNJWIY55.js";
70
71
  import "./chunk-M5AKL3FL.js";
71
- import "./chunk-ZPRB4VPV.js";
72
+ import "./chunk-ZBI5XNP3.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-RTOCEQDS.js";
79
+ import "./chunk-PVA2PZQM.js";
80
+ import "./chunk-DE27YHI6.js";
80
81
  import "./chunk-C2TS5MER.js";
81
- import "./chunk-TD7YC2J4.js";
82
+ import "./chunk-NJAFJGUB.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-M5HFOW3Q.js";
86
87
  import "./chunk-SI2ZUOYD.js";
87
88
  import "./chunk-AYAVRPAP.js";
88
- import "./chunk-N3N5OPHD.js";
89
+ import "./chunk-IWBMW4OF.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-5OJHLX6X.js";
97
+ import "./chunk-XAXSK6TJ.js";
98
+ import "./chunk-PFRIPXIE.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). */
@@ -849,6 +851,15 @@ declare class DotNS {
849
851
  feeAsset?: "pgas";
850
852
  phoneLabel?: string;
851
853
  }): Promise<TxResolution>;
854
+ /**
855
+ * PopRules gates short names with `require(shortNamesEnabled || baseLength >= 9)`,
856
+ * independently of personhood.
857
+ *
858
+ * `null` means no usable answer and must never be read as "off". Only a decoded
859
+ * `false` closes the band; refusing a name the chain would accept is worse than
860
+ * letting the chain refuse it.
861
+ */
862
+ private readShortNamesEnabled;
852
863
  /**
853
864
  * #1435: resolve — once per connection — which `setSubnodeOwner` tuple
854
865
  * shape this chain's DOTNS_REGISTRY accepts, and cache the verdict on
@@ -1118,4 +1129,4 @@ declare class DotNS {
1118
1129
  }
1119
1130
  declare const dotns: DotNS;
1120
1131
 
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 };
1132
+ 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-M5HFOW3Q.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-5OJHLX6X.js";
97
+ import "./chunk-XAXSK6TJ.js";
98
+ import "./chunk-PFRIPXIE.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-DOU4O6G4.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-BBKCSI5P.js";
33
33
  import "./chunk-HNJWIY55.js";
34
34
  import "./chunk-M5AKL3FL.js";
35
- import "./chunk-ZPRB4VPV.js";
35
+ import "./chunk-ZBI5XNP3.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-RTOCEQDS.js";
59
+ import "./chunk-PVA2PZQM.js";
60
60
  import {
61
61
  probeChunks
62
- } from "./chunk-625RAZOO.js";
62
+ } from "./chunk-DE27YHI6.js";
63
63
  import "./chunk-C2TS5MER.js";
64
- import "./chunk-TD7YC2J4.js";
64
+ import "./chunk-NJAFJGUB.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-M5HFOW3Q.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-IWBMW4OF.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-5OJHLX6X.js";
104
+ import "./chunk-XAXSK6TJ.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-PFRIPXIE.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-DOU4O6G4.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-BBKCSI5P.js";
10
11
  import "../chunk-HNJWIY55.js";
11
12
  import "../chunk-M5AKL3FL.js";
12
- import "../chunk-ZPRB4VPV.js";
13
+ import "../chunk-ZBI5XNP3.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-RTOCEQDS.js";
20
+ import "../chunk-PVA2PZQM.js";
21
+ import "../chunk-DE27YHI6.js";
21
22
  import "../chunk-C2TS5MER.js";
22
- import "../chunk-TD7YC2J4.js";
23
+ import "../chunk-NJAFJGUB.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-M5HFOW3Q.js";
27
28
  import "../chunk-SI2ZUOYD.js";
28
29
  import "../chunk-AYAVRPAP.js";
29
- import "../chunk-N3N5OPHD.js";
30
+ import "../chunk-IWBMW4OF.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-5OJHLX6X.js";
35
+ import "../chunk-XAXSK6TJ.js";
36
+ import "../chunk-PFRIPXIE.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-XAXSK6TJ.js";
9
+ import "./chunk-PFRIPXIE.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-BBKCSI5P.js";
10
10
  import "./chunk-HNJWIY55.js";
11
11
  import "./chunk-M5AKL3FL.js";
12
- import "./chunk-ZPRB4VPV.js";
12
+ import "./chunk-ZBI5XNP3.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-RTOCEQDS.js";
19
+ import "./chunk-PVA2PZQM.js";
20
+ import "./chunk-DE27YHI6.js";
21
21
  import "./chunk-C2TS5MER.js";
22
- import "./chunk-TD7YC2J4.js";
22
+ import "./chunk-NJAFJGUB.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-M5HFOW3Q.js";
27
27
  import "./chunk-SI2ZUOYD.js";
28
28
  import "./chunk-AYAVRPAP.js";
29
- import "./chunk-N3N5OPHD.js";
29
+ import "./chunk-IWBMW4OF.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-5OJHLX6X.js";
34
+ import "./chunk-XAXSK6TJ.js";
35
+ import "./chunk-PFRIPXIE.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-M5HFOW3Q.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-5OJHLX6X.js";
39
+ import "../chunk-XAXSK6TJ.js";
40
+ import "../chunk-PFRIPXIE.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-M5HFOW3Q.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-5OJHLX6X.js";
11
+ import "../chunk-XAXSK6TJ.js";
12
+ import "../chunk-PFRIPXIE.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-PFRIPXIE.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-ZBI5XNP3.js";
8
8
  import "./chunk-GRPLHUYC.js";
9
- import "./chunk-N3N5OPHD.js";
9
+ import "./chunk-IWBMW4OF.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-XAXSK6TJ.js";
14
+ import "./chunk-PFRIPXIE.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-BBKCSI5P.js";
12
12
  import "./chunk-HNJWIY55.js";
13
13
  import "./chunk-M5AKL3FL.js";
14
- import "./chunk-ZPRB4VPV.js";
14
+ import "./chunk-ZBI5XNP3.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-RTOCEQDS.js";
21
+ import "./chunk-PVA2PZQM.js";
22
+ import "./chunk-DE27YHI6.js";
23
23
  import "./chunk-C2TS5MER.js";
24
- import "./chunk-TD7YC2J4.js";
24
+ import "./chunk-NJAFJGUB.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-M5HFOW3Q.js";
29
29
  import "./chunk-SI2ZUOYD.js";
30
30
  import "./chunk-AYAVRPAP.js";
31
- import "./chunk-N3N5OPHD.js";
31
+ import "./chunk-IWBMW4OF.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-5OJHLX6X.js";
36
+ import "./chunk-XAXSK6TJ.js";
37
+ import "./chunk-PFRIPXIE.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-XAXSK6TJ.js";
45
+ import "./chunk-PFRIPXIE.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-PVA2PZQM.js";
16
+ import "./chunk-XAXSK6TJ.js";
17
+ import "./chunk-PFRIPXIE.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.1",
4
4
  "private": false,
5
5
  "repository": {
6
6
  "type": "git",