bulletin-deploy 0.6.4 → 0.6.5-rc.0
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/{chunk-YNBJATGK.js → chunk-FBV763OM.js} +24 -7
- package/dist/{chunk-3J3S6JLX.js → chunk-FHAEFLVV.js} +3 -3
- package/dist/{chunk-AIHW2WLO.js → chunk-LGPTJYA3.js} +4 -4
- package/dist/{chunk-MXMJJURQ.js → chunk-NXITLUZT.js} +1 -1
- package/dist/deploy.js +4 -4
- package/dist/dotns.js +2 -2
- package/dist/index.js +4 -4
- package/dist/pool.d.ts +1 -1
- package/dist/pool.js +1 -1
- package/dist/telemetry.js +1 -1
- package/package.json +1 -1
|
@@ -4,13 +4,13 @@ import {
|
|
|
4
4
|
TX_TIMEOUT_MS,
|
|
5
5
|
fetchNonce,
|
|
6
6
|
validateDomainLabel
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-NXITLUZT.js";
|
|
8
8
|
import {
|
|
9
9
|
derivePoolAccounts,
|
|
10
10
|
ensureAuthorized,
|
|
11
11
|
fetchPoolAuthorizations,
|
|
12
12
|
selectAccount
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-LGPTJYA3.js";
|
|
14
14
|
import {
|
|
15
15
|
VERSION,
|
|
16
16
|
captureWarning,
|
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
setDeployAttribute,
|
|
19
19
|
withDeploySpan,
|
|
20
20
|
withSpan
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-FHAEFLVV.js";
|
|
22
22
|
|
|
23
23
|
// src/deploy.ts
|
|
24
24
|
import { Buffer } from "buffer";
|
|
@@ -281,7 +281,7 @@ var POOL_SIZE = DEFAULT_POOL_SIZE;
|
|
|
281
281
|
var CHUNK_SIZE = 1 * 1024 * 1024;
|
|
282
282
|
var MAX_FILE_SIZE = 8 * 1024 * 1024;
|
|
283
283
|
var MAX_RECONNECTIONS = parseInt(process.env.BULLETIN_MAX_RECONNECTIONS ?? "3", 10);
|
|
284
|
-
var CHUNK_TIMEOUT_MS =
|
|
284
|
+
var CHUNK_TIMEOUT_MS = parseInt(process.env.BULLETIN_CHUNK_TIMEOUT_MS ?? "60000", 10);
|
|
285
285
|
var RETRY_BASE_DELAY_MS = 2e3;
|
|
286
286
|
var RETRY_MAX_DELAY_MS = 15e3;
|
|
287
287
|
function isConnectionError(error) {
|
|
@@ -375,10 +375,10 @@ async function getProvider() {
|
|
|
375
375
|
if (!selected) {
|
|
376
376
|
const best = authorizations.reduce((a, b) => a.transactions > b.transactions ? a : b);
|
|
377
377
|
console.log(` All pool accounts low on capacity, auto-authorizing account ${best.index}...`);
|
|
378
|
-
await ensureAuthorized(unsafeApi, best, BULLETIN_RPC);
|
|
378
|
+
await ensureAuthorized(unsafeApi, best.address, BULLETIN_RPC, `pool account ${best.index}`);
|
|
379
379
|
selected = best;
|
|
380
380
|
} else {
|
|
381
|
-
await ensureAuthorized(unsafeApi, selected, BULLETIN_RPC);
|
|
381
|
+
await ensureAuthorized(unsafeApi, selected.address, BULLETIN_RPC, `pool account ${selected.index}`);
|
|
382
382
|
}
|
|
383
383
|
console.log(` Using pool account ${selected.index}: ${selected.address}`);
|
|
384
384
|
setDeployAttribute("deploy.signer.mode", "pool");
|
|
@@ -403,7 +403,7 @@ async function getDirectProvider(mnemonic) {
|
|
|
403
403
|
const bytesRemaining = auth ? auth.extent.bytes : 0n;
|
|
404
404
|
if (txsRemaining === 0n && bytesRemaining === 0n) {
|
|
405
405
|
client.destroy();
|
|
406
|
-
throw new Error(`Account ${ss58} is not authorized for Bulletin storage
|
|
406
|
+
throw new Error(`Account ${ss58} is not authorized for Bulletin storage.`);
|
|
407
407
|
}
|
|
408
408
|
console.log(` Authorization: ${txsRemaining} txs, ${Number(bytesRemaining) / 1e6}MB remaining`);
|
|
409
409
|
setDeployAttribute("deploy.signer.mode", "direct");
|
|
@@ -541,6 +541,23 @@ async function storeChunkedContent(chunks, { client: existingClient, unsafeApi:
|
|
|
541
541
|
ss58 = provider.ss58;
|
|
542
542
|
ownsClient = true;
|
|
543
543
|
}
|
|
544
|
+
const requiredTxs = BigInt(chunks.length + 1);
|
|
545
|
+
const auth = await unsafeApi.query.TransactionStorage.Authorizations.getValue(
|
|
546
|
+
Enum("Account", ss58)
|
|
547
|
+
);
|
|
548
|
+
const txsRemaining = auth ? BigInt(auth.extent.transactions) : 0n;
|
|
549
|
+
const bytesRemaining = auth ? auth.extent.bytes : 0n;
|
|
550
|
+
if (txsRemaining < requiredTxs || bytesRemaining < BigInt(totalBytes)) {
|
|
551
|
+
console.log(`
|
|
552
|
+
Account has insufficient authorization for this upload (need ${requiredTxs} txs / ${(totalBytes / 1e6).toFixed(1)}MB, have ${txsRemaining} txs / ${Number(bytesRemaining) / 1e6}MB)`);
|
|
553
|
+
console.log(` Attempting to re-authorize with Alice...`);
|
|
554
|
+
try {
|
|
555
|
+
await ensureAuthorized(unsafeApi, ss58, BULLETIN_RPC);
|
|
556
|
+
console.log(` Re-authorization successful`);
|
|
557
|
+
} catch (e) {
|
|
558
|
+
throw new Error(`Re-authorization failed: ${e.message}`);
|
|
559
|
+
}
|
|
560
|
+
}
|
|
544
561
|
let reconnectionsUsed = 0;
|
|
545
562
|
async function doReconnect() {
|
|
546
563
|
if (!reconnect || reconnectionsUsed >= MAX_RECONNECTIONS) {
|
|
@@ -6,7 +6,7 @@ import * as path from "path";
|
|
|
6
6
|
// package.json
|
|
7
7
|
var package_default = {
|
|
8
8
|
name: "bulletin-deploy",
|
|
9
|
-
version: "0.6.
|
|
9
|
+
version: "0.6.5-rc.0",
|
|
10
10
|
private: false,
|
|
11
11
|
repository: {
|
|
12
12
|
type: "git",
|
|
@@ -87,7 +87,7 @@ function extractRepoSlug(url) {
|
|
|
87
87
|
}
|
|
88
88
|
function tryGitRemote() {
|
|
89
89
|
try {
|
|
90
|
-
return extractRepoSlug(execSync("git remote get-url origin", { encoding: "utf-8" }).trim());
|
|
90
|
+
return extractRepoSlug(execSync("git remote get-url origin", { encoding: "utf-8", stdio: ["pipe", "pipe", "pipe"] }).trim());
|
|
91
91
|
} catch {
|
|
92
92
|
return void 0;
|
|
93
93
|
}
|
|
@@ -106,7 +106,7 @@ function resolveRepo(domain) {
|
|
|
106
106
|
}
|
|
107
107
|
function tryGitBranch() {
|
|
108
108
|
try {
|
|
109
|
-
return execSync("git rev-parse --abbrev-ref HEAD", { encoding: "utf-8" }).trim();
|
|
109
|
+
return execSync("git rev-parse --abbrev-ref HEAD", { encoding: "utf-8", stdio: ["pipe", "pipe", "pipe"] }).trim();
|
|
110
110
|
} catch {
|
|
111
111
|
return "unknown";
|
|
112
112
|
}
|
|
@@ -55,16 +55,16 @@ async function fetchPoolAuthorizations(api, accounts) {
|
|
|
55
55
|
);
|
|
56
56
|
return results;
|
|
57
57
|
}
|
|
58
|
-
async function ensureAuthorized(api,
|
|
58
|
+
async function ensureAuthorized(api, address, bulletinRpc, label) {
|
|
59
59
|
const auth = await api.query.TransactionStorage.Authorizations.getValue(
|
|
60
|
-
Enum("Account",
|
|
60
|
+
Enum("Account", address)
|
|
61
61
|
);
|
|
62
62
|
const txsRemaining = auth ? BigInt(auth.extent.transactions) : 0n;
|
|
63
63
|
const bytesRemaining = auth ? auth.extent.bytes : 0n;
|
|
64
64
|
if (txsRemaining >= TOPUP_THRESHOLD_TXS && bytesRemaining >= TOPUP_THRESHOLD_BYTES) {
|
|
65
65
|
return;
|
|
66
66
|
}
|
|
67
|
-
console.log(` Auto-authorizing
|
|
67
|
+
console.log(` Auto-authorizing ${label ?? "account"} (${address.slice(0, 8)}...)...`);
|
|
68
68
|
const aliceClient = createClient(withPolkadotSdkCompat(getWsProvider(bulletinRpc)));
|
|
69
69
|
const aliceApi = aliceClient.getUnsafeApi();
|
|
70
70
|
try {
|
|
@@ -72,7 +72,7 @@ async function ensureAuthorized(api, poolAccount, bulletinRpc) {
|
|
|
72
72
|
const alice = keyring.addFromUri("//Alice");
|
|
73
73
|
const aliceSigner = getPolkadotSigner(alice.publicKey, "Sr25519", (data) => alice.sign(data));
|
|
74
74
|
const tx = aliceApi.tx.TransactionStorage.authorize_account({
|
|
75
|
-
who:
|
|
75
|
+
who: address,
|
|
76
76
|
transactions: TOPUP_TRANSACTIONS,
|
|
77
77
|
bytes: TOPUP_BYTES
|
|
78
78
|
});
|
package/dist/deploy.js
CHANGED
|
@@ -19,10 +19,10 @@ import {
|
|
|
19
19
|
storeChunkedContent,
|
|
20
20
|
storeDirectory,
|
|
21
21
|
storeFile
|
|
22
|
-
} from "./chunk-
|
|
23
|
-
import "./chunk-
|
|
24
|
-
import "./chunk-
|
|
25
|
-
import "./chunk-
|
|
22
|
+
} from "./chunk-FBV763OM.js";
|
|
23
|
+
import "./chunk-NXITLUZT.js";
|
|
24
|
+
import "./chunk-LGPTJYA3.js";
|
|
25
|
+
import "./chunk-FHAEFLVV.js";
|
|
26
26
|
import "./chunk-QGM4M3NI.js";
|
|
27
27
|
export {
|
|
28
28
|
DEFAULT_BULLETIN_RPC,
|
package/dist/dotns.js
CHANGED
|
@@ -19,8 +19,8 @@ import {
|
|
|
19
19
|
sanitizeDomainLabel,
|
|
20
20
|
stripTrailingDigits,
|
|
21
21
|
validateDomainLabel
|
|
22
|
-
} from "./chunk-
|
|
23
|
-
import "./chunk-
|
|
22
|
+
} from "./chunk-NXITLUZT.js";
|
|
23
|
+
import "./chunk-FHAEFLVV.js";
|
|
24
24
|
import "./chunk-QGM4M3NI.js";
|
|
25
25
|
export {
|
|
26
26
|
CONNECTION_TIMEOUT_MS,
|
package/dist/index.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import {
|
|
2
2
|
deploy
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-FBV763OM.js";
|
|
4
4
|
import {
|
|
5
5
|
DotNS
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-NXITLUZT.js";
|
|
7
7
|
import {
|
|
8
8
|
bootstrapPool,
|
|
9
9
|
derivePoolAccounts,
|
|
10
10
|
ensureAuthorized,
|
|
11
11
|
fetchPoolAuthorizations,
|
|
12
12
|
selectAccount
|
|
13
|
-
} from "./chunk-
|
|
14
|
-
import "./chunk-
|
|
13
|
+
} from "./chunk-LGPTJYA3.js";
|
|
14
|
+
import "./chunk-FHAEFLVV.js";
|
|
15
15
|
import "./chunk-QGM4M3NI.js";
|
|
16
16
|
export {
|
|
17
17
|
DotNS,
|
package/dist/pool.d.ts
CHANGED
|
@@ -14,7 +14,7 @@ interface PoolAuthorization extends PoolAccount {
|
|
|
14
14
|
declare function derivePoolAccounts(poolSize?: number, mnemonic?: string): PoolAccount[];
|
|
15
15
|
declare function selectAccount(authorizations: PoolAuthorization[]): PoolAuthorization | null;
|
|
16
16
|
declare function fetchPoolAuthorizations(api: any, accounts: PoolAccount[]): Promise<PoolAuthorization[]>;
|
|
17
|
-
declare function ensureAuthorized(api: any,
|
|
17
|
+
declare function ensureAuthorized(api: any, address: string, bulletinRpc: string, label?: string): Promise<void>;
|
|
18
18
|
declare function bootstrapPool(bulletinRpc: string, poolSize?: number, mnemonic?: string): Promise<void>;
|
|
19
19
|
|
|
20
20
|
export { type PoolAccount, type PoolAuthorization, bootstrapPool, derivePoolAccounts, ensureAuthorized, fetchPoolAuthorizations, selectAccount };
|
package/dist/pool.js
CHANGED
package/dist/telemetry.js
CHANGED