@parity/product-deploy 0.9.0-rc.5 → 0.9.0-rc.6
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/dist/auth-config.js +3 -3
- package/dist/bug-report.js +4 -4
- package/dist/{chunk-GCB2CBWY.js → chunk-2XBLLNDK.js} +2 -2
- package/dist/chunk-6GGRUTTC.js +65 -0
- package/dist/{chunk-PIMDUGXF.js → chunk-ELX3YZQG.js} +3 -3
- package/dist/{chunk-G56VYTUD.js → chunk-GRPLHUYC.js} +8 -0
- package/dist/{chunk-QFHJ6UZR.js → chunk-HGEYWE2P.js} +1 -1
- package/dist/{chunk-4ALSZUMX.js → chunk-LIAEGW76.js} +1 -1
- package/dist/{chunk-KOPUAI2J.js → chunk-NEWDQKA3.js} +2 -2
- package/dist/{chunk-RXCSEXK5.js → chunk-NRDXKYWQ.js} +18 -12
- package/dist/{chunk-L5Z3TJD7.js → chunk-OCKCB72S.js} +6 -6
- package/dist/{chunk-BFFM47OS.js → chunk-SHQZFLPN.js} +1 -1
- package/dist/{chunk-BEJBYAB5.js → chunk-T4WUEPAS.js} +1 -1
- package/dist/{chunk-7NKTNSFV.js → chunk-ZL7KBV52.js} +1 -1
- package/dist/chunk-probe.js +3 -3
- package/dist/commands/login.js +15 -13
- package/dist/commands/logout.js +8 -3
- package/dist/commands/whoami.js +3 -3
- package/dist/deploy.js +10 -9
- package/dist/dotns.js +3 -3
- package/dist/index.js +16 -15
- package/dist/manifest/publish.js +11 -10
- package/dist/memory-report.js +2 -2
- package/dist/merkle.js +10 -9
- package/dist/personhood/bind-paid-alias.js +3 -3
- package/dist/personhood/bind-personal-id.js +2 -2
- package/dist/personhood/bootstrap.js +10 -10
- package/dist/personhood/claim-pgas.js +2 -2
- package/dist/personhood/people-client.js +3 -3
- package/dist/personhood/proof-validity.js +2 -2
- package/dist/personhood/reprove.js +5 -5
- package/dist/run-state.js +1 -1
- package/dist/sss-allowance-cache.d.ts +70 -0
- package/dist/sss-allowance-cache.js +20 -0
- package/dist/sss-allowance.d.ts +32 -1
- package/dist/sss-allowance.js +5 -3
- package/dist/storage-signer.js +10 -9
- package/dist/telemetry.js +2 -2
- package/dist/version-check.js +3 -3
- package/package.json +3 -3
- package/dist/{chunk-LHLCPDGL.js → chunk-7URNKK6J.js} +3 -3
- package/dist/{chunk-7Y7RDOGT.js → chunk-EATOPQFR.js} +5 -5
- package/dist/{chunk-SLE4P6MO.js → chunk-EJI3MX4G.js} +3 -3
package/dist/auth-config.js
CHANGED
|
@@ -9,9 +9,9 @@ import {
|
|
|
9
9
|
getPeopleChainEndpoints,
|
|
10
10
|
hasPersistedSession,
|
|
11
11
|
resolveBulletinEndpoints
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
12
|
+
} from "./chunk-HGEYWE2P.js";
|
|
13
|
+
import "./chunk-ZL7KBV52.js";
|
|
14
|
+
import "./chunk-ELX3YZQG.js";
|
|
15
15
|
import "./chunk-GL3U7K2B.js";
|
|
16
16
|
import "./chunk-ZOC4GITL.js";
|
|
17
17
|
export {
|
package/dist/bug-report.js
CHANGED
|
@@ -9,10 +9,10 @@ import {
|
|
|
9
9
|
offerBugReport,
|
|
10
10
|
scrubSecrets,
|
|
11
11
|
setDeployContext
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
12
|
+
} from "./chunk-NEWDQKA3.js";
|
|
13
|
+
import "./chunk-LIAEGW76.js";
|
|
14
|
+
import "./chunk-ZL7KBV52.js";
|
|
15
|
+
import "./chunk-ELX3YZQG.js";
|
|
16
16
|
export {
|
|
17
17
|
buildCliFlagsSummary,
|
|
18
18
|
buildLabels,
|
|
@@ -6,10 +6,10 @@ import {
|
|
|
6
6
|
resolveDotnsConnectOptions,
|
|
7
7
|
storeDirectory,
|
|
8
8
|
storeFile
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-NRDXKYWQ.js";
|
|
10
10
|
import {
|
|
11
11
|
DotNS
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-T4WUEPAS.js";
|
|
13
13
|
import {
|
|
14
14
|
getPopSelfServeConfig,
|
|
15
15
|
loadEnvironments,
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import {
|
|
2
|
+
checkSSSAllowance
|
|
3
|
+
} from "./chunk-GRPLHUYC.js";
|
|
4
|
+
import {
|
|
5
|
+
DOT_DAPP_ID
|
|
6
|
+
} from "./chunk-HGEYWE2P.js";
|
|
7
|
+
|
|
8
|
+
// src/sss-allowance-cache.ts
|
|
9
|
+
import { mkdir, readFile, writeFile, unlink } from "fs/promises";
|
|
10
|
+
import { homedir } from "os";
|
|
11
|
+
import { dirname, join } from "path";
|
|
12
|
+
var SECONDS_PER_DAY = 86400;
|
|
13
|
+
var CACHE_FILE = `${DOT_DAPP_ID}_SssAllowanceCheck.json`;
|
|
14
|
+
function sssPeriodEndSec(nowSec) {
|
|
15
|
+
return (Math.floor(nowSec / SECONDS_PER_DAY) + 1) * SECONDS_PER_DAY;
|
|
16
|
+
}
|
|
17
|
+
function cacheFilePath(storageDir) {
|
|
18
|
+
return join(storageDir ?? homedir(), ".polkadot-apps", CACHE_FILE);
|
|
19
|
+
}
|
|
20
|
+
function accountHex(account) {
|
|
21
|
+
return Buffer.from(account).toString("hex");
|
|
22
|
+
}
|
|
23
|
+
async function isSssAllowanceCacheValid(account, nowSec = Math.floor(Date.now() / 1e3), storageDir) {
|
|
24
|
+
try {
|
|
25
|
+
const raw = await readFile(cacheFilePath(storageDir), "utf-8");
|
|
26
|
+
const cached = JSON.parse(raw);
|
|
27
|
+
return cached.account === accountHex(account) && typeof cached.validUntilSec === "number" && nowSec < cached.validUntilSec;
|
|
28
|
+
} catch {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
async function writeSssAllowanceCache(account, nowSec = Math.floor(Date.now() / 1e3), storageDir) {
|
|
33
|
+
const payload = JSON.stringify({
|
|
34
|
+
account: accountHex(account),
|
|
35
|
+
validUntilSec: sssPeriodEndSec(nowSec)
|
|
36
|
+
});
|
|
37
|
+
const path = cacheFilePath(storageDir);
|
|
38
|
+
try {
|
|
39
|
+
await mkdir(dirname(path), { recursive: true, mode: 448 });
|
|
40
|
+
await writeFile(path, payload, "utf-8");
|
|
41
|
+
} catch {
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
async function clearSssAllowanceCache(storageDir) {
|
|
45
|
+
try {
|
|
46
|
+
await unlink(cacheFilePath(storageDir));
|
|
47
|
+
} catch {
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
async function preflightSssAllowance(account, getPeopleEndpoints) {
|
|
51
|
+
if (!account) return null;
|
|
52
|
+
if (await isSssAllowanceCacheValid(account)) return true;
|
|
53
|
+
const allowed = await checkSSSAllowance(account, await getPeopleEndpoints());
|
|
54
|
+
if (allowed === true) await writeSssAllowanceCache(account);
|
|
55
|
+
else if (allowed === false) await clearSssAllowanceCache();
|
|
56
|
+
return allowed;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export {
|
|
60
|
+
sssPeriodEndSec,
|
|
61
|
+
isSssAllowanceCacheValid,
|
|
62
|
+
writeSssAllowanceCache,
|
|
63
|
+
clearSssAllowanceCache,
|
|
64
|
+
preflightSssAllowance
|
|
65
|
+
};
|
|
@@ -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.9.0-rc.
|
|
9
|
+
version: "0.9.0-rc.6",
|
|
10
10
|
private: false,
|
|
11
11
|
repository: {
|
|
12
12
|
type: "git",
|
|
@@ -50,11 +50,11 @@ var package_default = {
|
|
|
50
50
|
"tools/release-retry-wrapper.mjs"
|
|
51
51
|
],
|
|
52
52
|
scripts: {
|
|
53
|
-
build: "tsup src/index.ts src/deploy.ts src/dotns.ts src/pool.ts src/telemetry.ts src/memory-report.ts src/merkle.ts src/gh-pages-mirror.ts src/version-check.ts src/bug-report.ts src/run-state.ts src/environments.ts src/errors.ts src/manifest.ts src/chunk-probe.ts src/manifest-embed.ts src/manifest-fetch.ts src/manifest-roundtrip.ts src/incremental-stats.ts src/chunker.ts src/personhood/encoding.ts src/personhood/hashing.ts src/personhood/constants.ts src/personhood/member-key.ts src/personhood/people-client.ts src/personhood/proof-validity.ts src/personhood/reprove.ts src/personhood/bind-personal-id.ts src/personhood/claim-pgas.ts src/personhood/bind-paid-alias.ts src/personhood/bootstrap.ts src/personhood/chain-prereqs.ts src/manifest/types.ts src/manifest/schema.ts src/manifest/byte-budget.ts src/manifest/config-load.ts src/manifest/publish.ts src/auth/index.ts src/auth/vendor/index.ts src/auth/vendor/ui/index.ts src/auth-config.ts src/commands/login.ts src/commands/logout.ts src/commands/whoami.ts src/storage-signer.ts src/spinner.ts src/sss-allowance.ts --format esm --dts --clean --target node22",
|
|
53
|
+
build: "tsup src/index.ts src/deploy.ts src/dotns.ts src/pool.ts src/telemetry.ts src/memory-report.ts src/merkle.ts src/gh-pages-mirror.ts src/version-check.ts src/bug-report.ts src/run-state.ts src/environments.ts src/errors.ts src/manifest.ts src/chunk-probe.ts src/manifest-embed.ts src/manifest-fetch.ts src/manifest-roundtrip.ts src/incremental-stats.ts src/chunker.ts src/personhood/encoding.ts src/personhood/hashing.ts src/personhood/constants.ts src/personhood/member-key.ts src/personhood/people-client.ts src/personhood/proof-validity.ts src/personhood/reprove.ts src/personhood/bind-personal-id.ts src/personhood/claim-pgas.ts src/personhood/bind-paid-alias.ts src/personhood/bootstrap.ts src/personhood/chain-prereqs.ts src/manifest/types.ts src/manifest/schema.ts src/manifest/byte-budget.ts src/manifest/config-load.ts src/manifest/publish.ts src/auth/index.ts src/auth/vendor/index.ts src/auth/vendor/ui/index.ts src/auth-config.ts src/commands/login.ts src/commands/logout.ts src/commands/whoami.ts src/storage-signer.ts src/spinner.ts src/sss-allowance.ts src/sss-allowance-cache.ts --format esm --dts --clean --target node22",
|
|
54
54
|
"refresh-environments": "node scripts/refresh-environments.mjs",
|
|
55
55
|
postinstall: "patch-package || true",
|
|
56
56
|
prepare: "npm run build",
|
|
57
|
-
test: "npm run build && node --test test/test.js test/cli-help.test.js test/helpers/e2e-helpers.test.js test/environments.test.js test/refresh-environments.test.js test/chunk-sharing-report.test.js test/product-manifest.test.js test/cache-savings-totals.test.js test/error-pattern-signature.test.js test/exit-codes.test.js test/probe-env-health.test.js test/e2e-chain-calls.test.js test/auth-config.test.js test/whoami.test.js test/login.test.js test/logout.test.js test/auth-resolve.test.js test/storage-signer.test.js test/spinner.test.js test/sss-allowance.test.js && npm run test:vendor",
|
|
57
|
+
test: "npm run build && node --test test/test.js test/cli-help.test.js test/helpers/e2e-helpers.test.js test/environments.test.js test/refresh-environments.test.js test/chunk-sharing-report.test.js test/product-manifest.test.js test/cache-savings-totals.test.js test/error-pattern-signature.test.js test/exit-codes.test.js test/probe-env-health.test.js test/e2e-chain-calls.test.js test/auth-config.test.js test/whoami.test.js test/login.test.js test/logout.test.js test/auth-resolve.test.js test/storage-signer.test.js test/spinner.test.js test/sss-allowance.test.js test/sss-allowance-cache.test.js && npm run test:vendor",
|
|
58
58
|
"test:e2e": "npm run build && node --test test/e2e.test.js",
|
|
59
59
|
"test:e2e:smoke": "bash scripts/e2e-pass.sh smoke",
|
|
60
60
|
"test:e2e:pr": "bash scripts/e2e-pass.sh pr",
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
// src/sss-allowance.ts
|
|
2
2
|
import WebSocket from "ws";
|
|
3
|
+
function statementSigningAccount(userSession) {
|
|
4
|
+
const accountId = userSession?.localAccount?.accountId;
|
|
5
|
+
if (accountId instanceof Uint8Array && accountId.length === 32) {
|
|
6
|
+
return accountId;
|
|
7
|
+
}
|
|
8
|
+
return null;
|
|
9
|
+
}
|
|
3
10
|
var SSS_PREFIX = new TextEncoder().encode(":statement_allowance:");
|
|
4
11
|
function sssStorageKey(pubkey) {
|
|
5
12
|
if (pubkey.length !== 32) {
|
|
@@ -70,6 +77,7 @@ function checkSSSAllowance(pubkey, peopleEndpoints, timeoutMs = 5e3) {
|
|
|
70
77
|
}
|
|
71
78
|
|
|
72
79
|
export {
|
|
80
|
+
statementSigningAccount,
|
|
73
81
|
sssStorageKey,
|
|
74
82
|
checkSSSAllowance
|
|
75
83
|
};
|
|
@@ -2,11 +2,11 @@ import {
|
|
|
2
2
|
classifyErrorArea,
|
|
3
3
|
isInteractive,
|
|
4
4
|
promptYesNo
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-LIAEGW76.js";
|
|
6
6
|
import {
|
|
7
7
|
VERSION,
|
|
8
8
|
getCurrentSentryTraceId
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-ZL7KBV52.js";
|
|
10
10
|
|
|
11
11
|
// src/bug-report.ts
|
|
12
12
|
import { execSync, execFileSync } from "child_process";
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
} from "./chunk-
|
|
2
|
+
preflightSssAllowance
|
|
3
|
+
} from "./chunk-6GGRUTTC.js";
|
|
4
|
+
import {
|
|
5
|
+
statementSigningAccount
|
|
6
|
+
} from "./chunk-GRPLHUYC.js";
|
|
4
7
|
import {
|
|
5
8
|
MirrorSkipped,
|
|
6
9
|
mirrorToGitHubPages,
|
|
@@ -31,13 +34,13 @@ import {
|
|
|
31
34
|
STALE_SESSION_MESSAGE,
|
|
32
35
|
getPeopleChainEndpoints,
|
|
33
36
|
hasPersistedSession
|
|
34
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-HGEYWE2P.js";
|
|
35
38
|
import {
|
|
36
39
|
setDeployContext
|
|
37
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-NEWDQKA3.js";
|
|
38
41
|
import {
|
|
39
42
|
probeChunks
|
|
40
|
-
} from "./chunk-
|
|
43
|
+
} from "./chunk-SHQZFLPN.js";
|
|
41
44
|
import {
|
|
42
45
|
packSection
|
|
43
46
|
} from "./chunk-C2TS5MER.js";
|
|
@@ -50,7 +53,7 @@ import {
|
|
|
50
53
|
parseDomainName,
|
|
51
54
|
popStatusName,
|
|
52
55
|
verifyNonceAdvanced
|
|
53
|
-
} from "./chunk-
|
|
56
|
+
} from "./chunk-T4WUEPAS.js";
|
|
54
57
|
import {
|
|
55
58
|
derivePoolAccounts,
|
|
56
59
|
detectTestnet,
|
|
@@ -72,7 +75,7 @@ import {
|
|
|
72
75
|
truncateAddress,
|
|
73
76
|
withDeploySpan,
|
|
74
77
|
withSpan
|
|
75
|
-
} from "./chunk-
|
|
78
|
+
} from "./chunk-ZL7KBV52.js";
|
|
76
79
|
import {
|
|
77
80
|
DEFAULT_ENV_ID,
|
|
78
81
|
getPopSelfServeConfig,
|
|
@@ -1979,14 +1982,17 @@ async function deploy(content, domainName = null, options = {}) {
|
|
|
1979
1982
|
}
|
|
1980
1983
|
}
|
|
1981
1984
|
}
|
|
1982
|
-
|
|
1985
|
+
const statementAccount = resolvedUserSession && options.signer ? statementSigningAccount(resolvedUserSession.userSession) : null;
|
|
1986
|
+
if (statementAccount) {
|
|
1983
1987
|
try {
|
|
1984
|
-
|
|
1985
|
-
|
|
1986
|
-
|
|
1988
|
+
if (process.env.DOT_DEBUG) {
|
|
1989
|
+
const { ss58Encode } = await import("@parity/product-sdk-address");
|
|
1990
|
+
console.log(` [sss] checking statement-store allowance for ${ss58Encode(statementAccount)}`);
|
|
1991
|
+
}
|
|
1992
|
+
const allowed = await preflightSssAllowance(statementAccount, () => getPeopleChainEndpoints(envId));
|
|
1987
1993
|
if (allowed === false) {
|
|
1988
1994
|
throw new NonRetryableError(
|
|
1989
|
-
"Session signing allowance has expired (~2-3 days after login). Run `bulletin-deploy
|
|
1995
|
+
"Session signing allowance has expired (~2-3 days after login). Run `bulletin-deploy logout`, then `bulletin-deploy login`, to renew (login alone won't refresh a stale session)."
|
|
1990
1996
|
);
|
|
1991
1997
|
}
|
|
1992
1998
|
} catch (e) {
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import {
|
|
2
2
|
buildAliasProofMessage,
|
|
3
3
|
getProofValidAtSec
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-EJI3MX4G.js";
|
|
5
|
+
import {
|
|
6
|
+
bytesToHex,
|
|
7
|
+
encodeMembers,
|
|
8
|
+
hexToBytes
|
|
9
|
+
} from "./chunk-ZYVGHDMU.js";
|
|
5
10
|
import {
|
|
6
11
|
PEOPLE_MEMBER_IDENTIFIER_HEX,
|
|
7
12
|
PGAS_ASSET_ID,
|
|
8
13
|
PGAS_ASSET_LOCATION,
|
|
9
14
|
PROOF_BYTES
|
|
10
15
|
} from "./chunk-SI2ZUOYD.js";
|
|
11
|
-
import {
|
|
12
|
-
bytesToHex,
|
|
13
|
-
encodeMembers,
|
|
14
|
-
hexToBytes
|
|
15
|
-
} from "./chunk-ZYVGHDMU.js";
|
|
16
16
|
|
|
17
17
|
// src/personhood/bind-paid-alias.ts
|
|
18
18
|
import { getSs58AddressInfo, Binary } from "polkadot-api";
|
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-SHQZFLPN.js";
|
|
9
|
+
import "./chunk-ZL7KBV52.js";
|
|
10
|
+
import "./chunk-ELX3YZQG.js";
|
|
11
11
|
export {
|
|
12
12
|
ChainProbeCrossValidationError,
|
|
13
13
|
ChainProbeMetadataError,
|
package/dist/commands/login.js
CHANGED
|
@@ -8,10 +8,13 @@ import {
|
|
|
8
8
|
} from "../chunk-J7CYVTAW.js";
|
|
9
9
|
import {
|
|
10
10
|
waitForBulletinAuthorization
|
|
11
|
-
} from "../chunk-
|
|
11
|
+
} from "../chunk-NRDXKYWQ.js";
|
|
12
12
|
import {
|
|
13
|
-
|
|
14
|
-
} from "../chunk-
|
|
13
|
+
preflightSssAllowance
|
|
14
|
+
} from "../chunk-6GGRUTTC.js";
|
|
15
|
+
import {
|
|
16
|
+
statementSigningAccount
|
|
17
|
+
} from "../chunk-GRPLHUYC.js";
|
|
15
18
|
import "../chunk-HOTQDYHD.js";
|
|
16
19
|
import "../chunk-IW3X2MJF.js";
|
|
17
20
|
import "../chunk-KOSF5FDO.js";
|
|
@@ -22,15 +25,15 @@ import {
|
|
|
22
25
|
getAuthClient,
|
|
23
26
|
getPeopleChainEndpoints,
|
|
24
27
|
resolveBulletinEndpoints
|
|
25
|
-
} from "../chunk-
|
|
26
|
-
import "../chunk-
|
|
27
|
-
import "../chunk-
|
|
28
|
-
import "../chunk-
|
|
28
|
+
} from "../chunk-HGEYWE2P.js";
|
|
29
|
+
import "../chunk-NEWDQKA3.js";
|
|
30
|
+
import "../chunk-LIAEGW76.js";
|
|
31
|
+
import "../chunk-SHQZFLPN.js";
|
|
29
32
|
import "../chunk-C2TS5MER.js";
|
|
30
|
-
import "../chunk-
|
|
33
|
+
import "../chunk-T4WUEPAS.js";
|
|
31
34
|
import "../chunk-4PVJ2JBZ.js";
|
|
32
|
-
import "../chunk-
|
|
33
|
-
import "../chunk-
|
|
35
|
+
import "../chunk-ZL7KBV52.js";
|
|
36
|
+
import "../chunk-ELX3YZQG.js";
|
|
34
37
|
import {
|
|
35
38
|
loadEnvironments
|
|
36
39
|
} from "../chunk-GL3U7K2B.js";
|
|
@@ -90,9 +93,8 @@ async function runLogin(envId, _opts = {}) {
|
|
|
90
93
|
const sessionHandle = await client.getSessionSigner();
|
|
91
94
|
if (sessionHandle) {
|
|
92
95
|
try {
|
|
93
|
-
const
|
|
94
|
-
const
|
|
95
|
-
const allowed = await checkSSSAllowance(productPubkey, peopleEndpoints);
|
|
96
|
+
const statementAccount = statementSigningAccount(sessionHandle.userSession);
|
|
97
|
+
const allowed = await preflightSssAllowance(statementAccount, () => getPeopleChainEndpoints(envId));
|
|
96
98
|
if (allowed === false) {
|
|
97
99
|
console.error(
|
|
98
100
|
`
|
package/dist/commands/logout.js
CHANGED
|
@@ -3,11 +3,15 @@ import "../chunk-DHY2ZXVZ.js";
|
|
|
3
3
|
import {
|
|
4
4
|
renderLogoutStatus
|
|
5
5
|
} from "../chunk-RIRDBSBG.js";
|
|
6
|
+
import {
|
|
7
|
+
clearSssAllowanceCache
|
|
8
|
+
} from "../chunk-6GGRUTTC.js";
|
|
9
|
+
import "../chunk-GRPLHUYC.js";
|
|
6
10
|
import {
|
|
7
11
|
getAuthClient
|
|
8
|
-
} from "../chunk-
|
|
9
|
-
import "../chunk-
|
|
10
|
-
import "../chunk-
|
|
12
|
+
} from "../chunk-HGEYWE2P.js";
|
|
13
|
+
import "../chunk-ZL7KBV52.js";
|
|
14
|
+
import "../chunk-ELX3YZQG.js";
|
|
11
15
|
import "../chunk-GL3U7K2B.js";
|
|
12
16
|
import "../chunk-ZOC4GITL.js";
|
|
13
17
|
|
|
@@ -31,6 +35,7 @@ async function runLogout(envId) {
|
|
|
31
35
|
await client.clearLocalAppStorage();
|
|
32
36
|
} catch {
|
|
33
37
|
}
|
|
38
|
+
await clearSssAllowanceCache();
|
|
34
39
|
}
|
|
35
40
|
}
|
|
36
41
|
export {
|
package/dist/commands/whoami.js
CHANGED
|
@@ -2,9 +2,9 @@ import {
|
|
|
2
2
|
STALE_SESSION_MESSAGE,
|
|
3
3
|
getAuthClient,
|
|
4
4
|
hasPersistedSession
|
|
5
|
-
} from "../chunk-
|
|
6
|
-
import "../chunk-
|
|
7
|
-
import "../chunk-
|
|
5
|
+
} from "../chunk-HGEYWE2P.js";
|
|
6
|
+
import "../chunk-ZL7KBV52.js";
|
|
7
|
+
import "../chunk-ELX3YZQG.js";
|
|
8
8
|
import "../chunk-GL3U7K2B.js";
|
|
9
9
|
import "../chunk-ZOC4GITL.js";
|
|
10
10
|
|
package/dist/deploy.js
CHANGED
|
@@ -45,22 +45,23 @@ import {
|
|
|
45
45
|
storeDirectoryV2,
|
|
46
46
|
storeFile,
|
|
47
47
|
unpublish
|
|
48
|
-
} from "./chunk-
|
|
49
|
-
import "./chunk-
|
|
48
|
+
} from "./chunk-NRDXKYWQ.js";
|
|
49
|
+
import "./chunk-6GGRUTTC.js";
|
|
50
|
+
import "./chunk-GRPLHUYC.js";
|
|
50
51
|
import "./chunk-HOTQDYHD.js";
|
|
51
52
|
import "./chunk-IW3X2MJF.js";
|
|
52
53
|
import "./chunk-KOSF5FDO.js";
|
|
53
54
|
import "./chunk-J3NIXHZZ.js";
|
|
54
55
|
import "./chunk-S7EM5VMW.js";
|
|
55
|
-
import "./chunk-
|
|
56
|
-
import "./chunk-
|
|
57
|
-
import "./chunk-
|
|
58
|
-
import "./chunk-
|
|
56
|
+
import "./chunk-HGEYWE2P.js";
|
|
57
|
+
import "./chunk-NEWDQKA3.js";
|
|
58
|
+
import "./chunk-LIAEGW76.js";
|
|
59
|
+
import "./chunk-SHQZFLPN.js";
|
|
59
60
|
import "./chunk-C2TS5MER.js";
|
|
60
|
-
import "./chunk-
|
|
61
|
+
import "./chunk-T4WUEPAS.js";
|
|
61
62
|
import "./chunk-4PVJ2JBZ.js";
|
|
62
|
-
import "./chunk-
|
|
63
|
-
import "./chunk-
|
|
63
|
+
import "./chunk-ZL7KBV52.js";
|
|
64
|
+
import "./chunk-ELX3YZQG.js";
|
|
64
65
|
import "./chunk-GL3U7K2B.js";
|
|
65
66
|
import {
|
|
66
67
|
EXIT_CODE_NO_RETRY,
|
package/dist/dotns.js
CHANGED
|
@@ -50,10 +50,10 @@ import {
|
|
|
50
50
|
stripTrailingDigits,
|
|
51
51
|
validateDomainLabel,
|
|
52
52
|
verifyNonceAdvanced
|
|
53
|
-
} from "./chunk-
|
|
53
|
+
} from "./chunk-T4WUEPAS.js";
|
|
54
54
|
import "./chunk-4PVJ2JBZ.js";
|
|
55
|
-
import "./chunk-
|
|
56
|
-
import "./chunk-
|
|
55
|
+
import "./chunk-ZL7KBV52.js";
|
|
56
|
+
import "./chunk-ELX3YZQG.js";
|
|
57
57
|
import "./chunk-GL3U7K2B.js";
|
|
58
58
|
import "./chunk-ZOC4GITL.js";
|
|
59
59
|
export {
|
package/dist/index.js
CHANGED
|
@@ -5,9 +5,14 @@ import {
|
|
|
5
5
|
loadProductConfig,
|
|
6
6
|
tryLoadProductConfig
|
|
7
7
|
} from "./chunk-MMAZFJDG.js";
|
|
8
|
+
import {
|
|
9
|
+
validateExecutableManifest,
|
|
10
|
+
validateProductConfig,
|
|
11
|
+
validateRootManifest
|
|
12
|
+
} from "./chunk-LZJMVPYW.js";
|
|
8
13
|
import {
|
|
9
14
|
publishManifest
|
|
10
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-2XBLLNDK.js";
|
|
11
16
|
import {
|
|
12
17
|
DEFAULT_TEXT_RECORD_BUDGET_BYTES,
|
|
13
18
|
PLACEHOLDER_CID,
|
|
@@ -15,17 +20,13 @@ import {
|
|
|
15
20
|
getTextRecordBudgetBytes,
|
|
16
21
|
pessimisticSizePreflight
|
|
17
22
|
} from "./chunk-RI3ZLNPN.js";
|
|
18
|
-
import {
|
|
19
|
-
validateExecutableManifest,
|
|
20
|
-
validateProductConfig,
|
|
21
|
-
validateRootManifest
|
|
22
|
-
} from "./chunk-LZJMVPYW.js";
|
|
23
23
|
import {
|
|
24
24
|
deploy,
|
|
25
25
|
merkleizeJS,
|
|
26
26
|
merkleizeWithStableOrder
|
|
27
|
-
} from "./chunk-
|
|
28
|
-
import "./chunk-
|
|
27
|
+
} from "./chunk-NRDXKYWQ.js";
|
|
28
|
+
import "./chunk-6GGRUTTC.js";
|
|
29
|
+
import "./chunk-GRPLHUYC.js";
|
|
29
30
|
import "./chunk-HOTQDYHD.js";
|
|
30
31
|
import {
|
|
31
32
|
computeStats,
|
|
@@ -48,19 +49,19 @@ import {
|
|
|
48
49
|
isVolatilePath,
|
|
49
50
|
parseManifest
|
|
50
51
|
} from "./chunk-S7EM5VMW.js";
|
|
51
|
-
import "./chunk-
|
|
52
|
-
import "./chunk-
|
|
53
|
-
import "./chunk-
|
|
52
|
+
import "./chunk-HGEYWE2P.js";
|
|
53
|
+
import "./chunk-NEWDQKA3.js";
|
|
54
|
+
import "./chunk-LIAEGW76.js";
|
|
54
55
|
import {
|
|
55
56
|
probeChunks
|
|
56
|
-
} from "./chunk-
|
|
57
|
+
} from "./chunk-SHQZFLPN.js";
|
|
57
58
|
import "./chunk-C2TS5MER.js";
|
|
58
59
|
import {
|
|
59
60
|
DEFAULT_MNEMONIC,
|
|
60
61
|
DotNS,
|
|
61
62
|
parseDomainName,
|
|
62
63
|
sanitizeDomainLabel
|
|
63
|
-
} from "./chunk-
|
|
64
|
+
} from "./chunk-T4WUEPAS.js";
|
|
64
65
|
import {
|
|
65
66
|
bootstrapPool,
|
|
66
67
|
derivePoolAccounts,
|
|
@@ -68,7 +69,7 @@ import {
|
|
|
68
69
|
fetchPoolAuthorizations,
|
|
69
70
|
selectAccount
|
|
70
71
|
} from "./chunk-4PVJ2JBZ.js";
|
|
71
|
-
import "./chunk-
|
|
72
|
+
import "./chunk-ZL7KBV52.js";
|
|
72
73
|
import {
|
|
73
74
|
VERSION,
|
|
74
75
|
loadRunState,
|
|
@@ -78,7 +79,7 @@ import {
|
|
|
78
79
|
shouldSkipStaleWarning,
|
|
79
80
|
stateFilePath,
|
|
80
81
|
writeRunState
|
|
81
|
-
} from "./chunk-
|
|
82
|
+
} from "./chunk-ELX3YZQG.js";
|
|
82
83
|
import {
|
|
83
84
|
DEFAULT_ENV_ID,
|
|
84
85
|
deepMergeEnvironments,
|
package/dist/manifest/publish.js
CHANGED
|
@@ -1,23 +1,24 @@
|
|
|
1
1
|
import {
|
|
2
2
|
publishManifest
|
|
3
|
-
} from "../chunk-
|
|
3
|
+
} from "../chunk-2XBLLNDK.js";
|
|
4
4
|
import "../chunk-RI3ZLNPN.js";
|
|
5
|
-
import "../chunk-
|
|
6
|
-
import "../chunk-
|
|
5
|
+
import "../chunk-NRDXKYWQ.js";
|
|
6
|
+
import "../chunk-6GGRUTTC.js";
|
|
7
|
+
import "../chunk-GRPLHUYC.js";
|
|
7
8
|
import "../chunk-HOTQDYHD.js";
|
|
8
9
|
import "../chunk-IW3X2MJF.js";
|
|
9
10
|
import "../chunk-KOSF5FDO.js";
|
|
10
11
|
import "../chunk-J3NIXHZZ.js";
|
|
11
12
|
import "../chunk-S7EM5VMW.js";
|
|
12
|
-
import "../chunk-
|
|
13
|
-
import "../chunk-
|
|
14
|
-
import "../chunk-
|
|
15
|
-
import "../chunk-
|
|
13
|
+
import "../chunk-HGEYWE2P.js";
|
|
14
|
+
import "../chunk-NEWDQKA3.js";
|
|
15
|
+
import "../chunk-LIAEGW76.js";
|
|
16
|
+
import "../chunk-SHQZFLPN.js";
|
|
16
17
|
import "../chunk-C2TS5MER.js";
|
|
17
|
-
import "../chunk-
|
|
18
|
+
import "../chunk-T4WUEPAS.js";
|
|
18
19
|
import "../chunk-4PVJ2JBZ.js";
|
|
19
|
-
import "../chunk-
|
|
20
|
-
import "../chunk-
|
|
20
|
+
import "../chunk-ZL7KBV52.js";
|
|
21
|
+
import "../chunk-ELX3YZQG.js";
|
|
21
22
|
import "../chunk-GL3U7K2B.js";
|
|
22
23
|
import "../chunk-ZOC4GITL.js";
|
|
23
24
|
export {
|
package/dist/memory-report.js
CHANGED
package/dist/merkle.js
CHANGED
|
@@ -6,22 +6,23 @@ import {
|
|
|
6
6
|
merkleizeKuboBackend,
|
|
7
7
|
merkleizeWithStableOrder,
|
|
8
8
|
rebuildOrderedCarFromBytes
|
|
9
|
-
} from "./chunk-
|
|
10
|
-
import "./chunk-
|
|
9
|
+
} from "./chunk-NRDXKYWQ.js";
|
|
10
|
+
import "./chunk-6GGRUTTC.js";
|
|
11
|
+
import "./chunk-GRPLHUYC.js";
|
|
11
12
|
import "./chunk-HOTQDYHD.js";
|
|
12
13
|
import "./chunk-IW3X2MJF.js";
|
|
13
14
|
import "./chunk-KOSF5FDO.js";
|
|
14
15
|
import "./chunk-J3NIXHZZ.js";
|
|
15
16
|
import "./chunk-S7EM5VMW.js";
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
19
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-HGEYWE2P.js";
|
|
18
|
+
import "./chunk-NEWDQKA3.js";
|
|
19
|
+
import "./chunk-LIAEGW76.js";
|
|
20
|
+
import "./chunk-SHQZFLPN.js";
|
|
20
21
|
import "./chunk-C2TS5MER.js";
|
|
21
|
-
import "./chunk-
|
|
22
|
+
import "./chunk-T4WUEPAS.js";
|
|
22
23
|
import "./chunk-4PVJ2JBZ.js";
|
|
23
|
-
import "./chunk-
|
|
24
|
-
import "./chunk-
|
|
24
|
+
import "./chunk-ZL7KBV52.js";
|
|
25
|
+
import "./chunk-ELX3YZQG.js";
|
|
25
26
|
import "./chunk-GL3U7K2B.js";
|
|
26
27
|
import "./chunk-ZOC4GITL.js";
|
|
27
28
|
export {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
PaidAliasBindingError,
|
|
3
3
|
bindPaidAliasToAccount
|
|
4
|
-
} from "../chunk-
|
|
5
|
-
import "../chunk-
|
|
6
|
-
import "../chunk-SI2ZUOYD.js";
|
|
4
|
+
} from "../chunk-OCKCB72S.js";
|
|
5
|
+
import "../chunk-EJI3MX4G.js";
|
|
7
6
|
import "../chunk-ZYVGHDMU.js";
|
|
7
|
+
import "../chunk-SI2ZUOYD.js";
|
|
8
8
|
export {
|
|
9
9
|
PaidAliasBindingError,
|
|
10
10
|
bindPaidAliasToAccount
|
|
@@ -2,9 +2,9 @@ import {
|
|
|
2
2
|
PersonalIdBindingError,
|
|
3
3
|
bindPersonalIdToAccount,
|
|
4
4
|
buildAsPersonExtensionValue
|
|
5
|
-
} from "../chunk-
|
|
6
|
-
import "../chunk-SI2ZUOYD.js";
|
|
5
|
+
} from "../chunk-7URNKK6J.js";
|
|
7
6
|
import "../chunk-ZYVGHDMU.js";
|
|
7
|
+
import "../chunk-SI2ZUOYD.js";
|
|
8
8
|
export {
|
|
9
9
|
PersonalIdBindingError,
|
|
10
10
|
bindPersonalIdToAccount,
|
|
@@ -5,31 +5,31 @@ import {
|
|
|
5
5
|
import "../chunk-UPWEOGLQ.js";
|
|
6
6
|
import {
|
|
7
7
|
bindPaidAliasToAccount
|
|
8
|
-
} from "../chunk-
|
|
9
|
-
import "../chunk-
|
|
8
|
+
} from "../chunk-OCKCB72S.js";
|
|
9
|
+
import "../chunk-EJI3MX4G.js";
|
|
10
10
|
import {
|
|
11
11
|
bindPersonalIdToAccount
|
|
12
|
-
} from "../chunk-
|
|
12
|
+
} from "../chunk-7URNKK6J.js";
|
|
13
13
|
import {
|
|
14
14
|
runChainPrereqProbes
|
|
15
15
|
} from "../chunk-XAB7WM3S.js";
|
|
16
16
|
import {
|
|
17
17
|
claimPgas
|
|
18
|
-
} from "../chunk-
|
|
18
|
+
} from "../chunk-EATOPQFR.js";
|
|
19
|
+
import {
|
|
20
|
+
bytesToHex
|
|
21
|
+
} from "../chunk-ZYVGHDMU.js";
|
|
19
22
|
import {
|
|
20
23
|
DOTNS_CONTEXT_BYTES,
|
|
21
24
|
PEOPLE_MEMBER_IDENTIFIER_HEX,
|
|
22
25
|
PGAS_ASSET_ID
|
|
23
26
|
} from "../chunk-SI2ZUOYD.js";
|
|
24
|
-
import {
|
|
25
|
-
bytesToHex
|
|
26
|
-
} from "../chunk-ZYVGHDMU.js";
|
|
27
27
|
import {
|
|
28
28
|
WS_HEARTBEAT_TIMEOUT_MS
|
|
29
|
-
} from "../chunk-
|
|
29
|
+
} from "../chunk-T4WUEPAS.js";
|
|
30
30
|
import "../chunk-4PVJ2JBZ.js";
|
|
31
|
-
import "../chunk-
|
|
32
|
-
import "../chunk-
|
|
31
|
+
import "../chunk-ZL7KBV52.js";
|
|
32
|
+
import "../chunk-ELX3YZQG.js";
|
|
33
33
|
import {
|
|
34
34
|
loadEnvironments
|
|
35
35
|
} from "../chunk-GL3U7K2B.js";
|
|
@@ -3,9 +3,9 @@ import {
|
|
|
3
3
|
buildAsPgasClaimExtensionValue,
|
|
4
4
|
buildImplicationExclude,
|
|
5
5
|
claimPgas
|
|
6
|
-
} from "../chunk-
|
|
7
|
-
import "../chunk-SI2ZUOYD.js";
|
|
6
|
+
} from "../chunk-EATOPQFR.js";
|
|
8
7
|
import "../chunk-ZYVGHDMU.js";
|
|
8
|
+
import "../chunk-SI2ZUOYD.js";
|
|
9
9
|
export {
|
|
10
10
|
PgasClaimError,
|
|
11
11
|
buildAsPgasClaimExtensionValue,
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
WS_HEARTBEAT_TIMEOUT_MS
|
|
3
|
-
} from "../chunk-
|
|
3
|
+
} from "../chunk-T4WUEPAS.js";
|
|
4
4
|
import "../chunk-4PVJ2JBZ.js";
|
|
5
|
-
import "../chunk-
|
|
6
|
-
import "../chunk-
|
|
5
|
+
import "../chunk-ZL7KBV52.js";
|
|
6
|
+
import "../chunk-ELX3YZQG.js";
|
|
7
7
|
import {
|
|
8
8
|
loadEnvironments
|
|
9
9
|
} from "../chunk-GL3U7K2B.js";
|
|
@@ -2,9 +2,9 @@ import {
|
|
|
2
2
|
buildAliasProofMessage,
|
|
3
3
|
getProofValidAtSec,
|
|
4
4
|
u64LeBytes
|
|
5
|
-
} from "../chunk-
|
|
6
|
-
import "../chunk-SI2ZUOYD.js";
|
|
5
|
+
} from "../chunk-EJI3MX4G.js";
|
|
7
6
|
import "../chunk-ZYVGHDMU.js";
|
|
7
|
+
import "../chunk-SI2ZUOYD.js";
|
|
8
8
|
export {
|
|
9
9
|
buildAliasProofMessage,
|
|
10
10
|
getProofValidAtSec,
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
buildAliasProofMessage,
|
|
3
3
|
getProofValidAtSec
|
|
4
|
-
} from "../chunk-
|
|
5
|
-
import {
|
|
6
|
-
PEOPLE_MEMBER_IDENTIFIER_HEX,
|
|
7
|
-
PROOF_BYTES
|
|
8
|
-
} from "../chunk-SI2ZUOYD.js";
|
|
4
|
+
} from "../chunk-EJI3MX4G.js";
|
|
9
5
|
import {
|
|
10
6
|
bytesToHex,
|
|
11
7
|
encodeMembers,
|
|
12
8
|
hexToBytes
|
|
13
9
|
} from "../chunk-ZYVGHDMU.js";
|
|
10
|
+
import {
|
|
11
|
+
PEOPLE_MEMBER_IDENTIFIER_HEX,
|
|
12
|
+
PROOF_BYTES
|
|
13
|
+
} from "../chunk-SI2ZUOYD.js";
|
|
14
14
|
|
|
15
15
|
// src/personhood/reprove.ts
|
|
16
16
|
import { getSs58AddressInfo, Binary } from "polkadot-api";
|
package/dist/run-state.js
CHANGED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Conservative same-period cache for the SSS allowance preflight.
|
|
3
|
+
*
|
|
4
|
+
* The SSS allowance is a 1-day-period resource on the People chain (period =
|
|
5
|
+
* floor(unix_secs / 86_400), UTC-midnight-aligned) plus a chain-side grace
|
|
6
|
+
* window (~2 days, `StmtStoreGraceWindow`). The on-chain value carries NO
|
|
7
|
+
* expiry — expiry is enforced by *pruning* the key at period rollover + grace.
|
|
8
|
+
*
|
|
9
|
+
* We cannot read an authoritative expiry (unlike Bulletin, which stores one),
|
|
10
|
+
* and we must not bake the grace constant into the CLI (it lives in someone
|
|
11
|
+
* else's runtime and already changed once, in people PR #1022). But one fact is
|
|
12
|
+
* stable and safe: an allowance confirmed present during the current period
|
|
13
|
+
* CANNOT be pruned before the period ends (grace only extends validity beyond
|
|
14
|
+
* that). So "valid until the end of the current period" (next UTC midnight) is
|
|
15
|
+
* a STRICT lower bound — it deliberately discards the volatile grace, so it can
|
|
16
|
+
* never over-estimate even if the grace constant changes again.
|
|
17
|
+
*
|
|
18
|
+
* Within that window we skip the (sub-second) People-chain read; after it we
|
|
19
|
+
* fall through to the authoritative `checkSSSAllowance`. The cache is keyed by
|
|
20
|
+
* the statement-signing account so a different session never reads a stale hit.
|
|
21
|
+
*
|
|
22
|
+
* Clock skew: for a fresh grant (claimed this period, valid through +2 days of
|
|
23
|
+
* grace) the period boundary has ~2 days of slack, so skew is immaterial. The
|
|
24
|
+
* one tight case is the oldest still-valid grant — claimed two periods ago, it
|
|
25
|
+
* expires exactly at our boundary — where a local clock running behind chain
|
|
26
|
+
* time gives a skew-sized over-estimate. That residual is covered by the
|
|
27
|
+
* sessionSigner `NoAllowanceError` fast-fail backstop, not by this cache.
|
|
28
|
+
*
|
|
29
|
+
* The marker lives next to the bulletin slot cache (`~/.polkadot-apps`).
|
|
30
|
+
*/
|
|
31
|
+
/**
|
|
32
|
+
* End of the current SSS 1-day allowance period, in unix seconds. Equals the
|
|
33
|
+
* next UTC-midnight boundary. An allowance present in the current period is
|
|
34
|
+
* valid at least until this instant (grace extends it further), so it is a
|
|
35
|
+
* safe lower bound for skipping the chain read.
|
|
36
|
+
*/
|
|
37
|
+
declare function sssPeriodEndSec(nowSec: number): number;
|
|
38
|
+
/**
|
|
39
|
+
* True when a cached confirmation says THIS account's allowance is valid for
|
|
40
|
+
* the current period — letting the preflight skip the chain read. Conservative:
|
|
41
|
+
* only trusts the cache within the granting period. Any read/parse error or
|
|
42
|
+
* account mismatch → false (fall through to the authoritative check).
|
|
43
|
+
*/
|
|
44
|
+
declare function isSssAllowanceCacheValid(account: Uint8Array, nowSec?: number, storageDir?: string): Promise<boolean>;
|
|
45
|
+
/**
|
|
46
|
+
* Record that THIS account's allowance was confirmed present on-chain; valid
|
|
47
|
+
* (conservatively) until the end of the current 1-day period. Best-effort — a
|
|
48
|
+
* write failure just means the next deploy re-reads the chain.
|
|
49
|
+
*/
|
|
50
|
+
declare function writeSssAllowanceCache(account: Uint8Array, nowSec?: number, storageDir?: string): Promise<void>;
|
|
51
|
+
/**
|
|
52
|
+
* Drop the cached confirmation (e.g. when the chain reports the allowance is
|
|
53
|
+
* gone) so the next preflight re-reads the chain rather than trusting a hit.
|
|
54
|
+
*/
|
|
55
|
+
declare function clearSssAllowanceCache(storageDir?: string): Promise<void>;
|
|
56
|
+
/**
|
|
57
|
+
* Cached SSS allowance preflight, shared by the deploy and login paths.
|
|
58
|
+
*
|
|
59
|
+
* `true` — allowance present (same-period cache hit, or chain-confirmed and
|
|
60
|
+
* cache refreshed)
|
|
61
|
+
* `false` — chain-confirmed absent/expired (cache cleared); caller should
|
|
62
|
+
* surface the "run logout/login" guidance
|
|
63
|
+
* `null` — no statement account, or People chain unreachable → don't block
|
|
64
|
+
*
|
|
65
|
+
* On a cache hit it skips BOTH the chain read and the endpoint resolution, so
|
|
66
|
+
* `getPeopleEndpoints` is a thunk evaluated only on a miss.
|
|
67
|
+
*/
|
|
68
|
+
declare function preflightSssAllowance(account: Uint8Array | null, getPeopleEndpoints: () => Promise<string[]>): Promise<boolean | null>;
|
|
69
|
+
|
|
70
|
+
export { clearSssAllowanceCache, isSssAllowanceCacheValid, preflightSssAllowance, sssPeriodEndSec, writeSssAllowanceCache };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import {
|
|
2
|
+
clearSssAllowanceCache,
|
|
3
|
+
isSssAllowanceCacheValid,
|
|
4
|
+
preflightSssAllowance,
|
|
5
|
+
sssPeriodEndSec,
|
|
6
|
+
writeSssAllowanceCache
|
|
7
|
+
} from "./chunk-6GGRUTTC.js";
|
|
8
|
+
import "./chunk-GRPLHUYC.js";
|
|
9
|
+
import "./chunk-HGEYWE2P.js";
|
|
10
|
+
import "./chunk-ZL7KBV52.js";
|
|
11
|
+
import "./chunk-ELX3YZQG.js";
|
|
12
|
+
import "./chunk-GL3U7K2B.js";
|
|
13
|
+
import "./chunk-ZOC4GITL.js";
|
|
14
|
+
export {
|
|
15
|
+
clearSssAllowanceCache,
|
|
16
|
+
isSssAllowanceCacheValid,
|
|
17
|
+
preflightSssAllowance,
|
|
18
|
+
sssPeriodEndSec,
|
|
19
|
+
writeSssAllowanceCache
|
|
20
|
+
};
|
package/dist/sss-allowance.d.ts
CHANGED
|
@@ -7,8 +7,39 @@
|
|
|
7
7
|
* We can check this via a single `state_getStorage` RPC call — no transaction,
|
|
8
8
|
* no phone dialog. Non-null, non-"0x" result means the allowance is present.
|
|
9
9
|
*
|
|
10
|
+
* The stored value is `(used_bytes: u32, max_bytes: u32)` (e.g. `(2, 512000)`)
|
|
11
|
+
* — there is no expiry block in the value. Expiry is enforced chain-side by
|
|
12
|
+
* *pruning* the key when the allowance lapses, so key-present ⇔ allowance valid
|
|
13
|
+
* (and not expired). Verified empirically against paseo-next-v2 People.
|
|
14
|
+
*
|
|
15
|
+
* IMPORTANT — which account: the allowance belongs to the **statement-signing
|
|
16
|
+
* account** (the session's `localAccount`), NOT the product account. The
|
|
17
|
+
* product account signs on-chain extrinsics (DotNS records); it never writes
|
|
18
|
+
* to the statement store and therefore never holds an SSS allowance (its key
|
|
19
|
+
* is always null). The mobile-signing transport rides the statement store: the
|
|
20
|
+
* terminal publishes Request statements signed by `localAccount`, so that is
|
|
21
|
+
* the account the chain grants the allowance to at login. Use
|
|
22
|
+
* `statementSigningAccount(userSession)` to pick it — checking the product
|
|
23
|
+
* account is a false-negative that blocks every valid session.
|
|
24
|
+
*
|
|
10
25
|
* Reference: substrate/primitives/statement-store/src/lib.rs
|
|
11
26
|
*/
|
|
27
|
+
/**
|
|
28
|
+
* The account whose SSS allowance gates statement publishing for a session:
|
|
29
|
+
* the session's local (statement-signing) account. This is the account that
|
|
30
|
+
* signs the Request statements relayed to the phone — the one the chain grants
|
|
31
|
+
* `StatementStoreAllowance` to at login. Returns its raw 32-byte public key, or
|
|
32
|
+
* `null` if the session shape lacks a usable local account.
|
|
33
|
+
*
|
|
34
|
+
* Typed structurally (just the field we read) rather than importing the
|
|
35
|
+
* concrete `UserSession` type from `@parity/product-sdk-terminal`, keeping the
|
|
36
|
+
* SDK out of the headless deploy/login hot paths.
|
|
37
|
+
*/
|
|
38
|
+
declare function statementSigningAccount(userSession: {
|
|
39
|
+
localAccount?: {
|
|
40
|
+
accountId?: Uint8Array;
|
|
41
|
+
};
|
|
42
|
+
} | null | undefined): Uint8Array | null;
|
|
12
43
|
/**
|
|
13
44
|
* Build the hex-encoded storage key for an SSS allowance check.
|
|
14
45
|
*
|
|
@@ -26,4 +57,4 @@ declare function sssStorageKey(pubkey: Uint8Array): string;
|
|
|
26
57
|
*/
|
|
27
58
|
declare function checkSSSAllowance(pubkey: Uint8Array, peopleEndpoints: string[], timeoutMs?: number): Promise<boolean | null>;
|
|
28
59
|
|
|
29
|
-
export { checkSSSAllowance, sssStorageKey };
|
|
60
|
+
export { checkSSSAllowance, sssStorageKey, statementSigningAccount };
|
package/dist/sss-allowance.js
CHANGED
package/dist/storage-signer.js
CHANGED
|
@@ -7,22 +7,23 @@ import {
|
|
|
7
7
|
readBulletinSlotSigner,
|
|
8
8
|
waitForBulletinAuthorization,
|
|
9
9
|
writeBulletinSlotKey
|
|
10
|
-
} from "./chunk-
|
|
11
|
-
import "./chunk-
|
|
10
|
+
} from "./chunk-NRDXKYWQ.js";
|
|
11
|
+
import "./chunk-6GGRUTTC.js";
|
|
12
|
+
import "./chunk-GRPLHUYC.js";
|
|
12
13
|
import "./chunk-HOTQDYHD.js";
|
|
13
14
|
import "./chunk-IW3X2MJF.js";
|
|
14
15
|
import "./chunk-KOSF5FDO.js";
|
|
15
16
|
import "./chunk-J3NIXHZZ.js";
|
|
16
17
|
import "./chunk-S7EM5VMW.js";
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
19
|
-
import "./chunk-
|
|
20
|
-
import "./chunk-
|
|
18
|
+
import "./chunk-HGEYWE2P.js";
|
|
19
|
+
import "./chunk-NEWDQKA3.js";
|
|
20
|
+
import "./chunk-LIAEGW76.js";
|
|
21
|
+
import "./chunk-SHQZFLPN.js";
|
|
21
22
|
import "./chunk-C2TS5MER.js";
|
|
22
|
-
import "./chunk-
|
|
23
|
+
import "./chunk-T4WUEPAS.js";
|
|
23
24
|
import "./chunk-4PVJ2JBZ.js";
|
|
24
|
-
import "./chunk-
|
|
25
|
-
import "./chunk-
|
|
25
|
+
import "./chunk-ZL7KBV52.js";
|
|
26
|
+
import "./chunk-ELX3YZQG.js";
|
|
26
27
|
import "./chunk-GL3U7K2B.js";
|
|
27
28
|
import "./chunk-ZOC4GITL.js";
|
|
28
29
|
export {
|
package/dist/telemetry.js
CHANGED
package/dist/version-check.js
CHANGED
|
@@ -11,9 +11,9 @@ import {
|
|
|
11
11
|
isPreReleaseVersion,
|
|
12
12
|
preReleaseWarning,
|
|
13
13
|
promptYesNo
|
|
14
|
-
} from "./chunk-
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
14
|
+
} from "./chunk-LIAEGW76.js";
|
|
15
|
+
import "./chunk-ZL7KBV52.js";
|
|
16
|
+
import "./chunk-ELX3YZQG.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.9.0-rc.
|
|
3
|
+
"version": "0.9.0-rc.6",
|
|
4
4
|
"private": false,
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -44,11 +44,11 @@
|
|
|
44
44
|
"tools/release-retry-wrapper.mjs"
|
|
45
45
|
],
|
|
46
46
|
"scripts": {
|
|
47
|
-
"build": "tsup src/index.ts src/deploy.ts src/dotns.ts src/pool.ts src/telemetry.ts src/memory-report.ts src/merkle.ts src/gh-pages-mirror.ts src/version-check.ts src/bug-report.ts src/run-state.ts src/environments.ts src/errors.ts src/manifest.ts src/chunk-probe.ts src/manifest-embed.ts src/manifest-fetch.ts src/manifest-roundtrip.ts src/incremental-stats.ts src/chunker.ts src/personhood/encoding.ts src/personhood/hashing.ts src/personhood/constants.ts src/personhood/member-key.ts src/personhood/people-client.ts src/personhood/proof-validity.ts src/personhood/reprove.ts src/personhood/bind-personal-id.ts src/personhood/claim-pgas.ts src/personhood/bind-paid-alias.ts src/personhood/bootstrap.ts src/personhood/chain-prereqs.ts src/manifest/types.ts src/manifest/schema.ts src/manifest/byte-budget.ts src/manifest/config-load.ts src/manifest/publish.ts src/auth/index.ts src/auth/vendor/index.ts src/auth/vendor/ui/index.ts src/auth-config.ts src/commands/login.ts src/commands/logout.ts src/commands/whoami.ts src/storage-signer.ts src/spinner.ts src/sss-allowance.ts --format esm --dts --clean --target node22",
|
|
47
|
+
"build": "tsup src/index.ts src/deploy.ts src/dotns.ts src/pool.ts src/telemetry.ts src/memory-report.ts src/merkle.ts src/gh-pages-mirror.ts src/version-check.ts src/bug-report.ts src/run-state.ts src/environments.ts src/errors.ts src/manifest.ts src/chunk-probe.ts src/manifest-embed.ts src/manifest-fetch.ts src/manifest-roundtrip.ts src/incremental-stats.ts src/chunker.ts src/personhood/encoding.ts src/personhood/hashing.ts src/personhood/constants.ts src/personhood/member-key.ts src/personhood/people-client.ts src/personhood/proof-validity.ts src/personhood/reprove.ts src/personhood/bind-personal-id.ts src/personhood/claim-pgas.ts src/personhood/bind-paid-alias.ts src/personhood/bootstrap.ts src/personhood/chain-prereqs.ts src/manifest/types.ts src/manifest/schema.ts src/manifest/byte-budget.ts src/manifest/config-load.ts src/manifest/publish.ts src/auth/index.ts src/auth/vendor/index.ts src/auth/vendor/ui/index.ts src/auth-config.ts src/commands/login.ts src/commands/logout.ts src/commands/whoami.ts src/storage-signer.ts src/spinner.ts src/sss-allowance.ts src/sss-allowance-cache.ts --format esm --dts --clean --target node22",
|
|
48
48
|
"refresh-environments": "node scripts/refresh-environments.mjs",
|
|
49
49
|
"postinstall": "patch-package || true",
|
|
50
50
|
"prepare": "npm run build",
|
|
51
|
-
"test": "npm run build && node --test test/test.js test/cli-help.test.js test/helpers/e2e-helpers.test.js test/environments.test.js test/refresh-environments.test.js test/chunk-sharing-report.test.js test/product-manifest.test.js test/cache-savings-totals.test.js test/error-pattern-signature.test.js test/exit-codes.test.js test/probe-env-health.test.js test/e2e-chain-calls.test.js test/auth-config.test.js test/whoami.test.js test/login.test.js test/logout.test.js test/auth-resolve.test.js test/storage-signer.test.js test/spinner.test.js test/sss-allowance.test.js && npm run test:vendor",
|
|
51
|
+
"test": "npm run build && node --test test/test.js test/cli-help.test.js test/helpers/e2e-helpers.test.js test/environments.test.js test/refresh-environments.test.js test/chunk-sharing-report.test.js test/product-manifest.test.js test/cache-savings-totals.test.js test/error-pattern-signature.test.js test/exit-codes.test.js test/probe-env-health.test.js test/e2e-chain-calls.test.js test/auth-config.test.js test/whoami.test.js test/login.test.js test/logout.test.js test/auth-resolve.test.js test/storage-signer.test.js test/spinner.test.js test/sss-allowance.test.js test/sss-allowance-cache.test.js && npm run test:vendor",
|
|
52
52
|
"test:e2e": "npm run build && node --test test/e2e.test.js",
|
|
53
53
|
"test:e2e:smoke": "bash scripts/e2e-pass.sh smoke",
|
|
54
54
|
"test:e2e:pr": "bash scripts/e2e-pass.sh pr",
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
BANDERSNATCH_SIGNATURE_BYTES
|
|
3
|
-
} from "./chunk-SI2ZUOYD.js";
|
|
4
1
|
import {
|
|
5
2
|
buildImplicationMessage,
|
|
6
3
|
buildV5GeneralExtrinsic,
|
|
@@ -9,6 +6,9 @@ import {
|
|
|
9
6
|
readExtensionOrder,
|
|
10
7
|
toHex
|
|
11
8
|
} from "./chunk-ZYVGHDMU.js";
|
|
9
|
+
import {
|
|
10
|
+
BANDERSNATCH_SIGNATURE_BYTES
|
|
11
|
+
} from "./chunk-SI2ZUOYD.js";
|
|
12
12
|
|
|
13
13
|
// src/personhood/bind-personal-id.ts
|
|
14
14
|
import { Enum } from "polkadot-api";
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
PEOPLE_MEMBER_IDENTIFIER_HEX,
|
|
3
|
-
PGAS_ASSET_ID,
|
|
4
|
-
PROOF_BYTES
|
|
5
|
-
} from "./chunk-SI2ZUOYD.js";
|
|
6
1
|
import {
|
|
7
2
|
buildImplicationMessage,
|
|
8
3
|
buildV5GeneralExtrinsic,
|
|
@@ -12,6 +7,11 @@ import {
|
|
|
12
7
|
readExtensionOrder,
|
|
13
8
|
toHex
|
|
14
9
|
} from "./chunk-ZYVGHDMU.js";
|
|
10
|
+
import {
|
|
11
|
+
PEOPLE_MEMBER_IDENTIFIER_HEX,
|
|
12
|
+
PGAS_ASSET_ID,
|
|
13
|
+
PROOF_BYTES
|
|
14
|
+
} from "./chunk-SI2ZUOYD.js";
|
|
15
15
|
|
|
16
16
|
// src/personhood/claim-pgas.ts
|
|
17
17
|
import * as verifiable from "verifiablejs/nodejs";
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
ALIAS_PROOF_TAG
|
|
3
|
-
} from "./chunk-SI2ZUOYD.js";
|
|
4
1
|
import {
|
|
5
2
|
blake2_256,
|
|
6
3
|
concatBytes
|
|
7
4
|
} from "./chunk-ZYVGHDMU.js";
|
|
5
|
+
import {
|
|
6
|
+
ALIAS_PROOF_TAG
|
|
7
|
+
} from "./chunk-SI2ZUOYD.js";
|
|
8
8
|
|
|
9
9
|
// src/personhood/proof-validity.ts
|
|
10
10
|
var u64LeBytes = (v) => {
|