bulletin-deploy 0.7.17 → 0.7.18-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -79,6 +79,7 @@ bulletin-deploy ./dist my-app00.dot --rpc wss://custom-bulletin.example.com
79
79
  | Env id | Network | Bulletin available? |
80
80
  |---|---|---|
81
81
  | `paseo-next` (default) | testnet | yes |
82
+ | `paseo-next-v2` | testnet | yes |
82
83
  | `paseo-review` | testnet | yes |
83
84
  | `preview` | testnet | yes |
84
85
  | `polkadot` | mainnet | not yet |
@@ -103,6 +104,8 @@ The runtime uses a 24-hour cache at `${XDG_CACHE_HOME:-~/.cache}/bulletin-deploy
103
104
  | `--js-merkle` | Use pure-JS merkleization instead of the Kubo binary. |
104
105
  | `--tag "..."` | Attach a free-form telemetry label. Also readable from `DEPLOY_TAG`. |
105
106
  | `--gh-pages-mirror` | After a successful deploy, push the generated CAR to the current repo's `gh-pages` branch as an HTTP mirror. |
107
+ | `--skip-automated-deployment-to-paseo-next-v2` | Suppress the automatic mirror deploy to `paseo-next-v2` that runs after a successful `paseo-next` deploy. |
108
+ | `--fail-on-mirror-error` | Exit non-zero if the automated mirror deploy to `paseo-next-v2` fails (default: warn only). |
106
109
  | `--input-car <path>` | Deploy from a pre-built CAR file instead of a build directory. Skips merkleization; reads the root CID from the CAR header. Usage: `bulletin-deploy --input-car site.car my-app.dot` |
107
110
  | `--version` | Print the CLI version. |
108
111
  | `--help` | Show help. |
@@ -175,6 +178,25 @@ to the current repo's `gh-pages` branch and prints the Pages URL.
175
178
 
176
179
  Use it when you want to validate or consume the mirror feature. The source of truth remains Bulletin plus DotNS.
177
180
 
181
+ ## Automatic Mirror to paseo-next-v2
182
+
183
+ When you deploy to `paseo-next` (the default), `bulletin-deploy` automatically runs a second deploy to `paseo-next-v2` using the same build artefact. This keeps both environments in sync without any extra steps during the period when `paseo-next-v2` is being validated alongside the existing testnet.
184
+
185
+ ```bash
186
+ # Standard deploy — mirrors to paseo-next-v2 automatically
187
+ bulletin-deploy ./dist my-app00.dot
188
+
189
+ # Opt out of the mirror
190
+ bulletin-deploy ./dist my-app00.dot --skip-automated-deployment-to-paseo-next-v2
191
+
192
+ # Treat a mirror failure as a hard error instead of a warning
193
+ bulletin-deploy ./dist my-app00.dot --fail-on-mirror-error
194
+ ```
195
+
196
+ The mirror runs after the primary deploy succeeds. By default, a mirror failure prints a warning and exits zero so it does not block your pipeline. Pass `--fail-on-mirror-error` if you want the process to exit non-zero on mirror failure.
197
+
198
+ This behaviour is temporary and will be removed once `paseo-next-v2` fully replaces `paseo-next`.
199
+
178
200
  ## Programmatic API
179
201
 
180
202
  ```js
@@ -9,10 +9,10 @@ import {
9
9
  offerBugReport,
10
10
  scrubSecrets,
11
11
  setDeployContext
12
- } from "./chunk-AJ3IT7P5.js";
13
- import "./chunk-WSHGL6SP.js";
14
- import "./chunk-ME32MC6X.js";
15
- import "./chunk-BS7SZNE3.js";
12
+ } from "./chunk-BVCNV2VK.js";
13
+ import "./chunk-5BHSSRH7.js";
14
+ import "./chunk-X7G2XUB6.js";
15
+ import "./chunk-IU6LUQFY.js";
16
16
  import "./chunk-QGM4M3NI.js";
17
17
  export {
18
18
  buildCliFlagsSummary,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  VERSION
3
- } from "./chunk-ME32MC6X.js";
3
+ } from "./chunk-X7G2XUB6.js";
4
4
 
5
5
  // src/version-check.ts
6
6
  import { execSync, execFileSync } from "child_process";
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  isTestnetSpecName
3
- } from "./chunk-VOEFHED3.js";
3
+ } from "./chunk-V42LNJK5.js";
4
4
  import {
5
5
  captureWarning,
6
6
  setDeployAttribute,
7
7
  withSpan
8
- } from "./chunk-ME32MC6X.js";
8
+ } from "./chunk-X7G2XUB6.js";
9
9
 
10
10
  // src/dotns.ts
11
11
  import { spawn } from "child_process";
@@ -14,7 +14,7 @@ import { readFileSync } from "fs";
14
14
  import { dirname, join } from "path";
15
15
  import { createClient, Enum } from "polkadot-api";
16
16
  import { getPolkadotSigner } from "polkadot-api/signer";
17
- import { getWsProvider } from "polkadot-api/ws-provider";
17
+ import { getWsProvider } from "polkadot-api/ws";
18
18
  import { Keyring } from "@polkadot/keyring";
19
19
  import { cryptoWaitReady } from "@polkadot/util-crypto";
20
20
  import { Binary } from "polkadot-api";
@@ -218,10 +218,8 @@ var DOTNS_TEXT_RESOLVER_ABI = [
218
218
  ];
219
219
  function convertToHexString(value) {
220
220
  if (!value) return "0x";
221
- if (typeof value?.asHex === "function") return value.asHex();
222
- if (typeof value?.toHex === "function") return value.toHex();
223
- if (typeof value === "string" && isHex(value)) return value;
224
221
  if (value instanceof Uint8Array) return bytesToHex(value);
222
+ if (typeof value === "string" && isHex(value)) return value;
225
223
  try {
226
224
  return toHex(value);
227
225
  } catch {
@@ -449,11 +447,11 @@ var ReviveClientWrapper = class _ReviveClientWrapper {
449
447
  async getEvmAddress(substrateAddress) {
450
448
  if (isAddress(substrateAddress)) return substrateAddress;
451
449
  const address = await this.client.apis.ReviveApi.address(substrateAddress);
452
- return address.asHex();
450
+ return convertToHexString(address);
453
451
  }
454
452
  async performDryRunCall(originSubstrateAddress, contractAddress, value, encodedData) {
455
453
  if (isAddress(originSubstrateAddress)) throw new Error("performDryRunCall requires SS58 Substrate address, not EVM H160 address");
456
- const executionResults = await this.client.apis.ReviveApi.call(originSubstrateAddress, Binary.fromHex(contractAddress), value, _ReviveClientWrapper.DRY_RUN_WEIGHT_LIMIT, _ReviveClientWrapper.DRY_RUN_STORAGE_LIMIT, Binary.fromHex(encodedData));
454
+ const executionResults = await this.client.apis.ReviveApi.call(originSubstrateAddress, contractAddress, value, _ReviveClientWrapper.DRY_RUN_WEIGHT_LIMIT, _ReviveClientWrapper.DRY_RUN_STORAGE_LIMIT, Binary.fromHex(encodedData));
457
455
  const { ok, err, successFlag } = unwrapExecutionResult(executionResults.result);
458
456
  const flags = ok?.flags ? convertToBigInt(ok.flags, 0n) : 0n;
459
457
  const returnData = convertToHexString(ok?.data);
@@ -473,8 +471,7 @@ var ReviveClientWrapper = class _ReviveClientWrapper {
473
471
  async checkIfAccountMapped(substrateAddress) {
474
472
  try {
475
473
  const evmAddress = await this.getEvmAddress(substrateAddress);
476
- const key = Binary.fromHex(evmAddress);
477
- const mappedAccount = await this.client.query.Revive.OriginalAccount.getValue(key);
474
+ const mappedAccount = await this.client.query.Revive.OriginalAccount.getValue(evmAddress);
478
475
  return mappedAccount !== null && mappedAccount !== void 0;
479
476
  } catch {
480
477
  return false;
@@ -625,7 +622,7 @@ var ReviveClientWrapper = class _ReviveClientWrapper {
625
622
  const minimumStorageDeposit = 2000000000000n;
626
623
  let storageDepositLimit = gasEstimate.storageDeposit === 0n ? minimumStorageDeposit : gasEstimate.storageDeposit * 120n / 100n;
627
624
  if (storageDepositLimit < minimumStorageDeposit) storageDepositLimit = minimumStorageDeposit;
628
- const buildExtrinsic = () => this.client.tx.Revive.call({ dest: Binary.fromHex(contractAddress), value, weight_limit: weightLimit, storage_deposit_limit: storageDepositLimit, data: Binary.fromHex(encodedData) });
625
+ const buildExtrinsic = () => this.client.tx.Revive.call({ dest: contractAddress, value, weight_limit: weightLimit, storage_deposit_limit: storageDepositLimit, data: Binary.fromHex(encodedData) });
629
626
  let nonceFallback;
630
627
  if (useNoncePolling) {
631
628
  try {
@@ -1644,6 +1641,7 @@ export {
1644
1641
  fetchNonce,
1645
1642
  verifyNonceAdvanced,
1646
1643
  ProofOfPersonhoodStatus,
1644
+ convertToHexString,
1647
1645
  DOT_NODE,
1648
1646
  convertWeiToNative,
1649
1647
  computeDomainTokenId,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  captureWarning
3
- } from "./chunk-ME32MC6X.js";
3
+ } from "./chunk-X7G2XUB6.js";
4
4
 
5
5
  // src/chunk-probe.ts
6
6
  import { Twox128, Blake2128Concat, decAnyMetadata, unifyMetadata } from "@polkadot-api/substrate-bindings";
@@ -2,11 +2,11 @@ import {
2
2
  classifyErrorArea,
3
3
  isInteractive,
4
4
  promptYesNo
5
- } from "./chunk-WSHGL6SP.js";
5
+ } from "./chunk-5BHSSRH7.js";
6
6
  import {
7
7
  VERSION,
8
8
  getCurrentSentryTraceId
9
- } from "./chunk-ME32MC6X.js";
9
+ } from "./chunk-X7G2XUB6.js";
10
10
 
11
11
  // src/bug-report.ts
12
12
  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: "bulletin-deploy",
9
- version: "0.7.17",
9
+ version: "0.7.18-rc.1",
10
10
  private: false,
11
11
  repository: {
12
12
  type: "git",
@@ -52,16 +52,17 @@ var package_default = {
52
52
  "@ipld/dag-pb": "^4.1.3",
53
53
  "@noble/hashes": "^1.7.2",
54
54
  "@parity/dotns-cli": "^0.6.1",
55
- "@polkadot-api/substrate-bindings": "^0.16.5",
56
- "@polkadot-labs/hdkd": "^0.0.25",
57
- "@polkadot-labs/hdkd-helpers": "^0.0.26",
58
- "@polkadot/keyring": "^14.0.1",
59
- "@polkadot/util-crypto": "^14.0.1",
55
+ "@polkadot-api/metadata-builders": "^0.14.2",
56
+ "@polkadot-api/substrate-bindings": "^0.20.2",
57
+ "@polkadot-labs/hdkd": "^0.0.28",
58
+ "@polkadot-labs/hdkd-helpers": "^0.0.30",
59
+ "@polkadot/keyring": "^14.0.3",
60
+ "@polkadot/util-crypto": "^14.0.3",
60
61
  "@sentry/node": "^9.14.0",
61
62
  "ipfs-unixfs": "^11.2.0",
62
63
  "ipfs-unixfs-importer": "^16.1.4",
63
64
  multiformats: "^13.4.1",
64
- "polkadot-api": "^1.23.1",
65
+ "polkadot-api": "^2.1.3",
65
66
  viem: "^2.30.5"
66
67
  },
67
68
  devDependencies: {
@@ -18,10 +18,10 @@ import {
18
18
  } from "./chunk-S7EM5VMW.js";
19
19
  import {
20
20
  setDeployContext
21
- } from "./chunk-AJ3IT7P5.js";
21
+ } from "./chunk-BVCNV2VK.js";
22
22
  import {
23
23
  probeChunks
24
- } from "./chunk-I5VICJCA.js";
24
+ } from "./chunk-ARFDIRRZ.js";
25
25
  import {
26
26
  packSection
27
27
  } from "./chunk-C2TS5MER.js";
@@ -32,7 +32,7 @@ import {
32
32
  parseDomainName,
33
33
  popStatusName,
34
34
  verifyNonceAdvanced
35
- } from "./chunk-QWBCK7RY.js";
35
+ } from "./chunk-765Q65E3.js";
36
36
  import {
37
37
  derivePoolAccounts,
38
38
  detectTestnet,
@@ -40,7 +40,7 @@ import {
40
40
  fetchPoolAuthorizations,
41
41
  selectAccount,
42
42
  topUpBy
43
- } from "./chunk-VOEFHED3.js";
43
+ } from "./chunk-V42LNJK5.js";
44
44
  import {
45
45
  VERSION,
46
46
  captureWarning,
@@ -54,7 +54,7 @@ import {
54
54
  truncateAddress,
55
55
  withDeploySpan,
56
56
  withSpan
57
- } from "./chunk-ME32MC6X.js";
57
+ } from "./chunk-X7G2XUB6.js";
58
58
  import {
59
59
  DEFAULT_ENV_ID,
60
60
  loadEnvironments,
@@ -88,9 +88,7 @@ import { execSync } from "child_process";
88
88
  import { sha256 } from "@noble/hashes/sha256";
89
89
  import { blake2b } from "@noble/hashes/blake2b";
90
90
  import { createClient as createPolkadotClient, Enum } from "polkadot-api";
91
- import { Binary } from "@polkadot-api/substrate-bindings";
92
- import { getWsProvider, WsEvent } from "polkadot-api/ws-provider";
93
- import { withPolkadotSdkCompat } from "polkadot-api/polkadot-sdk-compat";
91
+ import { getWsProvider, WsEvent } from "polkadot-api/ws";
94
92
  import { CID } from "multiformats/cid";
95
93
  import { create as createMultihash } from "multiformats/hashes/digest";
96
94
  import { base32 } from "multiformats/bases/base32";
@@ -214,10 +212,10 @@ function toHashingEnum(mhCode) {
214
212
  async function getProvider() {
215
213
  const primary = BULLETIN_ENDPOINTS[0];
216
214
  console.log(` Connecting to Bulletin: ${primary}`);
217
- const client = createPolkadotClient(withPolkadotSdkCompat(getWsProvider(
215
+ const client = createPolkadotClient(getWsProvider(
218
216
  BULLETIN_ENDPOINTS,
219
217
  { heartbeatTimeout: WS_HEARTBEAT_TIMEOUT_MS, onStatusChanged: makeBulletinStatusHandler(primary) }
220
- )));
218
+ ));
221
219
  const unsafeApi = client.getUnsafeApi();
222
220
  try {
223
221
  await cryptoWaitReady();
@@ -249,10 +247,10 @@ async function getProvider() {
249
247
  async function getDirectProvider(mnemonic, derivationPath = "") {
250
248
  const primary = BULLETIN_ENDPOINTS[0];
251
249
  console.log(` Connecting to Bulletin: ${primary}`);
252
- const client = createPolkadotClient(withPolkadotSdkCompat(getWsProvider(
250
+ const client = createPolkadotClient(getWsProvider(
253
251
  BULLETIN_ENDPOINTS,
254
252
  { heartbeatTimeout: WS_HEARTBEAT_TIMEOUT_MS, onStatusChanged: makeBulletinStatusHandler(primary) }
255
- )));
253
+ ));
256
254
  const unsafeApi = client.getUnsafeApi();
257
255
  const { signer, ss58 } = deriveRootSigner(mnemonic, derivationPath);
258
256
  console.log(` Using direct signer: ${ss58}${derivationPath ? ` (path: ${derivationPath})` : ""}`);
@@ -332,7 +330,7 @@ function watchTransaction(tx, signer, txOpts, onSuccess, { label = "transaction"
332
330
  async function storeChunk(unsafeApi, signer, chunkBytes, nonce, ss58, opts = {}) {
333
331
  const hashCode = 18;
334
332
  const cid = createCID(chunkBytes, CID_CONFIG.codec, hashCode);
335
- const tx = unsafeApi.tx.TransactionStorage.store_with_cid_config({ cid: { codec: BigInt(CID_CONFIG.codec), hashing: toHashingEnum(hashCode) }, data: Binary.fromBytes(chunkBytes) });
333
+ const tx = unsafeApi.tx.TransactionStorage.store_with_cid_config({ cid: { codec: BigInt(CID_CONFIG.codec), hashing: toHashingEnum(hashCode) }, data: chunkBytes });
336
334
  const txOpts = { mortality: { mortal: true, period: CHUNK_MORTALITY_PERIOD }, nonce };
337
335
  const { value, viaFallback } = await watchTransaction(tx, signer, txOpts, () => {
338
336
  console.log(` CID: ${cid.toString()}`);
@@ -359,7 +357,7 @@ async function storeFile(contentBytes, { client: existingClient, unsafeApi: exis
359
357
  signer = provider.signer;
360
358
  }
361
359
  try {
362
- const tx = unsafeApi.tx.TransactionStorage.store_with_cid_config({ cid: { codec: BigInt(CID_CONFIG.codec), hashing: toHashingEnum(hashCode) }, data: Binary.fromBytes(contentBytes) });
360
+ const tx = unsafeApi.tx.TransactionStorage.store_with_cid_config({ cid: { codec: BigInt(CID_CONFIG.codec), hashing: toHashingEnum(hashCode) }, data: contentBytes });
363
361
  const txOpts = { mortality: { mortal: true, period: 256 } };
364
362
  console.log(` Submitting...`);
365
363
  const { value } = await watchTransaction(tx, signer, txOpts, (event) => {
@@ -696,7 +694,7 @@ async function storeChunkedContent(chunks, { client: existingClient, unsafeApi:
696
694
  for (let rootAttempt = 1; rootAttempt <= MAX_ROOT_RETRIES; rootAttempt++) {
697
695
  const rootNonce = await _fetchNonce(BULLETIN_ENDPOINTS, ss58);
698
696
  console.log(` Storing root node (nonce: ${rootNonce})...`);
699
- const rootTx = unsafeApi.tx.TransactionStorage.store_with_cid_config({ cid: { codec: BigInt(112), hashing: toHashingEnum(hashCode) }, data: Binary.fromBytes(dagBytes) });
697
+ const rootTx = unsafeApi.tx.TransactionStorage.store_with_cid_config({ cid: { codec: BigInt(112), hashing: toHashingEnum(hashCode) }, data: dagBytes });
700
698
  const rootTxOpts = { mortality: { mortal: true, period: 256 }, nonce: rootNonce };
701
699
  try {
702
700
  const watchResult = await watchTransaction(rootTx, signer, rootTxOpts, () => {
@@ -3,8 +3,7 @@ import { sr25519CreateDerive } from "@polkadot-labs/hdkd";
3
3
  import { DEV_PHRASE, entropyToMiniSecret, mnemonicToEntropy } from "@polkadot-labs/hdkd-helpers";
4
4
  import { createClient, Enum } from "polkadot-api";
5
5
  import { getPolkadotSigner } from "polkadot-api/signer";
6
- import { getWsProvider } from "polkadot-api/ws-provider";
7
- import { withPolkadotSdkCompat } from "polkadot-api/polkadot-sdk-compat";
6
+ import { getWsProvider } from "polkadot-api/ws";
8
7
  import { Keyring } from "@polkadot/keyring";
9
8
  import { cryptoWaitReady } from "@polkadot/util-crypto";
10
9
  var PAS_DECIMALS_DIVISOR = 1e10;
@@ -184,10 +183,10 @@ async function bootstrapPool(bulletinRpc, poolSize = 10, mnemonic) {
184
183
  `);
185
184
  await cryptoWaitReady();
186
185
  const accounts = derivePoolAccounts(poolSize, mnemonic);
187
- const client = createClient(withPolkadotSdkCompat(getWsProvider(
186
+ const client = createClient(getWsProvider(
188
187
  bulletinRpc,
189
188
  { heartbeatTimeout: WS_HEARTBEAT_TIMEOUT_MS }
190
- )));
189
+ ));
191
190
  const api = client.getUnsafeApi();
192
191
  const keyring = new Keyring({ type: "sr25519" });
193
192
  const alice = keyring.addFromUri("//Alice");
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  package_default,
3
3
  writeRunState
4
- } from "./chunk-BS7SZNE3.js";
4
+ } from "./chunk-IU6LUQFY.js";
5
5
 
6
6
  // src/memory-report.ts
7
7
  import * as fs2 from "fs";
@@ -5,9 +5,9 @@ import {
5
5
  _decodeStorageValue,
6
6
  _resetProbeSession,
7
7
  probeChunks
8
- } from "./chunk-I5VICJCA.js";
9
- import "./chunk-ME32MC6X.js";
10
- import "./chunk-BS7SZNE3.js";
8
+ } from "./chunk-ARFDIRRZ.js";
9
+ import "./chunk-X7G2XUB6.js";
10
+ import "./chunk-IU6LUQFY.js";
11
11
  import "./chunk-QGM4M3NI.js";
12
12
  export {
13
13
  ChainProbeCrossValidationError,
package/dist/deploy.js CHANGED
@@ -32,19 +32,19 @@ import {
32
32
  storeDirectory,
33
33
  storeDirectoryV2,
34
34
  storeFile
35
- } from "./chunk-RPNJEMTM.js";
35
+ } from "./chunk-L6N6LA3N.js";
36
36
  import "./chunk-MJTQOXBC.js";
37
37
  import "./chunk-KOSF5FDO.js";
38
38
  import "./chunk-5MRZ3V4A.js";
39
39
  import "./chunk-S7EM5VMW.js";
40
- import "./chunk-AJ3IT7P5.js";
41
- import "./chunk-WSHGL6SP.js";
42
- import "./chunk-I5VICJCA.js";
40
+ import "./chunk-BVCNV2VK.js";
41
+ import "./chunk-5BHSSRH7.js";
42
+ import "./chunk-ARFDIRRZ.js";
43
43
  import "./chunk-C2TS5MER.js";
44
- import "./chunk-QWBCK7RY.js";
45
- import "./chunk-VOEFHED3.js";
46
- import "./chunk-ME32MC6X.js";
47
- import "./chunk-BS7SZNE3.js";
44
+ import "./chunk-765Q65E3.js";
45
+ import "./chunk-V42LNJK5.js";
46
+ import "./chunk-X7G2XUB6.js";
47
+ import "./chunk-IU6LUQFY.js";
48
48
  import "./chunk-X3F7WHSF.js";
49
49
  import {
50
50
  EXIT_CODE_NO_RETRY,
package/dist/dotns.d.ts CHANGED
@@ -113,6 +113,7 @@ declare const ProofOfPersonhoodStatus: {
113
113
  readonly ProofOfPersonhoodFull: 2;
114
114
  readonly Reserved: 3;
115
115
  };
116
+ declare function convertToHexString(value: unknown): string;
116
117
  declare const DOT_NODE: `0x${string}`;
117
118
  declare function convertWeiToNative(weiValue: bigint): bigint;
118
119
  declare function computeDomainTokenId(label: string): bigint;
@@ -242,4 +243,4 @@ declare class DotNS {
242
243
  }
243
244
  declare const dotns: DotNS;
244
245
 
245
- export { CONNECTION_TIMEOUT_MS, CONTRACTS, DECIMALS, DEFAULT_MNEMONIC, DOTNS_TX_MAX_ATTEMPTS, DOT_NODE, DotNS, type DotNSConnectOptions, type DotnsCliInvocation, type DotnsCliInvocationSource, type DotnsPreflightResult, type DotnsSuccessAction, NATIVE_TO_ETH_RATIO, OPERATION_TIMEOUT_MS, type OwnershipResult, type ParsedDomainName, type PriceValidationResult, ProofOfPersonhoodStatus, RPC_ENDPOINTS, TX_CHAIN_TIME_BUDGET_MS, TX_TIMEOUT_MS, TX_WALL_CLOCK_CEILING_MS, WS_HEARTBEAT_TIMEOUT_MS, canRegister, classifyDotnsLabel, classifyTxRetryDecision, computeDomainTokenId, convertWeiToNative, countTrailingDigits, dotns, feeFloorFor, fetchNonce, fmtPas, isCommitmentMature, isExplicitCommitmentBuffer, isLikelyCommitmentRace, parseDomainName, parseProofOfPersonhoodStatus, popStatusName, resolveDotnsCliInvocation, runDotnsCli, sanitizeDomainLabel, simulateUserStatus, stripTrailingDigits, validateDomainLabel, verifyNonceAdvanced };
246
+ export { CONNECTION_TIMEOUT_MS, CONTRACTS, DECIMALS, DEFAULT_MNEMONIC, DOTNS_TX_MAX_ATTEMPTS, DOT_NODE, DotNS, type DotNSConnectOptions, type DotnsCliInvocation, type DotnsCliInvocationSource, type DotnsPreflightResult, type DotnsSuccessAction, NATIVE_TO_ETH_RATIO, OPERATION_TIMEOUT_MS, type OwnershipResult, type ParsedDomainName, type PriceValidationResult, ProofOfPersonhoodStatus, RPC_ENDPOINTS, TX_CHAIN_TIME_BUDGET_MS, TX_TIMEOUT_MS, TX_WALL_CLOCK_CEILING_MS, WS_HEARTBEAT_TIMEOUT_MS, canRegister, classifyDotnsLabel, classifyTxRetryDecision, computeDomainTokenId, convertToHexString, convertWeiToNative, countTrailingDigits, dotns, feeFloorFor, fetchNonce, fmtPas, isCommitmentMature, isExplicitCommitmentBuffer, isLikelyCommitmentRace, parseDomainName, parseProofOfPersonhoodStatus, popStatusName, resolveDotnsCliInvocation, runDotnsCli, sanitizeDomainLabel, simulateUserStatus, stripTrailingDigits, validateDomainLabel, verifyNonceAdvanced };
package/dist/dotns.js CHANGED
@@ -18,6 +18,7 @@ import {
18
18
  classifyDotnsLabel,
19
19
  classifyTxRetryDecision,
20
20
  computeDomainTokenId,
21
+ convertToHexString,
21
22
  convertWeiToNative,
22
23
  countTrailingDigits,
23
24
  dotns,
@@ -37,10 +38,10 @@ import {
37
38
  stripTrailingDigits,
38
39
  validateDomainLabel,
39
40
  verifyNonceAdvanced
40
- } from "./chunk-QWBCK7RY.js";
41
- import "./chunk-VOEFHED3.js";
42
- import "./chunk-ME32MC6X.js";
43
- import "./chunk-BS7SZNE3.js";
41
+ } from "./chunk-765Q65E3.js";
42
+ import "./chunk-V42LNJK5.js";
43
+ import "./chunk-X7G2XUB6.js";
44
+ import "./chunk-IU6LUQFY.js";
44
45
  import "./chunk-QGM4M3NI.js";
45
46
  export {
46
47
  CONNECTION_TIMEOUT_MS,
@@ -62,6 +63,7 @@ export {
62
63
  classifyDotnsLabel,
63
64
  classifyTxRetryDecision,
64
65
  computeDomainTokenId,
66
+ convertToHexString,
65
67
  convertWeiToNative,
66
68
  countTrailingDigits,
67
69
  dotns,
package/dist/index.js CHANGED
@@ -5,7 +5,7 @@ import {
5
5
  deploy,
6
6
  merkleizeJS,
7
7
  merkleizeWithStableOrder
8
- } from "./chunk-RPNJEMTM.js";
8
+ } from "./chunk-L6N6LA3N.js";
9
9
  import {
10
10
  computeStats,
11
11
  renderSummary,
@@ -27,24 +27,24 @@ import {
27
27
  isVolatilePath,
28
28
  parseManifest
29
29
  } from "./chunk-S7EM5VMW.js";
30
- import "./chunk-AJ3IT7P5.js";
31
- import "./chunk-WSHGL6SP.js";
30
+ import "./chunk-BVCNV2VK.js";
31
+ import "./chunk-5BHSSRH7.js";
32
32
  import {
33
33
  probeChunks
34
- } from "./chunk-I5VICJCA.js";
34
+ } from "./chunk-ARFDIRRZ.js";
35
35
  import "./chunk-C2TS5MER.js";
36
36
  import {
37
37
  DotNS,
38
38
  parseDomainName
39
- } from "./chunk-QWBCK7RY.js";
39
+ } from "./chunk-765Q65E3.js";
40
40
  import {
41
41
  bootstrapPool,
42
42
  derivePoolAccounts,
43
43
  ensureAuthorized,
44
44
  fetchPoolAuthorizations,
45
45
  selectAccount
46
- } from "./chunk-VOEFHED3.js";
47
- import "./chunk-ME32MC6X.js";
46
+ } from "./chunk-V42LNJK5.js";
47
+ import "./chunk-X7G2XUB6.js";
48
48
  import {
49
49
  VERSION,
50
50
  loadRunState,
@@ -54,7 +54,7 @@ import {
54
54
  shouldSkipStaleWarning,
55
55
  stateFilePath,
56
56
  writeRunState
57
- } from "./chunk-BS7SZNE3.js";
57
+ } from "./chunk-IU6LUQFY.js";
58
58
  import "./chunk-X3F7WHSF.js";
59
59
  import "./chunk-ZOC4GITL.js";
60
60
  import "./chunk-HOTQDYHD.js";
@@ -5,8 +5,8 @@ import {
5
5
  maybeWriteMemoryReport,
6
6
  safeHeap,
7
7
  sampleFromBytes
8
- } from "./chunk-ME32MC6X.js";
9
- import "./chunk-BS7SZNE3.js";
8
+ } from "./chunk-X7G2XUB6.js";
9
+ import "./chunk-IU6LUQFY.js";
10
10
  import "./chunk-QGM4M3NI.js";
11
11
  export {
12
12
  DEFAULT_THRESHOLD_MB,
package/dist/merkle.js CHANGED
@@ -5,19 +5,19 @@ import {
5
5
  merkleizeJSBackend,
6
6
  merkleizeKuboBackend,
7
7
  merkleizeWithStableOrder
8
- } from "./chunk-RPNJEMTM.js";
8
+ } from "./chunk-L6N6LA3N.js";
9
9
  import "./chunk-MJTQOXBC.js";
10
10
  import "./chunk-KOSF5FDO.js";
11
11
  import "./chunk-5MRZ3V4A.js";
12
12
  import "./chunk-S7EM5VMW.js";
13
- import "./chunk-AJ3IT7P5.js";
14
- import "./chunk-WSHGL6SP.js";
15
- import "./chunk-I5VICJCA.js";
13
+ import "./chunk-BVCNV2VK.js";
14
+ import "./chunk-5BHSSRH7.js";
15
+ import "./chunk-ARFDIRRZ.js";
16
16
  import "./chunk-C2TS5MER.js";
17
- import "./chunk-QWBCK7RY.js";
18
- import "./chunk-VOEFHED3.js";
19
- import "./chunk-ME32MC6X.js";
20
- import "./chunk-BS7SZNE3.js";
17
+ import "./chunk-765Q65E3.js";
18
+ import "./chunk-V42LNJK5.js";
19
+ import "./chunk-X7G2XUB6.js";
20
+ import "./chunk-IU6LUQFY.js";
21
21
  import "./chunk-X3F7WHSF.js";
22
22
  import "./chunk-ZOC4GITL.js";
23
23
  import "./chunk-HOTQDYHD.js";
package/dist/pool.js CHANGED
@@ -11,7 +11,7 @@ import {
11
11
  isTestnetSpecName,
12
12
  selectAccount,
13
13
  topUpBy
14
- } from "./chunk-VOEFHED3.js";
14
+ } from "./chunk-V42LNJK5.js";
15
15
  import "./chunk-QGM4M3NI.js";
16
16
  export {
17
17
  _resetTestnetCacheForTests,
package/dist/run-state.js CHANGED
@@ -7,7 +7,7 @@ import {
7
7
  shouldSkipStaleWarning,
8
8
  stateFilePath,
9
9
  writeRunState
10
- } from "./chunk-BS7SZNE3.js";
10
+ } from "./chunk-IU6LUQFY.js";
11
11
  import "./chunk-QGM4M3NI.js";
12
12
  export {
13
13
  VERSION,
package/dist/telemetry.js CHANGED
@@ -28,8 +28,8 @@ import {
28
28
  truncateAddress,
29
29
  withDeploySpan,
30
30
  withSpan
31
- } from "./chunk-ME32MC6X.js";
32
- import "./chunk-BS7SZNE3.js";
31
+ } from "./chunk-X7G2XUB6.js";
32
+ import "./chunk-IU6LUQFY.js";
33
33
  import "./chunk-QGM4M3NI.js";
34
34
  export {
35
35
  VERSION,
@@ -9,9 +9,9 @@ import {
9
9
  isPreReleaseVersion,
10
10
  preReleaseWarning,
11
11
  promptYesNo
12
- } from "./chunk-WSHGL6SP.js";
13
- import "./chunk-ME32MC6X.js";
14
- import "./chunk-BS7SZNE3.js";
12
+ } from "./chunk-5BHSSRH7.js";
13
+ import "./chunk-X7G2XUB6.js";
14
+ import "./chunk-IU6LUQFY.js";
15
15
  import "./chunk-QGM4M3NI.js";
16
16
  export {
17
17
  assessVersion,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bulletin-deploy",
3
- "version": "0.7.17",
3
+ "version": "0.7.18-rc.1",
4
4
  "private": false,
5
5
  "repository": {
6
6
  "type": "git",
@@ -46,16 +46,17 @@
46
46
  "@ipld/dag-pb": "^4.1.3",
47
47
  "@noble/hashes": "^1.7.2",
48
48
  "@parity/dotns-cli": "^0.6.1",
49
- "@polkadot-api/substrate-bindings": "^0.16.5",
50
- "@polkadot-labs/hdkd": "^0.0.25",
51
- "@polkadot-labs/hdkd-helpers": "^0.0.26",
52
- "@polkadot/keyring": "^14.0.1",
53
- "@polkadot/util-crypto": "^14.0.1",
49
+ "@polkadot-api/metadata-builders": "^0.14.2",
50
+ "@polkadot-api/substrate-bindings": "^0.20.2",
51
+ "@polkadot-labs/hdkd": "^0.0.28",
52
+ "@polkadot-labs/hdkd-helpers": "^0.0.30",
53
+ "@polkadot/keyring": "^14.0.3",
54
+ "@polkadot/util-crypto": "^14.0.3",
54
55
  "@sentry/node": "^9.14.0",
55
56
  "ipfs-unixfs": "^11.2.0",
56
57
  "ipfs-unixfs-importer": "^16.1.4",
57
58
  "multiformats": "^13.4.1",
58
- "polkadot-api": "^1.23.1",
59
+ "polkadot-api": "^2.1.3",
59
60
  "viem": "^2.30.5"
60
61
  },
61
62
  "devDependencies": {