@parity/product-deploy 0.11.0-rc.1 → 0.11.0-rc.3

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 (34) hide show
  1. package/dist/auth-config.js +3 -3
  2. package/dist/bug-report.js +4 -4
  3. package/dist/{chunk-7OVS6LIV.js → chunk-24KTLZ67.js} +2 -2
  4. package/dist/{chunk-5LJPUNCB.js → chunk-2NLCZQY4.js} +1 -1
  5. package/dist/{chunk-GF2QXG66.js → chunk-3US5OZWX.js} +1 -1
  6. package/dist/{chunk-TK4IZ73C.js → chunk-5KRARO46.js} +1 -1
  7. package/dist/{chunk-LXSTFGUA.js → chunk-CLM3ODFR.js} +3 -3
  8. package/dist/{chunk-AUVTECEP.js → chunk-PH32GINP.js} +1 -1
  9. package/dist/{chunk-PDCSBS5T.js → chunk-PYGCOK67.js} +16 -10
  10. package/dist/{chunk-GRRZ4PUX.js → chunk-REAHYALJ.js} +2 -2
  11. package/dist/{chunk-C5RIKMTP.js → chunk-RFT2I7TB.js} +1 -1
  12. package/dist/{chunk-MDLFWWXZ.js → chunk-RVGCHRLK.js} +1 -1
  13. package/dist/{chunk-A43XBCGD.js → chunk-VZTZEW7C.js} +26 -12
  14. package/dist/chunk-probe.js +3 -3
  15. package/dist/commands/login.js +10 -10
  16. package/dist/commands/logout.js +4 -4
  17. package/dist/commands/transfer.js +3 -3
  18. package/dist/commands/whoami.js +3 -3
  19. package/dist/deploy-actors.js +5 -5
  20. package/dist/deploy.js +10 -10
  21. package/dist/dotns.d.ts +22 -4
  22. package/dist/dotns.js +3 -3
  23. package/dist/index.js +11 -11
  24. package/dist/manifest/publish.js +11 -11
  25. package/dist/memory-report.js +2 -2
  26. package/dist/merkle.js +10 -10
  27. package/dist/personhood/bootstrap.js +3 -3
  28. package/dist/personhood/people-client.js +3 -3
  29. package/dist/run-state.js +1 -1
  30. package/dist/sss-allowance-cache.js +4 -4
  31. package/dist/storage-signer.js +10 -10
  32. package/dist/telemetry.js +2 -2
  33. package/dist/version-check.js +3 -3
  34. package/package.json +1 -1
@@ -9,10 +9,10 @@ import {
9
9
  getPeopleChainEndpoints,
10
10
  hasPersistedSession,
11
11
  resolveBulletinEndpoints
12
- } from "./chunk-MDLFWWXZ.js";
12
+ } from "./chunk-RVGCHRLK.js";
13
13
  import "./chunk-TSPERKUS.js";
14
- import "./chunk-TK4IZ73C.js";
15
- import "./chunk-AUVTECEP.js";
14
+ import "./chunk-5KRARO46.js";
15
+ import "./chunk-PH32GINP.js";
16
16
  import "./chunk-QRKI6MMK.js";
17
17
  import "./chunk-ZOC4GITL.js";
18
18
  export {
@@ -9,10 +9,10 @@ import {
9
9
  offerBugReport,
10
10
  scrubSecrets,
11
11
  setDeployContext
12
- } from "./chunk-LXSTFGUA.js";
13
- import "./chunk-5LJPUNCB.js";
14
- import "./chunk-TK4IZ73C.js";
15
- import "./chunk-AUVTECEP.js";
12
+ } from "./chunk-CLM3ODFR.js";
13
+ import "./chunk-2NLCZQY4.js";
14
+ import "./chunk-5KRARO46.js";
15
+ import "./chunk-PH32GINP.js";
16
16
  export {
17
17
  buildCliFlagsSummary,
18
18
  buildLabels,
@@ -4,10 +4,10 @@ import {
4
4
  } from "./chunk-5FLTDWWP.js";
5
5
  import {
6
6
  DOT_PRODUCT_ID
7
- } from "./chunk-MDLFWWXZ.js";
7
+ } from "./chunk-RVGCHRLK.js";
8
8
  import {
9
9
  DEFAULT_MNEMONIC
10
- } from "./chunk-PDCSBS5T.js";
10
+ } from "./chunk-PYGCOK67.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
  VERSION
3
- } from "./chunk-TK4IZ73C.js";
3
+ } from "./chunk-5KRARO46.js";
4
4
 
5
5
  // src/version-check.ts
6
6
  import { execSync, execFileSync } from "child_process";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  captureWarning
3
- } from "./chunk-TK4IZ73C.js";
3
+ } from "./chunk-5KRARO46.js";
4
4
 
5
5
  // src/chunk-probe.ts
6
6
  import { Twox128, Blake2128Concat, decAnyMetadata, unifyMetadata } from "@polkadot-api/substrate-bindings";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  package_default,
3
3
  writeRunState
4
- } from "./chunk-AUVTECEP.js";
4
+ } from "./chunk-PH32GINP.js";
5
5
 
6
6
  // src/memory-report.ts
7
7
  import * as fs2 from "fs";
@@ -2,15 +2,15 @@ import {
2
2
  classifyErrorArea,
3
3
  isInteractive,
4
4
  promptYesNo
5
- } from "./chunk-5LJPUNCB.js";
5
+ } from "./chunk-2NLCZQY4.js";
6
6
  import {
7
7
  VERSION,
8
8
  getCurrentSentryTraceId,
9
9
  resolveIssueRepoSlug
10
- } from "./chunk-TK4IZ73C.js";
10
+ } from "./chunk-5KRARO46.js";
11
11
  import {
12
12
  package_default
13
- } from "./chunk-AUVTECEP.js";
13
+ } from "./chunk-PH32GINP.js";
14
14
 
15
15
  // src/bug-report.ts
16
16
  import { execSync, execFileSync } from "child_process";
@@ -6,7 +6,7 @@ import * as path from "path";
6
6
  // package.json
7
7
  var package_default = {
8
8
  name: "@parity/product-deploy",
9
- version: "0.11.0-rc.1",
9
+ version: "0.11.0-rc.3",
10
10
  private: false,
11
11
  repository: {
12
12
  type: "git",
@@ -11,7 +11,7 @@ import {
11
11
  setDeploySentryTag,
12
12
  truncateAddress,
13
13
  withSpan
14
- } from "./chunk-TK4IZ73C.js";
14
+ } from "./chunk-5KRARO46.js";
15
15
  import {
16
16
  validateContractAddresses
17
17
  } from "./chunk-QRKI6MMK.js";
@@ -148,12 +148,17 @@ function shouldRetryTxAttempt(attempt, maxAttempts, decision) {
148
148
  }
149
149
  function makeRetryStatusFilter(sink) {
150
150
  let buffered = false;
151
+ let includedSeen = false;
151
152
  return {
152
153
  callback: (status) => {
153
154
  if (status === "failed") {
154
155
  buffered = true;
155
156
  return;
156
157
  }
158
+ if (status === "included") {
159
+ if (includedSeen) return;
160
+ includedSeen = true;
161
+ }
157
162
  sink(status);
158
163
  },
159
164
  flush: () => {
@@ -161,6 +166,7 @@ function makeRetryStatusFilter(sink) {
161
166
  },
162
167
  reset: () => {
163
168
  buffered = false;
169
+ includedSeen = false;
164
170
  }
165
171
  };
166
172
  }
@@ -981,6 +987,8 @@ var DotNS = class {
981
987
  // back to the legacy paseo-only RPC_ENDPOINTS for direct library callers.
982
988
  assetHubEndpoints;
983
989
  _usesExternalSigner = false;
990
+ /** True only when the signer is a real phone/session signer that needs `_awaitPhoneReady`. */
991
+ _isPhoneSigner = false;
984
992
  _localMnemonic = null;
985
993
  _contracts = CONTRACTS;
986
994
  _nativeToEthRatio = NATIVE_TO_ETH_RATIO;
@@ -1049,6 +1057,7 @@ var DotNS = class {
1049
1057
  const rpc = options.rpc || process.env.DOTNS_RPC || this.assetHubEndpoints[0];
1050
1058
  this.rpc = rpc;
1051
1059
  this._usesExternalSigner = Boolean(options.signer && options.signerAddress);
1060
+ this._isPhoneSigner = options.phoneSigner ?? false;
1052
1061
  if (this._usesExternalSigner) {
1053
1062
  this.signer = options.signer;
1054
1063
  this.substrateAddress = options.signerAddress;
@@ -2673,23 +2682,19 @@ var DotNS = class {
2673
2682
  *
2674
2683
  * Behaviour:
2675
2684
  * - confirmPhoneReady provided → await it (counts re-signs via attempt map).
2676
- * - not provided + non-TTY fail fast (NonRetryableError).
2677
- * - not provided + TTY no-op (bin must have supplied the hook; if it did
2678
- * not, the caller proceeds without a gate backward-compat for library
2679
- * consumers that supply neither hook nor TTY check).
2685
+ * - not provided proceed without a gate (opt-in only; an in-process
2686
+ * external signer, e.g. injected PolkadotSigner or mnemonic, needs no
2687
+ * phone gate _usesExternalSigner alone cannot distinguish phone from
2688
+ * in-process).
2680
2689
  * After the gate resolves, fires onPhoneSigningRequired (the "check your
2681
2690
  * phone" notification) so the user knows the request is now being sent.
2682
2691
  */
2683
2692
  async _awaitPhoneReady(label) {
2684
- if (!this._usesExternalSigner) return;
2693
+ if (!this._isPhoneSigner) return;
2685
2694
  const attempt = (this._phoneSignatureAttempts.get(label) ?? 0) + 1;
2686
2695
  this._phoneSignatureAttempts.set(label, attempt);
2687
2696
  if (this._confirmPhoneReady) {
2688
2697
  await this._confirmPhoneReady({ label, attempt, total: this._phoneSignatureTotal });
2689
- } else if (!(process.stdout.isTTY && process.stdin.isTTY)) {
2690
- throw new NonRetryableError(
2691
- "phone signer active but no confirmPhoneReady hook provided and not running in a TTY \u2014 re-run interactively or provide the confirmPhoneReady option"
2692
- );
2693
2698
  }
2694
2699
  this._onPhoneSigningRequired?.(label);
2695
2700
  }
@@ -2701,6 +2706,7 @@ var DotNS = class {
2701
2706
  this.connected = false;
2702
2707
  }
2703
2708
  this._usesExternalSigner = false;
2709
+ this._isPhoneSigner = false;
2704
2710
  this._onPhoneSigningRequired = void 0;
2705
2711
  this._confirmPhoneReady = void 0;
2706
2712
  this._phoneSignatureTotal = 0;
@@ -7,10 +7,10 @@ import {
7
7
  resolveDotnsConnectOptions,
8
8
  storeDirectory,
9
9
  storeFile
10
- } from "./chunk-A43XBCGD.js";
10
+ } from "./chunk-VZTZEW7C.js";
11
11
  import {
12
12
  DotNS
13
- } from "./chunk-PDCSBS5T.js";
13
+ } from "./chunk-PYGCOK67.js";
14
14
  import {
15
15
  getPopSelfServeConfig,
16
16
  loadEnvironments,
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-GRPLHUYC.js";
4
4
  import {
5
5
  DOT_DAPP_ID
6
- } from "./chunk-MDLFWWXZ.js";
6
+ } from "./chunk-RVGCHRLK.js";
7
7
 
8
8
  // src/sss-allowance-cache.ts
9
9
  import { mkdir, readFile, writeFile, unlink } from "fs/promises";
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-TSPERKUS.js";
4
4
  import {
5
5
  VERSION
6
- } from "./chunk-TK4IZ73C.js";
6
+ } from "./chunk-5KRARO46.js";
7
7
  import {
8
8
  loadEnvironments
9
9
  } from "./chunk-QRKI6MMK.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  preflightSssAllowance
3
- } from "./chunk-C5RIKMTP.js";
3
+ } from "./chunk-RFT2I7TB.js";
4
4
  import {
5
5
  statementSigningAccount
6
6
  } from "./chunk-GRPLHUYC.js";
@@ -31,16 +31,16 @@ import {
31
31
  } from "./chunk-S7EM5VMW.js";
32
32
  import {
33
33
  setDeployContext
34
- } from "./chunk-LXSTFGUA.js";
34
+ } from "./chunk-CLM3ODFR.js";
35
35
  import {
36
36
  probeChunks
37
- } from "./chunk-GF2QXG66.js";
37
+ } from "./chunk-3US5OZWX.js";
38
38
  import {
39
39
  packSection
40
40
  } from "./chunk-C2TS5MER.js";
41
41
  import {
42
42
  resolveStorageSigner
43
- } from "./chunk-7OVS6LIV.js";
43
+ } from "./chunk-24KTLZ67.js";
44
44
  import {
45
45
  createSlotAccountSigner,
46
46
  requestResourceAllocation
@@ -49,7 +49,7 @@ import {
49
49
  STALE_SESSION_MESSAGE,
50
50
  getPeopleChainEndpoints,
51
51
  hasPersistedSession
52
- } from "./chunk-MDLFWWXZ.js";
52
+ } from "./chunk-RVGCHRLK.js";
53
53
  import {
54
54
  CLI_NAME
55
55
  } from "./chunk-TSPERKUS.js";
@@ -62,7 +62,7 @@ import {
62
62
  parseDomainName,
63
63
  popStatusName,
64
64
  verifyNonceAdvanced
65
- } from "./chunk-PDCSBS5T.js";
65
+ } from "./chunk-PYGCOK67.js";
66
66
  import {
67
67
  derivePoolAccounts,
68
68
  detectTestnet,
@@ -84,7 +84,7 @@ import {
84
84
  truncateAddress,
85
85
  withDeploySpan,
86
86
  withSpan
87
- } from "./chunk-TK4IZ73C.js";
87
+ } from "./chunk-5KRARO46.js";
88
88
  import {
89
89
  DEFAULT_ENV_ID,
90
90
  getPopSelfServeConfig,
@@ -958,6 +958,7 @@ async function storeChunkedContent(chunks, { client: existingClient, unsafeApi:
958
958
  return { changed, currentNonce };
959
959
  };
960
960
  const uploadTotal = stored.filter((s) => s === null).length;
961
+ const uploadEmittedIndices = /* @__PURE__ */ new Set();
961
962
  let uploadEmitted = 0;
962
963
  const nonceAdvanceIndices = /* @__PURE__ */ new Set();
963
964
  let b = 0;
@@ -983,8 +984,12 @@ async function storeChunkedContent(chunks, { client: existingClient, unsafeApi:
983
984
  const batchPromises = batchChunks.map((chunkData, j) => {
984
985
  const i = batchIndices[j];
985
986
  const nonce = assignedNonces.get(i);
986
- uploadEmitted++;
987
- console.log(` [${uploadEmitted}/${uploadTotal}] chunk ${i} \u2014 ${(chunkData.length / 1024 / 1024).toFixed(2)} MB (nonce: ${nonce})`);
987
+ const isRetry = uploadEmittedIndices.has(i);
988
+ if (!isRetry) {
989
+ uploadEmittedIndices.add(i);
990
+ uploadEmitted++;
991
+ }
992
+ console.log(` [${uploadEmitted}/${uploadTotal}] chunk ${i} \u2014 ${(chunkData.length / 1024 / 1024).toFixed(2)} MB (nonce: ${nonce})${isRetry ? " (retry)" : ""}`);
988
993
  return storeChunk(unsafeApi, signer, chunkData, nonce, ss58, { fetchNonce: fetchNonceOverride });
989
994
  });
990
995
  const results = await Promise.allSettled(batchPromises);
@@ -2103,7 +2108,8 @@ async function deploy(content, domainName = null, options = {}) {
2103
2108
  options = { ...options, storageSigner: slotResult.signer, storageSignerAddress: slotResult.slotAddress };
2104
2109
  console.log(formatStorageSignerLine(slotResult.slotAddress, void 0, slotResult.owned));
2105
2110
  } else {
2106
- console.log(formatStorageSignerLine(null, resolvedUserSession ? "no allowance" : void 0));
2111
+ const storageFailReason = resolvedUserSession ? "no allowance" : options.transferTo ? "transfer mode \u2014 worker signs storage" : void 0;
2112
+ console.log(formatStorageSignerLine(null, storageFailReason));
2107
2113
  }
2108
2114
  }
2109
2115
  initTelemetry();
@@ -2208,6 +2214,9 @@ async function deploy(content, domainName = null, options = {}) {
2208
2214
  const fromName = popStatusName(dotnsPreflight.userStatus);
2209
2215
  console.log(` Your PoP: ${fromName}`);
2210
2216
  console.log(` Domain: ${alreadyOwned ? "owned by you" : "available"}`);
2217
+ if (dotnsPreflight.plannedAction === "already-owned-by-recipient") {
2218
+ console.log(` DotNS signer: owner identity (phone signature required for content update)`);
2219
+ }
2211
2220
  }
2212
2221
  if (!dotnsPreflight.canProceed) {
2213
2222
  throw new NonRetryableError(
@@ -2426,7 +2435,9 @@ async function deploy(content, domainName = null, options = {}) {
2426
2435
  };
2427
2436
  await ownerDotns.connect({
2428
2437
  ...resolveDotnsConnectOptions({ ...options, signer: owner.signer, signerAddress: owner.address }, envAssetHub, envAutoAccountMapping, envContracts, envNativeToEthRatio, envId, envPopSelfServe, envRegisterStorageDeposit),
2429
- confirmPhoneReady: options.confirmPhoneReady
2438
+ confirmPhoneReady: options.confirmPhoneReady,
2439
+ phoneSigner: true
2440
+ // owner path is always a real phone/session signer
2430
2441
  });
2431
2442
  const willPublish = !!(options.publish && parsed && preflightPublishNeeded !== false);
2432
2443
  ownerDotns.setPhoneSignatureTotal(willPublish ? 2 : 1);
@@ -2438,7 +2449,10 @@ async function deploy(content, domainName = null, options = {}) {
2438
2449
  const dotns = new DotNS();
2439
2450
  await dotns.connect({
2440
2451
  ...resolveDotnsConnectOptions(options, envAssetHub, envAutoAccountMapping, envContracts, envNativeToEthRatio, envId, envPopSelfServe, envRegisterStorageDeposit),
2441
- confirmPhoneReady: options.confirmPhoneReady
2452
+ confirmPhoneReady: options.confirmPhoneReady,
2453
+ // Transfer mode: phoneSigner=false (local worker signs in-process, no phone gate).
2454
+ // Genuine phone/session signer: phoneSigner=true (gate enabled). Fixes #980.
2455
+ phoneSigner: phoneSignerActive
2442
2456
  });
2443
2457
  if (phoneSignerActive) {
2444
2458
  dotns.setPhoneSignatureTotal(computePhoneSigningSteps(dotnsPreflight, preflightPublishNeeded).length);
@@ -5,9 +5,9 @@ import {
5
5
  _decodeStorageValue,
6
6
  _resetProbeSession,
7
7
  probeChunks
8
- } from "./chunk-GF2QXG66.js";
9
- import "./chunk-TK4IZ73C.js";
10
- import "./chunk-AUVTECEP.js";
8
+ } from "./chunk-3US5OZWX.js";
9
+ import "./chunk-5KRARO46.js";
10
+ import "./chunk-PH32GINP.js";
11
11
  export {
12
12
  ChainProbeCrossValidationError,
13
13
  ChainProbeMetadataError,
@@ -3,10 +3,10 @@ import {
3
3
  } from "../chunk-J7CYVTAW.js";
4
4
  import {
5
5
  waitForBulletinAuthorization
6
- } from "../chunk-A43XBCGD.js";
6
+ } from "../chunk-VZTZEW7C.js";
7
7
  import {
8
8
  preflightSssAllowance
9
- } from "../chunk-C5RIKMTP.js";
9
+ } from "../chunk-RFT2I7TB.js";
10
10
  import {
11
11
  statementSigningAccount
12
12
  } from "../chunk-GRPLHUYC.js";
@@ -15,11 +15,11 @@ import "../chunk-IW3X2MJF.js";
15
15
  import "../chunk-KOSF5FDO.js";
16
16
  import "../chunk-J3NIXHZZ.js";
17
17
  import "../chunk-S7EM5VMW.js";
18
- import "../chunk-LXSTFGUA.js";
19
- import "../chunk-5LJPUNCB.js";
20
- import "../chunk-GF2QXG66.js";
18
+ import "../chunk-CLM3ODFR.js";
19
+ import "../chunk-2NLCZQY4.js";
20
+ import "../chunk-3US5OZWX.js";
21
21
  import "../chunk-C2TS5MER.js";
22
- import "../chunk-7OVS6LIV.js";
22
+ import "../chunk-24KTLZ67.js";
23
23
  import "../chunk-JQKKMUCT.js";
24
24
  import {
25
25
  BULLETIN_RESOURCE,
@@ -36,15 +36,15 @@ import {
36
36
  getAuthClient,
37
37
  getPeopleChainEndpoints,
38
38
  resolveBulletinEndpoints
39
- } from "../chunk-MDLFWWXZ.js";
39
+ } from "../chunk-RVGCHRLK.js";
40
40
  import {
41
41
  CLI_NAME
42
42
  } from "../chunk-TSPERKUS.js";
43
- import "../chunk-PDCSBS5T.js";
43
+ import "../chunk-PYGCOK67.js";
44
44
  import "../chunk-SI2ZUOYD.js";
45
45
  import "../chunk-4IUTMHVB.js";
46
- import "../chunk-TK4IZ73C.js";
47
- import "../chunk-AUVTECEP.js";
46
+ import "../chunk-5KRARO46.js";
47
+ import "../chunk-PH32GINP.js";
48
48
  import {
49
49
  loadEnvironments
50
50
  } from "../chunk-QRKI6MMK.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  clearSssAllowanceCache
3
- } from "../chunk-C5RIKMTP.js";
3
+ } from "../chunk-RFT2I7TB.js";
4
4
  import "../chunk-GRPLHUYC.js";
5
5
  import "../chunk-JQKKMUCT.js";
6
6
  import "../chunk-5FLTDWWP.js";
@@ -9,10 +9,10 @@ import {
9
9
  } from "../chunk-RIRDBSBG.js";
10
10
  import {
11
11
  getAuthClient
12
- } from "../chunk-MDLFWWXZ.js";
12
+ } from "../chunk-RVGCHRLK.js";
13
13
  import "../chunk-TSPERKUS.js";
14
- import "../chunk-TK4IZ73C.js";
15
- import "../chunk-AUVTECEP.js";
14
+ import "../chunk-5KRARO46.js";
15
+ import "../chunk-PH32GINP.js";
16
16
  import "../chunk-QRKI6MMK.js";
17
17
  import "../chunk-ZOC4GITL.js";
18
18
 
@@ -4,11 +4,11 @@ import {
4
4
  import {
5
5
  DEFAULT_MNEMONIC,
6
6
  DotNS
7
- } from "../chunk-PDCSBS5T.js";
7
+ } from "../chunk-PYGCOK67.js";
8
8
  import "../chunk-SI2ZUOYD.js";
9
9
  import "../chunk-4IUTMHVB.js";
10
- import "../chunk-TK4IZ73C.js";
11
- import "../chunk-AUVTECEP.js";
10
+ import "../chunk-5KRARO46.js";
11
+ import "../chunk-PH32GINP.js";
12
12
  import {
13
13
  getPopSelfServeConfig,
14
14
  loadEnvironments,
@@ -2,12 +2,12 @@ import {
2
2
  STALE_SESSION_MESSAGE,
3
3
  getAuthClient,
4
4
  hasPersistedSession
5
- } from "../chunk-MDLFWWXZ.js";
5
+ } from "../chunk-RVGCHRLK.js";
6
6
  import {
7
7
  CLI_NAME
8
8
  } from "../chunk-TSPERKUS.js";
9
- import "../chunk-TK4IZ73C.js";
10
- import "../chunk-AUVTECEP.js";
9
+ import "../chunk-5KRARO46.js";
10
+ import "../chunk-PH32GINP.js";
11
11
  import "../chunk-QRKI6MMK.js";
12
12
  import "../chunk-ZOC4GITL.js";
13
13
 
@@ -2,17 +2,17 @@ import {
2
2
  MainnetDefaultWorkerError,
3
3
  resolveDeployActors,
4
4
  resolveStorageSigner
5
- } from "./chunk-7OVS6LIV.js";
5
+ } from "./chunk-24KTLZ67.js";
6
6
  import "./chunk-JQKKMUCT.js";
7
7
  import "./chunk-5FLTDWWP.js";
8
8
  import "./chunk-RIRDBSBG.js";
9
- import "./chunk-MDLFWWXZ.js";
9
+ import "./chunk-RVGCHRLK.js";
10
10
  import "./chunk-TSPERKUS.js";
11
- import "./chunk-PDCSBS5T.js";
11
+ import "./chunk-PYGCOK67.js";
12
12
  import "./chunk-SI2ZUOYD.js";
13
13
  import "./chunk-4IUTMHVB.js";
14
- import "./chunk-TK4IZ73C.js";
15
- import "./chunk-AUVTECEP.js";
14
+ import "./chunk-5KRARO46.js";
15
+ import "./chunk-PH32GINP.js";
16
16
  import "./chunk-QRKI6MMK.js";
17
17
  import "./chunk-ZOC4GITL.js";
18
18
  export {
package/dist/deploy.js CHANGED
@@ -50,29 +50,29 @@ import {
50
50
  storeDirectoryV2,
51
51
  storeFile,
52
52
  unpublish
53
- } from "./chunk-A43XBCGD.js";
54
- import "./chunk-C5RIKMTP.js";
53
+ } from "./chunk-VZTZEW7C.js";
54
+ import "./chunk-RFT2I7TB.js";
55
55
  import "./chunk-GRPLHUYC.js";
56
56
  import "./chunk-HOTQDYHD.js";
57
57
  import "./chunk-IW3X2MJF.js";
58
58
  import "./chunk-KOSF5FDO.js";
59
59
  import "./chunk-J3NIXHZZ.js";
60
60
  import "./chunk-S7EM5VMW.js";
61
- import "./chunk-LXSTFGUA.js";
62
- import "./chunk-5LJPUNCB.js";
63
- import "./chunk-GF2QXG66.js";
61
+ import "./chunk-CLM3ODFR.js";
62
+ import "./chunk-2NLCZQY4.js";
63
+ import "./chunk-3US5OZWX.js";
64
64
  import "./chunk-C2TS5MER.js";
65
- import "./chunk-7OVS6LIV.js";
65
+ import "./chunk-24KTLZ67.js";
66
66
  import "./chunk-JQKKMUCT.js";
67
67
  import "./chunk-5FLTDWWP.js";
68
68
  import "./chunk-RIRDBSBG.js";
69
- import "./chunk-MDLFWWXZ.js";
69
+ import "./chunk-RVGCHRLK.js";
70
70
  import "./chunk-TSPERKUS.js";
71
- import "./chunk-PDCSBS5T.js";
71
+ import "./chunk-PYGCOK67.js";
72
72
  import "./chunk-SI2ZUOYD.js";
73
73
  import "./chunk-4IUTMHVB.js";
74
- import "./chunk-TK4IZ73C.js";
75
- import "./chunk-AUVTECEP.js";
74
+ import "./chunk-5KRARO46.js";
75
+ import "./chunk-PH32GINP.js";
76
76
  import "./chunk-QRKI6MMK.js";
77
77
  import {
78
78
  EXIT_CODE_NO_RETRY,
package/dist/dotns.d.ts CHANGED
@@ -49,6 +49,16 @@ interface DotNSConnectOptions {
49
49
  attempt: number;
50
50
  total: number;
51
51
  }) => Promise<void>;
52
+ /**
53
+ * True when the injected signer is a real phone/session signer that needs the
54
+ * human-ready gate (`_awaitPhoneReady`). False (default) for local workers used
55
+ * in transfer mode and mnemonic signers — those sign in-process with no phone.
56
+ *
57
+ * Fixes #980: `_usesExternalSigner` is true for the local transfer-worker too,
58
+ * so it cannot distinguish phone-backed from in-process. This flag is the
59
+ * transfer-aware predicate that `isPhoneSignerActive` in deploy.ts already uses.
60
+ */
61
+ phoneSigner?: boolean;
52
62
  }
53
63
  interface OwnershipResult {
54
64
  owned: boolean;
@@ -154,6 +164,12 @@ declare function shouldRetryTxAttempt(attempt: number, maxAttempts: number, deci
154
164
  * through immediately. Call `reset()` at the top of each retry attempt to
155
165
  * discard a buffered "failed" from the previous attempt.
156
166
  *
167
+ * Also deduplicates "included": papi's txBestBlocksState subscription can fire
168
+ * with found=true multiple times (tx can appear/reappear across best-block
169
+ * updates), so without dedup the status line prints twice (#891). "included" is
170
+ * passed through only once per attempt; reset() clears the seen flag so the
171
+ * next attempt can emit it again if it succeeds through a different path.
172
+ *
157
173
  * Closes two leak paths (issue #704):
158
174
  * 1. Retry-recovered: attempt N emits "failed" before throwing; a later attempt
159
175
  * succeeds → reset() at the top of the next iteration discards the buffer,
@@ -422,6 +438,8 @@ declare class DotNS {
422
438
  connected: boolean;
423
439
  assetHubEndpoints: string[];
424
440
  private _usesExternalSigner;
441
+ /** True only when the signer is a real phone/session signer that needs `_awaitPhoneReady`. */
442
+ private _isPhoneSigner;
425
443
  private _localMnemonic;
426
444
  private _contracts;
427
445
  private _nativeToEthRatio;
@@ -630,10 +648,10 @@ declare class DotNS {
630
648
  *
631
649
  * Behaviour:
632
650
  * - confirmPhoneReady provided → await it (counts re-signs via attempt map).
633
- * - not provided + non-TTY fail fast (NonRetryableError).
634
- * - not provided + TTY no-op (bin must have supplied the hook; if it did
635
- * not, the caller proceeds without a gate backward-compat for library
636
- * consumers that supply neither hook nor TTY check).
651
+ * - not provided proceed without a gate (opt-in only; an in-process
652
+ * external signer, e.g. injected PolkadotSigner or mnemonic, needs no
653
+ * phone gate _usesExternalSigner alone cannot distinguish phone from
654
+ * in-process).
637
655
  * After the gate resolves, fires onPhoneSigningRequired (the "check your
638
656
  * phone" notification) so the user knows the request is now being sent.
639
657
  */
package/dist/dotns.js CHANGED
@@ -54,11 +54,11 @@ import {
54
54
  validateDomainLabel,
55
55
  verifyNonceAdvanced,
56
56
  weiToNative
57
- } from "./chunk-PDCSBS5T.js";
57
+ } from "./chunk-PYGCOK67.js";
58
58
  import "./chunk-SI2ZUOYD.js";
59
59
  import "./chunk-4IUTMHVB.js";
60
- import "./chunk-TK4IZ73C.js";
61
- import "./chunk-AUVTECEP.js";
60
+ import "./chunk-5KRARO46.js";
61
+ import "./chunk-PH32GINP.js";
62
62
  import "./chunk-QRKI6MMK.js";
63
63
  import "./chunk-ZOC4GITL.js";
64
64
  export {
package/dist/index.js CHANGED
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-362JEZKM.js";
5
5
  import {
6
6
  publishManifest
7
- } from "./chunk-GRRZ4PUX.js";
7
+ } from "./chunk-REAHYALJ.js";
8
8
  import {
9
9
  DEFAULT_TEXT_RECORD_BUDGET_BYTES,
10
10
  PLACEHOLDER_CID,
@@ -24,8 +24,8 @@ import {
24
24
  deploy,
25
25
  merkleizeJS,
26
26
  merkleizeWithStableOrder
27
- } from "./chunk-A43XBCGD.js";
28
- import "./chunk-C5RIKMTP.js";
27
+ } from "./chunk-VZTZEW7C.js";
28
+ import "./chunk-RFT2I7TB.js";
29
29
  import "./chunk-GRPLHUYC.js";
30
30
  import "./chunk-HOTQDYHD.js";
31
31
  import {
@@ -49,24 +49,24 @@ import {
49
49
  isVolatilePath,
50
50
  parseManifest
51
51
  } from "./chunk-S7EM5VMW.js";
52
- import "./chunk-LXSTFGUA.js";
53
- import "./chunk-5LJPUNCB.js";
52
+ import "./chunk-CLM3ODFR.js";
53
+ import "./chunk-2NLCZQY4.js";
54
54
  import {
55
55
  probeChunks
56
- } from "./chunk-GF2QXG66.js";
56
+ } from "./chunk-3US5OZWX.js";
57
57
  import "./chunk-C2TS5MER.js";
58
- import "./chunk-7OVS6LIV.js";
58
+ import "./chunk-24KTLZ67.js";
59
59
  import "./chunk-JQKKMUCT.js";
60
60
  import "./chunk-5FLTDWWP.js";
61
61
  import "./chunk-RIRDBSBG.js";
62
- import "./chunk-MDLFWWXZ.js";
62
+ import "./chunk-RVGCHRLK.js";
63
63
  import "./chunk-TSPERKUS.js";
64
64
  import {
65
65
  DEFAULT_MNEMONIC,
66
66
  DotNS,
67
67
  parseDomainName,
68
68
  sanitizeDomainLabel
69
- } from "./chunk-PDCSBS5T.js";
69
+ } from "./chunk-PYGCOK67.js";
70
70
  import "./chunk-SI2ZUOYD.js";
71
71
  import {
72
72
  bootstrapPool,
@@ -75,7 +75,7 @@ import {
75
75
  fetchPoolAuthorizations,
76
76
  selectAccount
77
77
  } from "./chunk-4IUTMHVB.js";
78
- import "./chunk-TK4IZ73C.js";
78
+ import "./chunk-5KRARO46.js";
79
79
  import {
80
80
  VERSION,
81
81
  loadRunState,
@@ -85,7 +85,7 @@ import {
85
85
  shouldSkipStaleWarning,
86
86
  stateFilePath,
87
87
  writeRunState
88
- } from "./chunk-AUVTECEP.js";
88
+ } from "./chunk-PH32GINP.js";
89
89
  import {
90
90
  DEFAULT_ENV_ID,
91
91
  deepMergeEnvironments,
@@ -1,30 +1,30 @@
1
1
  import {
2
2
  publishManifest
3
- } from "../chunk-GRRZ4PUX.js";
3
+ } from "../chunk-REAHYALJ.js";
4
4
  import "../chunk-WIMRJK32.js";
5
- import "../chunk-A43XBCGD.js";
6
- import "../chunk-C5RIKMTP.js";
5
+ import "../chunk-VZTZEW7C.js";
6
+ import "../chunk-RFT2I7TB.js";
7
7
  import "../chunk-GRPLHUYC.js";
8
8
  import "../chunk-HOTQDYHD.js";
9
9
  import "../chunk-IW3X2MJF.js";
10
10
  import "../chunk-KOSF5FDO.js";
11
11
  import "../chunk-J3NIXHZZ.js";
12
12
  import "../chunk-S7EM5VMW.js";
13
- import "../chunk-LXSTFGUA.js";
14
- import "../chunk-5LJPUNCB.js";
15
- import "../chunk-GF2QXG66.js";
13
+ import "../chunk-CLM3ODFR.js";
14
+ import "../chunk-2NLCZQY4.js";
15
+ import "../chunk-3US5OZWX.js";
16
16
  import "../chunk-C2TS5MER.js";
17
- import "../chunk-7OVS6LIV.js";
17
+ import "../chunk-24KTLZ67.js";
18
18
  import "../chunk-JQKKMUCT.js";
19
19
  import "../chunk-5FLTDWWP.js";
20
20
  import "../chunk-RIRDBSBG.js";
21
- import "../chunk-MDLFWWXZ.js";
21
+ import "../chunk-RVGCHRLK.js";
22
22
  import "../chunk-TSPERKUS.js";
23
- import "../chunk-PDCSBS5T.js";
23
+ import "../chunk-PYGCOK67.js";
24
24
  import "../chunk-SI2ZUOYD.js";
25
25
  import "../chunk-4IUTMHVB.js";
26
- import "../chunk-TK4IZ73C.js";
27
- import "../chunk-AUVTECEP.js";
26
+ import "../chunk-5KRARO46.js";
27
+ import "../chunk-PH32GINP.js";
28
28
  import "../chunk-QRKI6MMK.js";
29
29
  import "../chunk-ZOC4GITL.js";
30
30
  export {
@@ -5,8 +5,8 @@ import {
5
5
  maybeWriteMemoryReport,
6
6
  safeHeap,
7
7
  sampleFromBytes
8
- } from "./chunk-TK4IZ73C.js";
9
- import "./chunk-AUVTECEP.js";
8
+ } from "./chunk-5KRARO46.js";
9
+ import "./chunk-PH32GINP.js";
10
10
  export {
11
11
  DEFAULT_THRESHOLD_MB,
12
12
  buildMemoryReport,
package/dist/merkle.js CHANGED
@@ -6,29 +6,29 @@ import {
6
6
  merkleizeKuboBackend,
7
7
  merkleizeWithStableOrder,
8
8
  rebuildOrderedCarFromBytes
9
- } from "./chunk-A43XBCGD.js";
10
- import "./chunk-C5RIKMTP.js";
9
+ } from "./chunk-VZTZEW7C.js";
10
+ import "./chunk-RFT2I7TB.js";
11
11
  import "./chunk-GRPLHUYC.js";
12
12
  import "./chunk-HOTQDYHD.js";
13
13
  import "./chunk-IW3X2MJF.js";
14
14
  import "./chunk-KOSF5FDO.js";
15
15
  import "./chunk-J3NIXHZZ.js";
16
16
  import "./chunk-S7EM5VMW.js";
17
- import "./chunk-LXSTFGUA.js";
18
- import "./chunk-5LJPUNCB.js";
19
- import "./chunk-GF2QXG66.js";
17
+ import "./chunk-CLM3ODFR.js";
18
+ import "./chunk-2NLCZQY4.js";
19
+ import "./chunk-3US5OZWX.js";
20
20
  import "./chunk-C2TS5MER.js";
21
- import "./chunk-7OVS6LIV.js";
21
+ import "./chunk-24KTLZ67.js";
22
22
  import "./chunk-JQKKMUCT.js";
23
23
  import "./chunk-5FLTDWWP.js";
24
24
  import "./chunk-RIRDBSBG.js";
25
- import "./chunk-MDLFWWXZ.js";
25
+ import "./chunk-RVGCHRLK.js";
26
26
  import "./chunk-TSPERKUS.js";
27
- import "./chunk-PDCSBS5T.js";
27
+ import "./chunk-PYGCOK67.js";
28
28
  import "./chunk-SI2ZUOYD.js";
29
29
  import "./chunk-4IUTMHVB.js";
30
- import "./chunk-TK4IZ73C.js";
31
- import "./chunk-AUVTECEP.js";
30
+ import "./chunk-5KRARO46.js";
31
+ import "./chunk-PH32GINP.js";
32
32
  import "./chunk-QRKI6MMK.js";
33
33
  import "./chunk-ZOC4GITL.js";
34
34
  export {
@@ -21,15 +21,15 @@ import {
21
21
  } from "../chunk-ZYVGHDMU.js";
22
22
  import {
23
23
  WS_HEARTBEAT_TIMEOUT_MS
24
- } from "../chunk-PDCSBS5T.js";
24
+ } from "../chunk-PYGCOK67.js";
25
25
  import {
26
26
  DOTNS_CONTEXT_BYTES,
27
27
  PEOPLE_MEMBER_IDENTIFIER_HEX,
28
28
  PGAS_ASSET_ID
29
29
  } from "../chunk-SI2ZUOYD.js";
30
30
  import "../chunk-4IUTMHVB.js";
31
- import "../chunk-TK4IZ73C.js";
32
- import "../chunk-AUVTECEP.js";
31
+ import "../chunk-5KRARO46.js";
32
+ import "../chunk-PH32GINP.js";
33
33
  import {
34
34
  loadEnvironments
35
35
  } from "../chunk-QRKI6MMK.js";
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  WS_HEARTBEAT_TIMEOUT_MS
3
- } from "../chunk-PDCSBS5T.js";
3
+ } from "../chunk-PYGCOK67.js";
4
4
  import "../chunk-SI2ZUOYD.js";
5
5
  import "../chunk-4IUTMHVB.js";
6
- import "../chunk-TK4IZ73C.js";
7
- import "../chunk-AUVTECEP.js";
6
+ import "../chunk-5KRARO46.js";
7
+ import "../chunk-PH32GINP.js";
8
8
  import {
9
9
  loadEnvironments
10
10
  } from "../chunk-QRKI6MMK.js";
package/dist/run-state.js CHANGED
@@ -7,7 +7,7 @@ import {
7
7
  shouldSkipStaleWarning,
8
8
  stateFilePath,
9
9
  writeRunState
10
- } from "./chunk-AUVTECEP.js";
10
+ } from "./chunk-PH32GINP.js";
11
11
  export {
12
12
  VERSION,
13
13
  loadRunState,
@@ -4,12 +4,12 @@ import {
4
4
  preflightSssAllowance,
5
5
  sssPeriodEndSec,
6
6
  writeSssAllowanceCache
7
- } from "./chunk-C5RIKMTP.js";
7
+ } from "./chunk-RFT2I7TB.js";
8
8
  import "./chunk-GRPLHUYC.js";
9
- import "./chunk-MDLFWWXZ.js";
9
+ import "./chunk-RVGCHRLK.js";
10
10
  import "./chunk-TSPERKUS.js";
11
- import "./chunk-TK4IZ73C.js";
12
- import "./chunk-AUVTECEP.js";
11
+ import "./chunk-5KRARO46.js";
12
+ import "./chunk-PH32GINP.js";
13
13
  import "./chunk-QRKI6MMK.js";
14
14
  import "./chunk-ZOC4GITL.js";
15
15
  export {
@@ -7,29 +7,29 @@ import {
7
7
  readBulletinSlotSigner,
8
8
  waitForBulletinAuthorization,
9
9
  writeBulletinSlotKey
10
- } from "./chunk-A43XBCGD.js";
11
- import "./chunk-C5RIKMTP.js";
10
+ } from "./chunk-VZTZEW7C.js";
11
+ import "./chunk-RFT2I7TB.js";
12
12
  import "./chunk-GRPLHUYC.js";
13
13
  import "./chunk-HOTQDYHD.js";
14
14
  import "./chunk-IW3X2MJF.js";
15
15
  import "./chunk-KOSF5FDO.js";
16
16
  import "./chunk-J3NIXHZZ.js";
17
17
  import "./chunk-S7EM5VMW.js";
18
- import "./chunk-LXSTFGUA.js";
19
- import "./chunk-5LJPUNCB.js";
20
- import "./chunk-GF2QXG66.js";
18
+ import "./chunk-CLM3ODFR.js";
19
+ import "./chunk-2NLCZQY4.js";
20
+ import "./chunk-3US5OZWX.js";
21
21
  import "./chunk-C2TS5MER.js";
22
- import "./chunk-7OVS6LIV.js";
22
+ import "./chunk-24KTLZ67.js";
23
23
  import "./chunk-JQKKMUCT.js";
24
24
  import "./chunk-5FLTDWWP.js";
25
25
  import "./chunk-RIRDBSBG.js";
26
- import "./chunk-MDLFWWXZ.js";
26
+ import "./chunk-RVGCHRLK.js";
27
27
  import "./chunk-TSPERKUS.js";
28
- import "./chunk-PDCSBS5T.js";
28
+ import "./chunk-PYGCOK67.js";
29
29
  import "./chunk-SI2ZUOYD.js";
30
30
  import "./chunk-4IUTMHVB.js";
31
- import "./chunk-TK4IZ73C.js";
32
- import "./chunk-AUVTECEP.js";
31
+ import "./chunk-5KRARO46.js";
32
+ import "./chunk-PH32GINP.js";
33
33
  import "./chunk-QRKI6MMK.js";
34
34
  import "./chunk-ZOC4GITL.js";
35
35
  export {
package/dist/telemetry.js CHANGED
@@ -36,8 +36,8 @@ import {
36
36
  truncateAddress,
37
37
  withDeploySpan,
38
38
  withSpan
39
- } from "./chunk-TK4IZ73C.js";
40
- import "./chunk-AUVTECEP.js";
39
+ } from "./chunk-5KRARO46.js";
40
+ import "./chunk-PH32GINP.js";
41
41
  export {
42
42
  VERSION,
43
43
  __setDeployRootSpanForTest,
@@ -11,9 +11,9 @@ import {
11
11
  isPreReleaseVersion,
12
12
  preReleaseWarning,
13
13
  promptYesNo
14
- } from "./chunk-5LJPUNCB.js";
15
- import "./chunk-TK4IZ73C.js";
16
- import "./chunk-AUVTECEP.js";
14
+ } from "./chunk-2NLCZQY4.js";
15
+ import "./chunk-5KRARO46.js";
16
+ import "./chunk-PH32GINP.js";
17
17
  export {
18
18
  assessVersion,
19
19
  checkNodeVersion,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@parity/product-deploy",
3
- "version": "0.11.0-rc.1",
3
+ "version": "0.11.0-rc.3",
4
4
  "private": false,
5
5
  "repository": {
6
6
  "type": "git",