diff --git a/apps/host/src/main.ts b/apps/host/src/main.ts index 0200c880..8cb8f2ba 100644 --- a/apps/host/src/main.ts +++ b/apps/host/src/main.ts @@ -86,7 +86,13 @@ import { setCacheSettings, type Backend, } from "@dotli/config/mode"; -import { NETWORK_KEY, getNetwork, setNetwork } from "@dotli/config/network"; +import { + NETWORK_KEY, + getActiveTldSuffix, + getNetwork, + setNetwork, + withActiveTld, +} from "@dotli/config/network"; import { parseSettingsFromSearch, writeSettingsToSearch, @@ -438,7 +444,7 @@ async function applyProductBranding( // the loaded app, and is logged so it stays observable in diagnostics. } catch (err: unknown) { log.warn( - `[dot.li manifest] icon fetch failed for ${label}.dot: ${err instanceof Error ? err.message : String(err)}`, + `[dot.li manifest] icon fetch failed for ${withActiveTld(label)}: ${err instanceof Error ? err.message : String(err)}`, ); } } @@ -1129,7 +1135,7 @@ async function main(): Promise { showError("UI failed to initialise", err.message); return; } - urlBar.innerHTML = `
How was this site loaded?VerifiedMore secure, checked by your light client.TrustedServed by an external RPC provider.${escapeHtml(label)}.dot
`; + urlBar.innerHTML = `
How was this site loaded?VerifiedMore secure, checked by your light client.TrustedServed by an external RPC provider.${escapeHtml(label)}${escapeHtml(getActiveTldSuffix())}
`; // Listen for status messages from the sandbox iframe so the loading // UI continues seamlessly from resolution into content fetching. @@ -1180,7 +1186,7 @@ async function main(): Promise { // sandbox render. const contentFetchPhase = chainBackend === "rpc-gateway" ? 2 : 4; advancePhase(0); - showStatus(`Resolving ${label}.dot`); + showStatus(`Resolving ${withActiveTld(label)}`); try { const cachedCid = cacheSettings.skipCidCache @@ -1209,7 +1215,7 @@ async function main(): Promise { void recordRecentLabel(label); void applyProductBranding(label, chainBackend).catch((err: unknown) => { log.warn( - `[dot.li manifest] branding failed for ${label}.dot: ${err instanceof Error ? err.message : String(err)}`, + `[dot.li manifest] branding failed for ${withActiveTld(label)}: ${err instanceof Error ? err.message : String(err)}`, ); }); performance.mark("dotli:main:end"); @@ -1320,7 +1326,7 @@ async function main(): Promise { if (cid === null) { cid = await resolveDotNameRemote(label, onResolveProgress); log.warn( - `[dot.li resolve] fallback ${label}.dot contenthash -> ${cid ?? "null"}`, + `[dot.li resolve] fallback ${withActiveTld(label)} contenthash -> ${cid ?? "null"}`, ); } } finally { @@ -1340,7 +1346,7 @@ async function main(): Promise { if (cid === null) { cid = await resolveDotNameViaRpc(label, onResolveProgress); log.warn( - `[dot.li resolve] fallback ${label}.dot contenthash -> ${cid ?? "null"}`, + `[dot.li resolve] fallback ${withActiveTld(label)} contenthash -> ${cid ?? "null"}`, ); } } @@ -1361,7 +1367,7 @@ async function main(): Promise { stopStatusTick(); performance.mark("dotli:resolve:end"); log.warn( - `[dot.li resolve] RESOLVED ${label}.dot via ${chainBackend} in ${dur(resolveStart)} (total ${elapsed(T0)}) -> ${cid ?? "null"}`, + `[dot.li resolve] RESOLVED ${withActiveTld(label)} via ${chainBackend} in ${dur(resolveStart)} (total ${elapsed(T0)}) -> ${cid ?? "null"}`, ); if (cid === null) { @@ -1387,7 +1393,7 @@ async function main(): Promise { void recordRecentLabel(label); void applyProductBranding(label, chainBackend).catch((err: unknown) => { log.warn( - `[dot.li manifest] branding failed for ${label}.dot: ${err instanceof Error ? err.message : String(err)}`, + `[dot.li manifest] branding failed for ${withActiveTld(label)}: ${err instanceof Error ? err.message : String(err)}`, ); }); diff --git a/apps/host/tests/env.ts b/apps/host/tests/env.ts index 6688ee09..aaffe967 100644 --- a/apps/host/tests/env.ts +++ b/apps/host/tests/env.ts @@ -8,6 +8,27 @@ * import these instead of re-reading `process.env`. */ +import { + NETWORK_NAME_TO_SERVICES_CONFIG, + isValidNetwork, + type Network, +} from "@dotli/config/network"; + export const DOMAIN = process.env.DOMAIN ?? "host-playground"; export const PORT = process.env.PORT ?? "5173"; export const TIMEOUT_MS = parseInt(process.env.TIMEOUT_MS ?? "45000", 10); + +/** Network under test. Must match the first entry of the build's VITE_NETWORKS. */ +export const NETWORK: Network = (() => { + const raw = process.env.NETWORK ?? "paseo-next-v2"; + if (!isValidNetwork(raw)) { + throw new Error(`NETWORK is not a known network: ${JSON.stringify(raw)}`); + } + return raw; +})(); + +/** dotNS suffix of the network under test, e.g. `.paseo`. Read from the same config the app uses. */ +export const TLD_SUFFIX = `.${NETWORK_NAME_TO_SERVICES_CONFIG[NETWORK].dotns.TLD}`; + +/** The full dotNS name under test, e.g. `host-playground.paseo`. */ +export const DOTNS_NAME = `${DOMAIN}${TLD_SUFFIX}`; diff --git a/apps/host/tests/functional/loading.spec.ts b/apps/host/tests/functional/loading.spec.ts index 99519def..02c27557 100644 --- a/apps/host/tests/functional/loading.spec.ts +++ b/apps/host/tests/functional/loading.spec.ts @@ -12,6 +12,8 @@ import { test } from "./helpers/shared-mode-reset"; import { findAppFrame } from "../product-frame"; import { seedBackend, type Backend } from "./fixtures/settings"; +import { TLD_SUFFIX } from "../env"; + const DOMAIN = process.env.COMBO_DOMAIN ?? "host-playground"; const PORT = process.env.COMBO_PORT ?? "5173"; const HOST_URL = `http://${DOMAIN}.localhost:${PORT}/`; @@ -462,7 +464,9 @@ test("As a user, when I visit a domain that has no content set, I see the approp "This app can't be reached", { timeout: 10_000 }, ); - await expect(page.locator(".error-page-domain")).toHaveText(`${DOMAIN}.dot`); + await expect(page.locator(".error-page-domain")).toHaveText( + `${DOMAIN}${TLD_SUFFIX}`, + ); await expect(page.locator(".error-page-detail")).toContainText( "Check if there is a typo", ); diff --git a/apps/host/tests/functional/resolution.spec.ts b/apps/host/tests/functional/resolution.spec.ts index 3736e54d..61a67db7 100644 --- a/apps/host/tests/functional/resolution.spec.ts +++ b/apps/host/tests/functional/resolution.spec.ts @@ -7,7 +7,7 @@ * Env overrides: DOMAIN, PORT, TIMEOUT_MS */ -import { DOMAIN, PORT, TIMEOUT_MS } from "../env"; +import { DOMAIN, DOTNS_NAME, PORT, TIMEOUT_MS } from "../env"; import { setupTest } from "./helpers/context"; import { waitForResolutionOutcome } from "../product-frame"; import { BACKENDS } from "./fixtures/settings"; @@ -19,7 +19,7 @@ test.setTimeout(BACKENDS.length * TIMEOUT_MS * 2); test.describe("Resolution across chain backends", () => { for (const backend of BACKENDS) { - test(`As a user opening ${DOMAIN}.dot via ${backend}, the shell loads the app`, async ({ + test(`As a user opening ${DOTNS_NAME} via ${backend}, the shell loads the app`, async ({ browser, }) => { // Given diff --git a/bun.lock b/bun.lock index 1a938eca..1205e977 100644 --- a/bun.lock +++ b/bun.lock @@ -293,8 +293,8 @@ "@dotli/storage": "workspace:*", "@dotli/truapi-debug": "workspace:*", "@noble/hashes": "^2.2.0", - "@parity/truapi": "0.7.0", - "@parity/truapi-host": "0.4.0", + "@parity/truapi": "0.9.0", + "@parity/truapi-host": "0.6.0", "@polkadot-api/json-rpc-provider": "^0.2.0", "@scure/base": "^2.2.0", "neverthrow": "^8.2.0", @@ -321,10 +321,11 @@ }, }, "overrides": { - "@parity/truapi": "0.7.0", + "@parity/truapi": "0.9.0", "brace-expansion": "^5.0.9", "esbuild": "^0.28.1", "fast-uri": "3.1.5", + "nanoid": "^3.3.18", "postcss": "^8.5.24", "smoldot": "3.3.2", }, @@ -661,9 +662,9 @@ "@oxc-project/types": ["@oxc-project/types@0.133.0", "", {}, "sha512-KzkdCd6Uxqnf6l3HOw1xfatAlUURA0g14cvBYFyJ5SaNOQbOUvBr9PKArcPcrNIeRsBdgcUzOGrhKveVpvOIGA=="], - "@parity/truapi": ["@parity/truapi@0.7.0", "", { "dependencies": { "@noble/hashes": "^2.2.0", "neverthrow": "^8.2.0", "scale-ts": "^1.6.1" } }, "sha512-xBGZP7/l74I0WGUnHgoFNYah+20I3JgykJ5pNUVsw3mQzNoCHuZSVJW6sUq7fzLvRF4wM2glPTPxUOiFKgfE9A=="], + "@parity/truapi": ["@parity/truapi@0.9.0", "", { "dependencies": { "@noble/hashes": "^2.2.0", "neverthrow": "^8.2.0", "scale-ts": "^1.6.1" } }, "sha512-mndLyirfLFGYhlMKj10kMvovUk8v5h58z3f4u47yDb6bn5cmYlkf37fIsXC3rXEBGRL78yMv83O0xWrS3K2RVA=="], - "@parity/truapi-host": ["@parity/truapi-host@0.4.0", "", { "dependencies": { "@parity/truapi": "^0.7.0" } }, "sha512-C4FToZ+KCaSpG3nKpB2qAulp2UTmKg2PzJkjKS8Vuf1v1IbK4GJ58VZ/Qnmo2pgkOFfUeRlf2l0i5LUacorwEQ=="], + "@parity/truapi-host": ["@parity/truapi-host@0.6.0", "", { "dependencies": { "@parity/truapi": "^0.9.0" } }, "sha512-1rSZ7ZCBWaXXq+zZAHrOiECE5pf59/aJxiQbq1EF9mi6U7t/90UBLrKzpQgBCNT23ivTuWrSlBVi7Tj6ZiWheQ=="], "@playwright/test": ["@playwright/test@1.60.0", "", { "dependencies": { "playwright": "1.60.0" }, "bin": { "playwright": "cli.js" } }, "sha512-O71yZIbAh/PxDMNGns37GHBIfrVkEVyn+AXyIa5dOTfb4/xNvRWV+Vv/NMbNCtODB/pO7vLlF2OTmMVLhmr7Ag=="], @@ -1347,7 +1348,7 @@ "nanoevents": ["nanoevents@9.1.0", "", {}, "sha512-Jd0fILWG44a9luj8v5kED4WI+zfkkgwKyRQKItTtlPfEsh7Lznfi1kr8/iZ+XAIss4Qq5GqRB0qtWbaz9ceO/A=="], - "nanoid": ["nanoid@3.3.16", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q=="], + "nanoid": ["nanoid@3.3.18", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w=="], "natural-compare": ["natural-compare@1.4.0", "", {}, "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="], diff --git a/package.json b/package.json index de6d0164..0c3e23e1 100644 --- a/package.json +++ b/package.json @@ -39,11 +39,12 @@ "smoldot": "3.3.2" }, "overrides": { - "@parity/truapi": "0.7.0", + "@parity/truapi": "0.9.0", "fast-uri": "3.1.5", "smoldot": "3.3.2", "esbuild": "^0.28.1", "brace-expansion": "^5.0.9", - "postcss": "^8.5.24" + "postcss": "^8.5.24", + "nanoid": "^3.3.18" } } diff --git a/packages/config/src/network.ts b/packages/config/src/network.ts index 7913d5bd..00968f30 100644 --- a/packages/config/src/network.ts +++ b/packages/config/src/network.ts @@ -22,7 +22,9 @@ export interface DotnsStorageSlots { export interface DotnsContracts { readonly DOTNS_REGISTRY: `0x${string}`; readonly DOTNS_CONTENT_RESOLVER: `0x${string}`; - readonly storageSlots: DotnsStorageSlots; + readonly STORAGE_SLOTS: DotnsStorageSlots; + /** Bare TLD label this network registers names under, e.g. `dot` or `paseo`. */ + readonly TLD: string; } export interface ChainService { @@ -50,7 +52,7 @@ const BUILTIN_NETWORK_SERVICES: Record = { description: "Legacy Paseo Next system chains", relay: { genesis: - "0x77afd6190f1554ad45fd0d31aee62aacc33c6db0ea801129acb813f913e0764f", + "0x374057be67b355151f271ff70c3db98308c62c8adc48dc6724b6a009a1a014fd", rpcs: [ "wss://paseo-rpc.n.dwellir.com", "wss://paseo.dotters.network", @@ -82,7 +84,8 @@ const BUILTIN_NETWORK_SERVICES: Record = { dotns: { DOTNS_REGISTRY: "0x4Da0d37aBe96C06ab19963F31ca2DC0412057a6f", DOTNS_CONTENT_RESOLVER: "0x7756DF72CBc7f062e7403cD59e45fBc78bed1cD7", - storageSlots: { REGISTRY_RECORDS: 0, CONTENTHASH: 1 }, + STORAGE_SLOTS: { REGISTRY_RECORDS: 0, CONTENTHASH: 1 }, + TLD: "dot", }, }, [NetworkName.PASEO_NEXT_V2]: { @@ -90,7 +93,7 @@ const BUILTIN_NETWORK_SERVICES: Record = { description: "Upgraded Paseo Next system chains", relay: { genesis: - "0x77afd6190f1554ad45fd0d31aee62aacc33c6db0ea801129acb813f913e0764f", + "0x374057be67b355151f271ff70c3db98308c62c8adc48dc6724b6a009a1a014fd", rpcs: [ "wss://paseo-rpc.n.dwellir.com", "wss://paseo.dotters.network", @@ -100,7 +103,7 @@ const BUILTIN_NETWORK_SERVICES: Record = { }, assethub: { genesis: - "0xbf0488dbe9daa1de1c08c5f743e26fdc2a4ecd74cf87dd1b4b1eeb99ae4ef19f", + "0x23e730eb1c6fecae09c917439a5038cb6122d0d48980e8b9bbf0ff56f94a2ca6", rpcs: ["wss://paseo-asset-hub-next-rpc.polkadot.io"], }, bulletin: { @@ -111,13 +114,14 @@ const BUILTIN_NETWORK_SERVICES: Record = { }, people: { genesis: - "0xc5af1826b31493f08b7e2a823842f98575b806a784126f28da9608c68665afa5", + "0x89a63b11fef2c0273fc72c0d864da0793a665dade5db153e0cab995348c5440f", rpcs: ["wss://paseo-people-next-system-rpc.polkadot.io"], }, dotns: { - DOTNS_REGISTRY: "0xa1b2b939E82b2ecE55Bd8a0E283818BfC1CA6CDc", - DOTNS_CONTENT_RESOLVER: "0x8A26480b0B5Df3d4D9b95adc24a5Ecb33A5b8F64", - storageSlots: { REGISTRY_RECORDS: 0, CONTENTHASH: 0, TEXT_RECORDS: 1 }, + DOTNS_REGISTRY: "0xf34054fd76BbF85f216cf9908226D5f0A72E50CA", + DOTNS_CONTENT_RESOLVER: "0x7F74D7CD50f5a834270E2ad395a01b01891AB37d", + STORAGE_SLOTS: { REGISTRY_RECORDS: 0, CONTENTHASH: 0, TEXT_RECORDS: 1 }, + TLD: "paseo", }, }, [NetworkName.PREVIEW_NET]: { @@ -150,7 +154,8 @@ const BUILTIN_NETWORK_SERVICES: Record = { dotns: { DOTNS_REGISTRY: "0xf34054fd76BbF85f216cf9908226D5f0A72E50CA", DOTNS_CONTENT_RESOLVER: "0x7F74D7CD50f5a834270E2ad395a01b01891AB37d", - storageSlots: { REGISTRY_RECORDS: 0, CONTENTHASH: 0, TEXT_RECORDS: 1 }, + STORAGE_SLOTS: { REGISTRY_RECORDS: 0, CONTENTHASH: 0, TEXT_RECORDS: 1 }, + TLD: "dot", }, }, }; @@ -492,6 +497,22 @@ export function setNetwork(network: Network): void { } } +/** + * The active TLD with its leading dot, e.g. `".paseo"`. + * + * Each TLD must also be in `DOTNS_TLDS` in truapi's `truapi-platform`, which + * gates `productId` with its own hardcoded list. A network whose TLD the core + * does not know cannot load a product until the core ships it. + */ +export function getActiveTldSuffix(): string { + return `.${getActiveServicesConfig().dotns.TLD}`; +} + +/** Appends the active TLD to a bare label, giving `myapp.paseo`. */ +export function withActiveTld(label: string): string { + return `${label}${getActiveTldSuffix()}`; +} + /** Full service config for the active network. */ export function getActiveServicesConfig(): ServicesConfig { return NETWORK_NAME_TO_SERVICES_CONFIG[getNetwork()]; diff --git a/packages/config/tests/config.test.ts b/packages/config/tests/config.test.ts index 2e367cff..2b49e724 100644 --- a/packages/config/tests/config.test.ts +++ b/packages/config/tests/config.test.ts @@ -43,7 +43,7 @@ describe("config constants", () => { describe("dotns storage slots", () => { it("every network exposes non-negative REGISTRY_RECORDS and CONTENTHASH slots", () => { for (const cfg of Object.values(NETWORK_NAME_TO_SERVICES_CONFIG)) { - const slots = cfg.dotns.storageSlots; + const slots = cfg.dotns.STORAGE_SLOTS; expect(Number.isInteger(slots.REGISTRY_RECORDS)).toBe(true); expect(slots.REGISTRY_RECORDS).toBeGreaterThanOrEqual(0); expect(Number.isInteger(slots.CONTENTHASH)).toBe(true); @@ -52,6 +52,28 @@ describe("config constants", () => { }); }); + describe("dotns TLD", () => { + // Mirrors `DOTNS_TLDS` in truapi's `truapi-platform`. + const CORE_ACCEPTED_TLDS = ["dot", "paseo"]; + + it("every network declares a bare lowercase TLD the truapi core accepts", () => { + for (const [name, cfg] of Object.entries( + NETWORK_NAME_TO_SERVICES_CONFIG, + )) { + const tld = cfg.dotns.TLD; + expect(tld, `${name} TLD must be non-empty`).not.toBe(""); + expect(tld, `${name} TLD must be lowercase`).toBe(tld.toLowerCase()); + expect(tld, `${name} TLD must not carry a leading dot`).not.toMatch( + /^\./, + ); + expect( + CORE_ACCEPTED_TLDS, + `${name} TLD ${tld} is not in the core's DOTNS_TLDS`, + ).toContain(tld); + } + }); + }); + describe("IPFS gateways", () => { it("V1 first gateway is a valid HTTPS URL", () => { expect( diff --git a/packages/resolver/src/chain-specs/paseo-asset-hub-next.smol.json b/packages/resolver/src/chain-specs/paseo-asset-hub-next.smol.json index 8858728d..83588fea 100644 --- a/packages/resolver/src/chain-specs/paseo-asset-hub-next.smol.json +++ b/packages/resolver/src/chain-specs/paseo-asset-hub-next.smol.json @@ -1 +1 @@ -{"name":"Paseo Asset Hub Next","id":"next-asset-hub-paseo","chainType":"Live","bootNodes":["/dns/paseo-asset-hub-next-collator-node-0.parity-testnet.parity.io/tcp/443/wss/p2p/12D3KooWKT5DcVLoBbVDAM6N5ujDVknPfQWHk8SGJqJPyAM8Z4Y4","/dns/paseo-asset-hub-next-collator-node-1.parity-testnet.parity.io/tcp/443/wss/p2p/12D3KooWFjpVdBnfJFntogWhinn15WW2n8Fd2DiAcqU6i9rg47Yg","/ip4/34.7.179.66/udp/32208/webrtc-direct/certhash/uEiBsqkcr8pOaNjl6px_v1nBatWMfXB9C_sU8fDat3mZWfQ/p2p/12D3KooWK8TtC31jkC9u5EfHPx7MGRCdE1kFSFXW43qdDWqdKMum","/ip4/34.91.159.79/udp/32039/webrtc-direct/certhash/uEiB5itUMGibt92QYT7-bsTz7zMTR8v7GZlJJ0RUIbNd0HA/p2p/12D3KooWK2X3GytbTgeBwFJ3mHMkpkB3u7JPu7zyTuWiuqp99UHK"],"telemetryEndpoints":null,"protocolId":null,"properties":{"tokenDecimals":10,"tokenSymbol":"PAS"},"relay_chain":"paseo","para_id":1500,"codeSubstitutes":{},"genesis":{"stateRootHash":"0x9202fc20d789aecfb88faf17dca27d42f8b90cf0a0b02c96d7024585864b7271"}} \ No newline at end of file +{"name":"Paseo Asset Hub Next","id":"next-asset-hub-paseo","chainType":"Live","bootNodes":["/dns/paseo-asset-hub-next-collator-node-0.parity-testnet.parity.io/tcp/443/wss/p2p/12D3KooWKT5DcVLoBbVDAM6N5ujDVknPfQWHk8SGJqJPyAM8Z4Y4","/dns/paseo-asset-hub-next-collator-node-1.parity-testnet.parity.io/tcp/443/wss/p2p/12D3KooWFjpVdBnfJFntogWhinn15WW2n8Fd2DiAcqU6i9rg47Yg","/ip4/34.7.179.66/udp/32208/webrtc-direct/certhash/uEiBsqkcr8pOaNjl6px_v1nBatWMfXB9C_sU8fDat3mZWfQ/p2p/12D3KooWK8TtC31jkC9u5EfHPx7MGRCdE1kFSFXW43qdDWqdKMum","/ip4/34.91.159.79/udp/32039/webrtc-direct/certhash/uEiB5itUMGibt92QYT7-bsTz7zMTR8v7GZlJJ0RUIbNd0HA/p2p/12D3KooWK2X3GytbTgeBwFJ3mHMkpkB3u7JPu7zyTuWiuqp99UHK"],"telemetryEndpoints":null,"protocolId":null,"properties":{"tokenDecimals":10,"tokenSymbol":"PAS"},"relay_chain":"paseo","para_id":1500,"codeSubstitutes":{},"genesis":{"stateRootHash":"0x2b1f5dafccbaeb2e52c553a57003ef77bf35920d86c2c932920e4a60c7f68a50"}} \ No newline at end of file diff --git a/packages/resolver/src/chain-specs/paseo-people-next-system.smol.json b/packages/resolver/src/chain-specs/paseo-people-next-system.smol.json index 0b34fa95..731d0aae 100644 --- a/packages/resolver/src/chain-specs/paseo-people-next-system.smol.json +++ b/packages/resolver/src/chain-specs/paseo-people-next-system.smol.json @@ -1 +1 @@ -{"name":"Paseo People Next","id":"next-people-paseo","chainType":"Live","bootNodes":["/dns/paseo-people-next-system-collator-node-0.parity-testnet.parity.io/tcp/443/wss/p2p/12D3KooWN5JKhxNAfij5EvbY2Kdr5oJvAVhL5WovmxaZ2Q6m69uP","/dns/paseo-people-next-system-collator-node-1.parity-testnet.parity.io/tcp/443/wss/p2p/12D3KooWGboxsnnd1uqRUZUf3vL9fFgqnDvXxHtQ7LQN3YmPXhhY"],"telemetryEndpoints":null,"protocolId":null,"properties":{"tokenDecimals":10,"tokenSymbol":"PAS"},"relay_chain":"paseo","para_id":1502,"codeSubstitutes":{},"genesis":{"stateRootHash":"0x5dda5b3506f1b63dd9157f44f5f1a68913a1f5bec05503858b490a4388653edb"}} \ No newline at end of file +{"name":"Paseo People Next","id":"next-people-paseo","chainType":"Live","bootNodes":["/dns/paseo-people-next-system-collator-node-0.parity-testnet.parity.io/tcp/443/wss/p2p/12D3KooWN5JKhxNAfij5EvbY2Kdr5oJvAVhL5WovmxaZ2Q6m69uP","/dns/paseo-people-next-system-collator-node-1.parity-testnet.parity.io/tcp/443/wss/p2p/12D3KooWGboxsnnd1uqRUZUf3vL9fFgqnDvXxHtQ7LQN3YmPXhhY"],"telemetryEndpoints":null,"protocolId":null,"properties":{"tokenDecimals":10,"tokenSymbol":"PAS"},"relay_chain":"paseo","para_id":1502,"codeSubstitutes":{},"genesis":{"stateRootHash":"0x77fe37f8298f1f64025e6dcd5383a470f527cabae0a423e4379f471bb4c6819b"}} \ No newline at end of file diff --git a/packages/resolver/src/chain-specs/paseo.smol.json b/packages/resolver/src/chain-specs/paseo.smol.json index 62951fd5..64c9b4bc 100644 --- a/packages/resolver/src/chain-specs/paseo.smol.json +++ b/packages/resolver/src/chain-specs/paseo.smol.json @@ -1 +1 @@ -{"name":"Paseo","id":"paseo","chainType":"Live","bootNodes":["/dns/n8r2.bn.turboflakes.io/tcp/30443/wss/p2p/12D3KooWC3noUwG6TJwh4AJMNxCMNvmSZeknsLtXudxrB7nPXbjG"],"telemetryEndpoints":null,"protocolId":"pad","properties":{"ss58Format":"42","tokenDecimals":"10","tokenSymbol":"PAS"},"codeSubstitutes":{},"genesis":{"stateRootHash":"0x070b57c91484ab48bfa87a8af91ec6c20667aa4b0e7b34e3c0689dd00e7980ca"},"lightSyncState":{"babeEpochChanges":"0x0456db376abe6fdff630335dd0b3b3b010da1948a64e08798018c0296ef130d6d2f8ee0600016e69bd1100000000c66bbd11000000000448312d64c975e0162a997a4cc37f4b980d85152433527fa22aa9cae297b1a09150f1060001c66bbd11000000001e6ebd110000000004e4ab51e34fe39b86e69f2772a55d5e4c0d65652c8ba3260e3b8635a85741513aa8f30600011e6ebd11000000007670bd110000000000000c48312d64c975e0162a997a4cc37f4b980d85152433527fa22aa9cae297b1a09150f1060001fa02000000000000c66bbd11000000005802000000000000e0e81d86891b29ffe5f8bf39108b666142cec991fb63244415b7ccea71125faf170100000000000000ec1bd0f5f84d72466a76e6a4475c503ab408f2b49edd66484c66481ea636b153010000000000000002d0a5c4dc88271d54931c74fca673f7574b0cca137085e7bd93d7c9a22c77590100000000000000a4ff948f85eef63658b3dae21f50cefa2c19cb89b0305fb53dfcea2f4491ab1c0100000000000000d6cb56c057956c71f0eb5675ec38553b81ca149a10130dedd485cb221f4f962e01000000000000008afead280e1c83ad0a461a6adbcf4e8328ff93d5f80d95d427d07fbe8d28195a010000000000000042137c0400236ce29118fc984cebdf78e1c5031a1bf660aa7d6a18cedaf40e3e01000000000000007a412f2591679f757469c1cce3cbb489b58a65c88bec143580a6b08467c0d66f0100000000000000e45f47896b345c2ad29a023b420970357490bcf8e5c80191ca7127bfb4f274530100000000000000f06a25a0b965df7b9c2f3102775d3b15d47ee65e7b4e2cf573a4c201c0220937010000000000000010c13aace80c749cd5537d4ba45e073907f4b7ccbbccd4ce58230fa9bc61b1010100000000000000723d1d0f8b624987acd5035935bc7874a5b03b59fc747a6962654e1c9b1aea41010000000000000006b94575d2b3f000398ed0c27ec1c948928a61899691915473e2c53251bffc61010000000000000072bc3ba78c0f00838af10c9547081397b45fb7c4ec177bac233b801d0e01aa6801000000000000006ea0348a5f164dabacd4ff64506b7413b3bc77b059ee1e02a058d2a55bcfa87b0100000000000000584ec0db2bae4f2340d44a3b69d300553dd1df298585ac76b9a1c68f5068976501000000000000006403b69b73dd4d134d158731eeab4f482cb8a67bb2710b9ef7ee346358abba01010000000000000096361f9708fc507af16090e372e889ac7926b4807e985ef5ae14b6a5d7396d3a0100000000000000de7500c97090be7a78c1b385f298de75c816a4281e91cfe80caee01b1ca0690d010000000000000028ef1ad31acaf344d82ab008882453399a7331a62fa1e32bff49d76105d8527c01000000000000004253bd1f6e0438b5856d2a0536511d345fe933b049392ea88043d142803f905701000000000000000efa3a3d1a1df84af870be04c2b873bc69ccf75d0a681ebee038ce0dd7ce3262010000000000000026026b3279655b5fc55c7a4cd07d3ec34a9674b71e6dd9cae3a382e625ba5534010000000000000006a88e1633465db194e7fc64c7a5c4a4b911ff24562b38a9e1fb36056514b63e0100000000000000365dce13c901ec12ae32f9eafbc7f0efd2ed0585ca7da7d44a3860f85e649e4e0100000000000000a0e0eacbb23ed6626698328118d5cf817ffff74ff0095e3a0283ce9d6dd908460100000000000000680ee03d3bfa8d45b30cc10f00bc089468b6744312542233ce457f4514adc831010000000000000048740433d5c90fbc833f743905d3ffa8c944a1c497c76303a934eb717bc1c76c01000000000000008819d545b5476790fd97a58a4f705208ac52c57cccee2237fbf37579fa4ea5470100000000000000606e0e33cb3f9fd7970a16a7d3f5b650c796f7d7c805c35c645c55d5ce6039020100000000000000d669b2ec823a24d60cfa2155190dbbd19168054643d870433b8aecaf538d99010100000000000000d800a130cf1abec4ab5e264e2910aff610830559c15c416e2e7293205c7df1680100000000000000d6d3cbdec3326586e224170d91fd0238fde441a902d80787f080d134fc20a52d01000000000000003047ebca8614f20e45cf0043eb1ec9089f10c6981ec49a909c4e7bea9614b20c010000000000000014d21668a49bece60e5c54352fae48b15f7c20c80d6ed87a05587e5bce12b16a010000000000000060e57bc9a25786e3001696943f4141c79fcdfcfdba9dd10f713c921c7383d72f01000000000000006816b19e22c57012997df7cbb387e8a043c5980ef6a0b7176ef7c9ef687692670100000000000000468da131acf1f73b47dfde211bcc53d2fc102c741d72c21b56b28fdabbc6bc440100000000000000c4603fa09b096832ff1d834be056cfdeeb922262cfc89e5e0cf3600b67dbbc1e0100000000000000dcda83b436c74ec22ff1ca033ca783d31c7973d9d8bb669795afee7d6aabb4350100000000000000485f4d8cf2897518552ab984b5074d823e3087289d03d776f7e8e245e23b493e0100000000000000205a7ff855c2cadd27748b723cef01126e9f522725ba798fbcd8e7426321b4570100000000000000dc0c4f99eaf6d3437e95af15d077d591a551d76ddd1579fb100c05fee3591d7c010000000000000088d964219dd6ebd538e1804f1ca69936bc65c21cfa963ac370e4a6ac3f3fbd61010000000000000006b47b04fdf9f25e7dc43645b294f210e8f32dfb4b3a7f91ad15ffcc4f0637550100000000000000bafd009a59b87c879e7f538be8c07b49076aa775171bad62ee4c66fca5e3ae5a0100000000000000c8fc89765a2029dbd5de48bd60e759d3fe2754c81082683b86d89eaffbcf485b010000000000000018133feb9a23fceff68551c4e7c0b706742bc14464f721db0b270579fd5c001d0100000000000000de24f7b0bd7e3e89a817ad1953f778cbfd8343482cf5e777ef8cea61517411750100000000000000e421f4a9c7afe912397156c58837488b31baef4d297ece4d04a20056f6922420010000000000000056daa624ab5e2023ede243ff830235a4cf0bf25b8be88f011ea0fef46910865801000000000000007c2b2650d170087313955372306682dbcf2d95a2ca923a77e6b646a9a10bf83f01000000000000007a694fc030469cf01585fd29ff37905fbfc55329288d2fdd5d5294bc52e3bd2901000000000000009a78cffb3684ca2fd4118c4f885315179ecdbe2748d29066802c2e4529255b140100000000000000be9379477d3cce786682133454af701de1c04fa52cdcc5e9cf23ce47399fd8620100000000000000582545d042f1891e4c643dfa2c060cb6111072d88a0a64b45836e026ccf06e2d0100000000000000e5e80780eb46c9e2f34abbab769ba22a9548f5cc925fef1848e8ad44eba3c8c3010000000000000004000000000000000256db376abe6fdff630335dd0b3b3b010da1948a64e08798018c0296ef130d6d2f8ee060001f9020000000000006e69bd11000000005802000000000000e0e81d86891b29ffe5f8bf39108b666142cec991fb63244415b7ccea71125faf170100000000000000ec1bd0f5f84d72466a76e6a4475c503ab408f2b49edd66484c66481ea636b153010000000000000002d0a5c4dc88271d54931c74fca673f7574b0cca137085e7bd93d7c9a22c77590100000000000000a4ff948f85eef63658b3dae21f50cefa2c19cb89b0305fb53dfcea2f4491ab1c0100000000000000d6cb56c057956c71f0eb5675ec38553b81ca149a10130dedd485cb221f4f962e01000000000000008afead280e1c83ad0a461a6adbcf4e8328ff93d5f80d95d427d07fbe8d28195a010000000000000042137c0400236ce29118fc984cebdf78e1c5031a1bf660aa7d6a18cedaf40e3e01000000000000007a412f2591679f757469c1cce3cbb489b58a65c88bec143580a6b08467c0d66f0100000000000000e45f47896b345c2ad29a023b420970357490bcf8e5c80191ca7127bfb4f274530100000000000000f06a25a0b965df7b9c2f3102775d3b15d47ee65e7b4e2cf573a4c201c0220937010000000000000010c13aace80c749cd5537d4ba45e073907f4b7ccbbccd4ce58230fa9bc61b1010100000000000000723d1d0f8b624987acd5035935bc7874a5b03b59fc747a6962654e1c9b1aea41010000000000000006b94575d2b3f000398ed0c27ec1c948928a61899691915473e2c53251bffc61010000000000000072bc3ba78c0f00838af10c9547081397b45fb7c4ec177bac233b801d0e01aa6801000000000000006ea0348a5f164dabacd4ff64506b7413b3bc77b059ee1e02a058d2a55bcfa87b0100000000000000584ec0db2bae4f2340d44a3b69d300553dd1df298585ac76b9a1c68f5068976501000000000000006403b69b73dd4d134d158731eeab4f482cb8a67bb2710b9ef7ee346358abba01010000000000000096361f9708fc507af16090e372e889ac7926b4807e985ef5ae14b6a5d7396d3a0100000000000000de7500c97090be7a78c1b385f298de75c816a4281e91cfe80caee01b1ca0690d010000000000000028ef1ad31acaf344d82ab008882453399a7331a62fa1e32bff49d76105d8527c01000000000000004253bd1f6e0438b5856d2a0536511d345fe933b049392ea88043d142803f905701000000000000000efa3a3d1a1df84af870be04c2b873bc69ccf75d0a681ebee038ce0dd7ce3262010000000000000026026b3279655b5fc55c7a4cd07d3ec34a9674b71e6dd9cae3a382e625ba5534010000000000000006a88e1633465db194e7fc64c7a5c4a4b911ff24562b38a9e1fb36056514b63e0100000000000000365dce13c901ec12ae32f9eafbc7f0efd2ed0585ca7da7d44a3860f85e649e4e0100000000000000a0e0eacbb23ed6626698328118d5cf817ffff74ff0095e3a0283ce9d6dd908460100000000000000680ee03d3bfa8d45b30cc10f00bc089468b6744312542233ce457f4514adc831010000000000000048740433d5c90fbc833f743905d3ffa8c944a1c497c76303a934eb717bc1c76c01000000000000008819d545b5476790fd97a58a4f705208ac52c57cccee2237fbf37579fa4ea5470100000000000000606e0e33cb3f9fd7970a16a7d3f5b650c796f7d7c805c35c645c55d5ce6039020100000000000000d669b2ec823a24d60cfa2155190dbbd19168054643d870433b8aecaf538d99010100000000000000d800a130cf1abec4ab5e264e2910aff610830559c15c416e2e7293205c7df1680100000000000000d6d3cbdec3326586e224170d91fd0238fde441a902d80787f080d134fc20a52d01000000000000003047ebca8614f20e45cf0043eb1ec9089f10c6981ec49a909c4e7bea9614b20c010000000000000014d21668a49bece60e5c54352fae48b15f7c20c80d6ed87a05587e5bce12b16a010000000000000060e57bc9a25786e3001696943f4141c79fcdfcfdba9dd10f713c921c7383d72f01000000000000006816b19e22c57012997df7cbb387e8a043c5980ef6a0b7176ef7c9ef687692670100000000000000468da131acf1f73b47dfde211bcc53d2fc102c741d72c21b56b28fdabbc6bc440100000000000000c4603fa09b096832ff1d834be056cfdeeb922262cfc89e5e0cf3600b67dbbc1e0100000000000000dcda83b436c74ec22ff1ca033ca783d31c7973d9d8bb669795afee7d6aabb4350100000000000000485f4d8cf2897518552ab984b5074d823e3087289d03d776f7e8e245e23b493e0100000000000000205a7ff855c2cadd27748b723cef01126e9f522725ba798fbcd8e7426321b4570100000000000000dc0c4f99eaf6d3437e95af15d077d591a551d76ddd1579fb100c05fee3591d7c010000000000000088d964219dd6ebd538e1804f1ca69936bc65c21cfa963ac370e4a6ac3f3fbd61010000000000000006b47b04fdf9f25e7dc43645b294f210e8f32dfb4b3a7f91ad15ffcc4f0637550100000000000000bafd009a59b87c879e7f538be8c07b49076aa775171bad62ee4c66fca5e3ae5a0100000000000000c8fc89765a2029dbd5de48bd60e759d3fe2754c81082683b86d89eaffbcf485b010000000000000018133feb9a23fceff68551c4e7c0b706742bc14464f721db0b270579fd5c001d0100000000000000de24f7b0bd7e3e89a817ad1953f778cbfd8343482cf5e777ef8cea61517411750100000000000000e421f4a9c7afe912397156c58837488b31baef4d297ece4d04a20056f6922420010000000000000056daa624ab5e2023ede243ff830235a4cf0bf25b8be88f011ea0fef46910865801000000000000007c2b2650d170087313955372306682dbcf2d95a2ca923a77e6b646a9a10bf83f01000000000000007a694fc030469cf01585fd29ff37905fbfc55329288d2fdd5d5294bc52e3bd2901000000000000009a78cffb3684ca2fd4118c4f885315179ecdbe2748d29066802c2e4529255b140100000000000000be9379477d3cce786682133454af701de1c04fa52cdcc5e9cf23ce47399fd8620100000000000000582545d042f1891e4c643dfa2c060cb6111072d88a0a64b45836e026ccf06e2d0100000000000000ef94bd51bc694357936c18fa5d84fd6bc39c5a2f5ee9cee9d16b59005034c5480100000000000000040000000000000002e4ab51e34fe39b86e69f2772a55d5e4c0d65652c8ba3260e3b8635a85741513aa8f3060001fb020000000000001e6ebd11000000005802000000000000e0e81d86891b29ffe5f8bf39108b666142cec991fb63244415b7ccea71125faf170100000000000000ec1bd0f5f84d72466a76e6a4475c503ab408f2b49edd66484c66481ea636b153010000000000000002d0a5c4dc88271d54931c74fca673f7574b0cca137085e7bd93d7c9a22c77590100000000000000a4ff948f85eef63658b3dae21f50cefa2c19cb89b0305fb53dfcea2f4491ab1c0100000000000000d6cb56c057956c71f0eb5675ec38553b81ca149a10130dedd485cb221f4f962e01000000000000008afead280e1c83ad0a461a6adbcf4e8328ff93d5f80d95d427d07fbe8d28195a010000000000000042137c0400236ce29118fc984cebdf78e1c5031a1bf660aa7d6a18cedaf40e3e01000000000000007a412f2591679f757469c1cce3cbb489b58a65c88bec143580a6b08467c0d66f0100000000000000e45f47896b345c2ad29a023b420970357490bcf8e5c80191ca7127bfb4f274530100000000000000f06a25a0b965df7b9c2f3102775d3b15d47ee65e7b4e2cf573a4c201c0220937010000000000000010c13aace80c749cd5537d4ba45e073907f4b7ccbbccd4ce58230fa9bc61b1010100000000000000723d1d0f8b624987acd5035935bc7874a5b03b59fc747a6962654e1c9b1aea41010000000000000006b94575d2b3f000398ed0c27ec1c948928a61899691915473e2c53251bffc61010000000000000072bc3ba78c0f00838af10c9547081397b45fb7c4ec177bac233b801d0e01aa6801000000000000006ea0348a5f164dabacd4ff64506b7413b3bc77b059ee1e02a058d2a55bcfa87b0100000000000000584ec0db2bae4f2340d44a3b69d300553dd1df298585ac76b9a1c68f5068976501000000000000006403b69b73dd4d134d158731eeab4f482cb8a67bb2710b9ef7ee346358abba01010000000000000096361f9708fc507af16090e372e889ac7926b4807e985ef5ae14b6a5d7396d3a0100000000000000de7500c97090be7a78c1b385f298de75c816a4281e91cfe80caee01b1ca0690d010000000000000028ef1ad31acaf344d82ab008882453399a7331a62fa1e32bff49d76105d8527c01000000000000004253bd1f6e0438b5856d2a0536511d345fe933b049392ea88043d142803f905701000000000000000efa3a3d1a1df84af870be04c2b873bc69ccf75d0a681ebee038ce0dd7ce3262010000000000000026026b3279655b5fc55c7a4cd07d3ec34a9674b71e6dd9cae3a382e625ba5534010000000000000006a88e1633465db194e7fc64c7a5c4a4b911ff24562b38a9e1fb36056514b63e0100000000000000365dce13c901ec12ae32f9eafbc7f0efd2ed0585ca7da7d44a3860f85e649e4e0100000000000000a0e0eacbb23ed6626698328118d5cf817ffff74ff0095e3a0283ce9d6dd908460100000000000000680ee03d3bfa8d45b30cc10f00bc089468b6744312542233ce457f4514adc831010000000000000048740433d5c90fbc833f743905d3ffa8c944a1c497c76303a934eb717bc1c76c01000000000000008819d545b5476790fd97a58a4f705208ac52c57cccee2237fbf37579fa4ea5470100000000000000606e0e33cb3f9fd7970a16a7d3f5b650c796f7d7c805c35c645c55d5ce6039020100000000000000d669b2ec823a24d60cfa2155190dbbd19168054643d870433b8aecaf538d99010100000000000000d800a130cf1abec4ab5e264e2910aff610830559c15c416e2e7293205c7df1680100000000000000d6d3cbdec3326586e224170d91fd0238fde441a902d80787f080d134fc20a52d01000000000000003047ebca8614f20e45cf0043eb1ec9089f10c6981ec49a909c4e7bea9614b20c010000000000000014d21668a49bece60e5c54352fae48b15f7c20c80d6ed87a05587e5bce12b16a010000000000000060e57bc9a25786e3001696943f4141c79fcdfcfdba9dd10f713c921c7383d72f01000000000000006816b19e22c57012997df7cbb387e8a043c5980ef6a0b7176ef7c9ef687692670100000000000000468da131acf1f73b47dfde211bcc53d2fc102c741d72c21b56b28fdabbc6bc440100000000000000c4603fa09b096832ff1d834be056cfdeeb922262cfc89e5e0cf3600b67dbbc1e0100000000000000dcda83b436c74ec22ff1ca033ca783d31c7973d9d8bb669795afee7d6aabb4350100000000000000485f4d8cf2897518552ab984b5074d823e3087289d03d776f7e8e245e23b493e0100000000000000205a7ff855c2cadd27748b723cef01126e9f522725ba798fbcd8e7426321b4570100000000000000dc0c4f99eaf6d3437e95af15d077d591a551d76ddd1579fb100c05fee3591d7c010000000000000088d964219dd6ebd538e1804f1ca69936bc65c21cfa963ac370e4a6ac3f3fbd61010000000000000006b47b04fdf9f25e7dc43645b294f210e8f32dfb4b3a7f91ad15ffcc4f0637550100000000000000bafd009a59b87c879e7f538be8c07b49076aa775171bad62ee4c66fca5e3ae5a0100000000000000c8fc89765a2029dbd5de48bd60e759d3fe2754c81082683b86d89eaffbcf485b010000000000000018133feb9a23fceff68551c4e7c0b706742bc14464f721db0b270579fd5c001d0100000000000000de24f7b0bd7e3e89a817ad1953f778cbfd8343482cf5e777ef8cea61517411750100000000000000e421f4a9c7afe912397156c58837488b31baef4d297ece4d04a20056f6922420010000000000000056daa624ab5e2023ede243ff830235a4cf0bf25b8be88f011ea0fef46910865801000000000000007c2b2650d170087313955372306682dbcf2d95a2ca923a77e6b646a9a10bf83f01000000000000007a694fc030469cf01585fd29ff37905fbfc55329288d2fdd5d5294bc52e3bd2901000000000000009a78cffb3684ca2fd4118c4f885315179ecdbe2748d29066802c2e4529255b140100000000000000be9379477d3cce786682133454af701de1c04fa52cdcc5e9cf23ce47399fd8620100000000000000582545d042f1891e4c643dfa2c060cb6111072d88a0a64b45836e026ccf06e2d010000000000000038d75b6c03e76d7097ee13c95bd29d302ff20213b327e771be3250c68c1ac9a20100000000000000040000000000000002","babeFinalizedBlockWeight":114001,"finalizedBlockHeader":"0x3c26e217eef430a51cd84e5a1da90a0cab08f214e94776ad39f3393e435f7ee16ed51b00f41ecb04cec5946221090c708ab768f3ace8af61ff62df68074bc02d7c0d25dbea9785f37beb127fdd2e18c864e8beff72b22d80ec18b351c5d58e6f5235bb7c0c0642414245b501012a0000007a6dbd1100000000664d7ac9340ae35c2fc6d48b97abd5c3b42d284de7fd766c9bba5ccfd834213679bcb5146985eb37496e2cef93fe5a1d384507b92d2aff6bf05f47c6693a1f0533975136bef1a090af9d0051939c76b28a9c47faf257c7ed5823e629076c2c0904424545468403aae3ce7f1ec5b8ac72d7117c4745f2e728eb25284bb7e7a53aae5fcd0e81b97905424142450101023d301b95a4d7be565874973e7b9b34bf989b8ad63ad861f4d31438bbec1b489c39e8a1c430a725ecfeab1c128938586881a7afdc2bebeda61d69e23894d38a","grandpaAuthoritySet":"0xe0731956aed8e45d4662a24769813130586e0beacbd233a2cdcef253e077189dc2010000000000000087cffd9a0057b40b259e26a23587cc4f0ba7eda8fb56a416a5ab9a07e73198ee0100000000000000a256c0ce61b51b44eb77967256f966c7acaf1882f3e7d4503e909f687472f5fa0100000000000000fcb7558928ec259bcbefc2c86933b25285c617ee92a577f960c575deae7843d60100000000000000560e7453678f6a9556c03099baae52506626aea490796d6bf8f5cfe476df178f0100000000000000c2ace1f4c2385ef4e02291e98b48c7486f66ed2595dafc31fddad638205713b101000000000000009bc095ad772bd23230116e09d3d852cb99c5ddaf06407ecb0eb2382bce6b329301000000000000008fabe46fdd0f4df9a72ce250df69dc52afd5e63cf44d2abf0ddde4b1fc2d556801000000000000009ad8f3fa4cbd30ec9c6299263ef17f35102cd1c91f9d607109c56b1136e754c10100000000000000fdcaf0312216d3a17495741a8873f40fc2f5e88a39a10b9fddea8badcf4b79a20100000000000000d7c36a347fc22ceee991dc9b36fe286a73ff89e308854e517006167da75fc3170100000000000000529fc18302e45ead6a64b64aa46fbbd1d3858f47ac80c397a96f1a5ed5a81c910100000000000000e4eb3771054e1b21343b4025aebffe990a3a27e934e94a0cc2a0e7571405980d01000000000000000882cd193bf1733a5f0ecbddc95ae901ade78888540d82b054b7053b4b8ba37a010000000000000093142c1ad13942529fc545a0e38f3588f3e30d71218a321fb9714a095b7fc6f70100000000000000e6343d0f175598bc4b04d9cc7e0f4eb529678a343ac633c3b71d28de46ce83290100000000000000a91582d0f43533536bf51243d912172fbb0deedbdd65d398d441fbea1cc4312701000000000000002e88c528b475d4c170d5b8784ce913e5247d3fc278d6a9a9a324ced318fba3270100000000000000f99c4c6c4bdadb511067a5a58381711aa9fc9aa13ad475facf19b69ba6d5044e01000000000000009092bb288257c8213436ad34ed56f52a0756ba9952de9a81f623a86dc6febe1301000000000000008542bafa4a04ecab4d17373a9f4b459c563383ab32d7bc7fffffe557c15f8a4a01000000000000007d71521963e9362d0739bb0161abd2ffbbe1ab3ab37ccdde9463b4048e619f520100000000000000a1d4f85f9b94ab61f9e16725cd485d90120560d7800229d94b9b71af5f5b4a1b0100000000000000785c5fd14b116d1ee9fe53a57e0cc079cf85e5388856ec2d8e847a997d3b5bd80100000000000000542e207bee9082df82dff1f5c9be749b8aa9460ed0a0ceb00e4c752cc3d27c0f01000000000000008e9db2ccde873464bc2888571806e01a9249cc029ad9ec9a69e1ebac5207f30d0100000000000000b329e7b2376dc74bd55b3fb85720d7fd2659c8c39f192c6223ba5364fc2cef6d010000000000000037a73ef7fd188625d364ea21abf8de2786affa8a53c0540589a747cea61554fb0100000000000000119a070623bc5088013c1a3f9037e177285c654c748136a4c6d85e03ca0e64e801000000000000000c4dc49538d77f88de5c5428a49ddcab2c22a9e3fc46fb6354371a13963d1a160100000000000000f71fedbcee2aa9020dec6152125ded3a003e3ff9afb0ce4e7272d0954efb55540100000000000000b6e24d45e4b33049391c302499c0767640460215d82296dd9f7e6d72f62dc5dc01000000000000002b67caacf2d33953b65e81376c0d8ec20d06ea9dd9ac3c3f83931a7a5f289ee70100000000000000555f0cd22b9d6c1f38c1e657be3cc01c50e012dfb681fe8a744d6b6dff240c0101000000000000006c93718ec5f383785592e07473ee84e8df1e4dcde5a034312e71449d83390a4601000000000000003303c858e5e0951701513cea5a56effc09b7187311af4b547c90fcbacc8640ca0100000000000000b305c9f25de702e741d9c4779fb60117ed9ad4e2cdb87600f9ab3552716bc85c0100000000000000a8b71728b343905f783dc9d48f76b5744e9d35bd23f6714b624c95ba377d2ad30100000000000000d0b2163d59ca2b471f19d6b9d33123d3b8246ed4ea1d492b539f3ef8fe3c8de20100000000000000a21a7e6d779926c637f0c215a2af86221ee9a172b793cc4802c7f068169429710100000000000000ffb607e86abd2f064effd16cd65ed64fe78132fdb16660a2446c8a2fd7d935430100000000000000fa7a89f756ce11028da1891fd8932e946e46618b70fef4cfabd6979cbe1e44580100000000000000186eac52af4c5615ac3939e3019d3b54f4b5074c935a3af17b20a5abf6dc37d20100000000000000e3395395ad6ec5d9db588fb76b0f1187186338aa63f4262879d3dc07cb682b2c0100000000000000464466b570cc823fad14249294d61fa4c4baf0367032018531dd900b0fa066110100000000000000a818de5fee03f9073ccb573d4b62619593ae3e6cebc8ee7a389f2b3825bfb20e0100000000000000d312f02ef7cfdb7cde8d55b75498393e36992e336a4fe93cae2417f35723f49c0100000000000000487d2d99b38ea7a09948b4df19ff56d591fc4f841f50e067e71052374c9f88e7010000000000000073aba74dd288d087b2167e459aaa57ebf34bd7e6c41ad21b764cc33f6ffe3e810100000000000000d68f6ab92ea94e4ab52cb536077509ce38c3fa61f2d7624673b6921456938adc0100000000000000dd5931ff339f8bdd063aaa8a61ed0d03f403c53d65844a8e4dc3fb8d4aeae0b80100000000000000727215f6ffc77d57437230a353e2d7834f43fc407cb44ac535b15aa3384e9c66010000000000000043ab7611c3d9d509c183041f9dac69bffec7301e955ee95013ae60e77fd49a640100000000000000810f02a6712ca2a711627c14d2c074639c43ae58d2de7796e878e6836175391e01000000000000008d4a84deae3b2168cd4970ae623059dd19e9c329acb2d3ac3d5212694b3d0e6501000000000000000334ac0f04797313a81f5301228a4f77f881564723178e7b199373fee1af98010100000000000000710000000000000000015bf5060000c50100000000000000005dcc000001000000000000000dd1000002000000000000006bda0000030000000000000023e60000040000000000000040f6000005000000000000005a0601000600000000000000c216010007000000000000002a2701000800000000000000553701000900000000000000834701000a00000000000000ab5701000b00000000000000d86701000c00000000000000508601000d00000000000000609401000e0000000000000070a201000f0000000000000078a90100100000000000000080b00100110000000000000090be01001200000000000000a0cc01001300000000000000b0da01001400000000000000c0e801001500000000000000d0f601001600000000000000e00402001700000000000000f01202001800000000000000002102001900000000000000102f02001a00000000000000203d02001b00000000000000304b02001c00000000000000405902001d00000000000000506702001e00000000000000607502001f00000000000000708302002000000000000000809102002100000000000000909f02002200000000000000a0ad02002300000000000000b0bb02002400000000000000c0c902002500000000000000d0d702002600000000000000e0e502002700000000000000f0f302002800000000000000ff01030029000000000000000f1003002a000000000000001f1e03002b000000000000002f2c03002c000000000000003f3a03002d000000000000004f4803002e000000000000005f5603002f000000000000006f64030030000000000000007f72030031000000000000008f80030032000000000000009f8e03003300000000000000af9c03003400000000000000bfaa03003500000000000000cfb803003600000000000000dfc603003700000000000000efd403003800000000000000ffe2030039000000000000000ff103003a000000000000001dff03003b000000000000002d0d04003c000000000000003d1b04003d000000000000004d2904003e000000000000005d3704003f000000000000006d45040040000000000000007d53040041000000000000008b61040042000000000000009b6f04004300000000000000867d040044000000000000004f8b04004500000000000000a08d0400460000000000000058990400470000000000000068a70400480000000000000078b50400490000000000000088c304004a0000000000000098d104004b00000000000000a4df04004c00000000000000b4ed04004d00000000000000c4fb04004e00000000000000d40905004f00000000000000e31705005000000000000000f32505005100000000000000033405005200000000000000134205005300000000000000235005005400000000000000335e05005500000000000000436c05005600000000000000537a0500570000000000000063880500580000000000000072960500590000000000000081a405005a0000000000000091b205005b00000000000000a1c005005c00000000000000b1ce05005d00000000000000c1dc05005e00000000000000d1ea05005f00000000000000e1f805006000000000000000f10606006100000000000000011506006200000000000000112306006300000000000000213106006400000000000000313f06006500000000000000414d06006600000000000000515b06006700000000000000616906006800000000000000717706006900000000000000818506006a00000000000000919306006b00000000000000a1a106006c00000000000000b1af06006d00000000000000c1bd06006e00000000000000d1cb06006f00000000000000e1d906007000000000000000f0e70600"}} \ No newline at end of file +{"name":"Paseo","id":"paseo","chainType":"Live","bootNodes":["/dns/n8r2.bn.turboflakes.io/tcp/30443/wss/p2p/12D3KooWC3noUwG6TJwh4AJMNxCMNvmSZeknsLtXudxrB7nPXbjG","/ip4/139.99.130.67/tcp/30333/p2p/12D3KooWCj2oX6oAV3NohsZbyPhNN3LAK9BcdBENTnbJWoFCX7jq"],"telemetryEndpoints":null,"protocolId":"pad","properties":{"ss58Format":"42","tokenDecimals":"10","tokenSymbol":"PAS"},"codeSubstitutes":{},"genesis":{"stateRootHash":"0x070b57c91484ab48bfa87a8af91ec6c20667aa4b0e7b34e3c0689dd00e7980ca"},"lightSyncState":{"babeEpochChanges":"0x047238c9f55c3c42c750fb53dd6cc192b65ac03c0d9891b48fb15020f21615c6f9eee3080001fe5ebf11000000005661bf11000000000441a9344d1e6a23bcccacad27fd26bb8cf924bc1ac818e04755a661365e1f2f5846e60800015661bf1100000000ae63bf110000000004ebbbf71fe352e5ad74cc766888aaeb41264b0b19a99467f440687ae887f06baf9ee8080001ae63bf11000000000666bf110000000000000c41a9344d1e6a23bcccacad27fd26bb8cf924bc1ac818e04755a661365e1f2f5846e6080001d0030000000000005661bf11000000005802000000000000e0e81d86891b29ffe5f8bf39108b666142cec991fb63244415b7ccea71125faf170100000000000000ec1bd0f5f84d72466a76e6a4475c503ab408f2b49edd66484c66481ea636b153010000000000000002d0a5c4dc88271d54931c74fca673f7574b0cca137085e7bd93d7c9a22c77590100000000000000a4ff948f85eef63658b3dae21f50cefa2c19cb89b0305fb53dfcea2f4491ab1c0100000000000000d6cb56c057956c71f0eb5675ec38553b81ca149a10130dedd485cb221f4f962e01000000000000008afead280e1c83ad0a461a6adbcf4e8328ff93d5f80d95d427d07fbe8d28195a010000000000000042137c0400236ce29118fc984cebdf78e1c5031a1bf660aa7d6a18cedaf40e3e01000000000000007a412f2591679f757469c1cce3cbb489b58a65c88bec143580a6b08467c0d66f0100000000000000e45f47896b345c2ad29a023b420970357490bcf8e5c80191ca7127bfb4f274530100000000000000f06a25a0b965df7b9c2f3102775d3b15d47ee65e7b4e2cf573a4c201c0220937010000000000000010c13aace80c749cd5537d4ba45e073907f4b7ccbbccd4ce58230fa9bc61b1010100000000000000723d1d0f8b624987acd5035935bc7874a5b03b59fc747a6962654e1c9b1aea41010000000000000006b94575d2b3f000398ed0c27ec1c948928a61899691915473e2c53251bffc61010000000000000072bc3ba78c0f00838af10c9547081397b45fb7c4ec177bac233b801d0e01aa6801000000000000006ea0348a5f164dabacd4ff64506b7413b3bc77b059ee1e02a058d2a55bcfa87b0100000000000000584ec0db2bae4f2340d44a3b69d300553dd1df298585ac76b9a1c68f5068976501000000000000006403b69b73dd4d134d158731eeab4f482cb8a67bb2710b9ef7ee346358abba01010000000000000096361f9708fc507af16090e372e889ac7926b4807e985ef5ae14b6a5d7396d3a0100000000000000de7500c97090be7a78c1b385f298de75c816a4281e91cfe80caee01b1ca0690d010000000000000028ef1ad31acaf344d82ab008882453399a7331a62fa1e32bff49d76105d8527c01000000000000004253bd1f6e0438b5856d2a0536511d345fe933b049392ea88043d142803f905701000000000000000efa3a3d1a1df84af870be04c2b873bc69ccf75d0a681ebee038ce0dd7ce3262010000000000000026026b3279655b5fc55c7a4cd07d3ec34a9674b71e6dd9cae3a382e625ba5534010000000000000006a88e1633465db194e7fc64c7a5c4a4b911ff24562b38a9e1fb36056514b63e0100000000000000365dce13c901ec12ae32f9eafbc7f0efd2ed0585ca7da7d44a3860f85e649e4e0100000000000000a0e0eacbb23ed6626698328118d5cf817ffff74ff0095e3a0283ce9d6dd908460100000000000000680ee03d3bfa8d45b30cc10f00bc089468b6744312542233ce457f4514adc831010000000000000048740433d5c90fbc833f743905d3ffa8c944a1c497c76303a934eb717bc1c76c01000000000000008819d545b5476790fd97a58a4f705208ac52c57cccee2237fbf37579fa4ea5470100000000000000606e0e33cb3f9fd7970a16a7d3f5b650c796f7d7c805c35c645c55d5ce6039020100000000000000d669b2ec823a24d60cfa2155190dbbd19168054643d870433b8aecaf538d99010100000000000000d800a130cf1abec4ab5e264e2910aff610830559c15c416e2e7293205c7df1680100000000000000d6d3cbdec3326586e224170d91fd0238fde441a902d80787f080d134fc20a52d01000000000000003047ebca8614f20e45cf0043eb1ec9089f10c6981ec49a909c4e7bea9614b20c010000000000000014d21668a49bece60e5c54352fae48b15f7c20c80d6ed87a05587e5bce12b16a010000000000000060e57bc9a25786e3001696943f4141c79fcdfcfdba9dd10f713c921c7383d72f01000000000000006816b19e22c57012997df7cbb387e8a043c5980ef6a0b7176ef7c9ef687692670100000000000000468da131acf1f73b47dfde211bcc53d2fc102c741d72c21b56b28fdabbc6bc440100000000000000c4603fa09b096832ff1d834be056cfdeeb922262cfc89e5e0cf3600b67dbbc1e0100000000000000dcda83b436c74ec22ff1ca033ca783d31c7973d9d8bb669795afee7d6aabb4350100000000000000485f4d8cf2897518552ab984b5074d823e3087289d03d776f7e8e245e23b493e0100000000000000205a7ff855c2cadd27748b723cef01126e9f522725ba798fbcd8e7426321b4570100000000000000dc0c4f99eaf6d3437e95af15d077d591a551d76ddd1579fb100c05fee3591d7c010000000000000088d964219dd6ebd538e1804f1ca69936bc65c21cfa963ac370e4a6ac3f3fbd61010000000000000006b47b04fdf9f25e7dc43645b294f210e8f32dfb4b3a7f91ad15ffcc4f0637550100000000000000bafd009a59b87c879e7f538be8c07b49076aa775171bad62ee4c66fca5e3ae5a0100000000000000c8fc89765a2029dbd5de48bd60e759d3fe2754c81082683b86d89eaffbcf485b010000000000000018133feb9a23fceff68551c4e7c0b706742bc14464f721db0b270579fd5c001d0100000000000000de24f7b0bd7e3e89a817ad1953f778cbfd8343482cf5e777ef8cea61517411750100000000000000e421f4a9c7afe912397156c58837488b31baef4d297ece4d04a20056f6922420010000000000000056daa624ab5e2023ede243ff830235a4cf0bf25b8be88f011ea0fef46910865801000000000000007c2b2650d170087313955372306682dbcf2d95a2ca923a77e6b646a9a10bf83f01000000000000007a694fc030469cf01585fd29ff37905fbfc55329288d2fdd5d5294bc52e3bd2901000000000000009a78cffb3684ca2fd4118c4f885315179ecdbe2748d29066802c2e4529255b140100000000000000be9379477d3cce786682133454af701de1c04fa52cdcc5e9cf23ce47399fd8620100000000000000582545d042f1891e4c643dfa2c060cb6111072d88a0a64b45836e026ccf06e2d01000000000000002c67adec549884b8d388d1417b83e23e37d4c9ad11ce05b37510a49a40433eda01000000000000000400000000000000027238c9f55c3c42c750fb53dd6cc192b65ac03c0d9891b48fb15020f21615c6f9eee3080001cf03000000000000fe5ebf11000000005802000000000000e0e81d86891b29ffe5f8bf39108b666142cec991fb63244415b7ccea71125faf170100000000000000ec1bd0f5f84d72466a76e6a4475c503ab408f2b49edd66484c66481ea636b153010000000000000002d0a5c4dc88271d54931c74fca673f7574b0cca137085e7bd93d7c9a22c77590100000000000000a4ff948f85eef63658b3dae21f50cefa2c19cb89b0305fb53dfcea2f4491ab1c0100000000000000d6cb56c057956c71f0eb5675ec38553b81ca149a10130dedd485cb221f4f962e01000000000000008afead280e1c83ad0a461a6adbcf4e8328ff93d5f80d95d427d07fbe8d28195a010000000000000042137c0400236ce29118fc984cebdf78e1c5031a1bf660aa7d6a18cedaf40e3e01000000000000007a412f2591679f757469c1cce3cbb489b58a65c88bec143580a6b08467c0d66f0100000000000000e45f47896b345c2ad29a023b420970357490bcf8e5c80191ca7127bfb4f274530100000000000000f06a25a0b965df7b9c2f3102775d3b15d47ee65e7b4e2cf573a4c201c0220937010000000000000010c13aace80c749cd5537d4ba45e073907f4b7ccbbccd4ce58230fa9bc61b1010100000000000000723d1d0f8b624987acd5035935bc7874a5b03b59fc747a6962654e1c9b1aea41010000000000000006b94575d2b3f000398ed0c27ec1c948928a61899691915473e2c53251bffc61010000000000000072bc3ba78c0f00838af10c9547081397b45fb7c4ec177bac233b801d0e01aa6801000000000000006ea0348a5f164dabacd4ff64506b7413b3bc77b059ee1e02a058d2a55bcfa87b0100000000000000584ec0db2bae4f2340d44a3b69d300553dd1df298585ac76b9a1c68f5068976501000000000000006403b69b73dd4d134d158731eeab4f482cb8a67bb2710b9ef7ee346358abba01010000000000000096361f9708fc507af16090e372e889ac7926b4807e985ef5ae14b6a5d7396d3a0100000000000000de7500c97090be7a78c1b385f298de75c816a4281e91cfe80caee01b1ca0690d010000000000000028ef1ad31acaf344d82ab008882453399a7331a62fa1e32bff49d76105d8527c01000000000000004253bd1f6e0438b5856d2a0536511d345fe933b049392ea88043d142803f905701000000000000000efa3a3d1a1df84af870be04c2b873bc69ccf75d0a681ebee038ce0dd7ce3262010000000000000026026b3279655b5fc55c7a4cd07d3ec34a9674b71e6dd9cae3a382e625ba5534010000000000000006a88e1633465db194e7fc64c7a5c4a4b911ff24562b38a9e1fb36056514b63e0100000000000000365dce13c901ec12ae32f9eafbc7f0efd2ed0585ca7da7d44a3860f85e649e4e0100000000000000a0e0eacbb23ed6626698328118d5cf817ffff74ff0095e3a0283ce9d6dd908460100000000000000680ee03d3bfa8d45b30cc10f00bc089468b6744312542233ce457f4514adc831010000000000000048740433d5c90fbc833f743905d3ffa8c944a1c497c76303a934eb717bc1c76c01000000000000008819d545b5476790fd97a58a4f705208ac52c57cccee2237fbf37579fa4ea5470100000000000000606e0e33cb3f9fd7970a16a7d3f5b650c796f7d7c805c35c645c55d5ce6039020100000000000000d669b2ec823a24d60cfa2155190dbbd19168054643d870433b8aecaf538d99010100000000000000d800a130cf1abec4ab5e264e2910aff610830559c15c416e2e7293205c7df1680100000000000000d6d3cbdec3326586e224170d91fd0238fde441a902d80787f080d134fc20a52d01000000000000003047ebca8614f20e45cf0043eb1ec9089f10c6981ec49a909c4e7bea9614b20c010000000000000014d21668a49bece60e5c54352fae48b15f7c20c80d6ed87a05587e5bce12b16a010000000000000060e57bc9a25786e3001696943f4141c79fcdfcfdba9dd10f713c921c7383d72f01000000000000006816b19e22c57012997df7cbb387e8a043c5980ef6a0b7176ef7c9ef687692670100000000000000468da131acf1f73b47dfde211bcc53d2fc102c741d72c21b56b28fdabbc6bc440100000000000000c4603fa09b096832ff1d834be056cfdeeb922262cfc89e5e0cf3600b67dbbc1e0100000000000000dcda83b436c74ec22ff1ca033ca783d31c7973d9d8bb669795afee7d6aabb4350100000000000000485f4d8cf2897518552ab984b5074d823e3087289d03d776f7e8e245e23b493e0100000000000000205a7ff855c2cadd27748b723cef01126e9f522725ba798fbcd8e7426321b4570100000000000000dc0c4f99eaf6d3437e95af15d077d591a551d76ddd1579fb100c05fee3591d7c010000000000000088d964219dd6ebd538e1804f1ca69936bc65c21cfa963ac370e4a6ac3f3fbd61010000000000000006b47b04fdf9f25e7dc43645b294f210e8f32dfb4b3a7f91ad15ffcc4f0637550100000000000000bafd009a59b87c879e7f538be8c07b49076aa775171bad62ee4c66fca5e3ae5a0100000000000000c8fc89765a2029dbd5de48bd60e759d3fe2754c81082683b86d89eaffbcf485b010000000000000018133feb9a23fceff68551c4e7c0b706742bc14464f721db0b270579fd5c001d0100000000000000de24f7b0bd7e3e89a817ad1953f778cbfd8343482cf5e777ef8cea61517411750100000000000000e421f4a9c7afe912397156c58837488b31baef4d297ece4d04a20056f6922420010000000000000056daa624ab5e2023ede243ff830235a4cf0bf25b8be88f011ea0fef46910865801000000000000007c2b2650d170087313955372306682dbcf2d95a2ca923a77e6b646a9a10bf83f01000000000000007a694fc030469cf01585fd29ff37905fbfc55329288d2fdd5d5294bc52e3bd2901000000000000009a78cffb3684ca2fd4118c4f885315179ecdbe2748d29066802c2e4529255b140100000000000000be9379477d3cce786682133454af701de1c04fa52cdcc5e9cf23ce47399fd8620100000000000000582545d042f1891e4c643dfa2c060cb6111072d88a0a64b45836e026ccf06e2d0100000000000000607b9f7f0877939a68b6a8ff4336ab7e938dd3ecc4651268921f99a547610f110100000000000000040000000000000002ebbbf71fe352e5ad74cc766888aaeb41264b0b19a99467f440687ae887f06baf9ee8080001d103000000000000ae63bf11000000005802000000000000e0e81d86891b29ffe5f8bf39108b666142cec991fb63244415b7ccea71125faf170100000000000000ec1bd0f5f84d72466a76e6a4475c503ab408f2b49edd66484c66481ea636b153010000000000000002d0a5c4dc88271d54931c74fca673f7574b0cca137085e7bd93d7c9a22c77590100000000000000a4ff948f85eef63658b3dae21f50cefa2c19cb89b0305fb53dfcea2f4491ab1c0100000000000000d6cb56c057956c71f0eb5675ec38553b81ca149a10130dedd485cb221f4f962e01000000000000008afead280e1c83ad0a461a6adbcf4e8328ff93d5f80d95d427d07fbe8d28195a010000000000000042137c0400236ce29118fc984cebdf78e1c5031a1bf660aa7d6a18cedaf40e3e01000000000000007a412f2591679f757469c1cce3cbb489b58a65c88bec143580a6b08467c0d66f0100000000000000e45f47896b345c2ad29a023b420970357490bcf8e5c80191ca7127bfb4f274530100000000000000f06a25a0b965df7b9c2f3102775d3b15d47ee65e7b4e2cf573a4c201c0220937010000000000000010c13aace80c749cd5537d4ba45e073907f4b7ccbbccd4ce58230fa9bc61b1010100000000000000723d1d0f8b624987acd5035935bc7874a5b03b59fc747a6962654e1c9b1aea41010000000000000006b94575d2b3f000398ed0c27ec1c948928a61899691915473e2c53251bffc61010000000000000072bc3ba78c0f00838af10c9547081397b45fb7c4ec177bac233b801d0e01aa6801000000000000006ea0348a5f164dabacd4ff64506b7413b3bc77b059ee1e02a058d2a55bcfa87b0100000000000000584ec0db2bae4f2340d44a3b69d300553dd1df298585ac76b9a1c68f5068976501000000000000006403b69b73dd4d134d158731eeab4f482cb8a67bb2710b9ef7ee346358abba01010000000000000096361f9708fc507af16090e372e889ac7926b4807e985ef5ae14b6a5d7396d3a0100000000000000de7500c97090be7a78c1b385f298de75c816a4281e91cfe80caee01b1ca0690d010000000000000028ef1ad31acaf344d82ab008882453399a7331a62fa1e32bff49d76105d8527c01000000000000004253bd1f6e0438b5856d2a0536511d345fe933b049392ea88043d142803f905701000000000000000efa3a3d1a1df84af870be04c2b873bc69ccf75d0a681ebee038ce0dd7ce3262010000000000000026026b3279655b5fc55c7a4cd07d3ec34a9674b71e6dd9cae3a382e625ba5534010000000000000006a88e1633465db194e7fc64c7a5c4a4b911ff24562b38a9e1fb36056514b63e0100000000000000365dce13c901ec12ae32f9eafbc7f0efd2ed0585ca7da7d44a3860f85e649e4e0100000000000000a0e0eacbb23ed6626698328118d5cf817ffff74ff0095e3a0283ce9d6dd908460100000000000000680ee03d3bfa8d45b30cc10f00bc089468b6744312542233ce457f4514adc831010000000000000048740433d5c90fbc833f743905d3ffa8c944a1c497c76303a934eb717bc1c76c01000000000000008819d545b5476790fd97a58a4f705208ac52c57cccee2237fbf37579fa4ea5470100000000000000606e0e33cb3f9fd7970a16a7d3f5b650c796f7d7c805c35c645c55d5ce6039020100000000000000d669b2ec823a24d60cfa2155190dbbd19168054643d870433b8aecaf538d99010100000000000000d800a130cf1abec4ab5e264e2910aff610830559c15c416e2e7293205c7df1680100000000000000d6d3cbdec3326586e224170d91fd0238fde441a902d80787f080d134fc20a52d01000000000000003047ebca8614f20e45cf0043eb1ec9089f10c6981ec49a909c4e7bea9614b20c010000000000000014d21668a49bece60e5c54352fae48b15f7c20c80d6ed87a05587e5bce12b16a010000000000000060e57bc9a25786e3001696943f4141c79fcdfcfdba9dd10f713c921c7383d72f01000000000000006816b19e22c57012997df7cbb387e8a043c5980ef6a0b7176ef7c9ef687692670100000000000000468da131acf1f73b47dfde211bcc53d2fc102c741d72c21b56b28fdabbc6bc440100000000000000c4603fa09b096832ff1d834be056cfdeeb922262cfc89e5e0cf3600b67dbbc1e0100000000000000dcda83b436c74ec22ff1ca033ca783d31c7973d9d8bb669795afee7d6aabb4350100000000000000485f4d8cf2897518552ab984b5074d823e3087289d03d776f7e8e245e23b493e0100000000000000205a7ff855c2cadd27748b723cef01126e9f522725ba798fbcd8e7426321b4570100000000000000dc0c4f99eaf6d3437e95af15d077d591a551d76ddd1579fb100c05fee3591d7c010000000000000088d964219dd6ebd538e1804f1ca69936bc65c21cfa963ac370e4a6ac3f3fbd61010000000000000006b47b04fdf9f25e7dc43645b294f210e8f32dfb4b3a7f91ad15ffcc4f0637550100000000000000bafd009a59b87c879e7f538be8c07b49076aa775171bad62ee4c66fca5e3ae5a0100000000000000c8fc89765a2029dbd5de48bd60e759d3fe2754c81082683b86d89eaffbcf485b010000000000000018133feb9a23fceff68551c4e7c0b706742bc14464f721db0b270579fd5c001d0100000000000000de24f7b0bd7e3e89a817ad1953f778cbfd8343482cf5e777ef8cea61517411750100000000000000e421f4a9c7afe912397156c58837488b31baef4d297ece4d04a20056f6922420010000000000000056daa624ab5e2023ede243ff830235a4cf0bf25b8be88f011ea0fef46910865801000000000000007c2b2650d170087313955372306682dbcf2d95a2ca923a77e6b646a9a10bf83f01000000000000007a694fc030469cf01585fd29ff37905fbfc55329288d2fdd5d5294bc52e3bd2901000000000000009a78cffb3684ca2fd4118c4f885315179ecdbe2748d29066802c2e4529255b140100000000000000be9379477d3cce786682133454af701de1c04fa52cdcc5e9cf23ce47399fd8620100000000000000582545d042f1891e4c643dfa2c060cb6111072d88a0a64b45836e026ccf06e2d0100000000000000b3cf35b0c779fc5cd02c86b72804d2abe80fa8d098d483e31678170482c0f13a0100000000000000040000000000000002","babeFinalizedBlockWeight":146209,"finalizedBlockHeader":"0x50b1aaf931df46eae234bd5b091f3e7076f140f89330483b5fc2905be48d6cef42a323007dda75a978d2ed1e4a979f8efccfde01ee912290d1455f047654d211d7c666137a0b9dd6d13c62834aac3e2b5c27eab823eb9e221004d9ece9f3e7622482af7d0c0642414245b501012d0000008861bf1100000000fcc6874076d1984be0f4b401e86c0a68122b0b8c252e0f1e2d6d672874f0491b4565575e7345eea69f9a3071ed6988770e2996200e910e3522ff675838add60244d61203a2df949dcc551ea9880d2cee94dd2ecff2323aa360eb92bda3ffd90b04424545468403865497cd90175eacab56f8cbbeaf8822c0415d7c1a4c44ed438df8c30ab0020905424142450101267e42e72e87415609323fb0046ca1eb4e4d6c788839ea4b0102761fe370953455fc5b20c026359ccf52cc7b5037a1dcd2991ea0c9d5f7e5ddeedb484808228f","grandpaAuthoritySet":"0xe0731956aed8e45d4662a24769813130586e0beacbd233a2cdcef253e077189dc2010000000000000087cffd9a0057b40b259e26a23587cc4f0ba7eda8fb56a416a5ab9a07e73198ee0100000000000000a256c0ce61b51b44eb77967256f966c7acaf1882f3e7d4503e909f687472f5fa0100000000000000fcb7558928ec259bcbefc2c86933b25285c617ee92a577f960c575deae7843d60100000000000000560e7453678f6a9556c03099baae52506626aea490796d6bf8f5cfe476df178f0100000000000000c2ace1f4c2385ef4e02291e98b48c7486f66ed2595dafc31fddad638205713b101000000000000009bc095ad772bd23230116e09d3d852cb99c5ddaf06407ecb0eb2382bce6b329301000000000000008fabe46fdd0f4df9a72ce250df69dc52afd5e63cf44d2abf0ddde4b1fc2d556801000000000000009ad8f3fa4cbd30ec9c6299263ef17f35102cd1c91f9d607109c56b1136e754c10100000000000000fdcaf0312216d3a17495741a8873f40fc2f5e88a39a10b9fddea8badcf4b79a20100000000000000d7c36a347fc22ceee991dc9b36fe286a73ff89e308854e517006167da75fc3170100000000000000529fc18302e45ead6a64b64aa46fbbd1d3858f47ac80c397a96f1a5ed5a81c910100000000000000e4eb3771054e1b21343b4025aebffe990a3a27e934e94a0cc2a0e7571405980d01000000000000000882cd193bf1733a5f0ecbddc95ae901ade78888540d82b054b7053b4b8ba37a010000000000000093142c1ad13942529fc545a0e38f3588f3e30d71218a321fb9714a095b7fc6f70100000000000000e6343d0f175598bc4b04d9cc7e0f4eb529678a343ac633c3b71d28de46ce83290100000000000000a91582d0f43533536bf51243d912172fbb0deedbdd65d398d441fbea1cc4312701000000000000002e88c528b475d4c170d5b8784ce913e5247d3fc278d6a9a9a324ced318fba3270100000000000000f99c4c6c4bdadb511067a5a58381711aa9fc9aa13ad475facf19b69ba6d5044e01000000000000009092bb288257c8213436ad34ed56f52a0756ba9952de9a81f623a86dc6febe1301000000000000008542bafa4a04ecab4d17373a9f4b459c563383ab32d7bc7fffffe557c15f8a4a01000000000000007d71521963e9362d0739bb0161abd2ffbbe1ab3ab37ccdde9463b4048e619f520100000000000000a1d4f85f9b94ab61f9e16725cd485d90120560d7800229d94b9b71af5f5b4a1b0100000000000000785c5fd14b116d1ee9fe53a57e0cc079cf85e5388856ec2d8e847a997d3b5bd80100000000000000542e207bee9082df82dff1f5c9be749b8aa9460ed0a0ceb00e4c752cc3d27c0f01000000000000008e9db2ccde873464bc2888571806e01a9249cc029ad9ec9a69e1ebac5207f30d0100000000000000b329e7b2376dc74bd55b3fb85720d7fd2659c8c39f192c6223ba5364fc2cef6d010000000000000037a73ef7fd188625d364ea21abf8de2786affa8a53c0540589a747cea61554fb0100000000000000119a070623bc5088013c1a3f9037e177285c654c748136a4c6d85e03ca0e64e801000000000000000c4dc49538d77f88de5c5428a49ddcab2c22a9e3fc46fb6354371a13963d1a160100000000000000f71fedbcee2aa9020dec6152125ded3a003e3ff9afb0ce4e7272d0954efb55540100000000000000b6e24d45e4b33049391c302499c0767640460215d82296dd9f7e6d72f62dc5dc01000000000000002b67caacf2d33953b65e81376c0d8ec20d06ea9dd9ac3c3f83931a7a5f289ee70100000000000000555f0cd22b9d6c1f38c1e657be3cc01c50e012dfb681fe8a744d6b6dff240c0101000000000000006c93718ec5f383785592e07473ee84e8df1e4dcde5a034312e71449d83390a4601000000000000003303c858e5e0951701513cea5a56effc09b7187311af4b547c90fcbacc8640ca0100000000000000b305c9f25de702e741d9c4779fb60117ed9ad4e2cdb87600f9ab3552716bc85c0100000000000000a8b71728b343905f783dc9d48f76b5744e9d35bd23f6714b624c95ba377d2ad30100000000000000d0b2163d59ca2b471f19d6b9d33123d3b8246ed4ea1d492b539f3ef8fe3c8de20100000000000000a21a7e6d779926c637f0c215a2af86221ee9a172b793cc4802c7f068169429710100000000000000ffb607e86abd2f064effd16cd65ed64fe78132fdb16660a2446c8a2fd7d935430100000000000000fa7a89f756ce11028da1891fd8932e946e46618b70fef4cfabd6979cbe1e44580100000000000000186eac52af4c5615ac3939e3019d3b54f4b5074c935a3af17b20a5abf6dc37d20100000000000000e3395395ad6ec5d9db588fb76b0f1187186338aa63f4262879d3dc07cb682b2c0100000000000000464466b570cc823fad14249294d61fa4c4baf0367032018531dd900b0fa066110100000000000000a818de5fee03f9073ccb573d4b62619593ae3e6cebc8ee7a389f2b3825bfb20e0100000000000000d312f02ef7cfdb7cde8d55b75498393e36992e336a4fe93cae2417f35723f49c0100000000000000487d2d99b38ea7a09948b4df19ff56d591fc4f841f50e067e71052374c9f88e7010000000000000073aba74dd288d087b2167e459aaa57ebf34bd7e6c41ad21b764cc33f6ffe3e810100000000000000d68f6ab92ea94e4ab52cb536077509ce38c3fa61f2d7624673b6921456938adc0100000000000000dd5931ff339f8bdd063aaa8a61ed0d03f403c53d65844a8e4dc3fb8d4aeae0b80100000000000000727215f6ffc77d57437230a353e2d7834f43fc407cb44ac535b15aa3384e9c66010000000000000043ab7611c3d9d509c183041f9dac69bffec7301e955ee95013ae60e77fd49a640100000000000000810f02a6712ca2a711627c14d2c074639c43ae58d2de7796e878e6836175391e01000000000000008d4a84deae3b2168cd4970ae623059dd19e9c329acb2d3ac3d5212694b3d0e6501000000000000000334ac0f04797313a81f5301228a4f77f881564723178e7b199373fee1af9801010000000000000095000000000000000001d0e8080000550200000000000000005dcc000001000000000000000dd1000002000000000000006bda0000030000000000000023e60000040000000000000040f6000005000000000000005a0601000600000000000000c216010007000000000000002a2701000800000000000000553701000900000000000000834701000a00000000000000ab5701000b00000000000000d86701000c00000000000000508601000d00000000000000609401000e0000000000000070a201000f0000000000000078a90100100000000000000080b00100110000000000000090be01001200000000000000a0cc01001300000000000000b0da01001400000000000000c0e801001500000000000000d0f601001600000000000000e00402001700000000000000f01202001800000000000000002102001900000000000000102f02001a00000000000000203d02001b00000000000000304b02001c00000000000000405902001d00000000000000506702001e00000000000000607502001f00000000000000708302002000000000000000809102002100000000000000909f02002200000000000000a0ad02002300000000000000b0bb02002400000000000000c0c902002500000000000000d0d702002600000000000000e0e502002700000000000000f0f302002800000000000000ff01030029000000000000000f1003002a000000000000001f1e03002b000000000000002f2c03002c000000000000003f3a03002d000000000000004f4803002e000000000000005f5603002f000000000000006f64030030000000000000007f72030031000000000000008f80030032000000000000009f8e03003300000000000000af9c03003400000000000000bfaa03003500000000000000cfb803003600000000000000dfc603003700000000000000efd403003800000000000000ffe2030039000000000000000ff103003a000000000000001dff03003b000000000000002d0d04003c000000000000003d1b04003d000000000000004d2904003e000000000000005d3704003f000000000000006d45040040000000000000007d53040041000000000000008b61040042000000000000009b6f04004300000000000000867d040044000000000000004f8b04004500000000000000a08d0400460000000000000058990400470000000000000068a70400480000000000000078b50400490000000000000088c304004a0000000000000098d104004b00000000000000a4df04004c00000000000000b4ed04004d00000000000000c4fb04004e00000000000000d40905004f00000000000000e31705005000000000000000f32505005100000000000000033405005200000000000000134205005300000000000000235005005400000000000000335e05005500000000000000436c05005600000000000000537a0500570000000000000063880500580000000000000072960500590000000000000081a405005a0000000000000091b205005b00000000000000a1c005005c00000000000000b1ce05005d00000000000000c1dc05005e00000000000000d1ea05005f00000000000000e1f805006000000000000000f10606006100000000000000011506006200000000000000112306006300000000000000213106006400000000000000313f06006500000000000000414d06006600000000000000515b06006700000000000000616906006800000000000000717706006900000000000000818506006a00000000000000919306006b00000000000000a1a106006c00000000000000b1af06006d00000000000000c1bd06006e00000000000000d1cb06006f00000000000000e1d906007000000000000000f0e706007100000000000000fff5060072000000000000000f04070073000000000000001f12070074000000000000002f20070075000000000000003f2e070076000000000000004f3c070077000000000000005f4a070078000000000000006b58070079000000000000007b6607007a000000000000008b7407007b000000000000009b8207007c00000000000000ab9007007d00000000000000b59e07007e00000000000000a0ac07007f00000000000000b0ba07008000000000000000bfc807008100000000000000cfd607008200000000000000dfe407008300000000000000eff207008400000000000000fe00080085000000000000000e0f080086000000000000001e1d080087000000000000002e2b080088000000000000003e39080089000000000000004e4708008a000000000000005d5508008b00000000000000136308008c000000000000001f7108008d000000000000002f7f08008e000000000000003e8d08008f000000000000004e9b080090000000000000005ea9080091000000000000006eb7080092000000000000007ec5080093000000000000008ed30800940000000000000097e10800"}} \ No newline at end of file diff --git a/packages/resolver/src/manifest.ts b/packages/resolver/src/manifest.ts index c25ceb2b..b547faf7 100644 --- a/packages/resolver/src/manifest.ts +++ b/packages/resolver/src/manifest.ts @@ -4,8 +4,8 @@ // Product manifest reader. // // Reads text records off `DOTNS_CONTENT_RESOLVER`. The root manifest sits -// at `.dot` under the `manifest` key. Each executable manifest sits at -// `..dot` under the `executable` key. The JSON is parsed and +// at `.` under the `manifest` key. Each executable manifest sits at +// `..` under the `executable` key. The JSON is parsed and // validated against `./manifest-types.ts`. These calls are read-only and // never signed or written. // @@ -43,7 +43,7 @@ export type ManifestResult = | { kind: "invalid"; errors: string[] }; /** - * Read the root manifest at `