/** * XCM location for the relay native asset (DOT/PAS) — "here from relay". * See docs-internal/dotns-bootstrap-handover.md §6.2. */ declare const NATIVE_LOC: { parents: 1; interior: { type: "Here"; value: undefined; }; }; /** * XCM location for the PGAS fungible asset on Asset Hub. * PalletInstance(50) = the Assets pallet; GeneralIndex = PGAS asset id. * See docs-internal/dotns-bootstrap-handover.md §6.2. */ declare const PGAS_LOC: { parents: 0; interior: { type: "X2"; value: readonly [{ readonly type: "PalletInstance"; readonly value: 50; }, { readonly type: "GeneralIndex"; readonly value: bigint; }]; }; }; /** * Probe §6.1 — `MembersSubscriber.RingCollectionExponents[peopleIdent]`. * * The chain's `verify_membership_at_rev` reads this map to look up the ring * exponent for the collection. If it is None (populated only when * `initialize_ring_roots` was never run before `process_ring_updates`), every * ring-VRF flow returns `Error::CollectionNotFound` which maps to * `InvalidTransaction::BadProof`. * * Fix: chain operator must run `sudo-fix-preview-people-exponent.ts` (or * equivalent) to populate the storage entry. This is an operator-only fix. * See docs-internal/dotns-bootstrap-handover.md §6.1. */ declare function probeRingCollectionExponents(ahUnsafeApi: unknown, peopleIdent: string): Promise; /** * Probe §6.3 — `Assets.Asset[PGAS_ASSET_ID]`. * * The PGAS fungible asset (id 2_000_000_000) must exist on Asset Hub before * `Pgas.claim_pgas` can succeed. If missing, the call rejects with * `InvalidTransaction::Custom(233) = PgasAssetNotCreated`. * * Fix: chain operator must run `Pgas.create_pgas_asset` (authorized origin * only) or apply a migration. This is an operator-only fix. * See docs-internal/dotns-bootstrap-handover.md §6.3. */ declare function probePgasAsset(ahUnsafeApi: unknown): Promise; /** * Probe §6.2 — `AssetConversion.Pools[[NATIVE_LOC, PGAS_LOC]]`. * * Required when routing transaction weight fees through PGAS via * ChargeAssetTxPayment (so PAS-zero accounts can pay entirely in PGAS). * Without the swap pool, the chain returns `InvalidTransaction::Payment`. * * Fix: chain operator must create the pool via `sudo-create-pgas-pool.ts` or * the equivalent `dot` CLI sequence. This is an operator-only fix. * See docs-internal/dotns-bootstrap-handover.md §6.2. */ declare function probePgasNativePool(ahUnsafeApi: unknown, nativeLoc?: typeof NATIVE_LOC, pgasLoc?: typeof PGAS_LOC): Promise; /** * Run all three chain prerequisite probes in order. Fails fast on the first * missing prerequisite so the user gets the most actionable error. * * Wire this into the bootstrap entry point BEFORE any chain submission. */ declare function runChainPrereqProbes(ahUnsafeApi: unknown, peopleIdent: string): Promise; export { NATIVE_LOC, PGAS_LOC, probePgasAsset, probePgasNativePool, probeRingCollectionExponents, runChainPrereqProbes };