@parity/product-deploy 0.11.0-rc.2 → 0.11.0-rc.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/environments.json +2 -0
- package/dist/auth-config.js +4 -4
- package/dist/bug-report.d.ts +10 -1
- package/dist/bug-report.js +6 -4
- package/dist/{chunk-422RAWSV.js → chunk-23AKFLS3.js} +3 -3
- package/dist/{chunk-HXN2HJMZ.js → chunk-4CQ75L4W.js} +1 -1
- package/dist/{chunk-6YUT276Z.js → chunk-CYKONVA7.js} +1 -1
- package/dist/{chunk-AR5IUHCM.js → chunk-GQNCLVZM.js} +1 -1
- package/dist/{chunk-QRKI6MMK.js → chunk-JSYQ3JQS.js} +4 -1
- package/dist/{chunk-4IUTMHVB.js → chunk-MRQPJLPS.js} +24 -3
- package/dist/{chunk-MU75RB7Z.js → chunk-ORJM2DGE.js} +2 -2
- package/dist/{chunk-YVLDMADS.js → chunk-ORS77MUP.js} +41 -20
- package/dist/{chunk-2MRHO7I5.js → chunk-OVF6SN7P.js} +1 -1
- package/dist/{chunk-6ZF7V4PG.js → chunk-PRBEYWUY.js} +2 -2
- package/dist/{chunk-WCEPEDZA.js → chunk-Q6UOOXXS.js} +9 -3
- package/dist/{chunk-OXENTCOF.js → chunk-RC3CVUOG.js} +46 -12
- package/dist/{chunk-33T5FHX2.js → chunk-ZDJW2Q4R.js} +1 -1
- package/dist/chunk-probe.js +3 -3
- package/dist/commands/login.js +12 -12
- package/dist/commands/logout.js +5 -5
- package/dist/commands/transfer.js +5 -5
- package/dist/commands/whoami.js +4 -4
- package/dist/deploy-actors.js +7 -7
- package/dist/deploy.d.ts +10 -1
- package/dist/deploy.js +14 -12
- package/dist/dotns.d.ts +33 -2
- package/dist/dotns.js +9 -5
- package/dist/environments.d.ts +2 -0
- package/dist/environments.js +1 -1
- package/dist/index.js +13 -13
- package/dist/manifest/publish.js +13 -13
- package/dist/memory-report.js +2 -2
- package/dist/merkle.js +12 -12
- package/dist/personhood/bootstrap.js +5 -5
- package/dist/personhood/people-client.js +5 -5
- package/dist/pool.d.ts +3 -1
- package/dist/pool.js +1 -1
- package/dist/run-state.js +1 -1
- package/dist/sss-allowance-cache.js +5 -5
- package/dist/storage-signer.js +12 -12
- package/dist/telemetry.js +2 -2
- package/dist/version-check.js +3 -3
- package/package.json +1 -1
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-SI2ZUOYD.js";
|
|
4
4
|
import {
|
|
5
5
|
isTestnetSpecName
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-MRQPJLPS.js";
|
|
7
7
|
import {
|
|
8
8
|
captureWarning,
|
|
9
9
|
markCodePath,
|
|
@@ -11,10 +11,10 @@ import {
|
|
|
11
11
|
setDeploySentryTag,
|
|
12
12
|
truncateAddress,
|
|
13
13
|
withSpan
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-4CQ75L4W.js";
|
|
15
15
|
import {
|
|
16
16
|
validateContractAddresses
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-JSYQ3JQS.js";
|
|
18
18
|
import {
|
|
19
19
|
NonRetryableError
|
|
20
20
|
} from "./chunk-ZOC4GITL.js";
|
|
@@ -126,6 +126,7 @@ var TX_WALL_CLOCK_CEILING_MS = 24e4;
|
|
|
126
126
|
var TX_NO_PROGRESS_MS = 9e4;
|
|
127
127
|
var WS_HEARTBEAT_TIMEOUT_MS = 3e5;
|
|
128
128
|
var DOTNS_TX_MAX_ATTEMPTS = 3;
|
|
129
|
+
var VERIFY_EFFECT_CHAIN_SECONDS = 60;
|
|
129
130
|
function classifyTxRetryDecision(err) {
|
|
130
131
|
const msg = err instanceof Error ? err.message : String(err);
|
|
131
132
|
const lower = msg.toLowerCase();
|
|
@@ -146,14 +147,22 @@ function dotnsRetryBackoffMs(attempt, rand = Math.random) {
|
|
|
146
147
|
function shouldRetryTxAttempt(attempt, maxAttempts, decision) {
|
|
147
148
|
return decision === "retry" && attempt < maxAttempts;
|
|
148
149
|
}
|
|
150
|
+
function shouldRegateBeforeResign(attempt, isPhoneSigner) {
|
|
151
|
+
return attempt >= 2 && isPhoneSigner === true;
|
|
152
|
+
}
|
|
149
153
|
function makeRetryStatusFilter(sink) {
|
|
150
154
|
let buffered = false;
|
|
155
|
+
let includedSeen = false;
|
|
151
156
|
return {
|
|
152
157
|
callback: (status) => {
|
|
153
158
|
if (status === "failed") {
|
|
154
159
|
buffered = true;
|
|
155
160
|
return;
|
|
156
161
|
}
|
|
162
|
+
if (status === "included") {
|
|
163
|
+
if (includedSeen) return;
|
|
164
|
+
includedSeen = true;
|
|
165
|
+
}
|
|
157
166
|
sink(status);
|
|
158
167
|
},
|
|
159
168
|
flush: () => {
|
|
@@ -161,6 +170,7 @@ function makeRetryStatusFilter(sink) {
|
|
|
161
170
|
},
|
|
162
171
|
reset: () => {
|
|
163
172
|
buffered = false;
|
|
173
|
+
includedSeen = false;
|
|
164
174
|
}
|
|
165
175
|
};
|
|
166
176
|
}
|
|
@@ -777,6 +787,9 @@ var ReviveClientWrapper = class _ReviveClientWrapper {
|
|
|
777
787
|
let lastError;
|
|
778
788
|
for (let attempt = 1; attempt <= DOTNS_TX_MAX_ATTEMPTS; attempt++) {
|
|
779
789
|
filter.reset();
|
|
790
|
+
if (shouldRegateBeforeResign(attempt, opts.isPhoneSigner)) {
|
|
791
|
+
await opts.onResign?.(attempt);
|
|
792
|
+
}
|
|
780
793
|
try {
|
|
781
794
|
return await this.signAndSubmitExtrinsic(buildExtrinsic(), signer, filter.callback, opts);
|
|
782
795
|
} catch (e) {
|
|
@@ -824,7 +837,7 @@ var ReviveClientWrapper = class _ReviveClientWrapper {
|
|
|
824
837
|
storage_deposit_limit: storageDepositLimit
|
|
825
838
|
};
|
|
826
839
|
}
|
|
827
|
-
async submitTransaction(contractAddress, value, encodedData, signerSubstrateAddress, signer, statusCallback, { rpcs, useNoncePolling, functionName, args, contracts, verifyEffect, feeAsset }) {
|
|
840
|
+
async submitTransaction(contractAddress, value, encodedData, signerSubstrateAddress, signer, statusCallback, { rpcs, useNoncePolling, functionName, args, contracts, verifyEffect, feeAsset, isPhoneSigner, onResign }) {
|
|
828
841
|
await this.ensureAccountMapped(signerSubstrateAddress, signer);
|
|
829
842
|
if (functionName === "register") {
|
|
830
843
|
try {
|
|
@@ -856,7 +869,7 @@ var ReviveClientWrapper = class _ReviveClientWrapper {
|
|
|
856
869
|
"chain.tx.submit",
|
|
857
870
|
`sign+submit ${functionName ?? "Revive.call"}`,
|
|
858
871
|
{ "chain.function_name": functionName ?? "Revive.call", "chain.use_nonce_polling": Boolean(useNoncePolling) },
|
|
859
|
-
() => this.signAndSubmitWithRetry(buildExtrinsic, signer, statusCallback, "Revive.call", { nonceFallback, verifyEffect, feeAsset })
|
|
872
|
+
() => this.signAndSubmitWithRetry(buildExtrinsic, signer, statusCallback, "Revive.call", { nonceFallback, verifyEffect, feeAsset, isPhoneSigner, onResign })
|
|
860
873
|
);
|
|
861
874
|
}
|
|
862
875
|
// Dry-runs each call individually, then wraps them in a single
|
|
@@ -981,6 +994,8 @@ var DotNS = class {
|
|
|
981
994
|
// back to the legacy paseo-only RPC_ENDPOINTS for direct library callers.
|
|
982
995
|
assetHubEndpoints;
|
|
983
996
|
_usesExternalSigner = false;
|
|
997
|
+
/** True only when the signer is a real phone/session signer that needs `_awaitPhoneReady`. */
|
|
998
|
+
_isPhoneSigner = false;
|
|
984
999
|
_localMnemonic = null;
|
|
985
1000
|
_contracts = CONTRACTS;
|
|
986
1001
|
_nativeToEthRatio = NATIVE_TO_ETH_RATIO;
|
|
@@ -1049,6 +1064,7 @@ var DotNS = class {
|
|
|
1049
1064
|
const rpc = options.rpc || process.env.DOTNS_RPC || this.assetHubEndpoints[0];
|
|
1050
1065
|
this.rpc = rpc;
|
|
1051
1066
|
this._usesExternalSigner = Boolean(options.signer && options.signerAddress);
|
|
1067
|
+
this._isPhoneSigner = options.phoneSigner ?? false;
|
|
1052
1068
|
if (this._usesExternalSigner) {
|
|
1053
1069
|
this.signer = options.signer;
|
|
1054
1070
|
this.substrateAddress = options.signerAddress;
|
|
@@ -1475,7 +1491,22 @@ var DotNS = class {
|
|
|
1475
1491
|
await this._awaitPhoneReady(phoneLabel);
|
|
1476
1492
|
}
|
|
1477
1493
|
return await withTimeout(
|
|
1478
|
-
this.clientWrapper.submitTransaction(contractAddress, value, encodedCallData, this.substrateAddress, this.signer, statusCallback, {
|
|
1494
|
+
this.clientWrapper.submitTransaction(contractAddress, value, encodedCallData, this.substrateAddress, this.signer, statusCallback, {
|
|
1495
|
+
rpcs,
|
|
1496
|
+
useNoncePolling,
|
|
1497
|
+
functionName,
|
|
1498
|
+
args,
|
|
1499
|
+
contracts: this._contracts,
|
|
1500
|
+
verifyEffect,
|
|
1501
|
+
feeAsset,
|
|
1502
|
+
// Re-gate phone-signer retries (#971): a verifyEffect false-negative
|
|
1503
|
+
// makes signAndSubmitWithRetry re-sign; for a phone signer that needs
|
|
1504
|
+
// another tap, so pause via _awaitPhoneReady ("Re-sign needed … Check
|
|
1505
|
+
// your phone / Press Y") before re-signing. Both _awaitPhoneReady and the
|
|
1506
|
+
// retry-loop guard no-op for non-phone signers (local/dev workers).
|
|
1507
|
+
isPhoneSigner: this._isPhoneSigner,
|
|
1508
|
+
onResign: phoneLabel !== void 0 ? () => this._awaitPhoneReady(phoneLabel) : void 0
|
|
1509
|
+
}),
|
|
1479
1510
|
OPERATION_TIMEOUT_MS,
|
|
1480
1511
|
functionName
|
|
1481
1512
|
);
|
|
@@ -1578,7 +1609,7 @@ var DotNS = class {
|
|
|
1578
1609
|
const parentNode = namehash(`${parentLabel}.dot`);
|
|
1579
1610
|
const subnodeNode = namehash(`${sublabel}.${parentLabel}.dot`);
|
|
1580
1611
|
const subnodeRecord = { parentNode, subLabel: sublabel, parentLabel, owner: this.evmAddress };
|
|
1581
|
-
const MAX_VERIFY_CHAIN_SECONDS =
|
|
1612
|
+
const MAX_VERIFY_CHAIN_SECONDS = VERIFY_EFFECT_CHAIN_SECONDS;
|
|
1582
1613
|
const POLL_INTERVAL_MS = 2e3;
|
|
1583
1614
|
const verifyEffect = async () => {
|
|
1584
1615
|
const wrapper = this.clientWrapper;
|
|
@@ -1718,7 +1749,7 @@ var DotNS = class {
|
|
|
1718
1749
|
} catch (_) {
|
|
1719
1750
|
}
|
|
1720
1751
|
setDeployAttribute("deploy.dotns.contenthash_unchanged", "false");
|
|
1721
|
-
const MAX_VERIFY_CHAIN_SECONDS =
|
|
1752
|
+
const MAX_VERIFY_CHAIN_SECONDS = VERIFY_EFFECT_CHAIN_SECONDS;
|
|
1722
1753
|
const POLL_INTERVAL_MS = 2e3;
|
|
1723
1754
|
const verifyEffect = async () => {
|
|
1724
1755
|
const wrapper = this.clientWrapper;
|
|
@@ -1815,7 +1846,7 @@ var DotNS = class {
|
|
|
1815
1846
|
this.ensureConnected();
|
|
1816
1847
|
console.log(` Setting text[${key}]: ${value}`);
|
|
1817
1848
|
const node = namehash(`${domainName}.dot`);
|
|
1818
|
-
const MAX_VERIFY_CHAIN_SECONDS =
|
|
1849
|
+
const MAX_VERIFY_CHAIN_SECONDS = VERIFY_EFFECT_CHAIN_SECONDS;
|
|
1819
1850
|
const TEXT_POLL_INTERVAL_MS = 2e3;
|
|
1820
1851
|
const verifyEffect = async () => {
|
|
1821
1852
|
const wrapper = this.clientWrapper;
|
|
@@ -1947,7 +1978,7 @@ var DotNS = class {
|
|
|
1947
1978
|
console.log(` Already published \u2014 skipping`);
|
|
1948
1979
|
return { status: "already-published" };
|
|
1949
1980
|
}
|
|
1950
|
-
const MAX_VERIFY_CHAIN_SECONDS =
|
|
1981
|
+
const MAX_VERIFY_CHAIN_SECONDS = VERIFY_EFFECT_CHAIN_SECONDS;
|
|
1951
1982
|
const PUBLISH_POLL_INTERVAL_MS = 2e3;
|
|
1952
1983
|
const verifyEffect = async () => {
|
|
1953
1984
|
const wrapper = this.clientWrapper;
|
|
@@ -2020,7 +2051,7 @@ var DotNS = class {
|
|
|
2020
2051
|
console.log(` Not currently published \u2014 skipping`);
|
|
2021
2052
|
return { status: "already-unpublished" };
|
|
2022
2053
|
}
|
|
2023
|
-
const MAX_VERIFY_CHAIN_SECONDS =
|
|
2054
|
+
const MAX_VERIFY_CHAIN_SECONDS = VERIFY_EFFECT_CHAIN_SECONDS;
|
|
2024
2055
|
const UNPUBLISH_POLL_INTERVAL_MS = 2e3;
|
|
2025
2056
|
const verifyEffect = async () => {
|
|
2026
2057
|
const wrapper = this.clientWrapper;
|
|
@@ -2681,7 +2712,7 @@ var DotNS = class {
|
|
|
2681
2712
|
* phone" notification) so the user knows the request is now being sent.
|
|
2682
2713
|
*/
|
|
2683
2714
|
async _awaitPhoneReady(label) {
|
|
2684
|
-
if (!this.
|
|
2715
|
+
if (!this._isPhoneSigner) return;
|
|
2685
2716
|
const attempt = (this._phoneSignatureAttempts.get(label) ?? 0) + 1;
|
|
2686
2717
|
this._phoneSignatureAttempts.set(label, attempt);
|
|
2687
2718
|
if (this._confirmPhoneReady) {
|
|
@@ -2697,6 +2728,7 @@ var DotNS = class {
|
|
|
2697
2728
|
this.connected = false;
|
|
2698
2729
|
}
|
|
2699
2730
|
this._usesExternalSigner = false;
|
|
2731
|
+
this._isPhoneSigner = false;
|
|
2700
2732
|
this._onPhoneSigningRequired = void 0;
|
|
2701
2733
|
this._confirmPhoneReady = void 0;
|
|
2702
2734
|
this._phoneSignatureTotal = 0;
|
|
@@ -2727,9 +2759,11 @@ export {
|
|
|
2727
2759
|
TX_NO_PROGRESS_MS,
|
|
2728
2760
|
WS_HEARTBEAT_TIMEOUT_MS,
|
|
2729
2761
|
DOTNS_TX_MAX_ATTEMPTS,
|
|
2762
|
+
VERIFY_EFFECT_CHAIN_SECONDS,
|
|
2730
2763
|
classifyTxRetryDecision,
|
|
2731
2764
|
dotnsRetryBackoffMs,
|
|
2732
2765
|
shouldRetryTxAttempt,
|
|
2766
|
+
shouldRegateBeforeResign,
|
|
2733
2767
|
makeRetryStatusFilter,
|
|
2734
2768
|
DEFAULT_MNEMONIC,
|
|
2735
2769
|
fetchNonce,
|
package/dist/chunk-probe.js
CHANGED
|
@@ -5,9 +5,9 @@ import {
|
|
|
5
5
|
_decodeStorageValue,
|
|
6
6
|
_resetProbeSession,
|
|
7
7
|
probeChunks
|
|
8
|
-
} from "./chunk-
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
8
|
+
} from "./chunk-ZDJW2Q4R.js";
|
|
9
|
+
import "./chunk-4CQ75L4W.js";
|
|
10
|
+
import "./chunk-GQNCLVZM.js";
|
|
11
11
|
export {
|
|
12
12
|
ChainProbeCrossValidationError,
|
|
13
13
|
ChainProbeMetadataError,
|
package/dist/commands/login.js
CHANGED
|
@@ -3,10 +3,10 @@ import {
|
|
|
3
3
|
} from "../chunk-J7CYVTAW.js";
|
|
4
4
|
import {
|
|
5
5
|
waitForBulletinAuthorization
|
|
6
|
-
} from "../chunk-
|
|
6
|
+
} from "../chunk-ORS77MUP.js";
|
|
7
7
|
import {
|
|
8
8
|
preflightSssAllowance
|
|
9
|
-
} from "../chunk-
|
|
9
|
+
} from "../chunk-CYKONVA7.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-
|
|
19
|
-
import "../chunk-
|
|
20
|
-
import "../chunk-
|
|
18
|
+
import "../chunk-Q6UOOXXS.js";
|
|
19
|
+
import "../chunk-OVF6SN7P.js";
|
|
20
|
+
import "../chunk-ZDJW2Q4R.js";
|
|
21
21
|
import "../chunk-C2TS5MER.js";
|
|
22
|
-
import "../chunk-
|
|
22
|
+
import "../chunk-PRBEYWUY.js";
|
|
23
23
|
import "../chunk-JQKKMUCT.js";
|
|
24
24
|
import {
|
|
25
25
|
BULLETIN_RESOURCE,
|
|
@@ -36,18 +36,18 @@ import {
|
|
|
36
36
|
getAuthClient,
|
|
37
37
|
getPeopleChainEndpoints,
|
|
38
38
|
resolveBulletinEndpoints
|
|
39
|
-
} from "../chunk-
|
|
39
|
+
} from "../chunk-ORJM2DGE.js";
|
|
40
40
|
import {
|
|
41
41
|
CLI_NAME
|
|
42
42
|
} from "../chunk-TSPERKUS.js";
|
|
43
|
-
import "../chunk-
|
|
43
|
+
import "../chunk-RC3CVUOG.js";
|
|
44
44
|
import "../chunk-SI2ZUOYD.js";
|
|
45
|
-
import "../chunk-
|
|
46
|
-
import "../chunk-
|
|
47
|
-
import "../chunk-
|
|
45
|
+
import "../chunk-MRQPJLPS.js";
|
|
46
|
+
import "../chunk-4CQ75L4W.js";
|
|
47
|
+
import "../chunk-GQNCLVZM.js";
|
|
48
48
|
import {
|
|
49
49
|
loadEnvironments
|
|
50
|
-
} from "../chunk-
|
|
50
|
+
} from "../chunk-JSYQ3JQS.js";
|
|
51
51
|
import "../chunk-ZOC4GITL.js";
|
|
52
52
|
|
|
53
53
|
// src/commands/login.ts
|
package/dist/commands/logout.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
clearSssAllowanceCache
|
|
3
|
-
} from "../chunk-
|
|
3
|
+
} from "../chunk-CYKONVA7.js";
|
|
4
4
|
import "../chunk-GRPLHUYC.js";
|
|
5
5
|
import "../chunk-JQKKMUCT.js";
|
|
6
6
|
import "../chunk-5FLTDWWP.js";
|
|
@@ -9,11 +9,11 @@ import {
|
|
|
9
9
|
} from "../chunk-RIRDBSBG.js";
|
|
10
10
|
import {
|
|
11
11
|
getAuthClient
|
|
12
|
-
} from "../chunk-
|
|
12
|
+
} from "../chunk-ORJM2DGE.js";
|
|
13
13
|
import "../chunk-TSPERKUS.js";
|
|
14
|
-
import "../chunk-
|
|
15
|
-
import "../chunk-
|
|
16
|
-
import "../chunk-
|
|
14
|
+
import "../chunk-4CQ75L4W.js";
|
|
15
|
+
import "../chunk-GQNCLVZM.js";
|
|
16
|
+
import "../chunk-JSYQ3JQS.js";
|
|
17
17
|
import "../chunk-ZOC4GITL.js";
|
|
18
18
|
|
|
19
19
|
// src/commands/logout.ts
|
|
@@ -4,16 +4,16 @@ import {
|
|
|
4
4
|
import {
|
|
5
5
|
DEFAULT_MNEMONIC,
|
|
6
6
|
DotNS
|
|
7
|
-
} from "../chunk-
|
|
7
|
+
} from "../chunk-RC3CVUOG.js";
|
|
8
8
|
import "../chunk-SI2ZUOYD.js";
|
|
9
|
-
import "../chunk-
|
|
10
|
-
import "../chunk-
|
|
11
|
-
import "../chunk-
|
|
9
|
+
import "../chunk-MRQPJLPS.js";
|
|
10
|
+
import "../chunk-4CQ75L4W.js";
|
|
11
|
+
import "../chunk-GQNCLVZM.js";
|
|
12
12
|
import {
|
|
13
13
|
getPopSelfServeConfig,
|
|
14
14
|
loadEnvironments,
|
|
15
15
|
resolveEndpoints
|
|
16
|
-
} from "../chunk-
|
|
16
|
+
} from "../chunk-JSYQ3JQS.js";
|
|
17
17
|
import "../chunk-ZOC4GITL.js";
|
|
18
18
|
|
|
19
19
|
// src/commands/transfer.ts
|
package/dist/commands/whoami.js
CHANGED
|
@@ -2,13 +2,13 @@ import {
|
|
|
2
2
|
STALE_SESSION_MESSAGE,
|
|
3
3
|
getAuthClient,
|
|
4
4
|
hasPersistedSession
|
|
5
|
-
} from "../chunk-
|
|
5
|
+
} from "../chunk-ORJM2DGE.js";
|
|
6
6
|
import {
|
|
7
7
|
CLI_NAME
|
|
8
8
|
} from "../chunk-TSPERKUS.js";
|
|
9
|
-
import "../chunk-
|
|
10
|
-
import "../chunk-
|
|
11
|
-
import "../chunk-
|
|
9
|
+
import "../chunk-4CQ75L4W.js";
|
|
10
|
+
import "../chunk-GQNCLVZM.js";
|
|
11
|
+
import "../chunk-JSYQ3JQS.js";
|
|
12
12
|
import "../chunk-ZOC4GITL.js";
|
|
13
13
|
|
|
14
14
|
// src/commands/whoami.ts
|
package/dist/deploy-actors.js
CHANGED
|
@@ -2,18 +2,18 @@ import {
|
|
|
2
2
|
MainnetDefaultWorkerError,
|
|
3
3
|
resolveDeployActors,
|
|
4
4
|
resolveStorageSigner
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-PRBEYWUY.js";
|
|
6
6
|
import "./chunk-JQKKMUCT.js";
|
|
7
7
|
import "./chunk-5FLTDWWP.js";
|
|
8
8
|
import "./chunk-RIRDBSBG.js";
|
|
9
|
-
import "./chunk-
|
|
9
|
+
import "./chunk-ORJM2DGE.js";
|
|
10
10
|
import "./chunk-TSPERKUS.js";
|
|
11
|
-
import "./chunk-
|
|
11
|
+
import "./chunk-RC3CVUOG.js";
|
|
12
12
|
import "./chunk-SI2ZUOYD.js";
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-MRQPJLPS.js";
|
|
14
|
+
import "./chunk-4CQ75L4W.js";
|
|
15
|
+
import "./chunk-GQNCLVZM.js";
|
|
16
|
+
import "./chunk-JSYQ3JQS.js";
|
|
17
17
|
import "./chunk-ZOC4GITL.js";
|
|
18
18
|
export {
|
|
19
19
|
MainnetDefaultWorkerError,
|
package/dist/deploy.d.ts
CHANGED
|
@@ -146,6 +146,15 @@ declare function shouldHandoverName(opts: {
|
|
|
146
146
|
* Fallback: " Storage signer: pool fallback (<reason>)"
|
|
147
147
|
*/
|
|
148
148
|
declare function formatStorageSignerLine(slotAddress: string | null, failReason?: string, owned?: boolean): string;
|
|
149
|
+
/**
|
|
150
|
+
* #983: the transfer-mode DotNS announcement, printed at preflight once ownership
|
|
151
|
+
* is known. The up-front worker header states only the worker's storage role (it
|
|
152
|
+
* can't know ownership yet); this line states the transfer-vs-owned-update reality:
|
|
153
|
+
* New name: " DotNS: will register <name> and transfer it to your account <recipient>"
|
|
154
|
+
* Already owned: " DotNS: you already own <name> — content update needs your phone signature (no transfer)"
|
|
155
|
+
* Exported for unit testing.
|
|
156
|
+
*/
|
|
157
|
+
declare function formatTransferModeDotnsLine(alreadyOwned: boolean, dotName: string, recipient: string): string;
|
|
149
158
|
declare function storeFile(contentBytes: Uint8Array, { client: existingClient, unsafeApi: existingApi, signer: existingSigner, hashCode, }?: ExistingProvider & {
|
|
150
159
|
hashCode?: number;
|
|
151
160
|
}): Promise<string>;
|
|
@@ -456,4 +465,4 @@ declare function computePhoneSigningSteps(dotnsPreflight: {
|
|
|
456
465
|
needsPopUpgrade: boolean;
|
|
457
466
|
} | null, publishNeeded: boolean): string[];
|
|
458
467
|
|
|
459
|
-
export { BLAKE2B_256_MULTIHASH_CODE, BULLETIN_ENDPOINTS, type BitswapErrorVariant, type BitswapProbeResult, CHUNK_MORTALITY_PERIOD, 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, PhoneSignatureStep, SHA256_MULTIHASH_CODE, type SizeDecision, type StoreDirectoryOptions, WS_HEARTBEAT_TIMEOUT_MS, __assignDenseNoncesForTest, __selectStorageProviderModeForTest, applyManifestFetchAttributes, assertSubdomainOwnerMatchesSigner, browserUrlFor, buildFilesMap, checkDeploySize, chooseSignerInput, chunk, computePhoneSigningSteps, computeStorageCid, createCID, deploy, deriveRootSigner, detectFramework, encodeContenthash, encryptContent, estimateUploadBytes, formatStorageSignerLine, friendlyChainError, hasIPFS, interpretBitswapResult, isBenignTeardownError, isConnectionError, isPhoneSignerActive, makeBulletinStatusHandler, merkleize, probeP2pRetrieval, resolveDotnsConnectOptions, resolveReproducibleTimestamp, retryBudgetExhausted, setWsHaltCallback, shouldHandoverName, storeChunkedContent, storeDirectory, storeDirectoryV2, storeFile, unpublish };
|
|
468
|
+
export { BLAKE2B_256_MULTIHASH_CODE, BULLETIN_ENDPOINTS, type BitswapErrorVariant, type BitswapProbeResult, CHUNK_MORTALITY_PERIOD, 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, PhoneSignatureStep, SHA256_MULTIHASH_CODE, type SizeDecision, type StoreDirectoryOptions, WS_HEARTBEAT_TIMEOUT_MS, __assignDenseNoncesForTest, __selectStorageProviderModeForTest, applyManifestFetchAttributes, assertSubdomainOwnerMatchesSigner, browserUrlFor, buildFilesMap, checkDeploySize, chooseSignerInput, chunk, computePhoneSigningSteps, computeStorageCid, createCID, deploy, deriveRootSigner, detectFramework, encodeContenthash, encryptContent, estimateUploadBytes, formatStorageSignerLine, formatTransferModeDotnsLine, friendlyChainError, hasIPFS, interpretBitswapResult, isBenignTeardownError, isConnectionError, isPhoneSignerActive, makeBulletinStatusHandler, merkleize, probeP2pRetrieval, resolveDotnsConnectOptions, resolveReproducibleTimestamp, retryBudgetExhausted, setWsHaltCallback, shouldHandoverName, storeChunkedContent, storeDirectory, storeDirectoryV2, storeFile, unpublish };
|
package/dist/deploy.js
CHANGED
|
@@ -31,6 +31,7 @@ import {
|
|
|
31
31
|
encryptContent,
|
|
32
32
|
estimateUploadBytes,
|
|
33
33
|
formatStorageSignerLine,
|
|
34
|
+
formatTransferModeDotnsLine,
|
|
34
35
|
friendlyChainError,
|
|
35
36
|
hasIPFS,
|
|
36
37
|
interpretBitswapResult,
|
|
@@ -50,30 +51,30 @@ import {
|
|
|
50
51
|
storeDirectoryV2,
|
|
51
52
|
storeFile,
|
|
52
53
|
unpublish
|
|
53
|
-
} from "./chunk-
|
|
54
|
-
import "./chunk-
|
|
54
|
+
} from "./chunk-ORS77MUP.js";
|
|
55
|
+
import "./chunk-CYKONVA7.js";
|
|
55
56
|
import "./chunk-GRPLHUYC.js";
|
|
56
57
|
import "./chunk-HOTQDYHD.js";
|
|
57
58
|
import "./chunk-IW3X2MJF.js";
|
|
58
59
|
import "./chunk-KOSF5FDO.js";
|
|
59
60
|
import "./chunk-J3NIXHZZ.js";
|
|
60
61
|
import "./chunk-S7EM5VMW.js";
|
|
61
|
-
import "./chunk-
|
|
62
|
-
import "./chunk-
|
|
63
|
-
import "./chunk-
|
|
62
|
+
import "./chunk-Q6UOOXXS.js";
|
|
63
|
+
import "./chunk-OVF6SN7P.js";
|
|
64
|
+
import "./chunk-ZDJW2Q4R.js";
|
|
64
65
|
import "./chunk-C2TS5MER.js";
|
|
65
|
-
import "./chunk-
|
|
66
|
+
import "./chunk-PRBEYWUY.js";
|
|
66
67
|
import "./chunk-JQKKMUCT.js";
|
|
67
68
|
import "./chunk-5FLTDWWP.js";
|
|
68
69
|
import "./chunk-RIRDBSBG.js";
|
|
69
|
-
import "./chunk-
|
|
70
|
+
import "./chunk-ORJM2DGE.js";
|
|
70
71
|
import "./chunk-TSPERKUS.js";
|
|
71
|
-
import "./chunk-
|
|
72
|
+
import "./chunk-RC3CVUOG.js";
|
|
72
73
|
import "./chunk-SI2ZUOYD.js";
|
|
73
|
-
import "./chunk-
|
|
74
|
-
import "./chunk-
|
|
75
|
-
import "./chunk-
|
|
76
|
-
import "./chunk-
|
|
74
|
+
import "./chunk-MRQPJLPS.js";
|
|
75
|
+
import "./chunk-4CQ75L4W.js";
|
|
76
|
+
import "./chunk-GQNCLVZM.js";
|
|
77
|
+
import "./chunk-JSYQ3JQS.js";
|
|
77
78
|
import {
|
|
78
79
|
EXIT_CODE_NO_RETRY,
|
|
79
80
|
NonRetryableError
|
|
@@ -113,6 +114,7 @@ export {
|
|
|
113
114
|
encryptContent,
|
|
114
115
|
estimateUploadBytes,
|
|
115
116
|
formatStorageSignerLine,
|
|
117
|
+
formatTransferModeDotnsLine,
|
|
116
118
|
friendlyChainError,
|
|
117
119
|
hasIPFS,
|
|
118
120
|
interpretBitswapResult,
|
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;
|
|
@@ -138,6 +148,7 @@ declare const TX_WALL_CLOCK_CEILING_MS: number;
|
|
|
138
148
|
declare const TX_NO_PROGRESS_MS: number;
|
|
139
149
|
declare const WS_HEARTBEAT_TIMEOUT_MS: number;
|
|
140
150
|
declare const DOTNS_TX_MAX_ATTEMPTS: number;
|
|
151
|
+
declare const VERIFY_EFFECT_CHAIN_SECONDS: number;
|
|
141
152
|
declare function classifyTxRetryDecision(err: unknown): "retry" | "abort";
|
|
142
153
|
declare function dotnsRetryBackoffMs(attempt: number, rand?: () => number): number;
|
|
143
154
|
/**
|
|
@@ -149,11 +160,25 @@ declare function dotnsRetryBackoffMs(attempt: number, rand?: () => number): numb
|
|
|
149
160
|
* invisible and the count appeared to stop one short.
|
|
150
161
|
*/
|
|
151
162
|
declare function shouldRetryTxAttempt(attempt: number, maxAttempts: number, decision: "retry" | "abort"): boolean;
|
|
163
|
+
/**
|
|
164
|
+
* Whether to pause for the human-ready gate before a retry RE-SIGN (#971).
|
|
165
|
+
* Only a phone/session signer re-sign needs another tap, so the re-gate fires
|
|
166
|
+
* only on attempt ≥ 2 (a re-sign, not the first sign) AND when the signer is a
|
|
167
|
+
* phone signer. Local/dev workers re-sign locally and must NOT pause. Pure so
|
|
168
|
+
* the decision is unit-testable without driving a real retry.
|
|
169
|
+
*/
|
|
170
|
+
declare function shouldRegateBeforeResign(attempt: number, isPhoneSigner: boolean | undefined): boolean;
|
|
152
171
|
/** Wraps `sink` so that "failed" status events are buffered and only forwarded
|
|
153
172
|
* when `flush()` is called (i.e. on final abort). All other statuses pass
|
|
154
173
|
* through immediately. Call `reset()` at the top of each retry attempt to
|
|
155
174
|
* discard a buffered "failed" from the previous attempt.
|
|
156
175
|
*
|
|
176
|
+
* Also deduplicates "included": papi's txBestBlocksState subscription can fire
|
|
177
|
+
* with found=true multiple times (tx can appear/reappear across best-block
|
|
178
|
+
* updates), so without dedup the status line prints twice (#891). "included" is
|
|
179
|
+
* passed through only once per attempt; reset() clears the seen flag so the
|
|
180
|
+
* next attempt can emit it again if it succeeds through a different path.
|
|
181
|
+
*
|
|
157
182
|
* Closes two leak paths (issue #704):
|
|
158
183
|
* 1. Retry-recovered: attempt N emits "failed" before throwing; a later attempt
|
|
159
184
|
* succeeds → reset() at the top of the next iteration discards the buffer,
|
|
@@ -327,9 +352,11 @@ declare class ReviveClientWrapper {
|
|
|
327
352
|
};
|
|
328
353
|
verifyEffect?: () => Promise<boolean>;
|
|
329
354
|
feeAsset?: "pgas";
|
|
355
|
+
isPhoneSigner?: boolean;
|
|
356
|
+
onResign?: (attempt: number) => Promise<void>;
|
|
330
357
|
}): Promise<TxResolution>;
|
|
331
358
|
private dryRunReviveCall;
|
|
332
|
-
submitTransaction(contractAddress: string, value: bigint, encodedData: string, signerSubstrateAddress: string, signer: PolkadotSigner, statusCallback: (status: string) => void, { rpcs, useNoncePolling, functionName, args, contracts, verifyEffect, feeAsset }: {
|
|
359
|
+
submitTransaction(contractAddress: string, value: bigint, encodedData: string, signerSubstrateAddress: string, signer: PolkadotSigner, statusCallback: (status: string) => void, { rpcs, useNoncePolling, functionName, args, contracts, verifyEffect, feeAsset, isPhoneSigner, onResign }: {
|
|
333
360
|
rpcs: string[];
|
|
334
361
|
useNoncePolling?: boolean;
|
|
335
362
|
functionName?: string;
|
|
@@ -337,6 +364,8 @@ declare class ReviveClientWrapper {
|
|
|
337
364
|
contracts?: Record<string, string>;
|
|
338
365
|
verifyEffect?: () => Promise<boolean>;
|
|
339
366
|
feeAsset?: "pgas";
|
|
367
|
+
isPhoneSigner?: boolean;
|
|
368
|
+
onResign?: (attempt: number) => Promise<void>;
|
|
340
369
|
}): Promise<TxResolution>;
|
|
341
370
|
submitBatchedTransactions(calls: {
|
|
342
371
|
contractAddress: string;
|
|
@@ -422,6 +451,8 @@ declare class DotNS {
|
|
|
422
451
|
connected: boolean;
|
|
423
452
|
assetHubEndpoints: string[];
|
|
424
453
|
private _usesExternalSigner;
|
|
454
|
+
/** True only when the signer is a real phone/session signer that needs `_awaitPhoneReady`. */
|
|
455
|
+
private _isPhoneSigner;
|
|
425
456
|
private _localMnemonic;
|
|
426
457
|
private _contracts;
|
|
427
458
|
private _nativeToEthRatio;
|
|
@@ -642,4 +673,4 @@ declare class DotNS {
|
|
|
642
673
|
}
|
|
643
674
|
declare const dotns: DotNS;
|
|
644
675
|
|
|
645
|
-
export { ATTR_TX_RESOLUTION_KIND, type AliasAccountClassification, type AliasAccountState, CONNECTION_TIMEOUT_MS, CONTRACTS, ContractDryRunRevertError, DECIMALS, DEFAULT_MNEMONIC, DOTNS_TX_MAX_ATTEMPTS, DOT_NODE, DotNS, type DotNSConnectOptions, type DotnsPreflightResult, type DotnsSuccessAction, MINIMUM_REGISTER_STORAGE_DEPOSIT, NATIVE_TO_ETH_RATIO, OPERATION_TIMEOUT_MS, type OwnershipResult, PUBLISHER_ABI, type ParsedDomainName, type PhoneSignatureStep, type PriceValidationResult, ProofOfPersonhoodStatus, PublisherNotSupportedError, RPC_ENDPOINTS, TX_CHAIN_TIME_BUDGET_MS, TX_KIND_HASH, TX_KIND_NONCE_ADVANCED, TX_NO_PROGRESS_MS, TX_TIMEOUT_MS, TX_WALL_CLOCK_CEILING_MS, type TxResolution, WS_HEARTBEAT_TIMEOUT_MS, __formatContractDryRunFailureForTest, bufferedWeiToNative, canRegister, classifyAliasAccountRow, classifyDotnsLabel, classifyTxRetryDecision, computeDomainTokenId, convertToHexString, convertWeiToNative, countTrailingDigits, decodePublisherRevert, dotns, dotnsRetryBackoffMs, feeFloorFor, fetchNonce, fmtPas, formatDispatchError, formatPersonhoodRemediation, formatPopShortfallReason, isCommitmentMature, isCommitmentTimingBarerevert, makeRetryStatusFilter, parseDomainName, parseProofOfPersonhoodStatus, popStatusName, registerDepositWei, sanitizeDomainLabel, shouldRetryTxAttempt, stripTrailingDigits, validateDomainLabel, verifyNonceAdvanced, weiToNative };
|
|
676
|
+
export { ATTR_TX_RESOLUTION_KIND, type AliasAccountClassification, type AliasAccountState, CONNECTION_TIMEOUT_MS, CONTRACTS, ContractDryRunRevertError, DECIMALS, DEFAULT_MNEMONIC, DOTNS_TX_MAX_ATTEMPTS, DOT_NODE, DotNS, type DotNSConnectOptions, type DotnsPreflightResult, type DotnsSuccessAction, MINIMUM_REGISTER_STORAGE_DEPOSIT, NATIVE_TO_ETH_RATIO, OPERATION_TIMEOUT_MS, type OwnershipResult, PUBLISHER_ABI, type ParsedDomainName, type PhoneSignatureStep, type PriceValidationResult, ProofOfPersonhoodStatus, PublisherNotSupportedError, RPC_ENDPOINTS, TX_CHAIN_TIME_BUDGET_MS, TX_KIND_HASH, TX_KIND_NONCE_ADVANCED, TX_NO_PROGRESS_MS, TX_TIMEOUT_MS, TX_WALL_CLOCK_CEILING_MS, type TxResolution, VERIFY_EFFECT_CHAIN_SECONDS, WS_HEARTBEAT_TIMEOUT_MS, __formatContractDryRunFailureForTest, bufferedWeiToNative, canRegister, classifyAliasAccountRow, classifyDotnsLabel, classifyTxRetryDecision, computeDomainTokenId, convertToHexString, convertWeiToNative, countTrailingDigits, decodePublisherRevert, dotns, dotnsRetryBackoffMs, feeFloorFor, fetchNonce, fmtPas, formatDispatchError, formatPersonhoodRemediation, formatPopShortfallReason, isCommitmentMature, isCommitmentTimingBarerevert, makeRetryStatusFilter, parseDomainName, parseProofOfPersonhoodStatus, popStatusName, registerDepositWei, sanitizeDomainLabel, shouldRegateBeforeResign, shouldRetryTxAttempt, stripTrailingDigits, validateDomainLabel, verifyNonceAdvanced, weiToNative };
|
package/dist/dotns.js
CHANGED
|
@@ -21,6 +21,7 @@ import {
|
|
|
21
21
|
TX_NO_PROGRESS_MS,
|
|
22
22
|
TX_TIMEOUT_MS,
|
|
23
23
|
TX_WALL_CLOCK_CEILING_MS,
|
|
24
|
+
VERIFY_EFFECT_CHAIN_SECONDS,
|
|
24
25
|
WS_HEARTBEAT_TIMEOUT_MS,
|
|
25
26
|
__formatContractDryRunFailureForTest,
|
|
26
27
|
bufferedWeiToNative,
|
|
@@ -49,17 +50,18 @@ import {
|
|
|
49
50
|
popStatusName,
|
|
50
51
|
registerDepositWei,
|
|
51
52
|
sanitizeDomainLabel,
|
|
53
|
+
shouldRegateBeforeResign,
|
|
52
54
|
shouldRetryTxAttempt,
|
|
53
55
|
stripTrailingDigits,
|
|
54
56
|
validateDomainLabel,
|
|
55
57
|
verifyNonceAdvanced,
|
|
56
58
|
weiToNative
|
|
57
|
-
} from "./chunk-
|
|
59
|
+
} from "./chunk-RC3CVUOG.js";
|
|
58
60
|
import "./chunk-SI2ZUOYD.js";
|
|
59
|
-
import "./chunk-
|
|
60
|
-
import "./chunk-
|
|
61
|
-
import "./chunk-
|
|
62
|
-
import "./chunk-
|
|
61
|
+
import "./chunk-MRQPJLPS.js";
|
|
62
|
+
import "./chunk-4CQ75L4W.js";
|
|
63
|
+
import "./chunk-GQNCLVZM.js";
|
|
64
|
+
import "./chunk-JSYQ3JQS.js";
|
|
63
65
|
import "./chunk-ZOC4GITL.js";
|
|
64
66
|
export {
|
|
65
67
|
ATTR_TX_RESOLUTION_KIND,
|
|
@@ -84,6 +86,7 @@ export {
|
|
|
84
86
|
TX_NO_PROGRESS_MS,
|
|
85
87
|
TX_TIMEOUT_MS,
|
|
86
88
|
TX_WALL_CLOCK_CEILING_MS,
|
|
89
|
+
VERIFY_EFFECT_CHAIN_SECONDS,
|
|
87
90
|
WS_HEARTBEAT_TIMEOUT_MS,
|
|
88
91
|
__formatContractDryRunFailureForTest,
|
|
89
92
|
bufferedWeiToNative,
|
|
@@ -112,6 +115,7 @@ export {
|
|
|
112
115
|
popStatusName,
|
|
113
116
|
registerDepositWei,
|
|
114
117
|
sanitizeDomainLabel,
|
|
118
|
+
shouldRegateBeforeResign,
|
|
115
119
|
shouldRetryTxAttempt,
|
|
116
120
|
stripTrailingDigits,
|
|
117
121
|
validateDomainLabel,
|
package/dist/environments.d.ts
CHANGED
|
@@ -29,6 +29,7 @@ interface Environment {
|
|
|
29
29
|
registerStorageDeposit?: number;
|
|
30
30
|
contracts?: Record<string, string>;
|
|
31
31
|
popSelfServe?: PopSelfServeConfig;
|
|
32
|
+
bulletinAutoAuthorize?: boolean;
|
|
32
33
|
}
|
|
33
34
|
interface ChainEndpoint {
|
|
34
35
|
wss: string | string[];
|
|
@@ -66,6 +67,7 @@ interface ResolvedEndpoints {
|
|
|
66
67
|
contracts: Record<string, string>;
|
|
67
68
|
nativeToEthRatio: bigint;
|
|
68
69
|
registerStorageDeposit?: bigint;
|
|
70
|
+
bulletinAutoAuthorize: boolean;
|
|
69
71
|
}
|
|
70
72
|
declare function defaultBundledPath(): string;
|
|
71
73
|
/**
|